UNPKG

4.16 MBJavaScriptView Raw
1/**
2 * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3 * @version v25.3.0
4 * @link http://www.ag-grid.com/
5 * @license MIT
6 */
7// @ag-grid-community/all-modules v25.3.0
8(function webpackUniversalModuleDefinition(root, factory) {
9 if(typeof exports === 'object' && typeof module === 'object')
10 module.exports = factory();
11 else if(typeof define === 'function' && define.amd)
12 define([], factory);
13 else if(typeof exports === 'object')
14 exports["agGrid"] = factory();
15 else
16 root["agGrid"] = factory();
17})(window, function() {
18return /******/ (function(modules) { // webpackBootstrap
19/******/ // The module cache
20/******/ var installedModules = {};
21/******/
22/******/ // The require function
23/******/ function __webpack_require__(moduleId) {
24/******/
25/******/ // Check if module is in cache
26/******/ if(installedModules[moduleId]) {
27/******/ return installedModules[moduleId].exports;
28/******/ }
29/******/ // Create a new module (and put it into the cache)
30/******/ var module = installedModules[moduleId] = {
31/******/ i: moduleId,
32/******/ l: false,
33/******/ exports: {}
34/******/ };
35/******/
36/******/ // Execute the module function
37/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
38/******/
39/******/ // Flag the module as loaded
40/******/ module.l = true;
41/******/
42/******/ // Return the exports of the module
43/******/ return module.exports;
44/******/ }
45/******/
46/******/
47/******/ // expose the modules object (__webpack_modules__)
48/******/ __webpack_require__.m = modules;
49/******/
50/******/ // expose the module cache
51/******/ __webpack_require__.c = installedModules;
52/******/
53/******/ // define getter function for harmony exports
54/******/ __webpack_require__.d = function(exports, name, getter) {
55/******/ if(!__webpack_require__.o(exports, name)) {
56/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
57/******/ }
58/******/ };
59/******/
60/******/ // define __esModule on exports
61/******/ __webpack_require__.r = function(exports) {
62/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
63/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
64/******/ }
65/******/ Object.defineProperty(exports, '__esModule', { value: true });
66/******/ };
67/******/
68/******/ // create a fake namespace object
69/******/ // mode & 1: value is a module id, require it
70/******/ // mode & 2: merge all properties of value into the ns
71/******/ // mode & 4: return value when already ns object
72/******/ // mode & 8|1: behave like require
73/******/ __webpack_require__.t = function(value, mode) {
74/******/ if(mode & 1) value = __webpack_require__(value);
75/******/ if(mode & 8) return value;
76/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
77/******/ var ns = Object.create(null);
78/******/ __webpack_require__.r(ns);
79/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
80/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
81/******/ return ns;
82/******/ };
83/******/
84/******/ // getDefaultExport function for compatibility with non-harmony modules
85/******/ __webpack_require__.n = function(module) {
86/******/ var getter = module && module.__esModule ?
87/******/ function getDefault() { return module['default']; } :
88/******/ function getModuleExports() { return module; };
89/******/ __webpack_require__.d(getter, 'a', getter);
90/******/ return getter;
91/******/ };
92/******/
93/******/ // Object.prototype.hasOwnProperty.call
94/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
95/******/
96/******/ // __webpack_public_path__
97/******/ __webpack_require__.p = "";
98/******/
99/******/
100/******/ // Load entry module and return exports
101/******/ return __webpack_require__(__webpack_require__.s = 0);
102/******/ })
103/************************************************************************/
104/******/ ([
105/* 0 */
106/***/ (function(module, exports, __webpack_require__) {
107
108/**
109 * AUTOMATICALLY GENERATED FILE, DO NOT EDIT MANUALLY!
110 * Update this file by running `lerna run webpack-updater` in the monorepo root folder.
111 */
112var ClientSideRowModelModule = __webpack_require__(1);
113var GridCoreModule = __webpack_require__(3);
114var CsvExportModule = __webpack_require__(241);
115var InfiniteRowModelModule = __webpack_require__(251);
116var agGrid = __webpack_require__(256);
117Object.keys(agGrid).forEach(function(key) {
118 exports[key] = agGrid[key];
119});
120agGrid.ModuleRegistry.register(ClientSideRowModelModule.ClientSideRowModelModule);
121agGrid.ModuleRegistry.register(CsvExportModule.CsvExportModule);
122agGrid.ModuleRegistry.register(InfiniteRowModelModule.InfiniteRowModelModule);
123__webpack_require__(257);
124__webpack_require__(261);
125__webpack_require__(263);
126__webpack_require__(265);
127__webpack_require__(267);
128__webpack_require__(269);
129__webpack_require__(271);
130__webpack_require__(273);
131__webpack_require__(275);
132__webpack_require__(277);
133__webpack_require__(279);
134__webpack_require__(281);
135__webpack_require__(283);
136__webpack_require__(285);
137
138/***/ }),
139/* 1 */
140/***/ (function(module, __webpack_exports__, __webpack_require__) {
141
142"use strict";
143__webpack_require__.r(__webpack_exports__);
144/* harmony import */ var _clientSideRowModelModule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
145/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return _clientSideRowModelModule__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"]; });
146
147
148
149
150/***/ }),
151/* 2 */
152/***/ (function(module, __webpack_exports__, __webpack_require__) {
153
154"use strict";
155__webpack_require__.r(__webpack_exports__);
156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return ClientSideRowModelModule; });
157/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
158/* harmony import */ var _clientSideRowModel_clientSideRowModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(233);
159/* harmony import */ var _clientSideRowModel_filterStage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(235);
160/* harmony import */ var _clientSideRowModel_sortStage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(236);
161/* harmony import */ var _clientSideRowModel_flattenStage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(237);
162/* harmony import */ var _clientSideRowModel_sortService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(238);
163/* harmony import */ var _clientSideRowModel_filterService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(239);
164/* harmony import */ var _clientSideRowModel_immutableService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(240);
165
166
167
168
169
170
171
172
173var ClientSideRowModelModule = {
174 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].ClientSideRowModelModule,
175 beans: [_clientSideRowModel_filterStage__WEBPACK_IMPORTED_MODULE_2__["FilterStage"], _clientSideRowModel_sortStage__WEBPACK_IMPORTED_MODULE_3__["SortStage"], _clientSideRowModel_flattenStage__WEBPACK_IMPORTED_MODULE_4__["FlattenStage"], _clientSideRowModel_sortService__WEBPACK_IMPORTED_MODULE_5__["SortService"], _clientSideRowModel_filterService__WEBPACK_IMPORTED_MODULE_6__["FilterService"], _clientSideRowModel_immutableService__WEBPACK_IMPORTED_MODULE_7__["ImmutableService"]],
176 rowModels: { clientSide: _clientSideRowModel_clientSideRowModel__WEBPACK_IMPORTED_MODULE_1__["ClientSideRowModel"] }
177};
178
179
180/***/ }),
181/* 3 */
182/***/ (function(module, __webpack_exports__, __webpack_require__) {
183
184"use strict";
185__webpack_require__.r(__webpack_exports__);
186/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_0__["ColumnFactory"]; });
188
189/* harmony import */ var _columnController_columnController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
190/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnController", function() { return _columnController_columnController__WEBPACK_IMPORTED_MODULE_1__["ColumnController"]; });
191
192/* harmony import */ var _columnController_columnKeyCreator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return _columnController_columnKeyCreator__WEBPACK_IMPORTED_MODULE_2__["ColumnKeyCreator"]; });
194
195/* harmony import */ var _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28);
196/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_3__["ColumnUtils"]; });
197
198/* harmony import */ var _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30);
199/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_4__["DisplayedGroupCreator"]; });
200
201/* harmony import */ var _columnController_groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
202/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return _columnController_groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__["GroupInstanceIdCreator"]; });
203
204/* harmony import */ var _headless_headlessService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31);
205/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeadlessService", function() { return _headless_headlessService__WEBPACK_IMPORTED_MODULE_6__["HeadlessService"]; });
206
207/* harmony import */ var _headless_testHeadless__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(32);
208/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TestHeadless", function() { return _headless_testHeadless__WEBPACK_IMPORTED_MODULE_7__["TestHeadless"]; });
209
210/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(35);
211/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return _components_componentUtil__WEBPACK_IMPORTED_MODULE_8__["ComponentUtil"]; });
212
213/* harmony import */ var _components_colDefUtil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(37);
214/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return _components_colDefUtil__WEBPACK_IMPORTED_MODULE_9__["ColDefUtil"]; });
215
216/* harmony import */ var _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(38);
217/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_10__["UserComponentRegistry"]; });
218
219/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(75);
220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_11__["UserComponentFactory"]; });
221
222/* harmony import */ var _components_agGridNg1__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97);
223/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithAngular1", function() { return _components_agGridNg1__WEBPACK_IMPORTED_MODULE_12__["initialiseAgGridWithAngular1"]; });
224
225/* harmony import */ var _components_agGridWebComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(224);
226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithWebComponents", function() { return _components_agGridWebComponent__WEBPACK_IMPORTED_MODULE_13__["initialiseAgGridWithWebComponents"]; });
227
228/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(20);
229/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return _context_beanStub__WEBPACK_IMPORTED_MODULE_14__["BeanStub"]; });
230
231/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12);
232/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Context"]; });
233
234/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Autowired"]; });
235
236/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["PostConstruct"]; });
237
238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["PreConstruct"]; });
239
240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Optional"]; });
241
242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Bean"]; });
243
244/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Qualifier"]; });
245
246/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["PreDestroy"]; });
247
248/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(59);
249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["QuerySelector"]; });
250
251/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GuiListener", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["GuiListener"]; });
252
253/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["RefSelector"]; });
254
255/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridListener", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["GridListener"]; });
256
257/* harmony import */ var _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(149);
258/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_17__["ExcelFactoryMode"]; });
259
260/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(78);
261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["DragAndDropService"]; });
262
263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["DragSourceType"]; });
264
265/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["HorizontalDirection"]; });
266
267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["VerticalDirection"]; });
268
269/* harmony import */ var _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(161);
270/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_19__["DragService"]; });
271
272/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(10);
273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return _entities_column__WEBPACK_IMPORTED_MODULE_20__["Column"]; });
274
275/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(9);
276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return _entities_columnGroup__WEBPACK_IMPORTED_MODULE_21__["ColumnGroup"]; });
277
278/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(8);
279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OriginalColumnGroup", function() { return _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_22__["OriginalColumnGroup"]; });
280
281/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(73);
282/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return _entities_rowNode__WEBPACK_IMPORTED_MODULE_23__["RowNode"]; });
283
284/* harmony import */ var _filter_filterManager__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(134);
285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return _filter_filterManager__WEBPACK_IMPORTED_MODULE_24__["FilterManager"]; });
286
287/* harmony import */ var _filter_provided_providedFilter__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(65);
288/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return _filter_provided_providedFilter__WEBPACK_IMPORTED_MODULE_25__["ProvidedFilter"]; });
289
290/* harmony import */ var _filter_provided_simpleFilter__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(63);
291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return _filter_provided_simpleFilter__WEBPACK_IMPORTED_MODULE_26__["SimpleFilter"]; });
292
293/* harmony import */ var _filter_provided_scalarFilter__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(68);
294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return _filter_provided_scalarFilter__WEBPACK_IMPORTED_MODULE_27__["ScalarFilter"]; });
295
296/* harmony import */ var _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(86);
297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_28__["NumberFilter"]; });
298
299/* harmony import */ var _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(93);
300/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_29__["TextFilter"]; });
301
302/* harmony import */ var _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(61);
303/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_30__["DateFilter"]; });
304
305/* harmony import */ var _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(96);
306/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_31__["TextFloatingFilter"]; });
307
308/* harmony import */ var _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(125);
309/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterWrapper", function() { return _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_32__["FloatingFilterWrapper"]; });
310
311/* harmony import */ var _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(127);
312/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_33__["FloatingFilterMapper"]; });
313
314/* harmony import */ var _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(136);
315/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_34__["GridBodyComp"]; });
316
317/* harmony import */ var _gridBodyComp_gridBodyController__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(138);
318/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyController", function() { return _gridBodyComp_gridBodyController__WEBPACK_IMPORTED_MODULE_35__["GridBodyController"]; });
319
320/* harmony import */ var _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(168);
321/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_36__["ScrollVisibleService"]; });
322
323/* harmony import */ var _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(163);
324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_37__["MouseEventService"]; });
325
326/* harmony import */ var _headerRendering_bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(130);
327/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return _headerRendering_bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_38__["BodyDropPivotTarget"]; });
328
329/* harmony import */ var _headerRendering_bodyDropTarget__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(128);
330/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return _headerRendering_bodyDropTarget__WEBPACK_IMPORTED_MODULE_39__["BodyDropTarget"]; });
331
332/* harmony import */ var _headerRendering_cssClassApplier__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(115);
333/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return _headerRendering_cssClassApplier__WEBPACK_IMPORTED_MODULE_40__["CssClassApplier"]; });
334
335/* harmony import */ var _headerRendering_headerContainer__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(112);
336/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderContainer", function() { return _headerRendering_headerContainer__WEBPACK_IMPORTED_MODULE_41__["HeaderContainer"]; });
337
338/* harmony import */ var _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(111);
339/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRootComp", function() { return _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_42__["HeaderRootComp"]; });
340
341/* harmony import */ var _headerRendering_headerRowComp__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(113);
342/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return _headerRendering_headerRowComp__WEBPACK_IMPORTED_MODULE_43__["HeaderRowComp"]; });
343
344/* harmony import */ var _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(157);
345/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_44__["HorizontalResizeService"]; });
346
347/* harmony import */ var _headerRendering_moveColumnController__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(129);
348/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveColumnController", function() { return _headerRendering_moveColumnController__WEBPACK_IMPORTED_MODULE_45__["MoveColumnController"]; });
349
350/* harmony import */ var _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(160);
351/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_46__["StandardMenuFactory"]; });
352
353/* harmony import */ var _layout_tabbedLayout__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(225);
354/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return _layout_tabbedLayout__WEBPACK_IMPORTED_MODULE_47__["TabbedLayout"]; });
355
356/* harmony import */ var _misc_simpleHttpRequest__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(226);
357/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return _misc_simpleHttpRequest__WEBPACK_IMPORTED_MODULE_48__["simpleHttpRequest"]; });
358
359/* harmony import */ var _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(188);
360/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_49__["ResizeObserverService"]; });
361
362/* harmony import */ var _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(182);
363/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_50__["AnimationFrameService"]; });
364
365/* harmony import */ var _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(85);
366/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_51__["LargeTextCellEditor"]; });
367
368/* harmony import */ var _rendering_cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(109);
369/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return _rendering_cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_52__["PopupEditorWrapper"]; });
370
371/* harmony import */ var _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(84);
372/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSelectCellEditor", function() { return _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_53__["PopupSelectCellEditor"]; });
373
374/* harmony import */ var _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(83);
375/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupTextCellEditor", function() { return _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_54__["PopupTextCellEditor"]; });
376
377/* harmony import */ var _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(82);
378/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_55__["SelectCellEditor"]; });
379
380/* harmony import */ var _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(39);
381/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_56__["TextCellEditor"]; });
382
383/* harmony import */ var _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(79);
384/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_57__["AnimateShowChangeCellRenderer"]; });
385
386/* harmony import */ var _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(80);
387/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_58__["AnimateSlideCellRenderer"]; });
388
389/* harmony import */ var _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(72);
390/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_59__["GroupCellRenderer"]; });
391
392/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(117);
393/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_60__["SetLeftFeature"]; });
394
395/* harmony import */ var _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(156);
396/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_61__["AutoWidthCalculator"]; });
397
398/* harmony import */ var _rendering_checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(74);
399/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return _rendering_checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_62__["CheckboxSelectionComponent"]; });
400
401/* harmony import */ var _rendering_cellComp__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(107);
402/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return _rendering_cellComp__WEBPACK_IMPORTED_MODULE_63__["CellComp"]; });
403
404/* harmony import */ var _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(105);
405/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowController", function() { return _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_64__["RowController"]; });
406
407/* harmony import */ var _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(104);
408/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_65__["RowRenderer"]; });
409
410/* harmony import */ var _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(165);
411/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_66__["ValueFormatterService"]; });
412
413/* harmony import */ var _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(208);
414/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_67__["PinnedRowModel"]; });
415
416/* harmony import */ var _interfaces_serverSideTransaction__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(227);
417/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return _interfaces_serverSideTransaction__WEBPACK_IMPORTED_MODULE_68__["ServerSideTransactionResultStatus"]; });
418
419/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(102);
420/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return _utils_changedPath__WEBPACK_IMPORTED_MODULE_69__["ChangedPath"]; });
421
422/* harmony import */ var _rowNodeCache_rowNodeBlock__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(216);
423/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return _rowNodeCache_rowNodeBlock__WEBPACK_IMPORTED_MODULE_70__["RowNodeBlock"]; });
424
425/* harmony import */ var _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(215);
426/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_71__["RowNodeBlockLoader"]; });
427
428/* harmony import */ var _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(173);
429/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_72__["PaginationProxy"]; });
430
431/* harmony import */ var _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(150);
432/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_73__["ClientSideRowModelSteps"]; });
433
434/* harmony import */ var _styling_stylingService__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(169);
435/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return _styling_stylingService__WEBPACK_IMPORTED_MODULE_74__["StylingService"]; });
436
437/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(137);
438/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_75__["LayoutCssClasses"]; });
439
440/* harmony import */ var _widgets_agAbstractField__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(121);
441/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return _widgets_agAbstractField__WEBPACK_IMPORTED_MODULE_76__["AgAbstractField"]; });
442
443/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(119);
444/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_77__["AgCheckbox"]; });
445
446/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(166);
447/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_78__["AgRadioButton"]; });
448
449/* harmony import */ var _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(204);
450/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_79__["AgToggleButton"]; });
451
452/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(193);
453/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_80__["AgInputTextField"]; });
454
455/* harmony import */ var _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(194);
456/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_81__["AgInputTextArea"]; });
457
458/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(199);
459/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_82__["AgInputNumberField"]; });
460
461/* harmony import */ var _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(200);
462/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_83__["AgInputRange"]; });
463
464/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(201);
465/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return _widgets_agSelect__WEBPACK_IMPORTED_MODULE_84__["AgSelect"]; });
466
467/* harmony import */ var _widgets_agSlider__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(195);
468/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return _widgets_agSlider__WEBPACK_IMPORTED_MODULE_85__["AgSlider"]; });
469
470/* harmony import */ var _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(203);
471/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAngleSelect", function() { return _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_86__["AgAngleSelect"]; });
472
473/* harmony import */ var _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(196);
474/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgColorPicker", function() { return _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_87__["AgColorPicker"]; });
475
476/* harmony import */ var _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(190);
477/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_88__["AgGroupComponent"]; });
478
479/* harmony import */ var _widgets_agDialog__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(191);
480/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return _widgets_agDialog__WEBPACK_IMPORTED_MODULE_89__["AgDialog"]; });
481
482/* harmony import */ var _widgets_agPanel__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(192);
483/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return _widgets_agPanel__WEBPACK_IMPORTED_MODULE_90__["AgPanel"]; });
484
485/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(41);
486/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _widgets_component__WEBPACK_IMPORTED_MODULE_91__["Component"]; });
487
488/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(67);
489/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusComponent", function() { return _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_92__["ManagedFocusComponent"]; });
490
491/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(40);
492/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_93__["PopupComponent"]; });
493
494/* harmony import */ var _widgets_popupService__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(153);
495/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return _widgets_popupService__WEBPACK_IMPORTED_MODULE_94__["PopupService"]; });
496
497/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(70);
498/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return _widgets_touchListener__WEBPACK_IMPORTED_MODULE_95__["TouchListener"]; });
499
500/* harmony import */ var _widgets_virtualList__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(228);
501/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return _widgets_virtualList__WEBPACK_IMPORTED_MODULE_96__["VirtualList"]; });
502
503/* harmony import */ var _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(108);
504/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_97__["CellRangeType"]; });
505
506/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_97__["SelectionHandleType"]; });
507
508/* harmony import */ var _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(167);
509/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_98__["VanillaFrameworkOverrides"]; });
510
511/* harmony import */ var _cellNavigationService__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(164);
512/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return _cellNavigationService__WEBPACK_IMPORTED_MODULE_99__["CellNavigationService"]; });
513
514/* harmony import */ var _alignedGridsService__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(177);
515/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return _alignedGridsService__WEBPACK_IMPORTED_MODULE_100__["AlignedGridsService"]; });
516
517/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(16);
518/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return _constants_constants__WEBPACK_IMPORTED_MODULE_101__["Constants"]; });
519
520/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(60);
521/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return _constants_keyCode__WEBPACK_IMPORTED_MODULE_102__["KeyCode"]; });
522
523/* harmony import */ var _constants_keyName__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(132);
524/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyName", function() { return _constants_keyName__WEBPACK_IMPORTED_MODULE_103__["KeyName"]; });
525
526/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(98);
527/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _grid__WEBPACK_IMPORTED_MODULE_104__["Grid"]; });
528
529/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return _grid__WEBPACK_IMPORTED_MODULE_104__["GridCoreCreator"]; });
530
531/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(148);
532/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return _gridApi__WEBPACK_IMPORTED_MODULE_105__["GridApi"]; });
533
534/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(24);
535/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _eventKeys__WEBPACK_IMPORTED_MODULE_106__["Events"]; });
536
537/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(154);
538/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusController", function() { return _focusController__WEBPACK_IMPORTED_MODULE_107__["FocusController"]; });
539
540/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(229);
541/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultGroupComparator", function() { return _functions__WEBPACK_IMPORTED_MODULE_108__["defaultGroupComparator"]; });
542
543/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(99);
544/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridOptionsWrapper", function() { return _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_109__["GridOptionsWrapper"]; });
545
546/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(11);
547/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return _eventService__WEBPACK_IMPORTED_MODULE_110__["EventService"]; });
548
549/* harmony import */ var _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(185);
550/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_111__["SelectableService"]; });
551
552/* harmony import */ var _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(217);
553/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_112__["RowNodeSorter"]; });
554
555/* harmony import */ var _controllersService__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(218);
556/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ControllersService", function() { return _controllersService__WEBPACK_IMPORTED_MODULE_113__["ControllersService"]; });
557
558/* harmony import */ var _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(158);
559/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_114__["GridComp"]; });
560
561/* harmony import */ var _gridComp_gridCompController__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(159);
562/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCompController", function() { return _gridComp_gridCompController__WEBPACK_IMPORTED_MODULE_115__["GridCompController"]; });
563
564/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(155);
565/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _logger__WEBPACK_IMPORTED_MODULE_116__["Logger"]; });
566
567/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return _logger__WEBPACK_IMPORTED_MODULE_116__["LoggerFactory"]; });
568
569/* harmony import */ var _selectionController__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(101);
570/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionController", function() { return _selectionController__WEBPACK_IMPORTED_MODULE_117__["SelectionController"]; });
571
572/* harmony import */ var _sortController__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(162);
573/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return _sortController__WEBPACK_IMPORTED_MODULE_118__["SortController"]; });
574
575/* harmony import */ var _templateService__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(152);
576/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _templateService__WEBPACK_IMPORTED_MODULE_119__["TemplateService"]; });
577
578/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(42);
579/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["Color"]; });
580
581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["stringToArray"]; });
582
583/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["_"]; });
584
585/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["NumberSequence"]; });
586
587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["AgPromiseStatus"]; });
588
589/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["AgPromise"]; });
590
591/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["Timer"]; });
592
593/* harmony import */ var _valueService_valueService__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(135);
594/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return _valueService_valueService__WEBPACK_IMPORTED_MODULE_121__["ValueService"]; });
595
596/* harmony import */ var _valueService_valueCache__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(175);
597/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return _valueService_valueCache__WEBPACK_IMPORTED_MODULE_122__["ValueCache"]; });
598
599/* harmony import */ var _valueService_expressionService__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(151);
600/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return _valueService_expressionService__WEBPACK_IMPORTED_MODULE_123__["ExpressionService"]; });
601
602/* harmony import */ var _entities_cellPosition__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(207);
603/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return _entities_cellPosition__WEBPACK_IMPORTED_MODULE_124__["CellPositionUtils"]; });
604
605/* harmony import */ var _entities_rowPosition__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(206);
606/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return _entities_rowPosition__WEBPACK_IMPORTED_MODULE_125__["RowPositionUtils"]; });
607
608/* harmony import */ var _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(212);
609/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_126__["HeaderPositionUtils"]; });
610
611/* harmony import */ var _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(131);
612/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_127__["HeaderNavigationService"]; });
613
614/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_127__["HeaderNavigationDirection"]; });
615
616/* harmony import */ var _entities_gridOptions__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(230);
617/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideStoreType", function() { return _entities_gridOptions__WEBPACK_IMPORTED_MODULE_128__["ServerSideStoreType"]; });
618
619/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(36);
620/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return _propertyKeys__WEBPACK_IMPORTED_MODULE_129__["PropertyKeys"]; });
621
622/* harmony import */ var _columnController_columnApi__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(103);
623/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return _columnController_columnApi__WEBPACK_IMPORTED_MODULE_130__["ColumnApi"]; });
624
625/* harmony import */ var _components_framework_frameworkComponentWrapper__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(231);
626/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return _components_framework_frameworkComponentWrapper__WEBPACK_IMPORTED_MODULE_131__["BaseComponentWrapper"]; });
627
628/* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(181);
629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _environment__WEBPACK_IMPORTED_MODULE_132__["Environment"]; });
630
631/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(58);
632/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_133__["TooltipFeature"]; });
633
634/* harmony import */ var _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(232);
635/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChartType", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_134__["ChartType"]; });
636
637/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LegendPosition", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_134__["LegendPosition"]; });
638
639/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(17);
640/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return _modules_moduleNames__WEBPACK_IMPORTED_MODULE_135__["ModuleNames"]; });
641
642/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(18);
643/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_136__["ModuleRegistry"]; });
644
645/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(23);
646/* empty/unused harmony star reexport *//**
647 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
648 * @version v25.3.0
649 * @link http://www.ag-grid.com/
650 * @license MIT
651 */
652var globalObj = typeof global === 'undefined' ? {} : global;
653globalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;
654globalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;
655globalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;
656globalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;
657globalObj.Node = typeof Node === 'undefined' ? {} : Node;
658globalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;
659// columnController
660
661
662
663
664
665
666// headless
667
668
669// components
670
671
672
673
674
675
676// context
677
678
679
680// excel
681
682// dragAndDrop
683
684
685// entities
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700// gridPanel
701
702
703
704
705// headerRendering
706
707
708
709
710
711
712
713
714
715// layout
716
717// misc
718
719
720
721
722
723
724
725
726
727
728
729
730// features
731
732// rendering
733
734
735
736
737
738
739// row models
740
741
742
743
744
745
746
747//styling
748
749
750// widgets
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772// range
773
774// root
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811// charts
812
813
814
815// events
816
817
818/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)))
819
820/***/ }),
821/* 4 */
822/***/ (function(module, exports) {
823
824var g;
825
826// This works in non-strict mode
827g = (function() {
828 return this;
829})();
830
831try {
832 // This works if eval is allowed (see CSP)
833 g = g || new Function("return this")();
834} catch (e) {
835 // This works if the window reference is available
836 if (typeof window === "object") g = window;
837}
838
839// g can still be undefined, but nothing to do about it...
840// We return undefined, instead of nothing here, so it's
841// easier to handle this case. if(!global) { ...}
842
843module.exports = g;
844
845
846/***/ }),
847/* 5 */
848/***/ (function(module, __webpack_exports__, __webpack_require__) {
849
850"use strict";
851__webpack_require__.r(__webpack_exports__);
852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return ColumnFactory; });
853/* harmony import */ var _columnKeyCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
854/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
855/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);
856/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
857/* harmony import */ var _entities_defaultColumnTypes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
858/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);
859/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
860/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
861/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
862/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(14);
863/**
864 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
865 * @version v25.3.0
866 * @link http://www.ag-grid.com/
867 * @license MIT
868 */
869var __extends = (undefined && undefined.__extends) || (function () {
870 var extendStatics = function (d, b) {
871 extendStatics = Object.setPrototypeOf ||
872 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
873 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
874 return extendStatics(d, b);
875 };
876 return function (d, b) {
877 extendStatics(d, b);
878 function __() { this.constructor = d; }
879 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
880 };
881})();
882var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
883 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
884 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
885 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
886 return c > 3 && r && Object.defineProperty(target, key, r), r;
887};
888var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
889 return function (target, key) { decorator(target, key, paramIndex); }
890};
891
892
893
894
895
896
897
898
899
900
901// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups
902var ColumnFactory = /** @class */ (function (_super) {
903 __extends(ColumnFactory, _super);
904 function ColumnFactory() {
905 return _super !== null && _super.apply(this, arguments) || this;
906 }
907 ColumnFactory.prototype.setBeans = function (loggerFactory) {
908 this.logger = loggerFactory.create('ColumnFactory');
909 };
910 ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {
911 // column key creator dishes out unique column id's in a deterministic way,
912 // so if we have two grids (that could be master/slave) with same column definitions,
913 // then this ensures the two grids use identical id's.
914 var columnKeyCreator = new _columnKeyCreator__WEBPACK_IMPORTED_MODULE_0__["ColumnKeyCreator"]();
915 var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;
916 columnKeyCreator.addExistingKeys(existingColKeys);
917 // create am unbalanced tree that maps the provided definitions
918 var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);
919 var treeDept = this.findMaxDept(unbalancedTree, 0);
920 this.logger.log('Number of levels for grouped columns is ' + treeDept);
921 var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);
922 var deptFirstCallback = function (child, parent) {
923 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
924 child.setupExpandable();
925 }
926 // we set the original parents at the end, rather than when we go along, as balancing the tree
927 // adds extra levels into the tree. so we can only set parents when balancing is done.
928 child.setOriginalParent(parent);
929 };
930 this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);
931 return {
932 columnTree: columnTree,
933 treeDept: treeDept
934 };
935 };
936 ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {
937 var existingCols = [];
938 var existingGroups = [];
939 var existingColKeys = [];
940 if (existingTree) {
941 this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {
942 if (item instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
943 var group = item;
944 existingGroups.push(group);
945 }
946 else {
947 var col = item;
948 existingColKeys.push(col.getId());
949 existingCols.push(col);
950 }
951 });
952 }
953 return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };
954 };
955 ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {
956 var _this = this;
957 var autoColBalancedTree = [];
958 autoGroupCols.forEach(function (col) {
959 var fakeTreeItem = _this.createAutoGroupTreeItem(gridBalancedTree, col);
960 autoColBalancedTree.push(fakeTreeItem);
961 });
962 return autoColBalancedTree;
963 };
964 ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {
965 var dept = this.findDepth(balancedColumnTree);
966 // at the end, this will be the top of the tree item.
967 var nextChild = column;
968 for (var i = dept - 1; i >= 0; i--) {
969 var autoGroup = new _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"](null, "FAKE_PATH_" + column.getId() + "}_" + i, true, i);
970 this.context.createBean(autoGroup);
971 autoGroup.setChildren([nextChild]);
972 nextChild.setOriginalParent(autoGroup);
973 nextChild = autoGroup;
974 }
975 // at this point, the nextChild is the top most item in the tree
976 return nextChild;
977 };
978 ColumnFactory.prototype.findDepth = function (balancedColumnTree) {
979 var dept = 0;
980 var pointer = balancedColumnTree;
981 while (pointer && pointer[0] && pointer[0] instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
982 dept++;
983 pointer = pointer[0].getChildren();
984 }
985 return dept;
986 };
987 ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {
988 var result = [];
989 // go through each child, for groups, recurse a level deeper,
990 // for columns we need to pad
991 for (var i = 0; i < unbalancedTree.length; i++) {
992 var child = unbalancedTree[i];
993 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
994 // child is a group, all we do is go to the next level of recursion
995 var originalGroup = child;
996 var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);
997 originalGroup.setChildren(newChildren);
998 result.push(originalGroup);
999 }
1000 else {
1001 // child is a column - so here we add in the padded column groups if needed
1002 var firstPaddedGroup = void 0;
1003 var currentPaddedGroup = void 0;
1004 // this for loop will NOT run any loops if no padded column groups are needed
1005 for (var j = columnDept - 1; j >= currentDept; j--) {
1006 var newColId = columnKeyCreator.getUniqueKey(null, null);
1007 var colGroupDefMerged = this.createMergedColGroupDef(null);
1008 var paddedGroup = new _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"](colGroupDefMerged, newColId, true, currentDept);
1009 this.context.createBean(paddedGroup);
1010 if (currentPaddedGroup) {
1011 currentPaddedGroup.setChildren([paddedGroup]);
1012 }
1013 currentPaddedGroup = paddedGroup;
1014 if (!firstPaddedGroup) {
1015 firstPaddedGroup = currentPaddedGroup;
1016 }
1017 }
1018 // likewise this if statement will not run if no padded groups
1019 if (firstPaddedGroup && currentPaddedGroup) {
1020 result.push(firstPaddedGroup);
1021 var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]; });
1022 if (hasGroups) {
1023 currentPaddedGroup.setChildren([child]);
1024 continue;
1025 }
1026 else {
1027 currentPaddedGroup.setChildren(unbalancedTree);
1028 break;
1029 }
1030 }
1031 result.push(child);
1032 }
1033 }
1034 return result;
1035 };
1036 ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {
1037 var maxDeptThisLevel = dept;
1038 for (var i = 0; i < treeChildren.length; i++) {
1039 var abstractColumn = treeChildren[i];
1040 if (abstractColumn instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
1041 var originalGroup = abstractColumn;
1042 var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);
1043 if (maxDeptThisLevel < newDept) {
1044 maxDeptThisLevel = newDept;
1045 }
1046 }
1047 }
1048 return maxDeptThisLevel;
1049 };
1050 ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {
1051 var _this = this;
1052 var result = [];
1053 if (!defs) {
1054 return result;
1055 }
1056 defs.forEach(function (def) {
1057 var newGroupOrColumn;
1058 if (_this.isColumnGroup(def)) {
1059 newGroupOrColumn = _this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);
1060 }
1061 else {
1062 newGroupOrColumn = _this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);
1063 }
1064 result.push(newGroupOrColumn);
1065 });
1066 return result;
1067 };
1068 ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {
1069 var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);
1070 var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);
1071 var originalGroup = new _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"](colGroupDefMerged, groupId, false, level);
1072 this.context.createBean(originalGroup);
1073 var existingGroup = this.findExistingGroup(colGroupDef, existingGroups);
1074 if (existingGroup && existingGroup.isExpanded()) {
1075 originalGroup.setExpanded(true);
1076 }
1077 var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);
1078 originalGroup.setChildren(children);
1079 return originalGroup;
1080 };
1081 ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {
1082 var colGroupDefMerged = {};
1083 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])(colGroupDefMerged, this.gridOptionsWrapper.getDefaultColGroupDef());
1084 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])(colGroupDefMerged, colGroupDef);
1085 this.checkForDeprecatedItems(colGroupDefMerged);
1086 return colGroupDefMerged;
1087 };
1088 ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {
1089 var colDefMerged = this.mergeColDefs(colDef);
1090 this.checkForDeprecatedItems(colDefMerged);
1091 // see if column already exists
1092 var column = this.findExistingColumn(colDef, existingColsCopy);
1093 if (!column) {
1094 // no existing column, need to create one
1095 var colId = columnKeyCreator.getUniqueKey(colDefMerged.colId, colDefMerged.field);
1096 column = new _entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"](colDefMerged, colDef, colId, primaryColumns);
1097 this.context.createBean(column);
1098 }
1099 else {
1100 column.setColDef(colDefMerged, colDef);
1101 this.applyColumnState(column, colDefMerged);
1102 }
1103 return column;
1104 };
1105 ColumnFactory.prototype.applyColumnState = function (column, colDef) {
1106 // flex
1107 var flex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToNumber"])(colDef.flex);
1108 if (flex !== undefined) {
1109 column.setFlex(flex);
1110 }
1111 // width - we only set width if column is not flexing
1112 var noFlexThisCol = column.getFlex() <= 0;
1113 if (noFlexThisCol) {
1114 // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)
1115 var width = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToNumber"])(colDef.width);
1116 if (width != null) {
1117 column.setActualWidth(width);
1118 }
1119 else {
1120 // otherwise set the width again, in case min or max width has changed,
1121 // and width needs to be adjusted.
1122 var widthBeforeUpdate = column.getActualWidth();
1123 column.setActualWidth(widthBeforeUpdate);
1124 }
1125 }
1126 // sort - anything but undefined will set sort, thus null or empty string will clear the sort
1127 if (colDef.sort !== undefined) {
1128 if (colDef.sort == _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].SORT_ASC || colDef.sort == _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].SORT_DESC) {
1129 column.setSort(colDef.sort);
1130 }
1131 else {
1132 column.setSort(undefined);
1133 }
1134 }
1135 // sorted at - anything but undefined, thus null will clear the sortIndex
1136 var sortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToNumber"])(colDef.sortIndex);
1137 if (sortIndex !== undefined) {
1138 column.setSortIndex(sortIndex);
1139 }
1140 // hide - anything but undefined, thus null will clear the hide
1141 var hide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToBoolean"])(colDef.hide);
1142 if (hide !== undefined) {
1143 column.setVisible(!hide);
1144 }
1145 // pinned - anything but undefined, thus null or empty string will remove pinned
1146 if (colDef.pinned !== undefined) {
1147 column.setPinned(colDef.pinned);
1148 }
1149 };
1150 ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {
1151 var res = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["find"])(existingColsCopy, function (existingCol) {
1152 var existingColDef = existingCol.getUserProvidedColDef();
1153 if (!existingColDef) {
1154 return false;
1155 }
1156 var newHasId = newColDef.colId != null;
1157 var newHasField = newColDef.field != null;
1158 if (newHasId) {
1159 return existingCol.getId() === newColDef.colId;
1160 }
1161 if (newHasField) {
1162 return existingColDef.field === newColDef.field;
1163 }
1164 // if no id or field present, then try object equivalence.
1165 if (existingColDef === newColDef) {
1166 return true;
1167 }
1168 return false;
1169 });
1170 // make sure we remove, so if user provided duplicate id, then we don't have more than
1171 // one column instance for colDef with common id
1172 if (existingColsCopy && res) {
1173 Object(_utils_array__WEBPACK_IMPORTED_MODULE_9__["removeFromArray"])(existingColsCopy, res);
1174 }
1175 return res;
1176 };
1177 ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {
1178 var res = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["find"])(existingGroups, function (existingGroup) {
1179 var existingDef = existingGroup.getColGroupDef();
1180 if (!existingDef) {
1181 return false;
1182 }
1183 var newHasId = newGroupDef.groupId != null;
1184 if (newHasId) {
1185 return existingGroup.getId() === newGroupDef.groupId;
1186 }
1187 return false;
1188 });
1189 // make sure we remove, so if user provided duplicate id, then we don't have more than
1190 // one column instance for colDef with common id
1191 if (res) {
1192 Object(_utils_array__WEBPACK_IMPORTED_MODULE_9__["removeFromArray"])(existingGroups, res);
1193 }
1194 return res;
1195 };
1196 ColumnFactory.prototype.mergeColDefs = function (colDef) {
1197 // start with empty merged definition
1198 var colDefMerged = {};
1199 // merge properties from default column definitions
1200 var defaultColDef = this.gridOptionsWrapper.getDefaultColDef();
1201 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(colDefMerged, defaultColDef, true, true);
1202 // merge properties from column type properties
1203 var columnType = colDef.type;
1204 if (!columnType) {
1205 columnType = defaultColDef && defaultColDef.type;
1206 }
1207 // if type of both colDef and defaultColDef, then colDef gets preference
1208 if (columnType) {
1209 this.assignColumnTypes(columnType, colDefMerged);
1210 }
1211 // merge properties from column definitions
1212 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(colDefMerged, colDef, true, true);
1213 return colDefMerged;
1214 };
1215 ColumnFactory.prototype.assignColumnTypes = function (type, colDefMerged) {
1216 var typeKeys = [];
1217 if (type instanceof Array) {
1218 var invalidArray = type.some(function (a) { return typeof a !== 'string'; });
1219 if (invalidArray) {
1220 console.warn("ag-grid: if colDef.type is supplied an array it should be of type 'string[]'");
1221 }
1222 else {
1223 typeKeys = type;
1224 }
1225 }
1226 else if (typeof type === 'string') {
1227 typeKeys = type.split(',');
1228 }
1229 else {
1230 console.warn("ag-grid: colDef.type should be of type 'string' | 'string[]'");
1231 return;
1232 }
1233 // merge user defined with default column types
1234 var allColumnTypes = Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])({}, _entities_defaultColumnTypes__WEBPACK_IMPORTED_MODULE_4__["DefaultColumnTypes"]);
1235 var userTypes = this.gridOptionsWrapper.getColumnTypes() || {};
1236 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["iterateObject"])(userTypes, function (key, value) {
1237 if (key in allColumnTypes) {
1238 console.warn("AG Grid: the column type '" + key + "' is a default column type and cannot be overridden.");
1239 }
1240 else {
1241 allColumnTypes[key] = value;
1242 }
1243 });
1244 typeKeys.forEach(function (t) {
1245 var typeColDef = allColumnTypes[t.trim()];
1246 if (typeColDef) {
1247 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(colDefMerged, typeColDef, true, true);
1248 }
1249 else {
1250 console.warn("ag-grid: colDef.type '" + t + "' does not correspond to defined gridOptions.columnTypes");
1251 }
1252 });
1253 };
1254 ColumnFactory.prototype.checkForDeprecatedItems = function (colDef) {
1255 if (colDef) {
1256 var colDefNoType = colDef; // take out the type, so we can access attributes not defined in the type
1257 if (colDefNoType.group !== undefined) {
1258 console.warn('ag-grid: colDef.group is invalid, please check documentation on how to do grouping as it changed in version 3');
1259 }
1260 if (colDefNoType.headerGroup !== undefined) {
1261 console.warn('ag-grid: colDef.headerGroup is invalid, please check documentation on how to do grouping as it changed in version 3');
1262 }
1263 if (colDefNoType.headerGroupShow !== undefined) {
1264 console.warn('ag-grid: colDef.headerGroupShow is invalid, should be columnGroupShow, please check documentation on how to do grouping as it changed in version 3');
1265 }
1266 if (colDefNoType.suppressRowGroup !== undefined) {
1267 console.warn('ag-grid: colDef.suppressRowGroup is deprecated, please use colDef.type instead');
1268 }
1269 if (colDefNoType.suppressAggregation !== undefined) {
1270 console.warn('ag-grid: colDef.suppressAggregation is deprecated, please use colDef.type instead');
1271 }
1272 if (colDefNoType.suppressRowGroup || colDefNoType.suppressAggregation) {
1273 console.warn('ag-grid: colDef.suppressAggregation and colDef.suppressRowGroup are deprecated, use allowRowGroup, allowPivot and allowValue instead');
1274 }
1275 if (colDefNoType.displayName) {
1276 console.warn("ag-grid: Found displayName " + colDefNoType.displayName + ", please use headerName instead, displayName is deprecated.");
1277 colDefNoType.headerName = colDefNoType.displayName;
1278 }
1279 }
1280 };
1281 // if object has children, we assume it's a group
1282 ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {
1283 return abstractColDef.children !== undefined;
1284 };
1285 __decorate([
1286 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnUtils')
1287 ], ColumnFactory.prototype, "columnUtils", void 0);
1288 __decorate([
1289 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('loggerFactory'))
1290 ], ColumnFactory.prototype, "setBeans", null);
1291 ColumnFactory = __decorate([
1292 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Bean"])('columnFactory')
1293 ], ColumnFactory);
1294 return ColumnFactory;
1295}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
1296
1297
1298
1299/***/ }),
1300/* 6 */
1301/***/ (function(module, __webpack_exports__, __webpack_require__) {
1302
1303"use strict";
1304__webpack_require__.r(__webpack_exports__);
1305/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return ColumnKeyCreator; });
1306/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
1307/**
1308 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1309 * @version v25.3.0
1310 * @link http://www.ag-grid.com/
1311 * @license MIT
1312 */
1313// class returns a unique id to use for the column. it checks the existing columns, and if the requested
1314// id is already taken, it will start appending numbers until it gets a unique id.
1315// eg, if the col field is 'name', it will try ids: {name, name_1, name_2...}
1316// if no field or id provided in the col, it will try the ids of natural numbers
1317
1318var ColumnKeyCreator = /** @class */ (function () {
1319 function ColumnKeyCreator() {
1320 this.existingKeys = {};
1321 }
1322 ColumnKeyCreator.prototype.addExistingKeys = function (keys) {
1323 for (var i = 0; i < keys.length; i++) {
1324 this.existingKeys[keys[i]] = true;
1325 }
1326 };
1327 ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {
1328 // in case user passed in number for colId, convert to string
1329 colId = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["toStringOrNull"])(colId);
1330 var count = 0;
1331 while (true) {
1332 var idToTry = void 0;
1333 if (colId) {
1334 idToTry = colId;
1335 if (count !== 0) {
1336 idToTry += '_' + count;
1337 }
1338 }
1339 else if (colField) {
1340 idToTry = colField;
1341 if (count !== 0) {
1342 idToTry += '_' + count;
1343 }
1344 }
1345 else {
1346 idToTry = '' + count;
1347 }
1348 if (!this.existingKeys[idToTry]) {
1349 this.existingKeys[idToTry] = true;
1350 return idToTry;
1351 }
1352 count++;
1353 }
1354 };
1355 return ColumnKeyCreator;
1356}());
1357
1358
1359
1360/***/ }),
1361/* 7 */
1362/***/ (function(module, __webpack_exports__, __webpack_require__) {
1363
1364"use strict";
1365__webpack_require__.r(__webpack_exports__);
1366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeNull", function() { return makeNull; });
1367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exists", function() { return exists; });
1368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missing", function() { return missing; });
1369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingOrEmpty", function() { return missingOrEmpty; });
1370/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toStringOrNull", function() { return toStringOrNull; });
1371/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToNumber", function() { return attrToNumber; });
1372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToBoolean", function() { return attrToBoolean; });
1373/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToString", function() { return attrToString; });
1374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "referenceCompare", function() { return referenceCompare; });
1375/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsonEquals", function() { return jsonEquals; });
1376/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultComparator", function() { return defaultComparator; });
1377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; });
1378/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "values", function() { return values; });
1379/**
1380 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1381 * @version v25.3.0
1382 * @link http://www.ag-grid.com/
1383 * @license MIT
1384 */
1385/**
1386 * If value is undefined, null or blank, returns null, otherwise returns the value
1387 * @param {T} value
1388 * @returns {T | null}
1389 */
1390function makeNull(value) {
1391 if (value == null || value === '') {
1392 return null;
1393 }
1394 return value;
1395}
1396function exists(value, allowEmptyString) {
1397 if (allowEmptyString === void 0) { allowEmptyString = false; }
1398 return value != null && (value !== '' || allowEmptyString);
1399}
1400function missing(value) {
1401 return !exists(value);
1402}
1403function missingOrEmpty(value) {
1404 return value == null || value.length === 0;
1405}
1406function toStringOrNull(value) {
1407 return value != null && typeof value.toString === 'function' ? value.toString() : null;
1408}
1409// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1410function attrToNumber(value) {
1411 if (value === undefined) {
1412 // undefined or empty means ignore the value
1413 return;
1414 }
1415 if (value === null || value === '') {
1416 // null or blank means clear
1417 return null;
1418 }
1419 if (typeof value === 'number') {
1420 return isNaN(value) ? undefined : value;
1421 }
1422 var valueParsed = parseInt(value, 10);
1423 return isNaN(valueParsed) ? undefined : valueParsed;
1424}
1425// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1426function attrToBoolean(value) {
1427 if (value === undefined) {
1428 // undefined or empty means ignore the value
1429 return;
1430 }
1431 if (value === null || value === '') {
1432 // null means clear
1433 return false;
1434 }
1435 if (typeof value === 'boolean') {
1436 // if simple boolean, return the boolean
1437 return value;
1438 }
1439 // if equal to the string 'true' (ignoring case) then return true
1440 return (/true/i).test(value);
1441}
1442// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1443function attrToString(value) {
1444 if (value == null || value === '') {
1445 return;
1446 }
1447 return value;
1448}
1449/** @deprecated */
1450function referenceCompare(left, right) {
1451 if (left == null && right == null) {
1452 return true;
1453 }
1454 if (left == null && right != null) {
1455 return false;
1456 }
1457 if (left != null && right == null) {
1458 return false;
1459 }
1460 return left === right;
1461}
1462function jsonEquals(val1, val2) {
1463 var val1Json = val1 ? JSON.stringify(val1) : null;
1464 var val2Json = val2 ? JSON.stringify(val2) : null;
1465 return val1Json === val2Json;
1466}
1467function defaultComparator(valueA, valueB, accentedCompare) {
1468 if (accentedCompare === void 0) { accentedCompare = false; }
1469 var valueAMissing = valueA == null;
1470 var valueBMissing = valueB == null;
1471 // this is for aggregations sum and avg, where the result can be a number that is wrapped.
1472 // if we didn't do this, then the toString() value would be used, which would result in
1473 // the strings getting used instead of the numbers.
1474 if (valueA && valueA.toNumber) {
1475 valueA = valueA.toNumber();
1476 }
1477 if (valueB && valueB.toNumber) {
1478 valueB = valueB.toNumber();
1479 }
1480 if (valueAMissing && valueBMissing) {
1481 return 0;
1482 }
1483 if (valueAMissing) {
1484 return -1;
1485 }
1486 if (valueBMissing) {
1487 return 1;
1488 }
1489 function doQuickCompare(a, b) {
1490 return (a > b ? 1 : (a < b ? -1 : 0));
1491 }
1492 if (typeof valueA !== 'string') {
1493 return doQuickCompare(valueA, valueB);
1494 }
1495 if (!accentedCompare) {
1496 return doQuickCompare(valueA, valueB);
1497 }
1498 try {
1499 // using local compare also allows chinese comparisons
1500 return valueA.localeCompare(valueB);
1501 }
1502 catch (e) {
1503 // if something wrong with localeCompare, eg not supported
1504 // by browser, then just continue with the quick one
1505 return doQuickCompare(valueA, valueB);
1506 }
1507}
1508function find(collection, predicate, value) {
1509 if (collection === null || collection === undefined) {
1510 return null;
1511 }
1512 if (!Array.isArray(collection)) {
1513 var objToArray = values(collection);
1514 return find(objToArray, predicate, value);
1515 }
1516 var collectionAsArray = collection;
1517 var firstMatchingItem = null;
1518 for (var i = 0; i < collectionAsArray.length; i++) {
1519 var item = collectionAsArray[i];
1520 if (typeof predicate === 'string') {
1521 if (item[predicate] === value) {
1522 firstMatchingItem = item;
1523 break;
1524 }
1525 }
1526 else {
1527 var callback = predicate;
1528 if (callback(item)) {
1529 firstMatchingItem = item;
1530 break;
1531 }
1532 }
1533 }
1534 return firstMatchingItem;
1535}
1536function values(object) {
1537 if (object instanceof Set || object instanceof Map) {
1538 var arr_1 = [];
1539 object.forEach(function (value) { return arr_1.push(value); });
1540 return arr_1;
1541 }
1542 return Object.keys(object).map(function (key) { return object[key]; });
1543}
1544
1545
1546/***/ }),
1547/* 8 */
1548/***/ (function(module, __webpack_exports__, __webpack_require__) {
1549
1550"use strict";
1551__webpack_require__.r(__webpack_exports__);
1552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OriginalColumnGroup", function() { return OriginalColumnGroup; });
1553/* harmony import */ var _columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
1554/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
1555/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
1556/**
1557 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1558 * @version v25.3.0
1559 * @link http://www.ag-grid.com/
1560 * @license MIT
1561 */
1562
1563
1564
1565var OriginalColumnGroup = /** @class */ (function () {
1566 function OriginalColumnGroup(colGroupDef, groupId, padding, level) {
1567 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_2__["EventService"]();
1568 this.expandable = false;
1569 this.colGroupDef = colGroupDef;
1570 this.groupId = groupId;
1571 this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;
1572 this.padding = padding;
1573 this.level = level;
1574 }
1575 OriginalColumnGroup.prototype.setOriginalParent = function (originalParent) {
1576 this.originalParent = originalParent;
1577 };
1578 OriginalColumnGroup.prototype.getOriginalParent = function () {
1579 return this.originalParent;
1580 };
1581 OriginalColumnGroup.prototype.getLevel = function () {
1582 return this.level;
1583 };
1584 OriginalColumnGroup.prototype.isVisible = function () {
1585 // return true if at least one child is visible
1586 if (this.children) {
1587 return this.children.some(function (child) { return child.isVisible(); });
1588 }
1589 return false;
1590 };
1591 OriginalColumnGroup.prototype.isPadding = function () {
1592 return this.padding;
1593 };
1594 OriginalColumnGroup.prototype.setExpanded = function (expanded) {
1595 this.expanded = expanded === undefined ? false : expanded;
1596 var event = {
1597 type: OriginalColumnGroup.EVENT_EXPANDED_CHANGED
1598 };
1599 this.localEventService.dispatchEvent(event);
1600 };
1601 OriginalColumnGroup.prototype.isExpandable = function () {
1602 return this.expandable;
1603 };
1604 OriginalColumnGroup.prototype.isExpanded = function () {
1605 return this.expanded;
1606 };
1607 OriginalColumnGroup.prototype.getGroupId = function () {
1608 return this.groupId;
1609 };
1610 OriginalColumnGroup.prototype.getId = function () {
1611 return this.getGroupId();
1612 };
1613 OriginalColumnGroup.prototype.setChildren = function (children) {
1614 this.children = children;
1615 };
1616 OriginalColumnGroup.prototype.getChildren = function () {
1617 return this.children;
1618 };
1619 OriginalColumnGroup.prototype.getColGroupDef = function () {
1620 return this.colGroupDef;
1621 };
1622 OriginalColumnGroup.prototype.getLeafColumns = function () {
1623 var result = [];
1624 this.addLeafColumns(result);
1625 return result;
1626 };
1627 OriginalColumnGroup.prototype.addLeafColumns = function (leafColumns) {
1628 if (!this.children) {
1629 return;
1630 }
1631 this.children.forEach(function (child) {
1632 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
1633 leafColumns.push(child);
1634 }
1635 else if (child instanceof OriginalColumnGroup) {
1636 child.addLeafColumns(leafColumns);
1637 }
1638 });
1639 };
1640 OriginalColumnGroup.prototype.getColumnGroupShow = function () {
1641 var colGroupDef = this.colGroupDef;
1642 if (!colGroupDef) {
1643 return;
1644 }
1645 return colGroupDef.columnGroupShow;
1646 };
1647 // need to check that this group has at least one col showing when both expanded and contracted.
1648 // if not, then we don't allow expanding and contracting on this group
1649 OriginalColumnGroup.prototype.setupExpandable = function () {
1650 var _this = this;
1651 this.setExpandable();
1652 // note - we should be removing this event listener
1653 this.getLeafColumns().forEach(function (col) { return col.addEventListener(_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_VISIBLE_CHANGED, _this.onColumnVisibilityChanged.bind(_this)); });
1654 };
1655 OriginalColumnGroup.prototype.setExpandable = function () {
1656 if (this.isPadding()) {
1657 return;
1658 }
1659 // want to make sure the group doesn't disappear when it's open
1660 var atLeastOneShowingWhenOpen = false;
1661 // want to make sure the group doesn't disappear when it's closed
1662 var atLeastOneShowingWhenClosed = false;
1663 // want to make sure the group has something to show / hide
1664 var atLeastOneChangeable = false;
1665 var children = this.findChildrenRemovingPadding();
1666 for (var i = 0, j = children.length; i < j; i++) {
1667 var abstractColumn = children[i];
1668 if (!abstractColumn.isVisible()) {
1669 continue;
1670 }
1671 // if the abstractColumn is a grid generated group, there will be no colDef
1672 var headerGroupShow = abstractColumn.getColumnGroupShow();
1673 if (headerGroupShow === _columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].HEADER_GROUP_SHOW_OPEN) {
1674 atLeastOneShowingWhenOpen = true;
1675 atLeastOneChangeable = true;
1676 }
1677 else if (headerGroupShow === _columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].HEADER_GROUP_SHOW_CLOSED) {
1678 atLeastOneShowingWhenClosed = true;
1679 atLeastOneChangeable = true;
1680 }
1681 else {
1682 atLeastOneShowingWhenOpen = true;
1683 atLeastOneShowingWhenClosed = true;
1684 }
1685 }
1686 var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;
1687 if (this.expandable !== expandable) {
1688 this.expandable = expandable;
1689 var event_1 = {
1690 type: OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED
1691 };
1692 this.localEventService.dispatchEvent(event_1);
1693 }
1694 };
1695 OriginalColumnGroup.prototype.findChildrenRemovingPadding = function () {
1696 var res = [];
1697 var process = function (items) {
1698 items.forEach(function (item) {
1699 // if padding, we add this children instead of the padding
1700 var skipBecausePadding = item instanceof OriginalColumnGroup && item.isPadding();
1701 if (skipBecausePadding) {
1702 process(item.children);
1703 }
1704 else {
1705 res.push(item);
1706 }
1707 });
1708 };
1709 process(this.children);
1710 return res;
1711 };
1712 OriginalColumnGroup.prototype.onColumnVisibilityChanged = function () {
1713 this.setExpandable();
1714 };
1715 OriginalColumnGroup.prototype.addEventListener = function (eventType, listener) {
1716 this.localEventService.addEventListener(eventType, listener);
1717 };
1718 OriginalColumnGroup.prototype.removeEventListener = function (eventType, listener) {
1719 this.localEventService.removeEventListener(eventType, listener);
1720 };
1721 OriginalColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';
1722 OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';
1723 return OriginalColumnGroup;
1724}());
1725
1726
1727
1728/***/ }),
1729/* 9 */
1730/***/ (function(module, __webpack_exports__, __webpack_require__) {
1731
1732"use strict";
1733__webpack_require__.r(__webpack_exports__);
1734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return ColumnGroup; });
1735/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
1736/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
1737/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
1738/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
1739/**
1740 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1741 * @version v25.3.0
1742 * @link http://www.ag-grid.com/
1743 * @license MIT
1744 */
1745var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1746 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1747 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1748 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1749 return c > 3 && r && Object.defineProperty(target, key, r), r;
1750};
1751
1752
1753
1754
1755var ColumnGroup = /** @class */ (function () {
1756 function ColumnGroup(originalColumnGroup, groupId, instanceId, pinned) {
1757 // depends on the open/closed state of the group, only displaying columns are stored here
1758 this.displayedChildren = [];
1759 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_1__["EventService"]();
1760 this.groupId = groupId;
1761 this.instanceId = instanceId;
1762 this.originalColumnGroup = originalColumnGroup;
1763 this.pinned = pinned;
1764 }
1765 // this is static, a it is used outside of this class
1766 ColumnGroup.createUniqueId = function (groupId, instanceId) {
1767 return groupId + '_' + instanceId;
1768 };
1769 // as the user is adding and removing columns, the groups are recalculated.
1770 // this reset clears out all children, ready for children to be added again
1771 ColumnGroup.prototype.reset = function () {
1772 this.parent = null;
1773 this.children = null;
1774 this.displayedChildren = null;
1775 };
1776 ColumnGroup.prototype.getParent = function () {
1777 return this.parent;
1778 };
1779 ColumnGroup.prototype.setParent = function (parent) {
1780 this.parent = parent;
1781 };
1782 ColumnGroup.prototype.getUniqueId = function () {
1783 return ColumnGroup.createUniqueId(this.groupId, this.instanceId);
1784 };
1785 ColumnGroup.prototype.isEmptyGroup = function () {
1786 return this.displayedChildren.length === 0;
1787 };
1788 ColumnGroup.prototype.isMoving = function () {
1789 var allLeafColumns = this.getOriginalColumnGroup().getLeafColumns();
1790 if (!allLeafColumns || allLeafColumns.length === 0) {
1791 return false;
1792 }
1793 return allLeafColumns.every(function (col) { return col.isMoving(); });
1794 };
1795 ColumnGroup.prototype.checkLeft = function () {
1796 // first get all children to setLeft, as it impacts our decision below
1797 this.displayedChildren.forEach(function (child) {
1798 if (child instanceof ColumnGroup) {
1799 child.checkLeft();
1800 }
1801 });
1802 // set our left based on first displayed column
1803 if (this.displayedChildren.length > 0) {
1804 if (this.gridOptionsWrapper.isEnableRtl()) {
1805 var lastChild = Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(this.displayedChildren);
1806 var lastChildLeft = lastChild.getLeft();
1807 this.setLeft(lastChildLeft);
1808 }
1809 else {
1810 var firstChildLeft = this.displayedChildren[0].getLeft();
1811 this.setLeft(firstChildLeft);
1812 }
1813 }
1814 else {
1815 // this should never happen, as if we have no displayed columns, then
1816 // this groups should not even exist.
1817 this.setLeft(null);
1818 }
1819 };
1820 ColumnGroup.prototype.getLeft = function () {
1821 return this.left;
1822 };
1823 ColumnGroup.prototype.getOldLeft = function () {
1824 return this.oldLeft;
1825 };
1826 ColumnGroup.prototype.setLeft = function (left) {
1827 this.oldLeft = left;
1828 if (this.left !== left) {
1829 this.left = left;
1830 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));
1831 }
1832 };
1833 ColumnGroup.prototype.getPinned = function () {
1834 return this.pinned;
1835 };
1836 ColumnGroup.prototype.createAgEvent = function (type) {
1837 return { type: type };
1838 };
1839 ColumnGroup.prototype.addEventListener = function (eventType, listener) {
1840 this.localEventService.addEventListener(eventType, listener);
1841 };
1842 ColumnGroup.prototype.removeEventListener = function (eventType, listener) {
1843 this.localEventService.removeEventListener(eventType, listener);
1844 };
1845 ColumnGroup.prototype.getGroupId = function () {
1846 return this.groupId;
1847 };
1848 ColumnGroup.prototype.getInstanceId = function () {
1849 return this.instanceId;
1850 };
1851 ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {
1852 var result = false;
1853 this.children.forEach(function (foundChild) {
1854 if (wantedChild === foundChild) {
1855 result = true;
1856 }
1857 if (foundChild instanceof ColumnGroup) {
1858 if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {
1859 result = true;
1860 }
1861 }
1862 });
1863 return result;
1864 };
1865 ColumnGroup.prototype.getActualWidth = function () {
1866 var groupActualWidth = 0;
1867 if (this.displayedChildren) {
1868 this.displayedChildren.forEach(function (child) {
1869 groupActualWidth += child.getActualWidth();
1870 });
1871 }
1872 return groupActualWidth;
1873 };
1874 ColumnGroup.prototype.isResizable = function () {
1875 if (!this.displayedChildren) {
1876 return false;
1877 }
1878 // if at least one child is resizable, then the group is resizable
1879 var result = false;
1880 this.displayedChildren.forEach(function (child) {
1881 if (child.isResizable()) {
1882 result = true;
1883 }
1884 });
1885 return result;
1886 };
1887 ColumnGroup.prototype.getMinWidth = function () {
1888 var result = 0;
1889 this.displayedChildren.forEach(function (groupChild) {
1890 result += groupChild.getMinWidth() || 0;
1891 });
1892 return result;
1893 };
1894 ColumnGroup.prototype.addChild = function (child) {
1895 if (!this.children) {
1896 this.children = [];
1897 }
1898 this.children.push(child);
1899 };
1900 ColumnGroup.prototype.getDisplayedChildren = function () {
1901 return this.displayedChildren;
1902 };
1903 ColumnGroup.prototype.getLeafColumns = function () {
1904 var result = [];
1905 this.addLeafColumns(result);
1906 return result;
1907 };
1908 ColumnGroup.prototype.getDisplayedLeafColumns = function () {
1909 var result = [];
1910 this.addDisplayedLeafColumns(result);
1911 return result;
1912 };
1913 // why two methods here doing the same thing?
1914 ColumnGroup.prototype.getDefinition = function () {
1915 return this.originalColumnGroup.getColGroupDef();
1916 };
1917 ColumnGroup.prototype.getColGroupDef = function () {
1918 return this.originalColumnGroup.getColGroupDef();
1919 };
1920 ColumnGroup.prototype.isPadding = function () {
1921 return this.originalColumnGroup.isPadding();
1922 };
1923 ColumnGroup.prototype.isExpandable = function () {
1924 return this.originalColumnGroup.isExpandable();
1925 };
1926 ColumnGroup.prototype.isExpanded = function () {
1927 return this.originalColumnGroup.isExpanded();
1928 };
1929 ColumnGroup.prototype.setExpanded = function (expanded) {
1930 this.originalColumnGroup.setExpanded(expanded);
1931 };
1932 ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {
1933 this.displayedChildren.forEach(function (child) {
1934 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
1935 leafColumns.push(child);
1936 }
1937 else if (child instanceof ColumnGroup) {
1938 child.addDisplayedLeafColumns(leafColumns);
1939 }
1940 });
1941 };
1942 ColumnGroup.prototype.addLeafColumns = function (leafColumns) {
1943 this.children.forEach(function (child) {
1944 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
1945 leafColumns.push(child);
1946 }
1947 else if (child instanceof ColumnGroup) {
1948 child.addLeafColumns(leafColumns);
1949 }
1950 });
1951 };
1952 ColumnGroup.prototype.getChildren = function () {
1953 return this.children;
1954 };
1955 ColumnGroup.prototype.getColumnGroupShow = function () {
1956 return this.originalColumnGroup.getColumnGroupShow();
1957 };
1958 ColumnGroup.prototype.getOriginalColumnGroup = function () {
1959 return this.originalColumnGroup;
1960 };
1961 ColumnGroup.prototype.getPaddingLevel = function () {
1962 var parent = this.getParent();
1963 if (!this.isPadding() || !parent || !parent.isPadding()) {
1964 return 0;
1965 }
1966 return 1 + parent.getPaddingLevel();
1967 };
1968 ColumnGroup.prototype.calculateDisplayedColumns = function () {
1969 var _this = this;
1970 // clear out last time we calculated
1971 this.displayedChildren = [];
1972 // find the column group that is controlling expandable. this is relevant when we have padding (empty)
1973 // groups, where the expandable is actually the first parent that is not a padding group.
1974 var parentWithExpansion = this;
1975 while (parentWithExpansion != null && parentWithExpansion.isPadding()) {
1976 parentWithExpansion = parentWithExpansion.getParent();
1977 }
1978 var isExpandable = parentWithExpansion ? parentWithExpansion.originalColumnGroup.isExpandable() : false;
1979 // it not expandable, everything is visible
1980 if (!isExpandable) {
1981 this.displayedChildren = this.children;
1982 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));
1983 return;
1984 }
1985 // Add cols based on columnGroupShow
1986 // Note - the below also adds padding groups, these are always added because they never have
1987 // colDef.columnGroupShow set.
1988 this.children.forEach(function (child) {
1989 // never add empty groups
1990 var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);
1991 if (emptyGroup) {
1992 return;
1993 }
1994 var headerGroupShow = child.getColumnGroupShow();
1995 switch (headerGroupShow) {
1996 case ColumnGroup.HEADER_GROUP_SHOW_OPEN:
1997 // when set to open, only show col if group is open
1998 if (parentWithExpansion.originalColumnGroup.isExpanded()) {
1999 _this.displayedChildren.push(child);
2000 }
2001 break;
2002 case ColumnGroup.HEADER_GROUP_SHOW_CLOSED:
2003 // when set to open, only show col if group is open
2004 if (!parentWithExpansion.originalColumnGroup.isExpanded()) {
2005 _this.displayedChildren.push(child);
2006 }
2007 break;
2008 default:
2009 _this.displayedChildren.push(child);
2010 break;
2011 }
2012 });
2013 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));
2014 };
2015 ColumnGroup.HEADER_GROUP_SHOW_OPEN = 'open';
2016 ColumnGroup.HEADER_GROUP_SHOW_CLOSED = 'closed';
2017 ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';
2018 ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';
2019 __decorate([
2020 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
2021 ], ColumnGroup.prototype, "gridOptionsWrapper", void 0);
2022 return ColumnGroup;
2023}());
2024
2025
2026
2027/***/ }),
2028/* 10 */
2029/***/ (function(module, __webpack_exports__, __webpack_require__) {
2030
2031"use strict";
2032__webpack_require__.r(__webpack_exports__);
2033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return Column; });
2034/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
2035/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
2036/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
2037/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
2038/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18);
2039/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
2040/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
2041/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
2042/**
2043 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
2044 * @version v25.3.0
2045 * @link http://www.ag-grid.com/
2046 * @license MIT
2047 */
2048var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2049 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2050 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2051 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2052 return c > 3 && r && Object.defineProperty(target, key, r), r;
2053};
2054
2055
2056
2057
2058
2059
2060
2061
2062// Wrapper around a user provide column definition. The grid treats the column definition as ready only.
2063// This class contains all the runtime information about a column, plus some logic (the definition has no logic).
2064// This class implements both interfaces ColumnGroupChild and OriginalColumnGroupChild as the class can
2065// appear as a child of either the original tree or the displayed tree. However the relevant group classes
2066// for each type only implements one, as each group can only appear in it's associated tree (eg OriginalColumnGroup
2067// can only appear in OriginalColumn tree).
2068var Column = /** @class */ (function () {
2069 function Column(colDef, userProvidedColDef, colId, primary) {
2070 this.moving = false;
2071 this.menuVisible = false;
2072 this.filterActive = false;
2073 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
2074 this.rowGroupActive = false;
2075 this.pivotActive = false;
2076 this.aggregationActive = false;
2077 this.colDef = colDef;
2078 this.userProvidedColDef = userProvidedColDef;
2079 this.colId = colId;
2080 this.primary = primary;
2081 this.setState(colDef);
2082 }
2083 Column.prototype.setState = function (colDef) {
2084 // sort
2085 if (colDef.sort !== undefined) {
2086 if (colDef.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC || colDef.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC) {
2087 this.sort = colDef.sort;
2088 }
2089 }
2090 else {
2091 if (colDef.initialSort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC || colDef.initialSort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC) {
2092 this.sort = colDef.initialSort;
2093 }
2094 }
2095 // sortIndex
2096 var sortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.sortIndex);
2097 var initialSortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.initialSortIndex);
2098 if (sortIndex !== undefined) {
2099 if (sortIndex !== null) {
2100 this.sortIndex = sortIndex;
2101 }
2102 }
2103 else {
2104 if (initialSortIndex !== null) {
2105 this.sortIndex = initialSortIndex;
2106 }
2107 }
2108 // hide
2109 var hide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToBoolean"])(colDef.hide);
2110 var initialHide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToBoolean"])(colDef.initialHide);
2111 if (hide !== undefined) {
2112 this.visible = !hide;
2113 }
2114 else {
2115 this.visible = !initialHide;
2116 }
2117 // pinned
2118 if (colDef.pinned !== undefined) {
2119 this.setPinned(colDef.pinned);
2120 }
2121 else {
2122 this.setPinned(colDef.initialPinned);
2123 }
2124 // flex
2125 var flex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.flex);
2126 var initialFlex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.initialFlex);
2127 if (flex !== undefined) {
2128 this.flex = flex;
2129 }
2130 else if (initialFlex !== undefined) {
2131 this.flex = initialFlex;
2132 }
2133 };
2134 // gets called when user provides an alternative colDef, eg
2135 Column.prototype.setColDef = function (colDef, userProvidedColDef) {
2136 this.colDef = colDef;
2137 this.userProvidedColDef = userProvidedColDef;
2138 this.initMinAndMaxWidths();
2139 this.initDotNotation();
2140 };
2141 Column.prototype.getUserProvidedColDef = function () {
2142 return this.userProvidedColDef;
2143 };
2144 Column.prototype.setParent = function (parent) {
2145 this.parent = parent;
2146 };
2147 Column.prototype.getParent = function () {
2148 return this.parent;
2149 };
2150 Column.prototype.setOriginalParent = function (originalParent) {
2151 this.originalParent = originalParent;
2152 };
2153 Column.prototype.getOriginalParent = function () {
2154 return this.originalParent;
2155 };
2156 // this is done after constructor as it uses gridOptionsWrapper
2157 Column.prototype.initialise = function () {
2158 this.initMinAndMaxWidths();
2159 this.resetActualWidth('gridInitializing');
2160 this.initDotNotation();
2161 this.validate();
2162 };
2163 Column.prototype.initDotNotation = function () {
2164 var suppressDotNotation = this.gridOptionsWrapper.isSuppressFieldDotNotation();
2165 this.fieldContainsDots = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;
2166 this.tooltipFieldContainsDots = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;
2167 };
2168 Column.prototype.initMinAndMaxWidths = function () {
2169 var minColWidth = this.gridOptionsWrapper.getMinColWidth();
2170 var maxColWidth = this.gridOptionsWrapper.getMaxColWidth();
2171 if (this.colDef.minWidth != null) {
2172 // we force min width to be at least one pixel, otherwise column will disappear
2173 this.minWidth = Math.max(this.colDef.minWidth, 1);
2174 }
2175 else {
2176 this.minWidth = minColWidth;
2177 }
2178 if (this.colDef.maxWidth != null) {
2179 this.maxWidth = this.colDef.maxWidth;
2180 }
2181 else {
2182 this.maxWidth = maxColWidth;
2183 }
2184 };
2185 Column.prototype.resetActualWidth = function (source) {
2186 if (source === void 0) { source = 'api'; }
2187 var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);
2188 this.setActualWidth(initialWidth, source, true);
2189 };
2190 Column.prototype.isEmptyGroup = function () {
2191 return false;
2192 };
2193 Column.prototype.isRowGroupDisplayed = function (colId) {
2194 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef) || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef.showRowGroup)) {
2195 return false;
2196 }
2197 var showingAllGroups = this.colDef.showRowGroup === true;
2198 var showingThisGroup = this.colDef.showRowGroup === colId;
2199 return showingAllGroups || showingThisGroup;
2200 };
2201 Column.prototype.getUniqueId = function () {
2202 return this.getId();
2203 };
2204 Column.prototype.isPrimary = function () {
2205 return this.primary;
2206 };
2207 Column.prototype.isFilterAllowed = function () {
2208 // filter defined means it's a string, class or true.
2209 // if its false, null or undefined then it's false.
2210 var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;
2211 return this.primary && filterDefined;
2212 };
2213 Column.prototype.isFieldContainsDots = function () {
2214 return this.fieldContainsDots;
2215 };
2216 Column.prototype.isTooltipFieldContainsDots = function () {
2217 return this.tooltipFieldContainsDots;
2218 };
2219 Column.prototype.validate = function () {
2220 var colDefAny = this.colDef;
2221 function warnOnce(msg, key, obj) {
2222 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () {
2223 if (obj) {
2224 console.warn(msg, obj);
2225 }
2226 else {
2227 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () { return console.warn(msg); }, key);
2228 }
2229 }, key);
2230 }
2231 var usingCSRM = this.gridOptionsWrapper.isRowModelDefault();
2232 if (usingCSRM && !_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule)) {
2233 var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];
2234 rowGroupingItems.forEach(function (item) {
2235 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(colDefAny[item])) {
2236 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isPackageBased()) {
2237 warnOnce("AG Grid: " + item + " is only valid in ag-grid-enterprise, your column definition should not have " + item, 'ColumnRowGroupingMissing' + item);
2238 }
2239 else {
2240 warnOnce("AG Grid: " + item + " is only valid with AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule + " - your column definition should not have " + item, 'ColumnRowGroupingMissing' + item);
2241 }
2242 }
2243 });
2244 }
2245 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RichSelectModule)) {
2246 if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {
2247 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isPackageBased()) {
2248 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with ag-grid-enterprise", 'ColumnRichSelectMissing');
2249 }
2250 else {
2251 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RichSelectModule, 'ColumnRichSelectMissing');
2252 }
2253 }
2254 }
2255 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].DateTimeCellEditorModule)) {
2256 if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agDateTimeCellEditor') {
2257 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isPackageBased()) {
2258 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with ag-grid-enterprise", 'ColumnDateTimeMissing');
2259 }
2260 else {
2261 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].DateTimeCellEditorModule, 'ColumnDateTimeMissing');
2262 }
2263 }
2264 }
2265 if (this.gridOptionsWrapper.isTreeData()) {
2266 var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];
2267 itemsNotAllowedWithTreeData.forEach(function (item) {
2268 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(colDefAny[item])) {
2269 warnOnce("AG Grid: " + item + " is not possible when doing tree data, your column definition should not have " + item, 'TreeDataCannotRowGroup');
2270 }
2271 });
2272 }
2273 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.colDef.width) && typeof this.colDef.width !== 'number') {
2274 warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck_asdfawef');
2275 }
2276 };
2277 Column.prototype.addEventListener = function (eventType, listener) {
2278 this.eventService.addEventListener(eventType, listener);
2279 };
2280 Column.prototype.removeEventListener = function (eventType, listener) {
2281 this.eventService.removeEventListener(eventType, listener);
2282 };
2283 Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {
2284 return {
2285 node: rowNode,
2286 data: rowNode.data,
2287 column: this,
2288 colDef: this.colDef,
2289 context: this.gridOptionsWrapper.getContext(),
2290 api: this.gridOptionsWrapper.getApi(),
2291 columnApi: this.gridOptionsWrapper.getColumnApi()
2292 };
2293 };
2294 Column.prototype.isSuppressNavigable = function (rowNode) {
2295 // if boolean set, then just use it
2296 if (typeof this.colDef.suppressNavigable === 'boolean') {
2297 return this.colDef.suppressNavigable;
2298 }
2299 // if function, then call the function to find out
2300 if (typeof this.colDef.suppressNavigable === 'function') {
2301 var params = this.createColumnFunctionCallbackParams(rowNode);
2302 var userFunc = this.colDef.suppressNavigable;
2303 return userFunc(params);
2304 }
2305 return false;
2306 };
2307 Column.prototype.isCellEditable = function (rowNode) {
2308 // only allow editing of groups if the user has this option enabled
2309 if (rowNode.group && !this.gridOptionsWrapper.isEnableGroupEdit()) {
2310 return false;
2311 }
2312 return this.isColumnFunc(rowNode, this.colDef.editable);
2313 };
2314 Column.prototype.isRowDrag = function (rowNode) {
2315 return this.isColumnFunc(rowNode, this.colDef.rowDrag);
2316 };
2317 Column.prototype.isDndSource = function (rowNode) {
2318 return this.isColumnFunc(rowNode, this.colDef.dndSource);
2319 };
2320 Column.prototype.isCellCheckboxSelection = function (rowNode) {
2321 return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);
2322 };
2323 Column.prototype.isSuppressPaste = function (rowNode) {
2324 return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);
2325 };
2326 Column.prototype.isResizable = function () {
2327 return this.colDef.resizable === true;
2328 };
2329 Column.prototype.isColumnFunc = function (rowNode, value) {
2330 // if boolean set, then just use it
2331 if (typeof value === 'boolean') {
2332 return value;
2333 }
2334 // if function, then call the function to find out
2335 if (typeof value === 'function') {
2336 var params = this.createColumnFunctionCallbackParams(rowNode);
2337 var editableFunc = value;
2338 return editableFunc(params);
2339 }
2340 return false;
2341 };
2342 Column.prototype.setMoving = function (moving, source) {
2343 if (source === void 0) { source = "api"; }
2344 this.moving = moving;
2345 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MOVING_CHANGED, source));
2346 };
2347 Column.prototype.createColumnEvent = function (type, source) {
2348 return {
2349 api: this.gridApi,
2350 columnApi: this.columnApi,
2351 type: type,
2352 column: this,
2353 columns: [this],
2354 source: source
2355 };
2356 };
2357 Column.prototype.isMoving = function () {
2358 return this.moving;
2359 };
2360 Column.prototype.getSort = function () {
2361 return this.sort;
2362 };
2363 Column.prototype.setSort = function (sort, source) {
2364 if (source === void 0) { source = "api"; }
2365 if (this.sort !== sort) {
2366 this.sort = sort;
2367 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_SORT_CHANGED, source));
2368 }
2369 };
2370 Column.prototype.setMenuVisible = function (visible, source) {
2371 if (source === void 0) { source = "api"; }
2372 if (this.menuVisible !== visible) {
2373 this.menuVisible = visible;
2374 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MENU_VISIBLE_CHANGED, source));
2375 }
2376 };
2377 Column.prototype.isMenuVisible = function () {
2378 return this.menuVisible;
2379 };
2380 Column.prototype.isSortAscending = function () {
2381 return this.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC;
2382 };
2383 Column.prototype.isSortDescending = function () {
2384 return this.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC;
2385 };
2386 Column.prototype.isSortNone = function () {
2387 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.sort);
2388 };
2389 Column.prototype.isSorting = function () {
2390 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.sort);
2391 };
2392 Column.prototype.getSortIndex = function () {
2393 return this.sortIndex;
2394 };
2395 Column.prototype.setSortIndex = function (sortOrder) {
2396 this.sortIndex = sortOrder;
2397 };
2398 Column.prototype.setAggFunc = function (aggFunc) {
2399 this.aggFunc = aggFunc;
2400 };
2401 Column.prototype.getAggFunc = function () {
2402 return this.aggFunc;
2403 };
2404 Column.prototype.getLeft = function () {
2405 return this.left;
2406 };
2407 Column.prototype.getOldLeft = function () {
2408 return this.oldLeft;
2409 };
2410 Column.prototype.getRight = function () {
2411 return this.left + this.actualWidth;
2412 };
2413 Column.prototype.setLeft = function (left, source) {
2414 if (source === void 0) { source = "api"; }
2415 this.oldLeft = this.left;
2416 if (this.left !== left) {
2417 this.left = left;
2418 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LEFT_CHANGED, source));
2419 }
2420 };
2421 Column.prototype.isFilterActive = function () {
2422 return this.filterActive;
2423 };
2424 // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event
2425 Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {
2426 if (source === void 0) { source = "api"; }
2427 if (this.filterActive !== active) {
2428 this.filterActive = active;
2429 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FILTER_ACTIVE_CHANGED, source));
2430 }
2431 var filterChangedEvent = this.createColumnEvent(Column.EVENT_FILTER_CHANGED, source);
2432 if (additionalEventAttributes) {
2433 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(filterChangedEvent, additionalEventAttributes);
2434 }
2435 this.eventService.dispatchEvent(filterChangedEvent);
2436 };
2437 Column.prototype.setPinned = function (pinned) {
2438 if (pinned === true || pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT) {
2439 this.pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT;
2440 }
2441 else if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT) {
2442 this.pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT;
2443 }
2444 else {
2445 this.pinned = null;
2446 }
2447 };
2448 Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {
2449 if (source === void 0) { source = "api"; }
2450 if (this.firstRightPinned !== firstRightPinned) {
2451 this.firstRightPinned = firstRightPinned;
2452 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, source));
2453 }
2454 };
2455 Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {
2456 if (source === void 0) { source = "api"; }
2457 if (this.lastLeftPinned !== lastLeftPinned) {
2458 this.lastLeftPinned = lastLeftPinned;
2459 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LAST_LEFT_PINNED_CHANGED, source));
2460 }
2461 };
2462 Column.prototype.isFirstRightPinned = function () {
2463 return this.firstRightPinned;
2464 };
2465 Column.prototype.isLastLeftPinned = function () {
2466 return this.lastLeftPinned;
2467 };
2468 Column.prototype.isPinned = function () {
2469 return this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT || this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT;
2470 };
2471 Column.prototype.isPinnedLeft = function () {
2472 return this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT;
2473 };
2474 Column.prototype.isPinnedRight = function () {
2475 return this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT;
2476 };
2477 Column.prototype.getPinned = function () {
2478 return this.pinned;
2479 };
2480 Column.prototype.setVisible = function (visible, source) {
2481 if (source === void 0) { source = "api"; }
2482 var newValue = visible === true;
2483 if (this.visible !== newValue) {
2484 this.visible = newValue;
2485 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VISIBLE_CHANGED, source));
2486 }
2487 };
2488 Column.prototype.isVisible = function () {
2489 return this.visible;
2490 };
2491 Column.prototype.getColDef = function () {
2492 return this.colDef;
2493 };
2494 Column.prototype.getColumnGroupShow = function () {
2495 return this.colDef.columnGroupShow;
2496 };
2497 Column.prototype.getColId = function () {
2498 return this.colId;
2499 };
2500 Column.prototype.getId = function () {
2501 return this.getColId();
2502 };
2503 Column.prototype.getDefinition = function () {
2504 return this.colDef;
2505 };
2506 Column.prototype.getActualWidth = function () {
2507 return this.actualWidth;
2508 };
2509 Column.prototype.createBaseColDefParams = function (rowNode) {
2510 var params = {
2511 node: rowNode,
2512 data: rowNode.data,
2513 colDef: this.colDef,
2514 column: this,
2515 api: this.gridOptionsWrapper.getApi(),
2516 columnApi: this.gridOptionsWrapper.getColumnApi(),
2517 context: this.gridOptionsWrapper.getContext()
2518 };
2519 return params;
2520 };
2521 Column.prototype.getColSpan = function (rowNode) {
2522 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef.colSpan)) {
2523 return 1;
2524 }
2525 var params = this.createBaseColDefParams(rowNode);
2526 var colSpan = this.colDef.colSpan(params);
2527 // colSpan must be number equal to or greater than 1
2528 return Math.max(colSpan, 1);
2529 };
2530 Column.prototype.getRowSpan = function (rowNode) {
2531 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef.rowSpan)) {
2532 return 1;
2533 }
2534 var params = this.createBaseColDefParams(rowNode);
2535 var rowSpan = this.colDef.rowSpan(params);
2536 // rowSpan must be number equal to or greater than 1
2537 return Math.max(rowSpan, 1);
2538 };
2539 Column.prototype.setActualWidth = function (actualWidth, source, silent) {
2540 if (source === void 0) { source = "api"; }
2541 if (silent === void 0) { silent = false; }
2542 if (this.minWidth != null) {
2543 actualWidth = Math.max(actualWidth, this.minWidth);
2544 }
2545 if (this.maxWidth != null) {
2546 actualWidth = Math.min(actualWidth, this.maxWidth);
2547 }
2548 if (this.actualWidth !== actualWidth) {
2549 // disable flex for this column if it was manually resized.
2550 this.actualWidth = actualWidth;
2551 if (this.flex && source !== 'flex' && source !== 'gridInitializing') {
2552 this.flex = null;
2553 }
2554 if (!silent) {
2555 this.fireColumnWidthChangedEvent(source);
2556 }
2557 }
2558 };
2559 Column.prototype.fireColumnWidthChangedEvent = function (source) {
2560 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_WIDTH_CHANGED, source));
2561 };
2562 Column.prototype.isGreaterThanMax = function (width) {
2563 if (this.maxWidth != null) {
2564 return width > this.maxWidth;
2565 }
2566 return false;
2567 };
2568 Column.prototype.getMinWidth = function () {
2569 return this.minWidth;
2570 };
2571 Column.prototype.getMaxWidth = function () {
2572 return this.maxWidth;
2573 };
2574 Column.prototype.getFlex = function () {
2575 return this.flex || 0;
2576 };
2577 // this method should only be used by the columnController to
2578 // change flex when required by the setColumnState method.
2579 Column.prototype.setFlex = function (flex) {
2580 if (this.flex !== flex) {
2581 this.flex = flex;
2582 }
2583 };
2584 Column.prototype.setMinimum = function (source) {
2585 if (source === void 0) { source = "api"; }
2586 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.minWidth)) {
2587 this.setActualWidth(this.minWidth, source);
2588 }
2589 };
2590 Column.prototype.setRowGroupActive = function (rowGroup, source) {
2591 if (source === void 0) { source = "api"; }
2592 if (this.rowGroupActive !== rowGroup) {
2593 this.rowGroupActive = rowGroup;
2594 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_ROW_GROUP_CHANGED, source));
2595 }
2596 };
2597 Column.prototype.isRowGroupActive = function () {
2598 return this.rowGroupActive;
2599 };
2600 Column.prototype.setPivotActive = function (pivot, source) {
2601 if (source === void 0) { source = "api"; }
2602 if (this.pivotActive !== pivot) {
2603 this.pivotActive = pivot;
2604 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_PIVOT_CHANGED, source));
2605 }
2606 };
2607 Column.prototype.isPivotActive = function () {
2608 return this.pivotActive;
2609 };
2610 Column.prototype.isAnyFunctionActive = function () {
2611 return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();
2612 };
2613 Column.prototype.isAnyFunctionAllowed = function () {
2614 return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();
2615 };
2616 Column.prototype.setValueActive = function (value, source) {
2617 if (source === void 0) { source = "api"; }
2618 if (this.aggregationActive !== value) {
2619 this.aggregationActive = value;
2620 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VALUE_CHANGED, source));
2621 }
2622 };
2623 Column.prototype.isValueActive = function () {
2624 return this.aggregationActive;
2625 };
2626 Column.prototype.isAllowPivot = function () {
2627 return this.colDef.enablePivot === true;
2628 };
2629 Column.prototype.isAllowValue = function () {
2630 return this.colDef.enableValue === true;
2631 };
2632 Column.prototype.isAllowRowGroup = function () {
2633 return this.colDef.enableRowGroup === true;
2634 };
2635 Column.prototype.getMenuTabs = function (defaultValues) {
2636 var menuTabs = this.getColDef().menuTabs;
2637 if (menuTabs == null) {
2638 menuTabs = defaultValues;
2639 }
2640 return menuTabs;
2641 };
2642 // this used to be needed, as previous version of ag-grid had lockPosition as column state,
2643 // so couldn't depend on colDef version.
2644 Column.prototype.isLockPosition = function () {
2645 console.warn('AG Grid: since v21, col.isLockPosition() should not be used, please use col.getColDef().lockPosition instead.');
2646 return this.colDef ? !!this.colDef.lockPosition : false;
2647 };
2648 // this used to be needed, as previous version of ag-grid had lockVisible as column state,
2649 // so couldn't depend on colDef version.
2650 Column.prototype.isLockVisible = function () {
2651 console.warn('AG Grid: since v21, col.isLockVisible() should not be used, please use col.getColDef().lockVisible instead.');
2652 return this.colDef ? !!this.colDef.lockVisible : false;
2653 };
2654 // this used to be needed, as previous version of ag-grid had lockPinned as column state,
2655 // so couldn't depend on colDef version.
2656 Column.prototype.isLockPinned = function () {
2657 console.warn('AG Grid: since v21, col.isLockPinned() should not be used, please use col.getColDef().lockPinned instead.');
2658 return this.colDef ? !!this.colDef.lockPinned : false;
2659 };
2660 // + renderedHeaderCell - for making header cell transparent when moving
2661 Column.EVENT_MOVING_CHANGED = 'movingChanged';
2662 // + renderedCell - changing left position
2663 Column.EVENT_LEFT_CHANGED = 'leftChanged';
2664 // + renderedCell - changing width
2665 Column.EVENT_WIDTH_CHANGED = 'widthChanged';
2666 // + renderedCell - for changing pinned classes
2667 Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';
2668 Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';
2669 // + renderedColumn - for changing visibility icon
2670 Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';
2671 // + every time the filter changes, used in the floating filters
2672 Column.EVENT_FILTER_CHANGED = 'filterChanged';
2673 // + renderedHeaderCell - marks the header with filter icon
2674 Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';
2675 // + renderedHeaderCell - marks the header with sort icon
2676 Column.EVENT_SORT_CHANGED = 'sortChanged';
2677 Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';
2678 // + toolpanel, for gui updates
2679 Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';
2680 // + toolpanel, for gui updates
2681 Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';
2682 // + toolpanel, for gui updates
2683 Column.EVENT_VALUE_CHANGED = 'columnValueChanged';
2684 __decorate([
2685 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
2686 ], Column.prototype, "gridOptionsWrapper", void 0);
2687 __decorate([
2688 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnUtils')
2689 ], Column.prototype, "columnUtils", void 0);
2690 __decorate([
2691 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
2692 ], Column.prototype, "columnApi", void 0);
2693 __decorate([
2694 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
2695 ], Column.prototype, "gridApi", void 0);
2696 __decorate([
2697 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('context')
2698 ], Column.prototype, "context", void 0);
2699 __decorate([
2700 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
2701 ], Column.prototype, "initialise", null);
2702 return Column;
2703}());
2704
2705
2706
2707/***/ }),
2708/* 11 */
2709/***/ (function(module, __webpack_exports__, __webpack_require__) {
2710
2711"use strict";
2712__webpack_require__.r(__webpack_exports__);
2713/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return EventService; });
2714/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
2715/**
2716 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
2717 * @version v25.3.0
2718 * @link http://www.ag-grid.com/
2719 * @license MIT
2720 */
2721var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2722 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2723 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2724 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2725 return c > 3 && r && Object.defineProperty(target, key, r), r;
2726};
2727var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
2728 return function (target, key) { decorator(target, key, paramIndex); }
2729};
2730
2731var EventService = /** @class */ (function () {
2732 function EventService() {
2733 this.allSyncListeners = new Map();
2734 this.allAsyncListeners = new Map();
2735 this.globalSyncListeners = new Set();
2736 this.globalAsyncListeners = new Set();
2737 this.asyncFunctionsQueue = [];
2738 this.scheduled = false;
2739 // using an object performs better than a Set for the number of different events we have
2740 this.firedEvents = {};
2741 }
2742 // because this class is used both inside the context and outside the context, we do not
2743 // use autowired attributes, as that would be confusing, as sometimes the attributes
2744 // would be wired, and sometimes not.
2745 //
2746 // the global event servers used by AG Grid is autowired by the context once, and this
2747 // setBeans method gets called once.
2748 //
2749 // the times when this class is used outside of the context (eg RowNode has an instance of this
2750 // class) then it is not a bean, and this setBeans method is not called.
2751 EventService.prototype.setBeans = function (loggerFactory, gridOptionsWrapper, frameworkOverrides, globalEventListener) {
2752 if (globalEventListener === void 0) { globalEventListener = null; }
2753 this.logger = loggerFactory.create('EventService');
2754 this.frameworkOverrides = frameworkOverrides;
2755 if (globalEventListener) {
2756 var async = gridOptionsWrapper.useAsyncEvents();
2757 this.addGlobalListener(globalEventListener, async);
2758 }
2759 };
2760 EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {
2761 var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
2762 var listeners = listenerMap.get(eventType);
2763 // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance
2764 // getListeners() is also called during event dispatch even though no listeners are added. This measure protects
2765 // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after
2766 // the RowComp is destroyed, see noRegisteredListenersExist() below.
2767 if (!listeners && autoCreateListenerCollection) {
2768 listeners = new Set();
2769 listenerMap.set(eventType, listeners);
2770 }
2771 return listeners;
2772 };
2773 EventService.prototype.noRegisteredListenersExist = function () {
2774 return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&
2775 this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;
2776 };
2777 EventService.prototype.addEventListener = function (eventType, listener, async) {
2778 if (async === void 0) { async = false; }
2779 this.getListeners(eventType, async, true).add(listener);
2780 };
2781 EventService.prototype.removeEventListener = function (eventType, listener, async) {
2782 if (async === void 0) { async = false; }
2783 var listeners = this.getListeners(eventType, async, false);
2784 if (!listeners) {
2785 return;
2786 }
2787 listeners.delete(listener);
2788 if (listeners.size === 0) {
2789 var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
2790 listenerMap.delete(eventType);
2791 }
2792 };
2793 EventService.prototype.addGlobalListener = function (listener, async) {
2794 if (async === void 0) { async = false; }
2795 (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);
2796 };
2797 EventService.prototype.removeGlobalListener = function (listener, async) {
2798 if (async === void 0) { async = false; }
2799 (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);
2800 };
2801 EventService.prototype.dispatchEvent = function (event) {
2802 this.dispatchToListeners(event, true);
2803 this.dispatchToListeners(event, false);
2804 this.firedEvents[event.type] = true;
2805 };
2806 EventService.prototype.dispatchEventOnce = function (event) {
2807 if (!this.firedEvents[event.type]) {
2808 this.dispatchEvent(event);
2809 }
2810 };
2811 EventService.prototype.dispatchToListeners = function (event, async) {
2812 var _this = this;
2813 var eventType = event.type;
2814 var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {
2815 if (async) {
2816 _this.dispatchAsync(function () { return listener(event); });
2817 }
2818 else {
2819 listener(event);
2820 }
2821 }); };
2822 var listeners = this.getListeners(eventType, async, false);
2823 if (listeners) {
2824 processEventListeners(listeners);
2825 }
2826 var globalListeners = async ? this.globalAsyncListeners : this.globalSyncListeners;
2827 globalListeners.forEach(function (listener) {
2828 if (async) {
2829 _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }); });
2830 }
2831 else {
2832 _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); });
2833 }
2834 });
2835 };
2836 // this gets called inside the grid's thread, for each event that it
2837 // wants to set async. the grid then batches the events into one setTimeout()
2838 // because setTimeout() is an expensive operation. ideally we would have
2839 // each event in it's own setTimeout(), but we batch for performance.
2840 EventService.prototype.dispatchAsync = function (func) {
2841 // add to the queue for executing later in the next VM turn
2842 this.asyncFunctionsQueue.push(func);
2843 // check if timeout is already scheduled. the first time the grid calls
2844 // this within it's thread turn, this should be false, so it will schedule
2845 // the 'flush queue' method the first time it comes here. then the flag is
2846 // set to 'true' so it will know it's already scheduled for subsequent calls.
2847 if (!this.scheduled) {
2848 // if not scheduled, schedule one
2849 window.setTimeout(this.flushAsyncQueue.bind(this), 0);
2850 // mark that it is scheduled
2851 this.scheduled = true;
2852 }
2853 };
2854 // this happens in the next VM turn only, and empties the queue of events
2855 EventService.prototype.flushAsyncQueue = function () {
2856 this.scheduled = false;
2857 // we take a copy, because the event listener could be using
2858 // the grid, which would cause more events, which would be potentially
2859 // added to the queue, so safe to take a copy, the new events will
2860 // get executed in a later VM turn rather than risk updating the
2861 // queue as we are flushing it.
2862 var queueCopy = this.asyncFunctionsQueue.slice();
2863 this.asyncFunctionsQueue = [];
2864 // execute the queue
2865 queueCopy.forEach(function (func) { return func(); });
2866 };
2867 __decorate([
2868 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory')),
2869 __param(1, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('gridOptionsWrapper')),
2870 __param(2, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('frameworkOverrides')),
2871 __param(3, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('globalEventListener'))
2872 ], EventService.prototype, "setBeans", null);
2873 EventService = __decorate([
2874 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('eventService')
2875 ], EventService);
2876 return EventService;
2877}());
2878
2879
2880
2881/***/ }),
2882/* 12 */
2883/***/ (function(module, __webpack_exports__, __webpack_require__) {
2884
2885"use strict";
2886__webpack_require__.r(__webpack_exports__);
2887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return Context; });
2888/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return PreConstruct; });
2889/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return PostConstruct; });
2890/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return PreDestroy; });
2891/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return Bean; });
2892/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return Autowired; });
2893/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return Optional; });
2894/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return Qualifier; });
2895/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
2896/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
2897/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
2898/**
2899 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
2900 * @version v25.3.0
2901 * @link http://www.ag-grid.com/
2902 * @license MIT
2903 */
2904
2905
2906
2907var Context = /** @class */ (function () {
2908 function Context(params, logger) {
2909 this.beanWrappers = {};
2910 this.destroyed = false;
2911 if (!params || !params.beanClasses) {
2912 return;
2913 }
2914 this.contextParams = params;
2915 this.logger = logger;
2916 this.logger.log(">> creating ag-Application Context");
2917 this.createBeans();
2918 var beanInstances = this.getBeanInstances();
2919 this.wireBeans(beanInstances);
2920 this.logger.log(">> ag-Application Context ready - component is alive");
2921 }
2922 Context.prototype.getBeanInstances = function () {
2923 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["values"])(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });
2924 };
2925 Context.prototype.createBean = function (bean, afterPreCreateCallback) {
2926 if (!bean) {
2927 throw Error("Can't wire to bean since it is null");
2928 }
2929 this.wireBeans([bean], afterPreCreateCallback);
2930 return bean;
2931 };
2932 Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {
2933 this.autoWireBeans(beanInstances);
2934 this.methodWireBeans(beanInstances);
2935 this.callLifeCycleMethods(beanInstances, 'preConstructMethods');
2936 // the callback sets the attributes, so the component has access to attributes
2937 // before postConstruct methods in the component are executed
2938 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(afterPreCreateCallback)) {
2939 beanInstances.forEach(afterPreCreateCallback);
2940 }
2941 this.callLifeCycleMethods(beanInstances, 'postConstructMethods');
2942 };
2943 Context.prototype.createBeans = function () {
2944 var _this = this;
2945 // register all normal beans
2946 this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));
2947 // register override beans, these will overwrite beans above of same name
2948 // instantiate all beans - overridden beans will be left out
2949 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(this.beanWrappers, function (key, beanEntry) {
2950 var constructorParamsMeta;
2951 if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {
2952 constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;
2953 }
2954 var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);
2955 var newInstance = applyToConstructor(beanEntry.bean, constructorParams);
2956 beanEntry.beanInstance = newInstance;
2957 });
2958 var createdBeanNames = Object.keys(this.beanWrappers).join(', ');
2959 this.logger.log("created beans: " + createdBeanNames);
2960 };
2961 // tslint:disable-next-line
2962 Context.prototype.createBeanWrapper = function (BeanClass) {
2963 var metaData = BeanClass.__agBeanMetaData;
2964 if (!metaData) {
2965 var beanName = void 0;
2966 if (BeanClass.prototype.constructor) {
2967 beanName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["getFunctionName"])(BeanClass.prototype.constructor);
2968 }
2969 else {
2970 beanName = "" + BeanClass;
2971 }
2972 console.error("Context item " + beanName + " is not a bean");
2973 return;
2974 }
2975 var beanEntry = {
2976 bean: BeanClass,
2977 beanInstance: null,
2978 beanName: metaData.beanName
2979 };
2980 this.beanWrappers[metaData.beanName] = beanEntry;
2981 };
2982 Context.prototype.autoWireBeans = function (beanInstances) {
2983 var _this = this;
2984 beanInstances.forEach(function (beanInstance) {
2985 _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {
2986 var attributes = metaData.agClassAttributes;
2987 if (!attributes) {
2988 return;
2989 }
2990 attributes.forEach(function (attribute) {
2991 var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);
2992 beanInstance[attribute.attributeName] = otherBean;
2993 });
2994 });
2995 });
2996 };
2997 Context.prototype.methodWireBeans = function (beanInstances) {
2998 var _this = this;
2999 beanInstances.forEach(function (beanInstance) {
3000 _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {
3001 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(metaData.autowireMethods, function (methodName, wireParams) {
3002 // skip constructor, as this is dealt with elsewhere
3003 if (methodName === "agConstructor") {
3004 return;
3005 }
3006 var initParams = _this.getBeansForParameters(wireParams, beanName);
3007 beanInstance[methodName].apply(beanInstance, initParams);
3008 });
3009 });
3010 });
3011 };
3012 Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {
3013 var prototype = Object.getPrototypeOf(beanInstance);
3014 while (prototype != null) {
3015 var constructor = prototype.constructor;
3016 if (constructor.hasOwnProperty('__agBeanMetaData')) {
3017 var metaData = constructor.__agBeanMetaData;
3018 var beanName = this.getBeanName(constructor);
3019 callback(metaData, beanName);
3020 }
3021 prototype = Object.getPrototypeOf(prototype);
3022 }
3023 };
3024 Context.prototype.getBeanName = function (constructor) {
3025 if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {
3026 return constructor.__agBeanMetaData.beanName;
3027 }
3028 var constructorString = constructor.toString();
3029 var beanName = constructorString.substring(9, constructorString.indexOf("("));
3030 return beanName;
3031 };
3032 Context.prototype.getBeansForParameters = function (parameters, beanName) {
3033 var _this = this;
3034 var beansList = [];
3035 if (parameters) {
3036 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(parameters, function (paramIndex, otherBeanName) {
3037 var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);
3038 beansList[Number(paramIndex)] = otherBean;
3039 });
3040 }
3041 return beansList;
3042 };
3043 Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {
3044 if (optional === void 0) { optional = false; }
3045 if (beanName === "context") {
3046 return this;
3047 }
3048 if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {
3049 return this.contextParams.providedBeanInstances[beanName];
3050 }
3051 var beanEntry = this.beanWrappers[beanName];
3052 if (beanEntry) {
3053 return beanEntry.beanInstance;
3054 }
3055 if (!optional) {
3056 console.error("AG Grid: unable to find bean reference " + beanName + " while initialising " + wiringBean);
3057 }
3058 return null;
3059 };
3060 Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {
3061 var _this = this;
3062 beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });
3063 };
3064 Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {
3065 // putting all methods into a map removes duplicates
3066 var allMethods = {};
3067 // dump methods from each level of the metadata hierarchy
3068 this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {
3069 var methods = metaData[lifeCycleMethod];
3070 if (methods) {
3071 methods.forEach(function (methodName) {
3072 if (methodName != methodToIgnore) {
3073 allMethods[methodName] = true;
3074 }
3075 });
3076 }
3077 });
3078 var allMethodsList = Object.keys(allMethods);
3079 allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });
3080 };
3081 Context.prototype.getBean = function (name) {
3082 return this.lookupBeanInstance("getBean", name, true);
3083 };
3084 Context.prototype.destroy = function () {
3085 if (this.destroyed) {
3086 return;
3087 }
3088 this.logger.log(">> Shutting down ag-Application Context");
3089 var beanInstances = this.getBeanInstances();
3090 this.destroyBeans(beanInstances);
3091 this.contextParams.providedBeanInstances = null;
3092 this.destroyed = true;
3093 this.logger.log(">> ag-Application Context shut down - component is dead");
3094 };
3095 Context.prototype.destroyBean = function (bean) {
3096 if (!bean) {
3097 return;
3098 }
3099 this.destroyBeans([bean]);
3100 };
3101 Context.prototype.destroyBeans = function (beans) {
3102 var _this = this;
3103 if (!beans) {
3104 return [];
3105 }
3106 beans.forEach(function (bean) {
3107 _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');
3108 // call destroy() explicitly if it exists
3109 var beanAny = bean;
3110 if (typeof beanAny.destroy === 'function') {
3111 beanAny.destroy();
3112 }
3113 });
3114 return [];
3115 };
3116 return Context;
3117}());
3118
3119// taken from: http://stackoverflow.com/questions/3362471/how-can-i-call-a-javascript-constructor-using-call-or-apply
3120// allows calling 'apply' on a constructor
3121function applyToConstructor(constructor, argArray) {
3122 var args = [null].concat(argArray);
3123 var factoryFunction = constructor.bind.apply(constructor, args);
3124 return new factoryFunction();
3125}
3126function PreConstruct(target, methodName, descriptor) {
3127 var props = getOrCreateProps(target.constructor);
3128 if (!props.preConstructMethods) {
3129 props.preConstructMethods = [];
3130 }
3131 props.preConstructMethods.push(methodName);
3132}
3133function PostConstruct(target, methodName, descriptor) {
3134 var props = getOrCreateProps(target.constructor);
3135 if (!props.postConstructMethods) {
3136 props.postConstructMethods = [];
3137 }
3138 props.postConstructMethods.push(methodName);
3139}
3140function PreDestroy(target, methodName, descriptor) {
3141 var props = getOrCreateProps(target.constructor);
3142 if (!props.preDestroyMethods) {
3143 props.preDestroyMethods = [];
3144 }
3145 props.preDestroyMethods.push(methodName);
3146}
3147function Bean(beanName) {
3148 return function (classConstructor) {
3149 var props = getOrCreateProps(classConstructor);
3150 props.beanName = beanName;
3151 };
3152}
3153function Autowired(name) {
3154 return function (target, propertyKey, descriptor) {
3155 autowiredFunc(target, name, false, target, propertyKey, null);
3156 };
3157}
3158function Optional(name) {
3159 return function (target, propertyKey, descriptor) {
3160 autowiredFunc(target, name, true, target, propertyKey, null);
3161 };
3162}
3163function autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {
3164 if (name === null) {
3165 console.error("AG Grid: Autowired name should not be null");
3166 return;
3167 }
3168 if (typeof index === "number") {
3169 console.error("AG Grid: Autowired should be on an attribute");
3170 return;
3171 }
3172 // it's an attribute on the class
3173 var props = getOrCreateProps(target.constructor);
3174 if (!props.agClassAttributes) {
3175 props.agClassAttributes = [];
3176 }
3177 props.agClassAttributes.push({
3178 attributeName: methodOrAttributeName,
3179 beanName: name,
3180 optional: optional
3181 });
3182}
3183function Qualifier(name) {
3184 return function (classPrototype, methodOrAttributeName, index) {
3185 var constructor = typeof classPrototype == "function" ? classPrototype : classPrototype.constructor;
3186 var props;
3187 if (typeof index === "number") {
3188 // it's a parameter on a method
3189 var methodName = void 0;
3190 if (methodOrAttributeName) {
3191 props = getOrCreateProps(constructor);
3192 methodName = methodOrAttributeName;
3193 }
3194 else {
3195 props = getOrCreateProps(constructor);
3196 methodName = "agConstructor";
3197 }
3198 if (!props.autowireMethods) {
3199 props.autowireMethods = {};
3200 }
3201 if (!props.autowireMethods[methodName]) {
3202 props.autowireMethods[methodName] = {};
3203 }
3204 props.autowireMethods[methodName][index] = name;
3205 }
3206 };
3207}
3208function getOrCreateProps(target) {
3209 if (!target.hasOwnProperty("__agBeanMetaData")) {
3210 target.__agBeanMetaData = {};
3211 }
3212 return target.__agBeanMetaData;
3213}
3214
3215
3216/***/ }),
3217/* 13 */
3218/***/ (function(module, __webpack_exports__, __webpack_require__) {
3219
3220"use strict";
3221__webpack_require__.r(__webpack_exports__);
3222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterateObject", function() { return iterateObject; });
3223/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneObject", function() { return cloneObject; });
3224/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCloneObject", function() { return deepCloneObject; });
3225/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCloneDefinition", function() { return deepCloneDefinition; });
3226/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getProperty", function() { return getProperty; });
3227/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setProperty", function() { return setProperty; });
3228/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyPropertiesIfPresent", function() { return copyPropertiesIfPresent; });
3229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyPropertyIfPresent", function() { return copyPropertyIfPresent; });
3230/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllKeysInObjects", function() { return getAllKeysInObjects; });
3231/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllValuesInObject", function() { return getAllValuesInObject; });
3232/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeep", function() { return mergeDeep; });
3233/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; });
3234/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingOrEmptyObject", function() { return missingOrEmptyObject; });
3235/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
3236/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
3237/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepFreeze", function() { return deepFreeze; });
3238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getValueUsingField", function() { return getValueUsingField; });
3239/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllReferences", function() { return removeAllReferences; });
3240/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNonNullObject", function() { return isNonNullObject; });
3241/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
3242/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
3243/**
3244 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3245 * @version v25.3.0
3246 * @link http://www.ag-grid.com/
3247 * @license MIT
3248 */
3249
3250
3251function iterateObject(object, callback) {
3252 if (object == null) {
3253 return;
3254 }
3255 if (Array.isArray(object)) {
3256 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(object, function (value, index) { return callback("" + index, value); });
3257 }
3258 else {
3259 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(Object.keys(object), function (key) { return callback(key, object[key]); });
3260 }
3261}
3262function cloneObject(object) {
3263 var copy = {};
3264 var keys = Object.keys(object);
3265 for (var i = 0; i < keys.length; i++) {
3266 var key = keys[i];
3267 var value = object[key];
3268 copy[key] = value;
3269 }
3270 return copy;
3271}
3272function deepCloneObject(object) {
3273 return JSON.parse(JSON.stringify(object));
3274}
3275// returns copy of an object, doing a deep clone of any objects with that object.
3276// this is used for eg creating copies of Column Definitions, where we want to
3277// deep copy all objects, but do not want to deep copy functions (eg when user provides
3278// a function or class for colDef.cellRenderer)
3279function deepCloneDefinition(object, keysToSkip) {
3280 if (!object) {
3281 return;
3282 }
3283 var obj = object;
3284 var res = {};
3285 Object.keys(obj).forEach(function (key) {
3286 if (keysToSkip && keysToSkip.indexOf(key) >= 0) {
3287 return;
3288 }
3289 var value = obj[key];
3290 // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does
3291 // NOT include the following:
3292 // 1) arrays
3293 // 2) functions or classes (eg ColumnAPI instance)
3294 var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;
3295 if (sourceIsSimpleObject) {
3296 res[key] = deepCloneDefinition(value);
3297 }
3298 else {
3299 res[key] = value;
3300 }
3301 });
3302 return res;
3303}
3304function getProperty(object, key) {
3305 return object[key];
3306}
3307function setProperty(object, key, value) {
3308 object[key] = value;
3309}
3310/**
3311 * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with
3312 * a value of `undefined`.
3313 */
3314function copyPropertiesIfPresent(source, target) {
3315 var properties = [];
3316 for (var _i = 2; _i < arguments.length; _i++) {
3317 properties[_i - 2] = arguments[_i];
3318 }
3319 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(properties, function (p) { return copyPropertyIfPresent(source, target, p); });
3320}
3321/**
3322 * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a
3323 * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.
3324 */
3325function copyPropertyIfPresent(source, target, property, transform) {
3326 var value = getProperty(source, property);
3327 if (value !== undefined) {
3328 setProperty(target, property, transform ? transform(value) : value);
3329 }
3330}
3331function getAllKeysInObjects(objects) {
3332 var allValues = {};
3333 objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {
3334 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(Object.keys(obj), function (key) { return allValues[key] = null; });
3335 });
3336 return Object.keys(allValues);
3337}
3338function getAllValuesInObject(obj) {
3339 if (!obj) {
3340 return [];
3341 }
3342 var anyObject = Object;
3343 if (typeof anyObject.values === 'function') {
3344 return anyObject.values(obj);
3345 }
3346 var ret = [];
3347 for (var key in obj) {
3348 if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {
3349 ret.push(obj[key]);
3350 }
3351 }
3352 return ret;
3353}
3354function mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {
3355 if (copyUndefined === void 0) { copyUndefined = true; }
3356 if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }
3357 if (!Object(_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(source)) {
3358 return;
3359 }
3360 iterateObject(source, function (key, sourceValue) {
3361 var destValue = dest[key];
3362 if (destValue === sourceValue) {
3363 return;
3364 }
3365 // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef
3366 // and Column Types) would result in params getting shared between objects.
3367 // by putting an empty value into destValue first, it means we end up copying over values from
3368 // the source object, rather than just copying in the source object in it's entirety.
3369 if (makeCopyOfSimpleObjects) {
3370 var objectIsDueToBeCopied = destValue == null && sourceValue != null;
3371 if (objectIsDueToBeCopied) {
3372 // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed
3373 // to a Class instance (such as ColumnAPI instance).
3374 var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;
3375 var dontCopy = sourceIsSimpleObject;
3376 if (dontCopy) {
3377 destValue = {};
3378 dest[key] = destValue;
3379 }
3380 }
3381 }
3382 if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {
3383 mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);
3384 }
3385 else if (copyUndefined || sourceValue !== undefined) {
3386 dest[key] = sourceValue;
3387 }
3388 });
3389}
3390function assign(object) {
3391 var sources = [];
3392 for (var _i = 1; _i < arguments.length; _i++) {
3393 sources[_i - 1] = arguments[_i];
3394 }
3395 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(sources, function (source) { return iterateObject(source, function (key, value) { return object[key] = value; }); });
3396 return object;
3397}
3398function missingOrEmptyObject(value) {
3399 return Object(_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(value) || Object.keys(value).length === 0;
3400}
3401function get(source, expression, defaultValue) {
3402 if (source == null) {
3403 return defaultValue;
3404 }
3405 var keys = expression.split('.');
3406 var objectToRead = source;
3407 while (keys.length > 1) {
3408 objectToRead = objectToRead[keys.shift()];
3409 if (objectToRead == null) {
3410 return defaultValue;
3411 }
3412 }
3413 var value = objectToRead[keys[0]];
3414 return value != null ? value : defaultValue;
3415}
3416function set(target, expression, value) {
3417 if (target == null) {
3418 return;
3419 }
3420 var keys = expression.split('.');
3421 var objectToUpdate = target;
3422 while (keys.length > 1) {
3423 objectToUpdate = objectToUpdate[keys.shift()];
3424 if (objectToUpdate == null) {
3425 return;
3426 }
3427 }
3428 objectToUpdate[keys[0]] = value;
3429}
3430function deepFreeze(object) {
3431 Object.freeze(object);
3432 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(Object(_generic__WEBPACK_IMPORTED_MODULE_0__["values"])(object), function (v) {
3433 if (isNonNullObject(v) || typeof v === 'function') {
3434 deepFreeze(v);
3435 }
3436 });
3437 return object;
3438}
3439function getValueUsingField(data, field, fieldContainsDots) {
3440 if (!field || !data) {
3441 return;
3442 }
3443 // if no '.', then it's not a deep value
3444 if (!fieldContainsDots) {
3445 return data[field];
3446 }
3447 // otherwise it is a deep value, so need to dig for it
3448 var fields = field.split('.');
3449 var currentObject = data;
3450 for (var i = 0; i < fields.length; i++) {
3451 if (currentObject == null) {
3452 return undefined;
3453 }
3454 currentObject = currentObject[fields[i]];
3455 }
3456 return currentObject;
3457}
3458// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a
3459// memory leak if user is not disposing of the GridAPI or ColumnApi references
3460function removeAllReferences(obj, objectName) {
3461 Object.keys(obj).forEach(function (key) {
3462 var value = obj[key];
3463 // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)
3464 // we don't care about
3465 if (typeof value === 'object') {
3466 obj[key] = undefined;
3467 }
3468 });
3469 var proto = Object.getPrototypeOf(obj);
3470 var properties = {};
3471 Object.keys(proto).forEach(function (key) {
3472 var value = proto[key];
3473 // leave all basic types - this is needed for GridAPI to leave the "destroyed: boolean" attribute alone
3474 if (typeof value === 'function') {
3475 var func = function () {
3476 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.");
3477 };
3478 properties[key] = { value: func, writable: true };
3479 }
3480 });
3481 Object.defineProperties(obj, properties);
3482}
3483function isNonNullObject(value) {
3484 return typeof value === 'object' && value !== null;
3485}
3486
3487
3488/***/ }),
3489/* 14 */
3490/***/ (function(module, __webpack_exports__, __webpack_require__) {
3491
3492"use strict";
3493__webpack_require__.r(__webpack_exports__);
3494/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstExistingValue", function() { return firstExistingValue; });
3495/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anyExists", function() { return anyExists; });
3496/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "existsAndNotEmpty", function() { return existsAndNotEmpty; });
3497/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; });
3498/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areEqual", function() { return areEqual; });
3499/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareArrays", function() { return compareArrays; });
3500/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return shallowCompare; });
3501/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortNumerically", function() { return sortNumerically; });
3502/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeRepeatsFromArray", function() { return removeRepeatsFromArray; });
3503/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFromArray", function() { return removeFromArray; });
3504/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllFromArray", function() { return removeAllFromArray; });
3505/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertIntoArray", function() { return insertIntoArray; });
3506/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrayIntoArray", function() { return insertArrayIntoArray; });
3507/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveInArray", function() { return moveInArray; });
3508/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "includes", function() { return includes; });
3509/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return flatten; });
3510/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pushAll", function() { return pushAll; });
3511/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toStrings", function() { return toStrings; });
3512/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; });
3513/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fill", function() { return fill; });
3514/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "every", function() { return every; });
3515/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "some", function() { return some; });
3516/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEach", function() { return forEach; });
3517/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEachReverse", function() { return forEachReverse; });
3518/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
3519/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; });
3520/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; });
3521/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEachSnapshotFirst", function() { return forEachSnapshotFirst; });
3522/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
3523/**
3524 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3525 * @version v25.3.0
3526 * @link http://www.ag-grid.com/
3527 * @license MIT
3528 */
3529
3530function firstExistingValue() {
3531 var values = [];
3532 for (var _i = 0; _i < arguments.length; _i++) {
3533 values[_i] = arguments[_i];
3534 }
3535 for (var i = 0; i < values.length; i++) {
3536 var value = values[i];
3537 if (Object(_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(value)) {
3538 return value;
3539 }
3540 }
3541 return null;
3542}
3543/** @deprecated */
3544function anyExists(values) {
3545 return values && firstExistingValue(values) != null;
3546}
3547function existsAndNotEmpty(value) {
3548 return value != null && value.length > 0;
3549}
3550function last(arr) {
3551 if (!arr || !arr.length) {
3552 return;
3553 }
3554 return arr[arr.length - 1];
3555}
3556function areEqual(a, b, comparator) {
3557 if (a == null && b == null) {
3558 return true;
3559 }
3560 return a != null &&
3561 b != null &&
3562 a.length === b.length &&
3563 every(a, function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });
3564}
3565/** @deprecated */
3566function compareArrays(array1, array2) {
3567 return areEqual(array1, array2);
3568}
3569/** @deprecated */
3570function shallowCompare(arr1, arr2) {
3571 return areEqual(arr1, arr2);
3572}
3573function sortNumerically(array) {
3574 return array.sort(function (a, b) { return a - b; });
3575}
3576function removeRepeatsFromArray(array, object) {
3577 if (!array) {
3578 return;
3579 }
3580 for (var index = array.length - 2; index >= 0; index--) {
3581 var thisOneMatches = array[index] === object;
3582 var nextOneMatches = array[index + 1] === object;
3583 if (thisOneMatches && nextOneMatches) {
3584 array.splice(index + 1, 1);
3585 }
3586 }
3587}
3588function removeFromArray(array, object) {
3589 var index = array.indexOf(object);
3590 if (index >= 0) {
3591 array.splice(index, 1);
3592 }
3593}
3594function removeAllFromArray(array, toRemove) {
3595 forEach(toRemove, function (item) { return removeFromArray(array, item); });
3596}
3597function insertIntoArray(array, object, toIndex) {
3598 array.splice(toIndex, 0, object);
3599}
3600function insertArrayIntoArray(dest, src, toIndex) {
3601 if (dest == null || src == null) {
3602 return;
3603 }
3604 // put items in backwards, otherwise inserted items end up in reverse order
3605 for (var i = src.length - 1; i >= 0; i--) {
3606 var item = src[i];
3607 insertIntoArray(dest, item, toIndex);
3608 }
3609}
3610function moveInArray(array, objectsToMove, toIndex) {
3611 // first take out items from the array
3612 removeAllFromArray(array, objectsToMove);
3613 // now add the objects, in same order as provided to us, that means we start at the end
3614 // as the objects will be pushed to the right as they are inserted
3615 forEach(objectsToMove.slice().reverse(), function (obj) { return insertIntoArray(array, obj, toIndex); });
3616}
3617function includes(array, value) {
3618 return array.indexOf(value) > -1;
3619}
3620function flatten(arrayOfArrays) {
3621 return [].concat.apply([], arrayOfArrays);
3622}
3623function pushAll(target, source) {
3624 if (source == null || target == null) {
3625 return;
3626 }
3627 forEach(source, function (value) { return target.push(value); });
3628}
3629function toStrings(array) {
3630 return map(array, _generic__WEBPACK_IMPORTED_MODULE_0__["toStringOrNull"]);
3631}
3632function findIndex(collection, predicate) {
3633 for (var i = 0; i < collection.length; i++) {
3634 if (predicate(collection[i], i, collection)) {
3635 return i;
3636 }
3637 }
3638 return -1;
3639}
3640function fill(collection, value, start, end) {
3641 if (value === void 0) { value = null; }
3642 if (start === void 0) { start = 0; }
3643 if (end === void 0) { end = collection.length; }
3644 for (var i = start; i < end; i++) {
3645 collection[i] = value;
3646 }
3647 return collection;
3648}
3649/**
3650 * The implementation of Array.prototype.every in browsers is always slower than just using a simple for loop, so
3651 * use this for improved performance.
3652 * https://jsbench.me/bek91dtit8/
3653 */
3654function every(list, predicate) {
3655 if (list == null) {
3656 return true;
3657 }
3658 for (var i = 0; i < list.length; i++) {
3659 if (!predicate(list[i], i)) {
3660 return false;
3661 }
3662 }
3663 return true;
3664}
3665/**
3666 * The implementation of Array.prototype.some in browsers is always slower than just using a simple for loop, so
3667 * use this for improved performance.
3668 * https://jsbench.me/5dk91e4tmt/
3669 */
3670function some(list, predicate) {
3671 if (list == null) {
3672 return false;
3673 }
3674 for (var i = 0; i < list.length; i++) {
3675 if (predicate(list[i], i)) {
3676 return true;
3677 }
3678 }
3679 return false;
3680}
3681/**
3682 * The implementation of Array.prototype.forEach in browsers is often slower than just using a simple for loop, so
3683 * use this for improved performance.
3684 * https://jsbench.me/apk91elt8a/
3685 */
3686function forEach(list, action) {
3687 if (list == null) {
3688 return;
3689 }
3690 for (var i = 0; i < list.length; i++) {
3691 action(list[i], i);
3692 }
3693}
3694function forEachReverse(list, action) {
3695 if (list == null) {
3696 return;
3697 }
3698 for (var i = list.length - 1; i >= 0; i--) {
3699 action(list[i], i);
3700 }
3701}
3702/**
3703 * The implementation of Array.prototype.map in browsers is generally the same as just using a simple for loop. However,
3704 * Firefox does exhibit some difference, and this performs no worse in other browsers, so use this if you want improved
3705 * performance.
3706 * https://jsbench.me/njk91ez8pc/
3707 */
3708function map(list, process) {
3709 if (list == null) {
3710 return null;
3711 }
3712 var mapped = [];
3713 for (var i = 0; i < list.length; i++) {
3714 mapped.push(process(list[i], i));
3715 }
3716 return mapped;
3717}
3718/**
3719 * The implementation of Array.prototype.filter in browsers is always slower than just using a simple for loop, so
3720 * use this for improved performance.
3721 * https://jsbench.me/7bk91fk08c/
3722 */
3723function filter(list, predicate) {
3724 if (list == null) {
3725 return null;
3726 }
3727 var filtered = [];
3728 for (var i = 0; i < list.length; i++) {
3729 if (predicate(list[i], i)) {
3730 filtered.push(list[i]);
3731 }
3732 }
3733 return filtered;
3734}
3735/**
3736 * The implementation of Array.prototype.reduce in browsers is generally the same as just using a simple for loop. However,
3737 * Chrome does exhibit some difference, and this performs no worse in other browsers, so use this if you want improved
3738 * performance.
3739 * https://jsbench.me/7vk92n6u1f/
3740 */
3741function reduce(list, step, initial) {
3742 if (list == null || initial == null) {
3743 return null;
3744 }
3745 var result = initial;
3746 for (var i = 0; i < list.length; i++) {
3747 result = step(result, list[i], i);
3748 }
3749 return result;
3750}
3751/** @deprecated */
3752function forEachSnapshotFirst(list, callback) {
3753 if (!list) {
3754 return;
3755 }
3756 var arrayCopy = list.slice(0);
3757 arrayCopy.forEach(callback);
3758}
3759
3760
3761/***/ }),
3762/* 15 */
3763/***/ (function(module, __webpack_exports__, __webpack_require__) {
3764
3765"use strict";
3766__webpack_require__.r(__webpack_exports__);
3767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doOnce", function() { return doOnce; });
3768/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFunctionName", function() { return getFunctionName; });
3769/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFunctionParameters", function() { return getFunctionParameters; });
3770/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunction", function() { return isFunction; });
3771/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeInAWhile", function() { return executeInAWhile; });
3772/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeNextVMTurn", function() { return executeNextVMTurn; });
3773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeAfter", function() { return executeAfter; });
3774/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; });
3775/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waitUntil", function() { return waitUntil; });
3776/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return compose; });
3777/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "callIfPresent", function() { return callIfPresent; });
3778/**
3779 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3780 * @version v25.3.0
3781 * @link http://www.ag-grid.com/
3782 * @license MIT
3783 */
3784var FUNCTION_STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
3785var FUNCTION_ARGUMENT_NAMES = /([^\s,]+)/g;
3786var doOnceFlags = {};
3787/**
3788 * If the key was passed before, then doesn't execute the func
3789 * @param {Function} func
3790 * @param {string} key
3791 */
3792function doOnce(func, key) {
3793 if (doOnceFlags[key]) {
3794 return;
3795 }
3796 func();
3797 doOnceFlags[key] = true;
3798}
3799function getFunctionName(funcConstructor) {
3800 // for every other browser in the world
3801 if (funcConstructor.name) {
3802 return funcConstructor.name;
3803 }
3804 // for the pestilence that is ie11
3805 var matches = /function\s+([^\(]+)/.exec(funcConstructor.toString());
3806 return matches && matches.length === 2 ? matches[1].trim() : null;
3807}
3808/** @deprecated */
3809function getFunctionParameters(func) {
3810 var fnStr = func.toString().replace(FUNCTION_STRIP_COMMENTS, '');
3811 return fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(FUNCTION_ARGUMENT_NAMES) || [];
3812}
3813function isFunction(val) {
3814 return !!(val && val.constructor && val.call && val.apply);
3815}
3816function executeInAWhile(funcs) {
3817 executeAfter(funcs, 400);
3818}
3819var executeNextVMTurnFuncs = [];
3820var executeNextVMTurnPending = false;
3821function executeNextVMTurn(func) {
3822 executeNextVMTurnFuncs.push(func);
3823 if (executeNextVMTurnPending) {
3824 return;
3825 }
3826 executeNextVMTurnPending = true;
3827 window.setTimeout(function () {
3828 var funcsCopy = executeNextVMTurnFuncs.slice();
3829 executeNextVMTurnFuncs.length = 0;
3830 executeNextVMTurnPending = false;
3831 funcsCopy.forEach(function (func) { return func(); });
3832 }, 0);
3833}
3834function executeAfter(funcs, milliseconds) {
3835 if (milliseconds === void 0) { milliseconds = 0; }
3836 if (funcs.length > 0) {
3837 window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);
3838 }
3839}
3840/**
3841 * from https://stackoverflow.com/questions/24004791/can-someone-explain-the-debounce-function-in-javascript
3842 * @param {Function} func The function to be debounced
3843 * @param {number} wait The time in ms to debounce
3844 * @param {boolean} immediate If it should run immediately or wait for the initial debounce delay
3845 * @return {Function} The debounced function
3846 */
3847function debounce(func, wait, immediate) {
3848 if (immediate === void 0) { immediate = false; }
3849 // 'private' variable for instance
3850 // The returned function will be able to reference this due to closure.
3851 // Each call to the returned function will share this common timer.
3852 var timeout;
3853 // Calling debounce returns a new anonymous function
3854 return function () {
3855 var args = [];
3856 for (var _i = 0; _i < arguments.length; _i++) {
3857 args[_i] = arguments[_i];
3858 }
3859 // reference the context and args for the setTimeout function
3860 var context = this;
3861 // Should the function be called now? If immediate is true
3862 // and not already in a timeout then the answer is: Yes
3863 var callNow = immediate && !timeout;
3864 // This is the basic debounce behaviour where you can call this
3865 // function several times, but it will only execute once
3866 // [before or after imposing a delay].
3867 // Each time the returned function is called, the timer starts over.
3868 window.clearTimeout(timeout);
3869 // Set the new timeout
3870 timeout = window.setTimeout(function () {
3871 // Inside the timeout function, clear the timeout variable
3872 // which will let the next execution run when in 'immediate' mode
3873 timeout = null;
3874 // Check if the function already ran with the immediate flag
3875 if (!immediate) {
3876 // Call the original function with apply
3877 // apply lets you define the 'this' object as well as the arguments
3878 // (both captured before setTimeout)
3879 func.apply(context, args);
3880 }
3881 }, wait);
3882 // Immediate mode and no wait timer? Execute the function..
3883 if (callNow) {
3884 func.apply(context, args);
3885 }
3886 };
3887}
3888function waitUntil(condition, callback, timeout, timeoutMessage) {
3889 if (timeout === void 0) { timeout = 100; }
3890 var timeStamp = new Date().getTime();
3891 var interval = null;
3892 var executed = false;
3893 var internalCallback = function () {
3894 var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;
3895 if (condition() || reachedTimeout) {
3896 callback();
3897 executed = true;
3898 if (interval != null) {
3899 window.clearInterval(interval);
3900 interval = null;
3901 }
3902 if (reachedTimeout && timeoutMessage) {
3903 console.warn(timeoutMessage);
3904 }
3905 }
3906 };
3907 internalCallback();
3908 if (!executed) {
3909 interval = window.setInterval(internalCallback, 10);
3910 }
3911}
3912function compose() {
3913 var fns = [];
3914 for (var _i = 0; _i < arguments.length; _i++) {
3915 fns[_i] = arguments[_i];
3916 }
3917 return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };
3918}
3919function callIfPresent(func) {
3920 if (func) {
3921 func();
3922 }
3923}
3924
3925
3926/***/ }),
3927/* 16 */
3928/***/ (function(module, __webpack_exports__, __webpack_require__) {
3929
3930"use strict";
3931__webpack_require__.r(__webpack_exports__);
3932/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return Constants; });
3933/**
3934 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3935 * @version v25.3.0
3936 * @link http://www.ag-grid.com/
3937 * @license MIT
3938 */
3939var Constants = /** @class */ (function () {
3940 function Constants() {
3941 }
3942 Constants.ROW_BUFFER_SIZE = 10;
3943 Constants.LAYOUT_INTERVAL = 500;
3944 Constants.BATCH_WAIT_MILLIS = 50;
3945 Constants.EXPORT_TYPE_DRAG_COPY = 'dragCopy';
3946 Constants.EXPORT_TYPE_CLIPBOARD = 'clipboard';
3947 Constants.EXPORT_TYPE_EXCEL = 'excel';
3948 Constants.EXPORT_TYPE_CSV = 'csv';
3949 Constants.ROW_MODEL_TYPE_INFINITE = 'infinite';
3950 Constants.ROW_MODEL_TYPE_VIEWPORT = 'viewport';
3951 Constants.ROW_MODEL_TYPE_CLIENT_SIDE = 'clientSide';
3952 Constants.ROW_MODEL_TYPE_SERVER_SIDE = 'serverSide';
3953 Constants.ALWAYS = 'always';
3954 Constants.ONLY_WHEN_GROUPING = 'onlyWhenGrouping';
3955 Constants.PINNED_TOP = 'top';
3956 Constants.PINNED_BOTTOM = 'bottom';
3957 Constants.DOM_LAYOUT_NORMAL = 'normal';
3958 Constants.DOM_LAYOUT_PRINT = 'print';
3959 Constants.DOM_LAYOUT_AUTO_HEIGHT = 'autoHeight';
3960 Constants.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';
3961 Constants.SOURCE_PASTE = 'paste';
3962 Constants.PINNED_RIGHT = 'right';
3963 Constants.PINNED_LEFT = 'left';
3964 Constants.SORT_ASC = 'asc';
3965 Constants.SORT_DESC = 'desc';
3966 Constants.INPUT_SELECTOR = 'input, select, button, textarea';
3967 Constants.FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea';
3968 Constants.FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled, .ag-disabled *';
3969 return Constants;
3970}());
3971
3972
3973
3974/***/ }),
3975/* 17 */
3976/***/ (function(module, __webpack_exports__, __webpack_require__) {
3977
3978"use strict";
3979__webpack_require__.r(__webpack_exports__);
3980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return ModuleNames; });
3981/**
3982 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3983 * @version v25.3.0
3984 * @link http://www.ag-grid.com/
3985 * @license MIT
3986 */
3987var ModuleNames;
3988(function (ModuleNames) {
3989 // when using modules, user references this
3990 ModuleNames["CommunityCoreModule"] = "@ag-grid-community/core";
3991 // when not using modules, user references this
3992 ModuleNames["CommunityAllModules"] = "@ag-grid-community/all";
3993 // community modules
3994 ModuleNames["InfiniteRowModelModule"] = "@ag-grid-community/infinite-row-model";
3995 ModuleNames["ClientSideRowModelModule"] = "@ag-grid-community/client-side-row-model";
3996 ModuleNames["CsvExportModule"] = "@ag-grid-community/csv-export";
3997 // enterprise core - users never import on this, but other enterprise modules do
3998 ModuleNames["EnterpriseCoreModule"] = "@ag-grid-enterprise/core";
3999 // when not using modules, user references this
4000 ModuleNames["EnterpriseAllModules"] = "@ag-grid-enterprise/all";
4001 // enterprise modules
4002 ModuleNames["RowGroupingModule"] = "@ag-grid-enterprise/row-grouping";
4003 ModuleNames["ColumnToolPanelModule"] = "@ag-grid-enterprise/column-tool-panel";
4004 ModuleNames["FiltersToolPanelModule"] = "@ag-grid-enterprise/filter-tool-panel";
4005 ModuleNames["MenuModule"] = "@ag-grid-enterprise/menu";
4006 ModuleNames["SetFilterModule"] = "@ag-grid-enterprise/set-filter";
4007 ModuleNames["MultiFilterModule"] = "@ag-grid-enterprise/multi-filter";
4008 ModuleNames["StatusBarModule"] = "@ag-grid-enterprise/status-bar";
4009 ModuleNames["SideBarModule"] = "@ag-grid-enterprise/side-bar";
4010 ModuleNames["RangeSelectionModule"] = "@ag-grid-enterprise/range-selection";
4011 ModuleNames["MasterDetailModule"] = "@ag-grid-enterprise/master-detail";
4012 ModuleNames["RichSelectModule"] = "@ag-grid-enterprise/rich-select";
4013 ModuleNames["GridChartsModule"] = "@ag-grid-enterprise/charts";
4014 ModuleNames["ViewportRowModelModule"] = "@ag-grid-enterprise/viewport-row-model";
4015 ModuleNames["ServerSideRowModelModule"] = "@ag-grid-enterprise/server-side-row-model";
4016 ModuleNames["ExcelExportModule"] = "@ag-grid-enterprise/excel-export";
4017 ModuleNames["ClipboardModule"] = "@ag-grid-enterprise/clipboard";
4018 ModuleNames["DateTimeCellEditorModule"] = "@ag-grid-enterprise/date-time-cell-editor";
4019 // framework wrappers currently don't provide beans, comps etc, so no need to be modules,
4020 // however i argue they should be as in theory they 'could' provide beans etc
4021 ModuleNames["AngularModule"] = "@ag-grid-community/angular";
4022 ModuleNames["ReactModule"] = "@ag-grid-community/react";
4023 ModuleNames["VueModule"] = "@ag-grid-community/vue";
4024 ModuleNames["PolymerModule"] = "@ag-grid-community/polymer";
4025 // and then this, which is definitely not a grid module, as it should not have any dependency
4026 // on the grid (ie shouldn't even reference the Module interface)
4027 // ChartsModule = "@ag-grid-community/charts-core",
4028})(ModuleNames || (ModuleNames = {}));
4029
4030
4031/***/ }),
4032/* 18 */
4033/***/ (function(module, __webpack_exports__, __webpack_require__) {
4034
4035"use strict";
4036__webpack_require__.r(__webpack_exports__);
4037/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return ModuleRegistry; });
4038/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
4039/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
4040/**
4041 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4042 * @version v25.3.0
4043 * @link http://www.ag-grid.com/
4044 * @license MIT
4045 */
4046
4047
4048var ModuleRegistry = /** @class */ (function () {
4049 function ModuleRegistry() {
4050 }
4051 ModuleRegistry.register = function (module, moduleBased) {
4052 if (moduleBased === void 0) { moduleBased = true; }
4053 ModuleRegistry.modulesMap[module.moduleName] = module;
4054 if (ModuleRegistry.moduleBased === undefined) {
4055 ModuleRegistry.moduleBased = moduleBased;
4056 }
4057 else {
4058 if (ModuleRegistry.moduleBased !== moduleBased) {
4059 Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["doOnce"])(function () {
4060 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.");
4061 console.warn('Please see https://www.ag-grid.com/javascript-table/packages-modules/ for more information.');
4062 }, 'ModulePackageCheck');
4063 }
4064 }
4065 };
4066 // noinspection JSUnusedGlobalSymbols
4067 ModuleRegistry.registerModules = function (modules, moduleBased) {
4068 if (moduleBased === void 0) { moduleBased = true; }
4069 if (!modules) {
4070 return;
4071 }
4072 modules.forEach(function (module) { return ModuleRegistry.register(module, moduleBased); });
4073 };
4074 ModuleRegistry.assertRegistered = function (moduleName, reason) {
4075 if (this.isRegistered(moduleName)) {
4076 return true;
4077 }
4078 var warningKey = reason + moduleName;
4079 var warningMessage = "AG Grid: unable to use " + reason + " as module " + moduleName + " is not present. Please see: https://www.ag-grid.com/javascript-table/modules/";
4080 Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["doOnce"])(function () {
4081 console.warn(warningMessage);
4082 }, warningKey);
4083 return false;
4084 };
4085 ModuleRegistry.isRegistered = function (moduleName) {
4086 return !!ModuleRegistry.modulesMap[moduleName];
4087 };
4088 ModuleRegistry.getRegisteredModules = function () {
4089 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_1__["values"])(ModuleRegistry.modulesMap);
4090 };
4091 ModuleRegistry.isPackageBased = function () {
4092 return !ModuleRegistry.moduleBased;
4093 };
4094 // having in a map a) removes duplicates and b) allows fast lookup
4095 ModuleRegistry.modulesMap = {};
4096 return ModuleRegistry;
4097}());
4098
4099
4100
4101/***/ }),
4102/* 19 */
4103/***/ (function(module, __webpack_exports__, __webpack_require__) {
4104
4105"use strict";
4106__webpack_require__.r(__webpack_exports__);
4107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultColumnTypes", function() { return DefaultColumnTypes; });
4108/**
4109 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4110 * @version v25.3.0
4111 * @link http://www.ag-grid.com/
4112 * @license MIT
4113 */
4114var DefaultColumnTypes = {
4115 numericColumn: {
4116 headerClass: 'ag-right-aligned-header',
4117 cellClass: 'ag-right-aligned-cell'
4118 },
4119 rightAligned: {
4120 headerClass: 'ag-right-aligned-header',
4121 cellClass: 'ag-right-aligned-cell'
4122 }
4123};
4124
4125
4126/***/ }),
4127/* 20 */
4128/***/ (function(module, __webpack_exports__, __webpack_require__) {
4129
4130"use strict";
4131__webpack_require__.r(__webpack_exports__);
4132/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return BeanStub; });
4133/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
4134/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
4135/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
4136/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21);
4137/**
4138 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4139 * @version v25.3.0
4140 * @link http://www.ag-grid.com/
4141 * @license MIT
4142 */
4143var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4144 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4145 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4146 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4147 return c > 3 && r && Object.defineProperty(target, key, r), r;
4148};
4149
4150
4151
4152
4153var BeanStub = /** @class */ (function () {
4154 function BeanStub() {
4155 var _this = this;
4156 this.destroyFunctions = [];
4157 this.destroyed = false;
4158 // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive
4159 // prevents vue from creating proxies for created objects and prevents identity related issues
4160 this.__v_skip = true;
4161 this.getContext = function () { return _this.context; };
4162 this.isAlive = function () { return !_this.destroyed; };
4163 }
4164 // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are
4165 // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed
4166 // points to a bean or component that was not properly disposed of.
4167 // constructor() {
4168 // setTimeout(()=> {
4169 // if (this.isAlive()) {
4170 // let prototype: any = Object.getPrototypeOf(this);
4171 // const constructor: any = prototype.constructor;
4172 // const constructorString = constructor.toString();
4173 // const beanName = constructorString.substring(9, constructorString.indexOf("("));
4174 // console.log('is alive ' + beanName);
4175 // }
4176 // }, 5000);
4177 // }
4178 // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean
4179 BeanStub.prototype.getFrameworkOverrides = function () {
4180 return this.frameworkOverrides;
4181 };
4182 BeanStub.prototype.destroy = function () {
4183 // let prototype: any = Object.getPrototypeOf(this);
4184 // const constructor: any = prototype.constructor;
4185 // const constructorString = constructor.toString();
4186 // const beanName = constructorString.substring(9, constructorString.indexOf("("));
4187 this.destroyFunctions.forEach(function (func) { return func(); });
4188 this.destroyFunctions.length = 0;
4189 this.destroyed = true;
4190 this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });
4191 };
4192 BeanStub.prototype.addEventListener = function (eventType, listener) {
4193 if (!this.localEventService) {
4194 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
4195 }
4196 this.localEventService.addEventListener(eventType, listener);
4197 };
4198 BeanStub.prototype.removeEventListener = function (eventType, listener) {
4199 if (this.localEventService) {
4200 this.localEventService.removeEventListener(eventType, listener);
4201 }
4202 };
4203 BeanStub.prototype.dispatchEventAsync = function (event) {
4204 var _this = this;
4205 window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);
4206 };
4207 BeanStub.prototype.dispatchEvent = function (event) {
4208 if (this.localEventService) {
4209 this.localEventService.dispatchEvent(event);
4210 }
4211 };
4212 BeanStub.prototype.addManagedListener = function (object, event, listener) {
4213 var _this = this;
4214 if (this.destroyed) {
4215 return;
4216 }
4217 if (object instanceof HTMLElement) {
4218 Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["addSafePassiveEventListener"])(this.getFrameworkOverrides(), object, event, listener);
4219 }
4220 else {
4221 object.addEventListener(event, listener);
4222 }
4223 var destroyFunc = function () {
4224 object.removeEventListener(event, listener);
4225 _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });
4226 return null;
4227 };
4228 this.destroyFunctions.push(destroyFunc);
4229 return destroyFunc;
4230 };
4231 BeanStub.prototype.addDestroyFunc = function (func) {
4232 // if we are already destroyed, we execute the func now
4233 if (this.isAlive()) {
4234 this.destroyFunctions.push(func);
4235 }
4236 else {
4237 func();
4238 }
4239 };
4240 BeanStub.prototype.createManagedBean = function (bean, context) {
4241 var res = this.createBean(bean, context);
4242 this.addDestroyFunc(this.destroyBean.bind(this, bean, context));
4243 return res;
4244 };
4245 BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {
4246 return (context || this.getContext()).createBean(bean, afterPreCreateCallback);
4247 };
4248 BeanStub.prototype.destroyBean = function (bean, context) {
4249 return (context || this.getContext()).destroyBean(bean);
4250 };
4251 BeanStub.prototype.destroyBeans = function (beans, context) {
4252 var _this = this;
4253 if (beans) {
4254 Object(_utils_array__WEBPACK_IMPORTED_MODULE_2__["forEach"])(beans, function (bean) { return _this.destroyBean(bean, context); });
4255 }
4256 return [];
4257 };
4258 BeanStub.EVENT_DESTROYED = 'destroyed';
4259 __decorate([
4260 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('frameworkOverrides')
4261 ], BeanStub.prototype, "frameworkOverrides", void 0);
4262 __decorate([
4263 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('context')
4264 ], BeanStub.prototype, "context", void 0);
4265 __decorate([
4266 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('eventService')
4267 ], BeanStub.prototype, "eventService", void 0);
4268 __decorate([
4269 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
4270 ], BeanStub.prototype, "gridOptionsWrapper", void 0);
4271 __decorate([
4272 _context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
4273 ], BeanStub.prototype, "destroy", null);
4274 return BeanStub;
4275}());
4276
4277
4278
4279/***/ }),
4280/* 21 */
4281/***/ (function(module, __webpack_exports__, __webpack_require__) {
4282
4283"use strict";
4284__webpack_require__.r(__webpack_exports__);
4285/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopPropagationForAgGrid", function() { return stopPropagationForAgGrid; });
4286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStopPropagationForAgGrid", function() { return isStopPropagationForAgGrid; });
4287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventSupported", function() { return isEventSupported; });
4288/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getComponentForEvent", function() { return getComponentForEvent; });
4289/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addChangeListener", function() { return addChangeListener; });
4290/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTarget", function() { return getTarget; });
4291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementInEventPath", function() { return isElementInEventPath; });
4292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createEventPath", function() { return createEventPath; });
4293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAgGridEventPath", function() { return addAgGridEventPath; });
4294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventPath", function() { return getEventPath; });
4295/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSafePassiveEventListener", function() { return addSafePassiveEventListener; });
4296/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
4297/**
4298 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4299 * @version v25.3.0
4300 * @link http://www.ag-grid.com/
4301 * @license MIT
4302 */
4303
4304var AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';
4305var PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];
4306var supports = {};
4307/**
4308 * a user once raised an issue - they said that when you opened a popup (eg context menu)
4309 * and then clicked on a selection checkbox, the popup wasn't closed. this is because the
4310 * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the
4311 * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).
4312 * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,
4313 * but we still let the event pass back to the body.
4314 * @param {Event} event
4315 */
4316function stopPropagationForAgGrid(event) {
4317 event[AG_GRID_STOP_PROPAGATION] = true;
4318}
4319function isStopPropagationForAgGrid(event) {
4320 return event[AG_GRID_STOP_PROPAGATION] === true;
4321}
4322var isEventSupported = (function () {
4323 var tags = {
4324 select: 'input',
4325 change: 'input',
4326 submit: 'form',
4327 reset: 'form',
4328 error: 'img',
4329 load: 'img',
4330 abort: 'img'
4331 };
4332 var eventChecker = function (eventName) {
4333 if (typeof supports[eventName] === 'boolean') {
4334 return supports[eventName];
4335 }
4336 var el = document.createElement(tags[eventName] || 'div');
4337 eventName = 'on' + eventName;
4338 var isSupported = (eventName in el);
4339 if (!isSupported) {
4340 el.setAttribute(eventName, 'return;');
4341 isSupported = typeof el[eventName] == 'function';
4342 }
4343 return supports[eventName] = isSupported;
4344 };
4345 return eventChecker;
4346})();
4347function getComponentForEvent(gridOptionsWrapper, event, type) {
4348 var sourceElement = getTarget(event);
4349 while (sourceElement) {
4350 var renderedComp = gridOptionsWrapper.getDomData(sourceElement, type);
4351 if (renderedComp) {
4352 return renderedComp;
4353 }
4354 sourceElement = sourceElement.parentElement;
4355 }
4356 return null;
4357}
4358/**
4359 * @deprecated
4360 * Adds all type of change listeners to an element, intended to be a text field
4361 * @param {HTMLElement} element
4362 * @param {EventListener} listener
4363 */
4364function addChangeListener(element, listener) {
4365 element.addEventListener('changed', listener);
4366 element.addEventListener('paste', listener);
4367 element.addEventListener('input', listener);
4368 // IE doesn't fire changed for special keys (eg delete, backspace), so need to
4369 // listen for this further ones
4370 element.addEventListener('keydown', listener);
4371 element.addEventListener('keyup', listener);
4372}
4373/**
4374 * srcElement is only available in IE. In all other browsers it is target
4375 * http://stackoverflow.com/questions/5301643/how-can-i-make-event-srcelement-work-in-firefox-and-what-does-it-mean
4376 * @param {Event} event
4377 * @returns {Element}
4378 */
4379function getTarget(event) {
4380 var eventNoType = event;
4381 return eventNoType.target || eventNoType.srcElement;
4382}
4383function isElementInEventPath(element, event) {
4384 if (!event || !element) {
4385 return false;
4386 }
4387 return getEventPath(event).indexOf(element) >= 0;
4388}
4389function createEventPath(event) {
4390 var res = [];
4391 var pointer = getTarget(event);
4392 while (pointer) {
4393 res.push(pointer);
4394 pointer = pointer.parentElement;
4395 }
4396 return res;
4397}
4398/**
4399 * firefox doesn't have event.path set, or any alternative to it, so we hack
4400 * it in. this is needed as it's to late to work out the path when the item is
4401 * removed from the dom. used by MouseEventService, where it works out if a click
4402 * was from the current grid, or a detail grid (master / detail).
4403 * @param {Event} event
4404 */
4405function addAgGridEventPath(event) {
4406 event.__agGridEventPath = getEventPath(event);
4407}
4408/**
4409 * Gets the path for an Event.
4410 * https://stackoverflow.com/questions/39245488/event-path-undefined-with-firefox-and-vue-js
4411 * https://developer.mozilla.org/en-US/docs/Web/API/Event
4412 * @param {Event} event
4413 * @returns {EventTarget[]}
4414 */
4415function getEventPath(event) {
4416 var eventNoType = event;
4417 if (eventNoType.deepPath) {
4418 // IE supports deep path
4419 return eventNoType.deepPath();
4420 }
4421 if (eventNoType.path) {
4422 // Chrome supports path
4423 return eventNoType.path;
4424 }
4425 if (eventNoType.composedPath) {
4426 // Firefox supports composePath
4427 return eventNoType.composedPath();
4428 }
4429 if (eventNoType.__agGridEventPath) {
4430 // Firefox supports composePath
4431 return eventNoType.__agGridEventPath;
4432 }
4433 // and finally, if none of the above worked,
4434 // we create the path ourselves
4435 return createEventPath(event);
4436}
4437function addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {
4438 var isPassive = Object(_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(PASSIVE_EVENTS, event);
4439 var options = isPassive ? { passive: true } : undefined;
4440 // this check is here for certain scenarios where I believe the user must be destroying
4441 // the grid somehow but continuing for it to be used
4442 if (frameworkOverrides && frameworkOverrides.addEventListener) {
4443 frameworkOverrides.addEventListener(eElement, event, listener, options);
4444 }
4445}
4446
4447
4448/***/ }),
4449/* 22 */
4450/***/ (function(module, __webpack_exports__, __webpack_require__) {
4451
4452"use strict";
4453__webpack_require__.r(__webpack_exports__);
4454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnController", function() { return ColumnController; });
4455/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
4456/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
4457/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
4458/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
4459/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
4460/* harmony import */ var _groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
4461/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
4462/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16);
4463/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14);
4464/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
4465/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(26);
4466/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(27);
4467/**
4468 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4469 * @version v25.3.0
4470 * @link http://www.ag-grid.com/
4471 * @license MIT
4472 */
4473var __extends = (undefined && undefined.__extends) || (function () {
4474 var extendStatics = function (d, b) {
4475 extendStatics = Object.setPrototypeOf ||
4476 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
4477 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
4478 return extendStatics(d, b);
4479 };
4480 return function (d, b) {
4481 extendStatics(d, b);
4482 function __() { this.constructor = d; }
4483 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4484 };
4485})();
4486var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4487 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4488 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4489 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4490 return c > 3 && r && Object.defineProperty(target, key, r), r;
4491};
4492var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
4493 return function (target, key) { decorator(target, key, paramIndex); }
4494};
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507var ColumnController = /** @class */ (function (_super) {
4508 __extends(ColumnController, _super);
4509 function ColumnController() {
4510 var _this = _super !== null && _super.apply(this, arguments) || this;
4511 // header row count, based on user provided columns
4512 _this.primaryHeaderRowCount = 0;
4513 _this.secondaryHeaderRowCount = 0;
4514 _this.secondaryColumnsPresent = false;
4515 // header row count, either above, or based on pivoting if we are pivoting
4516 _this.gridHeaderRowCount = 0;
4517 // leave level columns of the displayed trees
4518 _this.displayedColumnsLeft = [];
4519 _this.displayedColumnsRight = [];
4520 _this.displayedColumnsCenter = [];
4521 // all three lists above combined
4522 _this.displayedColumns = [];
4523 // for fast lookup, to see if a column or group is still displayed
4524 _this.displayedColumnsAndGroupsMap = {};
4525 // all columns to be rendered
4526 _this.viewportColumns = [];
4527 // all columns to be rendered in the centre
4528 _this.viewportColumnsCenter = [];
4529 _this.rowGroupColumns = [];
4530 _this.valueColumns = [];
4531 _this.pivotColumns = [];
4532 _this.ready = false;
4533 _this.autoGroupsNeedBuilding = false;
4534 _this.forceRecreateAutoGroups = false;
4535 _this.pivotMode = false;
4536 _this.bodyWidth = 0;
4537 _this.leftWidth = 0;
4538 _this.rightWidth = 0;
4539 _this.bodyWidthDirty = true;
4540 _this.colDefVersion = 0;
4541 _this.flexColsCalculatedAtLestOnce = false;
4542 return _this;
4543 }
4544 ColumnController.prototype.init = function () {
4545 this.suppressColumnVirtualisation = this.gridOptionsWrapper.isSuppressColumnVirtualisation();
4546 var pivotMode = this.gridOptionsWrapper.isPivotMode();
4547 if (this.isPivotSettingAllowed(pivotMode)) {
4548 this.pivotMode = pivotMode;
4549 }
4550 this.usingTreeData = this.gridOptionsWrapper.isTreeData();
4551 this.addManagedListener(this.gridOptionsWrapper, 'autoGroupColumnDef', this.onAutoGroupColumnDefChanged.bind(this));
4552 };
4553 ColumnController.prototype.onAutoGroupColumnDefChanged = function () {
4554 this.autoGroupsNeedBuilding = true;
4555 this.forceRecreateAutoGroups = true;
4556 this.updateGridColumns();
4557 this.updateDisplayedColumns('gridOptionsChanged');
4558 };
4559 ColumnController.prototype.getColDefVersion = function () {
4560 return this.colDefVersion;
4561 };
4562 ColumnController.prototype.setColumnDefs = function (columnDefs, source) {
4563 var _this = this;
4564 if (source === void 0) { source = 'api'; }
4565 var colsPreviouslyExisted = !!this.columnDefs;
4566 this.colDefVersion++;
4567 var raiseEventsFunc = this.compareColumnStatesAndRaiseEvents(source);
4568 this.columnDefs = columnDefs;
4569 // always invalidate cache on changing columns, as the column id's for the new columns
4570 // could overlap with the old id's, so the cache would return old values for new columns.
4571 this.valueCache.expire();
4572 // NOTE ==================
4573 // we should be destroying the existing columns and groups if they exist, for example, the original column
4574 // group adds a listener to the columns, it should be also removing the listeners
4575 this.autoGroupsNeedBuilding = true;
4576 var oldPrimaryColumns = this.primaryColumns;
4577 var oldPrimaryTree = this.primaryColumnTree;
4578 var balancedTreeResult = this.columnFactory.createColumnTree(columnDefs, true, oldPrimaryTree);
4579 this.primaryColumnTree = balancedTreeResult.columnTree;
4580 this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;
4581 this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);
4582 this.primaryColumnsMap = {};
4583 this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });
4584 this.extractRowGroupColumns(source, oldPrimaryColumns);
4585 this.extractPivotColumns(source, oldPrimaryColumns);
4586 this.extractValueColumns(source, oldPrimaryColumns);
4587 this.ready = true;
4588 this.updateGridColumns();
4589 if (colsPreviouslyExisted && this.gridColsArePrimary && this.gridOptionsWrapper.isApplyColumnDefOrder()) {
4590 this.orderGridColumnsLikePrimary();
4591 }
4592 this.updateDisplayedColumns(source);
4593 this.checkViewportColumns();
4594 // this event is not used by AG Grid, but left here for backwards compatibility,
4595 // in case applications use it
4596 this.dispatchEverythingChanged(source);
4597 raiseEventsFunc();
4598 this.dispatchNewColumnsLoaded();
4599 };
4600 ColumnController.prototype.dispatchNewColumnsLoaded = function () {
4601 var newColumnsLoadedEvent = {
4602 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED,
4603 api: this.gridApi,
4604 columnApi: this.columnApi
4605 };
4606 this.eventService.dispatchEvent(newColumnsLoadedEvent);
4607 };
4608 // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded
4609 ColumnController.prototype.dispatchEverythingChanged = function (source) {
4610 if (source === void 0) { source = 'api'; }
4611 var eventEverythingChanged = {
4612 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_EVERYTHING_CHANGED,
4613 api: this.gridApi,
4614 columnApi: this.columnApi,
4615 source: source
4616 };
4617 this.eventService.dispatchEvent(eventEverythingChanged);
4618 };
4619 ColumnController.prototype.orderGridColumnsLikePrimary = function () {
4620 var _this = this;
4621 this.gridColumns.sort(function (colA, colB) {
4622 var primaryIndexA = _this.primaryColumns.indexOf(colA);
4623 var primaryIndexB = _this.primaryColumns.indexOf(colB);
4624 // if both cols are present in primary, then we just return the position,
4625 // so position is maintained.
4626 var indexAPresent = primaryIndexA >= 0;
4627 var indexBPresent = primaryIndexB >= 0;
4628 if (indexAPresent && indexBPresent) {
4629 return primaryIndexA - primaryIndexB;
4630 }
4631 if (indexAPresent) {
4632 // B is auto group column, so put B first
4633 return 1;
4634 }
4635 if (indexBPresent) {
4636 // A is auto group column, so put A first
4637 return -1;
4638 }
4639 // otherwise both A and B are auto-group columns. so we just keep the order
4640 // as they were already in.
4641 var gridIndexA = _this.gridColumns.indexOf(colA);
4642 var gridIndexB = _this.gridColumns.indexOf(colB);
4643 return gridIndexA - gridIndexB;
4644 });
4645 };
4646 ColumnController.prototype.isAutoRowHeightActive = function () {
4647 return this.autoRowHeightColumns && this.autoRowHeightColumns.length > 0;
4648 };
4649 ColumnController.prototype.getAllAutoRowHeightCols = function () {
4650 return this.autoRowHeightColumns;
4651 };
4652 ColumnController.prototype.setViewport = function () {
4653 if (this.gridOptionsWrapper.isEnableRtl()) {
4654 this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;
4655 this.viewportRight = this.bodyWidth - this.scrollPosition;
4656 }
4657 else {
4658 this.viewportLeft = this.scrollPosition;
4659 this.viewportRight = this.scrollWidth + this.scrollPosition;
4660 }
4661 };
4662 // used by clipboard service, to know what columns to paste into
4663 ColumnController.prototype.getDisplayedColumnsStartingAt = function (column) {
4664 var currentColumn = column;
4665 var columns = [];
4666 while (currentColumn != null) {
4667 columns.push(currentColumn);
4668 currentColumn = this.getDisplayedColAfter(currentColumn);
4669 }
4670 return columns;
4671 };
4672 // checks what columns are currently displayed due to column virtualisation. fires an event
4673 // if the list of columns has changed.
4674 // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()
4675 ColumnController.prototype.checkViewportColumns = function () {
4676 // check displayCenterColumnTree exists first, as it won't exist when grid is initialising
4677 if (this.displayedColumnsCenter == null) {
4678 return;
4679 }
4680 var hashBefore = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');
4681 this.extractViewport();
4682 var hashAfter = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');
4683 if (hashBefore !== hashAfter) {
4684 var event_1 = {
4685 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED,
4686 api: this.gridApi,
4687 columnApi: this.columnApi
4688 };
4689 this.eventService.dispatchEvent(event_1);
4690 }
4691 };
4692 ColumnController.prototype.setViewportPosition = function (scrollWidth, scrollPosition) {
4693 if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {
4694 this.scrollWidth = scrollWidth;
4695 this.scrollPosition = scrollPosition;
4696 // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,
4697 // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the
4698 // virtual columns again
4699 this.bodyWidthDirty = true;
4700 this.setViewport();
4701 if (this.ready) {
4702 this.checkViewportColumns();
4703 }
4704 }
4705 };
4706 ColumnController.prototype.isPivotMode = function () {
4707 return this.pivotMode;
4708 };
4709 ColumnController.prototype.isPivotSettingAllowed = function (pivot) {
4710 if (pivot && this.gridOptionsWrapper.isTreeData()) {
4711 console.warn("AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'");
4712 return false;
4713 }
4714 return true;
4715 };
4716 ColumnController.prototype.setPivotMode = function (pivotMode, source) {
4717 if (source === void 0) { source = 'api'; }
4718 if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {
4719 return;
4720 }
4721 this.pivotMode = pivotMode;
4722 // we need to update grid columns to cover the scenario where user has groupSuppressAutoColumn=true, as
4723 // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),
4724 // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed
4725 this.autoGroupsNeedBuilding = true;
4726 this.updateGridColumns();
4727 this.updateDisplayedColumns(source);
4728 var event = {
4729 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED,
4730 api: this.gridApi,
4731 columnApi: this.columnApi
4732 };
4733 this.eventService.dispatchEvent(event);
4734 };
4735 ColumnController.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {
4736 if (!this.secondaryColumnsPresent || !this.secondaryColumns) {
4737 return null;
4738 }
4739 var valueColumnToFind = this.getPrimaryColumn(valueColKey);
4740 var foundColumn = null;
4741 this.secondaryColumns.forEach(function (column) {
4742 var thisPivotKeys = column.getColDef().pivotKeys;
4743 var pivotValueColumn = column.getColDef().pivotValueColumn;
4744 var pivotKeyMatches = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(thisPivotKeys, pivotKeys);
4745 var pivotValueMatches = pivotValueColumn === valueColumnToFind;
4746 if (pivotKeyMatches && pivotValueMatches) {
4747 foundColumn = column;
4748 }
4749 });
4750 return foundColumn;
4751 };
4752 ColumnController.prototype.setBeans = function (loggerFactory) {
4753 this.logger = loggerFactory.create('ColumnController');
4754 };
4755 ColumnController.prototype.setFirstRightAndLastLeftPinned = function (source) {
4756 var lastLeft;
4757 var firstRight;
4758 if (this.gridOptionsWrapper.isEnableRtl()) {
4759 lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;
4760 firstRight = this.displayedColumnsRight ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.displayedColumnsRight) : null;
4761 }
4762 else {
4763 lastLeft = this.displayedColumnsLeft ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.displayedColumnsLeft) : null;
4764 firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;
4765 }
4766 this.gridColumns.forEach(function (column) {
4767 column.setLastLeftPinned(column === lastLeft, source);
4768 column.setFirstRightPinned(column === firstRight, source);
4769 });
4770 };
4771 ColumnController.prototype.autoSizeColumns = function (keys, skipHeader, source) {
4772 // because of column virtualisation, we can only do this function on columns that are
4773 // actually rendered, as non-rendered columns (outside the viewport and not rendered
4774 // due to column virtualisation) are not present. this can result in all rendered columns
4775 // getting narrowed, which in turn introduces more rendered columns on the RHS which
4776 // did not get autosized in the original run, leaving the visible grid with columns on
4777 // the LHS sized, but RHS no. so we keep looping through the visible columns until
4778 // no more cols are available (rendered) to be resized
4779 var _this = this;
4780 if (source === void 0) { source = "api"; }
4781 // we autosize after animation frames finish in case any cell renderers need to complete first. this can
4782 // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid
4783 // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).
4784 this.animationFrameService.flushAllFrames();
4785 // keep track of which cols we have resized in here
4786 var columnsAutosized = [];
4787 // initialise with anything except 0 so that while loop executes at least once
4788 var changesThisTimeAround = -1;
4789 if (skipHeader == null) {
4790 skipHeader = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();
4791 }
4792 while (changesThisTimeAround !== 0) {
4793 changesThisTimeAround = 0;
4794 this.actionOnGridColumns(keys, function (column) {
4795 // if already autosized, skip it
4796 if (columnsAutosized.indexOf(column) >= 0) {
4797 return false;
4798 }
4799 // get how wide this col should be
4800 var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, skipHeader);
4801 // preferredWidth = -1 if this col is not on the screen
4802 if (preferredWidth > 0) {
4803 var newWidth = _this.normaliseColumnWidth(column, preferredWidth);
4804 column.setActualWidth(newWidth, source);
4805 columnsAutosized.push(column);
4806 changesThisTimeAround++;
4807 }
4808 return true;
4809 }, source);
4810 }
4811 this.fireColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');
4812 };
4813 ColumnController.prototype.fireColumnResizedEvent = function (columns, finished, source, flexColumns) {
4814 if (flexColumns === void 0) { flexColumns = null; }
4815 if (columns && columns.length) {
4816 var event_2 = {
4817 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_RESIZED,
4818 columns: columns,
4819 column: columns.length === 1 ? columns[0] : null,
4820 flexColumns: flexColumns,
4821 finished: finished,
4822 api: this.gridApi,
4823 columnApi: this.columnApi,
4824 source: source
4825 };
4826 this.eventService.dispatchEvent(event_2);
4827 }
4828 };
4829 ColumnController.prototype.autoSizeColumn = function (key, skipHeader, source) {
4830 if (source === void 0) { source = "api"; }
4831 if (key) {
4832 this.autoSizeColumns([key], skipHeader, source);
4833 }
4834 };
4835 ColumnController.prototype.autoSizeAllColumns = function (skipHeader, source) {
4836 if (source === void 0) { source = "api"; }
4837 var allDisplayedColumns = this.getAllDisplayedColumns();
4838 this.autoSizeColumns(allDisplayedColumns, skipHeader, source);
4839 };
4840 ColumnController.prototype.getColumnsFromTree = function (rootColumns) {
4841 var result = [];
4842 var recursiveFindColumns = function (childColumns) {
4843 for (var i = 0; i < childColumns.length; i++) {
4844 var child = childColumns[i];
4845 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
4846 result.push(child);
4847 }
4848 else if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
4849 recursiveFindColumns(child.getChildren());
4850 }
4851 }
4852 };
4853 recursiveFindColumns(rootColumns);
4854 return result;
4855 };
4856 ColumnController.prototype.getAllDisplayedTrees = function () {
4857 if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {
4858 return this.displayedTreeLeft
4859 .concat(this.displayedTreeCentre)
4860 .concat(this.displayedTreeRight);
4861 }
4862 return null;
4863 };
4864 // + columnSelectPanel
4865 ColumnController.prototype.getPrimaryColumnTree = function () {
4866 return this.primaryColumnTree;
4867 };
4868 // + gridPanel -> for resizing the body and setting top margin
4869 ColumnController.prototype.getHeaderRowCount = function () {
4870 return this.gridHeaderRowCount;
4871 };
4872 // + headerRenderer -> setting pinned body width
4873 ColumnController.prototype.getDisplayedTreeLeft = function () {
4874 return this.displayedTreeLeft;
4875 };
4876 // + headerRenderer -> setting pinned body width
4877 ColumnController.prototype.getDisplayedTreeRight = function () {
4878 return this.displayedTreeRight;
4879 };
4880 // + headerRenderer -> setting pinned body width
4881 ColumnController.prototype.getDisplayedTreeCentre = function () {
4882 return this.displayedTreeCentre;
4883 };
4884 // gridPanel -> ensureColumnVisible
4885 ColumnController.prototype.isColumnDisplayed = function (column) {
4886 return this.getAllDisplayedColumns().indexOf(column) >= 0;
4887 };
4888 // + csvCreator
4889 ColumnController.prototype.getAllDisplayedColumns = function () {
4890 return this.displayedColumns;
4891 };
4892 ColumnController.prototype.getViewportColumns = function () {
4893 return this.viewportColumns;
4894 };
4895 ColumnController.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {
4896 if (!this.colSpanActive) {
4897 return this.displayedColumnsLeft;
4898 }
4899 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);
4900 };
4901 ColumnController.prototype.getDisplayedRightColumnsForRow = function (rowNode) {
4902 if (!this.colSpanActive) {
4903 return this.displayedColumnsRight;
4904 }
4905 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);
4906 };
4907 ColumnController.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {
4908 var result = [];
4909 var lastConsideredCol = null;
4910 var _loop_1 = function (i) {
4911 var col = displayedColumns[i];
4912 var maxAllowedColSpan = displayedColumns.length - i;
4913 var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);
4914 var columnsToCheckFilter = [col];
4915 if (colSpan > 1) {
4916 var colsToRemove = colSpan - 1;
4917 for (var j = 1; j <= colsToRemove; j++) {
4918 columnsToCheckFilter.push(displayedColumns[i + j]);
4919 }
4920 i += colsToRemove;
4921 }
4922 // see which cols we should take out for column virtualisation
4923 var filterPasses;
4924 if (filterCallback) {
4925 // if user provided a callback, means some columns may not be in the viewport.
4926 // the user will NOT provide a callback if we are talking about pinned areas,
4927 // as pinned areas have no horizontal scroll and do not virtualise the columns.
4928 // if lots of columns, that means column spanning, and we set filterPasses = true
4929 // if one or more of the columns spanned pass the filter.
4930 filterPasses = false;
4931 columnsToCheckFilter.forEach(function (colForFilter) {
4932 if (filterCallback(colForFilter)) {
4933 filterPasses = true;
4934 }
4935 });
4936 }
4937 else {
4938 filterPasses = true;
4939 }
4940 if (filterPasses) {
4941 if (result.length === 0 && lastConsideredCol) {
4942 var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;
4943 if (gapBeforeColumn) {
4944 result.push(lastConsideredCol);
4945 }
4946 }
4947 result.push(col);
4948 }
4949 lastConsideredCol = col;
4950 out_i_1 = i;
4951 };
4952 var out_i_1;
4953 for (var i = 0; i < displayedColumns.length; i++) {
4954 _loop_1(i);
4955 i = out_i_1;
4956 }
4957 return result;
4958 };
4959 // + rowRenderer
4960 // if we are not column spanning, this just returns back the virtual centre columns,
4961 // however if we are column spanning, then different rows can have different virtual
4962 // columns, so we have to work out the list for each individual row.
4963 ColumnController.prototype.getViewportCenterColumnsForRow = function (rowNode) {
4964 var _this = this;
4965 if (!this.colSpanActive) {
4966 return this.viewportColumnsCenter;
4967 }
4968 var emptySpaceBeforeColumn = function (col) {
4969 var left = col.getLeft();
4970 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(left) && left > _this.viewportLeft;
4971 };
4972 // if doing column virtualisation, then we filter based on the viewport.
4973 var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInViewport.bind(this);
4974 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);
4975 };
4976 ColumnController.prototype.getAriaColumnIndex = function (col) {
4977 return this.getAllGridColumns().indexOf(col) + 1;
4978 };
4979 ColumnController.prototype.isColumnInViewport = function (col) {
4980 var columnLeft = col.getLeft() || 0;
4981 var columnRight = columnLeft + col.getActualWidth();
4982 // adding 200 for buffer size, so some cols off viewport are rendered.
4983 // this helps horizontal scrolling so user rarely sees white space (unless
4984 // they scroll horizontally fast). however we are conservative, as the more
4985 // buffer the slower the vertical redraw speed
4986 var leftBounds = this.viewportLeft - 200;
4987 var rightBounds = this.viewportRight + 200;
4988 var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;
4989 var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;
4990 return !columnToMuchLeft && !columnToMuchRight;
4991 };
4992 // used by:
4993 // + angularGrid -> setting pinned body width
4994 // note: this should be cached
4995 ColumnController.prototype.getDisplayedColumnsLeftWidth = function () {
4996 return this.getWidthOfColsInList(this.displayedColumnsLeft);
4997 };
4998 // note: this should be cached
4999 ColumnController.prototype.getDisplayedColumnsRightWidth = function () {
5000 return this.getWidthOfColsInList(this.displayedColumnsRight);
5001 };
5002 ColumnController.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {
5003 var _this = this;
5004 if (source === void 0) { source = "api"; }
5005 if (!keys || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(keys)) {
5006 return;
5007 }
5008 var atLeastOne = false;
5009 keys.forEach(function (key) {
5010 var columnToAdd = _this.getPrimaryColumn(key);
5011 if (!columnToAdd) {
5012 return;
5013 }
5014 if (actionIsAdd) {
5015 if (masterList.indexOf(columnToAdd) >= 0) {
5016 return;
5017 }
5018 masterList.push(columnToAdd);
5019 }
5020 else {
5021 if (masterList.indexOf(columnToAdd) < 0) {
5022 return;
5023 }
5024 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(masterList, columnToAdd);
5025 }
5026 columnCallback(columnToAdd);
5027 atLeastOne = true;
5028 });
5029 if (!atLeastOne) {
5030 return;
5031 }
5032 if (this.autoGroupsNeedBuilding) {
5033 this.updateGridColumns();
5034 }
5035 this.updateDisplayedColumns(source);
5036 var event = {
5037 type: eventType,
5038 columns: masterList,
5039 column: masterList.length === 1 ? masterList[0] : null,
5040 api: this.gridApi,
5041 columnApi: this.columnApi,
5042 source: source
5043 };
5044 this.eventService.dispatchEvent(event);
5045 };
5046 ColumnController.prototype.setRowGroupColumns = function (colKeys, source) {
5047 if (source === void 0) { source = "api"; }
5048 this.autoGroupsNeedBuilding = true;
5049 this.setPrimaryColumnList(colKeys, this.rowGroupColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.setRowGroupActive.bind(this), source);
5050 };
5051 ColumnController.prototype.setRowGroupActive = function (active, column, source) {
5052 if (active === column.isRowGroupActive()) {
5053 return;
5054 }
5055 column.setRowGroupActive(active, source);
5056 if (!active && !this.gridOptionsWrapper.isSuppressMakeColumnVisibleAfterUnGroup()) {
5057 column.setVisible(true, source);
5058 }
5059 };
5060 ColumnController.prototype.addRowGroupColumn = function (key, source) {
5061 if (source === void 0) { source = "api"; }
5062 if (key) {
5063 this.addRowGroupColumns([key], source);
5064 }
5065 };
5066 ColumnController.prototype.addRowGroupColumns = function (keys, source) {
5067 if (source === void 0) { source = "api"; }
5068 this.autoGroupsNeedBuilding = true;
5069 this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, source);
5070 };
5071 ColumnController.prototype.removeRowGroupColumns = function (keys, source) {
5072 if (source === void 0) { source = "api"; }
5073 this.autoGroupsNeedBuilding = true;
5074 this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, source);
5075 };
5076 ColumnController.prototype.removeRowGroupColumn = function (key, source) {
5077 if (source === void 0) { source = "api"; }
5078 if (key) {
5079 this.removeRowGroupColumns([key], source);
5080 }
5081 };
5082 ColumnController.prototype.addPivotColumns = function (keys, source) {
5083 if (source === void 0) { source = "api"; }
5084 this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, source);
5085 };
5086 ColumnController.prototype.setPivotColumns = function (colKeys, source) {
5087 if (source === void 0) { source = "api"; }
5088 this.setPrimaryColumnList(colKeys, this.pivotColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, function (added, column) {
5089 column.setPivotActive(added, source);
5090 }, source);
5091 };
5092 ColumnController.prototype.addPivotColumn = function (key, source) {
5093 if (source === void 0) { source = "api"; }
5094 this.addPivotColumns([key], source);
5095 };
5096 ColumnController.prototype.removePivotColumns = function (keys, source) {
5097 if (source === void 0) { source = "api"; }
5098 this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, source);
5099 };
5100 ColumnController.prototype.removePivotColumn = function (key, source) {
5101 if (source === void 0) { source = "api"; }
5102 this.removePivotColumns([key], source);
5103 };
5104 ColumnController.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, columnCallback, source) {
5105 var _this = this;
5106 masterList.length = 0;
5107 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(colKeys)) {
5108 colKeys.forEach(function (key) {
5109 var column = _this.getPrimaryColumn(key);
5110 if (column) {
5111 masterList.push(column);
5112 }
5113 });
5114 }
5115 this.primaryColumns.forEach(function (column) {
5116 var added = masterList.indexOf(column) >= 0;
5117 columnCallback(added, column);
5118 });
5119 if (this.autoGroupsNeedBuilding) {
5120 this.updateGridColumns();
5121 }
5122 this.updateDisplayedColumns(source);
5123 this.fireColumnEvent(eventName, masterList, source);
5124 };
5125 ColumnController.prototype.setValueColumns = function (colKeys, source) {
5126 if (source === void 0) { source = "api"; }
5127 this.setPrimaryColumnList(colKeys, this.valueColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.setValueActive.bind(this), source);
5128 };
5129 ColumnController.prototype.setValueActive = function (active, column, source) {
5130 if (active === column.isValueActive()) {
5131 return;
5132 }
5133 column.setValueActive(active, source);
5134 if (active && !column.getAggFunc()) {
5135 var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);
5136 column.setAggFunc(initialAggFunc);
5137 }
5138 };
5139 ColumnController.prototype.addValueColumns = function (keys, source) {
5140 if (source === void 0) { source = "api"; }
5141 this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, source);
5142 };
5143 ColumnController.prototype.addValueColumn = function (colKey, source) {
5144 if (source === void 0) { source = "api"; }
5145 if (colKey) {
5146 this.addValueColumns([colKey], source);
5147 }
5148 };
5149 ColumnController.prototype.removeValueColumn = function (colKey, source) {
5150 if (source === void 0) { source = "api"; }
5151 this.removeValueColumns([colKey], source);
5152 };
5153 ColumnController.prototype.removeValueColumns = function (keys, source) {
5154 if (source === void 0) { source = "api"; }
5155 this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, source);
5156 };
5157 // returns the width we can set to this col, taking into consideration min and max widths
5158 ColumnController.prototype.normaliseColumnWidth = function (column, newWidth) {
5159 var minWidth = column.getMinWidth();
5160 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && newWidth < minWidth) {
5161 newWidth = minWidth;
5162 }
5163 var maxWidth = column.getMaxWidth();
5164 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && column.isGreaterThanMax(newWidth)) {
5165 newWidth = maxWidth;
5166 }
5167 return newWidth;
5168 };
5169 ColumnController.prototype.getPrimaryOrGridColumn = function (key) {
5170 var column = this.getPrimaryColumn(key);
5171 return column || this.getGridColumn(key);
5172 };
5173 ColumnController.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column
5174 finished, // @finished - ends up in the event, tells the user if more events are to come
5175 source) {
5176 var _this = this;
5177 if (source === void 0) { source = "api"; }
5178 var sets = [];
5179 columnWidths.forEach(function (columnWidth) {
5180 var col = _this.getPrimaryOrGridColumn(columnWidth.key);
5181 if (!col) {
5182 return;
5183 }
5184 sets.push({
5185 width: columnWidth.newWidth,
5186 ratios: [1],
5187 columns: [col]
5188 });
5189 // if user wants to do shift resize by default, then we invert the shift operation
5190 var defaultIsShift = _this.gridOptionsWrapper.getColResizeDefault() === 'shift';
5191 if (defaultIsShift) {
5192 shiftKey = !shiftKey;
5193 }
5194 if (shiftKey) {
5195 var otherCol = _this.getDisplayedColAfter(col);
5196 if (!otherCol) {
5197 return;
5198 }
5199 var widthDiff = col.getActualWidth() - columnWidth.newWidth;
5200 var otherColWidth = otherCol.getActualWidth() + widthDiff;
5201 sets.push({
5202 width: otherColWidth,
5203 ratios: [1],
5204 columns: [otherCol]
5205 });
5206 }
5207 });
5208 if (sets.length === 0) {
5209 return;
5210 }
5211 this.resizeColumnSets(sets, finished, source);
5212 };
5213 ColumnController.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {
5214 var columns = columnResizeSet.columns, width = columnResizeSet.width;
5215 // every col has a min width, so sum them all up and see if we have enough room
5216 // for all the min widths
5217 var minWidthAccumulated = 0;
5218 var maxWidthAccumulated = 0;
5219 var maxWidthActive = true;
5220 columns.forEach(function (col) {
5221 var minWidth = col.getMinWidth();
5222 minWidthAccumulated += minWidth || 0;
5223 var maxWidth = col.getMaxWidth();
5224 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && maxWidth > 0) {
5225 maxWidthAccumulated += maxWidth;
5226 }
5227 else {
5228 // if at least one columns has no max width, it means the group of columns
5229 // then has no max width, as at least one column can take as much width as possible
5230 maxWidthActive = false;
5231 }
5232 });
5233 var minWidthPasses = width >= minWidthAccumulated;
5234 var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);
5235 return minWidthPasses && maxWidthPasses;
5236 };
5237 // method takes sets of columns and resizes them. either all sets will be resized, or nothing
5238 // be resized. this is used for example when user tries to resize a group and holds shift key,
5239 // then both the current group (grows), and the adjacent group (shrinks), will get resized,
5240 // so that's two sets for this method.
5241 ColumnController.prototype.resizeColumnSets = function (resizeSets, finished, source) {
5242 var passMinMaxCheck = !resizeSets || resizeSets.every(this.checkMinAndMaxWidthsForSet.bind(this));
5243 if (!passMinMaxCheck) {
5244 // even though we are not going to resize beyond min/max size, we still need to raise event when finished
5245 if (finished) {
5246 var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;
5247 this.fireColumnResizedEvent(columns, finished, source);
5248 }
5249 return; // don't resize!
5250 }
5251 var changedCols = [];
5252 var allResizedCols = [];
5253 resizeSets.forEach(function (set) {
5254 var width = set.width, columns = set.columns, ratios = set.ratios;
5255 // keep track of pixels used, and last column gets the remaining,
5256 // to cater for rounding errors, and min width adjustments
5257 var newWidths = {};
5258 var finishedCols = {};
5259 columns.forEach(function (col) { return allResizedCols.push(col); });
5260 // the loop below goes through each col. if a col exceeds it's min/max width,
5261 // it then gets set to its min/max width and the column is removed marked as 'finished'
5262 // and the calculation is done again leaving this column out. take for example columns
5263 // {A, width: 50, maxWidth: 100}
5264 // {B, width: 50}
5265 // {C, width: 50}
5266 // and then the set is set to width 600 - on the first pass the grid tries to set each column
5267 // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked
5268 // as 'finished' and the calculation is done again with the remaining cols B and C, which end up
5269 // splitting the remaining 500 pixels.
5270 var finishedColsGrew = true;
5271 var loopCount = 0;
5272 var _loop_2 = function () {
5273 loopCount++;
5274 if (loopCount > 1000) {
5275 // this should never happen, but in the future, someone might introduce a bug here,
5276 // so we stop the browser from hanging and report bug properly
5277 console.error('AG Grid: infinite loop in resizeColumnSets');
5278 return "break";
5279 }
5280 finishedColsGrew = false;
5281 var subsetCols = [];
5282 var subsetRatioTotal = 0;
5283 var pixelsToDistribute = width;
5284 columns.forEach(function (col, index) {
5285 var thisColFinished = finishedCols[col.getId()];
5286 if (thisColFinished) {
5287 pixelsToDistribute -= newWidths[col.getId()];
5288 }
5289 else {
5290 subsetCols.push(col);
5291 var ratioThisCol = ratios[index];
5292 subsetRatioTotal += ratioThisCol;
5293 }
5294 });
5295 // because we are not using all of the ratios (cols can be missing),
5296 // we scale the ratio. if all columns are included, then subsetRatioTotal=1,
5297 // and so the ratioScale will be 1.
5298 var ratioScale = 1 / subsetRatioTotal;
5299 subsetCols.forEach(function (col, index) {
5300 var lastCol = index === (subsetCols.length - 1);
5301 var colNewWidth;
5302 if (lastCol) {
5303 colNewWidth = pixelsToDistribute;
5304 }
5305 else {
5306 colNewWidth = Math.round(ratios[index] * width * ratioScale);
5307 pixelsToDistribute -= colNewWidth;
5308 }
5309 var minWidth = col.getMinWidth();
5310 var maxWidth = col.getMaxWidth();
5311 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && colNewWidth < minWidth) {
5312 colNewWidth = minWidth;
5313 finishedCols[col.getId()] = true;
5314 finishedColsGrew = true;
5315 }
5316 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {
5317 colNewWidth = maxWidth;
5318 finishedCols[col.getId()] = true;
5319 finishedColsGrew = true;
5320 }
5321 newWidths[col.getId()] = colNewWidth;
5322 });
5323 };
5324 while (finishedColsGrew) {
5325 var state_1 = _loop_2();
5326 if (state_1 === "break")
5327 break;
5328 }
5329 columns.forEach(function (col) {
5330 var newWidth = newWidths[col.getId()];
5331 if (col.getActualWidth() !== newWidth) {
5332 col.setActualWidth(newWidth, source);
5333 changedCols.push(col);
5334 }
5335 });
5336 });
5337 // if no cols changed, then no need to update more or send event.
5338 var atLeastOneColChanged = changedCols.length > 0;
5339 var flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });
5340 if (atLeastOneColChanged) {
5341 this.setLeftValues(source);
5342 this.updateBodyWidths();
5343 this.checkViewportColumns();
5344 }
5345 // check for change first, to avoid unnecessary firing of events
5346 // however we always fire 'finished' events. this is important
5347 // when groups are resized, as if the group is changing slowly,
5348 // eg 1 pixel at a time, then each change will fire change events
5349 // in all the columns in the group, but only one with get the pixel.
5350 var colsForEvent = allResizedCols.concat(flexedCols);
5351 if (atLeastOneColChanged || finished) {
5352 this.fireColumnResizedEvent(colsForEvent, finished, source, flexedCols);
5353 }
5354 };
5355 ColumnController.prototype.setColumnAggFunc = function (key, aggFunc, source) {
5356 if (source === void 0) { source = "api"; }
5357 if (!key) {
5358 return;
5359 }
5360 var column = this.getPrimaryColumn(key);
5361 if (!column) {
5362 return;
5363 }
5364 column.setAggFunc(aggFunc);
5365 this.fireColumnEvent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, [column], source);
5366 };
5367 ColumnController.prototype.fireColumnEvent = function (type, columns, source) {
5368 var event = {
5369 type: type,
5370 columns: columns,
5371 column: (columns && columns.length == 1) ? columns[0] : null,
5372 api: this.gridApi,
5373 columnApi: this.columnApi,
5374 source: source
5375 };
5376 this.eventService.dispatchEvent(event);
5377 };
5378 ColumnController.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {
5379 if (source === void 0) { source = "api"; }
5380 var column = this.rowGroupColumns[fromIndex];
5381 this.rowGroupColumns.splice(fromIndex, 1);
5382 this.rowGroupColumns.splice(toIndex, 0, column);
5383 var event = {
5384 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED,
5385 columns: this.rowGroupColumns,
5386 column: this.rowGroupColumns.length === 1 ? this.rowGroupColumns[0] : null,
5387 api: this.gridApi,
5388 columnApi: this.columnApi,
5389 source: source
5390 };
5391 this.eventService.dispatchEvent(event);
5392 };
5393 ColumnController.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source) {
5394 if (source === void 0) { source = "api"; }
5395 this.columnAnimationService.start();
5396 if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {
5397 console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);
5398 console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');
5399 return;
5400 }
5401 // we want to pull all the columns out first and put them into an ordered list
5402 var columnsToMove = this.getGridColumns(columnsToMoveKeys);
5403 var failedRules = !this.doesMovePassRules(columnsToMove, toIndex);
5404 if (failedRules) {
5405 return;
5406 }
5407 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["moveInArray"])(this.gridColumns, columnsToMove, toIndex);
5408 this.updateDisplayedColumns(source);
5409 var event = {
5410 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_MOVED,
5411 columns: columnsToMove,
5412 column: columnsToMove.length === 1 ? columnsToMove[0] : null,
5413 toIndex: toIndex,
5414 api: this.gridApi,
5415 columnApi: this.columnApi,
5416 source: source
5417 };
5418 this.eventService.dispatchEvent(event);
5419 this.columnAnimationService.finish();
5420 };
5421 ColumnController.prototype.doesMovePassRules = function (columnsToMove, toIndex) {
5422 // make a copy of what the grid columns would look like after the move
5423 var proposedColumnOrder = this.gridColumns.slice();
5424 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["moveInArray"])(proposedColumnOrder, columnsToMove, toIndex);
5425 // then check that the new proposed order of the columns passes all rules
5426 if (!this.doesMovePassMarryChildren(proposedColumnOrder)) {
5427 return false;
5428 }
5429 if (!this.doesMovePassLockedPositions(proposedColumnOrder)) {
5430 return false;
5431 }
5432 return true;
5433 };
5434 // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns
5435 // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]
5436 ColumnController.prototype.sortColumnsLikeGridColumns = function (cols) {
5437 var _this = this;
5438 if (!cols || cols.length <= 1) {
5439 return;
5440 }
5441 var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;
5442 if (notAllColsInGridColumns) {
5443 return;
5444 }
5445 cols.sort(function (a, b) {
5446 var indexA = _this.gridColumns.indexOf(a);
5447 var indexB = _this.gridColumns.indexOf(b);
5448 return indexA - indexB;
5449 });
5450 };
5451 ColumnController.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {
5452 var foundNonLocked = false;
5453 var rulePassed = true;
5454 // go though the cols, see if any non-locked appear before any locked
5455 proposedColumnOrder.forEach(function (col) {
5456 if (col.getColDef().lockPosition) {
5457 if (foundNonLocked) {
5458 rulePassed = false;
5459 }
5460 }
5461 else {
5462 foundNonLocked = true;
5463 }
5464 });
5465 return rulePassed;
5466 };
5467 ColumnController.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {
5468 var rulePassed = true;
5469 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {
5470 if (!(child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"])) {
5471 return;
5472 }
5473 var columnGroup = child;
5474 var colGroupDef = columnGroup.getColGroupDef();
5475 var marryChildren = colGroupDef && colGroupDef.marryChildren;
5476 if (!marryChildren) {
5477 return;
5478 }
5479 var newIndexes = [];
5480 columnGroup.getLeafColumns().forEach(function (col) {
5481 var newColIndex = allColumnsCopy.indexOf(col);
5482 newIndexes.push(newColIndex);
5483 });
5484 var maxIndex = Math.max.apply(Math, newIndexes);
5485 var minIndex = Math.min.apply(Math, newIndexes);
5486 // spread is how far the first column in this group is away from the last column
5487 var spread = maxIndex - minIndex;
5488 var maxSpread = columnGroup.getLeafColumns().length - 1;
5489 // if the columns
5490 if (spread > maxSpread) {
5491 rulePassed = false;
5492 }
5493 // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)
5494 // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));
5495 });
5496 return rulePassed;
5497 };
5498 ColumnController.prototype.moveColumn = function (key, toIndex, source) {
5499 if (source === void 0) { source = "api"; }
5500 this.moveColumns([key], toIndex, source);
5501 };
5502 ColumnController.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {
5503 if (source === void 0) { source = "api"; }
5504 var column = this.gridColumns[fromIndex];
5505 this.moveColumn(column, toIndex, source);
5506 };
5507 ColumnController.prototype.getColumnDefs = function () {
5508 var _this = this;
5509 var cols = this.primaryColumns.slice();
5510 if (this.gridColsArePrimary) {
5511 cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });
5512 }
5513 else if (this.lastPrimaryOrder) {
5514 cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });
5515 }
5516 return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);
5517 };
5518 // used by:
5519 // + angularGrid -> for setting body width
5520 // + rowController -> setting main row widths (when inserting and resizing)
5521 // need to cache this
5522 ColumnController.prototype.getBodyContainerWidth = function () {
5523 return this.bodyWidth;
5524 };
5525 ColumnController.prototype.getContainerWidth = function (pinned) {
5526 switch (pinned) {
5527 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT:
5528 return this.leftWidth;
5529 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT:
5530 return this.rightWidth;
5531 default:
5532 return this.bodyWidth;
5533 }
5534 };
5535 // after setColumnWidth or updateGroupsAndDisplayedColumns
5536 ColumnController.prototype.updateBodyWidths = function () {
5537 var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);
5538 var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);
5539 var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);
5540 // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed
5541 // columns, due to RTL inverting the y coordinates
5542 this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;
5543 var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;
5544 if (atLeastOneChanged) {
5545 this.bodyWidth = newBodyWidth;
5546 this.leftWidth = newLeftWidth;
5547 this.rightWidth = newRightWidth;
5548 // when this fires, it is picked up by the gridPanel, which ends up in
5549 // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()
5550 var event_3 = {
5551 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,
5552 api: this.gridApi,
5553 columnApi: this.columnApi
5554 };
5555 this.eventService.dispatchEvent(event_3);
5556 }
5557 };
5558 // + rowController
5559 ColumnController.prototype.getValueColumns = function () {
5560 return this.valueColumns ? this.valueColumns : [];
5561 };
5562 // + rowController
5563 ColumnController.prototype.getPivotColumns = function () {
5564 return this.pivotColumns ? this.pivotColumns : [];
5565 };
5566 // + clientSideRowModel
5567 ColumnController.prototype.isPivotActive = function () {
5568 return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;
5569 };
5570 // + toolPanel
5571 ColumnController.prototype.getRowGroupColumns = function () {
5572 return this.rowGroupColumns ? this.rowGroupColumns : [];
5573 };
5574 // + rowController -> while inserting rows
5575 ColumnController.prototype.getDisplayedCenterColumns = function () {
5576 return this.displayedColumnsCenter;
5577 };
5578 // + rowController -> while inserting rows
5579 ColumnController.prototype.getDisplayedLeftColumns = function () {
5580 return this.displayedColumnsLeft;
5581 };
5582 ColumnController.prototype.getDisplayedRightColumns = function () {
5583 return this.displayedColumnsRight;
5584 };
5585 ColumnController.prototype.getDisplayedColumns = function (type) {
5586 switch (type) {
5587 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT:
5588 return this.getDisplayedLeftColumns();
5589 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT:
5590 return this.getDisplayedRightColumns();
5591 default:
5592 return this.getDisplayedCenterColumns();
5593 }
5594 };
5595 // used by:
5596 // + clientSideRowController -> sorting, building quick filter text
5597 // + headerRenderer -> sorting (clearing icon)
5598 ColumnController.prototype.getAllPrimaryColumns = function () {
5599 return this.primaryColumns ? this.primaryColumns.slice() : null;
5600 };
5601 ColumnController.prototype.getSecondaryColumns = function () {
5602 return this.secondaryColumns ? this.secondaryColumns.slice() : null;
5603 };
5604 ColumnController.prototype.getAllColumnsForQuickFilter = function () {
5605 return this.columnsForQuickFilter;
5606 };
5607 // + moveColumnController
5608 ColumnController.prototype.getAllGridColumns = function () {
5609 return this.gridColumns;
5610 };
5611 ColumnController.prototype.isEmpty = function () {
5612 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.gridColumns);
5613 };
5614 ColumnController.prototype.isRowGroupEmpty = function () {
5615 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.rowGroupColumns);
5616 };
5617 ColumnController.prototype.setColumnVisible = function (key, visible, source) {
5618 if (source === void 0) { source = "api"; }
5619 this.setColumnsVisible([key], visible, source);
5620 };
5621 ColumnController.prototype.setColumnsVisible = function (keys, visible, source) {
5622 var _this = this;
5623 if (visible === void 0) { visible = false; }
5624 if (source === void 0) { source = "api"; }
5625 this.columnAnimationService.start();
5626 this.actionOnGridColumns(keys, function (column) {
5627 if (column.isVisible() !== visible) {
5628 column.setVisible(visible, source);
5629 return true;
5630 }
5631 return false;
5632 }, source, function () {
5633 var event = {
5634 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VISIBLE,
5635 visible: visible,
5636 column: null,
5637 columns: null,
5638 api: _this.gridApi,
5639 columnApi: _this.columnApi,
5640 source: source
5641 };
5642 return event;
5643 });
5644 this.columnAnimationService.finish();
5645 };
5646 ColumnController.prototype.setColumnPinned = function (key, pinned, source) {
5647 if (source === void 0) { source = "api"; }
5648 if (key) {
5649 this.setColumnsPinned([key], pinned, source);
5650 }
5651 };
5652 ColumnController.prototype.setColumnsPinned = function (keys, pinned, source) {
5653 var _this = this;
5654 if (source === void 0) { source = "api"; }
5655 if (this.gridOptionsWrapper.getDomLayout() === 'print') {
5656 console.warn("Changing the column pinning status is not allowed with domLayout='print'");
5657 return;
5658 }
5659 this.columnAnimationService.start();
5660 var actualPinned;
5661 if (pinned === true || pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT) {
5662 actualPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT;
5663 }
5664 else if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT) {
5665 actualPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT;
5666 }
5667 else {
5668 actualPinned = null;
5669 }
5670 this.actionOnGridColumns(keys, function (col) {
5671 if (col.getPinned() !== actualPinned) {
5672 col.setPinned(actualPinned);
5673 return true;
5674 }
5675 return false;
5676 }, source, function () {
5677 var event = {
5678 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PINNED,
5679 pinned: actualPinned,
5680 column: null,
5681 columns: null,
5682 api: _this.gridApi,
5683 columnApi: _this.columnApi,
5684 source: source
5685 };
5686 return event;
5687 });
5688 this.columnAnimationService.finish();
5689 };
5690 // does an action on a set of columns. provides common functionality for looking up the
5691 // columns based on key, getting a list of effected columns, and then updated the event
5692 // with either one column (if it was just one col) or a list of columns
5693 // used by: autoResize, setVisible, setPinned
5694 ColumnController.prototype.actionOnGridColumns = function (// the column keys this action will be on
5695 keys,
5696 // the action to do - if this returns false, the column was skipped
5697 // and won't be included in the event
5698 action,
5699 // should return back a column event of the right type
5700 source, createEvent) {
5701 var _this = this;
5702 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(keys)) {
5703 return;
5704 }
5705 var updatedColumns = [];
5706 keys.forEach(function (key) {
5707 var column = _this.getGridColumn(key);
5708 if (!column) {
5709 return;
5710 }
5711 // need to check for false with type (ie !== instead of !=)
5712 // as not returning anything (undefined) would also be false
5713 var resultOfAction = action(column);
5714 if (resultOfAction !== false) {
5715 updatedColumns.push(column);
5716 }
5717 });
5718 if (!updatedColumns.length) {
5719 return;
5720 }
5721 this.updateDisplayedColumns(source);
5722 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(createEvent) && createEvent) {
5723 var event_4 = createEvent();
5724 event_4.columns = updatedColumns;
5725 event_4.column = updatedColumns.length === 1 ? updatedColumns[0] : null;
5726 this.eventService.dispatchEvent(event_4);
5727 }
5728 };
5729 ColumnController.prototype.getDisplayedColBefore = function (col) {
5730 var allDisplayedColumns = this.getAllDisplayedColumns();
5731 var oldIndex = allDisplayedColumns.indexOf(col);
5732 if (oldIndex > 0) {
5733 return allDisplayedColumns[oldIndex - 1];
5734 }
5735 return null;
5736 };
5737 // used by:
5738 // + rowRenderer -> for navigation
5739 ColumnController.prototype.getDisplayedColAfter = function (col) {
5740 var allDisplayedColumns = this.getAllDisplayedColumns();
5741 var oldIndex = allDisplayedColumns.indexOf(col);
5742 if (oldIndex < (allDisplayedColumns.length - 1)) {
5743 return allDisplayedColumns[oldIndex + 1];
5744 }
5745 return null;
5746 };
5747 ColumnController.prototype.getDisplayedGroupAfter = function (columnGroup) {
5748 return this.getDisplayedGroupAtDirection(columnGroup, 'After');
5749 };
5750 ColumnController.prototype.getDisplayedGroupBefore = function (columnGroup) {
5751 return this.getDisplayedGroupAtDirection(columnGroup, 'Before');
5752 };
5753 ColumnController.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {
5754 // pick the last displayed column in this group
5755 var requiredLevel = columnGroup.getOriginalColumnGroup().getLevel() + columnGroup.getPaddingLevel();
5756 var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();
5757 var col = direction === 'After' ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(colGroupLeafColumns) : colGroupLeafColumns[0];
5758 var getDisplayColMethod = "getDisplayedCol" + direction;
5759 while (true) {
5760 // keep moving to the next col, until we get to another group
5761 var column = this[getDisplayColMethod](col);
5762 if (!column) {
5763 return null;
5764 }
5765 var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);
5766 if (groupPointer !== columnGroup) {
5767 return groupPointer;
5768 }
5769 }
5770 };
5771 ColumnController.prototype.getColumnGroupAtLevel = function (column, level) {
5772 // get group at same level as the one we are looking for
5773 var groupPointer = column.getParent();
5774 var originalGroupLevel;
5775 var groupPointerLevel;
5776 while (true) {
5777 var groupPointerOriginalColumnGroup = groupPointer.getOriginalColumnGroup();
5778 originalGroupLevel = groupPointerOriginalColumnGroup.getLevel();
5779 groupPointerLevel = groupPointer.getPaddingLevel();
5780 if (originalGroupLevel + groupPointerLevel <= level) {
5781 break;
5782 }
5783 groupPointer = groupPointer.getParent();
5784 }
5785 return groupPointer;
5786 };
5787 ColumnController.prototype.isPinningLeft = function () {
5788 return this.displayedColumnsLeft.length > 0;
5789 };
5790 ColumnController.prototype.isPinningRight = function () {
5791 return this.displayedColumnsRight.length > 0;
5792 };
5793 ColumnController.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {
5794 var result = this.primaryColumns ? this.primaryColumns.slice(0) : [];
5795 if (this.groupAutoColumns && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.groupAutoColumns)) {
5796 this.groupAutoColumns.forEach(function (col) { return result.push(col); });
5797 }
5798 if (this.secondaryColumnsPresent && this.secondaryColumns) {
5799 this.secondaryColumns.forEach(function (column) { return result.push(column); });
5800 }
5801 return result;
5802 };
5803 ColumnController.prototype.createStateItemFromColumn = function (column) {
5804 var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;
5805 var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;
5806 var aggFunc = column.isValueActive() ? column.getAggFunc() : null;
5807 var sort = column.getSort() != null ? column.getSort() : null;
5808 var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;
5809 var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;
5810 var res = {
5811 colId: column.getColId(),
5812 width: column.getActualWidth(),
5813 hide: !column.isVisible(),
5814 pinned: column.getPinned(),
5815 sort: sort,
5816 sortIndex: sortIndex,
5817 aggFunc: aggFunc,
5818 rowGroup: column.isRowGroupActive(),
5819 rowGroupIndex: rowGroupIndex,
5820 pivot: column.isPivotActive(),
5821 pivotIndex: pivotIndex,
5822 flex: flex
5823 };
5824 return res;
5825 };
5826 ColumnController.prototype.getColumnState = function () {
5827 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.primaryColumns) || !this.isAlive()) {
5828 return [];
5829 }
5830 var primaryColumnState = this.primaryColumns.map(this.createStateItemFromColumn.bind(this));
5831 var groupAutoColumnState = this.groupAutoColumns
5832 // if groupAutoCols, then include them
5833 ? this.groupAutoColumns.map(this.createStateItemFromColumn.bind(this))
5834 // otherwise no
5835 : [];
5836 var columnStateList = groupAutoColumnState.concat(primaryColumnState);
5837 if (!this.pivotMode) {
5838 this.orderColumnStateList(columnStateList);
5839 }
5840 return columnStateList;
5841 };
5842 ColumnController.prototype.orderColumnStateList = function (columnStateList) {
5843 // for fast looking, store the index of each column
5844 var gridColumnIdMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));
5845 columnStateList.sort(function (itemA, itemB) {
5846 var posA = gridColumnIdMap.has(itemA.colId) ? gridColumnIdMap.get(itemA.colId) : -1;
5847 var posB = gridColumnIdMap.has(itemB.colId) ? gridColumnIdMap.get(itemB.colId) : -1;
5848 return posA - posB;
5849 });
5850 };
5851 ColumnController.prototype.resetColumnState = function (source) {
5852 // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,
5853 // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.
5854 // As a work around, developers should just put lockPosition columns first in their colDef list.
5855 if (source === void 0) { source = "api"; }
5856 // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list
5857 var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);
5858 var columnStates = [];
5859 // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.
5860 // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,
5861 // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000
5862 var letRowGroupIndex = 1000;
5863 var letPivotIndex = 1000;
5864 var colsToProcess = [];
5865 if (this.groupAutoColumns) {
5866 colsToProcess = colsToProcess.concat(this.groupAutoColumns);
5867 }
5868 if (primaryColumns) {
5869 colsToProcess = colsToProcess.concat(primaryColumns);
5870 }
5871 colsToProcess.forEach(function (column) {
5872 var colDef = column.getColDef();
5873 var sort = colDef.sort != null ? colDef.sort : null;
5874 var sortIndex = colDef.sortIndex;
5875 var hide = colDef.hide ? true : false;
5876 var pinned = colDef.pinned ? colDef.pinned : null;
5877 var width = colDef.width;
5878 var flex = colDef.flex != null ? colDef.flex : null;
5879 var rowGroupIndex = colDef.rowGroupIndex;
5880 var rowGroup = colDef.rowGroup;
5881 if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {
5882 rowGroupIndex = null;
5883 rowGroup = null;
5884 }
5885 var pivotIndex = colDef.pivotIndex;
5886 var pivot = colDef.pivot;
5887 if (pivotIndex == null && (pivot == null || pivot == false)) {
5888 pivotIndex = null;
5889 pivot = null;
5890 }
5891 var aggFunc = colDef.aggFunc != null ? colDef.aggFunc : null;
5892 var stateItem = {
5893 colId: column.getColId(),
5894 sort: sort,
5895 sortIndex: sortIndex,
5896 hide: hide,
5897 pinned: pinned,
5898 width: width,
5899 flex: flex,
5900 rowGroup: rowGroup,
5901 rowGroupIndex: rowGroupIndex,
5902 pivot: pivot,
5903 pivotIndex: pivotIndex,
5904 aggFunc: aggFunc,
5905 };
5906 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(rowGroupIndex) && rowGroup) {
5907 stateItem.rowGroupIndex = letRowGroupIndex++;
5908 }
5909 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(pivotIndex) && pivot) {
5910 stateItem.pivotIndex = letPivotIndex++;
5911 }
5912 columnStates.push(stateItem);
5913 });
5914 this.applyColumnState({ state: columnStates, applyOrder: true }, source);
5915 };
5916 ColumnController.prototype.applyColumnState = function (params, source) {
5917 var _this = this;
5918 if (source === void 0) { source = "api"; }
5919 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.primaryColumns)) {
5920 return false;
5921 }
5922 if (params && params.state && !params.state.forEach) {
5923 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.');
5924 return false;
5925 }
5926 this.columnAnimationService.start();
5927 var raiseEventsFunc = this.compareColumnStatesAndRaiseEvents(source);
5928 this.autoGroupsNeedBuilding = true;
5929 // at the end below, this list will have all columns we got no state for
5930 var columnsWithNoState = this.primaryColumns.slice();
5931 var success = true;
5932 var rowGroupIndexes = {};
5933 var pivotIndexes = {};
5934 var autoGroupColumnStates = [];
5935 var previousRowGroupCols = this.rowGroupColumns.slice();
5936 var previousPivotCols = this.pivotColumns.slice();
5937 if (params.state) {
5938 params.state.forEach(function (state) {
5939 var groupAutoColumnId = _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].GROUP_AUTO_COLUMN_ID;
5940 var colId = state.colId || '';
5941 // auto group columns are re-created so deferring syncing with ColumnState
5942 var isAutoGroupColumn = Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["startsWith"])(colId, groupAutoColumnId);
5943 if (isAutoGroupColumn) {
5944 autoGroupColumnStates.push(state);
5945 return;
5946 }
5947 var column = _this.getPrimaryColumn(colId);
5948 if (!column) {
5949 // we don't log the failure, as it's possible the user is applying that has extra
5950 // cols in it. for example they could of save while row-grouping (so state includes
5951 // auto-group column) and then applied state when not grouping (so the auto-group
5952 // column would be in the state but no used).
5953 success = false;
5954 }
5955 else {
5956 _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);
5957 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(columnsWithNoState, column);
5958 }
5959 });
5960 }
5961 // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden
5962 var applyDefaultsFunc = function (col) {
5963 return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);
5964 };
5965 columnsWithNoState.forEach(applyDefaultsFunc);
5966 // sort the lists according to the indexes that were provided
5967 var comparator = function (indexes, oldList, colA, colB) {
5968 var indexA = indexes[colA.getId()];
5969 var indexB = indexes[colB.getId()];
5970 var aHasIndex = indexA != null;
5971 var bHasIndex = indexB != null;
5972 if (aHasIndex && bHasIndex) {
5973 // both a and b are new cols with index, so sort on index
5974 return indexA - indexB;
5975 }
5976 if (aHasIndex) {
5977 // a has an index, so it should be before a
5978 return -1;
5979 }
5980 if (bHasIndex) {
5981 // b has an index, so it should be before a
5982 return 1;
5983 }
5984 var oldIndexA = oldList.indexOf(colA);
5985 var oldIndexB = oldList.indexOf(colB);
5986 var aHasOldIndex = oldIndexA >= 0;
5987 var bHasOldIndex = oldIndexB >= 0;
5988 if (aHasOldIndex && bHasOldIndex) {
5989 // both a and b are old cols, so sort based on last order
5990 return oldIndexA - oldIndexB;
5991 }
5992 if (aHasOldIndex) {
5993 // a is old, b is new, so b is first
5994 return -1;
5995 }
5996 // this bit does matter, means both are new cols
5997 // but without index or that b is old and a is new
5998 return 1;
5999 };
6000 this.rowGroupColumns.sort(comparator.bind(this, rowGroupIndexes, previousRowGroupCols));
6001 this.pivotColumns.sort(comparator.bind(this, pivotIndexes, previousPivotCols));
6002 this.updateGridColumns();
6003 // sync newly created auto group columns with ColumnState
6004 var autoGroupColsCopy = this.groupAutoColumns ? this.groupAutoColumns.slice() : [];
6005 autoGroupColumnStates.forEach(function (stateItem) {
6006 var autoCol = _this.getAutoColumn(stateItem.colId);
6007 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(autoGroupColsCopy, autoCol);
6008 _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);
6009 });
6010 // autogroup cols with nothing else, apply the default
6011 autoGroupColsCopy.forEach(applyDefaultsFunc);
6012 this.applyOrderAfterApplyState(params);
6013 this.updateDisplayedColumns(source);
6014 this.dispatchEverythingChanged(source);
6015 raiseEventsFunc();
6016 this.columnAnimationService.finish();
6017 return success;
6018 };
6019 ColumnController.prototype.applyOrderAfterApplyState = function (params) {
6020 if (!this.gridColsArePrimary || !params.applyOrder || !params.state) {
6021 return;
6022 }
6023 var newOrder = [];
6024 var processedColIds = {};
6025 var gridColumnsMap = {};
6026 this.gridColumns.forEach(function (col) { return gridColumnsMap[col.getId()] = col; });
6027 params.state.forEach(function (item) {
6028 if (!item.colId || processedColIds[item.colId]) {
6029 return;
6030 }
6031 var col = gridColumnsMap[item.colId];
6032 if (col) {
6033 newOrder.push(col);
6034 processedColIds[item.colId] = true;
6035 }
6036 });
6037 // add in all other columns
6038 this.gridColumns.forEach(function (col) {
6039 if (!processedColIds[col.getColId()]) {
6040 newOrder.push(col);
6041 }
6042 });
6043 // this is already done in updateGridColumns, however we changed the order above (to match the order of the state
6044 // columns) so we need to do it again. we could of put logic into the order above to take into account fixed
6045 // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here
6046 // is less sexy for the code here, but it keeps consistency.
6047 newOrder = this.putFixedColumnsFirst(newOrder);
6048 if (!this.doesMovePassMarryChildren(newOrder)) {
6049 console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');
6050 return;
6051 }
6052 this.gridColumns = newOrder;
6053 };
6054 ColumnController.prototype.compareColumnStatesAndRaiseEvents = function (source) {
6055 var _this = this;
6056 // if no columns to begin with, then it means we are setting columns for the first time, so
6057 // there should be no events fired to show differences in columns.
6058 var colsPreviouslyExisted = !!this.columnDefs;
6059 if (!colsPreviouslyExisted) {
6060 return function () { };
6061 }
6062 var startState = {
6063 rowGroupColumns: this.rowGroupColumns.slice(),
6064 pivotColumns: this.pivotColumns.slice(),
6065 valueColumns: this.valueColumns.slice()
6066 };
6067 var columnStateBefore = this.getColumnState();
6068 var columnStateBeforeMap = {};
6069 columnStateBefore.forEach(function (col) {
6070 columnStateBeforeMap[col.colId] = col;
6071 });
6072 return function () {
6073 if (_this.gridOptionsWrapper.isSuppressColumnStateEvents()) {
6074 return;
6075 }
6076 // raises generic ColumnEvents where all columns are returned rather than what has changed
6077 var raiseWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {
6078 var beforeList = colsBefore.map(idMapper).sort();
6079 var afterList = colsAfter.map(idMapper).sort();
6080 var unchanged = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(beforeList, afterList);
6081 if (unchanged) {
6082 return;
6083 }
6084 // returning all columns rather than what has changed!
6085 var event = {
6086 type: eventType,
6087 columns: colsAfter,
6088 column: colsAfter.length === 1 ? colsAfter[0] : null,
6089 api: _this.gridApi,
6090 columnApi: _this.columnApi,
6091 source: source
6092 };
6093 _this.eventService.dispatchEvent(event);
6094 };
6095 // determines which columns have changed according to supplied predicate
6096 var getChangedColumns = function (changedPredicate) {
6097 var changedColumns = [];
6098 _this.gridColumns.forEach(function (column) {
6099 var colStateBefore = columnStateBeforeMap[column.getColId()];
6100 if (colStateBefore && changedPredicate(colStateBefore, column)) {
6101 changedColumns.push(column);
6102 }
6103 });
6104 return changedColumns;
6105 };
6106 var columnIdMapper = function (c) { return c.getColId(); };
6107 raiseWhenListsDifferent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);
6108 raiseWhenListsDifferent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);
6109 var valueChangePredicate = function (cs, c) {
6110 var oldActive = cs.aggFunc != null;
6111 var activeChanged = oldActive != c.isValueActive();
6112 // we only check aggFunc if the agg is active
6113 var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();
6114 return activeChanged || aggFuncChanged;
6115 };
6116 var changedValues = getChangedColumns(valueChangePredicate);
6117 if (changedValues.length > 0) {
6118 // we pass all value columns, now the ones that changed. this is the same
6119 // as pivot and rowGroup cols, but different to all other properties below.
6120 // this is more for backwards compatibility, as it's always been this way.
6121 // really it should be the other way, as the order of the cols makes no difference
6122 // for valueColumns (apart from displaying them in the tool panel).
6123 _this.fireColumnEvent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, _this.valueColumns, source);
6124 }
6125 var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };
6126 _this.fireColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);
6127 var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };
6128 _this.raiseColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);
6129 var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };
6130 _this.raiseColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);
6131 var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };
6132 if (getChangedColumns(sortChangePredicate).length > 0) {
6133 _this.sortController.dispatchSortChangedEvents();
6134 }
6135 // special handling for moved column events
6136 _this.raiseColumnMovedEvent(columnStateBefore, source);
6137 };
6138 };
6139 ColumnController.prototype.raiseColumnPinnedEvent = function (changedColumns, source) {
6140 if (!changedColumns.length) {
6141 return;
6142 }
6143 // if just one column, we use this, otherwise we don't include the col
6144 var column = changedColumns.length === 1 ? changedColumns[0] : null;
6145 // only include visible if it's common in all columns
6146 var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });
6147 var event = {
6148 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PINNED,
6149 // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'
6150 pinned: pinned != null ? pinned : null,
6151 columns: changedColumns,
6152 column: column,
6153 api: this.gridApi,
6154 columnApi: this.columnApi,
6155 source: source
6156 };
6157 this.eventService.dispatchEvent(event);
6158 };
6159 ColumnController.prototype.getCommonValue = function (cols, valueGetter) {
6160 if (!cols || cols.length == 0) {
6161 return undefined;
6162 }
6163 // compare each value to the first value. if nothing differs, then value is common so return it.
6164 var firstValue = valueGetter(cols[0]);
6165 for (var i = 1; i < cols.length; i++) {
6166 if (firstValue !== valueGetter(cols[i])) {
6167 // values differ, no common value
6168 return undefined;
6169 }
6170 }
6171 return firstValue;
6172 };
6173 ColumnController.prototype.raiseColumnVisibleEvent = function (changedColumns, source) {
6174 if (!changedColumns.length) {
6175 return;
6176 }
6177 // if just one column, we use this, otherwise we don't include the col
6178 var column = changedColumns.length === 1 ? changedColumns[0] : null;
6179 // only include visible if it's common in all columns
6180 var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });
6181 var event = {
6182 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VISIBLE,
6183 visible: visible,
6184 columns: changedColumns,
6185 column: column,
6186 api: this.gridApi,
6187 columnApi: this.columnApi,
6188 source: source
6189 };
6190 this.eventService.dispatchEvent(event);
6191 };
6192 ColumnController.prototype.raiseColumnMovedEvent = function (colStateBefore, source) {
6193 // we are only interested in columns that were both present and visible before and after
6194 var _this = this;
6195 var colStateAfter = this.getColumnState();
6196 var colStateAfterMapped = {};
6197 colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });
6198 // get id's of cols in both before and after lists
6199 var colsIntersectIds = {};
6200 colStateBefore.forEach(function (s) {
6201 if (colStateAfterMapped[s.colId]) {
6202 colsIntersectIds[s.colId] = true;
6203 }
6204 });
6205 // filter state lists, so we only have cols that were present before and after
6206 var beforeFiltered = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["filter"])(colStateBefore, function (c) { return colsIntersectIds[c.colId]; });
6207 var afterFiltered = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["filter"])(colStateAfter, function (c) { return colsIntersectIds[c.colId]; });
6208 // see if any cols are in a different location
6209 var movedColumns = [];
6210 afterFiltered.forEach(function (csAfter, index) {
6211 var csBefore = beforeFiltered && beforeFiltered[index];
6212 if (csBefore && csBefore.colId !== csAfter.colId) {
6213 var gridCol = _this.getGridColumn(csBefore.colId);
6214 if (gridCol) {
6215 movedColumns.push(gridCol);
6216 }
6217 }
6218 });
6219 if (!movedColumns.length) {
6220 return;
6221 }
6222 var event = {
6223 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_MOVED,
6224 columns: movedColumns,
6225 column: null,
6226 api: this.gridApi,
6227 columnApi: this.columnApi,
6228 source: source
6229 };
6230 this.eventService.dispatchEvent(event);
6231 };
6232 ColumnController.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {
6233 if (!column) {
6234 return;
6235 }
6236 var getValue = function (key1, key2) {
6237 var stateAny = stateItem;
6238 var defaultAny = defaultState;
6239 var obj = { value1: undefined, value2: undefined };
6240 var calculated = false;
6241 if (stateAny) {
6242 if (stateAny[key1] !== undefined) {
6243 obj.value1 = stateAny[key1];
6244 calculated = true;
6245 }
6246 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(key2) && stateAny[key2] !== undefined) {
6247 obj.value2 = stateAny[key2];
6248 calculated = true;
6249 }
6250 }
6251 if (!calculated && defaultAny) {
6252 if (defaultAny[key1] !== undefined) {
6253 obj.value1 = defaultAny[key1];
6254 }
6255 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(key2) && defaultAny[key2] !== undefined) {
6256 obj.value2 = defaultAny[key2];
6257 }
6258 }
6259 return obj;
6260 };
6261 // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true
6262 var hide = getValue('hide').value1;
6263 if (hide !== undefined) {
6264 column.setVisible(!hide, source);
6265 }
6266 // sets pinned to 'left' or 'right'
6267 var pinned = getValue('pinned').value1;
6268 if (pinned !== undefined) {
6269 column.setPinned(pinned);
6270 }
6271 // if width provided and valid, use it, otherwise stick with the old width
6272 var minColWidth = this.gridOptionsWrapper.getMinColWidth();
6273 // flex
6274 var flex = getValue('flex').value1;
6275 if (flex !== undefined) {
6276 column.setFlex(flex);
6277 }
6278 // width - we only set width if column is not flexing
6279 var noFlexThisCol = column.getFlex() <= 0;
6280 if (noFlexThisCol) {
6281 // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)
6282 var width = getValue('width').value1;
6283 if (width != null) {
6284 if (minColWidth &&
6285 (width >= minColWidth)) {
6286 column.setActualWidth(width, source);
6287 }
6288 }
6289 }
6290 var sort = getValue('sort').value1;
6291 if (sort !== undefined) {
6292 if (sort === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].SORT_DESC || sort === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].SORT_ASC) {
6293 column.setSort(sort);
6294 }
6295 else {
6296 column.setSort(undefined);
6297 }
6298 }
6299 var sortIndex = getValue('sortIndex').value1;
6300 if (sortIndex !== undefined) {
6301 column.setSortIndex(sortIndex);
6302 }
6303 // we do not do aggFunc, rowGroup or pivot for auto cols, as you can't do these with auto col
6304 if (autoCol) {
6305 return;
6306 }
6307 var aggFunc = getValue('aggFunc').value1;
6308 if (aggFunc !== undefined) {
6309 if (typeof aggFunc === 'string') {
6310 column.setAggFunc(aggFunc);
6311 if (!column.isValueActive()) {
6312 column.setValueActive(true, source);
6313 this.valueColumns.push(column);
6314 }
6315 }
6316 else {
6317 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(aggFunc)) {
6318 console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +
6319 'functions, register the functions first before using them in get/set state. This is because it is ' +
6320 'intended for the column state to be stored and retrieved as simple JSON.');
6321 }
6322 column.setAggFunc(null);
6323 if (column.isValueActive()) {
6324 column.setValueActive(false, source);
6325 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.valueColumns, column);
6326 }
6327 }
6328 }
6329 var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;
6330 if (rowGroup !== undefined || rowGroupIndex !== undefined) {
6331 if (typeof rowGroupIndex === 'number' || rowGroup) {
6332 if (!column.isRowGroupActive()) {
6333 column.setRowGroupActive(true, source);
6334 this.rowGroupColumns.push(column);
6335 }
6336 if (rowGroupIndexes && typeof rowGroupIndex === 'number') {
6337 rowGroupIndexes[column.getId()] = rowGroupIndex;
6338 }
6339 }
6340 else {
6341 if (column.isRowGroupActive()) {
6342 column.setRowGroupActive(false, source);
6343 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.rowGroupColumns, column);
6344 }
6345 }
6346 }
6347 var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;
6348 if (pivot !== undefined || pivotIndex !== undefined) {
6349 if (typeof pivotIndex === 'number' || pivot) {
6350 if (!column.isPivotActive()) {
6351 column.setPivotActive(true, source);
6352 this.pivotColumns.push(column);
6353 }
6354 if (pivotIndexes && typeof pivotIndex === 'number') {
6355 pivotIndexes[column.getId()] = pivotIndex;
6356 }
6357 }
6358 else {
6359 if (column.isPivotActive()) {
6360 column.setPivotActive(false, source);
6361 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.pivotColumns, column);
6362 }
6363 }
6364 }
6365 };
6366 ColumnController.prototype.getGridColumns = function (keys) {
6367 return this.getColumns(keys, this.getGridColumn.bind(this));
6368 };
6369 ColumnController.prototype.getColumns = function (keys, columnLookupCallback) {
6370 var foundColumns = [];
6371 if (keys) {
6372 keys.forEach(function (key) {
6373 var column = columnLookupCallback(key);
6374 if (column) {
6375 foundColumns.push(column);
6376 }
6377 });
6378 }
6379 return foundColumns;
6380 };
6381 // used by growGroupPanel
6382 ColumnController.prototype.getColumnWithValidation = function (key) {
6383 if (key == null) {
6384 return null;
6385 }
6386 var column = this.getGridColumn(key);
6387 if (!column) {
6388 console.warn('AG Grid: could not find column ' + key);
6389 }
6390 return column;
6391 };
6392 ColumnController.prototype.getPrimaryColumn = function (key) {
6393 return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);
6394 };
6395 ColumnController.prototype.getGridColumn = function (key) {
6396 return this.getColumn(key, this.gridColumns, this.gridColumnsMap);
6397 };
6398 ColumnController.prototype.getColumn = function (key, columnList, columnMap) {
6399 if (!key) {
6400 return null;
6401 }
6402 // most of the time this method gets called the key is a string, so we put this shortcut in
6403 // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)
6404 if (typeof key == 'string' && columnMap[key]) {
6405 return columnMap[key];
6406 }
6407 for (var i = 0; i < columnList.length; i++) {
6408 if (this.columnsMatch(columnList[i], key)) {
6409 return columnList[i];
6410 }
6411 }
6412 return this.getAutoColumn(key);
6413 };
6414 ColumnController.prototype.getAutoColumn = function (key) {
6415 var _this = this;
6416 if (!this.groupAutoColumns ||
6417 !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.groupAutoColumns) ||
6418 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.groupAutoColumns)) {
6419 return null;
6420 }
6421 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["find"])(this.groupAutoColumns, function (groupCol) { return _this.columnsMatch(groupCol, key); });
6422 };
6423 ColumnController.prototype.columnsMatch = function (column, key) {
6424 var columnMatches = column === key;
6425 var colDefMatches = column.getColDef() === key;
6426 var idMatches = column.getColId() == key;
6427 return columnMatches || colDefMatches || idMatches;
6428 };
6429 ColumnController.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {
6430 if (includeAggFunc === void 0) { includeAggFunc = false; }
6431 if (!column) {
6432 return null;
6433 }
6434 var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);
6435 if (includeAggFunc) {
6436 return this.wrapHeaderNameWithAggFunc(column, headerName);
6437 }
6438 return headerName;
6439 };
6440 ColumnController.prototype.getDisplayNameForOriginalColumnGroup = function (columnGroup, originalColumnGroup, location) {
6441 var colGroupDef = originalColumnGroup ? originalColumnGroup.getColGroupDef() : null;
6442 if (colGroupDef) {
6443 return this.getHeaderName(colGroupDef, null, columnGroup, originalColumnGroup, location);
6444 }
6445 return null;
6446 };
6447 ColumnController.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {
6448 return this.getDisplayNameForOriginalColumnGroup(columnGroup, columnGroup.getOriginalColumnGroup(), location);
6449 };
6450 // location is where the column is going to appear, ie who is calling us
6451 ColumnController.prototype.getHeaderName = function (colDef, column, columnGroup, originalColumnGroup, location) {
6452 var headerValueGetter = colDef.headerValueGetter;
6453 if (headerValueGetter) {
6454 var params = {
6455 colDef: colDef,
6456 column: column,
6457 columnGroup: columnGroup,
6458 originalColumnGroup: originalColumnGroup,
6459 location: location,
6460 api: this.gridOptionsWrapper.getApi(),
6461 context: this.gridOptionsWrapper.getContext()
6462 };
6463 if (typeof headerValueGetter === 'function') {
6464 // valueGetter is a function, so just call it
6465 return headerValueGetter(params);
6466 }
6467 else if (typeof headerValueGetter === 'string') {
6468 // valueGetter is an expression, so execute the expression
6469 return this.expressionService.evaluate(headerValueGetter, params);
6470 }
6471 console.warn('ag-grid: headerValueGetter must be a function or a string');
6472 return '';
6473 }
6474 else if (colDef.headerName != null) {
6475 return colDef.headerName;
6476 }
6477 else if (colDef.field) {
6478 return Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["camelCaseToHumanText"])(colDef.field);
6479 }
6480 return '';
6481 };
6482 /*
6483 private getHeaderGroupName(columnGroup: ColumnGroup): string {
6484 let colGroupDef = columnGroup.getOriginalColumnGroup().getColGroupDef();
6485 let headerValueGetter = colGroupDef.headerValueGetter;
6486
6487 if (headerValueGetter) {
6488 let params = {
6489 columnGroup: columnGroup,
6490 colDef: colGroupDef,
6491 api: this.gridOptionsWrapper.getApi(),
6492 context: this.gridOptionsWrapper.getContext()
6493 };
6494
6495 if (typeof headerValueGetter === 'function') {
6496 // valueGetter is a function, so just call it
6497 return headerValueGetter(params);
6498 } else if (typeof headerValueGetter === 'string') {
6499 // valueGetter is an expression, so execute the expression
6500 return this.expressionService.evaluate(headerValueGetter, params);
6501 } else {
6502 console.warn('ag-grid: headerValueGetter must be a function or a string');
6503 return '';
6504 }
6505 } else {
6506 return colGroupDef.headerName;
6507 }
6508 }
6509 */
6510 ColumnController.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {
6511 if (this.gridOptionsWrapper.isSuppressAggFuncInHeader()) {
6512 return headerName;
6513 }
6514 // only columns with aggregation active can have aggregations
6515 var pivotValueColumn = column.getColDef().pivotValueColumn;
6516 var pivotActiveOnThisColumn = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(pivotValueColumn);
6517 var aggFunc = null;
6518 var aggFuncFound;
6519 // otherwise we have a measure that is active, and we are doing aggregation on it
6520 if (pivotActiveOnThisColumn) {
6521 aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;
6522 aggFuncFound = true;
6523 }
6524 else {
6525 var measureActive = column.isValueActive();
6526 var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();
6527 if (measureActive && aggregationPresent) {
6528 aggFunc = column.getAggFunc();
6529 aggFuncFound = true;
6530 }
6531 else {
6532 aggFuncFound = false;
6533 }
6534 }
6535 if (aggFuncFound) {
6536 var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';
6537 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
6538 var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);
6539 return aggFuncStringTranslated + "(" + headerName + ")";
6540 }
6541 return headerName;
6542 };
6543 // returns the group with matching colId and instanceId. If instanceId is missing,
6544 // matches only on the colId.
6545 ColumnController.prototype.getColumnGroup = function (colId, instanceId) {
6546 if (!colId) {
6547 return null;
6548 }
6549 if (colId instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6550 return colId;
6551 }
6552 var allColumnGroups = this.getAllDisplayedTrees();
6553 var checkInstanceId = typeof instanceId === 'number';
6554 var result = null;
6555 this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {
6556 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6557 var columnGroup = child;
6558 var matched = void 0;
6559 if (checkInstanceId) {
6560 matched = colId === columnGroup.getGroupId() && instanceId === columnGroup.getInstanceId();
6561 }
6562 else {
6563 matched = colId === columnGroup.getGroupId();
6564 }
6565 if (matched) {
6566 result = columnGroup;
6567 }
6568 }
6569 });
6570 return result;
6571 };
6572 ColumnController.prototype.isReady = function () {
6573 return this.ready;
6574 };
6575 ColumnController.prototype.extractValueColumns = function (source, oldPrimaryColumns) {
6576 this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); },
6577 // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null
6578 function () { return undefined; }, function () { return undefined; },
6579 // aggFunc is a string, so return it's existence
6580 function (colDef) {
6581 var aggFunc = colDef.aggFunc;
6582 // null or empty string means clear
6583 if (aggFunc === null || aggFunc === '') {
6584 return null;
6585 }
6586 if (aggFunc === undefined) {
6587 return;
6588 }
6589 return !!aggFunc;
6590 }, function (colDef) {
6591 // return false if any of the following: null, undefined, empty string
6592 return colDef.initialAggFunc != null && colDef.initialAggFunc != '';
6593 });
6594 // all new columns added will have aggFunc missing, so set it to what is in the colDef
6595 this.valueColumns.forEach(function (col) {
6596 var colDef = col.getColDef();
6597 // if aggFunc provided, we always override, as reactive property
6598 if (colDef.aggFunc != null && colDef.aggFunc != '') {
6599 col.setAggFunc(colDef.aggFunc);
6600 }
6601 else {
6602 // otherwise we use initialAggFunc only if no agg func set - which happens when new column only
6603 if (!col.getAggFunc()) {
6604 col.setAggFunc(colDef.initialAggFunc);
6605 }
6606 }
6607 });
6608 };
6609 ColumnController.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {
6610 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; });
6611 };
6612 ColumnController.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {
6613 if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }
6614 if (previousCols === void 0) { previousCols = []; }
6615 var colsWithIndex = [];
6616 var colsWithValue = [];
6617 // go though all cols.
6618 // if value, change
6619 // if default only, change only if new
6620 this.primaryColumns.forEach(function (col) {
6621 var colIsNew = oldPrimaryColumns.indexOf(col) < 0;
6622 var colDef = col.getColDef();
6623 var value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToBoolean"])(getValueFunc(colDef));
6624 var initialValue = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToBoolean"])(getInitialValueFunc(colDef));
6625 var index = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToNumber"])(getIndexFunc(colDef));
6626 var initialIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToNumber"])(getInitialIndexFunc(colDef));
6627 var include;
6628 if (colIsNew) {
6629 // col is new, use values if present, otherwise use default values if present
6630 var valuePresent = value !== undefined || index !== undefined;
6631 if (valuePresent) {
6632 if (value !== undefined) {
6633 // if boolean value present, we take it's value, even if 'false'
6634 include = value;
6635 }
6636 else {
6637 // otherwise we based on number value. note that 'null' resets, however 'undefined' doesn't
6638 // go through this code path (undefined means 'ignore').
6639 include = index >= 0;
6640 }
6641 }
6642 else {
6643 include = initialValue || initialIndex >= 0;
6644 }
6645 }
6646 else {
6647 // col is not new, we ignore the default values, just use the values if provided
6648 if (value !== undefined) { // value is never null, as attrToBoolean converts null to false
6649 include = value;
6650 }
6651 else if (index !== undefined) {
6652 if (index === null) {
6653 include = false;
6654 }
6655 else {
6656 include = index >= 0;
6657 }
6658 }
6659 else {
6660 // no values provided, we include if it was included last time
6661 include = previousCols.indexOf(col) >= 0;
6662 }
6663 }
6664 if (include) {
6665 var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;
6666 if (useIndex) {
6667 colsWithIndex.push(col);
6668 }
6669 else {
6670 colsWithValue.push(col);
6671 }
6672 }
6673 });
6674 var getIndexForCol = function (col) {
6675 var index = getIndexFunc(col.getColDef());
6676 var defaultIndex = getInitialIndexFunc(col.getColDef());
6677 return index != null ? index : defaultIndex;
6678 };
6679 // sort cols with index, and add these first
6680 colsWithIndex.sort(function (colA, colB) {
6681 var indexA = getIndexForCol(colA);
6682 var indexB = getIndexForCol(colB);
6683 if (indexA === indexB) {
6684 return 0;
6685 }
6686 if (indexA < indexB) {
6687 return -1;
6688 }
6689 return 1;
6690 });
6691 var res = [].concat(colsWithIndex);
6692 // second add columns that were there before and in the same order as they were before,
6693 // so we are preserving order of current grouping of columns that simply have rowGroup=true
6694 previousCols.forEach(function (col) {
6695 if (colsWithValue.indexOf(col) >= 0) {
6696 res.push(col);
6697 }
6698 });
6699 // lastly put in all remaining cols
6700 colsWithValue.forEach(function (col) {
6701 if (res.indexOf(col) < 0) {
6702 res.push(col);
6703 }
6704 });
6705 // set flag=false for removed cols
6706 previousCols.forEach(function (col) {
6707 if (res.indexOf(col) < 0) {
6708 setFlagFunc(col, false);
6709 }
6710 });
6711 // set flag=true for newly added cols
6712 res.forEach(function (col) {
6713 if (previousCols.indexOf(col) < 0) {
6714 setFlagFunc(col, true);
6715 }
6716 });
6717 return res;
6718 };
6719 ColumnController.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {
6720 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; });
6721 };
6722 ColumnController.prototype.resetColumnGroupState = function (source) {
6723 if (source === void 0) { source = "api"; }
6724 var stateItems = [];
6725 this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {
6726 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6727 var colGroupDef = child.getColGroupDef();
6728 var groupState = {
6729 groupId: child.getGroupId(),
6730 open: !colGroupDef ? undefined : colGroupDef.openByDefault
6731 };
6732 stateItems.push(groupState);
6733 }
6734 });
6735 this.setColumnGroupState(stateItems, source);
6736 };
6737 ColumnController.prototype.getColumnGroupState = function () {
6738 var columnGroupState = [];
6739 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {
6740 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6741 var originalColumnGroup = node;
6742 columnGroupState.push({
6743 groupId: originalColumnGroup.getGroupId(),
6744 open: originalColumnGroup.isExpanded()
6745 });
6746 }
6747 });
6748 return columnGroupState;
6749 };
6750 ColumnController.prototype.setColumnGroupState = function (stateItems, source) {
6751 var _this = this;
6752 if (source === void 0) { source = "api"; }
6753 this.columnAnimationService.start();
6754 var impactedGroups = [];
6755 stateItems.forEach(function (stateItem) {
6756 var groupKey = stateItem.groupId;
6757 var newValue = stateItem.open;
6758 var originalColumnGroup = _this.getOriginalColumnGroup(groupKey);
6759 if (!originalColumnGroup) {
6760 return;
6761 }
6762 if (originalColumnGroup.isExpanded() === newValue) {
6763 return;
6764 }
6765 _this.logger.log('columnGroupOpened(' + originalColumnGroup.getGroupId() + ',' + newValue + ')');
6766 originalColumnGroup.setExpanded(newValue);
6767 impactedGroups.push(originalColumnGroup);
6768 });
6769 this.updateGroupsAndDisplayedColumns(source);
6770 this.setFirstRightAndLastLeftPinned(source);
6771 impactedGroups.forEach(function (originalColumnGroup) {
6772 var event = {
6773 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_GROUP_OPENED,
6774 columnGroup: originalColumnGroup,
6775 api: _this.gridApi,
6776 columnApi: _this.columnApi
6777 };
6778 _this.eventService.dispatchEvent(event);
6779 });
6780 this.columnAnimationService.finish();
6781 };
6782 // called by headerRenderer - when a header is opened or closed
6783 ColumnController.prototype.setColumnGroupOpened = function (key, newValue, source) {
6784 if (source === void 0) { source = "api"; }
6785 var keyAsString;
6786 if (key instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6787 keyAsString = key.getId();
6788 }
6789 else {
6790 keyAsString = key || '';
6791 }
6792 this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);
6793 };
6794 ColumnController.prototype.getOriginalColumnGroup = function (key) {
6795 if (key instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6796 return key;
6797 }
6798 if (typeof key !== 'string') {
6799 console.error('AG Grid: group key must be a string');
6800 }
6801 // otherwise, search for the column group by id
6802 var res = null;
6803 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {
6804 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6805 var originalColumnGroup = node;
6806 if (originalColumnGroup.getId() === key) {
6807 res = originalColumnGroup;
6808 }
6809 }
6810 });
6811 return res;
6812 };
6813 ColumnController.prototype.calculateColumnsForDisplay = function () {
6814 var _this = this;
6815 var columnsForDisplay;
6816 if (this.pivotMode && !this.secondaryColumnsPresent) {
6817 // pivot mode is on, but we are not pivoting, so we only
6818 // show columns we are aggregating on
6819 columnsForDisplay = this.gridColumns.filter(function (column) {
6820 var isAutoGroupCol = _this.groupAutoColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.groupAutoColumns, column);
6821 var isValueCol = _this.valueColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.valueColumns, column);
6822 return isAutoGroupCol || isValueCol;
6823 });
6824 }
6825 else {
6826 // otherwise continue as normal. this can be working on the primary
6827 // or secondary columns, whatever the gridColumns are set to
6828 columnsForDisplay = this.gridColumns.filter(function (column) {
6829 // keep col if a) it's auto-group or b) it's visible
6830 var isAutoGroupCol = _this.groupAutoColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.groupAutoColumns, column);
6831 return isAutoGroupCol || column.isVisible();
6832 });
6833 }
6834 return columnsForDisplay;
6835 };
6836 ColumnController.prototype.checkColSpanActiveInCols = function (columns) {
6837 var result = false;
6838 columns.forEach(function (col) {
6839 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(col.getColDef().colSpan)) {
6840 result = true;
6841 }
6842 });
6843 return result;
6844 };
6845 ColumnController.prototype.calculateColumnsForGroupDisplay = function () {
6846 var _this = this;
6847 this.groupDisplayColumns = [];
6848 var checkFunc = function (col) {
6849 var colDef = col.getColDef();
6850 if (colDef && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(colDef.showRowGroup)) {
6851 _this.groupDisplayColumns.push(col);
6852 }
6853 };
6854 this.gridColumns.forEach(checkFunc);
6855 if (this.groupAutoColumns) {
6856 this.groupAutoColumns.forEach(checkFunc);
6857 }
6858 };
6859 ColumnController.prototype.getGroupDisplayColumns = function () {
6860 return this.groupDisplayColumns;
6861 };
6862 ColumnController.prototype.updateDisplayedColumns = function (source) {
6863 var columnsForDisplay = this.calculateColumnsForDisplay();
6864 this.buildDisplayedTrees(columnsForDisplay);
6865 this.calculateColumnsForGroupDisplay();
6866 // also called when group opened/closed
6867 this.updateGroupsAndDisplayedColumns(source);
6868 // also called when group opened/closed
6869 this.setFirstRightAndLastLeftPinned(source);
6870 };
6871 ColumnController.prototype.isSecondaryColumnsPresent = function () {
6872 return this.secondaryColumnsPresent;
6873 };
6874 ColumnController.prototype.setSecondaryColumns = function (colDefs, source) {
6875 if (source === void 0) { source = "api"; }
6876 var newColsPresent = colDefs && colDefs.length > 0;
6877 // if not cols passed, and we had to cols anyway, then do nothing
6878 if (!newColsPresent && !this.secondaryColumnsPresent) {
6879 return;
6880 }
6881 if (newColsPresent) {
6882 this.processSecondaryColumnDefinitions(colDefs);
6883 var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false);
6884 this.secondaryBalancedTree = balancedTreeResult.columnTree;
6885 this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;
6886 this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);
6887 this.secondaryColumnsPresent = true;
6888 }
6889 else {
6890 this.secondaryBalancedTree = null;
6891 this.secondaryHeaderRowCount = -1;
6892 this.secondaryColumns = null;
6893 this.secondaryColumnsPresent = false;
6894 }
6895 this.updateGridColumns();
6896 this.updateDisplayedColumns(source);
6897 };
6898 ColumnController.prototype.processSecondaryColumnDefinitions = function (colDefs) {
6899 var columnCallback = this.gridOptionsWrapper.getProcessSecondaryColDefFunc();
6900 var groupCallback = this.gridOptionsWrapper.getProcessSecondaryColGroupDefFunc();
6901 if (!columnCallback && !groupCallback) {
6902 return undefined;
6903 }
6904 var searchForColDefs = function (colDefs2) {
6905 colDefs2.forEach(function (abstractColDef) {
6906 var isGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(abstractColDef.children);
6907 if (isGroup) {
6908 var colGroupDef = abstractColDef;
6909 if (groupCallback) {
6910 groupCallback(colGroupDef);
6911 }
6912 searchForColDefs(colGroupDef.children);
6913 }
6914 else {
6915 var colDef = abstractColDef;
6916 if (columnCallback) {
6917 columnCallback(colDef);
6918 }
6919 }
6920 });
6921 };
6922 if (colDefs) {
6923 searchForColDefs(colDefs);
6924 }
6925 };
6926 // called from: setColumnState, setColumnDefs, setSecondaryColumns
6927 ColumnController.prototype.updateGridColumns = function () {
6928 var _this = this;
6929 if (this.gridColsArePrimary) {
6930 this.lastPrimaryOrder = this.gridColumns;
6931 }
6932 if (this.secondaryColumns && this.secondaryBalancedTree) {
6933 this.gridBalancedTree = this.secondaryBalancedTree.slice();
6934 this.gridHeaderRowCount = this.secondaryHeaderRowCount;
6935 this.gridColumns = this.secondaryColumns.slice();
6936 this.gridColsArePrimary = false;
6937 }
6938 else {
6939 this.gridBalancedTree = this.primaryColumnTree.slice();
6940 this.gridHeaderRowCount = this.primaryHeaderRowCount;
6941 this.gridColumns = this.primaryColumns.slice();
6942 this.gridColsArePrimary = true;
6943 // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns
6944 // when this happens (eg if user moved a column) rather than revert back to the original column order.
6945 // likewise if changing in/out of pivot mode, we want to maintain the order of the primary cols
6946 this.orderGridColsLikeLastPrimary();
6947 }
6948 this.addAutoGroupToGridColumns();
6949 this.autoRowHeightColumns = this.gridColumns.filter(function (col) { return col.getColDef().autoHeight; });
6950 this.gridColumns = this.putFixedColumnsFirst(this.gridColumns);
6951 this.setupQuickFilterColumns();
6952 this.clearDisplayedAndViewportColumns();
6953 this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);
6954 this.gridColumnsMap = {};
6955 this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });
6956 var event = {
6957 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_GRID_COLUMNS_CHANGED,
6958 api: this.gridApi,
6959 columnApi: this.columnApi
6960 };
6961 this.eventService.dispatchEvent(event);
6962 };
6963 ColumnController.prototype.orderGridColsLikeLastPrimary = function () {
6964 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.lastPrimaryOrder)) {
6965 return;
6966 }
6967 var lastPrimaryOrderMapped = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.lastPrimaryOrder.map(function (col, index) { return [col, index]; }));
6968 // only do the sort if at least one column is accounted for. columns will be not accounted for
6969 // if changing from secondary to primary columns
6970 var noColsFound = true;
6971 this.gridColumns.forEach(function (col) {
6972 if (lastPrimaryOrderMapped.has(col)) {
6973 noColsFound = false;
6974 }
6975 });
6976 if (noColsFound) {
6977 return;
6978 }
6979 // order cols in the same order as before. we need to make sure that all
6980 // cols still exists, so filter out any that no longer exist.
6981 var gridColsMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.gridColumns.map(function (col) { return [col, true]; }));
6982 var oldColsOrdered = this.lastPrimaryOrder.filter(function (col) { return gridColsMap.has(col); });
6983 var oldColsMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(oldColsOrdered.map(function (col) { return [col, true]; }));
6984 var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });
6985 // add in the new columns, at the end (if no group), or at the end of the group (if a group)
6986 var newGridColumns = oldColsOrdered.slice();
6987 newColsOrdered.forEach(function (newCol) {
6988 var parent = newCol.getOriginalParent();
6989 // if no parent, means we are not grouping, so just add the column to the end
6990 if (!parent) {
6991 newGridColumns.push(newCol);
6992 return;
6993 }
6994 // find the group the column belongs to. if no siblings at the current level (eg col in group on it's
6995 // own) then go up one level and look for siblings there.
6996 var siblings = [];
6997 while (!siblings.length && parent) {
6998 var leafCols = parent.getLeafColumns();
6999 leafCols.forEach(function (leafCol) {
7000 var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;
7001 var noYetInSiblings = siblings.indexOf(leafCol) < 0;
7002 if (presentInNewGriColumns && noYetInSiblings) {
7003 siblings.push(leafCol);
7004 }
7005 });
7006 parent = parent.getOriginalParent();
7007 }
7008 // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own
7009 if (!siblings.length) {
7010 newGridColumns.push(newCol);
7011 return;
7012 }
7013 // find index of last column in the group
7014 var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });
7015 var lastIndex = Math.max.apply(Math, indexes);
7016 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["insertIntoArray"])(newGridColumns, newCol, lastIndex + 1);
7017 });
7018 this.gridColumns = newGridColumns;
7019 };
7020 ColumnController.prototype.isPrimaryColumnGroupsPresent = function () {
7021 return this.primaryHeaderRowCount > 1;
7022 };
7023 // if we are using autoGroupCols, then they should be included for quick filter. this covers the
7024 // following scenarios:
7025 // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on
7026 // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this
7027 // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)
7028 ColumnController.prototype.setupQuickFilterColumns = function () {
7029 if (this.groupAutoColumns) {
7030 this.columnsForQuickFilter = this.primaryColumns.concat(this.groupAutoColumns);
7031 }
7032 else {
7033 this.columnsForQuickFilter = this.primaryColumns;
7034 }
7035 };
7036 ColumnController.prototype.putFixedColumnsFirst = function (cols) {
7037 var locked = cols.filter(function (c) { return c.getColDef().lockPosition; });
7038 var unlocked = cols.filter(function (c) { return !c.getColDef().lockPosition; });
7039 return locked.concat(unlocked);
7040 };
7041 ColumnController.prototype.addAutoGroupToGridColumns = function () {
7042 // add in auto-group here
7043 this.createGroupAutoColumnsIfNeeded();
7044 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.groupAutoColumns)) {
7045 return;
7046 }
7047 this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;
7048 var autoColBalancedTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);
7049 this.gridBalancedTree = autoColBalancedTree.concat(this.gridBalancedTree);
7050 };
7051 // gets called after we copy down grid columns, to make sure any part of the gui
7052 // that tries to draw, eg the header, it will get empty lists of columns rather
7053 // than stale columns. for example, the header will received gridColumnsChanged
7054 // event, so will try and draw, but it will draw successfully when it acts on the
7055 // virtualColumnsChanged event
7056 ColumnController.prototype.clearDisplayedAndViewportColumns = function () {
7057 this.displayedTreeLeft = [];
7058 this.displayedTreeRight = [];
7059 this.displayedTreeCentre = [];
7060 this.viewportRowLeft = {};
7061 this.viewportRowRight = {};
7062 this.viewportRowCenter = {};
7063 this.displayedColumnsLeft = [];
7064 this.displayedColumnsRight = [];
7065 this.displayedColumnsCenter = [];
7066 this.displayedColumns = [];
7067 this.viewportColumns = [];
7068 };
7069 ColumnController.prototype.updateGroupsAndDisplayedColumns = function (source) {
7070 this.updateOpenClosedVisibilityInColumnGroups();
7071 this.deriveDisplayedColumns(source);
7072 this.refreshFlexedColumns();
7073 this.extractViewport();
7074 this.updateBodyWidths();
7075 // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display
7076 var event = {
7077 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED,
7078 api: this.gridApi,
7079 columnApi: this.columnApi
7080 };
7081 this.eventService.dispatchEvent(event);
7082 };
7083 ColumnController.prototype.deriveDisplayedColumns = function (source) {
7084 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);
7085 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);
7086 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);
7087 this.joinDisplayedColumns();
7088 this.setLeftValues(source);
7089 };
7090 ColumnController.prototype.joinDisplayedColumns = function () {
7091 if (this.gridOptionsWrapper.isEnableRtl()) {
7092 this.displayedColumns = this.displayedColumnsRight
7093 .concat(this.displayedColumnsCenter)
7094 .concat(this.displayedColumnsLeft);
7095 }
7096 else {
7097 this.displayedColumns = this.displayedColumnsLeft
7098 .concat(this.displayedColumnsCenter)
7099 .concat(this.displayedColumnsRight);
7100 }
7101 };
7102 // sets the left pixel position of each column
7103 ColumnController.prototype.setLeftValues = function (source) {
7104 this.setLeftValuesOfColumns(source);
7105 this.setLeftValuesOfGroups();
7106 };
7107 ColumnController.prototype.setLeftValuesOfColumns = function (source) {
7108 var _this = this;
7109 // go through each list of displayed columns
7110 var allColumns = this.primaryColumns.slice(0);
7111 // let totalColumnWidth = this.getWidthOfColsInList()
7112 var doingRtl = this.gridOptionsWrapper.isEnableRtl();
7113 [
7114 this.displayedColumnsLeft,
7115 this.displayedColumnsRight,
7116 this.displayedColumnsCenter
7117 ].forEach(function (columns) {
7118 if (doingRtl) {
7119 // when doing RTL, we start at the top most pixel (ie RHS) and work backwards
7120 var left_1 = _this.getWidthOfColsInList(columns);
7121 columns.forEach(function (column) {
7122 left_1 -= column.getActualWidth();
7123 column.setLeft(left_1, source);
7124 });
7125 }
7126 else {
7127 // otherwise normal LTR, we start at zero
7128 var left_2 = 0;
7129 columns.forEach(function (column) {
7130 column.setLeft(left_2, source);
7131 left_2 += column.getActualWidth();
7132 });
7133 }
7134 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeAllFromArray"])(allColumns, columns);
7135 });
7136 // items left in allColumns are columns not displayed, so remove the left position. this is
7137 // important for the rows, as if a col is made visible, then taken out, then made visible again,
7138 // we don't want the animation of the cell floating in from the old position, whatever that was.
7139 allColumns.forEach(function (column) {
7140 column.setLeft(null, source);
7141 });
7142 };
7143 ColumnController.prototype.setLeftValuesOfGroups = function () {
7144 // a groups left value is the lest left value of it's children
7145 [
7146 this.displayedTreeLeft,
7147 this.displayedTreeRight,
7148 this.displayedTreeCentre
7149 ].forEach(function (columns) {
7150 columns.forEach(function (column) {
7151 if (column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
7152 var columnGroup = column;
7153 columnGroup.checkLeft();
7154 }
7155 });
7156 });
7157 };
7158 ColumnController.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {
7159 columns.length = 0;
7160 this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {
7161 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
7162 columns.push(child);
7163 }
7164 });
7165 };
7166 ColumnController.prototype.extractViewportColumns = function () {
7167 if (this.suppressColumnVirtualisation) {
7168 // no virtualisation, so don't filter
7169 this.viewportColumnsCenter = this.displayedColumnsCenter;
7170 }
7171 else {
7172 // filter out what should be visible
7173 this.viewportColumnsCenter = this.filterOutColumnsWithinViewport();
7174 }
7175 this.viewportColumns = this.viewportColumnsCenter
7176 .concat(this.displayedColumnsLeft)
7177 .concat(this.displayedColumnsRight);
7178 };
7179 ColumnController.prototype.getVirtualHeaderGroupRow = function (type, dept) {
7180 var result;
7181 switch (type) {
7182 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT:
7183 result = this.viewportRowLeft[dept];
7184 break;
7185 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT:
7186 result = this.viewportRowRight[dept];
7187 break;
7188 default:
7189 result = this.viewportRowCenter[dept];
7190 break;
7191 }
7192 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(result)) {
7193 result = [];
7194 }
7195 return result;
7196 };
7197 ColumnController.prototype.extractViewportRows = function () {
7198 // go through each group, see if any of it's cols are displayed, and if yes,
7199 // then this group is included
7200 this.viewportRowLeft = {};
7201 this.viewportRowRight = {};
7202 this.viewportRowCenter = {};
7203 // for easy lookup when building the groups.
7204 var virtualColIds = {};
7205 this.viewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });
7206 var testGroup = function (children, result, dept) {
7207 var returnValue = false;
7208 for (var i = 0; i < children.length; i++) {
7209 // see if this item is within viewport
7210 var child = children[i];
7211 var addThisItem = false;
7212 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
7213 // for column, test if column is included
7214 addThisItem = virtualColIds[child.getId()] === true;
7215 }
7216 else {
7217 // if group, base decision on children
7218 var columnGroup = child;
7219 var displayedChildren = columnGroup.getDisplayedChildren();
7220 if (displayedChildren) {
7221 addThisItem = testGroup(displayedChildren, result, dept + 1);
7222 }
7223 }
7224 if (addThisItem) {
7225 returnValue = true;
7226 if (!result[dept]) {
7227 result[dept] = [];
7228 }
7229 result[dept].push(child);
7230 }
7231 }
7232 return returnValue;
7233 };
7234 testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);
7235 testGroup(this.displayedTreeRight, this.viewportRowRight, 0);
7236 testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);
7237 };
7238 ColumnController.prototype.extractViewport = function () {
7239 this.extractViewportColumns();
7240 this.extractViewportRows();
7241 };
7242 ColumnController.prototype.filterOutColumnsWithinViewport = function () {
7243 return this.displayedColumnsCenter.filter(this.isColumnInViewport.bind(this));
7244 };
7245 ColumnController.prototype.refreshFlexedColumns = function (params) {
7246 var _this = this;
7247 if (params === void 0) { params = {}; }
7248 var source = params.source ? params.source : 'flex';
7249 if (params.viewportWidth != null) {
7250 this.flexViewportWidth = params.viewportWidth;
7251 }
7252 if (!this.flexViewportWidth) {
7253 return [];
7254 }
7255 // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.
7256 // A "flexing column" is one that has a 'flex' value set and is not currently being constrained by its
7257 // minWidth or maxWidth rules.
7258 var flexAfterDisplayIndex = -1;
7259 if (params.resizingCols) {
7260 params.resizingCols.forEach(function (col) {
7261 var indexOfCol = _this.displayedColumnsCenter.indexOf(col);
7262 if (flexAfterDisplayIndex < indexOfCol) {
7263 flexAfterDisplayIndex = indexOfCol;
7264 }
7265 });
7266 }
7267 var isColFlex = function (col) {
7268 var afterResizingCols = _this.displayedColumnsCenter.indexOf(col) > flexAfterDisplayIndex;
7269 return col.getFlex() && afterResizingCols;
7270 };
7271 var knownWidthColumns = this.displayedColumnsCenter.filter(function (col) { return !isColFlex(col); });
7272 var flexingColumns = this.displayedColumnsCenter.filter(function (col) { return isColFlex(col); });
7273 var changedColumns = [];
7274 if (!flexingColumns.length) {
7275 return [];
7276 }
7277 var flexingColumnSizes = [];
7278 var spaceForFlexingColumns;
7279 outer: while (true) {
7280 var totalFlex = flexingColumns.reduce(function (count, col) { return count + col.getFlex(); }, 0);
7281 spaceForFlexingColumns = this.flexViewportWidth - this.getWidthOfColsInList(knownWidthColumns);
7282 for (var i = 0; i < flexingColumns.length; i++) {
7283 var col = flexingColumns[i];
7284 var widthByFlexRule = spaceForFlexingColumns * col.getFlex() / totalFlex;
7285 var constrainedWidth = 0;
7286 var minWidth = col.getMinWidth();
7287 var maxWidth = col.getMaxWidth();
7288 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && widthByFlexRule < minWidth) {
7289 constrainedWidth = minWidth;
7290 }
7291 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && widthByFlexRule > maxWidth) {
7292 constrainedWidth = maxWidth;
7293 }
7294 if (constrainedWidth) {
7295 // This column is not in fact flexing as it is being constrained to a specific size
7296 // so remove it from the list of flexing columns and start again
7297 col.setActualWidth(constrainedWidth, source);
7298 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(flexingColumns, col);
7299 changedColumns.push(col);
7300 knownWidthColumns.push(col);
7301 continue outer;
7302 }
7303 flexingColumnSizes[i] = Math.round(widthByFlexRule);
7304 }
7305 break;
7306 }
7307 var remainingSpace = spaceForFlexingColumns;
7308 flexingColumns.forEach(function (col, i) {
7309 col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);
7310 changedColumns.push(col);
7311 remainingSpace -= flexingColumnSizes[i];
7312 });
7313 if (!params.skipSetLeft) {
7314 this.setLeftValues(source);
7315 }
7316 if (params.updateBodyWidths) {
7317 this.updateBodyWidths();
7318 }
7319 if (params.fireResizedEvent) {
7320 this.fireColumnResizedEvent(changedColumns, true, source, flexingColumns);
7321 }
7322 // if the user sets rowData directly into GridOptions, then the row data is set before
7323 // grid is attached to the DOM. this means the columns are not flexed, and then the rows
7324 // have the wrong height (as they depend on column widths). so once the columns have
7325 // been flexed for the first time (only happens once grid is attached to DOM, as dependency
7326 // on getting the grid width, which only happens after attached after ResizeObserver fires)
7327 // we get get rows to re-calc their heights.
7328 if (!this.flexColsCalculatedAtLestOnce) {
7329 if (this.gridOptionsWrapper.isRowModelDefault()) {
7330 this.rowModel.resetRowHeights();
7331 }
7332 this.flexColsCalculatedAtLestOnce = true;
7333 }
7334 return flexingColumns;
7335 };
7336 // called from api
7337 ColumnController.prototype.sizeColumnsToFit = function (gridWidth, source, silent) {
7338 if (source === void 0) { source = "sizeColumnsToFit"; }
7339 // avoid divide by zero
7340 var allDisplayedColumns = this.getAllDisplayedColumns();
7341 if (gridWidth <= 0 || !allDisplayedColumns.length) {
7342 return;
7343 }
7344 var colsToSpread = [];
7345 var colsToNotSpread = [];
7346 allDisplayedColumns.forEach(function (column) {
7347 if (column.getColDef().suppressSizeToFit === true) {
7348 colsToNotSpread.push(column);
7349 }
7350 else {
7351 colsToSpread.push(column);
7352 }
7353 });
7354 // make a copy of the cols that are going to be resized
7355 var colsToFireEventFor = colsToSpread.slice(0);
7356 var finishedResizing = false;
7357 var moveToNotSpread = function (column) {
7358 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(colsToSpread, column);
7359 colsToNotSpread.push(column);
7360 };
7361 // resetting cols to their original width makes the sizeColumnsToFit more deterministic,
7362 // rather than depending on the current size of the columns. most users call sizeColumnsToFit
7363 // immediately after grid is created, so will make no difference. however if application is calling
7364 // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want
7365 // the columns to start shrinking / growing over time.
7366 //
7367 // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events
7368 // for this reason we need to manually fire resize events after the resize has been done for each column.
7369 colsToSpread.forEach(function (column) { return column.resetActualWidth(source); });
7370 while (!finishedResizing) {
7371 finishedResizing = true;
7372 var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);
7373 if (availablePixels <= 0) {
7374 // no width, set everything to minimum
7375 colsToSpread.forEach(function (column) {
7376 column.setMinimum(source);
7377 });
7378 }
7379 else {
7380 var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);
7381 // we set the pixels for the last col based on what's left, as otherwise
7382 // we could be a pixel or two short or extra because of rounding errors.
7383 var pixelsForLastCol = availablePixels;
7384 // backwards through loop, as we are removing items as we go
7385 for (var i = colsToSpread.length - 1; i >= 0; i--) {
7386 var column = colsToSpread[i];
7387 var minWidth = column.getMinWidth();
7388 var maxWidth = column.getMaxWidth();
7389 var newWidth = Math.round(column.getActualWidth() * scale);
7390 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && newWidth < minWidth) {
7391 newWidth = minWidth;
7392 moveToNotSpread(column);
7393 finishedResizing = false;
7394 }
7395 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && column.isGreaterThanMax(newWidth)) {
7396 newWidth = maxWidth;
7397 moveToNotSpread(column);
7398 finishedResizing = false;
7399 }
7400 else if (i === 0) { // if this is the last column
7401 newWidth = pixelsForLastCol;
7402 }
7403 column.setActualWidth(newWidth, source, true);
7404 pixelsForLastCol -= newWidth;
7405 }
7406 }
7407 }
7408 // see notes above
7409 colsToFireEventFor.forEach(function (col) {
7410 col.fireColumnWidthChangedEvent(source);
7411 });
7412 this.setLeftValues(source);
7413 this.updateBodyWidths();
7414 if (silent) {
7415 return;
7416 }
7417 this.fireColumnResizedEvent(colsToFireEventFor, true, source);
7418 };
7419 ColumnController.prototype.buildDisplayedTrees = function (visibleColumns) {
7420 var leftVisibleColumns = [];
7421 var rightVisibleColumns = [];
7422 var centerVisibleColumns = [];
7423 visibleColumns.forEach(function (column) {
7424 switch (column.getPinned()) {
7425 case "left":
7426 leftVisibleColumns.push(column);
7427 break;
7428 case "right":
7429 rightVisibleColumns.push(column);
7430 break;
7431 default:
7432 centerVisibleColumns.push(column);
7433 break;
7434 }
7435 });
7436 var groupInstanceIdCreator = new _groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__["GroupInstanceIdCreator"]();
7437 this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT, this.displayedTreeLeft);
7438 this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT, this.displayedTreeRight);
7439 this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, null, this.displayedTreeCentre);
7440 this.updateDisplayedMap();
7441 };
7442 ColumnController.prototype.updateDisplayedMap = function () {
7443 var _this = this;
7444 this.displayedColumnsAndGroupsMap = {};
7445 var func = function (child) {
7446 _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;
7447 };
7448 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);
7449 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);
7450 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);
7451 };
7452 ColumnController.prototype.isDisplayed = function (item) {
7453 var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];
7454 // check for reference, in case new column / group with same id is now present
7455 return fromMap === item;
7456 };
7457 ColumnController.prototype.updateOpenClosedVisibilityInColumnGroups = function () {
7458 var allColumnGroups = this.getAllDisplayedTrees();
7459 this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {
7460 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
7461 var columnGroup = child;
7462 columnGroup.calculateDisplayedColumns();
7463 }
7464 });
7465 };
7466 ColumnController.prototype.getGroupAutoColumns = function () {
7467 return this.groupAutoColumns;
7468 };
7469 ColumnController.prototype.createGroupAutoColumnsIfNeeded = function () {
7470 if (!this.autoGroupsNeedBuilding) {
7471 return;
7472 }
7473 this.autoGroupsNeedBuilding = false;
7474 var groupFullWidthRow = this.gridOptionsWrapper.isGroupUseEntireRow(this.pivotMode);
7475 // we need to allow suppressing auto-column separately for group and pivot as the normal situation
7476 // is CSRM and user provides group column themselves for normal view, but when they go into pivot the
7477 // columns are generated by the grid so no opportunity for user to provide group column. so need a way
7478 // to suppress auto-col for grouping only, and not pivot.
7479 // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control
7480 // of the group column in this instance.
7481 var suppressAutoColumn = this.pivotMode ?
7482 this.gridOptionsWrapper.isPivotSuppressAutoColumn() : this.gridOptionsWrapper.isGroupSuppressAutoColumn();
7483 var groupingActive = this.rowGroupColumns.length > 0 || this.usingTreeData;
7484 var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;
7485 if (needAutoColumns) {
7486 var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(this.rowGroupColumns);
7487 var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);
7488 // we force recreate when suppressColumnStateEvents changes, so new group cols pick up the new
7489 // definitions. otherwise we could ignore the new cols because they appear to be the same.
7490 if (autoColsDifferent || this.forceRecreateAutoGroups) {
7491 this.groupAutoColumns = newAutoGroupCols;
7492 }
7493 }
7494 else {
7495 this.groupAutoColumns = null;
7496 }
7497 };
7498 ColumnController.prototype.autoColsEqual = function (colsA, colsB) {
7499 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });
7500 };
7501 ColumnController.prototype.getWidthOfColsInList = function (columnList) {
7502 return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);
7503 };
7504 ColumnController.prototype.getGridBalancedTree = function () {
7505 return this.gridBalancedTree;
7506 };
7507 ColumnController.prototype.hasFloatingFilters = function () {
7508 if (!this.gridColumns) {
7509 return false;
7510 }
7511 var res = this.gridColumns.some(function (col) { return col.getColDef().floatingFilter; });
7512 return res;
7513 };
7514 ColumnController.prototype.getFirstDisplayedColumn = function () {
7515 var isRtl = this.gridOptionsWrapper.isEnableRtl();
7516 var queryOrder = [
7517 'getDisplayedLeftColumns',
7518 'getDisplayedCenterColumns',
7519 'getDisplayedRightColumns'
7520 ];
7521 if (isRtl) {
7522 queryOrder.reverse();
7523 }
7524 for (var i = 0; i < queryOrder.length; i++) {
7525 var container = this[queryOrder[i]]();
7526 if (container.length) {
7527 return isRtl ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(container) : container[0];
7528 }
7529 }
7530 return null;
7531 };
7532 __decorate([
7533 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('expressionService')
7534 ], ColumnController.prototype, "expressionService", void 0);
7535 __decorate([
7536 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnFactory')
7537 ], ColumnController.prototype, "columnFactory", void 0);
7538 __decorate([
7539 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('displayedGroupCreator')
7540 ], ColumnController.prototype, "displayedGroupCreator", void 0);
7541 __decorate([
7542 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('autoWidthCalculator')
7543 ], ColumnController.prototype, "autoWidthCalculator", void 0);
7544 __decorate([
7545 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnUtils')
7546 ], ColumnController.prototype, "columnUtils", void 0);
7547 __decorate([
7548 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnAnimationService')
7549 ], ColumnController.prototype, "columnAnimationService", void 0);
7550 __decorate([
7551 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('autoGroupColService')
7552 ], ColumnController.prototype, "autoGroupColService", void 0);
7553 __decorate([
7554 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('aggFuncService')
7555 ], ColumnController.prototype, "aggFuncService", void 0);
7556 __decorate([
7557 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('valueCache')
7558 ], ColumnController.prototype, "valueCache", void 0);
7559 __decorate([
7560 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('animationFrameService')
7561 ], ColumnController.prototype, "animationFrameService", void 0);
7562 __decorate([
7563 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('rowModel')
7564 ], ColumnController.prototype, "rowModel", void 0);
7565 __decorate([
7566 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnApi')
7567 ], ColumnController.prototype, "columnApi", void 0);
7568 __decorate([
7569 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('gridApi')
7570 ], ColumnController.prototype, "gridApi", void 0);
7571 __decorate([
7572 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('sortController')
7573 ], ColumnController.prototype, "sortController", void 0);
7574 __decorate([
7575 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnDefFactory')
7576 ], ColumnController.prototype, "columnDefFactory", void 0);
7577 __decorate([
7578 _context_context__WEBPACK_IMPORTED_MODULE_6__["PostConstruct"]
7579 ], ColumnController.prototype, "init", null);
7580 __decorate([
7581 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Qualifier"])('loggerFactory'))
7582 ], ColumnController.prototype, "setBeans", null);
7583 ColumnController = __decorate([
7584 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Bean"])('columnController')
7585 ], ColumnController);
7586 return ColumnController;
7587}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
7588
7589
7590
7591/***/ }),
7592/* 23 */
7593/***/ (function(module, __webpack_exports__, __webpack_require__) {
7594
7595"use strict";
7596__webpack_require__.r(__webpack_exports__);
7597/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24);
7598/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"]; });
7599
7600/**
7601 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7602 * @version v25.3.0
7603 * @link http://www.ag-grid.com/
7604 * @license MIT
7605 */
7606
7607
7608
7609/***/ }),
7610/* 24 */
7611/***/ (function(module, __webpack_exports__, __webpack_require__) {
7612
7613"use strict";
7614__webpack_require__.r(__webpack_exports__);
7615/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return Events; });
7616/**
7617 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7618 * @version v25.3.0
7619 * @link http://www.ag-grid.com/
7620 * @license MIT
7621 */
7622var Events = /** @class */ (function () {
7623 function Events() {
7624 }
7625 /** Everything has changed with the columns. Either complete new set of columns set, or user called setState() */
7626 /** @deprecated - grid no longer uses this, and setSate() also fires individual events */
7627 Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';
7628 /** User has set in new columns. */
7629 Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';
7630 /** The pivot mode flag was changed */
7631 Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';
7632 /** A row group column was added, removed or order changed. */
7633 Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';
7634 /** expandAll / collapseAll was called from the api. */
7635 Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';
7636 /** A pivot column was added, removed or order changed. */
7637 Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';
7638 /** The list of grid columns has changed. */
7639 Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';
7640 /** A value column was added, removed or agg function was changed. */
7641 Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';
7642 /** A column was moved */
7643 Events.EVENT_COLUMN_MOVED = 'columnMoved';
7644 /** One or more columns was shown / hidden */
7645 Events.EVENT_COLUMN_VISIBLE = 'columnVisible';
7646 /** One or more columns was pinned / unpinned*/
7647 Events.EVENT_COLUMN_PINNED = 'columnPinned';
7648 /** A column group was opened / closed */
7649 Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';
7650 /** One or more columns was resized. If just one, the column in the event is set. */
7651 Events.EVENT_COLUMN_RESIZED = 'columnResized';
7652 /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */
7653 Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';
7654 /** The list of virtual columns has changed, results from viewport changing */
7655 Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';
7656 /** Async Transactions Executed */
7657 Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';
7658 /** A row group was opened / closed */
7659 Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';
7660 /** The client has set new data into the grid */
7661 Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';
7662 /** The client has updated data for the grid */
7663 Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';
7664 /** The client has set new floating data into the grid */
7665 Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';
7666 /** Range selection has changed */
7667 Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';
7668 /** Chart was created */
7669 Events.EVENT_CHART_CREATED = 'chartCreated';
7670 /** Chart Range selection has changed */
7671 Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';
7672 /** Chart Options have changed */
7673 Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';
7674 /** Chart was destroyed */
7675 Events.EVENT_CHART_DESTROYED = 'chartDestroyed';
7676 /** For when the tool panel is shown / hidden */
7677 Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';
7678 /** Model was updated - grid updates the drawn rows when this happens */
7679 Events.EVENT_MODEL_UPDATED = 'modelUpdated';
7680 Events.EVENT_PASTE_START = 'pasteStart';
7681 Events.EVENT_PASTE_END = 'pasteEnd';
7682 Events.EVENT_FILL_START = 'fillStart';
7683 Events.EVENT_FILL_END = 'fillEnd';
7684 Events.EVENT_CELL_CLICKED = 'cellClicked';
7685 Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';
7686 Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';
7687 Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';
7688 Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';
7689 Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';
7690 Events.EVENT_CELL_FOCUSED = 'cellFocused';
7691 Events.EVENT_ROW_SELECTED = 'rowSelected';
7692 Events.EVENT_SELECTION_CHANGED = 'selectionChanged';
7693 Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';
7694 Events.EVENT_CELL_KEY_PRESS = 'cellKeyPress';
7695 Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';
7696 Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';
7697 /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */
7698 Events.EVENT_FILTER_CHANGED = 'filterChanged';
7699 /** Filter was change but not applied. Only useful if apply buttons are used in filters. */
7700 Events.EVENT_FILTER_MODIFIED = 'filterModified';
7701 Events.EVENT_FILTER_OPENED = 'filterOpened';
7702 Events.EVENT_SORT_CHANGED = 'sortChanged';
7703 /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */
7704 Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';
7705 Events.EVENT_ROW_CLICKED = 'rowClicked';
7706 Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';
7707 /** Gets called once after the grid has finished initialising. */
7708 Events.EVENT_GRID_READY = 'gridReady';
7709 /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's
7710 * changed, so always filling the space it was given. */
7711 Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';
7712 /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */
7713 Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';
7714 /* The width of the scrollbar has been calculated */
7715 Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';
7716 /** Rows were rendered for the first time (ie on async data load). */
7717 Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';
7718 /** A column drag has started, either resizing a column or moving a column. */
7719 Events.EVENT_DRAG_STARTED = 'dragStarted';
7720 /** A column drag has stopped */
7721 Events.EVENT_DRAG_STOPPED = 'dragStopped';
7722 Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';
7723 Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';
7724 Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';
7725 Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';
7726 Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';
7727 /** Main body of grid has scrolled, either horizontally or vertically */
7728 Events.EVENT_BODY_SCROLL = 'bodyScroll';
7729 Events.EVENT_ANIMATION_QUEUE_EMPTY = 'animationQueueEmpty';
7730 Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';
7731 /** The displayed page for pagination has changed. For example the data was filtered or sorted,
7732 * or the user has moved to a different page. */
7733 Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';
7734 /** Only used by React, Angular 2+, Web Components and VueJS AG Grid components
7735 * (not used if doing plain JavaScript or Angular 1.x). If the grid receives changes due
7736 * to bound properties, this event fires after the grid has finished processing the change. */
7737 Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';
7738 /** All items from here down are used internally by the grid, not intended for external use. */
7739 // not documented, either experimental, or we just don't want users using an depending on them
7740 Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';
7741 Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';
7742 Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';
7743 Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';
7744 Events.EVENT_FLASH_CELLS = 'flashCells';
7745 Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';
7746 Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';
7747 Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';
7748 Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';
7749 Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';
7750 Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';
7751 Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';
7752 Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';
7753 Events.EVENT_ROW_DRAG_END = 'rowDragEnd';
7754 // primarily for charts
7755 Events.EVENT_POPUP_TO_FRONT = 'popupToFront';
7756 // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is
7757 // to design these better around server side functions and then release to general public when fully working with
7758 // all the row models.
7759 Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';
7760 Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';
7761 Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';
7762 Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';
7763 Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';
7764 Events.EVENT_MOUSE_FOCUS = 'mouseFocus';
7765 Events.EVENT_STORE_UPDATED = 'storeUpdated';
7766 return Events;
7767}());
7768
7769
7770
7771/***/ }),
7772/* 25 */
7773/***/ (function(module, __webpack_exports__, __webpack_require__) {
7774
7775"use strict";
7776__webpack_require__.r(__webpack_exports__);
7777/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return GroupInstanceIdCreator; });
7778/**
7779 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7780 * @version v25.3.0
7781 * @link http://www.ag-grid.com/
7782 * @license MIT
7783 */
7784// class returns unique instance id's for columns.
7785// eg, the following calls (in this order) will result in:
7786//
7787// getInstanceIdForKey('country') => 0
7788// getInstanceIdForKey('country') => 1
7789// getInstanceIdForKey('country') => 2
7790// getInstanceIdForKey('country') => 3
7791// getInstanceIdForKey('age') => 0
7792// getInstanceIdForKey('age') => 1
7793// getInstanceIdForKey('country') => 4
7794var GroupInstanceIdCreator = /** @class */ (function () {
7795 function GroupInstanceIdCreator() {
7796 // this map contains keys to numbers, so we remember what the last call was
7797 this.existingIds = {};
7798 }
7799 GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {
7800 var lastResult = this.existingIds[key];
7801 var result;
7802 if (typeof lastResult !== 'number') {
7803 // first time this key
7804 result = 0;
7805 }
7806 else {
7807 result = lastResult + 1;
7808 }
7809 this.existingIds[key] = result;
7810 return result;
7811 };
7812 return GroupInstanceIdCreator;
7813}());
7814
7815
7816
7817/***/ }),
7818/* 26 */
7819/***/ (function(module, __webpack_exports__, __webpack_require__) {
7820
7821"use strict";
7822__webpack_require__.r(__webpack_exports__);
7823/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8_encode", function() { return utf8_encode; });
7824/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stringRepeat", function() { return stringRepeat; });
7825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padStart", function() { return padStart; });
7826/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelCaseToHyphen", function() { return camelCaseToHyphen; });
7827/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hyphenToCamelCase", function() { return hyphenToCamelCase; });
7828/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capitalise", function() { return capitalise; });
7829/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeString", function() { return escapeString; });
7830/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelCaseToHumanText", function() { return camelCaseToHumanText; });
7831/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startsWith", function() { return startsWith; });
7832/**
7833 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7834 * @version v25.3.0
7835 * @link http://www.ag-grid.com/
7836 * @license MIT
7837 */
7838var reUnescapedHtml = /[&<>"']/g;
7839/**
7840 * HTML Escapes.
7841 */
7842var HTML_ESCAPES = {
7843 '&': '&amp;',
7844 '<': '&lt;',
7845 '>': '&gt;',
7846 '"': '&quot;',
7847 "'": '&#39;'
7848};
7849/**
7850 * It encodes any string in UTF-8 format
7851 * taken from https://github.com/mathiasbynens/utf8.js
7852 * @param {string} s
7853 * @returns {string}
7854 */
7855function utf8_encode(s) {
7856 var stringFromCharCode = String.fromCharCode;
7857 function ucs2decode(string) {
7858 var output = [];
7859 if (!string) {
7860 return [];
7861 }
7862 var len = string.length;
7863 var counter = 0;
7864 var value;
7865 var extra;
7866 while (counter < len) {
7867 value = string.charCodeAt(counter++);
7868 if (value >= 0xD800 && value <= 0xDBFF && counter < len) {
7869 // high surrogate, and there is a next character
7870 extra = string.charCodeAt(counter++);
7871 if ((extra & 0xFC00) == 0xDC00) { // low surrogate
7872 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
7873 }
7874 else {
7875 // unmatched surrogate; only append this code unit, in case the next
7876 // code unit is the high surrogate of a surrogate pair
7877 output.push(value);
7878 counter--;
7879 }
7880 }
7881 else {
7882 output.push(value);
7883 }
7884 }
7885 return output;
7886 }
7887 function checkScalarValue(point) {
7888 if (point >= 0xD800 && point <= 0xDFFF) {
7889 throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +
7890 ' is not a scalar value');
7891 }
7892 }
7893 function createByte(point, shift) {
7894 return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);
7895 }
7896 function encodeCodePoint(point) {
7897 if ((point >= 0 && point <= 7) || (point >= 14 && point <= 31)) {
7898 return padStart("_x" + point.toString(16).toUpperCase() + "_", 4, '0');
7899 }
7900 if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence
7901 return stringFromCharCode(point);
7902 }
7903 var symbol = '';
7904 if ((point & 0xFFFFF800) == 0) { // 2-byte sequence
7905 symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);
7906 }
7907 else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence
7908 checkScalarValue(point);
7909 symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);
7910 symbol += createByte(point, 6);
7911 }
7912 else if ((point & 0xFFE00000) == 0) { // 4-byte sequence
7913 symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);
7914 symbol += createByte(point, 12);
7915 symbol += createByte(point, 6);
7916 }
7917 symbol += stringFromCharCode((point & 0x3F) | 0x80);
7918 return symbol;
7919 }
7920 var codePoints = ucs2decode(s);
7921 var length = codePoints.length;
7922 var index = -1;
7923 var codePoint;
7924 var byteString = '';
7925 while (++index < length) {
7926 codePoint = codePoints[index];
7927 byteString += encodeCodePoint(codePoint);
7928 }
7929 return byteString;
7930}
7931/**
7932 * @param str The string to be repeated
7933 * @param len The size of the output string
7934 * @returns A string with size len created from repeated `str`.
7935 */
7936function stringRepeat(str, len) {
7937 len = Math.floor(len);
7938 if (str.length === 0 || len === 0) {
7939 return '';
7940 }
7941 var maxCount = str.length * len;
7942 len = Math.floor(Math.log(len) / Math.log(2));
7943 while (len) {
7944 str += str;
7945 len--;
7946 }
7947 str += str.substring(0, maxCount - str.length);
7948 return str;
7949}
7950/**
7951 * @param str The string to be padded
7952 * @param totalLength The final length needed
7953 * @param padStr The string to generate the padding
7954 * @returns The padded string
7955 */
7956function padStart(str, totalLength, padStr) {
7957 if (str.length > totalLength) {
7958 return str;
7959 }
7960 totalLength -= str.length;
7961 if (totalLength > padStr.length) {
7962 padStr += stringRepeat(padStr, totalLength / padStr.length);
7963 }
7964 return padStr.slice(0, totalLength) + str;
7965}
7966/**
7967 * Converts a camelCase string into hyphenated string
7968 * from https://gist.github.com/youssman/745578062609e8acac9f
7969 * @param {string} str
7970 * @return {string}
7971 */
7972function camelCaseToHyphen(str) {
7973 if (str === null || str === undefined) {
7974 return null;
7975 }
7976 return str.replace(/([A-Z])/g, function (g) { return '-' + g[0].toLowerCase(); });
7977}
7978/**
7979 * Converts a hyphenated string into camelCase string
7980 * from https://stackoverflow.com/questions/6660977/convert-hyphens-to-camel-case-camelcase
7981 * @param {string} str
7982 * @return {string}
7983 */
7984function hyphenToCamelCase(str) {
7985 if (str === null || str === undefined) {
7986 return null;
7987 }
7988 return str.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });
7989}
7990function capitalise(str) {
7991 return str[0].toUpperCase() + str.substr(1).toLowerCase();
7992}
7993function escapeString(toEscape) {
7994 // we call toString() twice, in case value is an object, where user provides
7995 // a toString() method, and first call to toString() returns back something other
7996 // than a string (eg a number to render)
7997 return toEscape == null ? null : toEscape.toString().toString().replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });
7998}
7999/**
8000 * Converts a camelCase string into regular text
8001 * from: https://stackoverflow.com/questions/15369566/putting-space-in-camel-case-string-using-regular-expression
8002 * @param {string} camelCase
8003 * @return {string}
8004 */
8005function camelCaseToHumanText(camelCase) {
8006 if (!camelCase || camelCase == null) {
8007 return null;
8008 }
8009 var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;
8010 var words = camelCase.replace(rex, '$1$4 $2$3$5').replace('.', ' ').split(' ');
8011 return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');
8012}
8013function startsWith(str, matchStart) {
8014 if (str === matchStart) {
8015 return true;
8016 }
8017 return str != null && str.slice(0, matchStart.length) === matchStart;
8018}
8019
8020
8021/***/ }),
8022/* 27 */
8023/***/ (function(module, __webpack_exports__, __webpack_require__) {
8024
8025"use strict";
8026__webpack_require__.r(__webpack_exports__);
8027/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToMap", function() { return convertToMap; });
8028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return keys; });
8029/**
8030 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8031 * @version v25.3.0
8032 * @link http://www.ag-grid.com/
8033 * @license MIT
8034 */
8035function convertToMap(arr) {
8036 var map = new Map();
8037 arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });
8038 return map;
8039}
8040function keys(map) {
8041 var arr = [];
8042 map.forEach(function (_, key) { return arr.push(key); });
8043 return arr;
8044}
8045
8046
8047/***/ }),
8048/* 28 */
8049/***/ (function(module, __webpack_exports__, __webpack_require__) {
8050
8051"use strict";
8052__webpack_require__.r(__webpack_exports__);
8053/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return ColumnUtils; });
8054/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
8055/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
8056/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
8057/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
8058/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
8059/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
8060/**
8061 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8062 * @version v25.3.0
8063 * @link http://www.ag-grid.com/
8064 * @license MIT
8065 */
8066var __extends = (undefined && undefined.__extends) || (function () {
8067 var extendStatics = function (d, b) {
8068 extendStatics = Object.setPrototypeOf ||
8069 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8070 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8071 return extendStatics(d, b);
8072 };
8073 return function (d, b) {
8074 extendStatics(d, b);
8075 function __() { this.constructor = d; }
8076 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8077 };
8078})();
8079var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8080 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8081 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8082 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8083 return c > 3 && r && Object.defineProperty(target, key, r), r;
8084};
8085
8086
8087
8088
8089
8090
8091// takes in a list of columns, as specified by the column definitions, and returns column groups
8092var ColumnUtils = /** @class */ (function (_super) {
8093 __extends(ColumnUtils, _super);
8094 function ColumnUtils() {
8095 return _super !== null && _super.apply(this, arguments) || this;
8096 }
8097 ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {
8098 var optionsWrapper = this.gridOptionsWrapper;
8099 var minColWidth = colDef.minWidth != null ? colDef.minWidth : optionsWrapper.getMinColWidth();
8100 var maxColWidth = colDef.maxWidth != null ? colDef.maxWidth : (optionsWrapper.getMaxColWidth() || Object(_utils_number__WEBPACK_IMPORTED_MODULE_4__["getMaxSafeInteger"])());
8101 var width;
8102 var colDefWidth = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.width);
8103 var colDefInitialWidth = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.initialWidth);
8104 if (colDefWidth != null) {
8105 width = colDefWidth;
8106 }
8107 else if (colDefInitialWidth != null) {
8108 width = colDefInitialWidth;
8109 }
8110 else {
8111 width = optionsWrapper.getColWidth();
8112 }
8113 return Math.max(Math.min(width, maxColWidth), minColWidth);
8114 };
8115 ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {
8116 var result = [];
8117 var found = false;
8118 var recursePath = function (balancedColumnTree, dept) {
8119 for (var i = 0; i < balancedColumnTree.length; i++) {
8120 if (found) {
8121 return;
8122 }
8123 // quit the search, so 'result' is kept with the found result
8124 var node = balancedColumnTree[i];
8125 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
8126 var nextNode = node;
8127 recursePath(nextNode.getChildren(), dept + 1);
8128 result[dept] = node;
8129 }
8130 else if (node === column) {
8131 found = true;
8132 }
8133 }
8134 };
8135 recursePath(originalBalancedTree, 0);
8136 // we should always find the path, but in case there is a bug somewhere, returning null
8137 // will make it fail rather than provide a 'hard to track down' bug
8138 return found ? result : null;
8139 };
8140 ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {
8141 var _this = this;
8142 if (!tree) {
8143 return;
8144 }
8145 tree.forEach(function (child) {
8146 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
8147 _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);
8148 }
8149 callback(child, parent);
8150 });
8151 };
8152 ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {
8153 var _this = this;
8154 if (!tree) {
8155 return;
8156 }
8157 tree.forEach(function (child) {
8158 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8159 _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);
8160 }
8161 callback(child);
8162 });
8163 };
8164 ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {
8165 var _this = this;
8166 if (!tree) {
8167 return;
8168 }
8169 tree.forEach(function (child) {
8170 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8171 _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);
8172 }
8173 callback(child);
8174 });
8175 };
8176 ColumnUtils = __decorate([
8177 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('columnUtils')
8178 ], ColumnUtils);
8179 return ColumnUtils;
8180}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
8181
8182
8183
8184/***/ }),
8185/* 29 */
8186/***/ (function(module, __webpack_exports__, __webpack_require__) {
8187
8188"use strict";
8189__webpack_require__.r(__webpack_exports__);
8190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padStartWidthZeros", function() { return padStartWidthZeros; });
8191/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createArrayOfNumbers", function() { return createArrayOfNumbers; });
8192/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumeric", function() { return isNumeric; });
8193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxSafeInteger", function() { return getMaxSafeInteger; });
8194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanNumber", function() { return cleanNumber; });
8195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decToHex", function() { return decToHex; });
8196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatNumberTwoDecimalPlacesAndCommas", function() { return formatNumberTwoDecimalPlacesAndCommas; });
8197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatNumberCommas", function() { return formatNumberCommas; });
8198/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return sum; });
8199/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
8200/**
8201 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8202 * @version v25.3.0
8203 * @link http://www.ag-grid.com/
8204 * @license MIT
8205 */
8206
8207function padStartWidthZeros(value, totalStringSize) {
8208 return Object(_string__WEBPACK_IMPORTED_MODULE_0__["padStart"])(value.toString(), totalStringSize, '0');
8209}
8210function createArrayOfNumbers(first, last) {
8211 var result = [];
8212 for (var i = first; i <= last; i++) {
8213 result.push(i);
8214 }
8215 return result;
8216}
8217/**
8218 * Check if a value is numeric
8219 * from http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers
8220 * @param {any} value
8221 * @return {boolean}
8222 */
8223function isNumeric(value) {
8224 return value !== '' && !isNaN(parseFloat(value)) && isFinite(value);
8225}
8226function getMaxSafeInteger() {
8227 // @ts-ignore
8228 return Number.MAX_SAFE_INTEGER || 9007199254740991;
8229}
8230function cleanNumber(value) {
8231 if (typeof value === 'string') {
8232 value = parseInt(value, 10);
8233 }
8234 if (typeof value === 'number') {
8235 return Math.floor(value);
8236 }
8237 return null;
8238}
8239function decToHex(number, bytes) {
8240 var hex = '';
8241 for (var i = 0; i < bytes; i++) {
8242 hex += String.fromCharCode(number & 0xff);
8243 number >>>= 8;
8244 }
8245 return hex;
8246}
8247function formatNumberTwoDecimalPlacesAndCommas(value) {
8248 if (typeof value !== 'number') {
8249 return '';
8250 }
8251 return formatNumberCommas(Math.round(value * 100) / 100);
8252}
8253/**
8254 * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})
8255 * puts in decimal places in IE, so we use this method instead
8256 * from: http://blog.tompawlak.org/number-currency-formatting-javascript
8257 * @param {number} value
8258 * @returns {string}
8259 */
8260function formatNumberCommas(value) {
8261 if (typeof value !== 'number') {
8262 return '';
8263 }
8264 return value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
8265}
8266function sum(values) {
8267 return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);
8268}
8269
8270
8271/***/ }),
8272/* 30 */
8273/***/ (function(module, __webpack_exports__, __webpack_require__) {
8274
8275"use strict";
8276__webpack_require__.r(__webpack_exports__);
8277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return DisplayedGroupCreator; });
8278/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
8279/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
8280/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
8281/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
8282/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
8283/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
8284/**
8285 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8286 * @version v25.3.0
8287 * @link http://www.ag-grid.com/
8288 * @license MIT
8289 */
8290var __extends = (undefined && undefined.__extends) || (function () {
8291 var extendStatics = function (d, b) {
8292 extendStatics = Object.setPrototypeOf ||
8293 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8294 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8295 return extendStatics(d, b);
8296 };
8297 return function (d, b) {
8298 extendStatics(d, b);
8299 function __() { this.constructor = d; }
8300 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8301 };
8302})();
8303var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8304 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8305 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8306 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8307 return c > 3 && r && Object.defineProperty(target, key, r), r;
8308};
8309
8310
8311
8312
8313
8314
8315// takes in a list of columns, as specified by the column definitions, and returns column groups
8316var DisplayedGroupCreator = /** @class */ (function (_super) {
8317 __extends(DisplayedGroupCreator, _super);
8318 function DisplayedGroupCreator() {
8319 return _super !== null && _super.apply(this, arguments) || this;
8320 }
8321 DisplayedGroupCreator.prototype.createDisplayedGroups = function (
8322 // all displayed columns sorted - this is the columns the grid should show
8323 sortedVisibleColumns,
8324 // the tree of columns, as provided by the users, used to know what groups columns roll up into
8325 balancedColumnTree,
8326 // creates unique id's for the group
8327 groupInstanceIdCreator,
8328 // whether it's left, right or center col
8329 pinned,
8330 // we try to reuse old groups if we can, to allow gui to do animation
8331 oldDisplayedGroups) {
8332 var _this = this;
8333 var result = [];
8334 var previousRealPath;
8335 var previousOriginalPath;
8336 var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);
8337 // go through each column, then do a bottom up comparison to the previous column, and start
8338 // to share groups if they converge at any point.
8339 sortedVisibleColumns.forEach(function (currentColumn) {
8340 var currentOriginalPath = _this.getOriginalPathForColumn(balancedColumnTree, currentColumn);
8341 var currentRealPath = [];
8342 var firstColumn = !previousOriginalPath;
8343 for (var i = 0; i < currentOriginalPath.length; i++) {
8344 if (firstColumn || currentOriginalPath[i] !== previousOriginalPath[i]) {
8345 // new group needed
8346 var newGroup = _this.createColumnGroup(currentOriginalPath[i], groupInstanceIdCreator, oldColumnsMapped, pinned);
8347 currentRealPath[i] = newGroup;
8348 // if top level, add to result, otherwise add to parent
8349 if (i == 0) {
8350 result.push(newGroup);
8351 }
8352 else {
8353 currentRealPath[i - 1].addChild(newGroup);
8354 }
8355 }
8356 else {
8357 // reuse old group
8358 currentRealPath[i] = previousRealPath[i];
8359 }
8360 }
8361 var noColumnGroups = currentRealPath.length === 0;
8362 if (noColumnGroups) {
8363 // if we are not grouping, then the result of the above is an empty
8364 // path (no groups), and we just add the column to the root list.
8365 result.push(currentColumn);
8366 }
8367 else {
8368 var leafGroup = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(currentRealPath);
8369 leafGroup.addChild(currentColumn);
8370 }
8371 previousRealPath = currentRealPath;
8372 previousOriginalPath = currentOriginalPath;
8373 });
8374 this.setupParentsIntoColumns(result, null);
8375 return result;
8376 };
8377 DisplayedGroupCreator.prototype.createColumnGroup = function (originalGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {
8378 var groupId = originalGroup.getGroupId();
8379 var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);
8380 var uniqueId = _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].createUniqueId(groupId, instanceId);
8381 var columnGroup = oldColumnsMapped[uniqueId];
8382 // if the user is setting new colDefs, it is possible that the id's overlap, and we
8383 // would have a false match from above. so we double check we are talking about the
8384 // same original column group.
8385 if (columnGroup && columnGroup.getOriginalColumnGroup() !== originalGroup) {
8386 columnGroup = null;
8387 }
8388 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(columnGroup)) {
8389 // clean out the old column group here, as we will be adding children into it again
8390 columnGroup.reset();
8391 }
8392 else {
8393 columnGroup = new _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"](originalGroup, groupId, instanceId, pinned);
8394 this.context.createBean(columnGroup);
8395 }
8396 return columnGroup;
8397 };
8398 // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup
8399 DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {
8400 var result = {};
8401 var recursive = function (columnsOrGroups) {
8402 columnsOrGroups.forEach(function (columnOrGroup) {
8403 if (columnOrGroup instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8404 var columnGroup = columnOrGroup;
8405 result[columnOrGroup.getUniqueId()] = columnGroup;
8406 recursive(columnGroup.getChildren());
8407 }
8408 });
8409 };
8410 if (displayedGroups) {
8411 recursive(displayedGroups);
8412 }
8413 return result;
8414 };
8415 DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {
8416 var _this = this;
8417 columnsOrGroups.forEach(function (columnsOrGroup) {
8418 columnsOrGroup.setParent(parent);
8419 if (columnsOrGroup instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8420 var columnGroup = columnsOrGroup;
8421 _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);
8422 }
8423 });
8424 };
8425 DisplayedGroupCreator.prototype.getOriginalPathForColumn = function (balancedColumnTree, column) {
8426 var result = [];
8427 var found = false;
8428 var recursePath = function (columnTree, dept) {
8429 for (var i = 0; i < columnTree.length; i++) {
8430 // quit the search, so 'result' is kept with the found result
8431 if (found) {
8432 return;
8433 }
8434 var node = columnTree[i];
8435 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
8436 var nextNode = node;
8437 recursePath(nextNode.getChildren(), dept + 1);
8438 result[dept] = node;
8439 }
8440 else if (node === column) {
8441 found = true;
8442 }
8443 }
8444 };
8445 recursePath(balancedColumnTree, 0);
8446 // it's possible we didn't find a path. this happens if the column is generated
8447 // by the grid (auto-group), in that the definition didn't come from the client. in this case,
8448 // we create a fake original path.
8449 if (found) {
8450 return result;
8451 }
8452 console.warn('could not get path');
8453 return null;
8454 };
8455 DisplayedGroupCreator = __decorate([
8456 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('displayedGroupCreator')
8457 ], DisplayedGroupCreator);
8458 return DisplayedGroupCreator;
8459}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
8460
8461
8462
8463/***/ }),
8464/* 31 */
8465/***/ (function(module, __webpack_exports__, __webpack_require__) {
8466
8467"use strict";
8468__webpack_require__.r(__webpack_exports__);
8469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeadlessService", function() { return HeadlessService; });
8470/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
8471/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
8472/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
8473/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
8474/**
8475 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8476 * @version v25.3.0
8477 * @link http://www.ag-grid.com/
8478 * @license MIT
8479 */
8480var __extends = (undefined && undefined.__extends) || (function () {
8481 var extendStatics = function (d, b) {
8482 extendStatics = Object.setPrototypeOf ||
8483 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8484 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8485 return extendStatics(d, b);
8486 };
8487 return function (d, b) {
8488 extendStatics(d, b);
8489 function __() { this.constructor = d; }
8490 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8491 };
8492})();
8493var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8494 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8495 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8496 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8497 return c > 3 && r && Object.defineProperty(target, key, r), r;
8498};
8499
8500
8501
8502
8503var HeadlessService = /** @class */ (function (_super) {
8504 __extends(HeadlessService, _super);
8505 function HeadlessService() {
8506 return _super !== null && _super.apply(this, arguments) || this;
8507 }
8508 HeadlessService_1 = HeadlessService;
8509 HeadlessService.prototype.getHeaderRows = function () {
8510 return this.headerRows;
8511 };
8512 HeadlessService.prototype.getRows = function () {
8513 return this.rows;
8514 };
8515 HeadlessService.prototype.getCenterRowContainer = function () {
8516 return this.centerRowContainer;
8517 };
8518 HeadlessService.prototype.postConstruct = function () {
8519 var _this = this;
8520 this.createHeaderRows();
8521 this.onPageLoaded();
8522 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));
8523 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, function () {
8524 _this.createHeaderRows();
8525 _this.onPageLoaded();
8526 });
8527 };
8528 HeadlessService.prototype.createHeaderRows = function () {
8529 this.headerRows = [];
8530 var headerRowCount = this.columnController.getHeaderRowCount();
8531 for (var i = 0; i < headerRowCount; i++) {
8532 var groupLevel = i === (headerRowCount - 1);
8533 this.headerRows.push(this.createHeaderRow(i, groupLevel));
8534 }
8535 this.dispatchEvent({ type: HeadlessService_1.EVENT_HEADERS_UPDATED });
8536 };
8537 HeadlessService.prototype.onPageLoaded = function () {
8538 var _this = this;
8539 this.rows = [];
8540 var firstRow = this.paginationProxy.getPageFirstRow();
8541 var lastRow = this.paginationProxy.getPageLastRow();
8542 // first and last rows are -1 if no rows to display
8543 if (firstRow < 0 || lastRow < 0) {
8544 return;
8545 }
8546 var displayedColumns = this.columnController.getDisplayedColumns(null);
8547 var _loop_1 = function (rowIndex) {
8548 var rowNode = this_1.paginationProxy.getRow(rowIndex);
8549 if (!rowNode) {
8550 return "continue";
8551 }
8552 var cells = [];
8553 var rowVo = {
8554 cells: cells,
8555 index: rowIndex,
8556 id: rowNode.id,
8557 height: rowNode.rowHeight,
8558 top: rowNode.rowTop
8559 };
8560 displayedColumns.forEach(function (col) {
8561 cells.push({
8562 value: _this.valueService.getValue(col, rowNode),
8563 colId: col.getId(),
8564 width: col.getActualWidth(),
8565 left: col.getLeft()
8566 });
8567 });
8568 this_1.rows.push(rowVo);
8569 };
8570 var this_1 = this;
8571 for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {
8572 _loop_1(rowIndex);
8573 }
8574 this.dispatchEvent({ type: HeadlessService_1.EVENT_ROWS_UPDATED });
8575 this.centerRowContainer = {
8576 height: Math.max(this.paginationProxy.getCurrentPageHeight(), 1),
8577 width: this.columnController.getBodyContainerWidth()
8578 };
8579 this.dispatchEvent({ type: HeadlessService_1.EVENT_ROW_CONTAINER_UPDATED });
8580 };
8581 HeadlessService.prototype.createHeaderRow = function (depth, groupLevel) {
8582 var _this = this;
8583 var items = this.columnController.getVirtualHeaderGroupRow(null, depth);
8584 var mapColumn = function (item) {
8585 var isCol = item instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"];
8586 var name = isCol
8587 ? _this.columnController.getDisplayNameForColumn(item, 'header')
8588 : _this.columnController.getDisplayNameForColumnGroup(item, 'header');
8589 var res = {
8590 name: name,
8591 id: item.getUniqueId()
8592 };
8593 return res;
8594 };
8595 var res = {
8596 headerRowIndex: depth,
8597 groupLevel: groupLevel,
8598 columns: items.map(mapColumn)
8599 };
8600 return res;
8601 };
8602 var HeadlessService_1;
8603 HeadlessService.EVENT_ROWS_UPDATED = 'rowsUpdated';
8604 HeadlessService.EVENT_HEADERS_UPDATED = 'headersUpdated';
8605 HeadlessService.EVENT_ROW_CONTAINER_UPDATED = 'rowContainerUpdated';
8606 __decorate([
8607 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
8608 ], HeadlessService.prototype, "columnController", void 0);
8609 __decorate([
8610 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
8611 ], HeadlessService.prototype, "paginationProxy", void 0);
8612 __decorate([
8613 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
8614 ], HeadlessService.prototype, "valueService", void 0);
8615 __decorate([
8616 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
8617 ], HeadlessService.prototype, "postConstruct", null);
8618 HeadlessService = HeadlessService_1 = __decorate([
8619 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('headlessService')
8620 ], HeadlessService);
8621 return HeadlessService;
8622}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
8623
8624
8625
8626/***/ }),
8627/* 32 */
8628/***/ (function(module, __webpack_exports__, __webpack_require__) {
8629
8630"use strict";
8631__webpack_require__.r(__webpack_exports__);
8632/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TestHeadless", function() { return TestHeadless; });
8633/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
8634/**
8635 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8636 * @version v25.3.0
8637 * @link http://www.ag-grid.com/
8638 * @license MIT
8639 */
8640
8641var TestHeadless = /** @class */ (function () {
8642 function TestHeadless() {
8643 }
8644 TestHeadless.prototype.doSomething = function (eDiv, gridOptions) {
8645 var headlessService = gridOptions.api.headlessService;
8646 var headerRows = headlessService.getHeaderRows();
8647 var rows = headlessService.getRows();
8648 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["clearElement"])(eDiv);
8649 var eTable = document.createElement('table');
8650 headerRows.forEach(function (headerRow) {
8651 var eTr = document.createElement('tr');
8652 eTable.appendChild(eTr);
8653 headerRow.columns.forEach(function (col) {
8654 var eTh = document.createElement('th');
8655 eTr.appendChild(eTh);
8656 if (col.name != null) {
8657 eTh.innerText = col.name;
8658 }
8659 });
8660 });
8661 rows.forEach(function (row) {
8662 var eTr = document.createElement('tr');
8663 eTable.appendChild(eTr);
8664 row.cells.forEach(function (cell) {
8665 var eTd = document.createElement('td');
8666 eTr.appendChild(eTd);
8667 if (cell.value != null) {
8668 eTd.innerText = cell.value.toString();
8669 }
8670 });
8671 });
8672 eDiv.append(eTable);
8673 console.warn('TestHeadless.doSomething');
8674 };
8675 return TestHeadless;
8676}());
8677
8678
8679
8680/***/ }),
8681/* 33 */
8682/***/ (function(module, __webpack_exports__, __webpack_require__) {
8683
8684"use strict";
8685__webpack_require__.r(__webpack_exports__);
8686/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addCssClass", function() { return addCssClass; });
8687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeCssClass", function() { return removeCssClass; });
8688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addOrRemoveCssClass", function() { return addOrRemoveCssClass; });
8689/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radioCssClass", function() { return radioCssClass; });
8690/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsClass", function() { return containsClass; });
8691/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFocusableFormField", function() { return isFocusableFormField; });
8692/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDisplayed", function() { return setDisplayed; });
8693/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setVisible", function() { return setVisible; });
8694/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDisabled", function() { return setDisabled; });
8695/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementChildOfClass", function() { return isElementChildOfClass; });
8696/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementSize", function() { return getElementSize; });
8697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInnerHeight", function() { return getInnerHeight; });
8698/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInnerWidth", function() { return getInnerWidth; });
8699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAbsoluteHeight", function() { return getAbsoluteHeight; });
8700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAbsoluteWidth", function() { return getAbsoluteWidth; });
8701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRtlNegativeScroll", function() { return isRtlNegativeScroll; });
8702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollLeft", function() { return getScrollLeft; });
8703/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setScrollLeft", function() { return setScrollLeft; });
8704/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearElement", function() { return clearElement; });
8705/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeElement", function() { return removeElement; });
8706/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFromParent", function() { return removeFromParent; });
8707/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return isVisible; });
8708/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTemplate", function() { return loadTemplate; });
8709/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendHtml", function() { return appendHtml; });
8710/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementAttribute", function() { return getElementAttribute; });
8711/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offsetHeight", function() { return offsetHeight; });
8712/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offsetWidth", function() { return offsetWidth; });
8713/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ensureDomOrder", function() { return ensureDomOrder; });
8714/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDomChildOrder", function() { return setDomChildOrder; });
8715/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertWithDomOrder", function() { return insertWithDomOrder; });
8716/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prependDC", function() { return prependDC; });
8717/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addStylesToElement", function() { return addStylesToElement; });
8718/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHorizontalScrollShowing", function() { return isHorizontalScrollShowing; });
8719/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVerticalScrollShowing", function() { return isVerticalScrollShowing; });
8720/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementWidth", function() { return setElementWidth; });
8721/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFixedWidth", function() { return setFixedWidth; });
8722/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementHeight", function() { return setElementHeight; });
8723/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFixedHeight", function() { return setFixedHeight; });
8724/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatSize", function() { return formatSize; });
8725/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNode", function() { return isNode; });
8726/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElement", function() { return isElement; });
8727/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNodeOrElement", function() { return isNodeOrElement; });
8728/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyNodeList", function() { return copyNodeList; });
8729/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterateNamedNodeMap", function() { return iterateNamedNodeMap; });
8730/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCheckboxState", function() { return setCheckboxState; });
8731/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addOrRemoveAttribute", function() { return addOrRemoveAttribute; });
8732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nodeListForEach", function() { return nodeListForEach; });
8733/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34);
8734/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
8735/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
8736/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
8737/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
8738/**
8739 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8740 * @version v25.3.0
8741 * @link http://www.ag-grid.com/
8742 * @license MIT
8743 */
8744
8745
8746
8747
8748
8749var rtlNegativeScroll;
8750function addCssClass(element, className) {
8751 if (!element || !className || className.length === 0) {
8752 return;
8753 }
8754 if (className.indexOf(' ') >= 0) {
8755 className.split(' ').forEach(function (value) { return addCssClass(element, value); });
8756 return;
8757 }
8758 if (element.classList) {
8759 element.classList.add(className);
8760 }
8761 else if (element.className && element.className.length > 0) {
8762 var cssClasses = element.className.split(' ');
8763 if (cssClasses.indexOf(className) < 0) {
8764 cssClasses.push(className);
8765 element.setAttribute('class', cssClasses.join(' '));
8766 }
8767 }
8768 else {
8769 // do not use element.classList = className here, it will cause
8770 // a read-only assignment error on some browsers (IE/Edge).
8771 element.setAttribute('class', className);
8772 }
8773 return element;
8774}
8775function removeCssClass(element, className) {
8776 if (!element || !className || className.length === 0) {
8777 return;
8778 }
8779 if (className.indexOf(' ') >= 0) {
8780 className.split(' ').forEach(function (value) { return removeCssClass(element, value); });
8781 return;
8782 }
8783 if (element.classList) {
8784 element.classList.remove(className);
8785 }
8786 else if (element.className && element.className.length > 0) {
8787 var newClassName = element.className.split(' ').filter(function (c) { return c !== className; }).join(' ');
8788 element.setAttribute('class', newClassName);
8789 }
8790}
8791function addOrRemoveCssClass(element, className, addOrRemove) {
8792 if (addOrRemove) {
8793 addCssClass(element, className);
8794 }
8795 else {
8796 removeCssClass(element, className);
8797 }
8798}
8799/**
8800 * This method adds a class to an element and remove that class from all siblings.
8801 * Useful for toggling state.
8802 * @param {HTMLElement} element The element to receive the class
8803 * @param {string} elementClass The class to be assigned to the element
8804 * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself
8805 */
8806function radioCssClass(element, elementClass, otherElementClass) {
8807 var parent = element.parentElement;
8808 var sibling = parent && parent.firstChild;
8809 while (sibling) {
8810 if (elementClass) {
8811 addOrRemoveCssClass(sibling, elementClass, sibling === element);
8812 }
8813 if (otherElementClass) {
8814 addOrRemoveCssClass(sibling, otherElementClass, sibling !== element);
8815 }
8816 sibling = sibling.nextSibling;
8817 }
8818}
8819function containsClass(element, className) {
8820 if (element.classList) {
8821 // for modern browsers
8822 return element.classList.contains(className);
8823 }
8824 if (element.className) {
8825 // for older browsers, check against the string of class names
8826 // if only one class, can check for exact match
8827 var onlyClass = element.className === className;
8828 // if many classes, check for class name, we have to pad with ' ' to stop other
8829 // class names that are a substring of this class
8830 var contains = element.className.indexOf(' ' + className + ' ') >= 0;
8831 // the padding above then breaks when it's the first or last class names
8832 var startsWithClass = element.className.indexOf(className + ' ') === 0;
8833 var endsWithClass = element.className.lastIndexOf(' ' + className) === (element.className.length - className.length - 1);
8834 return onlyClass || contains || startsWithClass || endsWithClass;
8835 }
8836 // if item is not a node
8837 return false;
8838}
8839function isFocusableFormField(element) {
8840 var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;
8841 var isFocusable = matches.call(element, _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].INPUT_SELECTOR);
8842 var isNotFocusable = matches.call(element, _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].FOCUSABLE_EXCLUDE);
8843 var isElementVisible = isVisible(element);
8844 var focusable = isFocusable && !isNotFocusable && isElementVisible;
8845 return focusable;
8846}
8847function setDisplayed(element, displayed) {
8848 addOrRemoveCssClass(element, 'ag-hidden', !displayed);
8849}
8850function setVisible(element, visible) {
8851 addOrRemoveCssClass(element, 'ag-invisible', !visible);
8852}
8853function setDisabled(element, disabled) {
8854 var attributeName = 'disabled';
8855 var addOrRemoveDisabledAttribute = disabled ?
8856 function (e) { return e.setAttribute(attributeName, ''); } :
8857 function (e) { return e.removeAttribute(attributeName); };
8858 addOrRemoveDisabledAttribute(element);
8859 nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });
8860}
8861function isElementChildOfClass(element, cls, maxNest) {
8862 var counter = 0;
8863 while (element) {
8864 if (containsClass(element, cls)) {
8865 return true;
8866 }
8867 element = element.parentElement;
8868 if (maxNest && ++counter > maxNest) {
8869 break;
8870 }
8871 }
8872 return false;
8873}
8874// returns back sizes as doubles instead of strings. similar to
8875// getBoundingClientRect, however getBoundingClientRect does not:
8876// a) work with fractions (eg browser is zooming)
8877// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values
8878function getElementSize(el) {
8879 var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, boxSizing = _a.boxSizing;
8880 return {
8881 height: parseFloat(height),
8882 width: parseFloat(width),
8883 paddingTop: parseFloat(paddingTop),
8884 paddingRight: parseFloat(paddingRight),
8885 paddingBottom: parseFloat(paddingBottom),
8886 paddingLeft: parseFloat(paddingLeft),
8887 marginTop: parseFloat(marginTop),
8888 marginRight: parseFloat(marginRight),
8889 marginBottom: parseFloat(marginBottom),
8890 marginLeft: parseFloat(marginLeft),
8891 boxSizing: boxSizing
8892 };
8893}
8894function getInnerHeight(el) {
8895 var size = getElementSize(el);
8896 if (size.boxSizing === 'border-box') {
8897 return size.height - size.paddingTop - size.paddingBottom;
8898 }
8899 return size.height;
8900}
8901function getInnerWidth(el) {
8902 var size = getElementSize(el);
8903 if (size.boxSizing === 'border-box') {
8904 return size.width - size.paddingLeft - size.paddingRight;
8905 }
8906 return size.width;
8907}
8908function getAbsoluteHeight(el) {
8909 var size = getElementSize(el);
8910 var marginRight = size.marginBottom + size.marginTop;
8911 return Math.ceil(el.offsetHeight + marginRight);
8912}
8913function getAbsoluteWidth(el) {
8914 var size = getElementSize(el);
8915 var marginWidth = size.marginLeft + size.marginRight;
8916 return Math.ceil(el.offsetWidth + marginWidth);
8917}
8918function isRtlNegativeScroll() {
8919 if (typeof rtlNegativeScroll === "boolean") {
8920 return rtlNegativeScroll;
8921 }
8922 var template = document.createElement('div');
8923 template.style.direction = 'rtl';
8924 template.style.width = '1px';
8925 template.style.height = '1px';
8926 template.style.position = 'fixed';
8927 template.style.top = '0px';
8928 template.style.overflow = 'hidden';
8929 template.dir = 'rtl';
8930 template.innerHTML = /* html */
8931 "<div style=\"width: 2px\">\n <span style=\"display: inline-block; width: 1px\"></span>\n <span style=\"display: inline-block; width: 1px\"></span>\n </div>";
8932 document.body.appendChild(template);
8933 template.scrollLeft = 1;
8934 rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;
8935 document.body.removeChild(template);
8936 return rtlNegativeScroll;
8937}
8938function getScrollLeft(element, rtl) {
8939 var scrollLeft = element.scrollLeft;
8940 if (rtl) {
8941 // Absolute value - for FF that reports RTL scrolls in negative numbers
8942 scrollLeft = Math.abs(scrollLeft);
8943 if (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserChrome"])() && !isRtlNegativeScroll()) {
8944 scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;
8945 }
8946 }
8947 return scrollLeft;
8948}
8949function setScrollLeft(element, value, rtl) {
8950 if (rtl) {
8951 // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start
8952 if (isRtlNegativeScroll()) {
8953 value *= -1;
8954 }
8955 else if (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserSafari"])() || Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserChrome"])()) {
8956 value = element.scrollWidth - element.clientWidth - value;
8957 }
8958 }
8959 element.scrollLeft = value;
8960}
8961function clearElement(el) {
8962 while (el && el.firstChild) {
8963 el.removeChild(el.firstChild);
8964 }
8965}
8966/** @deprecated */
8967function removeElement(parent, cssSelector) {
8968 removeFromParent(parent.querySelector(cssSelector));
8969}
8970function removeFromParent(node) {
8971 if (node && node.parentNode) {
8972 node.parentNode.removeChild(node);
8973 }
8974}
8975function isVisible(element) {
8976 return element.offsetParent !== null;
8977}
8978/**
8979 * Loads the template and returns it as an element. makes up for no simple way in
8980 * the dom api to load html directly, eg we cannot do this: document.createElement(template)
8981 * @param {string} template
8982 * @returns {HTMLElement}
8983 */
8984function loadTemplate(template) {
8985 var tempDiv = document.createElement('div');
8986 tempDiv.innerHTML = (template || '').trim();
8987 return tempDiv.firstChild;
8988}
8989function appendHtml(eContainer, htmlTemplate) {
8990 if (eContainer.lastChild) {
8991 // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML
8992 // we put the items at the start, so new items appear underneath old items,
8993 // so when expanding/collapsing groups, the new rows don't go on top of the
8994 // rows below that are moving our of the way
8995 eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);
8996 }
8997 else {
8998 eContainer.innerHTML = htmlTemplate;
8999 }
9000}
9001/** @deprecated */
9002function getElementAttribute(element, attributeName) {
9003 if (element.attributes && element.attributes[attributeName]) {
9004 var attribute = element.attributes[attributeName];
9005 return attribute.value;
9006 }
9007 return null;
9008}
9009function offsetHeight(element) {
9010 return element && element.clientHeight ? element.clientHeight : 0;
9011}
9012function offsetWidth(element) {
9013 return element && element.clientWidth ? element.clientWidth : 0;
9014}
9015function ensureDomOrder(eContainer, eChild, eChildBefore) {
9016 // if already in right order, do nothing
9017 if (eChildBefore && eChildBefore.nextSibling === eChild) {
9018 return;
9019 }
9020 if (eChildBefore) {
9021 if (eChildBefore.nextSibling) {
9022 // insert between the eRowBefore and the row after it
9023 eContainer.insertBefore(eChild, eChildBefore.nextSibling);
9024 }
9025 else {
9026 // if nextSibling is missing, means other row is at end, so just append new row at the end
9027 eContainer.appendChild(eChild);
9028 }
9029 }
9030 else {
9031 // otherwise put at start
9032 if (eContainer.firstChild && eContainer.firstChild !== eChild) {
9033 // insert it at the first location
9034 eContainer.insertAdjacentElement('afterbegin', eChild);
9035 }
9036 }
9037}
9038function setDomChildOrder(eContainer, orderedChildren) {
9039 for (var i = 0; i < orderedChildren.length; i++) {
9040 var correctCellAtIndex = orderedChildren[i];
9041 var actualCellAtIndex = eContainer.children[i];
9042 if (actualCellAtIndex !== correctCellAtIndex) {
9043 eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);
9044 }
9045 }
9046}
9047function insertWithDomOrder(eContainer, eToInsert, eChildBefore) {
9048 if (eChildBefore) {
9049 // if previous element exists, just slot in after the previous element
9050 eChildBefore.insertAdjacentElement('afterend', eToInsert);
9051 }
9052 else {
9053 if (eContainer.firstChild) {
9054 // insert it at the first location
9055 eContainer.insertAdjacentElement('afterbegin', eToInsert);
9056 }
9057 else {
9058 // otherwise eContainer is empty, so just append it
9059 eContainer.appendChild(eToInsert);
9060 }
9061 }
9062}
9063/** @deprecated */
9064function prependDC(parent, documentFragment) {
9065 if (Object(_generic__WEBPACK_IMPORTED_MODULE_1__["exists"])(parent.firstChild)) {
9066 parent.insertBefore(documentFragment, parent.firstChild);
9067 }
9068 else {
9069 parent.appendChild(documentFragment);
9070 }
9071}
9072function addStylesToElement(eElement, styles) {
9073 if (!styles) {
9074 return;
9075 }
9076 Object.keys(styles).forEach(function (key) {
9077 var keyCamelCase = Object(_string__WEBPACK_IMPORTED_MODULE_3__["hyphenToCamelCase"])(key);
9078 if (keyCamelCase) {
9079 eElement.style[keyCamelCase] = styles[key];
9080 }
9081 });
9082}
9083function isHorizontalScrollShowing(element) {
9084 return element.clientWidth < element.scrollWidth;
9085}
9086function isVerticalScrollShowing(element) {
9087 return element.clientHeight < element.scrollHeight;
9088}
9089function setElementWidth(element, width) {
9090 if (width === 'flex') {
9091 element.style.removeProperty('width');
9092 element.style.removeProperty('minWidth');
9093 element.style.removeProperty('maxWidth');
9094 element.style.flex = '1 1 auto';
9095 }
9096 else {
9097 setFixedWidth(element, width);
9098 }
9099}
9100function setFixedWidth(element, width) {
9101 width = formatSize(width);
9102 element.style.width = width.toString();
9103 element.style.maxWidth = width.toString();
9104 element.style.minWidth = width.toString();
9105}
9106function setElementHeight(element, height) {
9107 if (height === 'flex') {
9108 element.style.removeProperty('height');
9109 element.style.removeProperty('minHeight');
9110 element.style.removeProperty('maxHeight');
9111 element.style.flex = '1 1 auto';
9112 }
9113 else {
9114 setFixedHeight(element, height);
9115 }
9116}
9117function setFixedHeight(element, height) {
9118 height = formatSize(height);
9119 element.style.height = height.toString();
9120 element.style.maxHeight = height.toString();
9121 element.style.minHeight = height.toString();
9122}
9123function formatSize(size) {
9124 if (typeof size === 'number') {
9125 return size + "px";
9126 }
9127 return size;
9128}
9129/**
9130 * Returns true if it is a DOM node
9131 * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object
9132 * @param {any} o
9133 * @return {boolean}
9134 */
9135function isNode(o) {
9136 return (typeof Node === 'function'
9137 ? o instanceof Node
9138 : o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string');
9139}
9140//
9141/**
9142 * Returns true if it is a DOM element
9143 * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object
9144 * @param {any} o
9145 * @returns {boolean}
9146 */
9147function isElement(o) {
9148 return (typeof HTMLElement === 'function'
9149 ? o instanceof HTMLElement //DOM2
9150 : o && Object(_object__WEBPACK_IMPORTED_MODULE_2__["isNonNullObject"])(o) && o.nodeType === 1 && typeof o.nodeName === 'string');
9151}
9152function isNodeOrElement(o) {
9153 return isNode(o) || isElement(o);
9154}
9155/**
9156 * Makes a copy of a node list into a list
9157 * @param {NodeList} nodeList
9158 * @returns {Node[]}
9159 */
9160function copyNodeList(nodeList) {
9161 if (nodeList == null) {
9162 return [];
9163 }
9164 var result = [];
9165 nodeListForEach(nodeList, function (node) { return result.push(node); });
9166 return result;
9167}
9168function iterateNamedNodeMap(map, callback) {
9169 if (!map) {
9170 return;
9171 }
9172 for (var i = 0; i < map.length; i++) {
9173 var attr = map[i];
9174 callback(attr.name, attr.value);
9175 }
9176}
9177/** @deprecated */
9178function setCheckboxState(eCheckbox, state) {
9179 if (typeof state === 'boolean') {
9180 eCheckbox.checked = state;
9181 eCheckbox.indeterminate = false;
9182 }
9183 else {
9184 // isNodeSelected returns back undefined if it's a group and the children
9185 // are a mix of selected and unselected
9186 eCheckbox.indeterminate = true;
9187 }
9188}
9189function addOrRemoveAttribute(element, name, value) {
9190 if (value == null) {
9191 element.removeAttribute(name);
9192 }
9193 else {
9194 element.setAttribute(name, value.toString());
9195 }
9196}
9197function nodeListForEach(nodeList, action) {
9198 if (nodeList == null) {
9199 return;
9200 }
9201 for (var i = 0; i < nodeList.length; i++) {
9202 action(nodeList[i]);
9203 }
9204}
9205
9206
9207/***/ }),
9208/* 34 */
9209/***/ (function(module, __webpack_exports__, __webpack_require__) {
9210
9211"use strict";
9212__webpack_require__.r(__webpack_exports__);
9213/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserIE", function() { return isBrowserIE; });
9214/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserEdge", function() { return isBrowserEdge; });
9215/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserSafari", function() { return isBrowserSafari; });
9216/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserChrome", function() { return isBrowserChrome; });
9217/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserFirefox", function() { return isBrowserFirefox; });
9218/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIOSUserAgent", function() { return isIOSUserAgent; });
9219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTabIndex", function() { return getTabIndex; });
9220/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxDivHeight", function() { return getMaxDivHeight; });
9221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return getScrollbarWidth; });
9222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInvisibleScrollbar", function() { return isInvisibleScrollbar; });
9223/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasOverflowScrolling", function() { return hasOverflowScrolling; });
9224/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBodyWidth", function() { return getBodyWidth; });
9225/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBodyHeight", function() { return getBodyHeight; });
9226/**
9227 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9228 * @version v25.3.0
9229 * @link http://www.ag-grid.com/
9230 * @license MIT
9231 */
9232/**
9233 * These variables are lazy loaded, as otherwise they try and get initialised when we are loading
9234 * unit tests and we don't have references to window or document in the unit tests
9235 * from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
9236 */
9237var isSafari;
9238var isIE;
9239var isEdge;
9240var isChrome;
9241var isFirefox;
9242var isIOS;
9243var invisibleScrollbar;
9244var browserScrollbarWidth;
9245function isBrowserIE() {
9246 if (isIE === undefined) {
9247 isIE = /*@cc_on!@*/ false || !!document.documentMode; // At least IE6
9248 }
9249 return isIE;
9250}
9251function isBrowserEdge() {
9252 if (isEdge === undefined) {
9253 isEdge = !isBrowserIE() && !!window.StyleMedia;
9254 }
9255 return isEdge;
9256}
9257function isBrowserSafari() {
9258 if (isSafari === undefined) {
9259 // taken from https://stackoverflow.com/a/23522755/1388233
9260 isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
9261 }
9262 return isSafari;
9263}
9264function isBrowserChrome() {
9265 if (isChrome === undefined) {
9266 var win = window;
9267 isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||
9268 (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));
9269 }
9270 return isChrome;
9271}
9272function isBrowserFirefox() {
9273 if (isFirefox === undefined) {
9274 var win = window;
9275 isFirefox = typeof win.InstallTrigger !== 'undefined';
9276 }
9277 return isFirefox;
9278}
9279function isIOSUserAgent() {
9280 if (isIOS === undefined) {
9281 // taken from https://stackoverflow.com/a/58064481/1388233
9282 isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
9283 // eslint-disable-next-line
9284 (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&
9285 !window.MSStream;
9286 }
9287 return isIOS;
9288}
9289function getTabIndex(el) {
9290 if (!el) {
9291 return null;
9292 }
9293 var numberTabIndex = el.tabIndex;
9294 var tabIndex = el.getAttribute('tabIndex');
9295 if (isBrowserIE() && numberTabIndex === 0 && tabIndex === null) {
9296 var map = {
9297 a: true,
9298 body: true,
9299 button: true,
9300 frame: true,
9301 iframe: true,
9302 img: true,
9303 input: true,
9304 isindex: true,
9305 object: true,
9306 select: true,
9307 textarea: true
9308 };
9309 return map[el.nodeName.toLowerCase()] === true ? '0' : null;
9310 }
9311 if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {
9312 return null;
9313 }
9314 return numberTabIndex.toString();
9315}
9316function getMaxDivHeight() {
9317 if (!document.body) {
9318 return -1;
9319 }
9320 var res = 1000000;
9321 // FF reports the height back but still renders blank after ~6M px
9322 var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;
9323 var div = document.createElement('div');
9324 document.body.appendChild(div);
9325 while (true) {
9326 var test = res * 2;
9327 div.style.height = test + 'px';
9328 if (test > testUpTo || div.clientHeight !== test) {
9329 break;
9330 }
9331 else {
9332 res = test;
9333 }
9334 }
9335 document.body.removeChild(div);
9336 return res;
9337}
9338function getScrollbarWidth() {
9339 if (browserScrollbarWidth == null) {
9340 initScrollbarWidthAndVisibility();
9341 }
9342 return browserScrollbarWidth;
9343}
9344function initScrollbarWidthAndVisibility() {
9345 var body = document.body;
9346 var div = document.createElement('div');
9347 div.style.width = div.style.height = '100px';
9348 div.style.opacity = '0';
9349 div.style.overflow = 'scroll';
9350 div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
9351 div.style.position = 'absolute';
9352 body.appendChild(div);
9353 var width = div.offsetWidth - div.clientWidth;
9354 // if width is 0 and client width is 0, means the DOM isn't ready
9355 if (width === 0 && div.clientWidth === 0) {
9356 width = null;
9357 }
9358 // remove div
9359 if (div.parentNode) {
9360 div.parentNode.removeChild(div);
9361 }
9362 if (width != null) {
9363 browserScrollbarWidth = width;
9364 invisibleScrollbar = width === 0;
9365 }
9366}
9367function isInvisibleScrollbar() {
9368 if (invisibleScrollbar == null) {
9369 initScrollbarWidthAndVisibility();
9370 }
9371 return invisibleScrollbar;
9372}
9373/** @deprecated */
9374function hasOverflowScrolling() {
9375 var prefixes = ['webkit', 'moz', 'o', 'ms'];
9376 var div = document.createElement('div');
9377 var body = document.getElementsByTagName('body')[0];
9378 var found = false;
9379 var p;
9380 body.appendChild(div);
9381 div.setAttribute('style', prefixes.map(function (prefix) { return "-" + prefix + "-overflow-scrolling: touch"; }).concat('overflow-scrolling: touch').join(';'));
9382 var computedStyle = window.getComputedStyle(div);
9383 if (computedStyle.overflowScrolling === 'touch') {
9384 found = true;
9385 }
9386 if (!found) {
9387 for (var _i = 0, prefixes_1 = prefixes; _i < prefixes_1.length; _i++) {
9388 p = prefixes_1[_i];
9389 if (computedStyle[p + "OverflowScrolling"] === 'touch') {
9390 found = true;
9391 break;
9392 }
9393 }
9394 }
9395 if (div.parentNode) {
9396 div.parentNode.removeChild(div);
9397 }
9398 return found;
9399}
9400/**
9401 * Gets the document body width
9402 * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code
9403 * @returns {number}
9404 */
9405function getBodyWidth() {
9406 if (document.body) {
9407 return document.body.clientWidth;
9408 }
9409 if (window.innerHeight) {
9410 return window.innerWidth;
9411 }
9412 if (document.documentElement && document.documentElement.clientWidth) {
9413 return document.documentElement.clientWidth;
9414 }
9415 return -1;
9416}
9417/**
9418 * Gets the body height
9419 * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code
9420 * @returns {number}
9421 */
9422function getBodyHeight() {
9423 if (document.body) {
9424 return document.body.clientHeight;
9425 }
9426 if (window.innerHeight) {
9427 return window.innerHeight;
9428 }
9429 if (document.documentElement && document.documentElement.clientHeight) {
9430 return document.documentElement.clientHeight;
9431 }
9432 return -1;
9433}
9434
9435
9436/***/ }),
9437/* 35 */
9438/***/ (function(module, __webpack_exports__, __webpack_require__) {
9439
9440"use strict";
9441__webpack_require__.r(__webpack_exports__);
9442/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return ComponentUtil; });
9443/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
9444/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36);
9445/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
9446/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
9447/**
9448 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9449 * @version v25.3.0
9450 * @link http://www.ag-grid.com/
9451 * @license MIT
9452 */
9453var __assign = (undefined && undefined.__assign) || function () {
9454 __assign = Object.assign || function(t) {
9455 for (var s, i = 1, n = arguments.length; i < n; i++) {
9456 s = arguments[i];
9457 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9458 t[p] = s[p];
9459 }
9460 return t;
9461 };
9462 return __assign.apply(this, arguments);
9463};
9464var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
9465 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9466 for (var r = Array(s), k = 0, i = 0; i < il; i++)
9467 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9468 r[k] = a[j];
9469 return r;
9470};
9471
9472
9473
9474
9475var ComponentUtil = /** @class */ (function () {
9476 function ComponentUtil() {
9477 }
9478 ComponentUtil.getEventCallbacks = function () {
9479 if (!ComponentUtil.EVENT_CALLBACKS) {
9480 ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });
9481 }
9482 return ComponentUtil.EVENT_CALLBACKS;
9483 };
9484 ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, skipEventDeprecationCheck) {
9485 if (skipEventDeprecationCheck === void 0) { skipEventDeprecationCheck = false; }
9486 // create empty grid options if none were passed
9487 if (typeof gridOptions !== 'object') {
9488 gridOptions = {};
9489 }
9490 // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'
9491 var pGridOptions = gridOptions;
9492 var keyExists = function (key) { return typeof component[key] !== 'undefined'; };
9493 // add in all the simple properties
9494 __spreadArrays(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.FUNCTION_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)
9495 .forEach(function (key) { return pGridOptions[key] = component[key]; });
9496 ComponentUtil.BOOLEAN_PROPERTIES
9497 .filter(keyExists)
9498 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(component[key]); });
9499 ComponentUtil.NUMBER_PROPERTIES
9500 .filter(keyExists)
9501 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(component[key]); });
9502 return gridOptions;
9503 };
9504 ComponentUtil.getCallbackForEvent = function (eventName) {
9505 if (!eventName || eventName.length < 2) {
9506 return eventName;
9507 }
9508 return 'on' + eventName[0].toUpperCase() + eventName.substr(1);
9509 };
9510 ComponentUtil.processOnChange = function (changes, gridOptions, api, columnApi) {
9511 if (!changes) {
9512 return;
9513 }
9514 var changesToApply = __assign({}, changes);
9515 // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'
9516 var pGridOptions = gridOptions;
9517 var keyExists = function (key) { return changesToApply[key]; };
9518 // check if any change for the simple types, and if so, then just copy in the new value
9519 __spreadArrays(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)
9520 .forEach(function (key) { return pGridOptions[key] = changesToApply[key].currentValue; });
9521 ComponentUtil.BOOLEAN_PROPERTIES
9522 .filter(keyExists)
9523 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(changesToApply[key].currentValue); });
9524 ComponentUtil.NUMBER_PROPERTIES
9525 .filter(keyExists)
9526 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(changesToApply[key].currentValue); });
9527 if (changesToApply.enableCellTextSelection) {
9528 api.setEnableCellTextSelection(ComponentUtil.toBoolean(changesToApply.enableCellTextSelection.currentValue));
9529 delete changesToApply.enableCellTextSelection;
9530 }
9531 if (changesToApply.quickFilterText) {
9532 api.setQuickFilter(changesToApply.quickFilterText.currentValue);
9533 delete changesToApply.quickFilterText;
9534 }
9535 if (changesToApply.autoGroupColumnDef) {
9536 api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, "gridOptionsChanged");
9537 delete changesToApply.autoGroupColumnDef;
9538 }
9539 if (changesToApply.columnDefs) {
9540 api.setColumnDefs(changesToApply.columnDefs.currentValue, "gridOptionsChanged");
9541 delete changesToApply.columnDefs;
9542 }
9543 if (changesToApply.paginationPageSize) {
9544 api.paginationSetPageSize(ComponentUtil.toNumber(changesToApply.paginationPageSize.currentValue));
9545 delete changesToApply.paginationPageSize;
9546 }
9547 if (changesToApply.pivotMode) {
9548 columnApi.setPivotMode(ComponentUtil.toBoolean(changesToApply.pivotMode.currentValue));
9549 delete changesToApply.pivotMode;
9550 }
9551 if (changesToApply.groupRemoveSingleChildren) {
9552 api.setGroupRemoveSingleChildren(ComponentUtil.toBoolean(changesToApply.groupRemoveSingleChildren.currentValue));
9553 delete changesToApply.groupRemoveSingleChildren;
9554 }
9555 if (changesToApply.suppressRowDrag) {
9556 api.setSuppressRowDrag(ComponentUtil.toBoolean(changesToApply.suppressRowDrag.currentValue));
9557 delete changesToApply.suppressRowDrag;
9558 }
9559 if (changesToApply.suppressMoveWhenRowDragging) {
9560 api.setSuppressMoveWhenRowDragging(ComponentUtil.toBoolean(changesToApply.suppressMoveWhenRowDragging.currentValue));
9561 delete changesToApply.suppressMoveWhenRowDragging;
9562 }
9563 if (changesToApply.suppressRowClickSelection) {
9564 api.setSuppressRowClickSelection(ComponentUtil.toBoolean(changesToApply.suppressRowClickSelection.currentValue));
9565 delete changesToApply.suppressRowClickSelection;
9566 }
9567 if (changesToApply.suppressClipboardPaste) {
9568 api.setSuppressClipboardPaste(ComponentUtil.toBoolean(changesToApply.suppressClipboardPaste.currentValue));
9569 delete changesToApply.suppressClipboardPaste;
9570 }
9571 if (changesToApply.headerHeight) {
9572 api.setHeaderHeight(ComponentUtil.toNumber(changesToApply.headerHeight.currentValue));
9573 delete changesToApply.headerHeight;
9574 }
9575 // any remaining properties can be set in a generic way
9576 // ie the setter takes the form of setXXX and the argument requires no formatting/translation first
9577 var dynamicApi = api;
9578 Object.keys(changesToApply)
9579 .forEach(function (property) {
9580 var setterName = "set" + property.charAt(0).toUpperCase() + property.substring(1);
9581 if (dynamicApi[setterName]) {
9582 dynamicApi[setterName](changes[property].currentValue);
9583 }
9584 });
9585 // copy changes into an event for dispatch
9586 var event = {
9587 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COMPONENT_STATE_CHANGED,
9588 api: gridOptions.api,
9589 columnApi: gridOptions.columnApi
9590 };
9591 Object(_utils_object__WEBPACK_IMPORTED_MODULE_2__["iterateObject"])(changes, function (key, value) {
9592 event[key] = value;
9593 });
9594 api.dispatchEvent(event);
9595 };
9596 ComponentUtil.toBoolean = function (value) {
9597 if (typeof value === 'boolean') {
9598 return value;
9599 }
9600 if (typeof value === 'string') {
9601 // for boolean, compare to empty String to allow attributes appearing with
9602 // no value to be treated as 'true'
9603 return value.toUpperCase() === 'TRUE' || value == '';
9604 }
9605 return false;
9606 };
9607 ComponentUtil.toNumber = function (value) {
9608 if (typeof value === 'number') {
9609 return value;
9610 }
9611 if (typeof value === 'string') {
9612 return Number(value);
9613 }
9614 };
9615 // all the events are populated in here AFTER this class (at the bottom of the file).
9616 ComponentUtil.EVENTS = [];
9617 ComponentUtil.STRING_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].STRING_PROPERTIES;
9618 ComponentUtil.OBJECT_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].OBJECT_PROPERTIES;
9619 ComponentUtil.ARRAY_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ARRAY_PROPERTIES;
9620 ComponentUtil.NUMBER_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].NUMBER_PROPERTIES;
9621 ComponentUtil.BOOLEAN_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].BOOLEAN_PROPERTIES;
9622 ComponentUtil.FUNCTION_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].FUNCTION_PROPERTIES;
9623 ComponentUtil.ALL_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ALL_PROPERTIES;
9624 return ComponentUtil;
9625}());
9626
9627ComponentUtil.EVENTS = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["values"])(_events__WEBPACK_IMPORTED_MODULE_0__["Events"]);
9628
9629
9630/***/ }),
9631/* 36 */
9632/***/ (function(module, __webpack_exports__, __webpack_require__) {
9633
9634"use strict";
9635__webpack_require__.r(__webpack_exports__);
9636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return PropertyKeys; });
9637/**
9638 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9639 * @version v25.3.0
9640 * @link http://www.ag-grid.com/
9641 * @license MIT
9642 */
9643var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
9644 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9645 for (var r = Array(s), k = 0, i = 0; i < il; i++)
9646 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9647 r[k] = a[j];
9648 return r;
9649};
9650/**
9651 * These keys are used for validating properties supplied on a gridOptions object, and for code generation.
9652 * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.
9653 */
9654var PropertyKeys = /** @class */ (function () {
9655 function PropertyKeys() {
9656 }
9657 PropertyKeys.STRING_PROPERTIES = [
9658 'sortingOrder', 'rowClass', 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate',
9659 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDeliminator', 'rowGroupPanelShow',
9660 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',
9661 'serverSideStoreType'
9662 ];
9663 PropertyKeys.OBJECT_PROPERTIES = [
9664 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',
9665 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',
9666 'defaultColGroupDef', 'defaultColDef', 'defaultExportParams', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',
9667 'rowClassRules', 'detailGridOptions', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',
9668 'noRowsOverlayComponentParams', 'popupParent', 'colResizeDefault', 'reduxStore', 'statusBar', 'sideBar', 'chartThemeOverrides',
9669 'customChartThemes'
9670 ];
9671 PropertyKeys.ARRAY_PROPERTIES = [
9672 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes'
9673 ];
9674 PropertyKeys.NUMBER_PROPERTIES = [
9675 'rowHeight', 'detailRowHeight', 'rowBuffer', 'colWidth', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',
9676 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'minColWidth', 'maxColWidth', 'viewportRowModelPageSize',
9677 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',
9678 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'scrollbarWidth',
9679 'batchUpdateWaitMillis', 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',
9680 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'
9681 ];
9682 PropertyKeys.BOOLEAN_PROPERTIES = [
9683 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellSelection', 'suppressHorizontalScroll',
9684 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions',
9685 'angularCompileRows', 'angularCompileFilters', 'groupSuppressAutoColumn', 'groupSelectsChildren', 'groupIncludeFooter',
9686 'groupIncludeTotalFooter', 'groupUseEntireRow', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection',
9687 'unSortIcon', 'suppressMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',
9688 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns',
9689 'suppressFieldDotNotation', 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction',
9690 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey', 'suppressContextMenu',
9691 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns', 'suppressMiddleClickScrolls',
9692 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'pivotMode',
9693 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh',
9694 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',
9695 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragManaged', 'suppressRowDrag',
9696 'suppressMoveWhenRowDragging', 'enableMultiRowDragging', 'enableGroupEdit', 'embedFullWidthRows', 'deprecatedEmbedFullWidthRows',
9697 'suppressPaginationPanel', 'floatingFilter', 'groupHideOpenParents', 'groupMultiAutoColumn', 'pagination',
9698 'stopEditingWhenGridLosesFocus', 'paginationAutoPageSize', 'suppressScrollOnNewData', 'purgeClosedRowNodes', 'cacheQuickFilter',
9699 'deltaRowDataMode', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires',
9700 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData',
9701 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown', 'suppressPropertyNamesCheck',
9702 'rowMultiSelectWithClick', 'suppressEnterpriseResetOnNewColumns', 'enableOldSetFilterModel', 'suppressRowHoverHighlight',
9703 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste', 'serverSideSortingAlwaysResets',
9704 'reactNext', 'suppressSetColumnStateEvents', 'suppressColumnStateEvents', 'enableCharts', 'deltaColumnMode', 'suppressMaintainUnsortedOrder',
9705 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',
9706 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',
9707 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'immutableData', 'immutableColumns', 'pivotSuppressAutoColumn',
9708 'suppressExpandablePivotGroups', 'applyColumnDefOrder', 'debounceVerticalScrollbar', 'detailRowAutoHeight',
9709 'serverSideFilteringAlwaysResets', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi',
9710 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus'
9711 ];
9712 /** You do not need to include event callbacks in this list, as they are generated automatically. */
9713 PropertyKeys.FUNCTION_PROPERTIES = [
9714 'localeTextFunc', 'groupRowInnerRenderer', 'groupRowInnerRendererFramework', 'dateComponent', 'dateComponentFramework', 'groupRowRenderer',
9715 'groupRowRendererFramework', 'isExternalFilterPresent', 'getRowHeight', 'doesExternalFilterPass', 'getRowClass', 'getRowStyle',
9716 'getRowClassRules', 'traverseNode', 'getContextMenuItems', 'getMainMenuItems', 'processRowPostCreate', 'processCellForClipboard',
9717 'groupRowAggNodes', 'getRowNodeId', 'isFullWidthCell', 'fullWidthCellRenderer', 'fullWidthCellRendererFramework', 'processSecondaryColDef',
9718 'processSecondaryColGroupDef', 'getBusinessKeyForNode', 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',
9719 'tabToNextCell', 'getDetailRowData', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath',
9720 'loadingCellRenderer', 'loadingCellRendererFramework', 'loadingOverlayComponent', 'loadingOverlayComponentFramework', 'noRowsOverlayComponent',
9721 'noRowsOverlayComponentFramework', 'detailCellRenderer', 'detailCellRendererFramework', 'defaultGroupSortComparator', 'isRowMaster',
9722 'isRowSelectable', 'postSort', 'processHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey',
9723 'isServerSideGroup', 'suppressKeyboardEvent', 'createChartContainer', 'processChartOptions', 'getChartToolbarItems', 'fillOperation',
9724 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault'
9725 ];
9726 PropertyKeys.ALL_PROPERTIES = __spreadArrays(PropertyKeys.ARRAY_PROPERTIES, PropertyKeys.OBJECT_PROPERTIES, PropertyKeys.STRING_PROPERTIES, PropertyKeys.NUMBER_PROPERTIES, PropertyKeys.FUNCTION_PROPERTIES, PropertyKeys.BOOLEAN_PROPERTIES);
9727 /**
9728 * Used when performing property checks. This avoids noise caused when using frameworks, which can add their own
9729 * framework-specific properties to colDefs, gridOptions etc.
9730 */
9731 PropertyKeys.FRAMEWORK_PROPERTIES = [
9732 '__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns', 'toColDef', 'createColDefFromGridColumn'
9733 ];
9734 return PropertyKeys;
9735}());
9736
9737
9738
9739/***/ }),
9740/* 37 */
9741/***/ (function(module, __webpack_exports__, __webpack_require__) {
9742
9743"use strict";
9744__webpack_require__.r(__webpack_exports__);
9745/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return ColDefUtil; });
9746/**
9747 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9748 * @version v25.3.0
9749 * @link http://www.ag-grid.com/
9750 * @license MIT
9751 */
9752var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
9753 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9754 for (var r = Array(s), k = 0, i = 0; i < il; i++)
9755 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9756 r[k] = a[j];
9757 return r;
9758};
9759var ColDefUtil = /** @class */ (function () {
9760 function ColDefUtil() {
9761 }
9762 ColDefUtil.STRING_PROPERTIES = [
9763 'headerName',
9764 'columnGroupShow',
9765 'headerClass',
9766 'toolPanelClass',
9767 'headerValueGetter',
9768 'pivotKeys',
9769 'groupId',
9770 'colId',
9771 'sort',
9772 'initialSort',
9773 'field',
9774 'type',
9775 'tooltipComponent',
9776 'tooltipField',
9777 'headerTooltip',
9778 'cellClass',
9779 'showRowGroup',
9780 'template',
9781 'templateUrl',
9782 'filter',
9783 'initialAggFunc',
9784 'aggFunc',
9785 'cellRenderer',
9786 'cellEditor',
9787 'pinned',
9788 'initialPinned',
9789 'chartDataType'
9790 ];
9791 ColDefUtil.OBJECT_PROPERTIES = [
9792 'headerGroupComponent',
9793 'headerGroupComponentFramework',
9794 'headerGroupComponentParams',
9795 'cellStyle',
9796 'cellRendererParams',
9797 'cellEditorFramework',
9798 'cellEditorParams',
9799 'pinnedRowCellRendererFramework',
9800 'pinnedRowCellRendererParams',
9801 'filterFramework',
9802 'filterParams',
9803 'pivotValueColumn',
9804 'headerComponent',
9805 'headerComponentFramework',
9806 'headerComponentParams',
9807 'floatingFilterComponent',
9808 'floatingFilterComponentParams',
9809 'floatingFilterComponentFramework',
9810 'tooltipComponent',
9811 'tooltipComponentParams',
9812 'tooltipComponentFramework',
9813 'refData',
9814 'columnsMenuParams'
9815 ];
9816 ColDefUtil.ARRAY_PROPERTIES = [
9817 'children',
9818 'sortingOrder',
9819 'allowedAggFuncs',
9820 'menuTabs',
9821 'pivotTotalColumnIds',
9822 'cellClassRules',
9823 'icons'
9824 ];
9825 ColDefUtil.NUMBER_PROPERTIES = [
9826 'sortedAt',
9827 'sortIndex',
9828 'initialSortIndex',
9829 'flex',
9830 'initialFlex',
9831 'width',
9832 'initialWidth',
9833 'minWidth',
9834 'maxWidth',
9835 'rowGroupIndex',
9836 'initialRowGroupIndex',
9837 'pivotIndex',
9838 'initialPivotIndex'
9839 ];
9840 ColDefUtil.BOOLEAN_PROPERTIES = [
9841 'suppressCellFlash',
9842 'suppressColumnsToolPanel',
9843 'suppressFiltersToolPanel',
9844 'openByDefault',
9845 'marryChildren',
9846 'hide',
9847 'initialHide',
9848 'rowGroup',
9849 'initialRowGroup',
9850 'pivot',
9851 'initialPivot',
9852 'checkboxSelection',
9853 'headerCheckboxSelection',
9854 'headerCheckboxSelectionFilteredOnly',
9855 'suppressMenu',
9856 'suppressMovable',
9857 'lockPosition',
9858 'lockVisible',
9859 'lockPinned',
9860 'unSortIcon',
9861 'suppressSizeToFit',
9862 'suppressAutoSize',
9863 'enableRowGroup',
9864 'enablePivot',
9865 'enableValue',
9866 'editable',
9867 'suppressPaste',
9868 'suppressNavigable',
9869 'enableCellChangeFlash',
9870 'rowDrag',
9871 'dndSource',
9872 'autoHeight',
9873 'wrapText',
9874 'sortable',
9875 'resizable',
9876 'singleClickEdit',
9877 'floatingFilter',
9878 ];
9879 ColDefUtil.FUNCTION_PROPERTIES = [
9880 'dndSourceOnRowDrag',
9881 'valueGetter',
9882 'valueSetter',
9883 'filterValueGetter',
9884 'keyCreator',
9885 'cellRenderer',
9886 'cellRendererFramework',
9887 'pinnedRowCellRenderer',
9888 'valueFormatter',
9889 'pinnedRowValueFormatter',
9890 'valueParser',
9891 'comparator',
9892 'equals',
9893 'pivotComparator',
9894 'suppressKeyboardEvent',
9895 'suppressHeaderKeyboardEvent',
9896 'colSpan',
9897 'rowSpan',
9898 'getQuickFilterText',
9899 'newValueHandler',
9900 'onCellValueChanged',
9901 'onCellClicked',
9902 'onCellDoubleClicked',
9903 'onCellContextMenu',
9904 'rowDragText',
9905 'tooltipValueGetter',
9906 'tooltipComponent',
9907 'tooltipComponentFramework',
9908 'cellRendererSelector',
9909 'cellEditorSelector'
9910 ];
9911 ColDefUtil.ALL_PROPERTIES = __spreadArrays(ColDefUtil.ARRAY_PROPERTIES, ColDefUtil.OBJECT_PROPERTIES, ColDefUtil.STRING_PROPERTIES, ColDefUtil.NUMBER_PROPERTIES, ColDefUtil.FUNCTION_PROPERTIES, ColDefUtil.BOOLEAN_PROPERTIES);
9912 // used when doing property checks - this causes noise when using frameworks which can add their own fw specific
9913 // properties to colDefs, gridOptions etc
9914 ColDefUtil.FRAMEWORK_PROPERTIES = ['__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns',
9915 'toColDef', 'createColDefFromGridColumn'];
9916 return ColDefUtil;
9917}());
9918
9919
9920
9921/***/ }),
9922/* 38 */
9923/***/ (function(module, __webpack_exports__, __webpack_require__) {
9924
9925"use strict";
9926__webpack_require__.r(__webpack_exports__);
9927/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RegisteredComponentSource", function() { return RegisteredComponentSource; });
9928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return UserComponentRegistry; });
9929/* harmony import */ var _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
9930/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
9931/* harmony import */ var _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61);
9932/* harmony import */ var _headerRendering_header_headerComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69);
9933/* harmony import */ var _headerRendering_headerGroup_headerGroupComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71);
9934/* harmony import */ var _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72);
9935/* harmony import */ var _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(79);
9936/* harmony import */ var _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80);
9937/* harmony import */ var _rendering_cellRenderers_loadingCellRenderer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(81);
9938/* harmony import */ var _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(82);
9939/* harmony import */ var _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(83);
9940/* harmony import */ var _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84);
9941/* harmony import */ var _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(85);
9942/* harmony import */ var _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(86);
9943/* harmony import */ var _rendering_overlays_loadingOverlayComponent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(87);
9944/* harmony import */ var _rendering_overlays_noRowsOverlayComponent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(88);
9945/* harmony import */ var _rendering_tooltipComponent__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(89);
9946/* harmony import */ var _filter_provided_date_defaultDateComponent__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(90);
9947/* harmony import */ var _filter_provided_date_dateFloatingFilter__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(91);
9948/* harmony import */ var _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(93);
9949/* harmony import */ var _filter_provided_number_numberFloatingFilter__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(94);
9950/* harmony import */ var _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(96);
9951/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(20);
9952/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(13);
9953/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(15);
9954/**
9955 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9956 * @version v25.3.0
9957 * @link http://www.ag-grid.com/
9958 * @license MIT
9959 */
9960var __extends = (undefined && undefined.__extends) || (function () {
9961 var extendStatics = function (d, b) {
9962 extendStatics = Object.setPrototypeOf ||
9963 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9964 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
9965 return extendStatics(d, b);
9966 };
9967 return function (d, b) {
9968 extendStatics(d, b);
9969 function __() { this.constructor = d; }
9970 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9971 };
9972})();
9973var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9974 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9975 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9976 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9977 return c > 3 && r && Object.defineProperty(target, key, r), r;
9978};
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004var RegisteredComponentSource;
10005(function (RegisteredComponentSource) {
10006 RegisteredComponentSource[RegisteredComponentSource["DEFAULT"] = 0] = "DEFAULT";
10007 RegisteredComponentSource[RegisteredComponentSource["REGISTERED"] = 1] = "REGISTERED";
10008})(RegisteredComponentSource || (RegisteredComponentSource = {}));
10009var UserComponentRegistry = /** @class */ (function (_super) {
10010 __extends(UserComponentRegistry, _super);
10011 function UserComponentRegistry() {
10012 var _this = _super !== null && _super.apply(this, arguments) || this;
10013 _this.agGridDefaults = {
10014 //date
10015 agDateInput: _filter_provided_date_defaultDateComponent__WEBPACK_IMPORTED_MODULE_17__["DefaultDateComponent"],
10016 //header
10017 agColumnHeader: _headerRendering_header_headerComp__WEBPACK_IMPORTED_MODULE_3__["HeaderComp"],
10018 agColumnGroupHeader: _headerRendering_headerGroup_headerGroupComp__WEBPACK_IMPORTED_MODULE_4__["HeaderGroupComp"],
10019 //floating filters
10020 agTextColumnFloatingFilter: _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_21__["TextFloatingFilter"],
10021 agNumberColumnFloatingFilter: _filter_provided_number_numberFloatingFilter__WEBPACK_IMPORTED_MODULE_20__["NumberFloatingFilter"],
10022 agDateColumnFloatingFilter: _filter_provided_date_dateFloatingFilter__WEBPACK_IMPORTED_MODULE_18__["DateFloatingFilter"],
10023 // renderers
10024 agAnimateShowChangeCellRenderer: _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_6__["AnimateShowChangeCellRenderer"],
10025 agAnimateSlideCellRenderer: _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_7__["AnimateSlideCellRenderer"],
10026 agGroupCellRenderer: _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_5__["GroupCellRenderer"],
10027 agGroupRowRenderer: _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_5__["GroupCellRenderer"],
10028 agLoadingCellRenderer: _rendering_cellRenderers_loadingCellRenderer__WEBPACK_IMPORTED_MODULE_8__["LoadingCellRenderer"],
10029 //editors
10030 agCellEditor: _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_0__["TextCellEditor"],
10031 agTextCellEditor: _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_0__["TextCellEditor"],
10032 agSelectCellEditor: _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_9__["SelectCellEditor"],
10033 agPopupTextCellEditor: _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_10__["PopupTextCellEditor"],
10034 agPopupSelectCellEditor: _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_11__["PopupSelectCellEditor"],
10035 agLargeTextCellEditor: _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_12__["LargeTextCellEditor"],
10036 //filter
10037 agTextColumnFilter: _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_19__["TextFilter"],
10038 agNumberColumnFilter: _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_13__["NumberFilter"],
10039 agDateColumnFilter: _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_2__["DateFilter"],
10040 //overlays
10041 agLoadingOverlay: _rendering_overlays_loadingOverlayComponent__WEBPACK_IMPORTED_MODULE_14__["LoadingOverlayComponent"],
10042 agNoRowsOverlay: _rendering_overlays_noRowsOverlayComponent__WEBPACK_IMPORTED_MODULE_15__["NoRowsOverlayComponent"],
10043 // tooltips
10044 agTooltipComponent: _rendering_tooltipComponent__WEBPACK_IMPORTED_MODULE_16__["TooltipComponent"]
10045 };
10046 _this.agDeprecatedNames = {
10047 set: {
10048 newComponentName: 'agSetColumnFilter',
10049 propertyHolder: 'filter'
10050 },
10051 text: {
10052 newComponentName: 'agTextColumnFilter',
10053 propertyHolder: 'filter'
10054 },
10055 number: {
10056 newComponentName: 'agNumberColumnFilter',
10057 propertyHolder: 'filter'
10058 },
10059 date: {
10060 newComponentName: 'agDateColumnFilter',
10061 propertyHolder: 'filter'
10062 },
10063 group: {
10064 newComponentName: 'agGroupCellRenderer',
10065 propertyHolder: 'cellRenderer'
10066 },
10067 animateShowChange: {
10068 newComponentName: 'agAnimateShowChangeCellRenderer',
10069 propertyHolder: 'cellRenderer'
10070 },
10071 animateSlide: {
10072 newComponentName: 'agAnimateSlideCellRenderer',
10073 propertyHolder: 'cellRenderer'
10074 },
10075 select: {
10076 newComponentName: 'agSelectCellEditor',
10077 propertyHolder: 'cellEditor'
10078 },
10079 largeText: {
10080 newComponentName: 'agLargeTextCellEditor',
10081 propertyHolder: 'cellEditor'
10082 },
10083 popupSelect: {
10084 newComponentName: 'agPopupSelectCellEditor',
10085 propertyHolder: 'cellEditor'
10086 },
10087 popupText: {
10088 newComponentName: 'agPopupTextCellEditor',
10089 propertyHolder: 'cellEditor'
10090 },
10091 richSelect: {
10092 newComponentName: 'agRichSelectCellEditor',
10093 propertyHolder: 'cellEditor'
10094 },
10095 headerComponent: {
10096 newComponentName: 'agColumnHeader',
10097 propertyHolder: 'headerComponent'
10098 }
10099 };
10100 _this.jsComponents = {};
10101 _this.frameworkComponents = {};
10102 return _this;
10103 }
10104 UserComponentRegistry.prototype.init = function () {
10105 var _this = this;
10106 if (this.gridOptions.components != null) {
10107 Object(_utils_object__WEBPACK_IMPORTED_MODULE_23__["iterateObject"])(this.gridOptions.components, function (key, component) { return _this.registerComponent(key, component); });
10108 }
10109 if (this.gridOptions.frameworkComponents != null) {
10110 Object(_utils_object__WEBPACK_IMPORTED_MODULE_23__["iterateObject"])(this.gridOptions.frameworkComponents, function (key, component) { return _this.registerFwComponent(key, component); });
10111 }
10112 };
10113 UserComponentRegistry.prototype.registerDefaultComponent = function (rawName, component) {
10114 var name = this.translateIfDeprecated(rawName);
10115 if (this.agGridDefaults[name]) {
10116 console.error("Trying to overwrite a default component. You should call registerComponent");
10117 return;
10118 }
10119 this.agGridDefaults[name] = component;
10120 };
10121 UserComponentRegistry.prototype.registerComponent = function (rawName, component) {
10122 var name = this.translateIfDeprecated(rawName);
10123 if (this.frameworkComponents[name]) {
10124 console.error("Trying to register a component that you have already registered for frameworks: " + name);
10125 return;
10126 }
10127 this.jsComponents[name] = component;
10128 };
10129 /**
10130 * B the business interface (ie IHeader)
10131 * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
10132 */
10133 UserComponentRegistry.prototype.registerFwComponent = function (rawName, component) {
10134 var name = this.translateIfDeprecated(rawName);
10135 if (this.jsComponents[name]) {
10136 console.error("Trying to register a component that you have already registered for plain javascript: " + name);
10137 return;
10138 }
10139 this.frameworkComponents[name] = component;
10140 };
10141 /**
10142 * B the business interface (ie IHeader)
10143 * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
10144 */
10145 UserComponentRegistry.prototype.retrieve = function (rawName) {
10146 var name = this.translateIfDeprecated(rawName);
10147 var frameworkComponent = this.frameworkComponents[name];
10148 if (frameworkComponent) {
10149 return {
10150 componentFromFramework: true,
10151 component: frameworkComponent,
10152 source: RegisteredComponentSource.REGISTERED
10153 };
10154 }
10155 var jsComponent = this.jsComponents[name];
10156 if (jsComponent) {
10157 return {
10158 componentFromFramework: false,
10159 component: jsComponent,
10160 source: RegisteredComponentSource.REGISTERED
10161 };
10162 }
10163 var defaultComponent = this.agGridDefaults[name];
10164 if (defaultComponent) {
10165 return {
10166 componentFromFramework: false,
10167 component: defaultComponent,
10168 source: RegisteredComponentSource.DEFAULT
10169 };
10170 }
10171 if (Object.keys(this.agGridDefaults).indexOf(name) < 0) {
10172 console.warn("AG Grid: Looking for component [" + name + "] but it wasn't found.");
10173 }
10174 return null;
10175 };
10176 UserComponentRegistry.prototype.translateIfDeprecated = function (raw) {
10177 var deprecatedInfo = this.agDeprecatedNames[raw];
10178 if (deprecatedInfo != null) {
10179 Object(_utils_function__WEBPACK_IMPORTED_MODULE_24__["doOnce"])(function () {
10180 console.warn("ag-grid. Since v15.0 component names have been renamed to be namespaced. You should rename " + deprecatedInfo.propertyHolder + ":" + raw + " to " + deprecatedInfo.propertyHolder + ":" + deprecatedInfo.newComponentName);
10181 }, 'DEPRECATE_COMPONENT_' + raw);
10182 return deprecatedInfo.newComponentName;
10183 }
10184 return raw;
10185 };
10186 __decorate([
10187 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptions')
10188 ], UserComponentRegistry.prototype, "gridOptions", void 0);
10189 __decorate([
10190 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
10191 ], UserComponentRegistry.prototype, "init", null);
10192 UserComponentRegistry = __decorate([
10193 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('userComponentRegistry')
10194 ], UserComponentRegistry);
10195 return UserComponentRegistry;
10196}(_context_beanStub__WEBPACK_IMPORTED_MODULE_22__["BeanStub"]));
10197
10198
10199
10200/***/ }),
10201/* 39 */
10202/***/ (function(module, __webpack_exports__, __webpack_require__) {
10203
10204"use strict";
10205__webpack_require__.r(__webpack_exports__);
10206/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return TextCellEditor; });
10207/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
10208/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
10209/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
10210/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
10211/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60);
10212/**
10213 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10214 * @version v25.3.0
10215 * @link http://www.ag-grid.com/
10216 * @license MIT
10217 */
10218var __extends = (undefined && undefined.__extends) || (function () {
10219 var extendStatics = function (d, b) {
10220 extendStatics = Object.setPrototypeOf ||
10221 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10222 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10223 return extendStatics(d, b);
10224 };
10225 return function (d, b) {
10226 extendStatics(d, b);
10227 function __() { this.constructor = d; }
10228 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10229 };
10230})();
10231var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10232 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10233 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10234 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10235 return c > 3 && r && Object.defineProperty(target, key, r), r;
10236};
10237
10238
10239
10240
10241
10242var TextCellEditor = /** @class */ (function (_super) {
10243 __extends(TextCellEditor, _super);
10244 function TextCellEditor() {
10245 return _super.call(this, TextCellEditor.TEMPLATE) || this;
10246 }
10247 TextCellEditor.prototype.init = function (params) {
10248 this.params = params;
10249 var eInput = this.eInput;
10250 var startValue;
10251 // cellStartedEdit is only false if we are doing fullRow editing
10252 if (params.cellStartedEdit) {
10253 this.focusAfterAttached = true;
10254 if (params.keyPress === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].BACKSPACE || params.keyPress === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DELETE) {
10255 startValue = '';
10256 }
10257 else if (params.charPress) {
10258 startValue = params.charPress;
10259 }
10260 else {
10261 startValue = this.getStartValue(params);
10262 if (params.keyPress !== _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].F2) {
10263 this.highlightAllOnFocus = true;
10264 }
10265 }
10266 }
10267 else {
10268 this.focusAfterAttached = false;
10269 startValue = this.getStartValue(params);
10270 }
10271 if (startValue != null) {
10272 eInput.setValue(startValue, true);
10273 }
10274 this.addManagedListener(eInput.getGui(), 'keydown', function (event) {
10275 var keyCode = event.keyCode;
10276 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_UP || keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_DOWN) {
10277 event.preventDefault();
10278 }
10279 });
10280 };
10281 TextCellEditor.prototype.afterGuiAttached = function () {
10282 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
10283 var eInput = this.eInput;
10284 eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));
10285 if (!this.focusAfterAttached) {
10286 return;
10287 }
10288 // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input
10289 // to be focused before setSelectionRange will work. But it triggers a bug in Safari where
10290 // explicitly focusing then blurring an empty field will cause the parent container to scroll.
10291 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserSafari"])()) {
10292 eInput.getFocusableElement().focus();
10293 }
10294 var inputEl = eInput.getInputElement();
10295 if (this.highlightAllOnFocus) {
10296 inputEl.select();
10297 }
10298 else {
10299 // when we started editing, we want the caret at the end, not the start.
10300 // this comes into play in two scenarios: a) when user hits F2 and b)
10301 // when user hits a printable character, then on IE (and only IE) the caret
10302 // was placed after the first character, thus 'apply' would end up as 'pplea'
10303 var value = eInput.getValue();
10304 var len = (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(value) && value.length) || 0;
10305 if (len) {
10306 inputEl.setSelectionRange(len, len);
10307 }
10308 }
10309 };
10310 // gets called when tabbing trough cells and in full row edit mode
10311 TextCellEditor.prototype.focusIn = function () {
10312 var eInput = this.eInput;
10313 var focusEl = eInput.getFocusableElement();
10314 var inputEl = eInput.getInputElement();
10315 focusEl.focus();
10316 inputEl.select();
10317 };
10318 TextCellEditor.prototype.focusOut = function () {
10319 var inputEl = this.eInput.getInputElement();
10320 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserIE"])()) {
10321 inputEl.setSelectionRange(0, 0);
10322 }
10323 };
10324 TextCellEditor.prototype.getValue = function () {
10325 var eInput = this.eInput;
10326 return this.params.parseValue(eInput.getValue());
10327 };
10328 TextCellEditor.prototype.getStartValue = function (params) {
10329 var formatValue = params.useFormatter || params.column.getColDef().refData;
10330 return formatValue ? params.formatValue(params.value) : params.value;
10331 };
10332 TextCellEditor.prototype.isPopup = function () {
10333 return false;
10334 };
10335 TextCellEditor.TEMPLATE = '<div class="ag-cell-edit-wrapper"><ag-input-text-field class="ag-cell-editor" ref="eInput"></ag-input-text-field></div>';
10336 __decorate([
10337 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eInput')
10338 ], TextCellEditor.prototype, "eInput", void 0);
10339 return TextCellEditor;
10340}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
10341
10342
10343
10344/***/ }),
10345/* 40 */
10346/***/ (function(module, __webpack_exports__, __webpack_require__) {
10347
10348"use strict";
10349__webpack_require__.r(__webpack_exports__);
10350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return PopupComponent; });
10351/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
10352/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
10353/**
10354 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10355 * @version v25.3.0
10356 * @link http://www.ag-grid.com/
10357 * @license MIT
10358 */
10359var __extends = (undefined && undefined.__extends) || (function () {
10360 var extendStatics = function (d, b) {
10361 extendStatics = Object.setPrototypeOf ||
10362 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10363 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10364 return extendStatics(d, b);
10365 };
10366 return function (d, b) {
10367 extendStatics(d, b);
10368 function __() { this.constructor = d; }
10369 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10370 };
10371})();
10372
10373
10374var PopupComponent = /** @class */ (function (_super) {
10375 __extends(PopupComponent, _super);
10376 function PopupComponent() {
10377 return _super !== null && _super.apply(this, arguments) || this;
10378 }
10379 PopupComponent.prototype.isPopup = function () {
10380 return true;
10381 };
10382 PopupComponent.prototype.setParentComponent = function (container) {
10383 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(container.getGui(), 'ag-has-popup');
10384 _super.prototype.setParentComponent.call(this, container);
10385 };
10386 PopupComponent.prototype.destroy = function () {
10387 var parentComp = this.parentComponent;
10388 var hasParent = parentComp && parentComp.isAlive();
10389 if (hasParent) {
10390 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["removeCssClass"])(parentComp.getGui(), 'ag-has-popup');
10391 }
10392 _super.prototype.destroy.call(this);
10393 };
10394 return PopupComponent;
10395}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
10396
10397
10398
10399/***/ }),
10400/* 41 */
10401/***/ (function(module, __webpack_exports__, __webpack_require__) {
10402
10403"use strict";
10404__webpack_require__.r(__webpack_exports__);
10405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementGettingCreated", function() { return elementGettingCreated; });
10406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return Component; });
10407/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
10408/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
10409/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
10410/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
10411/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
10412/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
10413/* harmony import */ var _tooltipFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(58);
10414/**
10415 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10416 * @version v25.3.0
10417 * @link http://www.ag-grid.com/
10418 * @license MIT
10419 */
10420var __extends = (undefined && undefined.__extends) || (function () {
10421 var extendStatics = function (d, b) {
10422 extendStatics = Object.setPrototypeOf ||
10423 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10424 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10425 return extendStatics(d, b);
10426 };
10427 return function (d, b) {
10428 extendStatics(d, b);
10429 function __() { this.constructor = d; }
10430 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10431 };
10432})();
10433var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10434 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10435 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10436 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10437 return c > 3 && r && Object.defineProperty(target, key, r), r;
10438};
10439
10440
10441
10442
10443
10444
10445
10446var compIdSequence = new _utils__WEBPACK_IMPORTED_MODULE_2__["NumberSequence"]();
10447var elementGettingCreated;
10448var Component = /** @class */ (function (_super) {
10449 __extends(Component, _super);
10450 function Component(template) {
10451 var _this = _super.call(this) || this;
10452 _this.annotatedGuiListeners = [];
10453 // if false, then CSS class "ag-hidden" is applied, which sets "display: none"
10454 _this.displayed = true;
10455 // if false, then CSS class "ag-invisible" is applied, which sets "visibility: hidden"
10456 _this.visible = true;
10457 // unique id for this row component. this is used for getting a reference to the HTML dom.
10458 // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying
10459 // around as we create a new rowComp instance for the same row node).
10460 _this.compId = compIdSequence.next();
10461 // to minimise DOM hits, we only apply CSS classes if they have changed. as addding a CSS class that is already
10462 // there, or removing one that wasn't present, all takes CPU.
10463 _this.cssClassStates = {};
10464 if (template) {
10465 _this.setTemplate(template);
10466 }
10467 return _this;
10468 }
10469 Component.prototype.preConstructOnComponent = function () {
10470 this.usingBrowserTooltips = this.gridOptionsWrapper.isEnableBrowserTooltips();
10471 };
10472 Component.prototype.getCompId = function () {
10473 return this.compId;
10474 };
10475 Component.prototype.getTooltipParams = function () {
10476 return {
10477 value: this.tooltipText,
10478 location: 'UNKNOWN'
10479 };
10480 };
10481 Component.prototype.setTooltip = function (newTooltipText) {
10482 var _this = this;
10483 var removeTooltip = function () {
10484 if (_this.usingBrowserTooltips) {
10485 _this.getGui().removeAttribute('title');
10486 }
10487 else {
10488 _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);
10489 }
10490 };
10491 var addTooltip = function () {
10492 if (_this.usingBrowserTooltips) {
10493 _this.getGui().setAttribute('title', _this.tooltipText);
10494 }
10495 else {
10496 _this.tooltipFeature = _this.createBean(new _tooltipFeature__WEBPACK_IMPORTED_MODULE_6__["TooltipFeature"](_this));
10497 }
10498 };
10499 if (this.tooltipText != newTooltipText) {
10500 if (this.tooltipText) {
10501 removeTooltip();
10502 }
10503 if (newTooltipText != null) {
10504 this.tooltipText = newTooltipText;
10505 if (this.tooltipText) {
10506 addTooltip();
10507 }
10508 }
10509 }
10510 };
10511 // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag
10512 Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {
10513 var _this = this;
10514 // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM
10515 // which messes up the traversal order of the children.
10516 var childNodeList = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["copyNodeList"])(parentNode.childNodes);
10517 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(childNodeList, function (childNode) {
10518 if (!(childNode instanceof HTMLElement)) {
10519 return;
10520 }
10521 var childComp = _this.createComponentFromElement(childNode, function (comp) {
10522 // copy over all attributes, including css classes, so any attributes user put on the tag
10523 // wll be carried across
10524 _this.copyAttributesFromNode(childNode, comp.getGui());
10525 }, paramsMap);
10526 if (childComp) {
10527 if (childComp.addItems && childNode.children.length) {
10528 _this.createChildComponentsFromTags(childNode, paramsMap);
10529 // converting from HTMLCollection to Array
10530 var items = Array.prototype.slice.call(childNode.children);
10531 childComp.addItems(items);
10532 }
10533 // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom
10534 _this.swapComponentForNode(childComp, parentNode, childNode);
10535 }
10536 else if (childNode.childNodes) {
10537 _this.createChildComponentsFromTags(childNode, paramsMap);
10538 }
10539 });
10540 };
10541 Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {
10542 var key = element.nodeName;
10543 var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;
10544 var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);
10545 if (ComponentClass) {
10546 elementGettingCreated = element;
10547 var newComponent = new ComponentClass(componentParams);
10548 newComponent.setParentComponent(this);
10549 this.createBean(newComponent, null, afterPreCreateCallback);
10550 return newComponent;
10551 }
10552 return null;
10553 };
10554 Component.prototype.copyAttributesFromNode = function (source, dest) {
10555 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["iterateNamedNodeMap"])(source.attributes, function (name, value) { return dest.setAttribute(name, value); });
10556 };
10557 Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {
10558 var eComponent = newComponent.getGui();
10559 parentNode.replaceChild(eComponent, childNode);
10560 parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);
10561 this.addDestroyFunc(this.destroyBean.bind(this, newComponent));
10562 this.swapInComponentForQuerySelectors(newComponent, childNode);
10563 };
10564 Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {
10565 var thisNoType = this;
10566 this.iterateOverQuerySelectors(function (querySelector) {
10567 if (thisNoType[querySelector.attributeName] === childNode) {
10568 thisNoType[querySelector.attributeName] = newComponent;
10569 }
10570 });
10571 };
10572 Component.prototype.iterateOverQuerySelectors = function (action) {
10573 var thisPrototype = Object.getPrototypeOf(this);
10574 while (thisPrototype != null) {
10575 var metaData = thisPrototype.__agComponentMetaData;
10576 var currentProtoName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["getFunctionName"])(thisPrototype.constructor);
10577 if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {
10578 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(metaData[currentProtoName].querySelectors, function (querySelector) { return action(querySelector); });
10579 }
10580 thisPrototype = Object.getPrototypeOf(thisPrototype);
10581 }
10582 };
10583 Component.prototype.setTemplate = function (template, paramsMap) {
10584 var eGui = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["loadTemplate"])(template);
10585 this.setTemplateFromElement(eGui, paramsMap);
10586 };
10587 Component.prototype.setTemplateFromElement = function (element, paramsMap) {
10588 this.eGui = element;
10589 this.eGui.__agComponent = this;
10590 this.addAnnotatedGuiEventListeners();
10591 this.wireQuerySelectors();
10592 // context will not be available when user sets template in constructor
10593 if (!!this.getContext()) {
10594 this.createChildComponentsFromTags(this.getGui(), paramsMap);
10595 }
10596 };
10597 Component.prototype.createChildComponentsPreConstruct = function () {
10598 // ui exists if user sets template in constructor. when this happens, we have to wait for the context
10599 // to be autoWired first before we can create child components.
10600 if (!!this.getGui()) {
10601 this.createChildComponentsFromTags(this.getGui());
10602 }
10603 };
10604 Component.prototype.wireQuerySelectors = function () {
10605 var _this = this;
10606 if (!this.eGui) {
10607 return;
10608 }
10609 var thisNoType = this;
10610 this.iterateOverQuerySelectors(function (querySelector) {
10611 var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };
10612 // if it's a ref selector, and match is on top level component, we return
10613 // the element. otherwise no way of components putting ref=xxx on the top
10614 // level element as querySelector only looks at children.
10615 var topLevelRefMatch = querySelector.refSelector
10616 && _this.eGui.getAttribute('ref') === querySelector.refSelector;
10617 if (topLevelRefMatch) {
10618 setResult(_this.eGui);
10619 }
10620 else {
10621 // otherwise use querySelector, which looks at children
10622 var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);
10623 if (resultOfQuery) {
10624 setResult(resultOfQuery.__agComponent || resultOfQuery);
10625 }
10626 }
10627 });
10628 };
10629 Component.prototype.addAnnotatedGuiEventListeners = function () {
10630 var _this = this;
10631 this.removeAnnotatedGuiEventListeners();
10632 if (!this.eGui) {
10633 return;
10634 }
10635 var listenerMethods = this.getAgComponentMetaData('guiListenerMethods');
10636 if (!listenerMethods) {
10637 return;
10638 }
10639 if (!this.annotatedGuiListeners) {
10640 this.annotatedGuiListeners = [];
10641 }
10642 listenerMethods.forEach(function (meta) {
10643 var element = _this.getRefElement(meta.ref);
10644 if (!element) {
10645 return;
10646 }
10647 var listener = _this[meta.methodName].bind(_this);
10648 element.addEventListener(meta.eventName, listener);
10649 _this.annotatedGuiListeners.push({ eventName: meta.eventName, listener: listener, element: element });
10650 });
10651 };
10652 Component.prototype.addAnnotatedGridEventListeners = function () {
10653 var _this = this;
10654 var listenerMetas = this.getAgComponentMetaData('gridListenerMethods');
10655 if (!listenerMetas) {
10656 return;
10657 }
10658 listenerMetas.forEach(function (meta) {
10659 var listener = _this[meta.methodName].bind(_this);
10660 _this.addManagedListener(_this.eventService, meta.eventName, listener);
10661 });
10662 };
10663 Component.prototype.getAgComponentMetaData = function (key) {
10664 var res = [];
10665 var thisProto = Object.getPrototypeOf(this);
10666 while (thisProto != null) {
10667 var metaData = thisProto.__agComponentMetaData;
10668 var currentProtoName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["getFunctionName"])(thisProto.constructor);
10669 if (metaData && metaData[currentProtoName] && metaData[currentProtoName][key]) {
10670 res = res.concat(metaData[currentProtoName][key]);
10671 }
10672 thisProto = Object.getPrototypeOf(thisProto);
10673 }
10674 return res;
10675 };
10676 Component.prototype.removeAnnotatedGuiEventListeners = function () {
10677 if (!this.annotatedGuiListeners) {
10678 return;
10679 }
10680 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(this.annotatedGuiListeners, function (e) {
10681 e.element.removeEventListener(e.eventName, e.listener);
10682 });
10683 this.annotatedGuiListeners = [];
10684 };
10685 Component.prototype.getGui = function () {
10686 return this.eGui;
10687 };
10688 Component.prototype.getFocusableElement = function () {
10689 return this.eGui;
10690 };
10691 Component.prototype.setParentComponent = function (component) {
10692 this.parentComponent = component;
10693 };
10694 Component.prototype.getParentComponent = function () {
10695 return this.parentComponent;
10696 };
10697 // this method is for older code, that wants to provide the gui element,
10698 // it is not intended for this to be in ag-Stack
10699 Component.prototype.setGui = function (eGui) {
10700 this.eGui = eGui;
10701 };
10702 Component.prototype.queryForHtmlElement = function (cssSelector) {
10703 return this.eGui.querySelector(cssSelector);
10704 };
10705 Component.prototype.queryForHtmlInputElement = function (cssSelector) {
10706 return this.eGui.querySelector(cssSelector);
10707 };
10708 Component.prototype.appendChild = function (newChild, container) {
10709 if (!container) {
10710 container = this.eGui;
10711 }
10712 if (newChild == null) {
10713 return;
10714 }
10715 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["isNodeOrElement"])(newChild)) {
10716 container.appendChild(newChild);
10717 }
10718 else {
10719 var childComponent = newChild;
10720 container.appendChild(childComponent.getGui());
10721 this.addDestroyFunc(this.destroyBean.bind(this, childComponent));
10722 }
10723 };
10724 Component.prototype.isDisplayed = function () {
10725 return this.displayed;
10726 };
10727 Component.prototype.setVisible = function (visible) {
10728 if (visible !== this.visible) {
10729 this.visible = visible;
10730 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setVisible"])(this.eGui, visible);
10731 }
10732 };
10733 Component.prototype.setDisplayed = function (displayed) {
10734 if (displayed !== this.displayed) {
10735 this.displayed = displayed;
10736 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eGui, displayed);
10737 var event_1 = {
10738 type: Component.EVENT_DISPLAYED_CHANGED,
10739 visible: this.displayed
10740 };
10741 this.dispatchEvent(event_1);
10742 }
10743 };
10744 Component.prototype.destroy = function () {
10745 this.removeAnnotatedGuiEventListeners();
10746 if (this.tooltipFeature) {
10747 this.tooltipFeature = this.destroyBean(this.tooltipFeature);
10748 }
10749 _super.prototype.destroy.call(this);
10750 };
10751 Component.prototype.addGuiEventListener = function (event, listener) {
10752 var _this = this;
10753 this.eGui.addEventListener(event, listener);
10754 this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });
10755 };
10756 Component.prototype.addCssClass = function (className) {
10757 var updateNeeded = this.cssClassStates[className] !== true;
10758 if (updateNeeded) {
10759 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.eGui, className);
10760 this.cssClassStates[className] = true;
10761 }
10762 };
10763 Component.prototype.removeCssClass = function (className) {
10764 var updateNeeded = this.cssClassStates[className] !== false;
10765 if (updateNeeded) {
10766 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["removeCssClass"])(this.eGui, className);
10767 this.cssClassStates[className] = false;
10768 }
10769 };
10770 Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {
10771 var updateNeeded = this.cssClassStates[className] !== addOrRemove;
10772 if (updateNeeded) {
10773 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eGui, className, addOrRemove);
10774 this.cssClassStates[className] = addOrRemove;
10775 }
10776 };
10777 Component.prototype.getAttribute = function (key) {
10778 var eGui = this.eGui;
10779 return eGui ? eGui.getAttribute(key) : null;
10780 };
10781 Component.prototype.getRefElement = function (refName) {
10782 return this.queryForHtmlElement("[ref=\"" + refName + "\"]");
10783 };
10784 Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';
10785 __decorate([
10786 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('agStackComponentsRegistry')
10787 ], Component.prototype, "agStackComponentsRegistry", void 0);
10788 __decorate([
10789 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreConstruct"]
10790 ], Component.prototype, "preConstructOnComponent", null);
10791 __decorate([
10792 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreConstruct"]
10793 ], Component.prototype, "createChildComponentsPreConstruct", null);
10794 __decorate([
10795 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
10796 ], Component.prototype, "addAnnotatedGridEventListeners", null);
10797 return Component;
10798}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
10799
10800
10801
10802/***/ }),
10803/* 42 */
10804/***/ (function(module, __webpack_exports__, __webpack_require__) {
10805
10806"use strict";
10807__webpack_require__.r(__webpack_exports__);
10808/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43);
10809/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return _color__WEBPACK_IMPORTED_MODULE_0__["Color"]; });
10810
10811/* harmony import */ var _csv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44);
10812/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return _csv__WEBPACK_IMPORTED_MODULE_1__["stringToArray"]; });
10813
10814/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
10815/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__["_"]; });
10816
10817/* harmony import */ var _numberSequence__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55);
10818/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _numberSequence__WEBPACK_IMPORTED_MODULE_3__["NumberSequence"]; });
10819
10820/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56);
10821/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _promise__WEBPACK_IMPORTED_MODULE_4__["AgPromiseStatus"]; });
10822
10823/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _promise__WEBPACK_IMPORTED_MODULE_4__["AgPromise"]; });
10824
10825/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57);
10826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _timer__WEBPACK_IMPORTED_MODULE_5__["Timer"]; });
10827
10828/**
10829 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10830 * @version v25.3.0
10831 * @link http://www.ag-grid.com/
10832 * @license MIT
10833 */
10834
10835
10836
10837
10838
10839
10840
10841
10842/***/ }),
10843/* 43 */
10844/***/ (function(module, __webpack_exports__, __webpack_require__) {
10845
10846"use strict";
10847__webpack_require__.r(__webpack_exports__);
10848/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; });
10849/**
10850 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10851 * @version v25.3.0
10852 * @link http://www.ag-grid.com/
10853 * @license MIT
10854 */
10855var Color = /** @class */ (function () {
10856 /**
10857 * Every color component should be in the [0, 1] range.
10858 * Some easing functions (such as elastic easing) can overshoot the target value by some amount.
10859 * So, when animating colors, if the source or target color components are already near
10860 * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color
10861 * component value to end up outside of that range mid-animation. For this reason the constructor
10862 * performs range checking/constraining.
10863 * @param r Red component.
10864 * @param g Green component.
10865 * @param b Blue component.
10866 * @param a Alpha (opacity) component.
10867 */
10868 function Color(r, g, b, a) {
10869 if (a === void 0) { a = 1; }
10870 // NaN is treated as 0.
10871 this.r = Math.min(1, Math.max(0, r || 0));
10872 this.g = Math.min(1, Math.max(0, g || 0));
10873 this.b = Math.min(1, Math.max(0, b || 0));
10874 this.a = Math.min(1, Math.max(0, a || 0));
10875 }
10876 /**
10877 * The given string can be in one of the following formats:
10878 * - #rgb
10879 * - #rrggbb
10880 * - rgb(r, g, b)
10881 * - rgba(r, g, b, a)
10882 * - CSS color name such as 'white', 'orange', 'cyan', etc.
10883 * @param str
10884 */
10885 Color.fromString = function (str) {
10886 // hexadecimal notation
10887 if (str.indexOf('#') >= 0) { // there can be some leading whitespace
10888 return Color.fromHexString(str);
10889 }
10890 // color name
10891 var hex = Color.nameToHex[str];
10892 if (hex) {
10893 return Color.fromHexString(hex);
10894 }
10895 // rgb(a) notation
10896 if (str.indexOf('rgb') >= 0) {
10897 return Color.fromRgbaString(str);
10898 }
10899 throw new Error("Invalid color string: '" + str + "'");
10900 };
10901 // Using separate RegExp for the short hex notation because strings like `#abcd`
10902 // are matched as ['#abcd', 'ab', 'c', 'd', undefined] when the `{1,2}` quantifier is used.
10903 Color.fromHexString = function (str) {
10904 var values = str.match(Color.hexRe);
10905 if (values) {
10906 var r = parseInt(values[1], 16);
10907 var g = parseInt(values[2], 16);
10908 var b = parseInt(values[3], 16);
10909 var a = values[4] !== undefined ? parseInt(values[4], 16) : 255;
10910 return new Color(r / 255, g / 255, b / 255, a / 255);
10911 }
10912 values = str.match(Color.shortHexRe);
10913 if (values) {
10914 var r = parseInt(values[1], 16);
10915 var g = parseInt(values[2], 16);
10916 var b = parseInt(values[3], 16);
10917 var a = values[4] !== undefined ? parseInt(values[4], 16) : 15;
10918 r += r * 16;
10919 g += g * 16;
10920 b += b * 16;
10921 a += a * 16;
10922 return new Color(r / 255, g / 255, b / 255, a / 255);
10923 }
10924 throw new Error("Malformed hexadecimal color string: '" + str + "'");
10925 };
10926 Color.fromRgbaString = function (str) {
10927 var values = str.match(Color.rgbRe);
10928 if (values) {
10929 return new Color(+values[1] / 255, +values[2] / 255, +values[3] / 255);
10930 }
10931 values = str.match(Color.rgbaRe);
10932 if (values) {
10933 return new Color(+values[1] / 255, +values[2] / 255, +values[3] / 255, +values[4]);
10934 }
10935 throw new Error("Malformed rgb/rgba color string: '" + str + "'");
10936 };
10937 Color.fromArray = function (arr) {
10938 if (arr.length === 4) {
10939 return new Color(arr[0], arr[1], arr[2], arr[3]);
10940 }
10941 if (arr.length === 3) {
10942 return new Color(arr[0], arr[1], arr[2]);
10943 }
10944 throw new Error('The given array should contain 3 or 4 color components (numbers).');
10945 };
10946 /**
10947 * Creates an instance of the Color class from the given HSB(A) components.
10948 * @param h Hue in the [0, 360) range.
10949 * @param s Saturation in the [0, 1] range.
10950 * @param b Brightness in the [0, 1] range.
10951 * @param alpha Opacity in the [0, 1] range. Defaults to 1 (completely opaque).
10952 */
10953 Color.fromHSB = function (h, s, b, alpha) {
10954 if (alpha === void 0) { alpha = 1; }
10955 var rgb = Color.HSBtoRGB(h, s, b);
10956 return new Color(rgb[0], rgb[1], rgb[2], alpha);
10957 };
10958 Color.padHex = function (str) {
10959 // Can't use `padStart(2, '0')` here because of IE.
10960 return str.length === 1 ? '0' + str : str;
10961 };
10962 Color.prototype.toHexString = function () {
10963 var hex = '#'
10964 + Color.padHex(Math.round(this.r * 255).toString(16))
10965 + Color.padHex(Math.round(this.g * 255).toString(16))
10966 + Color.padHex(Math.round(this.b * 255).toString(16));
10967 if (this.a < 1) {
10968 hex += Color.padHex(Math.round(this.a * 255).toString(16));
10969 }
10970 return hex;
10971 };
10972 Color.prototype.toRgbaString = function (fractionDigits) {
10973 if (fractionDigits === void 0) { fractionDigits = 3; }
10974 var components = [
10975 Math.round(this.r * 255),
10976 Math.round(this.g * 255),
10977 Math.round(this.b * 255)
10978 ];
10979 var k = Math.pow(10, fractionDigits);
10980 if (this.a !== 1) {
10981 components.push(Math.round(this.a * k) / k);
10982 return "rgba(" + components.join(', ') + ")";
10983 }
10984 return "rgb(" + components.join(', ') + ")";
10985 };
10986 Color.prototype.toString = function () {
10987 if (this.a === 1) {
10988 return this.toHexString();
10989 }
10990 return this.toRgbaString();
10991 };
10992 Color.prototype.toHSB = function () {
10993 return Color.RGBtoHSB(this.r, this.g, this.b);
10994 };
10995 /**
10996 * Converts the given RGB triple to an array of HSB (HSV) components.
10997 * The hue component will be `NaN` for achromatic colors.
10998 */
10999 Color.RGBtoHSB = function (r, g, b) {
11000 var min = Math.min(r, g, b);
11001 var max = Math.max(r, g, b);
11002 var S = max !== 0 ? (max - min) / max : 0;
11003 var H = NaN;
11004 // min == max, means all components are the same
11005 // and the color is a shade of gray with no hue (H is NaN)
11006 if (min !== max) {
11007 var delta = max - min;
11008 var rc = (max - r) / delta;
11009 var gc = (max - g) / delta;
11010 var bc = (max - b) / delta;
11011 if (r === max) {
11012 H = bc - gc;
11013 }
11014 else if (g === max) {
11015 H = 2.0 + rc - bc;
11016 }
11017 else {
11018 H = 4.0 + gc - rc;
11019 }
11020 H /= 6.0;
11021 if (H < 0) {
11022 H = H + 1.0;
11023 }
11024 }
11025 return [H * 360, S, max];
11026 };
11027 /**
11028 * Converts the given HSB (HSV) triple to an array of RGB components.
11029 */
11030 Color.HSBtoRGB = function (H, S, B) {
11031 if (isNaN(H)) {
11032 H = 0;
11033 }
11034 H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]
11035 var r = 0;
11036 var g = 0;
11037 var b = 0;
11038 if (S === 0) {
11039 r = g = b = B;
11040 }
11041 else {
11042 var h = (H - Math.floor(H)) * 6;
11043 var f = h - Math.floor(h);
11044 var p = B * (1 - S);
11045 var q = B * (1 - S * f);
11046 var t = B * (1 - (S * (1 - f)));
11047 switch (h >> 0) { // discard the floating point part of the number
11048 case 0:
11049 r = B;
11050 g = t;
11051 b = p;
11052 break;
11053 case 1:
11054 r = q;
11055 g = B;
11056 b = p;
11057 break;
11058 case 2:
11059 r = p;
11060 g = B;
11061 b = t;
11062 break;
11063 case 3:
11064 r = p;
11065 g = q;
11066 b = B;
11067 break;
11068 case 4:
11069 r = t;
11070 g = p;
11071 b = B;
11072 break;
11073 case 5:
11074 r = B;
11075 g = p;
11076 b = q;
11077 break;
11078 }
11079 }
11080 return [r, g, b];
11081 };
11082 Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {
11083 var hsb = Color.RGBtoHSB(this.r, this.g, this.b);
11084 var b = hsb[2];
11085 if (b == 0 && brightnessFactor > 1.0) {
11086 b = 0.05;
11087 }
11088 var h = (((hsb[0] + hueShift) % 360) + 360) % 360;
11089 var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);
11090 b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);
11091 var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);
11092 var rgba = Color.HSBtoRGB(h, s, b);
11093 rgba.push(a);
11094 return Color.fromArray(rgba);
11095 };
11096 Color.prototype.brighter = function () {
11097 return this.derive(0, 1.0, 1.0 / 0.7, 1.0);
11098 };
11099 Color.prototype.darker = function () {
11100 return this.derive(0, 1.0, 0.7, 1.0);
11101 };
11102 // See https://drafts.csswg.org/css-color/#hex-notation
11103 Color.hexRe = /\s*#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?\s*$/;
11104 Color.shortHexRe = /\s*#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])?\s*$/;
11105 Color.rgbRe = /\s*rgb\((\d+),\s*(\d+),\s*(\d+)\)\s*/;
11106 Color.rgbaRe = /\s*rgba\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)\s*/;
11107 /**
11108 * CSS Color Module Level 4:
11109 * https://drafts.csswg.org/css-color/#named-colors
11110 */
11111 Color.nameToHex = Object.freeze({
11112 aliceblue: '#F0F8FF',
11113 antiquewhite: '#FAEBD7',
11114 aqua: '#00FFFF',
11115 aquamarine: '#7FFFD4',
11116 azure: '#F0FFFF',
11117 beige: '#F5F5DC',
11118 bisque: '#FFE4C4',
11119 black: '#000000',
11120 blanchedalmond: '#FFEBCD',
11121 blue: '#0000FF',
11122 blueviolet: '#8A2BE2',
11123 brown: '#A52A2A',
11124 burlywood: '#DEB887',
11125 cadetblue: '#5F9EA0',
11126 chartreuse: '#7FFF00',
11127 chocolate: '#D2691E',
11128 coral: '#FF7F50',
11129 cornflowerblue: '#6495ED',
11130 cornsilk: '#FFF8DC',
11131 crimson: '#DC143C',
11132 cyan: '#00FFFF',
11133 darkblue: '#00008B',
11134 darkcyan: '#008B8B',
11135 darkgoldenrod: '#B8860B',
11136 darkgray: '#A9A9A9',
11137 darkgreen: '#006400',
11138 darkgrey: '#A9A9A9',
11139 darkkhaki: '#BDB76B',
11140 darkmagenta: '#8B008B',
11141 darkolivegreen: '#556B2F',
11142 darkorange: '#FF8C00',
11143 darkorchid: '#9932CC',
11144 darkred: '#8B0000',
11145 darksalmon: '#E9967A',
11146 darkseagreen: '#8FBC8F',
11147 darkslateblue: '#483D8B',
11148 darkslategray: '#2F4F4F',
11149 darkslategrey: '#2F4F4F',
11150 darkturquoise: '#00CED1',
11151 darkviolet: '#9400D3',
11152 deeppink: '#FF1493',
11153 deepskyblue: '#00BFFF',
11154 dimgray: '#696969',
11155 dimgrey: '#696969',
11156 dodgerblue: '#1E90FF',
11157 firebrick: '#B22222',
11158 floralwhite: '#FFFAF0',
11159 forestgreen: '#228B22',
11160 fuchsia: '#FF00FF',
11161 gainsboro: '#DCDCDC',
11162 ghostwhite: '#F8F8FF',
11163 gold: '#FFD700',
11164 goldenrod: '#DAA520',
11165 gray: '#808080',
11166 green: '#008000',
11167 greenyellow: '#ADFF2F',
11168 grey: '#808080',
11169 honeydew: '#F0FFF0',
11170 hotpink: '#FF69B4',
11171 indianred: '#CD5C5C',
11172 indigo: '#4B0082',
11173 ivory: '#FFFFF0',
11174 khaki: '#F0E68C',
11175 lavender: '#E6E6FA',
11176 lavenderblush: '#FFF0F5',
11177 lawngreen: '#7CFC00',
11178 lemonchiffon: '#FFFACD',
11179 lightblue: '#ADD8E6',
11180 lightcoral: '#F08080',
11181 lightcyan: '#E0FFFF',
11182 lightgoldenrodyellow: '#FAFAD2',
11183 lightgray: '#D3D3D3',
11184 lightgreen: '#90EE90',
11185 lightgrey: '#D3D3D3',
11186 lightpink: '#FFB6C1',
11187 lightsalmon: '#FFA07A',
11188 lightseagreen: '#20B2AA',
11189 lightskyblue: '#87CEFA',
11190 lightslategray: '#778899',
11191 lightslategrey: '#778899',
11192 lightsteelblue: '#B0C4DE',
11193 lightyellow: '#FFFFE0',
11194 lime: '#00FF00',
11195 limegreen: '#32CD32',
11196 linen: '#FAF0E6',
11197 magenta: '#FF00FF',
11198 maroon: '#800000',
11199 mediumaquamarine: '#66CDAA',
11200 mediumblue: '#0000CD',
11201 mediumorchid: '#BA55D3',
11202 mediumpurple: '#9370DB',
11203 mediumseagreen: '#3CB371',
11204 mediumslateblue: '#7B68EE',
11205 mediumspringgreen: '#00FA9A',
11206 mediumturquoise: '#48D1CC',
11207 mediumvioletred: '#C71585',
11208 midnightblue: '#191970',
11209 mintcream: '#F5FFFA',
11210 mistyrose: '#FFE4E1',
11211 moccasin: '#FFE4B5',
11212 navajowhite: '#FFDEAD',
11213 navy: '#000080',
11214 oldlace: '#FDF5E6',
11215 olive: '#808000',
11216 olivedrab: '#6B8E23',
11217 orange: '#FFA500',
11218 orangered: '#FF4500',
11219 orchid: '#DA70D6',
11220 palegoldenrod: '#EEE8AA',
11221 palegreen: '#98FB98',
11222 paleturquoise: '#AFEEEE',
11223 palevioletred: '#DB7093',
11224 papayawhip: '#FFEFD5',
11225 peachpuff: '#FFDAB9',
11226 peru: '#CD853F',
11227 pink: '#FFC0CB',
11228 plum: '#DDA0DD',
11229 powderblue: '#B0E0E6',
11230 purple: '#800080',
11231 rebeccapurple: '#663399',
11232 red: '#FF0000',
11233 rosybrown: '#BC8F8F',
11234 royalblue: '#4169E1',
11235 saddlebrown: '#8B4513',
11236 salmon: '#FA8072',
11237 sandybrown: '#F4A460',
11238 seagreen: '#2E8B57',
11239 seashell: '#FFF5EE',
11240 sienna: '#A0522D',
11241 silver: '#C0C0C0',
11242 skyblue: '#87CEEB',
11243 slateblue: '#6A5ACD',
11244 slategray: '#708090',
11245 slategrey: '#708090',
11246 snow: '#FFFAFA',
11247 springgreen: '#00FF7F',
11248 steelblue: '#4682B4',
11249 tan: '#D2B48C',
11250 teal: '#008080',
11251 thistle: '#D8BFD8',
11252 tomato: '#FF6347',
11253 turquoise: '#40E0D0',
11254 violet: '#EE82EE',
11255 wheat: '#F5DEB3',
11256 white: '#FFFFFF',
11257 whitesmoke: '#F5F5F5',
11258 yellow: '#FFFF00',
11259 yellowgreen: '#9ACD32'
11260 });
11261 return Color;
11262}());
11263
11264
11265
11266/***/ }),
11267/* 44 */
11268/***/ (function(module, __webpack_exports__, __webpack_require__) {
11269
11270"use strict";
11271__webpack_require__.r(__webpack_exports__);
11272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return stringToArray; });
11273/**
11274 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11275 * @version v25.3.0
11276 * @link http://www.ag-grid.com/
11277 * @license MIT
11278 */
11279// Based on https://stackoverflow.com/a/14991797
11280// This will parse a delimited string into an array of arrays.
11281function stringToArray(strData, delimiter) {
11282 if (delimiter === void 0) { delimiter = ','; }
11283 var data = [];
11284 var isNewline = function (char) { return char === '\r' || char === '\n'; };
11285 var insideQuotedField = false;
11286 if (strData === '') {
11287 return [['']];
11288 }
11289 var _loop_1 = function (row, column, position) {
11290 var previousChar = strData[position - 1];
11291 var currentChar = strData[position];
11292 var nextChar = strData[position + 1];
11293 var ensureDataExists = function () {
11294 if (!data[row]) {
11295 // create row if it doesn't exist
11296 data[row] = [];
11297 }
11298 if (!data[row][column]) {
11299 // create column if it doesn't exist
11300 data[row][column] = '';
11301 }
11302 };
11303 ensureDataExists();
11304 if (currentChar === '"') {
11305 if (insideQuotedField) {
11306 if (nextChar === '"') {
11307 // unescape double quote
11308 data[row][column] += '"';
11309 position++;
11310 }
11311 else {
11312 // exit quoted field
11313 insideQuotedField = false;
11314 }
11315 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11316 }
11317 else if (previousChar === undefined || previousChar === delimiter || isNewline(previousChar)) {
11318 // enter quoted field
11319 insideQuotedField = true;
11320 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11321 }
11322 }
11323 if (!insideQuotedField) {
11324 if (currentChar === delimiter) {
11325 // move to next column
11326 column++;
11327 ensureDataExists();
11328 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11329 }
11330 else if (isNewline(currentChar)) {
11331 // move to next row
11332 column = 0;
11333 row++;
11334 ensureDataExists();
11335 if (currentChar === '\r' && nextChar === '\n') {
11336 // skip over second newline character if it exists
11337 position++;
11338 }
11339 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11340 }
11341 }
11342 // add current character to current column
11343 data[row][column] += currentChar;
11344 out_row_1 = row;
11345 out_column_1 = column;
11346 out_position_1 = position;
11347 };
11348 var out_row_1, out_column_1, out_position_1;
11349 // iterate over each character, keep track of current row and column (of the returned array)
11350 for (var row = 0, column = 0, position = 0; position < strData.length; position++) {
11351 _loop_1(row, column, position);
11352 row = out_row_1;
11353 column = out_column_1;
11354 position = out_position_1;
11355 }
11356 return data;
11357}
11358
11359
11360/***/ }),
11361/* 45 */
11362/***/ (function(module, __webpack_exports__, __webpack_require__) {
11363
11364"use strict";
11365__webpack_require__.r(__webpack_exports__);
11366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _; });
11367/* harmony import */ var _general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46);
11368/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47);
11369/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11370/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
11371/* harmony import */ var _csv__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44);
11372/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
11373/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
11374/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21);
11375/* harmony import */ var _function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15);
11376/* harmony import */ var _fuzzyMatch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49);
11377/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(7);
11378/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50);
11379/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(51);
11380/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(27);
11381/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(52);
11382/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29);
11383/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(13);
11384/* harmony import */ var _rowNode__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53);
11385/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(54);
11386/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(26);
11387/**
11388 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11389 * @version v25.3.0
11390 * @link http://www.ag-grid.com/
11391 * @license MIT
11392 */
11393var __assign = (undefined && undefined.__assign) || function () {
11394 __assign = Object.assign || function(t) {
11395 for (var s, i = 1, n = arguments.length; i < n; i++) {
11396 s = arguments[i];
11397 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11398 t[p] = s[p];
11399 }
11400 return t;
11401 };
11402 return __assign.apply(this, arguments);
11403};
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424var utils = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, _general__WEBPACK_IMPORTED_MODULE_0__), _aria__WEBPACK_IMPORTED_MODULE_1__), _array__WEBPACK_IMPORTED_MODULE_2__), _browser__WEBPACK_IMPORTED_MODULE_3__), _csv__WEBPACK_IMPORTED_MODULE_4__), _date__WEBPACK_IMPORTED_MODULE_5__), _dom__WEBPACK_IMPORTED_MODULE_6__), _event__WEBPACK_IMPORTED_MODULE_7__), _function__WEBPACK_IMPORTED_MODULE_8__), _fuzzyMatch__WEBPACK_IMPORTED_MODULE_9__), _generic__WEBPACK_IMPORTED_MODULE_10__), _icon__WEBPACK_IMPORTED_MODULE_11__), _keyboard__WEBPACK_IMPORTED_MODULE_12__), _map__WEBPACK_IMPORTED_MODULE_13__), _mouse__WEBPACK_IMPORTED_MODULE_14__), _number__WEBPACK_IMPORTED_MODULE_15__), _object__WEBPACK_IMPORTED_MODULE_16__), _rowNode__WEBPACK_IMPORTED_MODULE_17__), _set__WEBPACK_IMPORTED_MODULE_18__), _string__WEBPACK_IMPORTED_MODULE_19__);
11425var _ = utils;
11426
11427
11428/***/ }),
11429/* 46 */
11430/***/ (function(module, __webpack_exports__, __webpack_require__) {
11431
11432"use strict";
11433__webpack_require__.r(__webpack_exports__);
11434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNameOfClass", function() { return getNameOfClass; });
11435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findLineByLeastSquares", function() { return findLineByLeastSquares; });
11436/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssStyleObjectToMarkup", function() { return cssStyleObjectToMarkup; });
11437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "message", function() { return message; });
11438/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindCellRendererToHtmlElement", function() { return bindCellRendererToHtmlElement; });
11439/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
11440/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
11441/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
11442/**
11443 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11444 * @version v25.3.0
11445 * @link http://www.ag-grid.com/
11446 * @license MIT
11447 */
11448
11449
11450
11451/** @deprecated */
11452function getNameOfClass(theClass) {
11453 var funcNameRegex = /function (.{1,})\(/;
11454 var funcAsString = theClass.toString();
11455 var results = funcNameRegex.exec(funcAsString);
11456 return results && results.length > 1 ? results[1] : "";
11457}
11458function findLineByLeastSquares(values) {
11459 var len = values.length;
11460 var maxDecimals = 0;
11461 if (len <= 1) {
11462 return values;
11463 }
11464 for (var i = 0; i < values.length; i++) {
11465 var value = values[i];
11466 if (Math.floor(value) === value) {
11467 continue;
11468 }
11469 maxDecimals = Math.max(maxDecimals, value.toString().split('.')[1].length);
11470 }
11471 var sum_x = 0;
11472 var sum_y = 0;
11473 var sum_xy = 0;
11474 var sum_xx = 0;
11475 var y = 0;
11476 for (var x = 0; x < len; x++) {
11477 y = values[x];
11478 sum_x += x;
11479 sum_y += y;
11480 sum_xx += x * x;
11481 sum_xy += x * y;
11482 }
11483 var m = (len * sum_xy - sum_x * sum_y) / (len * sum_xx - sum_x * sum_x);
11484 var b = (sum_y / len) - (m * sum_x) / len;
11485 var result = [];
11486 for (var x = 0; x <= len; x++) {
11487 result.push(parseFloat((x * m + b).toFixed(maxDecimals)));
11488 }
11489 return result;
11490}
11491/**
11492 * Converts a CSS object into string
11493 * @param {Object} stylesToUse an object eg: {color: 'black', top: '25px'}
11494 * @return {string} A string like "color: black; top: 25px;" for html
11495 */
11496function cssStyleObjectToMarkup(stylesToUse) {
11497 if (!stylesToUse) {
11498 return '';
11499 }
11500 var resParts = [];
11501 Object(_object__WEBPACK_IMPORTED_MODULE_2__["iterateObject"])(stylesToUse, function (styleKey, styleValue) {
11502 var styleKeyDashed = Object(_string__WEBPACK_IMPORTED_MODULE_1__["camelCaseToHyphen"])(styleKey);
11503 resParts.push(styleKeyDashed + ": " + styleValue + ";");
11504 });
11505 return resParts.join(' ');
11506}
11507/**
11508 * Displays a message to the browser. this is useful in iPad, where you can't easily see the console.
11509 * so the javascript code can use this to give feedback. this is NOT intended to be called in production.
11510 * it is intended the AG Grid developer calls this to troubleshoot, but then takes out the calls before
11511 * checking in.
11512 * @param {string} msg
11513 */
11514function message(msg) {
11515 var eMessage = document.createElement('div');
11516 var eBox = document.querySelector('#__ag__message');
11517 eMessage.innerHTML = msg;
11518 if (!eBox) {
11519 var template = "<div id=\"__ag__message\" style=\"display: inline-block; position: absolute; top: 0px; left: 0px; color: white; background-color: black; z-index: 20; padding: 2px; border: 1px solid darkred; height: 200px; overflow-y: auto;\"></div>";
11520 eBox = Object(_dom__WEBPACK_IMPORTED_MODULE_0__["loadTemplate"])(template);
11521 if (document.body) {
11522 document.body.appendChild(eBox);
11523 }
11524 }
11525 eBox.insertBefore(eMessage, eBox.children[0]);
11526}
11527/**
11528 * cell renderers are used in a few places. they bind to dom slightly differently to other cell renderes as they
11529 * can return back strings (instead of html elemnt) in the getGui() method. common code placed here to handle that.
11530 * @param {AgPromise<ICellRendererComp>} cellRendererPromise
11531 * @param {HTMLElement} eTarget
11532 */
11533function bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {
11534 cellRendererPromise.then(function (cellRenderer) {
11535 var gui = cellRenderer.getGui();
11536 if (gui != null) {
11537 if (typeof gui === 'object') {
11538 eTarget.appendChild(gui);
11539 }
11540 else {
11541 eTarget.innerHTML = gui;
11542 }
11543 }
11544 });
11545}
11546
11547
11548/***/ }),
11549/* 47 */
11550/***/ (function(module, __webpack_exports__, __webpack_require__) {
11551
11552"use strict";
11553__webpack_require__.r(__webpack_exports__);
11554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaSortState", function() { return getAriaSortState; });
11555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaLevel", function() { return getAriaLevel; });
11556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaPosInSet", function() { return getAriaPosInSet; });
11557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaDescribedBy", function() { return getAriaDescribedBy; });
11558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLabel", function() { return setAriaLabel; });
11559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLabelledBy", function() { return setAriaLabelledBy; });
11560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDescribedBy", function() { return setAriaDescribedBy; });
11561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLevel", function() { return setAriaLevel; });
11562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDisabled", function() { return setAriaDisabled; });
11563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaExpanded", function() { return setAriaExpanded; });
11564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAriaExpanded", function() { return removeAriaExpanded; });
11565/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSetSize", function() { return setAriaSetSize; });
11566/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaPosInSet", function() { return setAriaPosInSet; });
11567/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaMultiSelectable", function() { return setAriaMultiSelectable; });
11568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRowCount", function() { return setAriaRowCount; });
11569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRowIndex", function() { return setAriaRowIndex; });
11570/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColCount", function() { return setAriaColCount; });
11571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColIndex", function() { return setAriaColIndex; });
11572/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColSpan", function() { return setAriaColSpan; });
11573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSort", function() { return setAriaSort; });
11574/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAriaSort", function() { return removeAriaSort; });
11575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSelected", function() { return setAriaSelected; });
11576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaChecked", function() { return setAriaChecked; });
11577/**
11578 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11579 * @version v25.3.0
11580 * @link http://www.ag-grid.com/
11581 * @license MIT
11582 */
11583// ARIA HELPER FUNCTIONS
11584function setAriaAttribute(element, attribute, value) {
11585 element.setAttribute(ariaAttributeName(attribute), value.toString());
11586}
11587function removeAriaAttribute(element, attribute) {
11588 element.removeAttribute(ariaAttributeName(attribute));
11589}
11590function ariaAttributeName(attribute) {
11591 return "aria-" + attribute;
11592}
11593function getAriaSortState(column) {
11594 var sort;
11595 if (column.isSortAscending()) {
11596 sort = 'ascending';
11597 }
11598 else if (column.isSortDescending()) {
11599 sort = 'descending';
11600 }
11601 else {
11602 sort = 'none';
11603 }
11604 return sort;
11605}
11606// ARIA ATTRIBUTE GETTERS
11607function getAriaLevel(element) {
11608 return parseInt(element.getAttribute('aria-level'), 10);
11609}
11610function getAriaPosInSet(element) {
11611 return parseInt(element.getAttribute('aria-posinset'), 10);
11612}
11613function getAriaDescribedBy(element) {
11614 return element.getAttribute('aria-describedby') || '';
11615}
11616// ARIA ATTRIBUTE SETTERS
11617function setAriaLabel(element, label) {
11618 setAriaAttribute(element, 'label', label);
11619}
11620function setAriaLabelledBy(element, labelledBy) {
11621 setAriaAttribute(element, 'labelledby', labelledBy);
11622}
11623function setAriaDescribedBy(element, describedby) {
11624 setAriaAttribute(element, 'describedby', describedby);
11625}
11626function setAriaLevel(element, level) {
11627 setAriaAttribute(element, 'level', level);
11628}
11629function setAriaDisabled(element, disabled) {
11630 setAriaAttribute(element, 'disabled', disabled);
11631}
11632function setAriaExpanded(element, expanded) {
11633 setAriaAttribute(element, 'expanded', expanded);
11634}
11635function removeAriaExpanded(element) {
11636 removeAriaAttribute(element, 'expanded');
11637}
11638function setAriaSetSize(element, setsize) {
11639 setAriaAttribute(element, 'setsize', setsize);
11640}
11641function setAriaPosInSet(element, position) {
11642 setAriaAttribute(element, 'posinset', position);
11643}
11644function setAriaMultiSelectable(element, multiSelectable) {
11645 setAriaAttribute(element, 'multiselectable', multiSelectable);
11646}
11647function setAriaRowCount(element, rowCount) {
11648 setAriaAttribute(element, 'rowcount', rowCount);
11649}
11650function setAriaRowIndex(element, rowIndex) {
11651 setAriaAttribute(element, 'rowindex', rowIndex);
11652}
11653function setAriaColCount(element, colCount) {
11654 setAriaAttribute(element, 'colcount', colCount);
11655}
11656function setAriaColIndex(element, colIndex) {
11657 setAriaAttribute(element, 'colindex', colIndex);
11658}
11659function setAriaColSpan(element, colSpan) {
11660 setAriaAttribute(element, 'colspan', colSpan);
11661}
11662function setAriaSort(element, sort) {
11663 setAriaAttribute(element, 'sort', sort);
11664}
11665function removeAriaSort(element) {
11666 removeAriaAttribute(element, 'sort');
11667}
11668function setAriaSelected(element, selected) {
11669 var attributeName = 'selected';
11670 if (selected) {
11671 setAriaAttribute(element, attributeName, selected);
11672 }
11673 else {
11674 removeAriaAttribute(element, attributeName);
11675 }
11676}
11677function setAriaChecked(element, checked) {
11678 setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);
11679}
11680
11681
11682/***/ }),
11683/* 48 */
11684/***/ (function(module, __webpack_exports__, __webpack_require__) {
11685
11686"use strict";
11687__webpack_require__.r(__webpack_exports__);
11688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serialiseDate", function() { return serialiseDate; });
11689/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDateTimeFromString", function() { return parseDateTimeFromString; });
11690/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29);
11691/**
11692 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11693 * @version v25.3.0
11694 * @link http://www.ag-grid.com/
11695 * @license MIT
11696 */
11697
11698/**
11699 * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.
11700 * An alternative separator can be provided to be used instead of hyphens.
11701 * @param date The date to serialise
11702 * @param includeTime Whether to include the time in the serialised string
11703 * @param separator The separator to use between date parts
11704 */
11705function serialiseDate(date, includeTime, separator) {
11706 if (includeTime === void 0) { includeTime = true; }
11707 if (separator === void 0) { separator = '-'; }
11708 if (!date) {
11709 return null;
11710 }
11711 var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(part, 2); }).join(separator);
11712 if (includeTime) {
11713 serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(part, 2); }).join(':');
11714 }
11715 return serialised;
11716}
11717/**
11718 * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`
11719 */
11720function parseDateTimeFromString(value) {
11721 if (!value) {
11722 return null;
11723 }
11724 var _a = value.split(' '), dateStr = _a[0], timeStr = _a[1];
11725 if (!dateStr) {
11726 return null;
11727 }
11728 var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });
11729 if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {
11730 return null;
11731 }
11732 var year = fields[0], month = fields[1], day = fields[2];
11733 var date = new Date(year, month - 1, day);
11734 if (date.getFullYear() !== year ||
11735 date.getMonth() !== month - 1 ||
11736 date.getDate() !== day) {
11737 // date was not parsed as expected so must have been invalid
11738 return null;
11739 }
11740 if (!timeStr || timeStr === '00:00:00') {
11741 return date;
11742 }
11743 var _b = timeStr.split(':').map(function (part) { return parseInt(part, 10); }), hours = _b[0], minutes = _b[1], seconds = _b[2];
11744 if (hours >= 0 && hours < 24) {
11745 date.setHours(hours);
11746 }
11747 if (minutes >= 0 && minutes < 60) {
11748 date.setMinutes(minutes);
11749 }
11750 if (seconds >= 0 && seconds < 60) {
11751 date.setSeconds(seconds);
11752 }
11753 return date;
11754}
11755
11756
11757/***/ }),
11758/* 49 */
11759/***/ (function(module, __webpack_exports__, __webpack_require__) {
11760
11761"use strict";
11762__webpack_require__.r(__webpack_exports__);
11763/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fuzzyCheckStrings", function() { return fuzzyCheckStrings; });
11764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fuzzySuggestions", function() { return fuzzySuggestions; });
11765/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get_bigrams", function() { return get_bigrams; });
11766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "string_distances", function() { return string_distances; });
11767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "string_weighted_distances", function() { return string_weighted_distances; });
11768/**
11769 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11770 * @version v25.3.0
11771 * @link http://www.ag-grid.com/
11772 * @license MIT
11773 */
11774function fuzzyCheckStrings(inputValues, validValues, allSuggestions) {
11775 var fuzzyMatches = {};
11776 var invalidInputs = inputValues.filter(function (inputValue) {
11777 return !validValues.some(function (validValue) { return validValue === inputValue; });
11778 });
11779 if (invalidInputs.length > 0) {
11780 invalidInputs.forEach(function (invalidInput) {
11781 return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions);
11782 });
11783 }
11784 return fuzzyMatches;
11785}
11786/**
11787 *
11788 * @param {String} inputValue The value to be compared against a list of strings
11789 * @param allSuggestions The list of strings to be compared against
11790 * @param hideIrrelevant By default, fuzzy suggestions will just sort the allSuggestions list, set this to true
11791 * to filter out the irrelevant values
11792 * @param weighted Set this to true, to make letters matched in the order they were typed have priority in the results.
11793 */
11794function fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, weighted) {
11795 var search = weighted ? string_weighted_distances : string_distances;
11796 var thisSuggestions = allSuggestions.map(function (text) { return ({
11797 value: text,
11798 relevance: search(inputValue.toLowerCase(), text.toLocaleLowerCase())
11799 }); });
11800 thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });
11801 if (hideIrrelevant) {
11802 thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });
11803 }
11804 return thisSuggestions.map(function (suggestion) { return suggestion.value; });
11805}
11806/**
11807 * Algorithm to do fuzzy search
11808 * from https://stackoverflow.com/questions/23305000/javascript-fuzzy-search-that-makes-sense
11809 * @param {string} from
11810 * @return {[]}
11811 */
11812function get_bigrams(from) {
11813 var s = from.toLowerCase();
11814 var v = new Array(s.length - 1);
11815 var i;
11816 var j;
11817 var ref;
11818 for (i = j = 0, ref = v.length; j <= ref; i = j += 1) {
11819 v[i] = s.slice(i, i + 2);
11820 }
11821 return v;
11822}
11823function string_distances(str1, str2) {
11824 if (str1.length === 0 && str2.length === 0) {
11825 return 0;
11826 }
11827 var pairs1 = get_bigrams(str1);
11828 var pairs2 = get_bigrams(str2);
11829 var union = pairs1.length + pairs2.length;
11830 var hit_count = 0;
11831 var j;
11832 var len;
11833 for (j = 0, len = pairs1.length; j < len; j++) {
11834 var x = pairs1[j];
11835 var k = void 0;
11836 var len1 = void 0;
11837 for (k = 0, len1 = pairs2.length; k < len1; k++) {
11838 var y = pairs2[k];
11839 if (x === y) {
11840 hit_count++;
11841 }
11842 }
11843 }
11844 return hit_count > 0 ? (2 * hit_count) / union : 0;
11845}
11846function string_weighted_distances(str1, str2) {
11847 var a = str1.replace(/\s/g, '');
11848 var b = str2.replace(/\s/g, '');
11849 var weight = 0;
11850 var lastIndex = 0;
11851 for (var i = 0; i < a.length; i++) {
11852 var idx = b.indexOf(a[i], lastIndex);
11853 if (idx === -1) {
11854 continue;
11855 }
11856 lastIndex = idx;
11857 weight += (100 - (lastIndex * 100 / 10000) * 100);
11858 }
11859 return weight;
11860}
11861
11862
11863/***/ }),
11864/* 50 */
11865/***/ (function(module, __webpack_exports__, __webpack_require__) {
11866
11867"use strict";
11868__webpack_require__.r(__webpack_exports__);
11869/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iconNameClassMap", function() { return iconNameClassMap; });
11870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIcon", function() { return createIcon; });
11871/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIconNoSpan", function() { return createIconNoSpan; });
11872/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
11873/**
11874 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11875 * @version v25.3.0
11876 * @link http://www.ag-grid.com/
11877 * @license MIT
11878 */
11879
11880//
11881// IMPORTANT NOTE!
11882//
11883// If you change the list below, copy/paste the new content into the docs page javascript-grid-icons
11884//
11885var iconNameClassMap = {
11886 // header column group shown when expanded (click to contract)
11887 columnGroupOpened: 'expanded',
11888 // header column group shown when contracted (click to expand)
11889 columnGroupClosed: 'contracted',
11890 // tool panel column group contracted (click to expand)
11891 columnSelectClosed: 'tree-closed',
11892 // tool panel column group expanded (click to contract)
11893 columnSelectOpen: 'tree-open',
11894 // column tool panel header expand/collapse all button, shown when some children are expanded and
11895 // others are collapsed
11896 columnSelectIndeterminate: 'tree-indeterminate',
11897 // shown on ghost icon while dragging column to the side of the grid to pin
11898 columnMovePin: 'pin',
11899 // shown on ghost icon while dragging over part of the page that is not a drop zone
11900 columnMoveHide: 'eye-slash',
11901 // shown on ghost icon while dragging columns to reorder
11902 columnMoveMove: 'arrows',
11903 // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling
11904 columnMoveLeft: 'left',
11905 // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling
11906 columnMoveRight: 'right',
11907 // shown on ghost icon while dragging over Row Groups drop zone
11908 columnMoveGroup: 'group',
11909 // shown on ghost icon while dragging over Values drop zone
11910 columnMoveValue: 'aggregation',
11911 // shown on ghost icon while dragging over pivot drop zone
11912 columnMovePivot: 'pivot',
11913 // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.
11914 // string column over aggregation drop zone
11915 dropNotAllowed: 'not-allowed',
11916 // shown on row group when contracted (click to expand)
11917 groupContracted: 'tree-closed',
11918 // shown on row group when expanded (click to contract)
11919 groupExpanded: 'tree-open',
11920 // context menu chart item
11921 chart: 'chart',
11922 // chart window title bar
11923 close: 'cross',
11924 // X (remove) on column 'pill' after adding it to a drop zone list
11925 cancel: 'cancel',
11926 // indicates the currently active pin state in the "Pin column" sub-menu of the column menu
11927 check: 'tick',
11928 // "go to first" button in pagination controls
11929 first: 'first',
11930 // "go to previous" button in pagination controls
11931 previous: 'previous',
11932 // "go to next" button in pagination controls
11933 next: 'next',
11934 // "go to last" button in pagination controls
11935 last: 'last',
11936 // shown on top right of chart when chart is linked to range data (click to unlink)
11937 linked: 'linked',
11938 // shown on top right of chart when chart is not linked to range data (click to link)
11939 unlinked: 'unlinked',
11940 // "Choose colour" button on chart settings tab
11941 colorPicker: 'color-picker',
11942 // rotating spinner shown by the loading cell renderer
11943 groupLoading: 'loading',
11944 // button to launch enterprise column menu
11945 menu: 'menu',
11946 // filter tool panel tab
11947 filter: 'filter',
11948 // column tool panel tab
11949 columns: 'columns',
11950 // button in chart regular size window title bar (click to maximise)
11951 maximize: 'maximize',
11952 // button in chart maximised window title bar (click to make regular size)
11953 minimize: 'minimize',
11954 // "Pin column" item in column header menu
11955 menuPin: 'pin',
11956 // "Value aggregation" column menu item (shown on numeric columns when grouping is active)"
11957 menuValue: 'aggregation',
11958 // "Group by {column-name}" item in column header menu
11959 menuAddRowGroup: 'group',
11960 // "Un-Group by {column-name}" item in column header menu
11961 menuRemoveRowGroup: 'group',
11962 // context menu copy item
11963 clipboardCopy: 'copy',
11964 // context menu paste item
11965 clipboardPaste: 'paste',
11966 // identifies the pivot drop zone
11967 pivotPanel: 'pivot',
11968 // "Row groups" drop zone in column tool panel
11969 rowGroupPanel: 'group',
11970 // columns tool panel Values drop zone
11971 valuePanel: 'aggregation',
11972 // drag handle used to pick up draggable columns
11973 columnDrag: 'grip',
11974 // drag handle used to pick up draggable rows
11975 rowDrag: 'grip',
11976 // context menu export item
11977 save: 'save',
11978 // csv export
11979 csvExport: 'csv',
11980 // excel export,
11981 excelExport: 'excel',
11982 // icon on dropdown editors
11983 smallDown: 'small-down',
11984 // version of small-right used in RTL mode
11985 smallLeft: 'small-left',
11986 // separater between column 'pills' when you add multiple columns to the header drop zone
11987 smallRight: 'small-right',
11988 smallUp: 'small-up',
11989 // show on column header when column is sorted ascending
11990 sortAscending: 'asc',
11991 // show on column header when column is sorted descending
11992 sortDescending: 'desc',
11993 // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true
11994 sortUnSort: 'none'
11995};
11996/**
11997 * If icon provided, use this (either a string, or a function callback).
11998 * if not, then use the default icon from the theme
11999 * @param {string} iconName
12000 * @param {GridOptionsWrapper} gridOptionsWrapper
12001 * @param {Column | null} [column]
12002 * @returns {HTMLElement}
12003 */
12004function createIcon(iconName, gridOptionsWrapper, column) {
12005 var iconContents = createIconNoSpan(iconName, gridOptionsWrapper, column);
12006 if (iconContents && iconContents.className.indexOf('ag-icon') > -1) {
12007 return iconContents;
12008 }
12009 var eResult = document.createElement('span');
12010 eResult.appendChild(iconContents);
12011 return eResult;
12012}
12013function createIconNoSpan(iconName, gridOptionsWrapper, column, forceCreate) {
12014 var userProvidedIcon = null;
12015 // check col for icon first
12016 var icons = column && column.getColDef().icons;
12017 if (icons) {
12018 userProvidedIcon = icons[iconName];
12019 }
12020 // if not in col, try grid options
12021 if (gridOptionsWrapper && !userProvidedIcon) {
12022 var optionsIcons = gridOptionsWrapper.getIcons();
12023 if (optionsIcons) {
12024 userProvidedIcon = optionsIcons[iconName];
12025 }
12026 }
12027 // now if user provided, use it
12028 if (userProvidedIcon) {
12029 var rendererResult = void 0;
12030 if (typeof userProvidedIcon === 'function') {
12031 rendererResult = userProvidedIcon();
12032 }
12033 else if (typeof userProvidedIcon === 'string') {
12034 rendererResult = userProvidedIcon;
12035 }
12036 else {
12037 throw new Error('icon from grid options needs to be a string or a function');
12038 }
12039 if (typeof rendererResult === 'string') {
12040 return Object(_dom__WEBPACK_IMPORTED_MODULE_0__["loadTemplate"])(rendererResult);
12041 }
12042 if (Object(_dom__WEBPACK_IMPORTED_MODULE_0__["isNodeOrElement"])(rendererResult)) {
12043 return rendererResult;
12044 }
12045 console.warn('AG Grid: iconRenderer should return back a string or a dom object');
12046 }
12047 else {
12048 var span = document.createElement('span');
12049 var cssClass = iconNameClassMap[iconName];
12050 if (!cssClass) {
12051 if (!forceCreate) {
12052 console.warn("AG Grid: Did not find icon " + iconName);
12053 cssClass = '';
12054 }
12055 else {
12056 cssClass = iconName;
12057 }
12058 }
12059 span.setAttribute('class', "ag-icon ag-icon-" + cssClass);
12060 span.setAttribute('unselectable', 'on');
12061 span.setAttribute('role', 'presentation');
12062 return span;
12063 }
12064}
12065
12066
12067/***/ }),
12068/* 51 */
12069/***/ (function(module, __webpack_exports__, __webpack_require__) {
12070
12071"use strict";
12072__webpack_require__.r(__webpack_exports__);
12073/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isKeyPressed", function() { return isKeyPressed; });
12074/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventFromPrintableCharacter", function() { return isEventFromPrintableCharacter; });
12075/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUserSuppressingKeyboardEvent", function() { return isUserSuppressingKeyboardEvent; });
12076/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUserSuppressingHeaderKeyboardEvent", function() { return isUserSuppressingHeaderKeyboardEvent; });
12077/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34);
12078/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
12079/**
12080 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12081 * @version v25.3.0
12082 * @link http://www.ag-grid.com/
12083 * @license MIT
12084 */
12085
12086
12087var NUMPAD_DEL_NUMLOCK_ON_KEY = 'Del';
12088var NUMPAD_DEL_NUMLOCK_ON_CHARCODE = 46;
12089function isKeyPressed(event, keyToCheck) {
12090 return (event.which || event.keyCode) === keyToCheck;
12091}
12092function isEventFromPrintableCharacter(event) {
12093 // no allowed printable chars have alt or ctrl key combinations
12094 if (event.altKey || event.ctrlKey || event.metaKey) {
12095 return false;
12096 }
12097 // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.
12098 // non-printable characters have names, eg 'Enter' or 'Backspace'.
12099 var printableCharacter = event.key.length === 1;
12100 // IE11 & Edge treat the numpad del key differently - with numlock on we get "Del" for key,
12101 // so this addition checks if its IE11/Edge and handles that specific case the same was as all other browsers
12102 var numpadDelWithNumlockOnForEdgeOrIe = isNumpadDelWithNumlockOnForEdgeOrIe(event);
12103 return printableCharacter || numpadDelWithNumlockOnForEdgeOrIe;
12104}
12105/**
12106 * Allows user to tell the grid to skip specific keyboard events
12107 * @param {GridOptionsWrapper} gridOptionsWrapper
12108 * @param {KeyboardEvent} keyboardEvent
12109 * @param {RowNode} rowNode
12110 * @param {Column} column
12111 * @param {boolean} editing
12112 * @returns {boolean}
12113 */
12114function isUserSuppressingKeyboardEvent(gridOptionsWrapper, keyboardEvent, rowNode, column, editing) {
12115 var gridOptionsFunc = gridOptionsWrapper.getSuppressKeyboardEventFunc();
12116 var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;
12117 // if no callbacks provided by user, then do nothing
12118 if (!gridOptionsFunc && !colDefFunc) {
12119 return false;
12120 }
12121 var params = {
12122 event: keyboardEvent,
12123 editing: editing,
12124 column: column,
12125 api: gridOptionsWrapper.getApi(),
12126 node: rowNode,
12127 data: rowNode.data,
12128 colDef: column.getColDef(),
12129 context: gridOptionsWrapper.getContext(),
12130 columnApi: gridOptionsWrapper.getColumnApi()
12131 };
12132 // colDef get first preference on suppressing events
12133 if (colDefFunc) {
12134 var colDefFuncResult = colDefFunc(params);
12135 // if colDef func suppressed, then return now, no need to call gridOption func
12136 if (colDefFuncResult) {
12137 return true;
12138 }
12139 }
12140 if (gridOptionsFunc) {
12141 // if gridOption func, return the result
12142 return gridOptionsFunc(params);
12143 }
12144 // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions
12145 return false;
12146}
12147function isUserSuppressingHeaderKeyboardEvent(gridOptionsWrapper, keyboardEvent, headerRowIndex, column) {
12148 var colDef = column.getDefinition();
12149 var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;
12150 if (!Object(_generic__WEBPACK_IMPORTED_MODULE_1__["exists"])(colDefFunc)) {
12151 return false;
12152 }
12153 var params = {
12154 api: gridOptionsWrapper.getApi(),
12155 columnApi: gridOptionsWrapper.getColumnApi(),
12156 context: gridOptionsWrapper.getContext(),
12157 colDef: colDef,
12158 column: column,
12159 headerRowIndex: headerRowIndex,
12160 event: keyboardEvent
12161 };
12162 return !!colDefFunc(params);
12163}
12164function isNumpadDelWithNumlockOnForEdgeOrIe(event) {
12165 return (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserEdge"])() || Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserIE"])()) &&
12166 event.key === NUMPAD_DEL_NUMLOCK_ON_KEY &&
12167 event.charCode === NUMPAD_DEL_NUMLOCK_ON_CHARCODE;
12168}
12169
12170
12171/***/ }),
12172/* 52 */
12173/***/ (function(module, __webpack_exports__, __webpack_require__) {
12174
12175"use strict";
12176__webpack_require__.r(__webpack_exports__);
12177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeWheel", function() { return normalizeWheel; });
12178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLeftClick", function() { return isLeftClick; });
12179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areEventsNear", function() { return areEventsNear; });
12180/**
12181 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12182 * @version v25.3.0
12183 * @link http://www.ag-grid.com/
12184 * @license MIT
12185 */
12186/**
12187 * @deprecated
12188 * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is
12189 * complicated, thus this doc is long and (hopefully) detailed enough to answer
12190 * your questions.
12191 *
12192 * If you need to react to the mouse wheel in a predictable way, this code is
12193 * like your bestest friend. * hugs *
12194 *
12195 * As of today, there are 4 DOM event types you can listen to:
12196 *
12197 * 'wheel' -- Chrome(31+), FF(17+), IE(9+)
12198 * 'mousewheel' -- Chrome, IE(6+), Opera, Safari
12199 * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!
12200 * 'DOMMouseScroll' -- FF(0.9.7+) since 2003
12201 *
12202 * So what to do? The is the best:
12203 *
12204 * normalizeWheel.getEventType();
12205 *
12206 * In your event callback, use this code to get sane interpretation of the
12207 * deltas. This code will return an object with properties:
12208 *
12209 * spinX -- normalized spin speed (use for zoom) - x plane
12210 * spinY -- " - y plane
12211 * pixelX -- normalized distance (to pixels) - x plane
12212 * pixelY -- " - y plane
12213 *
12214 * Wheel values are provided by the browser assuming you are using the wheel to
12215 * scroll a web page by a number of lines or pixels (or pages). Values can vary
12216 * significantly on different platforms and browsers, forgetting that you can
12217 * scroll at different speeds. Some devices (like trackpads) emit more events
12218 * at smaller increments with fine granularity, and some emit massive jumps with
12219 * linear speed or acceleration.
12220 *
12221 * This code does its best to normalize the deltas for you:
12222 *
12223 * - spin is trying to normalize how far the wheel was spun (or trackpad
12224 * dragged). This is super useful for zoom support where you want to
12225 * throw away the chunky scroll steps on the PC and make those equal to
12226 * the slow and smooth tiny steps on the Mac. Key data: This code tries to
12227 * resolve a single slow step on a wheel to 1.
12228 *
12229 * - pixel is normalizing the desired scroll delta in pixel units. You'll
12230 * get the crazy differences between browsers, but at least it'll be in
12231 * pixels!
12232 *
12233 * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This
12234 * should translate to positive value zooming IN, negative zooming OUT.
12235 * This matches the newer 'wheel' event.
12236 *
12237 * Why are there spinX, spinY (or pixels)?
12238 *
12239 * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn
12240 * with a mouse. It results in side-scrolling in the browser by default.
12241 *
12242 * - spinY is what you expect -- it's the classic axis of a mouse wheel.
12243 *
12244 * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and
12245 * probably is by browsers in conjunction with fancy 3D controllers .. but
12246 * you know.
12247 *
12248 * Implementation info:
12249 *
12250 * Examples of 'wheel' event if you scroll slowly (down) by one step with an
12251 * average mouse:
12252 *
12253 * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)
12254 * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)
12255 * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)
12256 * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)
12257 * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)
12258 *
12259 * On the trackpad:
12260 *
12261 * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)
12262 * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)
12263 *
12264 * On other/older browsers.. it's more complicated as there can be multiple and
12265 * also missing delta values.
12266 *
12267 * The 'wheel' event is more standard:
12268 *
12269 * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
12270 *
12271 * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and
12272 * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain
12273 * backward compatibility with older events. Those other values help us
12274 * better normalize spin speed. Example of what the browsers provide:
12275 *
12276 * | event.wheelDelta | event.detail
12277 * ------------------+------------------+--------------
12278 * Safari v5/OS X | -120 | 0
12279 * Safari v5/Win7 | -120 | 0
12280 * Chrome v17/OS X | -120 | 0
12281 * Chrome v17/Win7 | -120 | 0
12282 * IE9/Win7 | -120 | undefined
12283 * Firefox v4/OS X | undefined | 1
12284 * Firefox v4/Win7 | undefined | 3
12285 *
12286 * from: https://github.com/facebook/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js
12287 * @param {any} event
12288 * @return {any}
12289 */
12290function normalizeWheel(event) {
12291 var PIXEL_STEP = 10;
12292 var LINE_HEIGHT = 40;
12293 var PAGE_HEIGHT = 800;
12294 // spinX, spinY
12295 var sX = 0;
12296 var sY = 0;
12297 // pixelX, pixelY
12298 var pX = 0;
12299 var pY = 0;
12300 // Legacy
12301 if ('detail' in event) {
12302 sY = event.detail;
12303 }
12304 if ('wheelDelta' in event) {
12305 sY = -event.wheelDelta / 120;
12306 }
12307 if ('wheelDeltaY' in event) {
12308 sY = -event.wheelDeltaY / 120;
12309 }
12310 if ('wheelDeltaX' in event) {
12311 sX = -event.wheelDeltaX / 120;
12312 }
12313 // side scrolling on FF with DOMMouseScroll
12314 if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {
12315 sX = sY;
12316 sY = 0;
12317 }
12318 pX = sX * PIXEL_STEP;
12319 pY = sY * PIXEL_STEP;
12320 if ('deltaY' in event) {
12321 pY = event.deltaY;
12322 }
12323 if ('deltaX' in event) {
12324 pX = event.deltaX;
12325 }
12326 if ((pX || pY) && event.deltaMode) {
12327 if (event.deltaMode == 1) { // delta in LINE units
12328 pX *= LINE_HEIGHT;
12329 pY *= LINE_HEIGHT;
12330 }
12331 else { // delta in PAGE units
12332 pX *= PAGE_HEIGHT;
12333 pY *= PAGE_HEIGHT;
12334 }
12335 }
12336 // Fall-back if spin cannot be determined
12337 if (pX && !sX) {
12338 sX = (pX < 1) ? -1 : 1;
12339 }
12340 if (pY && !sY) {
12341 sY = (pY < 1) ? -1 : 1;
12342 }
12343 return {
12344 spinX: sX,
12345 spinY: sY,
12346 pixelX: pX,
12347 pixelY: pY
12348 };
12349}
12350/**
12351 * @deprecated
12352 * Checks if event was issued by a left click
12353 * from https://stackoverflow.com/questions/3944122/detect-left-mouse-button-press
12354 * @param {MouseEvent} mouseEvent
12355 * @returns {boolean}
12356 */
12357function isLeftClick(mouseEvent) {
12358 if ('buttons' in mouseEvent) {
12359 return mouseEvent.buttons == 1;
12360 }
12361 var button = mouseEvent.which || mouseEvent.button;
12362 return button == 1;
12363}
12364/**
12365 * `True` if the event is close to the original event by X pixels either vertically or horizontally.
12366 * we only start dragging after X pixels so this allows us to know if we should start dragging yet.
12367 * @param {MouseEvent | TouchEvent} e1
12368 * @param {MouseEvent | TouchEvent} e2
12369 * @param {number} pixelCount
12370 * @returns {boolean}
12371 */
12372function areEventsNear(e1, e2, pixelCount) {
12373 // by default, we wait 4 pixels before starting the drag
12374 if (pixelCount === 0) {
12375 return false;
12376 }
12377 var diffX = Math.abs(e1.clientX - e2.clientX);
12378 var diffY = Math.abs(e1.clientY - e2.clientY);
12379 return Math.max(diffX, diffY) <= pixelCount;
12380}
12381
12382
12383/***/ }),
12384/* 53 */
12385/***/ (function(module, __webpack_exports__, __webpack_require__) {
12386
12387"use strict";
12388__webpack_require__.r(__webpack_exports__);
12389/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortRowNodesByOrder", function() { return sortRowNodesByOrder; });
12390/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "traverseNodesWithKey", function() { return traverseNodesWithKey; });
12391/**
12392 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12393 * @version v25.3.0
12394 * @link http://www.ag-grid.com/
12395 * @license MIT
12396 */
12397/**
12398 * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.
12399 * when in ClientSideNodeManager we always have indexes (as this sorts the items the
12400 * user provided) but when in GroupStage, the nodes can contain filler nodes that
12401 * don't have order id's
12402 * @param {RowNode[]} rowNodes
12403 * @param {Object} rowNodeOrder
12404 */
12405function sortRowNodesByOrder(rowNodes, rowNodeOrder) {
12406 if (!rowNodes) {
12407 return;
12408 }
12409 var comparator = function (nodeA, nodeB) {
12410 var positionA = rowNodeOrder[nodeA.id];
12411 var positionB = rowNodeOrder[nodeB.id];
12412 var aHasIndex = positionA !== undefined;
12413 var bHasIndex = positionB !== undefined;
12414 var bothNodesAreUserNodes = aHasIndex && bHasIndex;
12415 var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;
12416 if (bothNodesAreUserNodes) {
12417 // when comparing two nodes the user has provided, they always
12418 // have indexes
12419 return positionA - positionB;
12420 }
12421 if (bothNodesAreFillerNodes) {
12422 // when comparing two filler nodes, we have no index to compare them
12423 // against, however we want this sorting to be deterministic, so that
12424 // the rows don't jump around as the user does delta updates. so we
12425 // want the same sort result. so we use the __objectId - which doesn't make sense
12426 // from a sorting point of view, but does give consistent behaviour between
12427 // calls. otherwise groups jump around as delta updates are done.
12428 // note: previously here we used nodeId, however this gave a strange order
12429 // as string ordering of numbers is wrong, so using id based on creation order
12430 // as least gives better looking order.
12431 return nodeA.__objectId - nodeB.__objectId;
12432 }
12433 if (aHasIndex) {
12434 return 1;
12435 }
12436 return -1;
12437 };
12438 // check if the list first needs sorting
12439 var rowNodeA;
12440 var rowNodeB;
12441 var atLeastOneOutOfOrder = false;
12442 for (var i = 0; i < rowNodes.length - 1; i++) {
12443 rowNodeA = rowNodes[i];
12444 rowNodeB = rowNodes[i + 1];
12445 if (comparator(rowNodeA, rowNodeB) > 0) {
12446 atLeastOneOutOfOrder = true;
12447 break;
12448 }
12449 }
12450 if (atLeastOneOutOfOrder) {
12451 rowNodes.sort(comparator);
12452 }
12453}
12454function traverseNodesWithKey(nodes, callback) {
12455 var keyParts = [];
12456 recursiveSearchNodes(nodes);
12457 function recursiveSearchNodes(currentNodes) {
12458 if (!currentNodes) {
12459 return;
12460 }
12461 currentNodes.forEach(function (node) {
12462 // also checking for children for tree data
12463 if (node.group || node.hasChildren()) {
12464 keyParts.push(node.key);
12465 var key = keyParts.join('|');
12466 callback(node, key);
12467 recursiveSearchNodes(node.childrenAfterGroup);
12468 keyParts.pop();
12469 }
12470 });
12471 }
12472}
12473
12474
12475/***/ }),
12476/* 54 */
12477/***/ (function(module, __webpack_exports__, __webpack_require__) {
12478
12479"use strict";
12480__webpack_require__.r(__webpack_exports__);
12481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToSet", function() { return convertToSet; });
12482/**
12483 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12484 * @version v25.3.0
12485 * @link http://www.ag-grid.com/
12486 * @license MIT
12487 */
12488function convertToSet(list) {
12489 var set = new Set();
12490 list.forEach(function (x) { return set.add(x); });
12491 return set;
12492}
12493
12494
12495/***/ }),
12496/* 55 */
12497/***/ (function(module, __webpack_exports__, __webpack_require__) {
12498
12499"use strict";
12500__webpack_require__.r(__webpack_exports__);
12501/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return NumberSequence; });
12502/**
12503 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12504 * @version v25.3.0
12505 * @link http://www.ag-grid.com/
12506 * @license MIT
12507 */
12508var NumberSequence = /** @class */ (function () {
12509 function NumberSequence(initValue, step) {
12510 if (initValue === void 0) { initValue = 0; }
12511 if (step === void 0) { step = 1; }
12512 this.nextValue = initValue;
12513 this.step = step;
12514 }
12515 NumberSequence.prototype.next = function () {
12516 var valToReturn = this.nextValue;
12517 this.nextValue += this.step;
12518 return valToReturn;
12519 };
12520 NumberSequence.prototype.peek = function () {
12521 return this.nextValue;
12522 };
12523 NumberSequence.prototype.skip = function (count) {
12524 this.nextValue += count;
12525 };
12526 return NumberSequence;
12527}());
12528
12529
12530
12531/***/ }),
12532/* 56 */
12533/***/ (function(module, __webpack_exports__, __webpack_require__) {
12534
12535"use strict";
12536__webpack_require__.r(__webpack_exports__);
12537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return AgPromiseStatus; });
12538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return AgPromise; });
12539/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
12540/**
12541 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12542 * @version v25.3.0
12543 * @link http://www.ag-grid.com/
12544 * @license MIT
12545 */
12546
12547var AgPromiseStatus;
12548(function (AgPromiseStatus) {
12549 AgPromiseStatus[AgPromiseStatus["IN_PROGRESS"] = 0] = "IN_PROGRESS";
12550 AgPromiseStatus[AgPromiseStatus["RESOLVED"] = 1] = "RESOLVED";
12551})(AgPromiseStatus || (AgPromiseStatus = {}));
12552var AgPromise = /** @class */ (function () {
12553 function AgPromise(callback) {
12554 var _this = this;
12555 this.status = AgPromiseStatus.IN_PROGRESS;
12556 this.resolution = null;
12557 this.waiters = [];
12558 callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });
12559 }
12560 AgPromise.all = function (promises) {
12561 return new AgPromise(function (resolve) {
12562 var remainingToResolve = promises.length;
12563 var combinedValues = new Array(remainingToResolve);
12564 Object(_array__WEBPACK_IMPORTED_MODULE_0__["forEach"])(promises, function (promise, index) {
12565 promise.then(function (value) {
12566 combinedValues[index] = value;
12567 remainingToResolve--;
12568 if (remainingToResolve === 0) {
12569 resolve(combinedValues);
12570 }
12571 });
12572 });
12573 });
12574 };
12575 AgPromise.resolve = function (value) {
12576 if (value === void 0) { value = null; }
12577 return new AgPromise(function (resolve) { return resolve(value); });
12578 };
12579 AgPromise.prototype.then = function (func) {
12580 var _this = this;
12581 return new AgPromise(function (resolve) {
12582 if (_this.status === AgPromiseStatus.RESOLVED) {
12583 resolve(func(_this.resolution));
12584 }
12585 else {
12586 _this.waiters.push(function (value) { return resolve(func(value)); });
12587 }
12588 });
12589 };
12590 AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {
12591 return this.status === AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;
12592 };
12593 AgPromise.prototype.onDone = function (value) {
12594 this.status = AgPromiseStatus.RESOLVED;
12595 this.resolution = value;
12596 Object(_array__WEBPACK_IMPORTED_MODULE_0__["forEach"])(this.waiters, function (waiter) { return waiter(value); });
12597 };
12598 AgPromise.prototype.onReject = function (params) {
12599 console.warn('TBI');
12600 };
12601 return AgPromise;
12602}());
12603
12604
12605
12606/***/ }),
12607/* 57 */
12608/***/ (function(module, __webpack_exports__, __webpack_require__) {
12609
12610"use strict";
12611__webpack_require__.r(__webpack_exports__);
12612/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return Timer; });
12613/**
12614 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12615 * @version v25.3.0
12616 * @link http://www.ag-grid.com/
12617 * @license MIT
12618 */
12619/**
12620 * A Util Class only used when debugging for printing time to console
12621 */
12622var Timer = /** @class */ (function () {
12623 function Timer() {
12624 this.timestamp = new Date().getTime();
12625 }
12626 Timer.prototype.print = function (msg) {
12627 var duration = (new Date().getTime()) - this.timestamp;
12628 console.info(msg + " = " + duration);
12629 this.timestamp = new Date().getTime();
12630 };
12631 return Timer;
12632}());
12633
12634
12635
12636/***/ }),
12637/* 58 */
12638/***/ (function(module, __webpack_exports__, __webpack_require__) {
12639
12640"use strict";
12641__webpack_require__.r(__webpack_exports__);
12642/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return TooltipFeature; });
12643/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
12644/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
12645/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
12646/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
12647/**
12648 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12649 * @version v25.3.0
12650 * @link http://www.ag-grid.com/
12651 * @license MIT
12652 */
12653var __extends = (undefined && undefined.__extends) || (function () {
12654 var extendStatics = function (d, b) {
12655 extendStatics = Object.setPrototypeOf ||
12656 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
12657 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
12658 return extendStatics(d, b);
12659 };
12660 return function (d, b) {
12661 extendStatics(d, b);
12662 function __() { this.constructor = d; }
12663 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12664 };
12665})();
12666var __assign = (undefined && undefined.__assign) || function () {
12667 __assign = Object.assign || function(t) {
12668 for (var s, i = 1, n = arguments.length; i < n; i++) {
12669 s = arguments[i];
12670 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12671 t[p] = s[p];
12672 }
12673 return t;
12674 };
12675 return __assign.apply(this, arguments);
12676};
12677var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12678 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12679 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12680 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12681 return c > 3 && r && Object.defineProperty(target, key, r), r;
12682};
12683
12684
12685
12686
12687var TooltipStates;
12688(function (TooltipStates) {
12689 TooltipStates[TooltipStates["NOTHING"] = 0] = "NOTHING";
12690 TooltipStates[TooltipStates["WAITING_TO_SHOW"] = 1] = "WAITING_TO_SHOW";
12691 TooltipStates[TooltipStates["SHOWING"] = 2] = "SHOWING";
12692})(TooltipStates || (TooltipStates = {}));
12693var TooltipFeature = /** @class */ (function (_super) {
12694 __extends(TooltipFeature, _super);
12695 function TooltipFeature(parentComp) {
12696 var _this = _super.call(this) || this;
12697 _this.DEFAULT_HIDE_TOOLTIP_TIMEOUT = 10000;
12698 _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;
12699 _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;
12700 _this.state = TooltipStates.NOTHING;
12701 // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to
12702 // async we could request two tooltips before the first instance returns, in which case we should
12703 // disregard the second instance.
12704 _this.tooltipInstanceCount = 0;
12705 _this.tooltipMouseTrack = false;
12706 _this.parentComp = parentComp;
12707 return _this;
12708 }
12709 TooltipFeature.prototype.postConstruct = function () {
12710 this.tooltipShowDelay = this.gridOptionsWrapper.getTooltipShowDelay() || 2000;
12711 this.tooltipMouseTrack = this.gridOptionsWrapper.isTooltipMouseTrack();
12712 var el = this.parentComp.getGui();
12713 this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));
12714 this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));
12715 this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));
12716 this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));
12717 this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));
12718 };
12719 TooltipFeature.prototype.destroy = function () {
12720 // if this component gets destroyed while tooltip is showing, need to make sure
12721 // we don't end with no mouseLeave event resulting in zombie tooltip
12722 this.setToDoNothing();
12723 _super.prototype.destroy.call(this);
12724 };
12725 TooltipFeature.prototype.onMouseEnter = function (e) {
12726 // every mouseenter should be following by a mouseleave, however for some unkonwn, it's possible for
12727 // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported
12728 // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if
12729 // state is !=nothing, then we know mouseenter was already received.
12730 if (this.state != TooltipStates.NOTHING) {
12731 return;
12732 }
12733 // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time
12734 var delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;
12735 this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);
12736 this.lastMouseEvent = e;
12737 this.state = TooltipStates.WAITING_TO_SHOW;
12738 };
12739 TooltipFeature.prototype.onMouseLeave = function () {
12740 this.setToDoNothing();
12741 };
12742 TooltipFeature.prototype.onKeyDown = function () {
12743 this.setToDoNothing();
12744 };
12745 TooltipFeature.prototype.setToDoNothing = function () {
12746 if (this.state === TooltipStates.SHOWING) {
12747 this.hideTooltip();
12748 }
12749 this.clearTimeouts();
12750 this.state = TooltipStates.NOTHING;
12751 };
12752 TooltipFeature.prototype.onMouseMove = function (e) {
12753 // there is a delay from the time we mouseOver a component and the time the
12754 // tooltip is displayed, so we need to track mousemove to be able to correctly
12755 // position the tooltip when showTooltip is called.
12756 this.lastMouseEvent = e;
12757 if (this.tooltipMouseTrack &&
12758 this.state === TooltipStates.SHOWING &&
12759 this.tooltipComp) {
12760 this.positionTooltipUnderLastMouseEvent();
12761 }
12762 };
12763 TooltipFeature.prototype.onMouseDown = function () {
12764 this.setToDoNothing();
12765 };
12766 TooltipFeature.prototype.hideTooltip = function () {
12767 // check if comp exists - due to async, although we asked for
12768 // one, the instance may not be back yet
12769 if (this.tooltipComp) {
12770 this.destroyTooltipComp();
12771 TooltipFeature.lastTooltipHideTime = new Date().getTime();
12772 }
12773 this.state = TooltipStates.NOTHING;
12774 };
12775 TooltipFeature.prototype.destroyTooltipComp = function () {
12776 var _this = this;
12777 // add class to fade out the tooltip
12778 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.tooltipComp.getGui(), 'ag-tooltip-hiding');
12779 // make local copies of these variables, as we use them in the async function below,
12780 // and we clear then to 'undefined' later, so need to take a copy before they are undefined.
12781 var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;
12782 var tooltipComp = this.tooltipComp;
12783 window.setTimeout(function () {
12784 tooltipPopupDestroyFunc();
12785 _this.getContext().destroyBean(tooltipComp);
12786 }, this.FADE_OUT_TOOLTIP_TIMEOUT);
12787 this.tooltipPopupDestroyFunc = undefined;
12788 this.tooltipComp = undefined;
12789 };
12790 TooltipFeature.prototype.isLastTooltipHiddenRecently = function () {
12791 // return true if <1000ms since last time we hid a tooltip
12792 var now = new Date().getTime();
12793 var then = TooltipFeature.lastTooltipHideTime;
12794 return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;
12795 };
12796 TooltipFeature.prototype.showTooltip = function () {
12797 var params = __assign({ api: this.gridApi, columnApi: this.columnApi, context: this.gridOptionsWrapper.getContext() }, this.parentComp.getTooltipParams());
12798 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.value)) {
12799 this.setToDoNothing();
12800 return;
12801 }
12802 this.state = TooltipStates.SHOWING;
12803 this.tooltipInstanceCount++;
12804 // we pass in tooltipInstanceCount so the callback knows what the count was when
12805 // we requested the tooltip, so if another tooltip was requested in the mean time
12806 // we disregard it
12807 var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);
12808 this.userComponentFactory.newTooltipComponent(params).then(callback);
12809 };
12810 TooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {
12811 var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;
12812 if (compNoLongerNeeded) {
12813 this.getContext().destroyBean(tooltipComp);
12814 return;
12815 }
12816 var eGui = tooltipComp.getGui();
12817 this.tooltipComp = tooltipComp;
12818 if (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["containsClass"])(eGui, 'ag-tooltip')) {
12819 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eGui, 'ag-tooltip-custom');
12820 }
12821 var addPopupRes = this.popupService.addPopup({
12822 eChild: eGui
12823 });
12824 if (addPopupRes) {
12825 this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;
12826 }
12827 // this.tooltipPopupDestroyFunc = this.popupService.addPopup(false, eGui, false);
12828 this.positionTooltipUnderLastMouseEvent();
12829 this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.DEFAULT_HIDE_TOOLTIP_TIMEOUT);
12830 };
12831 TooltipFeature.prototype.positionTooltipUnderLastMouseEvent = function () {
12832 this.popupService.positionPopupUnderMouseEvent({
12833 type: 'tooltip',
12834 mouseEvent: this.lastMouseEvent,
12835 ePopup: this.tooltipComp.getGui(),
12836 nudgeY: 18
12837 });
12838 };
12839 TooltipFeature.prototype.clearTimeouts = function () {
12840 if (this.showTooltipTimeoutId) {
12841 window.clearTimeout(this.showTooltipTimeoutId);
12842 this.showTooltipTimeoutId = undefined;
12843 }
12844 if (this.hideTooltipTimeoutId) {
12845 window.clearTimeout(this.hideTooltipTimeoutId);
12846 this.hideTooltipTimeoutId = undefined;
12847 }
12848 };
12849 __decorate([
12850 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
12851 ], TooltipFeature.prototype, "popupService", void 0);
12852 __decorate([
12853 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
12854 ], TooltipFeature.prototype, "userComponentFactory", void 0);
12855 __decorate([
12856 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
12857 ], TooltipFeature.prototype, "columnApi", void 0);
12858 __decorate([
12859 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
12860 ], TooltipFeature.prototype, "gridApi", void 0);
12861 __decorate([
12862 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
12863 ], TooltipFeature.prototype, "postConstruct", null);
12864 return TooltipFeature;
12865}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
12866
12867
12868
12869/***/ }),
12870/* 59 */
12871/***/ (function(module, __webpack_exports__, __webpack_require__) {
12872
12873"use strict";
12874__webpack_require__.r(__webpack_exports__);
12875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return QuerySelector; });
12876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return RefSelector; });
12877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridListener", function() { return GridListener; });
12878/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GuiListener", function() { return GuiListener; });
12879/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
12880/**
12881 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12882 * @version v25.3.0
12883 * @link http://www.ag-grid.com/
12884 * @license MIT
12885 */
12886
12887function QuerySelector(selector) {
12888 return querySelectorFunc.bind(this, selector, undefined);
12889}
12890function RefSelector(ref) {
12891 return querySelectorFunc.bind(this, "[ref=" + ref + "]", ref);
12892}
12893function querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {
12894 if (selector === null) {
12895 console.error('AG Grid: QuerySelector selector should not be null');
12896 return;
12897 }
12898 if (typeof index === 'number') {
12899 console.error('AG Grid: QuerySelector should be on an attribute');
12900 return;
12901 }
12902 addToObjectProps(classPrototype, 'querySelectors', {
12903 attributeName: methodOrAttributeName,
12904 querySelector: selector,
12905 refSelector: refSelector
12906 });
12907}
12908// think we should take this out, put property bindings on the
12909function GridListener(eventName) {
12910 return gridListenerFunc.bind(this, eventName);
12911}
12912function gridListenerFunc(eventName, target, methodName) {
12913 if (eventName == null) {
12914 console.error('AG Grid: GridListener eventName is missing');
12915 return;
12916 }
12917 addToObjectProps(target, 'gridListenerMethods', {
12918 methodName: methodName,
12919 eventName: eventName
12920 });
12921}
12922// think we should take this out, put property bindings on the
12923function GuiListener(ref, eventName) {
12924 return guiListenerFunc.bind(this, ref, eventName);
12925}
12926function guiListenerFunc(ref, eventName, target, methodName) {
12927 if (eventName == null) {
12928 console.error('AG Grid: GuiListener eventName is missing');
12929 return;
12930 }
12931 addToObjectProps(target, 'guiListenerMethods', {
12932 methodName: methodName,
12933 eventName: eventName,
12934 ref: ref
12935 });
12936}
12937// // think we should take this out, put property bindings on the
12938// export function Method(eventName?: string): Function {
12939// return methodFunc.bind(this, eventName);
12940// }
12941//
12942// function methodFunc(alias: string, target: Object, methodName: string) {
12943// if (alias === null) {
12944// console.error("AG Grid: EventListener eventName should not be null");
12945// return;
12946// }
12947//
12948// addToObjectProps(target, 'methods', {
12949// methodName: methodName,
12950// alias: alias
12951// });
12952// }
12953function addToObjectProps(target, key, value) {
12954 // it's an attribute on the class
12955 var props = getOrCreateProps(target, Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["getFunctionName"])(target.constructor));
12956 if (!props[key]) {
12957 props[key] = [];
12958 }
12959 props[key].push(value);
12960}
12961function getOrCreateProps(target, instanceName) {
12962 if (!target.__agComponentMetaData) {
12963 target.__agComponentMetaData = {};
12964 }
12965 if (!target.__agComponentMetaData[instanceName]) {
12966 target.__agComponentMetaData[instanceName] = {};
12967 }
12968 return target.__agComponentMetaData[instanceName];
12969}
12970
12971
12972/***/ }),
12973/* 60 */
12974/***/ (function(module, __webpack_exports__, __webpack_require__) {
12975
12976"use strict";
12977__webpack_require__.r(__webpack_exports__);
12978/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return KeyCode; });
12979/**
12980 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12981 * @version v25.3.0
12982 * @link http://www.ag-grid.com/
12983 * @license MIT
12984 */
12985var KeyCode = /** @class */ (function () {
12986 function KeyCode() {
12987 }
12988 KeyCode.BACKSPACE = 8;
12989 KeyCode.TAB = 9;
12990 KeyCode.ENTER = 13;
12991 KeyCode.SHIFT = 16;
12992 KeyCode.ESCAPE = 27;
12993 KeyCode.SPACE = 32;
12994 KeyCode.LEFT = 37;
12995 KeyCode.UP = 38;
12996 KeyCode.RIGHT = 39;
12997 KeyCode.DOWN = 40;
12998 KeyCode.DELETE = 46;
12999 KeyCode.A = 65;
13000 KeyCode.C = 67;
13001 KeyCode.V = 86;
13002 KeyCode.D = 68;
13003 KeyCode.Z = 90;
13004 KeyCode.Y = 89;
13005 KeyCode.F2 = 113;
13006 KeyCode.PAGE_UP = 33;
13007 KeyCode.PAGE_DOWN = 34;
13008 KeyCode.PAGE_HOME = 36;
13009 KeyCode.PAGE_END = 35;
13010 return KeyCode;
13011}());
13012
13013
13014
13015/***/ }),
13016/* 61 */
13017/***/ (function(module, __webpack_exports__, __webpack_require__) {
13018
13019"use strict";
13020__webpack_require__.r(__webpack_exports__);
13021/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return DateFilter; });
13022/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
13023/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
13024/* harmony import */ var _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62);
13025/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63);
13026/* harmony import */ var _scalarFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68);
13027/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
13028/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
13029/**
13030 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13031 * @version v25.3.0
13032 * @link http://www.ag-grid.com/
13033 * @license MIT
13034 */
13035var __extends = (undefined && undefined.__extends) || (function () {
13036 var extendStatics = function (d, b) {
13037 extendStatics = Object.setPrototypeOf ||
13038 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13039 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13040 return extendStatics(d, b);
13041 };
13042 return function (d, b) {
13043 extendStatics(d, b);
13044 function __() { this.constructor = d; }
13045 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13046 };
13047})();
13048var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13049 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13050 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13051 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13052 return c > 3 && r && Object.defineProperty(target, key, r), r;
13053};
13054
13055
13056
13057
13058
13059
13060
13061var DateFilter = /** @class */ (function (_super) {
13062 __extends(DateFilter, _super);
13063 function DateFilter() {
13064 return _super.call(this, 'dateFilter') || this;
13065 }
13066 DateFilter.prototype.afterGuiAttached = function (params) {
13067 _super.prototype.afterGuiAttached.call(this, params);
13068 this.dateCondition1FromComp.afterGuiAttached(params);
13069 };
13070 DateFilter.prototype.mapRangeFromModel = function (filterModel) {
13071 // unlike the other filters, we do two things here:
13072 // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'
13073 // are in different locations in Date and Number filter models)
13074 // 2) convert the type (because Date filter uses Dates, however model is 'string')
13075 //
13076 // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks
13077 // a date from the UI, it will have timezone info in it. This is lost when creating
13078 // the model. When we recreate the date again here, it's without a timezone.
13079 return {
13080 from: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(filterModel.dateFrom),
13081 to: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(filterModel.dateTo)
13082 };
13083 };
13084 DateFilter.prototype.setValueFromFloatingFilter = function (value) {
13085 this.dateCondition1FromComp.setDate(value == null ? null : Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(value));
13086 this.dateCondition1ToComp.setDate(null);
13087 this.dateCondition2FromComp.setDate(null);
13088 this.dateCondition2ToComp.setDate(null);
13089 };
13090 DateFilter.prototype.setConditionIntoUi = function (model, position) {
13091 var _a = model ?
13092 [Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(model.dateFrom), Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(model.dateTo)] :
13093 [null, null], dateFrom = _a[0], dateTo = _a[1];
13094 var _b = this.getFromToComponents(position), compFrom = _b[0], compTo = _b[1];
13095 compFrom.setDate(dateFrom);
13096 compTo.setDate(dateTo);
13097 };
13098 DateFilter.prototype.resetUiToDefaults = function (silent) {
13099 var _this = this;
13100 return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {
13101 _this.dateCondition1FromComp.setDate(null);
13102 _this.dateCondition1ToComp.setDate(null);
13103 _this.dateCondition2FromComp.setDate(null);
13104 _this.dateCondition2ToComp.setDate(null);
13105 });
13106 };
13107 DateFilter.prototype.comparator = function () {
13108 return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);
13109 };
13110 DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {
13111 // The default comparator assumes that the cellValue is a date
13112 var cellAsDate = cellValue;
13113 if (cellValue == null || cellAsDate < filterDate) {
13114 return -1;
13115 }
13116 if (cellAsDate > filterDate) {
13117 return 1;
13118 }
13119 return 0;
13120 };
13121 DateFilter.prototype.setParams = function (params) {
13122 _super.prototype.setParams.call(this, params);
13123 this.dateFilterParams = params;
13124 this.createDateComponents();
13125 };
13126 DateFilter.prototype.createDateComponents = function () {
13127 var _this = this;
13128 var createDateCompWrapper = function (element) {
13129 return new _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__["DateCompWrapper"](_this.getContext(), _this.userComponentFactory, {
13130 onDateChanged: function () { return _this.onUiChanged(); },
13131 filterParams: _this.dateFilterParams
13132 }, element);
13133 };
13134 this.dateCondition1FromComp = createDateCompWrapper(this.eCondition1PanelFrom);
13135 this.dateCondition1ToComp = createDateCompWrapper(this.eCondition1PanelTo);
13136 this.dateCondition2FromComp = createDateCompWrapper(this.eCondition2PanelFrom);
13137 this.dateCondition2ToComp = createDateCompWrapper(this.eCondition2PanelTo);
13138 this.addDestroyFunc(function () {
13139 _this.dateCondition1FromComp.destroy();
13140 _this.dateCondition1ToComp.destroy();
13141 _this.dateCondition2FromComp.destroy();
13142 _this.dateCondition2ToComp.destroy();
13143 });
13144 };
13145 DateFilter.prototype.getDefaultFilterOptions = function () {
13146 return DateFilter.DEFAULT_FILTER_OPTIONS;
13147 };
13148 DateFilter.prototype.createValueTemplate = function (position) {
13149 var pos = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One ? '1' : '2';
13150 return /* html */ "\n <div class=\"ag-filter-body\" ref=\"eCondition" + pos + "Body\">\n <div class=\"ag-filter-from ag-filter-date-from\" ref=\"eCondition" + pos + "PanelFrom\"></div>\n <div class=\"ag-filter-to ag-filter-date-to\" ref=\"eCondition" + pos + "PanelTo\"></div>\n </div>";
13151 };
13152 DateFilter.prototype.isConditionUiComplete = function (position) {
13153 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One;
13154 var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();
13155 if (option === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["SimpleFilter"].EMPTY) {
13156 return false;
13157 }
13158 if (this.doesFilterHaveHiddenInput(option)) {
13159 return true;
13160 }
13161 var _a = this.getFromToComponents(position), compFrom = _a[0], compTo = _a[1];
13162 var minValidYear = this.dateFilterParams.minValidYear == null ? 1000 : this.dateFilterParams.minValidYear;
13163 var isValidDate = function (value) { return value != null && value.getUTCFullYear() > minValidYear; };
13164 return isValidDate(compFrom.getDate()) && (!this.showValueTo(option) || isValidDate(compTo.getDate()));
13165 };
13166 DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
13167 return aSimple.dateFrom === bSimple.dateFrom
13168 && aSimple.dateTo === bSimple.dateTo
13169 && aSimple.type === bSimple.type;
13170 };
13171 DateFilter.prototype.getFilterType = function () {
13172 return 'date';
13173 };
13174 DateFilter.prototype.createCondition = function (position) {
13175 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One;
13176 var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();
13177 var _a = this.getFromToComponents(position), compFrom = _a[0], compTo = _a[1];
13178 return {
13179 dateFrom: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["serialiseDate"])(compFrom.getDate()),
13180 dateTo: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["serialiseDate"])(compTo.getDate()),
13181 type: type,
13182 filterType: this.getFilterType()
13183 };
13184 };
13185 DateFilter.prototype.resetPlaceholder = function () {
13186 var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();
13187 var placeholder = this.translate('dateFormatOoo');
13188 var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');
13189 this.dateCondition1FromComp.setInputPlaceholder(placeholder);
13190 this.dateCondition1FromComp.setInputAriaLabel(ariaLabel);
13191 this.dateCondition1ToComp.setInputPlaceholder(placeholder);
13192 this.dateCondition1ToComp.setInputAriaLabel(ariaLabel);
13193 this.dateCondition2FromComp.setInputPlaceholder(placeholder);
13194 this.dateCondition2FromComp.setInputAriaLabel(ariaLabel);
13195 this.dateCondition2ToComp.setInputPlaceholder(placeholder);
13196 this.dateCondition2ToComp.setInputAriaLabel(ariaLabel);
13197 };
13198 DateFilter.prototype.updateUiVisibility = function () {
13199 _super.prototype.updateUiVisibility.call(this);
13200 this.resetPlaceholder();
13201 var condition1Type = this.getCondition1Type();
13202 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition1PanelFrom, this.showValueFrom(condition1Type));
13203 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition1PanelTo, this.showValueTo(condition1Type));
13204 var condition2Type = this.getCondition2Type();
13205 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition2PanelFrom, this.showValueFrom(condition2Type));
13206 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition2PanelTo, this.showValueTo(condition2Type));
13207 };
13208 DateFilter.prototype.getFromToComponents = function (position) {
13209 return position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One ?
13210 [this.dateCondition1FromComp, this.dateCondition1ToComp] :
13211 [this.dateCondition2FromComp, this.dateCondition2ToComp];
13212 };
13213 DateFilter.DEFAULT_FILTER_OPTIONS = [
13214 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].EQUALS,
13215 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].GREATER_THAN,
13216 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].LESS_THAN,
13217 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].NOT_EQUAL,
13218 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].IN_RANGE
13219 ];
13220 __decorate([
13221 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition1PanelFrom')
13222 ], DateFilter.prototype, "eCondition1PanelFrom", void 0);
13223 __decorate([
13224 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition1PanelTo')
13225 ], DateFilter.prototype, "eCondition1PanelTo", void 0);
13226 __decorate([
13227 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition2PanelFrom')
13228 ], DateFilter.prototype, "eCondition2PanelFrom", void 0);
13229 __decorate([
13230 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition2PanelTo')
13231 ], DateFilter.prototype, "eCondition2PanelTo", void 0);
13232 __decorate([
13233 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
13234 ], DateFilter.prototype, "userComponentFactory", void 0);
13235 return DateFilter;
13236}(_scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"]));
13237
13238
13239
13240/***/ }),
13241/* 62 */
13242/***/ (function(module, __webpack_exports__, __webpack_require__) {
13243
13244"use strict";
13245__webpack_require__.r(__webpack_exports__);
13246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateCompWrapper", function() { return DateCompWrapper; });
13247/**
13248 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13249 * @version v25.3.0
13250 * @link http://www.ag-grid.com/
13251 * @license MIT
13252 */
13253/** Provides sync access to async component. Date component can be lazy created - this class encapsulates
13254 * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */
13255var DateCompWrapper = /** @class */ (function () {
13256 function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {
13257 var _this = this;
13258 this.alive = true;
13259 this.context = context;
13260 userComponentFactory.newDateComponent(dateComponentParams).then(function (dateComp) {
13261 // because async, check the filter still exists after component comes back
13262 if (!_this.alive) {
13263 context.destroyBean(dateComp);
13264 return;
13265 }
13266 _this.dateComp = dateComp;
13267 if (!dateComp) {
13268 return;
13269 }
13270 eParent.appendChild(dateComp.getGui());
13271 if (dateComp.afterGuiAttached) {
13272 dateComp.afterGuiAttached();
13273 }
13274 if (_this.tempValue) {
13275 dateComp.setDate(_this.tempValue);
13276 }
13277 });
13278 }
13279 DateCompWrapper.prototype.destroy = function () {
13280 this.alive = false;
13281 this.dateComp = this.context.destroyBean(this.dateComp);
13282 };
13283 DateCompWrapper.prototype.getDate = function () {
13284 return this.dateComp ? this.dateComp.getDate() : this.tempValue;
13285 };
13286 DateCompWrapper.prototype.setDate = function (value) {
13287 if (this.dateComp) {
13288 this.dateComp.setDate(value);
13289 }
13290 else {
13291 this.tempValue = value;
13292 }
13293 };
13294 DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {
13295 if (this.dateComp && this.dateComp.setInputPlaceholder) {
13296 this.dateComp.setInputPlaceholder(placeholder);
13297 }
13298 };
13299 DateCompWrapper.prototype.setInputAriaLabel = function (label) {
13300 if (this.dateComp && this.dateComp.setInputAriaLabel) {
13301 this.dateComp.setInputAriaLabel(label);
13302 }
13303 };
13304 DateCompWrapper.prototype.afterGuiAttached = function (params) {
13305 if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {
13306 this.dateComp.afterGuiAttached(params);
13307 }
13308 };
13309 return DateCompWrapper;
13310}());
13311
13312
13313
13314/***/ }),
13315/* 63 */
13316/***/ (function(module, __webpack_exports__, __webpack_require__) {
13317
13318"use strict";
13319__webpack_require__.r(__webpack_exports__);
13320/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConditionPosition", function() { return ConditionPosition; });
13321/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return SimpleFilter; });
13322/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
13323/* harmony import */ var _optionsFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64);
13324/* harmony import */ var _providedFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65);
13325/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
13326/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
13327/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
13328/**
13329 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13330 * @version v25.3.0
13331 * @link http://www.ag-grid.com/
13332 * @license MIT
13333 */
13334var __extends = (undefined && undefined.__extends) || (function () {
13335 var extendStatics = function (d, b) {
13336 extendStatics = Object.setPrototypeOf ||
13337 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13338 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13339 return extendStatics(d, b);
13340 };
13341 return function (d, b) {
13342 extendStatics(d, b);
13343 function __() { this.constructor = d; }
13344 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13345 };
13346})();
13347var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13348 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13349 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13350 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13351 return c > 3 && r && Object.defineProperty(target, key, r), r;
13352};
13353
13354
13355
13356
13357
13358
13359var ConditionPosition;
13360(function (ConditionPosition) {
13361 ConditionPosition[ConditionPosition["One"] = 0] = "One";
13362 ConditionPosition[ConditionPosition["Two"] = 1] = "Two";
13363})(ConditionPosition || (ConditionPosition = {}));
13364/**
13365 * Every filter with a dropdown where the user can specify a comparing type against the filter values
13366 */
13367var SimpleFilter = /** @class */ (function (_super) {
13368 __extends(SimpleFilter, _super);
13369 function SimpleFilter() {
13370 return _super !== null && _super.apply(this, arguments) || this;
13371 }
13372 // returns true if this type requires a 'from' field, eg any filter that requires at least one text value
13373 SimpleFilter.prototype.showValueFrom = function (type) {
13374 return !this.doesFilterHaveHiddenInput(type) && type !== SimpleFilter.EMPTY;
13375 };
13376 // returns true if this type requires a 'to' field, currently only 'range' returns true
13377 SimpleFilter.prototype.showValueTo = function (type) {
13378 return type === SimpleFilter.IN_RANGE;
13379 };
13380 // floating filter calls this when user applies filter from floating filter
13381 SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {
13382 this.setTypeFromFloatingFilter(type);
13383 this.setValueFromFloatingFilter(value);
13384 this.onUiChanged(true);
13385 };
13386 SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {
13387 this.eType1.setValue(type);
13388 this.eType2.setValue(this.optionsFactory.getDefaultOption());
13389 (this.isDefaultOperator('AND') ? this.eJoinOperatorAnd : this.eJoinOperatorOr).setValue(true);
13390 };
13391 SimpleFilter.prototype.getModelFromUi = function () {
13392 if (!this.isConditionUiComplete(ConditionPosition.One)) {
13393 return null;
13394 }
13395 if (this.isAllowTwoConditions() && this.isConditionUiComplete(ConditionPosition.Two)) {
13396 return {
13397 filterType: this.getFilterType(),
13398 operator: this.getJoinOperator(),
13399 condition1: this.createCondition(ConditionPosition.One),
13400 condition2: this.createCondition(ConditionPosition.Two)
13401 };
13402 }
13403 return this.createCondition(ConditionPosition.One);
13404 };
13405 SimpleFilter.prototype.getCondition1Type = function () {
13406 return this.eType1.getValue();
13407 };
13408 SimpleFilter.prototype.getCondition2Type = function () {
13409 return this.eType2.getValue();
13410 };
13411 SimpleFilter.prototype.getJoinOperator = function () {
13412 return this.eJoinOperatorOr.getValue() === true ? 'OR' : 'AND';
13413 };
13414 SimpleFilter.prototype.areModelsEqual = function (a, b) {
13415 // both are missing
13416 if (!a && !b) {
13417 return true;
13418 }
13419 // one is missing, other present
13420 if ((!a && b) || (a && !b)) {
13421 return false;
13422 }
13423 // one is combined, the other is not
13424 var aIsSimple = !a.operator;
13425 var bIsSimple = !b.operator;
13426 var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);
13427 if (oneSimpleOneCombined) {
13428 return false;
13429 }
13430 var res;
13431 // otherwise both present, so compare
13432 if (aIsSimple) {
13433 var aSimple = a;
13434 var bSimple = b;
13435 res = this.areSimpleModelsEqual(aSimple, bSimple);
13436 }
13437 else {
13438 var aCombined = a;
13439 var bCombined = b;
13440 res = aCombined.operator === bCombined.operator
13441 && this.areSimpleModelsEqual(aCombined.condition1, bCombined.condition1)
13442 && this.areSimpleModelsEqual(aCombined.condition2, bCombined.condition2);
13443 }
13444 return res;
13445 };
13446 SimpleFilter.prototype.setModelIntoUi = function (model) {
13447 var isCombined = model.operator;
13448 if (isCombined) {
13449 var combinedModel = model;
13450 var orChecked = combinedModel.operator === 'OR';
13451 this.eJoinOperatorAnd.setValue(!orChecked);
13452 this.eJoinOperatorOr.setValue(orChecked);
13453 this.eType1.setValue(combinedModel.condition1.type);
13454 this.eType2.setValue(combinedModel.condition2.type);
13455 this.setConditionIntoUi(combinedModel.condition1, ConditionPosition.One);
13456 this.setConditionIntoUi(combinedModel.condition2, ConditionPosition.Two);
13457 }
13458 else {
13459 var simpleModel = model;
13460 this.eJoinOperatorAnd.setValue(this.isDefaultOperator('AND'));
13461 this.eJoinOperatorOr.setValue(this.isDefaultOperator('OR'));
13462 this.eType1.setValue(simpleModel.type);
13463 this.eType2.setValue(this.optionsFactory.getDefaultOption());
13464 this.setConditionIntoUi(simpleModel, ConditionPosition.One);
13465 this.setConditionIntoUi(null, ConditionPosition.Two);
13466 }
13467 return _utils__WEBPACK_IMPORTED_MODULE_3__["AgPromise"].resolve();
13468 };
13469 SimpleFilter.prototype.doesFilterPass = function (params) {
13470 var _this = this;
13471 var model = this.getModel();
13472 if (model == null) {
13473 return true;
13474 }
13475 var operator = model.operator;
13476 var models = [];
13477 if (operator) {
13478 var combinedModel = model;
13479 models.push(combinedModel.condition1, combinedModel.condition2);
13480 }
13481 else {
13482 models.push(model);
13483 }
13484 var combineFunction = operator && operator === 'OR' ? _utils_array__WEBPACK_IMPORTED_MODULE_4__["some"] : _utils_array__WEBPACK_IMPORTED_MODULE_4__["every"];
13485 return combineFunction(models, function (m) { return _this.individualConditionPasses(params, m); });
13486 };
13487 SimpleFilter.prototype.setParams = function (params) {
13488 _super.prototype.setParams.call(this, params);
13489 this.optionsFactory = new _optionsFactory__WEBPACK_IMPORTED_MODULE_1__["OptionsFactory"]();
13490 this.optionsFactory.init(params, this.getDefaultFilterOptions());
13491 this.allowTwoConditions = !params.suppressAndOrCondition;
13492 this.alwaysShowBothConditions = !!params.alwaysShowBothConditions;
13493 this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);
13494 this.putOptionsIntoDropdown();
13495 this.addChangedListeners();
13496 };
13497 SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {
13498 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(['AND', 'OR'], defaultJoinOperator) ? defaultJoinOperator : 'AND';
13499 };
13500 SimpleFilter.prototype.putOptionsIntoDropdown = function () {
13501 var _this = this;
13502 var filterOptions = this.optionsFactory.getFilterOptions();
13503 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(filterOptions, function (option) {
13504 var value;
13505 var text;
13506 if (typeof option === 'string') {
13507 value = option;
13508 text = _this.translate(value);
13509 }
13510 else {
13511 value = option.displayKey;
13512 var customOption = _this.optionsFactory.getCustomOption(value);
13513 text = customOption ?
13514 _this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :
13515 _this.translate(value);
13516 }
13517 var createOption = function () { return ({ value: value, text: text }); };
13518 _this.eType1.addOption(createOption());
13519 _this.eType2.addOption(createOption());
13520 });
13521 var readOnly = filterOptions.length <= 1;
13522 this.eType1.setDisabled(readOnly);
13523 this.eType2.setDisabled(readOnly);
13524 };
13525 SimpleFilter.prototype.isAllowTwoConditions = function () {
13526 return this.allowTwoConditions;
13527 };
13528 SimpleFilter.prototype.createBodyTemplate = function () {
13529 return /* html */ "\n <ag-select class=\"ag-filter-select\" ref=\"eOptions1\"></ag-select>\n " + this.createValueTemplate(ConditionPosition.One) + "\n <div class=\"ag-filter-condition\" ref=\"eJoinOperatorPanel\">\n <ag-radio-button ref=\"eJoinOperatorAnd\" class=\"ag-filter-condition-operator ag-filter-condition-operator-and\"></ag-radio-button>\n <ag-radio-button ref=\"eJoinOperatorOr\" class=\"ag-filter-condition-operator ag-filter-condition-operator-or\"></ag-radio-button>\n </div>\n <ag-select class=\"ag-filter-select\" ref=\"eOptions2\"></ag-select>\n " + this.createValueTemplate(ConditionPosition.Two);
13530 };
13531 SimpleFilter.prototype.getCssIdentifier = function () {
13532 return 'simple-filter';
13533 };
13534 SimpleFilter.prototype.updateUiVisibility = function () {
13535 var isCondition2Enabled = this.isCondition2Enabled();
13536 if (this.alwaysShowBothConditions) {
13537 this.eJoinOperatorAnd.setDisabled(!isCondition2Enabled);
13538 this.eJoinOperatorOr.setDisabled(!isCondition2Enabled);
13539 this.eType2.setDisabled(!isCondition2Enabled);
13540 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisabled"])(this.eCondition2Body, !isCondition2Enabled);
13541 }
13542 else {
13543 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisplayed"])(this.eJoinOperatorPanel, isCondition2Enabled);
13544 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisplayed"])(this.eType2.getGui(), isCondition2Enabled);
13545 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisplayed"])(this.eCondition2Body, isCondition2Enabled);
13546 }
13547 };
13548 SimpleFilter.prototype.isCondition2Enabled = function () {
13549 return this.allowTwoConditions && this.isConditionUiComplete(ConditionPosition.One);
13550 };
13551 SimpleFilter.prototype.resetUiToDefaults = function (silent) {
13552 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
13553 var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');
13554 var uniqueGroupId = 'ag-simple-filter-and-or-' + this.getCompId();
13555 var defaultOption = this.optionsFactory.getDefaultOption();
13556 this.eType1.setValue(defaultOption, silent).setAriaLabel(filteringLabel);
13557 this.eType2.setValue(defaultOption, silent).setAriaLabel(filteringLabel);
13558 this.eJoinOperatorAnd
13559 .setValue(this.isDefaultOperator('AND'), silent)
13560 .setName(uniqueGroupId)
13561 .setLabel(this.translate('andCondition'));
13562 this.eJoinOperatorOr
13563 .setValue(this.isDefaultOperator('OR'), silent)
13564 .setName(uniqueGroupId)
13565 .setLabel(this.translate('orCondition'));
13566 return _utils__WEBPACK_IMPORTED_MODULE_3__["AgPromise"].resolve();
13567 };
13568 SimpleFilter.prototype.isDefaultOperator = function (operator) {
13569 return operator === this.defaultJoinOperator;
13570 };
13571 SimpleFilter.prototype.addChangedListeners = function () {
13572 var _this = this;
13573 var listener = function () { return _this.onUiChanged(); };
13574 this.eType1.onValueChange(listener);
13575 this.eType2.onValueChange(listener);
13576 this.eJoinOperatorOr.onValueChange(listener);
13577 this.eJoinOperatorAnd.onValueChange(listener);
13578 };
13579 SimpleFilter.prototype.doesFilterHaveHiddenInput = function (filterType) {
13580 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
13581 return customFilterOption && customFilterOption.hideFilterInput;
13582 };
13583 SimpleFilter.EMPTY = 'empty';
13584 SimpleFilter.EQUALS = 'equals';
13585 SimpleFilter.NOT_EQUAL = 'notEqual';
13586 SimpleFilter.LESS_THAN = 'lessThan';
13587 SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';
13588 SimpleFilter.GREATER_THAN = 'greaterThan';
13589 SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';
13590 SimpleFilter.IN_RANGE = 'inRange';
13591 SimpleFilter.CONTAINS = 'contains';
13592 SimpleFilter.NOT_CONTAINS = 'notContains';
13593 SimpleFilter.STARTS_WITH = 'startsWith';
13594 SimpleFilter.ENDS_WITH = 'endsWith';
13595 __decorate([
13596 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eOptions1')
13597 ], SimpleFilter.prototype, "eType1", void 0);
13598 __decorate([
13599 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eOptions2')
13600 ], SimpleFilter.prototype, "eType2", void 0);
13601 __decorate([
13602 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eJoinOperatorPanel')
13603 ], SimpleFilter.prototype, "eJoinOperatorPanel", void 0);
13604 __decorate([
13605 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eJoinOperatorAnd')
13606 ], SimpleFilter.prototype, "eJoinOperatorAnd", void 0);
13607 __decorate([
13608 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eJoinOperatorOr')
13609 ], SimpleFilter.prototype, "eJoinOperatorOr", void 0);
13610 __decorate([
13611 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition1Body')
13612 ], SimpleFilter.prototype, "eCondition1Body", void 0);
13613 __decorate([
13614 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition2Body')
13615 ], SimpleFilter.prototype, "eCondition2Body", void 0);
13616 return SimpleFilter;
13617}(_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"]));
13618
13619
13620
13621/***/ }),
13622/* 64 */
13623/***/ (function(module, __webpack_exports__, __webpack_require__) {
13624
13625"use strict";
13626__webpack_require__.r(__webpack_exports__);
13627/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OptionsFactory", function() { return OptionsFactory; });
13628/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
13629/**
13630 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13631 * @version v25.3.0
13632 * @link http://www.ag-grid.com/
13633 * @license MIT
13634 */
13635
13636/* Common logic for options, used by both filters and floating filters. */
13637var OptionsFactory = /** @class */ (function () {
13638 function OptionsFactory() {
13639 this.customFilterOptions = {};
13640 }
13641 OptionsFactory.prototype.init = function (params, defaultOptions) {
13642 this.filterOptions = params.filterOptions || defaultOptions;
13643 this.mapCustomOptions();
13644 this.selectDefaultItem(params);
13645 };
13646 OptionsFactory.prototype.getFilterOptions = function () {
13647 return this.filterOptions;
13648 };
13649 OptionsFactory.prototype.mapCustomOptions = function () {
13650 var _this = this;
13651 if (!this.filterOptions) {
13652 return;
13653 }
13654 this.filterOptions.forEach(function (filterOption) {
13655 if (typeof filterOption === 'string') {
13656 return;
13657 }
13658 var requiredProperties = ['displayKey', 'displayName', 'test'];
13659 if (Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["every"])(requiredProperties, function (key) {
13660 if (!filterOption[key]) {
13661 console.warn("AG Grid: ignoring FilterOptionDef as it doesn't contain a '" + key + "'");
13662 return false;
13663 }
13664 return true;
13665 })) {
13666 _this.customFilterOptions[filterOption.displayKey] = filterOption;
13667 }
13668 });
13669 };
13670 OptionsFactory.prototype.selectDefaultItem = function (params) {
13671 if (params.defaultOption) {
13672 this.defaultOption = params.defaultOption;
13673 }
13674 else if (this.filterOptions.length >= 1) {
13675 var firstFilterOption = this.filterOptions[0];
13676 if (typeof firstFilterOption === 'string') {
13677 this.defaultOption = firstFilterOption;
13678 }
13679 else if (firstFilterOption.displayKey) {
13680 this.defaultOption = firstFilterOption.displayKey;
13681 }
13682 else {
13683 console.warn("AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'");
13684 }
13685 }
13686 else {
13687 console.warn('AG Grid: no filter options for filter');
13688 }
13689 };
13690 OptionsFactory.prototype.getDefaultOption = function () {
13691 return this.defaultOption;
13692 };
13693 OptionsFactory.prototype.getCustomOption = function (name) {
13694 return this.customFilterOptions[name];
13695 };
13696 return OptionsFactory;
13697}());
13698
13699
13700
13701/***/ }),
13702/* 65 */
13703/***/ (function(module, __webpack_exports__, __webpack_require__) {
13704
13705"use strict";
13706__webpack_require__.r(__webpack_exports__);
13707/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return ProvidedFilter; });
13708/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
13709/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
13710/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
13711/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
13712/* harmony import */ var _filterLocaleText__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(66);
13713/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67);
13714/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(54);
13715/**
13716 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13717 * @version v25.3.0
13718 * @link http://www.ag-grid.com/
13719 * @license MIT
13720 */
13721var __extends = (undefined && undefined.__extends) || (function () {
13722 var extendStatics = function (d, b) {
13723 extendStatics = Object.setPrototypeOf ||
13724 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13725 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13726 return extendStatics(d, b);
13727 };
13728 return function (d, b) {
13729 extendStatics(d, b);
13730 function __() { this.constructor = d; }
13731 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13732 };
13733})();
13734var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13735 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13736 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13737 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13738 return c > 3 && r && Object.defineProperty(target, key, r), r;
13739};
13740
13741
13742
13743
13744
13745
13746
13747/**
13748 * Contains common logic to all provided filters (apply button, clear button, etc).
13749 * All the filters that come with AG Grid extend this class. User filters do not
13750 * extend this class.
13751 */
13752var ProvidedFilter = /** @class */ (function (_super) {
13753 __extends(ProvidedFilter, _super);
13754 function ProvidedFilter(filterNameKey) {
13755 var _this = _super.call(this) || this;
13756 _this.filterNameKey = filterNameKey;
13757 _this.applyActive = false;
13758 _this.hidePopup = null;
13759 // after the user hits 'apply' the model gets copied to here. this is then the model that we use for
13760 // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.
13761 // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is
13762 // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter
13763 // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter
13764 // not active) then this appliedModel will be null/undefined.
13765 _this.appliedModel = null;
13766 return _this;
13767 }
13768 ProvidedFilter.prototype.getFilterTitle = function () {
13769 return this.translate(this.filterNameKey);
13770 };
13771 /** @deprecated */
13772 ProvidedFilter.prototype.onFilterChanged = function () {
13773 console.warn("AG Grid: you should not call onFilterChanged() directly on the filter, please call\n gridApi.onFilterChanged() instead. onFilterChanged is not part of the exposed filter interface (it was\n a method that existed on an old version of the filters that was not intended for public use.");
13774 this.providedFilterParams.filterChangedCallback();
13775 };
13776 ProvidedFilter.prototype.isFilterActive = function () {
13777 // filter is active if we have a valid applied model
13778 return !!this.appliedModel;
13779 };
13780 ProvidedFilter.prototype.postConstruct = function () {
13781 this.resetTemplate(); // do this first to create the DOM
13782 _super.prototype.postConstruct.call(this);
13783 };
13784 ProvidedFilter.prototype.resetTemplate = function (paramsMap) {
13785 var templateString = /* html */ "\n <div class=\"ag-filter-wrapper\">\n <div class=\"ag-filter-body-wrapper ag-" + this.getCssIdentifier() + "-body-wrapper\">\n " + this.createBodyTemplate() + "\n </div>\n </div>";
13786 this.setTemplate(templateString, paramsMap);
13787 };
13788 ProvidedFilter.prototype.init = function (params) {
13789 var _this = this;
13790 this.setParams(params);
13791 this.resetUiToDefaults(true).then(function () {
13792 _this.updateUiVisibility();
13793 _this.setupOnBtApplyDebounce();
13794 });
13795 };
13796 ProvidedFilter.prototype.setParams = function (params) {
13797 ProvidedFilter.checkForDeprecatedParams(params);
13798 this.providedFilterParams = params;
13799 if (params.newRowsAction === 'keep') {
13800 this.newRowsActionKeep = true;
13801 }
13802 else if (params.newRowsAction === 'clear') {
13803 this.newRowsActionKeep = false;
13804 }
13805 else {
13806 // the default for SSRM and IRM is 'keep', for CSRM and VRM the default is 'clear'
13807 var modelsForKeep = [_constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE, _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE];
13808 this.newRowsActionKeep = modelsForKeep.indexOf(this.rowModel.getType()) >= 0;
13809 }
13810 this.applyActive = ProvidedFilter.isUseApplyButton(params);
13811 this.createButtonPanel();
13812 };
13813 ProvidedFilter.prototype.createButtonPanel = function () {
13814 var _this = this;
13815 var buttons = this.providedFilterParams.buttons;
13816 if (!buttons || buttons.length < 1) {
13817 return;
13818 }
13819 var eButtonsPanel = document.createElement('div');
13820 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eButtonsPanel, 'ag-filter-apply-panel');
13821 var addButton = function (type) {
13822 var text;
13823 var clickListener;
13824 switch (type) {
13825 case 'apply':
13826 text = _this.translate('applyFilter');
13827 clickListener = function (e) { return _this.onBtApply(false, false, e); };
13828 break;
13829 case 'clear':
13830 text = _this.translate('clearFilter');
13831 clickListener = function () { return _this.onBtClear(); };
13832 break;
13833 case 'reset':
13834 text = _this.translate('resetFilter');
13835 clickListener = function () { return _this.onBtReset(); };
13836 break;
13837 case 'cancel':
13838 text = _this.translate('cancelFilter');
13839 clickListener = function (e) { _this.onBtCancel(e); };
13840 break;
13841 default:
13842 console.warn('Unknown button type specified');
13843 return;
13844 }
13845 var button = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])(
13846 /* html */
13847 "<button\n type=\"button\"\n ref=\"" + type + "FilterButton\"\n class=\"ag-standard-button ag-filter-apply-panel-button\"\n >" + text + "\n </button>");
13848 eButtonsPanel.appendChild(button);
13849 _this.addManagedListener(button, 'click', clickListener);
13850 };
13851 Object(_utils_set__WEBPACK_IMPORTED_MODULE_6__["convertToSet"])(buttons).forEach(function (type) { return addButton(type); });
13852 this.getGui().appendChild(eButtonsPanel);
13853 };
13854 ProvidedFilter.checkForDeprecatedParams = function (params) {
13855 var buttons = params.buttons || [];
13856 if (buttons.length > 0) {
13857 return;
13858 }
13859 var applyButton = params.applyButton, resetButton = params.resetButton, clearButton = params.clearButton;
13860 if (clearButton) {
13861 console.warn('AG Grid: as of AG Grid v23.2, filterParams.clearButton is deprecated. Please use filterParams.buttons instead');
13862 buttons.push('clear');
13863 }
13864 if (resetButton) {
13865 console.warn('AG Grid: as of AG Grid v23.2, filterParams.resetButton is deprecated. Please use filterParams.buttons instead');
13866 buttons.push('reset');
13867 }
13868 if (applyButton) {
13869 console.warn('AG Grid: as of AG Grid v23.2, filterParams.applyButton is deprecated. Please use filterParams.buttons instead');
13870 buttons.push('apply');
13871 }
13872 if (params.apply) {
13873 console.warn('AG Grid: as of AG Grid v21, filterParams.apply is deprecated. Please use filterParams.buttons instead');
13874 buttons.push('apply');
13875 }
13876 params.buttons = buttons;
13877 };
13878 // subclasses can override this to provide alternative debounce defaults
13879 ProvidedFilter.prototype.getDefaultDebounceMs = function () {
13880 return 0;
13881 };
13882 ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {
13883 var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());
13884 this.onBtApplyDebounce = Object(_utils_function__WEBPACK_IMPORTED_MODULE_3__["debounce"])(this.onBtApply.bind(this), debounceMs);
13885 };
13886 ProvidedFilter.prototype.getModel = function () {
13887 return this.appliedModel;
13888 };
13889 ProvidedFilter.prototype.setModel = function (model) {
13890 var _this = this;
13891 var promise = model ? this.setModelIntoUi(model) : this.resetUiToDefaults();
13892 return promise.then(function () {
13893 _this.updateUiVisibility();
13894 // we set the model from the GUI, rather than the provided model,
13895 // so the model is consistent, e.g. handling of null/undefined will be the same,
13896 // or if model is case insensitive, then casing is removed.
13897 _this.applyModel();
13898 });
13899 };
13900 ProvidedFilter.prototype.onBtCancel = function (e) {
13901 var _this = this;
13902 var currentModel = this.getModel();
13903 var afterAppliedFunc = function () {
13904 _this.onUiChanged(false, 'prevent');
13905 if (_this.providedFilterParams.closeOnApply) {
13906 _this.close(e);
13907 }
13908 };
13909 if (currentModel != null) {
13910 this.setModelIntoUi(currentModel).then(afterAppliedFunc);
13911 }
13912 else {
13913 this.resetUiToDefaults().then(afterAppliedFunc);
13914 }
13915 };
13916 ProvidedFilter.prototype.onBtClear = function () {
13917 var _this = this;
13918 this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });
13919 };
13920 ProvidedFilter.prototype.onBtReset = function () {
13921 this.onBtClear();
13922 this.onBtApply();
13923 };
13924 /**
13925 * Applies changes made in the UI to the filter, and returns true if the model has changed.
13926 */
13927 ProvidedFilter.prototype.applyModel = function () {
13928 var newModel = this.getModelFromUi();
13929 if (!this.isModelValid(newModel)) {
13930 return false;
13931 }
13932 var previousModel = this.appliedModel;
13933 this.appliedModel = newModel;
13934 // models can be same if user pasted same content into text field, or maybe just changed the case
13935 // and it's a case insensitive filter
13936 return !this.areModelsEqual(previousModel, newModel);
13937 };
13938 ProvidedFilter.prototype.isModelValid = function (model) {
13939 return true;
13940 };
13941 ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {
13942 if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }
13943 if (afterDataChange === void 0) { afterDataChange = false; }
13944 if (this.applyModel()) {
13945 // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change
13946 // came from floating filter
13947 this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange });
13948 }
13949 var closeOnApply = this.providedFilterParams.closeOnApply;
13950 // only close if an apply button is visible, otherwise we'd be closing every time a change was made!
13951 if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {
13952 this.close(e);
13953 }
13954 };
13955 ProvidedFilter.prototype.onNewRowsLoaded = function () {
13956 var _this = this;
13957 if (!this.newRowsActionKeep) {
13958 this.resetUiToDefaults().then(function () { return _this.appliedModel = null; });
13959 }
13960 };
13961 ProvidedFilter.prototype.close = function (e) {
13962 if (!this.hidePopup) {
13963 return;
13964 }
13965 var keyboardEvent = e;
13966 var key = keyboardEvent && keyboardEvent.key;
13967 var params;
13968 if (key === 'Enter' || key === 'Space') {
13969 params = { keyboardEvent: keyboardEvent };
13970 }
13971 this.hidePopup(params);
13972 this.hidePopup = null;
13973 };
13974 // called by set filter
13975 ProvidedFilter.prototype.isNewRowsActionKeep = function () {
13976 return this.newRowsActionKeep;
13977 };
13978 /**
13979 * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no
13980 * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can
13981 * be adjusted by using the apply parameter.
13982 */
13983 ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {
13984 if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }
13985 this.updateUiVisibility();
13986 this.providedFilterParams.filterModifiedCallback();
13987 if (this.applyActive) {
13988 var isValid = this.isModelValid(this.getModelFromUi());
13989 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisabled"])(this.getRefElement('applyFilterButton'), !isValid);
13990 }
13991 if ((fromFloatingFilter && !apply) || apply === 'immediately') {
13992 this.onBtApply(fromFloatingFilter);
13993 }
13994 else if ((!this.applyActive && !apply) || apply === 'debounce') {
13995 this.onBtApplyDebounce();
13996 }
13997 };
13998 ProvidedFilter.prototype.afterGuiAttached = function (params) {
13999 if (params == null) {
14000 return;
14001 }
14002 this.hidePopup = params.hidePopup;
14003 };
14004 // static, as used by floating filter also
14005 ProvidedFilter.getDebounceMs = function (params, debounceDefault) {
14006 if (ProvidedFilter.isUseApplyButton(params)) {
14007 if (params.debounceMs != null) {
14008 console.warn('AG Grid: debounceMs is ignored when apply button is present');
14009 }
14010 return 0;
14011 }
14012 return params.debounceMs != null ? params.debounceMs : debounceDefault;
14013 };
14014 // static, as used by floating filter also
14015 ProvidedFilter.isUseApplyButton = function (params) {
14016 ProvidedFilter.checkForDeprecatedParams(params);
14017 return !!params.buttons && params.buttons.indexOf('apply') >= 0;
14018 };
14019 ProvidedFilter.prototype.destroy = function () {
14020 this.hidePopup = null;
14021 _super.prototype.destroy.call(this);
14022 };
14023 ProvidedFilter.prototype.translate = function (key) {
14024 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
14025 return translate(key, _filterLocaleText__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_FILTER_LOCALE_TEXT"][key]);
14026 };
14027 __decorate([
14028 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
14029 ], ProvidedFilter.prototype, "rowModel", void 0);
14030 __decorate([
14031 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
14032 ], ProvidedFilter.prototype, "postConstruct", null);
14033 return ProvidedFilter;
14034}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_5__["ManagedFocusComponent"]));
14035
14036
14037
14038/***/ }),
14039/* 66 */
14040/***/ (function(module, __webpack_exports__, __webpack_require__) {
14041
14042"use strict";
14043__webpack_require__.r(__webpack_exports__);
14044/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_FILTER_LOCALE_TEXT", function() { return DEFAULT_FILTER_LOCALE_TEXT; });
14045/**
14046 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14047 * @version v25.3.0
14048 * @link http://www.ag-grid.com/
14049 * @license MIT
14050 */
14051var DEFAULT_FILTER_LOCALE_TEXT = {
14052 applyFilter: 'Apply',
14053 clearFilter: 'Clear',
14054 resetFilter: 'Reset',
14055 cancelFilter: 'Cancel',
14056 textFilter: 'Text Filter',
14057 numberFilter: 'Number Filter',
14058 dateFilter: 'Date Filter',
14059 setFilter: 'Set Filter',
14060 filterOoo: 'Filter...',
14061 empty: 'Choose One',
14062 equals: 'Equals',
14063 notEqual: 'Not equal',
14064 lessThan: 'Less than',
14065 greaterThan: 'Greater than',
14066 inRange: 'In range',
14067 inRangeStart: 'From',
14068 inRangeEnd: 'To',
14069 lessThanOrEqual: 'Less than or equals',
14070 greaterThanOrEqual: 'Greater than or equals',
14071 contains: 'Contains',
14072 notContains: 'Not contains',
14073 startsWith: 'Starts with',
14074 endsWith: 'Ends with',
14075 andCondition: 'AND',
14076 orCondition: 'OR',
14077 dateFormatOoo: 'yyyy-mm-dd',
14078};
14079
14080
14081/***/ }),
14082/* 67 */
14083/***/ (function(module, __webpack_exports__, __webpack_require__) {
14084
14085"use strict";
14086__webpack_require__.r(__webpack_exports__);
14087/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusComponent", function() { return ManagedFocusComponent; });
14088/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
14089/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
14090/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
14091/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
14092/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21);
14093/**
14094 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14095 * @version v25.3.0
14096 * @link http://www.ag-grid.com/
14097 * @license MIT
14098 */
14099var __extends = (undefined && undefined.__extends) || (function () {
14100 var extendStatics = function (d, b) {
14101 extendStatics = Object.setPrototypeOf ||
14102 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14103 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14104 return extendStatics(d, b);
14105 };
14106 return function (d, b) {
14107 extendStatics(d, b);
14108 function __() { this.constructor = d; }
14109 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14110 };
14111})();
14112var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14113 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14114 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14115 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
14116 return c > 3 && r && Object.defineProperty(target, key, r), r;
14117};
14118
14119
14120
14121
14122
14123/**
14124 * This provides logic to override the default browser focus logic.
14125 *
14126 * When the component gets focus, it uses the grid logic to find out what should be focused,
14127 * and then focuses that instead.
14128 *
14129 * This is how we ensure when user tabs into the relevant section, we focus the correct item.
14130 * For example GridCore extends ManagedFocusComponent, and it ensures when it receives focus
14131 * that focus goes to the first cell of the first header row.
14132 */
14133var ManagedFocusComponent = /** @class */ (function (_super) {
14134 __extends(ManagedFocusComponent, _super);
14135 /*
14136 * Set isFocusableContainer to true if this component will contain multiple focus-managed
14137 * elements within. When set to true, this component will add tabGuards that will be responsible
14138 * for receiving focus from outside and focusing an internal element using the focusInnerElementMethod
14139 */
14140 function ManagedFocusComponent(template, isFocusableContainer) {
14141 if (isFocusableContainer === void 0) { isFocusableContainer = false; }
14142 var _this = _super.call(this, template) || this;
14143 _this.isFocusableContainer = isFocusableContainer;
14144 _this.skipTabGuardFocus = false;
14145 return _this;
14146 }
14147 ManagedFocusComponent.prototype.postConstruct = function () {
14148 var _this = this;
14149 var focusableElement = this.getFocusableElement();
14150 if (!focusableElement) {
14151 return;
14152 }
14153 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(focusableElement, ManagedFocusComponent.FOCUS_MANAGED_CLASS);
14154 if (this.isFocusableContainer) {
14155 this.topTabGuard = this.createTabGuard('top');
14156 this.bottomTabGuard = this.createTabGuard('bottom');
14157 this.addTabGuards();
14158 this.activateTabGuards();
14159 this.forEachTabGuard(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });
14160 }
14161 this.addKeyDownListeners(focusableElement);
14162 this.addManagedListener(focusableElement, 'focusin', this.onFocusIn.bind(this));
14163 this.addManagedListener(focusableElement, 'focusout', this.onFocusOut.bind(this));
14164 };
14165 /*
14166 * Override this method if focusing the default element requires special logic.
14167 */
14168 ManagedFocusComponent.prototype.focusInnerElement = function (fromBottom) {
14169 if (fromBottom === void 0) { fromBottom = false; }
14170 var focusable = this.focusController.findFocusableElements(this.getFocusableElement());
14171 if (this.isFocusableContainer && this.tabGuardsAreActive()) {
14172 // remove tab guards from this component from list of focusable elements
14173 focusable.splice(0, 1);
14174 focusable.splice(focusable.length - 1, 1);
14175 }
14176 if (!focusable.length) {
14177 return;
14178 }
14179 focusable[fromBottom ? focusable.length - 1 : 0].focus();
14180 };
14181 /**
14182 * By default this will tab though the elements in the default order. Override if you require special logic.
14183 */
14184 ManagedFocusComponent.prototype.onTabKeyDown = function (e) {
14185 var _this = this;
14186 if (e.defaultPrevented) {
14187 return;
14188 }
14189 var tabGuardsAreActive = this.tabGuardsAreActive();
14190 if (this.isFocusableContainer && tabGuardsAreActive) {
14191 this.deactivateTabGuards();
14192 }
14193 var nextRoot = this.focusController.findNextFocusableElement(this.getFocusableElement(), false, e.shiftKey);
14194 if (this.isFocusableContainer && tabGuardsAreActive) {
14195 // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser
14196 // tabbing to the tab guard from inside the component
14197 setTimeout(function () { return _this.activateTabGuards(); }, 0);
14198 }
14199 if (!nextRoot) {
14200 return;
14201 }
14202 nextRoot.focus();
14203 e.preventDefault();
14204 };
14205 ManagedFocusComponent.prototype.onFocusIn = function (e) {
14206 if (this.isFocusableContainer) {
14207 this.deactivateTabGuards();
14208 }
14209 };
14210 ManagedFocusComponent.prototype.onFocusOut = function (e) {
14211 if (this.isFocusableContainer && !this.getFocusableElement().contains(e.relatedTarget)) {
14212 this.activateTabGuards();
14213 }
14214 };
14215 ManagedFocusComponent.prototype.forceFocusOutOfContainer = function (up) {
14216 if (up === void 0) { up = false; }
14217 if (!this.isFocusableContainer) {
14218 return;
14219 }
14220 this.activateTabGuards();
14221 this.skipTabGuardFocus = true;
14222 var tabGuardToFocus = up ? this.topTabGuard : this.bottomTabGuard;
14223 if (tabGuardToFocus) {
14224 tabGuardToFocus.focus();
14225 }
14226 };
14227 ManagedFocusComponent.prototype.appendChild = function (newChild, container) {
14228 if (this.isFocusableContainer) {
14229 if (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isNodeOrElement"])(newChild)) {
14230 newChild = newChild.getGui();
14231 }
14232 var bottomTabGuard = this.bottomTabGuard;
14233 if (bottomTabGuard) {
14234 bottomTabGuard.insertAdjacentElement('beforebegin', newChild);
14235 }
14236 else {
14237 _super.prototype.appendChild.call(this, newChild, container);
14238 }
14239 }
14240 else {
14241 _super.prototype.appendChild.call(this, newChild, container);
14242 }
14243 };
14244 ManagedFocusComponent.prototype.createTabGuard = function (side) {
14245 var tabGuard = document.createElement('div');
14246 tabGuard.classList.add('ag-tab-guard');
14247 tabGuard.classList.add("ag-tab-guard-" + side);
14248 tabGuard.setAttribute('role', 'presentation');
14249 return tabGuard;
14250 };
14251 ManagedFocusComponent.prototype.addTabGuards = function () {
14252 var focusableEl = this.getFocusableElement();
14253 focusableEl.insertAdjacentElement('afterbegin', this.topTabGuard);
14254 focusableEl.insertAdjacentElement('beforeend', this.bottomTabGuard);
14255 };
14256 ManagedFocusComponent.prototype.forEachTabGuard = function (callback) {
14257 if (this.topTabGuard) {
14258 callback(this.topTabGuard);
14259 }
14260 if (this.bottomTabGuard) {
14261 callback(this.bottomTabGuard);
14262 }
14263 };
14264 ManagedFocusComponent.prototype.addKeyDownListeners = function (eGui) {
14265 var _this = this;
14266 this.addManagedListener(eGui, 'keydown', function (e) {
14267 if (e.defaultPrevented || Object(_utils_event__WEBPACK_IMPORTED_MODULE_4__["isStopPropagationForAgGrid"])(e)) {
14268 return;
14269 }
14270 if (_this.shouldStopEventPropagation(e)) {
14271 Object(_utils_event__WEBPACK_IMPORTED_MODULE_4__["stopPropagationForAgGrid"])(e);
14272 return;
14273 }
14274 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].TAB) {
14275 _this.onTabKeyDown(e);
14276 }
14277 else if (_this.handleKeyDown) {
14278 _this.handleKeyDown(e);
14279 }
14280 });
14281 };
14282 ManagedFocusComponent.prototype.shouldStopEventPropagation = function (e) {
14283 return false;
14284 };
14285 ManagedFocusComponent.prototype.onFocus = function (e) {
14286 if (this.skipTabGuardFocus) {
14287 this.skipTabGuardFocus = false;
14288 return;
14289 }
14290 this.focusInnerElement(e.target === this.bottomTabGuard);
14291 };
14292 ManagedFocusComponent.prototype.activateTabGuards = function () {
14293 var _this = this;
14294 this.forEachTabGuard(function (guard) { return guard.setAttribute('tabIndex', _this.gridOptionsWrapper.getGridTabIndex()); });
14295 };
14296 ManagedFocusComponent.prototype.deactivateTabGuards = function () {
14297 this.forEachTabGuard(function (guard) { return guard.removeAttribute('tabIndex'); });
14298 };
14299 ManagedFocusComponent.prototype.tabGuardsAreActive = function () {
14300 return !!this.topTabGuard && this.topTabGuard.hasAttribute('tabIndex');
14301 };
14302 ManagedFocusComponent.prototype.clearGui = function () {
14303 var tabGuardsAreActive = this.tabGuardsAreActive();
14304 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.getFocusableElement());
14305 if (this.isFocusableContainer) {
14306 this.addTabGuards();
14307 if (tabGuardsAreActive) {
14308 this.activateTabGuards();
14309 }
14310 }
14311 };
14312 ManagedFocusComponent.FOCUS_MANAGED_CLASS = 'ag-focus-managed';
14313 __decorate([
14314 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
14315 ], ManagedFocusComponent.prototype, "focusController", void 0);
14316 __decorate([
14317 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
14318 ], ManagedFocusComponent.prototype, "postConstruct", null);
14319 return ManagedFocusComponent;
14320}(_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
14321
14322
14323
14324/***/ }),
14325/* 68 */
14326/***/ (function(module, __webpack_exports__, __webpack_require__) {
14327
14328"use strict";
14329__webpack_require__.r(__webpack_exports__);
14330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return ScalarFilter; });
14331/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63);
14332/**
14333 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14334 * @version v25.3.0
14335 * @link http://www.ag-grid.com/
14336 * @license MIT
14337 */
14338var __extends = (undefined && undefined.__extends) || (function () {
14339 var extendStatics = function (d, b) {
14340 extendStatics = Object.setPrototypeOf ||
14341 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14342 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14343 return extendStatics(d, b);
14344 };
14345 return function (d, b) {
14346 extendStatics(d, b);
14347 function __() { this.constructor = d; }
14348 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14349 };
14350})();
14351
14352var ScalarFilter = /** @class */ (function (_super) {
14353 __extends(ScalarFilter, _super);
14354 function ScalarFilter() {
14355 return _super !== null && _super.apply(this, arguments) || this;
14356 }
14357 ScalarFilter.prototype.setParams = function (params) {
14358 _super.prototype.setParams.call(this, params);
14359 this.scalarFilterParams = params;
14360 this.checkDeprecatedParams();
14361 };
14362 ScalarFilter.prototype.checkDeprecatedParams = function () {
14363 if (this.scalarFilterParams.nullComparator) {
14364 console.warn('AG Grid: Since v21.0, the property filterParams.nullComparator is deprecated. ' +
14365 'Please use filterParams.includeBlanksInEquals, filterParams.includeBlanksInLessThan and ' +
14366 'filterParams.includeBlanksInGreaterThan instead.');
14367 this.scalarFilterParams.includeBlanksInEquals = this.scalarFilterParams.nullComparator.equals;
14368 this.scalarFilterParams.includeBlanksInLessThan = this.scalarFilterParams.nullComparator.lessThan;
14369 this.scalarFilterParams.includeBlanksInGreaterThan = this.scalarFilterParams.nullComparator.greaterThan;
14370 }
14371 };
14372 ScalarFilter.prototype.individualConditionPasses = function (params, filterModel) {
14373 var cellValue = this.scalarFilterParams.valueGetter(params.node);
14374 var range = this.mapRangeFromModel(filterModel);
14375 var filterValue = range.from;
14376 var filterValueTo = range.to;
14377 var filterType = filterModel.type;
14378 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
14379 if (customFilterOption) {
14380 // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden
14381 if (filterValue != null || customFilterOption.hideFilterInput) {
14382 return customFilterOption.test(filterValue, cellValue);
14383 }
14384 }
14385 if (cellValue == null) {
14386 switch (filterType) {
14387 case ScalarFilter.EQUALS:
14388 case ScalarFilter.NOT_EQUAL:
14389 if (this.scalarFilterParams.includeBlanksInEquals) {
14390 return true;
14391 }
14392 break;
14393 case ScalarFilter.GREATER_THAN:
14394 case ScalarFilter.GREATER_THAN_OR_EQUAL:
14395 if (this.scalarFilterParams.includeBlanksInGreaterThan) {
14396 return true;
14397 }
14398 break;
14399 case ScalarFilter.LESS_THAN:
14400 case ScalarFilter.LESS_THAN_OR_EQUAL:
14401 if (this.scalarFilterParams.includeBlanksInLessThan) {
14402 return true;
14403 }
14404 break;
14405 case ScalarFilter.IN_RANGE:
14406 if (this.scalarFilterParams.includeBlanksInRange) {
14407 return true;
14408 }
14409 break;
14410 }
14411 return false;
14412 }
14413 var comparator = this.comparator();
14414 var compareResult = comparator(filterValue, cellValue);
14415 switch (filterType) {
14416 case ScalarFilter.EQUALS:
14417 return compareResult === 0;
14418 case ScalarFilter.NOT_EQUAL:
14419 return compareResult !== 0;
14420 case ScalarFilter.GREATER_THAN:
14421 return compareResult > 0;
14422 case ScalarFilter.GREATER_THAN_OR_EQUAL:
14423 return compareResult >= 0;
14424 case ScalarFilter.LESS_THAN:
14425 return compareResult < 0;
14426 case ScalarFilter.LESS_THAN_OR_EQUAL:
14427 return compareResult <= 0;
14428 case ScalarFilter.IN_RANGE: {
14429 var compareToResult = comparator(filterValueTo, cellValue);
14430 return this.scalarFilterParams.inRangeInclusive ?
14431 compareResult >= 0 && compareToResult <= 0 :
14432 compareResult > 0 && compareToResult < 0;
14433 }
14434 default:
14435 console.warn('AG Grid: Unexpected type of filter "' + filterType + '", it looks like the filter was configured with incorrect Filter Options');
14436 return true;
14437 }
14438 };
14439 return ScalarFilter;
14440}(_simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"]));
14441
14442
14443
14444/***/ }),
14445/* 69 */
14446/***/ (function(module, __webpack_exports__, __webpack_require__) {
14447
14448"use strict";
14449__webpack_require__.r(__webpack_exports__);
14450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComp", function() { return HeaderComp; });
14451/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
14452/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
14453/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
14454/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70);
14455/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(59);
14456/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
14457/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(26);
14458/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50);
14459/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
14460/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34);
14461/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
14462/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14);
14463/**
14464 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14465 * @version v25.3.0
14466 * @link http://www.ag-grid.com/
14467 * @license MIT
14468 */
14469var __extends = (undefined && undefined.__extends) || (function () {
14470 var extendStatics = function (d, b) {
14471 extendStatics = Object.setPrototypeOf ||
14472 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14473 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14474 return extendStatics(d, b);
14475 };
14476 return function (d, b) {
14477 extendStatics(d, b);
14478 function __() { this.constructor = d; }
14479 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14480 };
14481})();
14482var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14483 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14484 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14485 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
14486 return c > 3 && r && Object.defineProperty(target, key, r), r;
14487};
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500var HeaderComp = /** @class */ (function (_super) {
14501 __extends(HeaderComp, _super);
14502 function HeaderComp() {
14503 var _this = _super !== null && _super.apply(this, arguments) || this;
14504 _this.lastMovingChanged = 0;
14505 return _this;
14506 }
14507 // this is a user component, and IComponent has "public destroy()" as part of the interface.
14508 // so we need to override destroy() just to make the method public.
14509 HeaderComp.prototype.destroy = function () {
14510 _super.prototype.destroy.call(this);
14511 };
14512 HeaderComp.prototype.refresh = function (params) {
14513 this.params = params;
14514 // if template changed, then recreate the whole comp, the code required to manage
14515 // a changing template is to difficult for what it's worth.
14516 if (this.workOutTemplate() != this.currentTemplate) {
14517 return false;
14518 }
14519 if (this.workOutShowMenu() != this.currentShowMenu) {
14520 return false;
14521 }
14522 if (this.workOutSort() != this.currentSort) {
14523 return false;
14524 }
14525 this.setDisplayName(params);
14526 return true;
14527 };
14528 HeaderComp.prototype.workOutTemplate = function () {
14529 var template = Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["firstExistingValue"])(this.params.template, HeaderComp.TEMPLATE);
14530 // take account of any newlines & whitespace before/after the actual template
14531 template = template && template.trim ? template.trim() : template;
14532 return template;
14533 };
14534 HeaderComp.prototype.init = function (params) {
14535 this.params = params;
14536 this.currentTemplate = this.workOutTemplate();
14537 this.setTemplate(this.currentTemplate);
14538 this.setupTap();
14539 this.setupIcons(params.column);
14540 this.setMenu();
14541 this.setupSort();
14542 this.setupFilterIcon();
14543 this.setDisplayName(params);
14544 };
14545 HeaderComp.prototype.setDisplayName = function (params) {
14546 if (this.currentDisplayName != params.displayName) {
14547 this.currentDisplayName = params.displayName;
14548 var displayNameSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_6__["escapeString"])(this.currentDisplayName);
14549 if (this.eText) {
14550 this.eText.innerHTML = displayNameSanitised;
14551 }
14552 }
14553 };
14554 HeaderComp.prototype.setupIcons = function (column) {
14555 this.addInIcon('sortAscending', this.eSortAsc, column);
14556 this.addInIcon('sortDescending', this.eSortDesc, column);
14557 this.addInIcon('sortUnSort', this.eSortNone, column);
14558 this.addInIcon('menu', this.eMenu, column);
14559 this.addInIcon('filter', this.eFilter, column);
14560 };
14561 HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {
14562 if (eParent == null) {
14563 return;
14564 }
14565 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_7__["createIconNoSpan"])(iconName, this.gridOptionsWrapper, column);
14566 if (eIcon) {
14567 eParent.appendChild(eIcon);
14568 }
14569 };
14570 HeaderComp.prototype.setupTap = function () {
14571 var _this = this;
14572 var options = this.gridOptionsWrapper;
14573 if (options.isSuppressTouch()) {
14574 return;
14575 }
14576 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"](this.getGui(), true);
14577 var suppressMenuHide = options.isSuppressMenuHide();
14578 var tapMenuButton = suppressMenuHide && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(this.eMenu);
14579 var menuTouchListener = tapMenuButton ? new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"](this.eMenu, true) : touchListener;
14580 if (this.params.enableMenu) {
14581 var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';
14582 var showMenuFn = function (event) {
14583 options.getApi().showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);
14584 };
14585 this.addManagedListener(menuTouchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"][eventType], showMenuFn);
14586 }
14587 if (this.params.enableSorting) {
14588 var tapListener = function (event) {
14589 var target = event.touchStart.target;
14590 // When suppressMenuHide is true, a tap on the menu icon will bubble up
14591 // to the header container, in that case we should not sort
14592 if (suppressMenuHide && _this.eMenu.contains(target)) {
14593 return;
14594 }
14595 _this.sortController.progressSort(_this.params.column, false, "uiColumnSorted");
14596 };
14597 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"].EVENT_TAP, tapListener);
14598 }
14599 // if tapMenuButton is true `touchListener` and `menuTouchListener` are different
14600 // so we need to make sure to destroy both listeners here
14601 this.addDestroyFunc(function () { return touchListener.destroy(); });
14602 if (tapMenuButton) {
14603 this.addDestroyFunc(function () { return menuTouchListener.destroy(); });
14604 }
14605 };
14606 HeaderComp.prototype.workOutShowMenu = function () {
14607 // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/
14608 // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok
14609 // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide
14610 // is false (default) user will need to use longpress to display the menu.
14611 var menuHides = !this.gridOptionsWrapper.isSuppressMenuHide();
14612 var onIpadAndMenuHides = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_9__["isIOSUserAgent"])() && menuHides;
14613 var showMenu = this.params.enableMenu && !onIpadAndMenuHides;
14614 return showMenu;
14615 };
14616 HeaderComp.prototype.setMenu = function () {
14617 var _this = this;
14618 // if no menu provided in template, do nothing
14619 if (!this.eMenu) {
14620 return;
14621 }
14622 this.currentShowMenu = this.workOutShowMenu();
14623 if (!this.currentShowMenu) {
14624 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eMenu);
14625 return;
14626 }
14627 var suppressMenuHide = this.gridOptionsWrapper.isSuppressMenuHide();
14628 this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });
14629 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eMenu, 'ag-header-menu-always-show', suppressMenuHide);
14630 };
14631 HeaderComp.prototype.showMenu = function (eventSource) {
14632 if (!eventSource) {
14633 eventSource = this.eMenu;
14634 }
14635 this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource);
14636 };
14637 HeaderComp.prototype.removeSortIcons = function () {
14638 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortAsc);
14639 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortDesc);
14640 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortNone);
14641 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortOrder);
14642 };
14643 HeaderComp.prototype.workOutSort = function () {
14644 return this.params.enableSorting;
14645 };
14646 HeaderComp.prototype.setupSort = function () {
14647 var _this = this;
14648 this.currentSort = this.params.enableSorting;
14649 if (!this.currentSort) {
14650 this.removeSortIcons();
14651 return;
14652 }
14653 var sortUsingCtrl = this.gridOptionsWrapper.isMultiSortKeyCtrl();
14654 // keep track of last time the moving changed flag was set
14655 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MOVING_CHANGED, function () {
14656 _this.lastMovingChanged = new Date().getTime();
14657 });
14658 // add the event on the header, so when clicked, we do sorting
14659 if (this.eLabel) {
14660 this.addManagedListener(this.eLabel, 'click', function (event) {
14661 // sometimes when moving a column via dragging, this was also firing a clicked event.
14662 // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076
14663 // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)
14664 var moving = _this.params.column.isMoving();
14665 var nowTime = new Date().getTime();
14666 // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn
14667 var movedRecently = (nowTime - _this.lastMovingChanged) < 50;
14668 var columnMoving = moving || movedRecently;
14669 if (!columnMoving) {
14670 var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;
14671 _this.params.progressSort(multiSort);
14672 }
14673 });
14674 }
14675 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
14676 this.onSortChanged();
14677 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_SORT_CHANGED, this.setMultiSortOrder.bind(this));
14678 this.setMultiSortOrder();
14679 };
14680 HeaderComp.prototype.onSortChanged = function () {
14681 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-sorted-asc', this.params.column.isSortAscending());
14682 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-sorted-desc', this.params.column.isSortDescending());
14683 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-sorted-none', this.params.column.isSortNone());
14684 if (this.eSortAsc) {
14685 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eSortAsc, 'ag-hidden', !this.params.column.isSortAscending());
14686 }
14687 if (this.eSortDesc) {
14688 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eSortDesc, 'ag-hidden', !this.params.column.isSortDescending());
14689 }
14690 if (this.eSortNone) {
14691 var alwaysHideNoSort = !this.params.column.getColDef().unSortIcon && !this.gridOptionsWrapper.isUnSortIcon();
14692 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eSortNone, 'ag-hidden', alwaysHideNoSort || !this.params.column.isSortNone());
14693 }
14694 };
14695 // we listen here for global sort events, NOT column sort events, as we want to do this
14696 // when sorting has been set on all column (if we listened just for our col (where we
14697 // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.
14698 HeaderComp.prototype.setMultiSortOrder = function () {
14699 if (!this.eSortOrder) {
14700 return;
14701 }
14702 var col = this.params.column;
14703 var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();
14704 var indexThisCol = allColumnsWithSorting.indexOf(col);
14705 var moreThanOneColSorting = allColumnsWithSorting.length > 1;
14706 var showIndex = col.isSorting() && moreThanOneColSorting;
14707 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(this.eSortOrder, showIndex);
14708 if (indexThisCol >= 0) {
14709 this.eSortOrder.innerHTML = (indexThisCol + 1).toString();
14710 }
14711 else {
14712 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["clearElement"])(this.eSortOrder);
14713 }
14714 };
14715 HeaderComp.prototype.setupFilterIcon = function () {
14716 if (!this.eFilter) {
14717 return;
14718 }
14719 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
14720 this.onFilterChanged();
14721 };
14722 HeaderComp.prototype.onFilterChanged = function () {
14723 var filterPresent = this.params.column.isFilterActive();
14724 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eFilter, 'ag-hidden', !filterPresent);
14725 };
14726 HeaderComp.TEMPLATE = "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span ref=\"eMenu\" class=\"ag-header-icon ag-header-cell-menu-button\" aria-hidden=\"true\"></span>\n <div ref=\"eLabel\" class=\"ag-header-cell-label\" role=\"presentation\" unselectable=\"on\">\n <span ref=\"eText\" class=\"ag-header-cell-text\" unselectable=\"on\"></span>\n <span ref=\"eFilter\" class=\"ag-header-icon ag-header-label-icon ag-filter-icon\" aria-hidden=\"true\"></span>\n <span ref=\"eSortOrder\" class=\"ag-header-icon ag-header-label-icon ag-sort-order\" aria-hidden=\"true\"></span>\n <span ref=\"eSortAsc\" class=\"ag-header-icon ag-header-label-icon ag-sort-ascending-icon\" aria-hidden=\"true\"></span>\n <span ref=\"eSortDesc\" class=\"ag-header-icon ag-header-label-icon ag-sort-descending-icon\" aria-hidden=\"true\"></span>\n <span ref=\"eSortNone\" class=\"ag-header-icon ag-header-label-icon ag-sort-none-icon\" aria-hidden=\"true\"></span>\n </div>\n </div>";
14727 __decorate([
14728 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('sortController')
14729 ], HeaderComp.prototype, "sortController", void 0);
14730 __decorate([
14731 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('menuFactory')
14732 ], HeaderComp.prototype, "menuFactory", void 0);
14733 __decorate([
14734 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eFilter')
14735 ], HeaderComp.prototype, "eFilter", void 0);
14736 __decorate([
14737 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortAsc')
14738 ], HeaderComp.prototype, "eSortAsc", void 0);
14739 __decorate([
14740 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortDesc')
14741 ], HeaderComp.prototype, "eSortDesc", void 0);
14742 __decorate([
14743 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortNone')
14744 ], HeaderComp.prototype, "eSortNone", void 0);
14745 __decorate([
14746 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortOrder')
14747 ], HeaderComp.prototype, "eSortOrder", void 0);
14748 __decorate([
14749 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eMenu')
14750 ], HeaderComp.prototype, "eMenu", void 0);
14751 __decorate([
14752 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eLabel')
14753 ], HeaderComp.prototype, "eLabel", void 0);
14754 __decorate([
14755 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eText')
14756 ], HeaderComp.prototype, "eText", void 0);
14757 return HeaderComp;
14758}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
14759
14760
14761
14762/***/ }),
14763/* 70 */
14764/***/ (function(module, __webpack_exports__, __webpack_require__) {
14765
14766"use strict";
14767__webpack_require__.r(__webpack_exports__);
14768/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return TouchListener; });
14769/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
14770/* harmony import */ var _utils_mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);
14771/**
14772 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14773 * @version v25.3.0
14774 * @link http://www.ag-grid.com/
14775 * @license MIT
14776 */
14777
14778
14779var TouchListener = /** @class */ (function () {
14780 function TouchListener(eElement, preventMouseClick) {
14781 var _this = this;
14782 if (preventMouseClick === void 0) { preventMouseClick = false; }
14783 this.destroyFuncs = [];
14784 this.touching = false;
14785 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
14786 this.eElement = eElement;
14787 this.preventMouseClick = preventMouseClick;
14788 var startListener = this.onTouchStart.bind(this);
14789 var moveListener = this.onTouchMove.bind(this);
14790 var endListener = this.onTouchEnd.bind(this);
14791 this.eElement.addEventListener("touchstart", startListener, { passive: true });
14792 this.eElement.addEventListener("touchmove", moveListener, { passive: true });
14793 // we set passive=false, as we want to prevent default on this event
14794 this.eElement.addEventListener("touchend", endListener, { passive: false });
14795 this.destroyFuncs.push(function () {
14796 _this.eElement.removeEventListener("touchstart", startListener, { passive: true });
14797 _this.eElement.removeEventListener("touchmove", moveListener, { passive: true });
14798 _this.eElement.removeEventListener("touchend", endListener, { passive: false });
14799 });
14800 }
14801 TouchListener.prototype.getActiveTouch = function (touchList) {
14802 for (var i = 0; i < touchList.length; i++) {
14803 var matches = touchList[i].identifier === this.touchStart.identifier;
14804 if (matches) {
14805 return touchList[i];
14806 }
14807 }
14808 return null;
14809 };
14810 TouchListener.prototype.addEventListener = function (eventType, listener) {
14811 this.eventService.addEventListener(eventType, listener);
14812 };
14813 TouchListener.prototype.removeEventListener = function (eventType, listener) {
14814 this.eventService.removeEventListener(eventType, listener);
14815 };
14816 TouchListener.prototype.onTouchStart = function (touchEvent) {
14817 var _this = this;
14818 // only looking at one touch point at any time
14819 if (this.touching) {
14820 return;
14821 }
14822 this.touchStart = touchEvent.touches[0];
14823 this.touching = true;
14824 this.moved = false;
14825 var touchStartCopy = this.touchStart;
14826 window.setTimeout(function () {
14827 var touchesMatch = _this.touchStart === touchStartCopy;
14828 if (_this.touching && touchesMatch && !_this.moved) {
14829 _this.moved = true;
14830 var event_1 = {
14831 type: TouchListener.EVENT_LONG_TAP,
14832 touchStart: _this.touchStart,
14833 touchEvent: touchEvent
14834 };
14835 _this.eventService.dispatchEvent(event_1);
14836 }
14837 }, 500);
14838 };
14839 TouchListener.prototype.onTouchMove = function (touchEvent) {
14840 if (!this.touching) {
14841 return;
14842 }
14843 var touch = this.getActiveTouch(touchEvent.touches);
14844 if (!touch) {
14845 return;
14846 }
14847 var eventIsFarAway = !Object(_utils_mouse__WEBPACK_IMPORTED_MODULE_1__["areEventsNear"])(touch, this.touchStart, 4);
14848 if (eventIsFarAway) {
14849 this.moved = true;
14850 }
14851 };
14852 TouchListener.prototype.onTouchEnd = function (touchEvent) {
14853 if (!this.touching) {
14854 return;
14855 }
14856 if (!this.moved) {
14857 var event_2 = {
14858 type: TouchListener.EVENT_TAP,
14859 touchStart: this.touchStart
14860 };
14861 this.eventService.dispatchEvent(event_2);
14862 this.checkForDoubleTap();
14863 }
14864 // stops the tap from also been processed as a mouse click
14865 if (this.preventMouseClick) {
14866 touchEvent.preventDefault();
14867 }
14868 this.touching = false;
14869 };
14870 TouchListener.prototype.checkForDoubleTap = function () {
14871 var now = new Date().getTime();
14872 if (this.lastTapTime && this.lastTapTime > 0) {
14873 // if previous tap, see if duration is short enough to be considered double tap
14874 var interval = now - this.lastTapTime;
14875 if (interval > TouchListener.DOUBLE_TAP_MILLIS) {
14876 // dispatch double tap event
14877 var event_3 = {
14878 type: TouchListener.EVENT_DOUBLE_TAP,
14879 touchStart: this.touchStart
14880 };
14881 this.eventService.dispatchEvent(event_3);
14882 // this stops a tripple tap ending up as two double taps
14883 this.lastTapTime = null;
14884 }
14885 else {
14886 this.lastTapTime = now;
14887 }
14888 }
14889 else {
14890 this.lastTapTime = now;
14891 }
14892 };
14893 TouchListener.prototype.destroy = function () {
14894 this.destroyFuncs.forEach(function (func) { return func(); });
14895 };
14896 TouchListener.EVENT_TAP = "tap";
14897 TouchListener.EVENT_DOUBLE_TAP = "doubleTap";
14898 TouchListener.EVENT_LONG_TAP = "longTap";
14899 TouchListener.DOUBLE_TAP_MILLIS = 500;
14900 return TouchListener;
14901}());
14902
14903
14904
14905/***/ }),
14906/* 71 */
14907/***/ (function(module, __webpack_exports__, __webpack_require__) {
14908
14909"use strict";
14910__webpack_require__.r(__webpack_exports__);
14911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupComp", function() { return HeaderGroupComp; });
14912/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
14913/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
14914/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70);
14915/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
14916/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
14917/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26);
14918/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21);
14919/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
14920/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(50);
14921/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
14922/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15);
14923/**
14924 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14925 * @version v25.3.0
14926 * @link http://www.ag-grid.com/
14927 * @license MIT
14928 */
14929var __extends = (undefined && undefined.__extends) || (function () {
14930 var extendStatics = function (d, b) {
14931 extendStatics = Object.setPrototypeOf ||
14932 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14933 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14934 return extendStatics(d, b);
14935 };
14936 return function (d, b) {
14937 extendStatics(d, b);
14938 function __() { this.constructor = d; }
14939 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14940 };
14941})();
14942var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14943 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14944 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14945 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
14946 return c > 3 && r && Object.defineProperty(target, key, r), r;
14947};
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959var HeaderGroupComp = /** @class */ (function (_super) {
14960 __extends(HeaderGroupComp, _super);
14961 function HeaderGroupComp() {
14962 return _super.call(this, HeaderGroupComp.TEMPLATE) || this;
14963 }
14964 // this is a user component, and IComponent has "public destroy()" as part of the interface.
14965 // so we need to override destroy() just to make the method public.
14966 HeaderGroupComp.prototype.destroy = function () {
14967 _super.prototype.destroy.call(this);
14968 };
14969 HeaderGroupComp.prototype.init = function (params) {
14970 this.params = params;
14971 this.checkWarnings();
14972 this.setupLabel();
14973 this.addGroupExpandIcon();
14974 this.setupExpandIcons();
14975 };
14976 HeaderGroupComp.prototype.checkWarnings = function () {
14977 var paramsAny = this.params;
14978 if (paramsAny.template) {
14979 var message_1 = "A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)";
14980 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');
14981 }
14982 };
14983 HeaderGroupComp.prototype.setupExpandIcons = function () {
14984 var _this = this;
14985 this.addInIcon("columnGroupOpened", "agOpened");
14986 this.addInIcon("columnGroupClosed", "agClosed");
14987 var expandAction = function (event) {
14988 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(event)) {
14989 return;
14990 }
14991 var newExpandedValue = !_this.params.columnGroup.isExpanded();
14992 _this.columnController.setColumnGroupOpened(_this.params.columnGroup.getOriginalColumnGroup(), newExpandedValue, "uiColumnExpanded");
14993 };
14994 this.addTouchAndClickListeners(this.eCloseIcon, expandAction);
14995 this.addTouchAndClickListeners(this.eOpenIcon, expandAction);
14996 var stopPropagationAction = function (event) {
14997 Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["stopPropagationForAgGrid"])(event);
14998 };
14999 // adding stopPropagation to the double click for the icons prevents double click action happening
15000 // when the icons are clicked. if the icons are double clicked, then the groups should open and
15001 // then close again straight away. if we also listened to double click, then the group would open,
15002 // close, then open, which is not what we want. double click should only action if the user double
15003 // clicks outside of the icons.
15004 this.addManagedListener(this.eCloseIcon, "dblclick", stopPropagationAction);
15005 this.addManagedListener(this.eOpenIcon, "dblclick", stopPropagationAction);
15006 this.addManagedListener(this.getGui(), "dblclick", expandAction);
15007 this.updateIconVisibility();
15008 var originalColumnGroup = this.params.columnGroup.getOriginalColumnGroup();
15009 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"].EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));
15010 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"].EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));
15011 };
15012 HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {
15013 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_2__["TouchListener"](eElement, true);
15014 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_2__["TouchListener"].EVENT_TAP, action);
15015 this.addDestroyFunc(function () { return touchListener.destroy(); });
15016 this.addManagedListener(eElement, "click", action);
15017 };
15018 HeaderGroupComp.prototype.updateIconVisibility = function () {
15019 var columnGroup = this.params.columnGroup;
15020 if (columnGroup.isExpandable()) {
15021 var expanded = this.params.columnGroup.isExpanded();
15022 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eOpenIcon, expanded);
15023 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eCloseIcon, !expanded);
15024 }
15025 else {
15026 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eOpenIcon, false);
15027 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eCloseIcon, false);
15028 }
15029 };
15030 HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {
15031 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_8__["createIconNoSpan"])(iconName, this.gridOptionsWrapper, null);
15032 if (eIcon) {
15033 this.getRefElement(refName).appendChild(eIcon);
15034 }
15035 };
15036 HeaderGroupComp.prototype.addGroupExpandIcon = function () {
15037 if (!this.params.columnGroup.isExpandable()) {
15038 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eOpenIcon, false);
15039 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eCloseIcon, false);
15040 return;
15041 }
15042 };
15043 HeaderGroupComp.prototype.setupLabel = function () {
15044 // no renderer, default text render
15045 var displayName = this.params.displayName;
15046 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(displayName)) {
15047 var displayNameSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_5__["escapeString"])(displayName);
15048 this.getRefElement('agLabel').innerHTML = displayNameSanitised;
15049 }
15050 };
15051 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>";
15052 __decorate([
15053 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("columnController")
15054 ], HeaderGroupComp.prototype, "columnController", void 0);
15055 __decorate([
15056 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])("agOpened")
15057 ], HeaderGroupComp.prototype, "eOpenIcon", void 0);
15058 __decorate([
15059 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])("agClosed")
15060 ], HeaderGroupComp.prototype, "eCloseIcon", void 0);
15061 return HeaderGroupComp;
15062}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
15063
15064
15065
15066/***/ }),
15067/* 72 */
15068/***/ (function(module, __webpack_exports__, __webpack_require__) {
15069
15070"use strict";
15071__webpack_require__.r(__webpack_exports__);
15072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return GroupCellRenderer; });
15073/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
15074/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
15075/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
15076/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73);
15077/* harmony import */ var _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74);
15078/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(59);
15079/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75);
15080/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15);
15081/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);
15082/* harmony import */ var _utils_general__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(46);
15083/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
15084/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50);
15085/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(51);
15086/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7);
15087/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(21);
15088/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(47);
15089/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(60);
15090/* harmony import */ var _row_rowDragComp__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(77);
15091/**
15092 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
15093 * @version v25.3.0
15094 * @link http://www.ag-grid.com/
15095 * @license MIT
15096 */
15097var __extends = (undefined && undefined.__extends) || (function () {
15098 var extendStatics = function (d, b) {
15099 extendStatics = Object.setPrototypeOf ||
15100 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15101 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
15102 return extendStatics(d, b);
15103 };
15104 return function (d, b) {
15105 extendStatics(d, b);
15106 function __() { this.constructor = d; }
15107 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15108 };
15109})();
15110var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15111 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15112 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15113 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15114 return c > 3 && r && Object.defineProperty(target, key, r), r;
15115};
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134var GroupCellRenderer = /** @class */ (function (_super) {
15135 __extends(GroupCellRenderer, _super);
15136 function GroupCellRenderer() {
15137 return _super.call(this, GroupCellRenderer.TEMPLATE) || this;
15138 }
15139 GroupCellRenderer.prototype.isTopLevelFooter = function () {
15140 if (!this.gridOptionsWrapper.isGroupIncludeTotalFooter()) {
15141 return false;
15142 }
15143 if (this.params.value != null || this.params.node.level != -1) {
15144 return false;
15145 }
15146 // at this point, we know it's the root node and there is no value present, so it's a footer cell.
15147 // the only thing to work out is if we are displaying groups across multiple
15148 // columns (groupMultiAutoColumn=true), we only want 'total' to appear in the first column.
15149 var colDef = this.params.colDef;
15150 var doingFullWidth = colDef == null;
15151 if (doingFullWidth) {
15152 return true;
15153 }
15154 if (colDef.showRowGroup === true) {
15155 return true;
15156 }
15157 var rowGroupCols = this.columnController.getRowGroupColumns();
15158 // this is a sanity check, rowGroupCols should always be present
15159 if (!rowGroupCols || rowGroupCols.length === 0) {
15160 return true;
15161 }
15162 var firstRowGroupCol = rowGroupCols[0];
15163 return firstRowGroupCol.getId() === colDef.showRowGroup;
15164 };
15165 GroupCellRenderer.prototype.init = function (params) {
15166 this.params = params;
15167 var topLevelFooter = this.isTopLevelFooter();
15168 var embeddedRowMismatch = this.isEmbeddedRowMismatch();
15169 // This allows for empty strings to appear as groups since
15170 // it will only return for null or undefined.
15171 var nullValue = params.value == null;
15172 var skipCell = false;
15173 // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true
15174 // we should only display the groupCellRenderer if the current column is the rowGroupedColumn
15175 if (this.gridOptionsWrapper.isGroupIncludeFooter() && this.gridOptionsWrapper.isGroupHideOpenParents()) {
15176 var node = params.node;
15177 if (node.footer) {
15178 var showRowGroup = params.colDef && params.colDef.showRowGroup;
15179 var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();
15180 skipCell = showRowGroup !== rowGroupColumnId;
15181 }
15182 }
15183 this.cellIsBlank = topLevelFooter ? false : (embeddedRowMismatch || nullValue || skipCell);
15184 if (this.cellIsBlank) {
15185 return;
15186 }
15187 this.setupDragOpenParents();
15188 this.addFullWidthRowDraggerIfNeeded();
15189 this.addExpandAndContract();
15190 this.addCheckboxIfNeeded();
15191 this.addValueElement();
15192 this.setupIndent();
15193 };
15194 // if we are doing embedded full width rows, we only show the renderer when
15195 // in the body, or if pinning in the pinned section, or if pinning and RTL,
15196 // in the right section. otherwise we would have the cell repeated in each section.
15197 GroupCellRenderer.prototype.isEmbeddedRowMismatch = function () {
15198 if (!this.params.fullWidth || !this.gridOptionsWrapper.isEmbedFullWidthRows()) {
15199 return false;
15200 }
15201 var pinnedLeftCell = this.params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_LEFT;
15202 var pinnedRightCell = this.params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_RIGHT;
15203 var bodyCell = !pinnedLeftCell && !pinnedRightCell;
15204 if (this.gridOptionsWrapper.isEnableRtl()) {
15205 if (this.columnController.isPinningLeft()) {
15206 return !pinnedRightCell;
15207 }
15208 return !bodyCell;
15209 }
15210 if (this.columnController.isPinningLeft()) {
15211 return !pinnedLeftCell;
15212 }
15213 return !bodyCell;
15214 };
15215 GroupCellRenderer.prototype.setIndent = function () {
15216 if (this.gridOptionsWrapper.isGroupHideOpenParents()) {
15217 return;
15218 }
15219 var params = this.params;
15220 var rowNode = params.node;
15221 // if we are only showing one group column, we don't want to be indenting based on level
15222 var fullWithRow = !!params.colDef;
15223 var manyDimensionThisColumn = !fullWithRow || params.colDef.showRowGroup === true;
15224 var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;
15225 var userProvidedPaddingPixelsTheDeprecatedWay = params.padding >= 0;
15226 if (userProvidedPaddingPixelsTheDeprecatedWay) {
15227 this.setPaddingDeprecatedWay(paddingCount, params.padding);
15228 return;
15229 }
15230 if (this.indentClass) {
15231 this.removeCssClass(this.indentClass);
15232 }
15233 this.indentClass = 'ag-row-group-indent-' + paddingCount;
15234 this.addCssClass(this.indentClass);
15235 };
15236 GroupCellRenderer.prototype.setPaddingDeprecatedWay = function (paddingCount, padding) {
15237 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () { return console.warn('AG Grid: since v14.2, configuring padding for groupCellRenderer should be done with Sass variables and themes. Please see the AG Grid documentation page for Themes, in particular the property $row-group-indent-size.'); }, 'groupCellRenderer->doDeprecatedWay');
15238 var paddingPx = paddingCount * padding;
15239 var eGui = this.getGui();
15240 var paddingSide = this.gridOptionsWrapper.isEnableRtl() ? 'paddingRight' : 'paddingLeft';
15241 eGui.style[paddingSide] = paddingPx + "px";
15242 };
15243 GroupCellRenderer.prototype.setupIndent = function () {
15244 // only do this if an indent - as this overwrites the padding that
15245 // the theme set, which will make things look 'not aligned' for the
15246 // first group level.
15247 var node = this.params.node;
15248 var suppressPadding = this.params.suppressPadding;
15249 if (!suppressPadding) {
15250 this.addManagedListener(node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));
15251 this.setIndent();
15252 }
15253 };
15254 GroupCellRenderer.prototype.addValueElement = function () {
15255 if (this.displayedGroup.footer) {
15256 this.addFooterValue();
15257 }
15258 else {
15259 this.addGroupValue();
15260 this.addChildCount();
15261 }
15262 };
15263 GroupCellRenderer.prototype.addFooterValue = function () {
15264 var footerValueGetter = this.params.footerValueGetter;
15265 var footerValue;
15266 if (footerValueGetter) {
15267 // params is same as we were given, except we set the value as the item to display
15268 var paramsClone = Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["cloneObject"])(this.params);
15269 paramsClone.value = this.params.value;
15270 if (typeof footerValueGetter === 'function') {
15271 footerValue = footerValueGetter(paramsClone);
15272 }
15273 else if (typeof footerValueGetter === 'string') {
15274 footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);
15275 }
15276 else {
15277 console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');
15278 }
15279 }
15280 else {
15281 footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');
15282 }
15283 this.eValue.innerHTML = footerValue;
15284 };
15285 GroupCellRenderer.prototype.addGroupValue = function () {
15286 var _this = this;
15287 var params = this.params;
15288 var rowGroupColumn = this.displayedGroup.rowGroupColumn;
15289 // we try and use the cellRenderer of the column used for the grouping if we can
15290 var columnToUse = rowGroupColumn ? rowGroupColumn : params.column;
15291 var groupName = this.params.value;
15292 var valueFormatted = columnToUse ?
15293 this.valueFormatterService.formatValue(columnToUse, params.node, params.scope, groupName) : null;
15294 params.valueFormatted = valueFormatted;
15295 var rendererPromise;
15296 rendererPromise = params.fullWidth
15297 ? this.useFullWidth(params)
15298 : this.useInnerRenderer(this.params.colDef.cellRendererParams, columnToUse.getColDef(), params);
15299 // retain a reference to the created renderer - we'll use this later for cleanup (in destroy)
15300 if (rendererPromise) {
15301 rendererPromise.then(function (value) {
15302 _this.innerCellRenderer = value;
15303 });
15304 }
15305 };
15306 GroupCellRenderer.prototype.useInnerRenderer = function (groupCellRendererParams, groupedColumnDef, // the column this group row is for, eg 'Country'
15307 params) {
15308 var _this = this;
15309 // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country
15310 // and then rating, we will use the country cell renderer for each country group row and likewise the rating
15311 // cell renderer for each rating group row.
15312 //
15313 // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers
15314 // of the grouped columns.
15315 //
15316 // so we check and use in the following order:
15317 //
15318 // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)
15319 // 2) groupedColDef.cellRenderer of the grouped column
15320 // 3) groupedColDef.cellRendererParams.innerRenderer
15321 var cellRendererPromise = null;
15322 // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer
15323 var groupInnerRendererClass = this.userComponentFactory
15324 .lookupComponentClassDef(groupCellRendererParams, "innerRenderer");
15325 if (groupInnerRendererClass && groupInnerRendererClass.component != null
15326 && groupInnerRendererClass.source != _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__["ComponentSource"].DEFAULT) {
15327 // use the renderer defined in cellRendererParams.innerRenderer
15328 cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupCellRendererParams, params);
15329 }
15330 else {
15331 // otherwise see if we can use the cellRenderer of the column we are grouping by
15332 var groupColumnRendererClass = this.userComponentFactory
15333 .lookupComponentClassDef(groupedColumnDef, "cellRenderer");
15334 if (groupColumnRendererClass &&
15335 groupColumnRendererClass.source != _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__["ComponentSource"].DEFAULT) {
15336 // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it
15337 cellRendererPromise = this.userComponentFactory.newCellRenderer(groupedColumnDef, params);
15338 }
15339 else if (groupColumnRendererClass &&
15340 groupColumnRendererClass.source == _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__["ComponentSource"].DEFAULT &&
15341 (Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["get"])(groupedColumnDef, 'cellRendererParams.innerRenderer', null))) {
15342 // EDGE CASE - THIS COMES FROM A COLUMN WHICH HAS BEEN GROUPED DYNAMICALLY, THAT HAS AS RENDERER 'group'
15343 // AND HAS A INNER CELL RENDERER
15344 cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupedColumnDef.cellRendererParams, params);
15345 }
15346 else {
15347 // This forces the retrieval of the default plain cellRenderer that just renders the values.
15348 cellRendererPromise = this.userComponentFactory.newCellRenderer({}, params);
15349 }
15350 }
15351 if (cellRendererPromise != null) {
15352 cellRendererPromise.then(function (rendererToUse) {
15353 if (rendererToUse == null) {
15354 _this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;
15355 return;
15356 }
15357 Object(_utils_general__WEBPACK_IMPORTED_MODULE_9__["bindCellRendererToHtmlElement"])(cellRendererPromise, _this.eValue);
15358 });
15359 }
15360 else {
15361 this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;
15362 }
15363 return cellRendererPromise;
15364 };
15365 GroupCellRenderer.prototype.useFullWidth = function (params) {
15366 var cellRendererPromise = this.userComponentFactory.newFullWidthGroupRowInnerCellRenderer(params);
15367 if (cellRendererPromise != null) {
15368 Object(_utils_general__WEBPACK_IMPORTED_MODULE_9__["bindCellRendererToHtmlElement"])(cellRendererPromise, this.eValue);
15369 }
15370 else {
15371 this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;
15372 }
15373 return cellRendererPromise;
15374 };
15375 GroupCellRenderer.prototype.addFullWidthRowDraggerIfNeeded = function () {
15376 var _this = this;
15377 if (!this.params.fullWidth || !this.params.rowDrag) {
15378 return;
15379 }
15380 var rowDragComp = new _row_rowDragComp__WEBPACK_IMPORTED_MODULE_17__["RowDragComp"](function () { return _this.params.value; }, this.params.node);
15381 this.createManagedBean(rowDragComp, this.context);
15382 this.getGui().insertAdjacentElement('afterbegin', rowDragComp.getGui());
15383 };
15384 GroupCellRenderer.prototype.addChildCount = function () {
15385 // only include the child count if it's included, eg if user doing custom aggregation,
15386 // then this could be left out, or set to -1, ie no child count
15387 if (this.params.suppressCount) {
15388 return;
15389 }
15390 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));
15391 // filtering changes the child count, so need to cater for it
15392 this.updateChildCount();
15393 };
15394 GroupCellRenderer.prototype.updateChildCount = function () {
15395 var allChildrenCount = this.displayedGroup.allChildrenCount;
15396 var showingGroupForThisNode = this.isShowRowGroupForThisRow();
15397 var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;
15398 var countString = showCount ? "(" + allChildrenCount + ")" : "";
15399 this.eChildCount.innerHTML = countString;
15400 };
15401 GroupCellRenderer.prototype.isUserWantsSelected = function () {
15402 var paramsCheckbox = this.params.checkbox;
15403 if (typeof paramsCheckbox === 'function') {
15404 return paramsCheckbox(this.params);
15405 }
15406 return paramsCheckbox === true;
15407 };
15408 GroupCellRenderer.prototype.addCheckboxIfNeeded = function () {
15409 var _this = this;
15410 var rowNode = this.displayedGroup;
15411 var checkboxNeeded = this.isUserWantsSelected() &&
15412 // footers cannot be selected
15413 !rowNode.footer &&
15414 // pinned rows cannot be selected
15415 !rowNode.rowPinned &&
15416 // details cannot be selected
15417 !rowNode.detail;
15418 if (checkboxNeeded) {
15419 var cbSelectionComponent_1 = new _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_4__["CheckboxSelectionComponent"]();
15420 this.getContext().createBean(cbSelectionComponent_1);
15421 cbSelectionComponent_1.init({ rowNode: rowNode, column: this.params.column });
15422 this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());
15423 this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });
15424 }
15425 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eCheckbox, 'ag-invisible', !checkboxNeeded);
15426 };
15427 GroupCellRenderer.prototype.addExpandAndContract = function () {
15428 var params = this.params;
15429 var eGroupCell = params.eGridCell;
15430 var eExpandedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_11__["createIconNoSpan"])('groupExpanded', this.gridOptionsWrapper, null);
15431 var eContractedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_11__["createIconNoSpan"])('groupContracted', this.gridOptionsWrapper, null);
15432 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_15__["setAriaExpanded"])(eGroupCell, !!params.node.expanded);
15433 if (eExpandedIcon) {
15434 this.eExpanded.appendChild(eExpandedIcon);
15435 }
15436 if (eContractedIcon) {
15437 this.eContracted.appendChild(eContractedIcon);
15438 }
15439 this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));
15440 this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));
15441 // expand / contract as the user hits enter
15442 this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));
15443 this.addManagedListener(params.node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));
15444 this.showExpandAndContractIcons();
15445 // because we don't show the expand / contract when there are no children, we need to check every time
15446 // the number of children change.
15447 var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);
15448 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);
15449 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_MASTER_CHANGED, expandableChangedListener);
15450 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);
15451 // if editing groups, then double click is to start editing
15452 if (!this.gridOptionsWrapper.isEnableGroupEdit() && this.isExpandable() && !params.suppressDoubleClickExpand) {
15453 this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));
15454 }
15455 };
15456 GroupCellRenderer.prototype.onRowNodeIsExpandableChanged = function () {
15457 // maybe if no children now, we should hide the expand / contract icons
15458 this.showExpandAndContractIcons();
15459 // if we have no children, this impacts the indent
15460 this.setIndent();
15461 };
15462 GroupCellRenderer.prototype.onKeyDown = function (event) {
15463 var enterKeyPressed = Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_12__["isKeyPressed"])(event, _constants_keyCode__WEBPACK_IMPORTED_MODULE_16__["KeyCode"].ENTER);
15464 if (!enterKeyPressed || this.params.suppressEnterExpand) {
15465 return;
15466 }
15467 var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);
15468 if (cellEditable) {
15469 return;
15470 }
15471 this.onExpandOrContract();
15472 };
15473 GroupCellRenderer.prototype.setupDragOpenParents = function () {
15474 var column = this.params.column;
15475 var rowNode = this.params.node;
15476 if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {
15477 this.draggedFromHideOpenParents = false;
15478 }
15479 else if (!rowNode.hasChildren()) {
15480 // if we are here, and we are not a group, then we must of been dragged down,
15481 // as otherwise the cell would be blank, and if cell is blank, this method is never called.
15482 this.draggedFromHideOpenParents = true;
15483 }
15484 else {
15485 var rowGroupColumn = rowNode.rowGroupColumn;
15486 if (rowGroupColumn) {
15487 // if the displayGroup column for this col matches the rowGroupColumn we grouped by for this node,
15488 // then nothing was dragged down
15489 this.draggedFromHideOpenParents = !column.isRowGroupDisplayed(rowGroupColumn.getId());
15490 }
15491 else {
15492 // the only way we can end up here (no column, but a group) is if we are at the root node,
15493 // which only happens when 'groupIncludeTotalFooter' is true. here, we are never dragging
15494 this.draggedFromHideOpenParents = false;
15495 }
15496 }
15497 if (this.draggedFromHideOpenParents) {
15498 var pointer = rowNode.parent;
15499 while (true) {
15500 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_13__["missing"])(pointer)) {
15501 break;
15502 }
15503 if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {
15504 this.displayedGroup = pointer;
15505 break;
15506 }
15507 pointer = pointer.parent;
15508 }
15509 }
15510 // if we didn't find a displayed group, set it to the row node
15511 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_13__["missing"])(this.displayedGroup)) {
15512 this.displayedGroup = rowNode;
15513 }
15514 };
15515 GroupCellRenderer.prototype.onExpandClicked = function (mouseEvent) {
15516 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isStopPropagationForAgGrid"])(mouseEvent)) {
15517 return;
15518 }
15519 // so if we expand a node, it does not also get selected.
15520 Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["stopPropagationForAgGrid"])(mouseEvent);
15521 this.onExpandOrContract();
15522 };
15523 GroupCellRenderer.prototype.onCellDblClicked = function (mouseEvent) {
15524 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isStopPropagationForAgGrid"])(mouseEvent)) {
15525 return;
15526 }
15527 // we want to avoid acting on double click events on the expand / contract icon,
15528 // as that icons already has expand / collapse functionality on it. otherwise if
15529 // the icon was double clicked, we would get 'click', 'click', 'dblclick' which
15530 // is open->close->open, however double click should be open->close only.
15531 var targetIsExpandIcon = Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isElementInEventPath"])(this.eExpanded, mouseEvent)
15532 || Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isElementInEventPath"])(this.eContracted, mouseEvent);
15533 if (!targetIsExpandIcon) {
15534 this.onExpandOrContract();
15535 }
15536 };
15537 GroupCellRenderer.prototype.onExpandOrContract = function () {
15538 // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row
15539 var rowNode = this.displayedGroup;
15540 var params = this.params;
15541 var nextExpandState = !rowNode.expanded;
15542 rowNode.setExpanded(nextExpandState);
15543 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_15__["setAriaExpanded"])(params.eGridCell, nextExpandState);
15544 };
15545 GroupCellRenderer.prototype.isShowRowGroupForThisRow = function () {
15546 if (this.gridOptionsWrapper.isTreeData()) {
15547 return true;
15548 }
15549 var rowGroupColumn = this.displayedGroup.rowGroupColumn;
15550 if (!rowGroupColumn) {
15551 return false;
15552 }
15553 // column is null for fullWidthRows
15554 var column = this.params.column;
15555 var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());
15556 return thisColumnIsInterested;
15557 };
15558 GroupCellRenderer.prototype.isExpandable = function () {
15559 if (this.draggedFromHideOpenParents) {
15560 return true;
15561 }
15562 var rowNode = this.displayedGroup;
15563 var reducedLeafNode = this.columnController.isPivotMode() && rowNode.leafGroup;
15564 var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;
15565 if (!expandableGroup) {
15566 return false;
15567 }
15568 // column is null for fullWidthRows
15569 var column = this.params.column;
15570 var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';
15571 if (displayingForOneColumnOnly) {
15572 var showing = this.isShowRowGroupForThisRow();
15573 return showing;
15574 }
15575 return true;
15576 };
15577 GroupCellRenderer.prototype.showExpandAndContractIcons = function () {
15578 var _a = this, eContracted = _a.eContracted, eExpanded = _a.eExpanded, params = _a.params, displayedGroup = _a.displayedGroup, columnController = _a.columnController;
15579 var eGridCell = params.eGridCell, node = params.node;
15580 var isExpandable = this.isExpandable();
15581 if (isExpandable) {
15582 // if expandable, show one based on expand state.
15583 // if we were dragged down, means our parent is always expanded
15584 var expanded = this.draggedFromHideOpenParents ? true : node.expanded;
15585 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eContracted, !expanded);
15586 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eExpanded, expanded);
15587 }
15588 else {
15589 // it not expandable, show neither
15590 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_15__["removeAriaExpanded"])(eGridCell);
15591 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eExpanded, false);
15592 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eContracted, false);
15593 }
15594 // compensation padding for leaf nodes, so there is blank space instead of the expand icon
15595 var pivotMode = columnController.isPivotMode();
15596 var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;
15597 var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;
15598 var isTotalFooterNode = node.footer && node.level === -1;
15599 this.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);
15600 this.addOrRemoveCssClass('ag-row-group', addExpandableCss);
15601 if (pivotMode) {
15602 this.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);
15603 }
15604 else if (!isTotalFooterNode) {
15605 this.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);
15606 }
15607 };
15608 // this is a user component, and IComponent has "public destroy()" as part of the interface.
15609 // so we need to have public here instead of private or protected
15610 GroupCellRenderer.prototype.destroy = function () {
15611 this.getContext().destroyBean(this.innerCellRenderer);
15612 _super.prototype.destroy.call(this);
15613 };
15614 GroupCellRenderer.prototype.refresh = function () {
15615 return false;
15616 };
15617 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>";
15618 __decorate([
15619 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
15620 ], GroupCellRenderer.prototype, "rowRenderer", void 0);
15621 __decorate([
15622 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('expressionService')
15623 ], GroupCellRenderer.prototype, "expressionService", void 0);
15624 __decorate([
15625 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('valueFormatterService')
15626 ], GroupCellRenderer.prototype, "valueFormatterService", void 0);
15627 __decorate([
15628 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
15629 ], GroupCellRenderer.prototype, "columnController", void 0);
15630 __decorate([
15631 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
15632 ], GroupCellRenderer.prototype, "userComponentFactory", void 0);
15633 __decorate([
15634 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eExpanded')
15635 ], GroupCellRenderer.prototype, "eExpanded", void 0);
15636 __decorate([
15637 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eContracted')
15638 ], GroupCellRenderer.prototype, "eContracted", void 0);
15639 __decorate([
15640 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eCheckbox')
15641 ], GroupCellRenderer.prototype, "eCheckbox", void 0);
15642 __decorate([
15643 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eValue')
15644 ], GroupCellRenderer.prototype, "eValue", void 0);
15645 __decorate([
15646 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eChildCount')
15647 ], GroupCellRenderer.prototype, "eChildCount", void 0);
15648 return GroupCellRenderer;
15649}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
15650
15651
15652
15653/***/ }),
15654/* 73 */
15655/***/ (function(module, __webpack_exports__, __webpack_require__) {
15656
15657"use strict";
15658__webpack_require__.r(__webpack_exports__);
15659/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return RowNode; });
15660/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
15661/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
15662/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
15663/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
15664/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
15665/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
15666/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(26);
15667/**
15668 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
15669 * @version v25.3.0
15670 * @link http://www.ag-grid.com/
15671 * @license MIT
15672 */
15673var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15674 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15675 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15676 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15677 return c > 3 && r && Object.defineProperty(target, key, r), r;
15678};
15679
15680
15681
15682
15683
15684
15685
15686var RowNode = /** @class */ (function () {
15687 function RowNode() {
15688 /** The index of this node in the grid, only valid if node is displayed in the grid, otherwise it should be ignored as old index may be present */
15689 this.rowIndex = null;
15690 /** Groups only - The key for the group eg Ireland, UK, USA */
15691 this.key = null;
15692 /** Children mapped by the pivot columns */
15693 this.childrenMapped = {};
15694 /**
15695 * True if the RowNode is not filtered, or in a collapsed group.
15696 */
15697 this.displayed = false;
15698 /** The top pixel for this row */
15699 this.rowTop = null;
15700 /** The top pixel for this row last time, makes sense if data set was ordered or filtered,
15701 * it is used so new rows can animate in from their old position. */
15702 this.oldRowTop = null;
15703 /** True by default - can be overridden via gridOptions.isRowSelectable(rowNode) */
15704 this.selectable = true;
15705 /** Used by sorting service - to give deterministic sort to groups. Previously we
15706 * just id for this, however id is a string and had slower sorting compared to numbers. */
15707 this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;
15708 /** True when nodes with the same id are being removed and added as part of the same batch transaction */
15709 this.alreadyRendered = false;
15710 this.highlighted = null;
15711 this.selected = false;
15712 }
15713 RowNode.prototype.setData = function (data) {
15714 this.setDataCommon(data, false);
15715 };
15716 // similar to setRowData, however it is expected that the data is the same data item. this
15717 // is intended to be used with Redux type stores, where the whole data can be changed. we are
15718 // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the
15719 // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving
15720 // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).
15721 RowNode.prototype.updateData = function (data) {
15722 this.setDataCommon(data, true);
15723 };
15724 RowNode.prototype.setDataCommon = function (data, update) {
15725 var oldData = this.data;
15726 this.data = data;
15727 this.valueCache.onDataChanged();
15728 this.updateDataOnDetailNode();
15729 this.checkRowSelectable();
15730 var event = this.createDataChangedEvent(data, oldData, update);
15731 this.dispatchLocalEvent(event);
15732 };
15733 // when we are doing master / detail, the detail node is lazy created, but then kept around.
15734 // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data
15735 // in sync, otherwise expand/collapse of the detail would still show the old values.
15736 RowNode.prototype.updateDataOnDetailNode = function () {
15737 if (this.detailNode) {
15738 this.detailNode.data = this.data;
15739 }
15740 };
15741 RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {
15742 return {
15743 type: RowNode.EVENT_DATA_CHANGED,
15744 node: this,
15745 oldData: oldData,
15746 newData: newData,
15747 update: update
15748 };
15749 };
15750 RowNode.prototype.createLocalRowEvent = function (type) {
15751 return {
15752 type: type,
15753 node: this
15754 };
15755 };
15756 RowNode.prototype.getRowIndexString = function () {
15757 if (this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP) {
15758 return 't-' + this.rowIndex;
15759 }
15760 if (this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM) {
15761 return 'b-' + this.rowIndex;
15762 }
15763 return this.rowIndex.toString();
15764 };
15765 RowNode.prototype.createDaemonNode = function () {
15766 var oldNode = new RowNode();
15767 this.context.createBean(oldNode);
15768 // just copy the id and data, this is enough for the node to be used
15769 // in the selection controller (the selection controller is the only
15770 // place where daemon nodes can live).
15771 oldNode.id = this.id;
15772 oldNode.data = this.data;
15773 oldNode.daemon = true;
15774 oldNode.selected = this.selected;
15775 oldNode.level = this.level;
15776 return oldNode;
15777 };
15778 RowNode.prototype.setDataAndId = function (data, id) {
15779 var oldNode = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.id) ? this.createDaemonNode() : null;
15780 var oldData = this.data;
15781 this.data = data;
15782 this.updateDataOnDetailNode();
15783 this.setId(id);
15784 this.selectionController.syncInRowNode(this, oldNode);
15785 this.checkRowSelectable();
15786 var event = this.createDataChangedEvent(data, oldData, false);
15787 this.dispatchLocalEvent(event);
15788 };
15789 RowNode.prototype.checkRowSelectable = function () {
15790 var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();
15791 this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);
15792 };
15793 RowNode.prototype.setRowSelectable = function (newVal) {
15794 if (this.selectable !== newVal) {
15795 this.selectable = newVal;
15796 if (this.eventService) {
15797 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));
15798 }
15799 }
15800 };
15801 RowNode.prototype.setId = function (id) {
15802 // see if user is providing the id's
15803 var getRowNodeId = this.gridOptionsWrapper.getRowNodeIdFunc();
15804 if (getRowNodeId) {
15805 // if user is providing the id's, then we set the id only after the data has been set.
15806 // this is important for virtual pagination and viewport, where empty rows exist.
15807 if (this.data) {
15808 this.id = getRowNodeId(this.data);
15809 // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that
15810 // it has 'startsWith' in case the user provided a number.
15811 if (this.id && typeof this.id === 'string' && Object(_utils_string__WEBPACK_IMPORTED_MODULE_6__["startsWith"])(this.id, RowNode.ID_PREFIX_ROW_GROUP)) {
15812 console.error("AG Grid: Row ID's cannot start with " + RowNode.ID_PREFIX_ROW_GROUP + ", this is a reserved prefix for AG Grid's row grouping feature.");
15813 }
15814 }
15815 else {
15816 // this can happen if user has set blank into the rowNode after the row previously
15817 // having data. this happens in virtual page row model, when data is delete and
15818 // the page is refreshed.
15819 this.id = undefined;
15820 }
15821 }
15822 else {
15823 this.id = id;
15824 }
15825 };
15826 RowNode.prototype.isPixelInRange = function (pixel) {
15827 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.rowTop) || !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.rowHeight)) {
15828 return false;
15829 }
15830 return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);
15831 };
15832 RowNode.prototype.setFirstChild = function (firstChild) {
15833 if (this.firstChild === firstChild) {
15834 return;
15835 }
15836 this.firstChild = firstChild;
15837 if (this.eventService) {
15838 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));
15839 }
15840 };
15841 RowNode.prototype.setLastChild = function (lastChild) {
15842 if (this.lastChild === lastChild) {
15843 return;
15844 }
15845 this.lastChild = lastChild;
15846 if (this.eventService) {
15847 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));
15848 }
15849 };
15850 RowNode.prototype.setChildIndex = function (childIndex) {
15851 if (this.childIndex === childIndex) {
15852 return;
15853 }
15854 this.childIndex = childIndex;
15855 if (this.eventService) {
15856 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));
15857 }
15858 };
15859 RowNode.prototype.setRowTop = function (rowTop) {
15860 this.oldRowTop = this.rowTop;
15861 if (this.rowTop === rowTop) {
15862 return;
15863 }
15864 this.rowTop = rowTop;
15865 if (this.eventService) {
15866 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));
15867 }
15868 this.setDisplayed(rowTop !== null);
15869 };
15870 RowNode.prototype.clearRowTopAndRowIndex = function () {
15871 this.oldRowTop = null;
15872 this.setRowTop(null);
15873 this.setRowIndex(null);
15874 };
15875 RowNode.prototype.setDisplayed = function (displayed) {
15876 if (this.displayed === displayed) {
15877 return;
15878 }
15879 this.displayed = displayed;
15880 if (this.eventService) {
15881 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));
15882 }
15883 };
15884 RowNode.prototype.setDragging = function (dragging) {
15885 if (this.dragging === dragging) {
15886 return;
15887 }
15888 this.dragging = dragging;
15889 if (this.eventService) {
15890 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));
15891 }
15892 };
15893 RowNode.prototype.setHighlighted = function (highlighted) {
15894 if (highlighted === this.highlighted) {
15895 return;
15896 }
15897 this.highlighted = highlighted;
15898 if (this.eventService) {
15899 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));
15900 }
15901 };
15902 RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {
15903 if (this.allChildrenCount === allChildrenCount) {
15904 return;
15905 }
15906 this.allChildrenCount = allChildrenCount;
15907 if (this.eventService) {
15908 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));
15909 }
15910 };
15911 RowNode.prototype.setMaster = function (master) {
15912 if (this.master === master) {
15913 return;
15914 }
15915 // if changing AWAY from master, then unexpand, otherwise
15916 // next time it's shown it is expanded again
15917 if (this.master && !master) {
15918 this.expanded = false;
15919 }
15920 this.master = master;
15921 if (this.eventService) {
15922 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));
15923 }
15924 };
15925 RowNode.prototype.setRowHeight = function (rowHeight, estimated) {
15926 if (estimated === void 0) { estimated = false; }
15927 this.rowHeight = rowHeight;
15928 this.rowHeightEstimated = estimated;
15929 if (this.eventService) {
15930 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));
15931 }
15932 };
15933 RowNode.prototype.setRowIndex = function (rowIndex) {
15934 if (this.rowIndex === rowIndex) {
15935 return;
15936 }
15937 this.rowIndex = rowIndex;
15938 if (this.eventService) {
15939 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));
15940 }
15941 };
15942 RowNode.prototype.setUiLevel = function (uiLevel) {
15943 if (this.uiLevel === uiLevel) {
15944 return;
15945 }
15946 this.uiLevel = uiLevel;
15947 if (this.eventService) {
15948 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));
15949 }
15950 };
15951 RowNode.prototype.setExpanded = function (expanded) {
15952 if (this.expanded === expanded) {
15953 return;
15954 }
15955 this.expanded = expanded;
15956 if (this.eventService) {
15957 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));
15958 }
15959 var event = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["assign"])({}, this.createGlobalRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_GROUP_OPENED), {
15960 expanded: expanded
15961 });
15962 this.mainEventService.dispatchEvent(event);
15963 // when using footers we need to refresh the group row, as the aggregation
15964 // values jump between group and footer
15965 if (this.gridOptionsWrapper.isGroupIncludeFooter()) {
15966 this.rowRenderer.refreshCells({ rowNodes: [this] });
15967 }
15968 };
15969 RowNode.prototype.createGlobalRowEvent = function (type) {
15970 return {
15971 type: type,
15972 node: this,
15973 data: this.data,
15974 rowIndex: this.rowIndex,
15975 rowPinned: this.rowPinned,
15976 context: this.gridOptionsWrapper.getContext(),
15977 api: this.gridOptionsWrapper.getApi(),
15978 columnApi: this.gridOptionsWrapper.getColumnApi()
15979 };
15980 };
15981 RowNode.prototype.dispatchLocalEvent = function (event) {
15982 if (this.eventService) {
15983 this.eventService.dispatchEvent(event);
15984 }
15985 };
15986 // we also allow editing the value via the editors. when it is done via
15987 // the editors, no 'cell changed' event gets fired, as it's assumed that
15988 // the cell knows about the change given it's in charge of the editing.
15989 // this method is for the client to call, so the cell listens for the change
15990 // event, and also flashes the cell when the change occurs.
15991 RowNode.prototype.setDataValue = function (colKey, newValue) {
15992 var column = this.columnController.getPrimaryColumn(colKey);
15993 var oldValue = this.valueService.getValue(column, this);
15994 this.valueService.setValue(this, column, newValue);
15995 this.dispatchCellChangedEvent(column, newValue, oldValue);
15996 };
15997 RowNode.prototype.setGroupValue = function (colKey, newValue) {
15998 var column = this.columnController.getGridColumn(colKey);
15999 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.groupData)) {
16000 this.groupData = {};
16001 }
16002 var columnId = column.getColId();
16003 var oldValue = this.groupData[columnId];
16004 if (oldValue === newValue) {
16005 return;
16006 }
16007 this.groupData[columnId] = newValue;
16008 this.dispatchCellChangedEvent(column, newValue, oldValue);
16009 };
16010 // sets the data for an aggregation
16011 RowNode.prototype.setAggData = function (newAggData) {
16012 var _this = this;
16013 // find out all keys that could potentially change
16014 var colIds = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllKeysInObjects"])([this.aggData, newAggData]);
16015 var oldAggData = this.aggData;
16016 this.aggData = newAggData;
16017 // if no event service, nobody has registered for events, so no need fire event
16018 if (this.eventService) {
16019 colIds.forEach(function (colId) {
16020 var column = _this.columnController.getGridColumn(colId);
16021 var value = _this.aggData ? _this.aggData[colId] : undefined;
16022 var oldValue = oldAggData ? oldAggData[colId] : undefined;
16023 _this.dispatchCellChangedEvent(column, value, oldValue);
16024 });
16025 }
16026 };
16027 RowNode.prototype.updateHasChildren = function () {
16028 // we need to return true when this.group=true, as this is used by server side row model
16029 // (as children are lazy loaded and stored in a cache anyway). otherwise we return true
16030 // if children exist.
16031 var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);
16032 if (newValue !== this.__hasChildren) {
16033 this.__hasChildren = !!newValue;
16034 if (this.eventService) {
16035 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));
16036 }
16037 }
16038 };
16039 RowNode.prototype.hasChildren = function () {
16040 if (this.__hasChildren == null) {
16041 this.updateHasChildren();
16042 }
16043 return this.__hasChildren;
16044 };
16045 RowNode.prototype.isEmptyRowGroupNode = function () {
16046 return this.group && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missingOrEmpty"])(this.childrenAfterGroup);
16047 };
16048 RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {
16049 var cellChangedEvent = {
16050 type: RowNode.EVENT_CELL_CHANGED,
16051 node: this,
16052 column: column,
16053 newValue: newValue,
16054 oldValue: oldValue
16055 };
16056 this.dispatchLocalEvent(cellChangedEvent);
16057 };
16058 RowNode.prototype.resetQuickFilterAggregateText = function () {
16059 this.quickFilterAggregateText = null;
16060 };
16061 RowNode.prototype.isExpandable = function () {
16062 return this.hasChildren() || this.master ? true : false;
16063 };
16064 RowNode.prototype.isSelected = function () {
16065 // for footers, we just return what our sibling selected state is, as cannot select a footer
16066 if (this.footer) {
16067 return this.sibling.isSelected();
16068 }
16069 return this.selected;
16070 };
16071 RowNode.prototype.depthFirstSearch = function (callback) {
16072 if (this.childrenAfterGroup) {
16073 this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });
16074 }
16075 callback(this);
16076 };
16077 // + rowController.updateGroupsInSelection()
16078 // + selectionController.calculatedSelectedForAllGroupNodes()
16079 RowNode.prototype.calculateSelectedFromChildren = function () {
16080 var atLeastOneSelected = false;
16081 var atLeastOneDeSelected = false;
16082 var atLeastOneMixed = false;
16083 var newSelectedValue;
16084 if (this.childrenAfterGroup) {
16085 for (var i = 0; i < this.childrenAfterGroup.length; i++) {
16086 var child = this.childrenAfterGroup[i];
16087 // skip non-selectable nodes to prevent inconsistent selection values
16088 if (!child.selectable) {
16089 continue;
16090 }
16091 var childState = child.isSelected();
16092 switch (childState) {
16093 case true:
16094 atLeastOneSelected = true;
16095 break;
16096 case false:
16097 atLeastOneDeSelected = true;
16098 break;
16099 default:
16100 atLeastOneMixed = true;
16101 break;
16102 }
16103 }
16104 }
16105 if (atLeastOneMixed) {
16106 newSelectedValue = undefined;
16107 }
16108 else if (atLeastOneSelected && !atLeastOneDeSelected) {
16109 newSelectedValue = true;
16110 }
16111 else if (!atLeastOneSelected && atLeastOneDeSelected) {
16112 newSelectedValue = false;
16113 }
16114 else {
16115 newSelectedValue = undefined;
16116 }
16117 this.selectThisNode(newSelectedValue);
16118 };
16119 RowNode.prototype.setSelectedInitialValue = function (selected) {
16120 this.selected = selected;
16121 };
16122 RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions) {
16123 if (clearSelection === void 0) { clearSelection = false; }
16124 if (suppressFinishActions === void 0) { suppressFinishActions = false; }
16125 this.setSelectedParams({
16126 newValue: newValue,
16127 clearSelection: clearSelection,
16128 suppressFinishActions: suppressFinishActions,
16129 rangeSelect: false
16130 });
16131 };
16132 RowNode.prototype.isRowPinned = function () {
16133 return this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP || this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM;
16134 };
16135 // to make calling code more readable, this is the same method as setSelected except it takes names parameters
16136 RowNode.prototype.setSelectedParams = function (params) {
16137 var groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
16138 var newValue = params.newValue === true;
16139 var clearSelection = params.clearSelection === true;
16140 var suppressFinishActions = params.suppressFinishActions === true;
16141 var rangeSelect = params.rangeSelect === true;
16142 // groupSelectsFiltered only makes sense when group selects children
16143 var groupSelectsFiltered = groupSelectsChildren && (params.groupSelectsFiltered === true);
16144 if (this.id === undefined) {
16145 console.warn('AG Grid: cannot select node until id for node is known');
16146 return 0;
16147 }
16148 if (this.rowPinned) {
16149 console.warn('AG Grid: cannot select pinned rows');
16150 return 0;
16151 }
16152 // if we are a footer, we don't do selection, just pass the info
16153 // to the sibling (the parent of the group)
16154 if (this.footer) {
16155 return this.sibling.setSelectedParams(params);
16156 }
16157 if (rangeSelect && this.selectionController.getLastSelectedNode()) {
16158 var newRowClicked = this.selectionController.getLastSelectedNode() !== this;
16159 var allowMultiSelect = this.gridOptionsWrapper.isRowSelectionMulti();
16160 if (newRowClicked && allowMultiSelect) {
16161 var nodesChanged = this.doRowRangeSelection(params.newValue);
16162 this.selectionController.setLastSelectedNode(this);
16163 return nodesChanged;
16164 }
16165 }
16166 var updatedCount = 0;
16167 // when groupSelectsFiltered, then this node may end up intermediate despite
16168 // trying to set it to true / false. this group will be calculated further on
16169 // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it
16170 // here, otherwise the updatedCount would include it.
16171 var skipThisNode = groupSelectsFiltered && this.group;
16172 if (!skipThisNode) {
16173 var thisNodeWasSelected = this.selectThisNode(newValue);
16174 if (thisNodeWasSelected) {
16175 updatedCount++;
16176 }
16177 }
16178 if (groupSelectsChildren && this.group) {
16179 updatedCount += this.selectChildNodes(newValue, groupSelectsFiltered);
16180 }
16181 // clear other nodes if not doing multi select
16182 if (!suppressFinishActions) {
16183 var clearOtherNodes = newValue && (clearSelection || !this.gridOptionsWrapper.isRowSelectionMulti());
16184 if (clearOtherNodes) {
16185 updatedCount += this.selectionController.clearOtherNodes(this);
16186 }
16187 // only if we selected something, then update groups and fire events
16188 if (updatedCount > 0) {
16189 this.selectionController.updateGroupsFromChildrenSelections();
16190 // this is the very end of the 'action node', so we are finished all the updates,
16191 // include any parent / child changes that this method caused
16192 var event_1 = {
16193 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SELECTION_CHANGED,
16194 api: this.gridApi,
16195 columnApi: this.columnApi
16196 };
16197 this.mainEventService.dispatchEvent(event_1);
16198 }
16199 // so if user next does shift-select, we know where to start the selection from
16200 if (newValue) {
16201 this.selectionController.setLastSelectedNode(this);
16202 }
16203 }
16204 return updatedCount;
16205 };
16206 // selects all rows between this node and the last selected node (or the top if this is the first selection).
16207 // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by
16208 // holding down 'shift'.
16209 RowNode.prototype.doRowRangeSelection = function (value) {
16210 var _this = this;
16211 if (value === void 0) { value = true; }
16212 var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
16213 var lastSelectedNode = this.selectionController.getLastSelectedNode();
16214 var nodesToSelect = this.rowModel.getNodesInRangeForSelection(this, lastSelectedNode);
16215 var updatedCount = 0;
16216 nodesToSelect.forEach(function (rowNode) {
16217 if (rowNode.group && groupsSelectChildren || (value === false && _this === rowNode)) {
16218 return;
16219 }
16220 var nodeWasSelected = rowNode.selectThisNode(value);
16221 if (nodeWasSelected) {
16222 updatedCount++;
16223 }
16224 });
16225 this.selectionController.updateGroupsFromChildrenSelections();
16226 var event = {
16227 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SELECTION_CHANGED,
16228 api: this.gridApi,
16229 columnApi: this.columnApi
16230 };
16231 this.mainEventService.dispatchEvent(event);
16232 return updatedCount;
16233 };
16234 RowNode.prototype.isParentOfNode = function (potentialParent) {
16235 var parentNode = this.parent;
16236 while (parentNode) {
16237 if (parentNode === potentialParent) {
16238 return true;
16239 }
16240 parentNode = parentNode.parent;
16241 }
16242 return false;
16243 };
16244 RowNode.prototype.selectThisNode = function (newValue) {
16245 // we only check selectable when newValue=true (ie selecting) to allow unselecting values,
16246 // as selectable is dynamic, need a way to unselect rows when selectable becomes false.
16247 var selectionNotAllowed = !this.selectable && newValue;
16248 var selectionNotChanged = this.selected === newValue;
16249 if (selectionNotAllowed || selectionNotChanged) {
16250 return false;
16251 }
16252 this.selected = newValue;
16253 if (this.eventService) {
16254 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));
16255 }
16256 var event = this.createGlobalRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_SELECTED);
16257 this.mainEventService.dispatchEvent(event);
16258 return true;
16259 };
16260 RowNode.prototype.selectChildNodes = function (newValue, groupSelectsFiltered) {
16261 var children = groupSelectsFiltered ? this.childrenAfterFilter : this.childrenAfterGroup;
16262 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(children)) {
16263 return 0;
16264 }
16265 var updatedCount = 0;
16266 for (var i = 0; i < children.length; i++) {
16267 updatedCount += children[i].setSelectedParams({
16268 newValue: newValue,
16269 clearSelection: false,
16270 suppressFinishActions: true,
16271 groupSelectsFiltered: groupSelectsFiltered
16272 });
16273 }
16274 return updatedCount;
16275 };
16276 RowNode.prototype.addEventListener = function (eventType, listener) {
16277 if (!this.eventService) {
16278 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
16279 }
16280 this.eventService.addEventListener(eventType, listener);
16281 };
16282 RowNode.prototype.removeEventListener = function (eventType, listener) {
16283 if (!this.eventService) {
16284 return;
16285 }
16286 this.eventService.removeEventListener(eventType, listener);
16287 if (this.eventService.noRegisteredListenersExist()) {
16288 this.eventService = null;
16289 }
16290 };
16291 RowNode.prototype.onMouseEnter = function () {
16292 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));
16293 };
16294 RowNode.prototype.onMouseLeave = function () {
16295 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));
16296 };
16297 RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {
16298 var currentRowNode = this;
16299 var isCandidate = true;
16300 var foundFirstChildPath = false;
16301 var nodeToSwapIn = null;
16302 // if we are hiding groups, then if we are the first child, of the first child,
16303 // all the way up to the column we are interested in, then we show the group cell.
16304 while (isCandidate && !foundFirstChildPath) {
16305 var parentRowNode = currentRowNode.parent;
16306 var firstChild = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(parentRowNode) && currentRowNode.firstChild;
16307 if (firstChild) {
16308 if (parentRowNode.rowGroupColumn === rowGroupColumn) {
16309 foundFirstChildPath = true;
16310 nodeToSwapIn = parentRowNode;
16311 }
16312 }
16313 else {
16314 isCandidate = false;
16315 }
16316 currentRowNode = parentRowNode;
16317 }
16318 return foundFirstChildPath ? nodeToSwapIn : null;
16319 };
16320 RowNode.prototype.isFullWidthCell = function () {
16321 var isFullWidthCellFunc = this.gridOptionsWrapper.getIsFullWidthCellFunc();
16322 return isFullWidthCellFunc ? isFullWidthCellFunc(this) : false;
16323 };
16324 RowNode.prototype.getRoute = function () {
16325 if (this.key == null) {
16326 return;
16327 }
16328 var res = [];
16329 var pointer = this;
16330 while (pointer.key != null) {
16331 res.push(pointer.key);
16332 pointer = pointer.parent;
16333 }
16334 return res.reverse();
16335 };
16336 RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';
16337 RowNode.ID_PREFIX_TOP_PINNED = 't-';
16338 RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';
16339 RowNode.OBJECT_ID_SEQUENCE = 0;
16340 RowNode.EVENT_ROW_SELECTED = 'rowSelected';
16341 RowNode.EVENT_DATA_CHANGED = 'dataChanged';
16342 RowNode.EVENT_CELL_CHANGED = 'cellChanged';
16343 RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';
16344 RowNode.EVENT_MASTER_CHANGED = 'masterChanged';
16345 RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';
16346 RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';
16347 RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';
16348 RowNode.EVENT_TOP_CHANGED = 'topChanged';
16349 RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';
16350 RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';
16351 RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';
16352 RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';
16353 RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';
16354 RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';
16355 RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';
16356 RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';
16357 RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';
16358 RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';
16359 RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';
16360 __decorate([
16361 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('eventService')
16362 ], RowNode.prototype, "mainEventService", void 0);
16363 __decorate([
16364 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowRenderer')
16365 ], RowNode.prototype, "rowRenderer", void 0);
16366 __decorate([
16367 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
16368 ], RowNode.prototype, "gridOptionsWrapper", void 0);
16369 __decorate([
16370 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionController')
16371 ], RowNode.prototype, "selectionController", void 0);
16372 __decorate([
16373 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
16374 ], RowNode.prototype, "columnController", void 0);
16375 __decorate([
16376 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
16377 ], RowNode.prototype, "valueService", void 0);
16378 __decorate([
16379 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
16380 ], RowNode.prototype, "rowModel", void 0);
16381 __decorate([
16382 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('context')
16383 ], RowNode.prototype, "context", void 0);
16384 __decorate([
16385 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueCache')
16386 ], RowNode.prototype, "valueCache", void 0);
16387 __decorate([
16388 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
16389 ], RowNode.prototype, "columnApi", void 0);
16390 __decorate([
16391 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
16392 ], RowNode.prototype, "gridApi", void 0);
16393 return RowNode;
16394}());
16395
16396
16397
16398/***/ }),
16399/* 74 */
16400/***/ (function(module, __webpack_exports__, __webpack_require__) {
16401
16402"use strict";
16403__webpack_require__.r(__webpack_exports__);
16404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return CheckboxSelectionComponent; });
16405/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
16406/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
16407/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
16408/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
16409/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(73);
16410/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21);
16411/**
16412 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
16413 * @version v25.3.0
16414 * @link http://www.ag-grid.com/
16415 * @license MIT
16416 */
16417var __extends = (undefined && undefined.__extends) || (function () {
16418 var extendStatics = function (d, b) {
16419 extendStatics = Object.setPrototypeOf ||
16420 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16421 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
16422 return extendStatics(d, b);
16423 };
16424 return function (d, b) {
16425 extendStatics(d, b);
16426 function __() { this.constructor = d; }
16427 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16428 };
16429})();
16430var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16431 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16432 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16433 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16434 return c > 3 && r && Object.defineProperty(target, key, r), r;
16435};
16436
16437
16438
16439
16440
16441
16442var CheckboxSelectionComponent = /** @class */ (function (_super) {
16443 __extends(CheckboxSelectionComponent, _super);
16444 function CheckboxSelectionComponent() {
16445 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;
16446 }
16447 CheckboxSelectionComponent.prototype.postConstruct = function () {
16448 this.eCheckbox.setPassive(true);
16449 };
16450 CheckboxSelectionComponent.prototype.getCheckboxId = function () {
16451 return this.eCheckbox.getInputElement().id;
16452 };
16453 CheckboxSelectionComponent.prototype.onDataChanged = function () {
16454 // when rows are loaded for the second time, this can impact the selection, as a row
16455 // could be loaded as already selected (if user scrolls down, and then up again).
16456 this.onSelectionChanged();
16457 };
16458 CheckboxSelectionComponent.prototype.onSelectableChanged = function () {
16459 this.showOrHideSelect();
16460 };
16461 CheckboxSelectionComponent.prototype.onSelectionChanged = function () {
16462 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
16463 var state = this.rowNode.isSelected();
16464 var stateName = state === undefined
16465 ? translate('ariaIndeterminate', 'indeterminate')
16466 : (state === true
16467 ? translate('ariaChecked', 'checked')
16468 : translate('ariaUnchecked', 'unchecked'));
16469 var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');
16470 this.eCheckbox.setValue(state, true);
16471 this.eCheckbox.setInputAriaLabel(ariaLabel + " (" + stateName + ")");
16472 };
16473 CheckboxSelectionComponent.prototype.onCheckedClicked = function (event) {
16474 var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();
16475 var updatedCount = this.rowNode.setSelectedParams({ newValue: false, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });
16476 return updatedCount;
16477 };
16478 CheckboxSelectionComponent.prototype.onUncheckedClicked = function (event) {
16479 var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();
16480 var updatedCount = this.rowNode.setSelectedParams({ newValue: true, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });
16481 return updatedCount;
16482 };
16483 CheckboxSelectionComponent.prototype.init = function (params) {
16484 var _this = this;
16485 this.rowNode = params.rowNode;
16486 this.column = params.column;
16487 this.onSelectionChanged();
16488 // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row
16489 // would possibly get selected twice
16490 this.addGuiEventListener('click', function (event) { return Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(event); });
16491 // likewise we don't want double click on this icon to open a group
16492 this.addGuiEventListener('dblclick', function (event) { return Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(event); });
16493 this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {
16494 var isSelected = _this.eCheckbox.getValue();
16495 var previousValue = _this.eCheckbox.getPreviousValue();
16496 if (previousValue === undefined) { // indeterminate
16497 var result = _this.onUncheckedClicked(event || {});
16498 if (result === 0) {
16499 _this.onCheckedClicked(event);
16500 }
16501 }
16502 else if (isSelected) {
16503 _this.onCheckedClicked(event);
16504 }
16505 else {
16506 _this.onUncheckedClicked(event || {});
16507 }
16508 });
16509 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));
16510 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_DATA_CHANGED, this.onDataChanged.bind(this));
16511 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));
16512 var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();
16513 var checkboxVisibleIsDynamic = isRowSelectableFunc || this.checkboxCallbackExists();
16514 if (checkboxVisibleIsDynamic) {
16515 var showOrHideSelectListener = this.showOrHideSelect.bind(this);
16516 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);
16517 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_DATA_CHANGED, showOrHideSelectListener);
16518 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_CELL_CHANGED, showOrHideSelectListener);
16519 this.showOrHideSelect();
16520 }
16521 this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');
16522 };
16523 CheckboxSelectionComponent.prototype.showOrHideSelect = function () {
16524 // if the isRowSelectable() is not provided the row node is selectable by default
16525 var selectable = this.rowNode.selectable;
16526 // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.
16527 // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need
16528 // to call the colDef callback.
16529 if (selectable && this.checkboxCallbackExists()) {
16530 selectable = this.column.isCellCheckboxSelection(this.rowNode);
16531 }
16532 // show checkbox if both conditions are true
16533 this.setVisible(selectable);
16534 };
16535 CheckboxSelectionComponent.prototype.checkboxCallbackExists = function () {
16536 // column will be missing if groupUseEntireRow=true
16537 var colDef = this.column ? this.column.getColDef() : null;
16538 return !!colDef && typeof colDef.checkboxSelection === 'function';
16539 };
16540 __decorate([
16541 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eCheckbox')
16542 ], CheckboxSelectionComponent.prototype, "eCheckbox", void 0);
16543 __decorate([
16544 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
16545 ], CheckboxSelectionComponent.prototype, "postConstruct", null);
16546 return CheckboxSelectionComponent;
16547}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
16548
16549
16550
16551/***/ }),
16552/* 75 */
16553/***/ (function(module, __webpack_exports__, __webpack_require__) {
16554
16555"use strict";
16556__webpack_require__.r(__webpack_exports__);
16557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentSource", function() { return ComponentSource; });
16558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return UserComponentFactory; });
16559/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
16560/* harmony import */ var _userComponentRegistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
16561/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
16562/* harmony import */ var _componentTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76);
16563/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);
16564/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
16565/**
16566 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
16567 * @version v25.3.0
16568 * @link http://www.ag-grid.com/
16569 * @license MIT
16570 */
16571var __extends = (undefined && undefined.__extends) || (function () {
16572 var extendStatics = function (d, b) {
16573 extendStatics = Object.setPrototypeOf ||
16574 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16575 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
16576 return extendStatics(d, b);
16577 };
16578 return function (d, b) {
16579 extendStatics(d, b);
16580 function __() { this.constructor = d; }
16581 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16582 };
16583})();
16584var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16585 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16586 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16587 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16588 return c > 3 && r && Object.defineProperty(target, key, r), r;
16589};
16590
16591
16592
16593
16594
16595
16596var ComponentSource;
16597(function (ComponentSource) {
16598 ComponentSource[ComponentSource["DEFAULT"] = 0] = "DEFAULT";
16599 ComponentSource[ComponentSource["REGISTERED_BY_NAME"] = 1] = "REGISTERED_BY_NAME";
16600 ComponentSource[ComponentSource["HARDCODED"] = 2] = "HARDCODED";
16601})(ComponentSource || (ComponentSource = {}));
16602var UserComponentFactory = /** @class */ (function (_super) {
16603 __extends(UserComponentFactory, _super);
16604 function UserComponentFactory() {
16605 return _super !== null && _super.apply(this, arguments) || this;
16606 }
16607 UserComponentFactory.prototype.newDateComponent = function (params) {
16608 return this.createAndInitUserComponent(this.gridOptions, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["DateComponent"], 'agDateInput');
16609 };
16610 UserComponentFactory.prototype.newHeaderComponent = function (params) {
16611 return this.createAndInitUserComponent(params.column.getColDef(), params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["HeaderComponent"], 'agColumnHeader');
16612 };
16613 UserComponentFactory.prototype.newHeaderGroupComponent = function (params) {
16614 return this.createAndInitUserComponent(params.columnGroup.getColGroupDef(), params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["HeaderGroupComponent"], 'agColumnGroupHeader');
16615 };
16616 UserComponentFactory.prototype.newFullWidthGroupRowInnerCellRenderer = function (params) {
16617 return this.createAndInitUserComponent(this.gridOptions.groupRowRendererParams, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["InnerRendererComponent"], null, true);
16618 };
16619 // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.
16620 // so we have to pass the type in.
16621 UserComponentFactory.prototype.newFullWidthCellRenderer = function (params, cellRendererType, cellRendererName) {
16622 return this.createAndInitUserComponent(null, params, { propertyName: cellRendererType, isCellRenderer: function () { return true; } }, cellRendererName);
16623 };
16624 UserComponentFactory.prototype.newCellRenderer = function (target, params, isPinned) {
16625 if (isPinned === void 0) { isPinned = false; }
16626 return this.createAndInitUserComponent(target, params, isPinned ? _componentTypes__WEBPACK_IMPORTED_MODULE_3__["PinnedRowCellRendererComponent"] : _componentTypes__WEBPACK_IMPORTED_MODULE_3__["CellRendererComponent"], null, true);
16627 };
16628 UserComponentFactory.prototype.newCellEditor = function (colDef, params) {
16629 return this.createAndInitUserComponent(colDef, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["CellEditorComponent"], 'agCellEditor');
16630 };
16631 UserComponentFactory.prototype.newInnerCellRenderer = function (target, params) {
16632 return this.createAndInitUserComponent(target, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["InnerRendererComponent"], null);
16633 };
16634 UserComponentFactory.prototype.newLoadingOverlayComponent = function (params) {
16635 return this.createAndInitUserComponent(this.gridOptions, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["LoadingOverlayComponent"], 'agLoadingOverlay');
16636 };
16637 UserComponentFactory.prototype.newNoRowsOverlayComponent = function (params) {
16638 return this.createAndInitUserComponent(this.gridOptions, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["NoRowsOverlayComponent"], 'agNoRowsOverlay');
16639 };
16640 UserComponentFactory.prototype.newTooltipComponent = function (params) {
16641 return this.createAndInitUserComponent(params.colDef, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["TooltipComponent"], 'agTooltipComponent');
16642 };
16643 UserComponentFactory.prototype.newFilterComponent = function (def, params, defaultFilter) {
16644 return this.createAndInitUserComponent(def, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["FilterComponent"], defaultFilter, false);
16645 };
16646 UserComponentFactory.prototype.newSetFilterCellRenderer = function (target, params) {
16647 return this.createAndInitUserComponent(target, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["CellRendererComponent"], null, true);
16648 };
16649 UserComponentFactory.prototype.newFloatingFilterComponent = function (def, params, defaultFloatingFilter) {
16650 return this.createAndInitUserComponent(def, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterComponent"], defaultFloatingFilter, true);
16651 };
16652 UserComponentFactory.prototype.newToolPanelComponent = function (toolPanelDef, params) {
16653 return this.createAndInitUserComponent(toolPanelDef, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["ToolPanelComponent"]);
16654 };
16655 UserComponentFactory.prototype.newStatusPanelComponent = function (def, params) {
16656 return this.createAndInitUserComponent(def, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["StatusPanelComponent"]);
16657 };
16658 /**
16659 * This method creates a component given everything needed to guess what sort of component needs to be instantiated
16660 * It takes
16661 * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions
16662 * (global) or columnDef mostly.
16663 * @param paramsFromGrid: Params to be passed to the component and passed by AG Grid. This will get merged with any params
16664 * specified by the user in the configuration
16665 * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:
16666 * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component
16667 * @param defaultComponentName: The actual name of the component to instantiate, this is usually the same as propertyName, but in
16668 * some cases is not, like floatingFilter, if it is the same is not necessary to specify
16669 * @param optional: Handy method to tell if this should return a component ALWAYS. if that is the case, but there is no
16670 * component found, it throws an error, by default all components are MANDATORY
16671 */
16672 UserComponentFactory.prototype.createAndInitUserComponent = function (definitionObject, paramsFromGrid, componentType, defaultComponentName,
16673 // optional items are: FloatingFilter, CellComp (for cellRenderer)
16674 optional) {
16675 if (optional === void 0) { optional = false; }
16676 if (!definitionObject) {
16677 definitionObject = this.gridOptions;
16678 }
16679 // Create the component instance
16680 var componentAndParams = this.createComponentInstance(definitionObject, componentType, paramsFromGrid, defaultComponentName, optional);
16681 if (!componentAndParams) {
16682 return null;
16683 }
16684 var componentInstance = componentAndParams.componentInstance;
16685 // Wire the component and call the init method with the correct params
16686 var params = this.createFinalParams(definitionObject, componentType.propertyName, paramsFromGrid, componentAndParams.paramsFromSelector);
16687 this.addReactHacks(params);
16688 var deferredInit = this.initComponent(componentInstance, params);
16689 if (deferredInit == null) {
16690 return _utils__WEBPACK_IMPORTED_MODULE_2__["AgPromise"].resolve(componentInstance);
16691 }
16692 return deferredInit.then(function () { return componentInstance; });
16693 };
16694 UserComponentFactory.prototype.addReactHacks = function (params) {
16695 // a temporary fix for AG-1574
16696 // AG-1715 raised to do a wider ranging refactor to improve this
16697 var agGridReact = this.context.getBean('agGridReact');
16698 if (agGridReact) {
16699 params.agGridReact = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["cloneObject"])(agGridReact);
16700 }
16701 // AG-1716 - directly related to AG-1574 and AG-1715
16702 var frameworkComponentWrapper = this.context.getBean('frameworkComponentWrapper');
16703 if (frameworkComponentWrapper) {
16704 params.frameworkComponentWrapper = frameworkComponentWrapper;
16705 }
16706 };
16707 /**
16708 * This method creates a component given everything needed to guess what sort of component needs to be instantiated
16709 * It takes
16710 * @param clazz: The class to instantiate,
16711 * @param agGridParams: Params to be passed to the component and passed by AG Grid. This will get merged with any params
16712 * specified by the user in the configuration
16713 * @param modifyParamsCallback: A chance to customise the params passed to the init method. It receives what the current
16714 * params are and the component that init is about to get called for
16715 */
16716 UserComponentFactory.prototype.createUserComponentFromConcreteClass = function (clazz, agGridParams) {
16717 var internalComponent = new clazz();
16718 this.initComponent(internalComponent, agGridParams);
16719 return internalComponent;
16720 };
16721 /**
16722 * This method returns the underlying representation of the component to be created. ie for Javascript the
16723 * underlying function where we should be calling new into. In case of the frameworks, the framework class
16724 * object that represents the component to be created.
16725 *
16726 * This method is handy for different reasons, for example if you want to check if a component has a particular
16727 * method implemented without having to create the component, just by inspecting the source component
16728 *
16729 * It takes
16730 * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions
16731 * (global) or columnDef mostly.
16732 * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:
16733 * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component
16734 * @param params: Params to be passed to the dynamic component function in case it needs to be
16735 * invoked
16736 * @param defaultComponentName: The name of the component to load if there is no component specified
16737 */
16738 UserComponentFactory.prototype.lookupComponentClassDef = function (definitionObject, propertyName, params, defaultComponentName) {
16739 if (params === void 0) { params = null; }
16740 /**
16741 * There are five things that can happen when resolving a component.
16742 * a) HardcodedFwComponent: That holder[propertyName]Framework has associated a Framework native component
16743 * b) HardcodedJsComponent: That holder[propertyName] has associate a JS component
16744 * c) hardcodedJsFunction: That holder[propertyName] has associate a JS function
16745 * d) hardcodedNameComponent: That holder[propertyName] has associate a string that represents a component to load
16746 * e) That none of the three previous are specified, then we need to use the DefaultRegisteredComponent
16747 */
16748 var hardcodedNameComponent = null;
16749 var HardcodedJsComponent = null;
16750 var hardcodedJsFunction = null;
16751 var HardcodedFwComponent = null;
16752 var componentSelectorFunc = null;
16753 if (definitionObject != null) {
16754 var componentPropertyValue = definitionObject[propertyName];
16755 // for filters only, we allow 'true' for the component, which means default filter to be used
16756 var usingDefaultComponent = componentPropertyValue === true;
16757 if (componentPropertyValue != null && !usingDefaultComponent) {
16758 if (typeof componentPropertyValue === 'string') {
16759 hardcodedNameComponent = componentPropertyValue;
16760 }
16761 else if (typeof componentPropertyValue === 'boolean') {
16762 // never happens, as we test for usingDefaultComponent above,
16763 // however it's needed for the next block to compile
16764 }
16765 else if (this.agComponentUtils.doesImplementIComponent(componentPropertyValue)) {
16766 HardcodedJsComponent = componentPropertyValue;
16767 }
16768 else {
16769 hardcodedJsFunction = componentPropertyValue;
16770 }
16771 }
16772 HardcodedFwComponent = definitionObject[propertyName + "Framework"];
16773 componentSelectorFunc = definitionObject[propertyName + "Selector"];
16774 }
16775 /**
16776 * Since we allow many types of flavors for specifying the components, let's make sure this is not an illegal
16777 * combination
16778 */
16779 if ((HardcodedJsComponent && HardcodedFwComponent) ||
16780 (hardcodedNameComponent && HardcodedFwComponent) ||
16781 (hardcodedJsFunction && HardcodedFwComponent)) {
16782 throw Error("ag-grid: you are trying to specify: " + propertyName + " twice as a component.");
16783 }
16784 if (HardcodedFwComponent && !this.frameworkComponentWrapper) {
16785 throw Error("ag-grid: you are specifying a framework component but you are not using a framework version of ag-grid for : " + propertyName);
16786 }
16787 if (componentSelectorFunc && (hardcodedNameComponent || HardcodedJsComponent || hardcodedJsFunction || HardcodedFwComponent)) {
16788 throw Error("ag-grid: you can't specify both, the selector and the component of ag-grid for : " + propertyName);
16789 }
16790 /**
16791 * At this stage we are guaranteed to either have,
16792 * DEPRECATED
16793 * - A unique HardcodedFwComponent
16794 * - A unique HardcodedJsComponent
16795 * - A unique hardcodedJsFunction
16796 * BY NAME- FAVOURED APPROACH
16797 * - A unique hardcodedNameComponent
16798 * - None of the previous, hence we revert to: RegisteredComponent
16799 */
16800 if (HardcodedFwComponent) {
16801 // console.warn(`ag-grid: Since version 12.1.0 specifying a component directly is deprecated, you should register the component by name`);
16802 // console.warn(`${HardcodedFwComponent}`);
16803 return {
16804 componentFromFramework: true,
16805 component: HardcodedFwComponent,
16806 source: ComponentSource.HARDCODED,
16807 paramsFromSelector: null
16808 };
16809 }
16810 if (HardcodedJsComponent) {
16811 // console.warn(`ag-grid: Since version 12.1.0 specifying a component directly is deprecated, you should register the component by name`);
16812 // console.warn(`${HardcodedJsComponent}`);
16813 return {
16814 componentFromFramework: false,
16815 component: HardcodedJsComponent,
16816 source: ComponentSource.HARDCODED,
16817 paramsFromSelector: null
16818 };
16819 }
16820 if (hardcodedJsFunction) {
16821 // console.warn(`ag-grid: Since version 12.1.0 specifying a function directly is deprecated, you should register the component by name`);
16822 // console.warn(`${hardcodedJsFunction}`);
16823 return this.agComponentUtils.adaptFunction(propertyName, hardcodedJsFunction, false, ComponentSource.HARDCODED);
16824 }
16825 var selectorResult = componentSelectorFunc ? componentSelectorFunc(params) : null;
16826 var componentNameToUse;
16827 if (selectorResult && selectorResult.component) {
16828 componentNameToUse = selectorResult.component;
16829 }
16830 else if (hardcodedNameComponent) {
16831 componentNameToUse = hardcodedNameComponent;
16832 }
16833 else {
16834 componentNameToUse = defaultComponentName;
16835 }
16836 if (!componentNameToUse) {
16837 return null;
16838 }
16839 var registeredCompClassDef = this.lookupFromRegisteredComponents(propertyName, componentNameToUse);
16840 if (!registeredCompClassDef) {
16841 return null;
16842 }
16843 return {
16844 componentFromFramework: registeredCompClassDef.componentFromFramework,
16845 component: registeredCompClassDef.component,
16846 source: registeredCompClassDef.source,
16847 paramsFromSelector: selectorResult ? selectorResult.params : null
16848 };
16849 };
16850 UserComponentFactory.prototype.lookupFromRegisteredComponents = function (propertyName, componentNameOpt) {
16851 var componentName = componentNameOpt != null ? componentNameOpt : propertyName;
16852 var registeredComponent = this.userComponentRegistry.retrieve(componentName);
16853 if (registeredComponent == null) {
16854 return null;
16855 }
16856 //If it is a FW it has to be registered as a component
16857 if (registeredComponent.componentFromFramework) {
16858 return {
16859 component: registeredComponent.component,
16860 componentFromFramework: true,
16861 source: ComponentSource.REGISTERED_BY_NAME,
16862 paramsFromSelector: null
16863 };
16864 }
16865 //If it is JS it may be a function or a component
16866 if (this.agComponentUtils.doesImplementIComponent(registeredComponent.component)) {
16867 return {
16868 component: registeredComponent.component,
16869 componentFromFramework: false,
16870 source: (registeredComponent.source == _userComponentRegistry__WEBPACK_IMPORTED_MODULE_1__["RegisteredComponentSource"].REGISTERED) ? ComponentSource.REGISTERED_BY_NAME : ComponentSource.DEFAULT,
16871 paramsFromSelector: null
16872 };
16873 }
16874 // This is a function
16875 return this.agComponentUtils.adaptFunction(propertyName, registeredComponent.component, registeredComponent.componentFromFramework, (registeredComponent.source == _userComponentRegistry__WEBPACK_IMPORTED_MODULE_1__["RegisteredComponentSource"].REGISTERED) ? ComponentSource.REGISTERED_BY_NAME : ComponentSource.DEFAULT);
16876 };
16877 /**
16878 * Useful to check what would be the resultant params for a given object
16879 * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions
16880 * (global) or columnDef mostly.
16881 * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:
16882 * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component
16883 * @param paramsFromGrid: Params to be passed to the component and passed by AG Grid. This will get merged with any params
16884 * specified by the user in the configuration
16885 * @returns {TParams} It merges the user agGridParams with the actual params specified by the user.
16886 */
16887 UserComponentFactory.prototype.createFinalParams = function (definitionObject, propertyName, paramsFromGrid, paramsFromSelector) {
16888 if (paramsFromSelector === void 0) { paramsFromSelector = null; }
16889 var params = {};
16890 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, paramsFromGrid);
16891 var userParams = definitionObject ? definitionObject[propertyName + "Params"] : null;
16892 if (userParams != null) {
16893 if (typeof userParams === 'function') {
16894 var userParamsFromFunc = userParams(paramsFromGrid);
16895 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, userParamsFromFunc);
16896 }
16897 else if (typeof userParams === 'object') {
16898 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, userParams);
16899 }
16900 }
16901 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, paramsFromSelector);
16902 return params;
16903 };
16904 UserComponentFactory.prototype.createComponentInstance = function (holder, componentType, paramsForSelector, defaultComponentName, optional) {
16905 var propertyName = componentType.propertyName;
16906 var componentToUse = this.lookupComponentClassDef(holder, propertyName, paramsForSelector, defaultComponentName);
16907 var missing = !componentToUse || !componentToUse.component;
16908 if (missing) {
16909 // to help the user, we print out the name they are looking for, rather than the default name.
16910 // i don't know why the default name was originally printed out (that doesn't help the user)
16911 var overrideName = holder ? holder[propertyName] : defaultComponentName;
16912 var nameToReport = overrideName ? overrideName : defaultComponentName;
16913 if (!optional) {
16914 console.error("Could not find component " + nameToReport + ", did you forget to configure this component?");
16915 }
16916 return null;
16917 }
16918 var componentInstance;
16919 if (componentToUse.componentFromFramework) {
16920 // Using framework component
16921 var FrameworkComponentRaw = componentToUse.component;
16922 var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);
16923 componentInstance = this.frameworkComponentWrapper.wrap(FrameworkComponentRaw, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, componentType, defaultComponentName);
16924 }
16925 else {
16926 // Using plain JavaScript component
16927 componentInstance = new componentToUse.component();
16928 }
16929 return { componentInstance: componentInstance, paramsFromSelector: componentToUse.paramsFromSelector };
16930 };
16931 UserComponentFactory.prototype.initComponent = function (component, params) {
16932 this.context.createBean(component);
16933 if (component.init == null) {
16934 return;
16935 }
16936 return component.init(params);
16937 };
16938 __decorate([
16939 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptions')
16940 ], UserComponentFactory.prototype, "gridOptions", void 0);
16941 __decorate([
16942 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('agComponentUtils')
16943 ], UserComponentFactory.prototype, "agComponentUtils", void 0);
16944 __decorate([
16945 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('componentMetadataProvider')
16946 ], UserComponentFactory.prototype, "componentMetadataProvider", void 0);
16947 __decorate([
16948 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentRegistry')
16949 ], UserComponentFactory.prototype, "userComponentRegistry", void 0);
16950 __decorate([
16951 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('frameworkComponentWrapper')
16952 ], UserComponentFactory.prototype, "frameworkComponentWrapper", void 0);
16953 UserComponentFactory = __decorate([
16954 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('userComponentFactory')
16955 ], UserComponentFactory);
16956 return UserComponentFactory;
16957}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
16958
16959
16960
16961/***/ }),
16962/* 76 */
16963/***/ (function(module, __webpack_exports__, __webpack_require__) {
16964
16965"use strict";
16966__webpack_require__.r(__webpack_exports__);
16967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateComponent", function() { return DateComponent; });
16968/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComponent", function() { return HeaderComponent; });
16969/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupComponent", function() { return HeaderGroupComponent; });
16970/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRendererComponent", function() { return CellRendererComponent; });
16971/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedRowCellRendererComponent", function() { return PinnedRowCellRendererComponent; });
16972/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellEditorComponent", function() { return CellEditorComponent; });
16973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerRendererComponent", function() { return InnerRendererComponent; });
16974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingOverlayComponent", function() { return LoadingOverlayComponent; });
16975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoRowsOverlayComponent", function() { return NoRowsOverlayComponent; });
16976/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; });
16977/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterComponent", function() { return FilterComponent; });
16978/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterComponent", function() { return FloatingFilterComponent; });
16979/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToolPanelComponent", function() { return ToolPanelComponent; });
16980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StatusPanelComponent", function() { return StatusPanelComponent; });
16981/**
16982 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
16983 * @version v25.3.0
16984 * @link http://www.ag-grid.com/
16985 * @license MIT
16986 */
16987var DateComponent = {
16988 propertyName: 'dateComponent',
16989 isCellRenderer: function () { return false; }
16990};
16991var HeaderComponent = {
16992 propertyName: 'headerComponent',
16993 isCellRenderer: function () { return false; },
16994};
16995var HeaderGroupComponent = {
16996 propertyName: 'headerGroupComponent',
16997 isCellRenderer: function () { return false; },
16998};
16999var CellRendererComponent = {
17000 propertyName: 'cellRenderer',
17001 isCellRenderer: function () { return true; },
17002};
17003var PinnedRowCellRendererComponent = {
17004 propertyName: 'pinnedRowCellRenderer',
17005 isCellRenderer: function () { return true; },
17006};
17007var CellEditorComponent = {
17008 propertyName: 'cellEditor',
17009 isCellRenderer: function () { return false; },
17010};
17011var InnerRendererComponent = {
17012 propertyName: 'innerRenderer',
17013 isCellRenderer: function () { return true; },
17014};
17015var LoadingOverlayComponent = {
17016 propertyName: 'loadingOverlayComponent',
17017 isCellRenderer: function () { return false; },
17018};
17019var NoRowsOverlayComponent = {
17020 propertyName: 'noRowsOverlayComponent',
17021 isCellRenderer: function () { return false; },
17022};
17023var TooltipComponent = {
17024 propertyName: 'tooltipComponent',
17025 isCellRenderer: function () { return false; },
17026};
17027var FilterComponent = {
17028 propertyName: 'filter',
17029 isCellRenderer: function () { return false; },
17030};
17031var FloatingFilterComponent = {
17032 propertyName: 'floatingFilterComponent',
17033 isCellRenderer: function () { return false; },
17034};
17035var ToolPanelComponent = {
17036 propertyName: 'toolPanel',
17037 isCellRenderer: function () { return false; },
17038};
17039var StatusPanelComponent = {
17040 propertyName: 'statusPanel',
17041 isCellRenderer: function () { return false; },
17042};
17043
17044
17045/***/ }),
17046/* 77 */
17047/***/ (function(module, __webpack_exports__, __webpack_require__) {
17048
17049"use strict";
17050__webpack_require__.r(__webpack_exports__);
17051/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDragComp", function() { return RowDragComp; });
17052/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
17053/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
17054/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73);
17055/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78);
17056/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
17057/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);
17058/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50);
17059/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15);
17060/**
17061 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17062 * @version v25.3.0
17063 * @link http://www.ag-grid.com/
17064 * @license MIT
17065 */
17066var __extends = (undefined && undefined.__extends) || (function () {
17067 var extendStatics = function (d, b) {
17068 extendStatics = Object.setPrototypeOf ||
17069 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17070 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17071 return extendStatics(d, b);
17072 };
17073 return function (d, b) {
17074 extendStatics(d, b);
17075 function __() { this.constructor = d; }
17076 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17077 };
17078})();
17079var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17080 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17081 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17082 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17083 return c > 3 && r && Object.defineProperty(target, key, r), r;
17084};
17085
17086
17087
17088
17089
17090
17091
17092
17093var RowDragComp = /** @class */ (function (_super) {
17094 __extends(RowDragComp, _super);
17095 function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels) {
17096 var _this = _super.call(this) || this;
17097 _this.cellValueFn = cellValueFn;
17098 _this.rowNode = rowNode;
17099 _this.column = column;
17100 _this.customGui = customGui;
17101 _this.dragStartPixels = dragStartPixels;
17102 _this.isCustomGui = false;
17103 _this.dragSource = null;
17104 return _this;
17105 }
17106 RowDragComp.prototype.postConstruct = function () {
17107 if (!this.customGui) {
17108 this.setTemplate(/* html */ "<div class=\"ag-drag-handle ag-row-drag\" aria-hidden=\"true\"></div>");
17109 var eGui = this.getGui();
17110 eGui.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_6__["createIconNoSpan"])('rowDrag', this.beans.gridOptionsWrapper, null));
17111 this.addDragSource();
17112 }
17113 else {
17114 this.isCustomGui = true;
17115 this.setDragElement(this.customGui, this.dragStartPixels);
17116 }
17117 this.checkCompatibility();
17118 var strategy = this.beans.gridOptionsWrapper.isRowDragManaged() ?
17119 new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :
17120 new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);
17121 this.createManagedBean(strategy, this.beans.context);
17122 };
17123 RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {
17124 this.setTemplateFromElement(dragElement);
17125 this.addDragSource(dragStartPixels);
17126 };
17127 RowDragComp.prototype.getSelectedCount = function () {
17128 var multiRowEnabled = this.beans.gridOptionsWrapper.isEnableMultiRowDragging();
17129 if (!multiRowEnabled) {
17130 return 1;
17131 }
17132 var selection = this.beans.selectionController.getSelectedNodes();
17133 return selection.indexOf(this.rowNode) !== -1 ? selection.length : 1;
17134 };
17135 // returns true if all compatibility items work out
17136 RowDragComp.prototype.checkCompatibility = function () {
17137 var managed = this.beans.gridOptionsWrapper.isRowDragManaged();
17138 var treeData = this.beans.gridOptionsWrapper.isTreeData();
17139 if (treeData && managed) {
17140 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () {
17141 return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');
17142 }, 'RowDragComp.managedAndTreeData');
17143 }
17144 };
17145 RowDragComp.prototype.addDragSource = function (dragStartPixels) {
17146 var _this = this;
17147 if (dragStartPixels === void 0) { dragStartPixels = 4; }
17148 // if this is changing the drag element, delete the previous dragSource
17149 if (this.dragSource) {
17150 this.removeDragSource();
17151 }
17152 var dragItem = {
17153 rowNode: this.rowNode,
17154 columns: this.column ? [this.column] : undefined,
17155 defaultTextValue: this.cellValueFn(),
17156 };
17157 var rowDragText = this.column && this.column.getColDef().rowDragText;
17158 this.dragSource = {
17159 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_3__["DragSourceType"].RowDrag,
17160 eElement: this.getGui(),
17161 dragItemName: function () {
17162 var dragItemCount = _this.getSelectedCount();
17163 if (rowDragText) {
17164 return rowDragText(dragItem, dragItemCount);
17165 }
17166 return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + " rows";
17167 },
17168 getDragItem: function () { return dragItem; },
17169 dragStartPixels: dragStartPixels,
17170 dragSourceDomDataKey: this.beans.gridOptionsWrapper.getDomDataKey()
17171 };
17172 this.beans.dragAndDropService.addDragSource(this.dragSource, true);
17173 };
17174 RowDragComp.prototype.removeDragSource = function () {
17175 if (this.dragSource) {
17176 this.beans.dragAndDropService.removeDragSource(this.dragSource);
17177 }
17178 this.dragSource = null;
17179 };
17180 __decorate([
17181 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('beans')
17182 ], RowDragComp.prototype, "beans", void 0);
17183 __decorate([
17184 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17185 ], RowDragComp.prototype, "postConstruct", null);
17186 __decorate([
17187 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
17188 ], RowDragComp.prototype, "removeDragSource", null);
17189 return RowDragComp;
17190}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
17191
17192var VisibilityStrategy = /** @class */ (function (_super) {
17193 __extends(VisibilityStrategy, _super);
17194 function VisibilityStrategy(parent, rowNode, column) {
17195 var _this = _super.call(this) || this;
17196 _this.parent = parent;
17197 _this.column = column;
17198 _this.rowNode = rowNode;
17199 return _this;
17200 }
17201 VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {
17202 if (neverDisplayed) {
17203 this.parent.setDisplayed(false);
17204 }
17205 else {
17206 var shown = true;
17207 var isShownSometimes = false;
17208 if (this.column) {
17209 shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui;
17210 isShownSometimes = Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["isFunction"])(this.column.getColDef().rowDrag);
17211 }
17212 // if shown sometimes, them some rows can have drag handle while other don't,
17213 // so we use setVisible to keep the handles horizontally aligned (as setVisible
17214 // keeps the empty space, whereas setDisplayed looses the space)
17215 if (isShownSometimes) {
17216 this.parent.setDisplayed(true);
17217 this.parent.setVisible(shown);
17218 }
17219 else {
17220 this.parent.setDisplayed(shown);
17221 }
17222 }
17223 };
17224 return VisibilityStrategy;
17225}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
17226// when non managed, the visibility depends on suppressRowDrag property only
17227var NonManagedVisibilityStrategy = /** @class */ (function (_super) {
17228 __extends(NonManagedVisibilityStrategy, _super);
17229 function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {
17230 var _this = _super.call(this, parent, rowNode, column) || this;
17231 _this.beans = beans;
17232 return _this;
17233 }
17234 NonManagedVisibilityStrategy.prototype.postConstruct = function () {
17235 this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));
17236 // in case data changes, then we need to update visibility of drag item
17237 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));
17238 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
17239 this.workOutVisibility();
17240 };
17241 NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {
17242 this.workOutVisibility();
17243 };
17244 NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {
17245 // only show the drag if both sort and filter are not present
17246 var neverDisplayed = this.beans.gridOptionsWrapper.isSuppressRowDrag();
17247 this.setDisplayedOrVisible(neverDisplayed);
17248 };
17249 __decorate([
17250 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17251 ], NonManagedVisibilityStrategy.prototype, "postConstruct", null);
17252 return NonManagedVisibilityStrategy;
17253}(VisibilityStrategy));
17254// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property
17255var ManagedVisibilityStrategy = /** @class */ (function (_super) {
17256 __extends(ManagedVisibilityStrategy, _super);
17257 function ManagedVisibilityStrategy(parent, beans, rowNode, column) {
17258 var _this = _super.call(this, parent, rowNode, column) || this;
17259 _this.beans = beans;
17260 return _this;
17261 }
17262 ManagedVisibilityStrategy.prototype.postConstruct = function () {
17263 // we do not show the component if sort, filter or grouping is active
17264 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));
17265 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));
17266 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));
17267 // in case data changes, then we need to update visibility of drag item
17268 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));
17269 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
17270 this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));
17271 this.workOutVisibility();
17272 };
17273 ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {
17274 this.workOutVisibility();
17275 };
17276 ManagedVisibilityStrategy.prototype.workOutVisibility = function () {
17277 // only show the drag if both sort and filter are not present
17278 var gridBodyCon = this.beans.controllersService.getGridBodyController();
17279 var rowDragFeature = gridBodyCon.getRowDragFeature();
17280 var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();
17281 var suppressRowDrag = this.beans.gridOptionsWrapper.isSuppressRowDrag();
17282 var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();
17283 var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;
17284 this.setDisplayedOrVisible(neverDisplayed);
17285 };
17286 __decorate([
17287 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17288 ], ManagedVisibilityStrategy.prototype, "postConstruct", null);
17289 return ManagedVisibilityStrategy;
17290}(VisibilityStrategy));
17291
17292
17293/***/ }),
17294/* 78 */
17295/***/ (function(module, __webpack_exports__, __webpack_require__) {
17296
17297"use strict";
17298__webpack_require__.r(__webpack_exports__);
17299/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return DragSourceType; });
17300/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return VerticalDirection; });
17301/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return HorizontalDirection; });
17302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return DragAndDropService; });
17303/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
17304/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
17305/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
17306/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50);
17307/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
17308/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
17309/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(34);
17310/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
17311/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15);
17312/**
17313 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17314 * @version v25.3.0
17315 * @link http://www.ag-grid.com/
17316 * @license MIT
17317 */
17318var __extends = (undefined && undefined.__extends) || (function () {
17319 var extendStatics = function (d, b) {
17320 extendStatics = Object.setPrototypeOf ||
17321 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17322 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17323 return extendStatics(d, b);
17324 };
17325 return function (d, b) {
17326 extendStatics(d, b);
17327 function __() { this.constructor = d; }
17328 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17329 };
17330})();
17331var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17332 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17333 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17334 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17335 return c > 3 && r && Object.defineProperty(target, key, r), r;
17336};
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346var DragSourceType;
17347(function (DragSourceType) {
17348 DragSourceType[DragSourceType["ToolPanel"] = 0] = "ToolPanel";
17349 DragSourceType[DragSourceType["HeaderCell"] = 1] = "HeaderCell";
17350 DragSourceType[DragSourceType["RowDrag"] = 2] = "RowDrag";
17351 DragSourceType[DragSourceType["ChartPanel"] = 3] = "ChartPanel";
17352})(DragSourceType || (DragSourceType = {}));
17353var VerticalDirection;
17354(function (VerticalDirection) {
17355 VerticalDirection[VerticalDirection["Up"] = 0] = "Up";
17356 VerticalDirection[VerticalDirection["Down"] = 1] = "Down";
17357})(VerticalDirection || (VerticalDirection = {}));
17358var HorizontalDirection;
17359(function (HorizontalDirection) {
17360 HorizontalDirection[HorizontalDirection["Left"] = 0] = "Left";
17361 HorizontalDirection[HorizontalDirection["Right"] = 1] = "Right";
17362})(HorizontalDirection || (HorizontalDirection = {}));
17363var DragAndDropService = /** @class */ (function (_super) {
17364 __extends(DragAndDropService, _super);
17365 function DragAndDropService() {
17366 var _this = _super !== null && _super.apply(this, arguments) || this;
17367 _this.dragSourceAndParamsList = [];
17368 _this.dropTargets = [];
17369 return _this;
17370 }
17371 DragAndDropService_1 = DragAndDropService;
17372 DragAndDropService.prototype.init = function () {
17373 this.ePinnedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMovePin', this.gridOptionsWrapper, null);
17374 this.eHideIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveHide', this.gridOptionsWrapper, null);
17375 this.eMoveIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveMove', this.gridOptionsWrapper, null);
17376 this.eLeftIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveLeft', this.gridOptionsWrapper, null);
17377 this.eRightIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveRight', this.gridOptionsWrapper, null);
17378 this.eGroupIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveGroup', this.gridOptionsWrapper, null);
17379 this.eAggregateIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveValue', this.gridOptionsWrapper, null);
17380 this.ePivotIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMovePivot', this.gridOptionsWrapper, null);
17381 this.eDropNotAllowedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('dropNotAllowed', this.gridOptionsWrapper, null);
17382 };
17383 DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {
17384 if (allowTouch === void 0) { allowTouch = false; }
17385 var params = {
17386 eElement: dragSource.eElement,
17387 dragStartPixels: dragSource.dragStartPixels,
17388 onDragStart: this.onDragStart.bind(this, dragSource),
17389 onDragStop: this.onDragStop.bind(this),
17390 onDragging: this.onDragging.bind(this)
17391 };
17392 this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });
17393 this.dragService.addDragSource(params, allowTouch);
17394 };
17395 DragAndDropService.prototype.removeDragSource = function (dragSource) {
17396 var sourceAndParams = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(this.dragSourceAndParamsList, function (item) { return item.dragSource === dragSource; });
17397 if (sourceAndParams) {
17398 this.dragService.removeDragSource(sourceAndParams.params);
17399 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["removeFromArray"])(this.dragSourceAndParamsList, sourceAndParams);
17400 }
17401 };
17402 DragAndDropService.prototype.clearDragSourceParamsList = function () {
17403 var _this = this;
17404 this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });
17405 this.dragSourceAndParamsList.length = 0;
17406 };
17407 DragAndDropService.prototype.nudge = function () {
17408 if (this.dragging) {
17409 this.onDragging(this.eventLastTime, true);
17410 }
17411 };
17412 DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {
17413 this.dragging = true;
17414 this.dragSource = dragSource;
17415 this.eventLastTime = mouseEvent;
17416 this.dragItem = this.dragSource.getDragItem();
17417 this.lastDropTarget = this.dragSource.dragSourceDropTarget;
17418 if (this.dragSource.onDragStarted) {
17419 this.dragSource.onDragStarted();
17420 }
17421 this.createGhost();
17422 };
17423 DragAndDropService.prototype.onDragStop = function (mouseEvent) {
17424 this.eventLastTime = null;
17425 this.dragging = false;
17426 if (this.dragSource.onDragStopped) {
17427 this.dragSource.onDragStopped();
17428 }
17429 if (this.lastDropTarget && this.lastDropTarget.onDragStop) {
17430 var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);
17431 this.lastDropTarget.onDragStop(draggingEvent);
17432 }
17433 this.lastDropTarget = null;
17434 this.dragItem = null;
17435 this.removeGhost();
17436 };
17437 DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {
17438 var _this = this;
17439 var hDirection = this.getHorizontalDirection(mouseEvent);
17440 var vDirection = this.getVerticalDirection(mouseEvent);
17441 this.eventLastTime = mouseEvent;
17442 this.positionGhost(mouseEvent);
17443 // check if mouseEvent intersects with any of the drop targets
17444 var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });
17445 var len = validDropTargets.length;
17446 var dropTarget = null;
17447 if (len > 0) {
17448 dropTarget = len === 1
17449 ? validDropTargets[0]
17450 // the current mouse position could intersect with more than 1 element
17451 // if they are nested. In that case we need to get the most specific
17452 // container, which is the one that does not contain any other targets.
17453 : validDropTargets.reduce(function (prevTarget, currTarget) {
17454 if (!prevTarget) {
17455 return currTarget;
17456 }
17457 var prevContainer = prevTarget.getContainer();
17458 var currContainer = currTarget.getContainer();
17459 if (prevContainer.contains(currContainer)) {
17460 return currTarget;
17461 }
17462 return prevTarget;
17463 });
17464 }
17465 if (dropTarget !== this.lastDropTarget) {
17466 this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);
17467 this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17468 this.lastDropTarget = dropTarget;
17469 }
17470 else if (dropTarget && dropTarget.onDragging) {
17471 var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17472 dropTarget.onDragging(draggingEvent);
17473 }
17474 };
17475 DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {
17476 if (!dropTarget) {
17477 return;
17478 }
17479 if (dropTarget.onDragEnter) {
17480 var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17481 dropTarget.onDragEnter(dragEnterEvent);
17482 }
17483 this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);
17484 };
17485 DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {
17486 if (!this.lastDropTarget) {
17487 return;
17488 }
17489 if (this.lastDropTarget.onDragLeave) {
17490 var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17491 this.lastDropTarget.onDragLeave(dragLeaveEvent);
17492 }
17493 this.setGhostIcon(null);
17494 };
17495 DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {
17496 var containers = [dropTarget.getContainer()];
17497 var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;
17498 if (secondaryContainers) {
17499 containers = containers.concat(secondaryContainers);
17500 }
17501 return containers;
17502 };
17503 // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers
17504 DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {
17505 var mouseOverTarget = false;
17506 this.getAllContainersFromDropTarget(dropTarget)
17507 .filter(function (eContainer) { return eContainer; }) // secondary can be missing
17508 .forEach(function (eContainer) {
17509 var rect = eContainer.getBoundingClientRect();
17510 // if element is not visible, then width and height are zero
17511 if (rect.width === 0 || rect.height === 0) {
17512 return;
17513 }
17514 var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;
17515 var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;
17516 if (horizontalFit && verticalFit) {
17517 mouseOverTarget = true;
17518 }
17519 });
17520 return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type);
17521 };
17522 DragAndDropService.prototype.addDropTarget = function (dropTarget) {
17523 this.dropTargets.push(dropTarget);
17524 };
17525 DragAndDropService.prototype.removeDropTarget = function (dropTarget) {
17526 this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });
17527 };
17528 DragAndDropService.prototype.hasExternalDropZones = function () {
17529 return this.dropTargets.some(function (zones) { return zones.external; });
17530 };
17531 DragAndDropService.prototype.findExternalZone = function (params) {
17532 var externalTargets = this.dropTargets.filter(function (target) { return target.external; });
17533 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(externalTargets, function (zone) { return zone.getContainer() === params.getContainer(); });
17534 };
17535 DragAndDropService.prototype.getHorizontalDirection = function (event) {
17536 var clientX = this.eventLastTime && this.eventLastTime.clientX;
17537 var eClientX = event.clientX;
17538 if (clientX === eClientX) {
17539 return null;
17540 }
17541 return clientX > eClientX ? HorizontalDirection.Left : HorizontalDirection.Right;
17542 };
17543 DragAndDropService.prototype.getVerticalDirection = function (event) {
17544 var clientY = this.eventLastTime && this.eventLastTime.clientY;
17545 var eClientY = event.clientY;
17546 if (clientY === eClientY) {
17547 return null;
17548 }
17549 return clientY > eClientY ? VerticalDirection.Up : VerticalDirection.Down;
17550 };
17551 DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {
17552 // localise x and y to the target
17553 var dropZoneTarget = dropTarget.getContainer();
17554 var rect = dropZoneTarget.getBoundingClientRect();
17555 var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;
17556 var x = event.clientX - rect.left;
17557 var y = event.clientY - rect.top;
17558 return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };
17559 };
17560 DragAndDropService.prototype.positionGhost = function (event) {
17561 var ghost = this.eGhost;
17562 if (!ghost) {
17563 return;
17564 }
17565 var ghostRect = ghost.getBoundingClientRect();
17566 var ghostHeight = ghostRect.height;
17567 // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which
17568 // then brought in scrollbars to the browser. no idea why, but putting in -2 here
17569 // works around it which is good enough for me.
17570 var browserWidth = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["getBodyWidth"])() - 2;
17571 var browserHeight = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["getBodyHeight"])() - 2;
17572 var top = event.pageY - (ghostHeight / 2);
17573 var left = event.pageX - 10;
17574 var usrDocument = this.gridOptionsWrapper.getDocument();
17575 var windowScrollY = window.pageYOffset || usrDocument.documentElement.scrollTop;
17576 var windowScrollX = window.pageXOffset || usrDocument.documentElement.scrollLeft;
17577 // check ghost is not positioned outside of the browser
17578 if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {
17579 left = browserWidth + windowScrollX - ghost.clientWidth;
17580 }
17581 if (left < 0) {
17582 left = 0;
17583 }
17584 if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {
17585 top = browserHeight + windowScrollY - ghost.clientHeight;
17586 }
17587 if (top < 0) {
17588 top = 0;
17589 }
17590 ghost.style.left = left + "px";
17591 ghost.style.top = top + "px";
17592 };
17593 DragAndDropService.prototype.removeGhost = function () {
17594 if (this.eGhost && this.eGhostParent) {
17595 this.eGhostParent.removeChild(this.eGhost);
17596 }
17597 this.eGhost = null;
17598 };
17599 DragAndDropService.prototype.createGhost = function () {
17600 this.eGhost = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["loadTemplate"])(DragAndDropService_1.GHOST_TEMPLATE);
17601 var theme = this.environment.getTheme().theme;
17602 if (theme) {
17603 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["addCssClass"])(this.eGhost, theme);
17604 }
17605 this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');
17606 this.setGhostIcon(null);
17607 var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');
17608 var dragItemName = this.dragSource.dragItemName;
17609 if (Object(_utils_function__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(dragItemName)) {
17610 dragItemName = dragItemName();
17611 }
17612 eText.innerHTML = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(dragItemName) || '';
17613 this.eGhost.style.height = '25px';
17614 this.eGhost.style.top = '20px';
17615 this.eGhost.style.left = '20px';
17616 var usrDocument = this.gridOptionsWrapper.getDocument();
17617 var targetEl = usrDocument.fullscreenElement || usrDocument.querySelector('body');
17618 this.eGhostParent = targetEl;
17619 if (!this.eGhostParent) {
17620 console.warn('AG Grid: could not find document body, it is needed for dragging columns');
17621 }
17622 else {
17623 this.eGhostParent.appendChild(this.eGhost);
17624 }
17625 };
17626 DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {
17627 if (shake === void 0) { shake = false; }
17628 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["clearElement"])(this.eGhostIcon);
17629 var eIcon = null;
17630 if (!iconName) {
17631 iconName = this.dragSource.defaultIconName || DragAndDropService_1.ICON_NOT_ALLOWED;
17632 }
17633 switch (iconName) {
17634 case DragAndDropService_1.ICON_PINNED:
17635 eIcon = this.ePinnedIcon;
17636 break;
17637 case DragAndDropService_1.ICON_MOVE:
17638 eIcon = this.eMoveIcon;
17639 break;
17640 case DragAndDropService_1.ICON_LEFT:
17641 eIcon = this.eLeftIcon;
17642 break;
17643 case DragAndDropService_1.ICON_RIGHT:
17644 eIcon = this.eRightIcon;
17645 break;
17646 case DragAndDropService_1.ICON_GROUP:
17647 eIcon = this.eGroupIcon;
17648 break;
17649 case DragAndDropService_1.ICON_AGGREGATE:
17650 eIcon = this.eAggregateIcon;
17651 break;
17652 case DragAndDropService_1.ICON_PIVOT:
17653 eIcon = this.ePivotIcon;
17654 break;
17655 case DragAndDropService_1.ICON_NOT_ALLOWED:
17656 eIcon = this.eDropNotAllowedIcon;
17657 break;
17658 case DragAndDropService_1.ICON_HIDE:
17659 eIcon = this.eHideIcon;
17660 break;
17661 }
17662 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["addOrRemoveCssClass"])(this.eGhostIcon, 'ag-shake-left-to-right', shake);
17663 if (eIcon === this.eHideIcon && this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns()) {
17664 return;
17665 }
17666 if (eIcon) {
17667 this.eGhostIcon.appendChild(eIcon);
17668 }
17669 };
17670 var DragAndDropService_1;
17671 DragAndDropService.ICON_PINNED = 'pinned';
17672 DragAndDropService.ICON_MOVE = 'move';
17673 DragAndDropService.ICON_LEFT = 'left';
17674 DragAndDropService.ICON_RIGHT = 'right';
17675 DragAndDropService.ICON_GROUP = 'group';
17676 DragAndDropService.ICON_AGGREGATE = 'aggregate';
17677 DragAndDropService.ICON_PIVOT = 'pivot';
17678 DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';
17679 DragAndDropService.ICON_HIDE = 'hide';
17680 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>";
17681 __decorate([
17682 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
17683 ], DragAndDropService.prototype, "dragService", void 0);
17684 __decorate([
17685 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('environment')
17686 ], DragAndDropService.prototype, "environment", void 0);
17687 __decorate([
17688 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
17689 ], DragAndDropService.prototype, "columnApi", void 0);
17690 __decorate([
17691 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
17692 ], DragAndDropService.prototype, "gridApi", void 0);
17693 __decorate([
17694 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17695 ], DragAndDropService.prototype, "init", null);
17696 __decorate([
17697 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
17698 ], DragAndDropService.prototype, "clearDragSourceParamsList", null);
17699 DragAndDropService = DragAndDropService_1 = __decorate([
17700 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('dragAndDropService')
17701 ], DragAndDropService);
17702 return DragAndDropService;
17703}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
17704
17705
17706
17707/***/ }),
17708/* 79 */
17709/***/ (function(module, __webpack_exports__, __webpack_require__) {
17710
17711"use strict";
17712__webpack_require__.r(__webpack_exports__);
17713/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return AnimateShowChangeCellRenderer; });
17714/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
17715/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
17716/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
17717/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
17718/**
17719 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17720 * @version v25.3.0
17721 * @link http://www.ag-grid.com/
17722 * @license MIT
17723 */
17724var __extends = (undefined && undefined.__extends) || (function () {
17725 var extendStatics = function (d, b) {
17726 extendStatics = Object.setPrototypeOf ||
17727 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17728 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17729 return extendStatics(d, b);
17730 };
17731 return function (d, b) {
17732 extendStatics(d, b);
17733 function __() { this.constructor = d; }
17734 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17735 };
17736})();
17737var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17738 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17739 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17740 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17741 return c > 3 && r && Object.defineProperty(target, key, r), r;
17742};
17743
17744
17745
17746
17747var ARROW_UP = '\u2191';
17748var ARROW_DOWN = '\u2193';
17749var AnimateShowChangeCellRenderer = /** @class */ (function (_super) {
17750 __extends(AnimateShowChangeCellRenderer, _super);
17751 function AnimateShowChangeCellRenderer() {
17752 var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;
17753 _this.refreshCount = 0;
17754 return _this;
17755 }
17756 AnimateShowChangeCellRenderer.prototype.init = function (params) {
17757 // this.params = params;
17758 this.eValue = this.queryForHtmlElement('.ag-value-change-value');
17759 this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');
17760 this.refresh(params);
17761 };
17762 AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {
17763 var absDelta = Math.abs(delta);
17764 var valueFormatted = params.formatValue(absDelta);
17765 var valueToUse = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(valueFormatted) ? valueFormatted : absDelta;
17766 var deltaUp = (delta >= 0);
17767 if (deltaUp) {
17768 this.eDelta.innerHTML = ARROW_UP + valueToUse;
17769 }
17770 else {
17771 // because negative, use ABS to remove sign
17772 this.eDelta.innerHTML = ARROW_DOWN + valueToUse;
17773 }
17774 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eDelta, 'ag-value-change-delta-up', deltaUp);
17775 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eDelta, 'ag-value-change-delta-down', !deltaUp);
17776 };
17777 AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {
17778 var _this = this;
17779 // the refreshCount makes sure that if the value updates again while
17780 // the below timer is waiting, then the below timer will realise it
17781 // is not the most recent and will not try to remove the delta value.
17782 this.refreshCount++;
17783 var refreshCountCopy = this.refreshCount;
17784 window.setTimeout(function () {
17785 if (refreshCountCopy === _this.refreshCount) {
17786 _this.hideDeltaValue();
17787 }
17788 }, 2000);
17789 };
17790 AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {
17791 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["removeCssClass"])(this.eValue, 'ag-value-change-value-highlight');
17792 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eDelta);
17793 };
17794 AnimateShowChangeCellRenderer.prototype.refresh = function (params) {
17795 var value = params.value;
17796 if (value === this.lastValue) {
17797 return false;
17798 }
17799 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.valueFormatted)) {
17800 this.eValue.innerHTML = params.valueFormatted;
17801 }
17802 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value)) {
17803 this.eValue.innerHTML = value;
17804 }
17805 else {
17806 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eValue);
17807 }
17808 // we don't show the delta if we are in the middle of a filter. see comment on FilterManager
17809 // with regards processingFilterChange
17810 if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {
17811 return false;
17812 }
17813 if (typeof value === 'number' && typeof this.lastValue === 'number') {
17814 var delta = value - this.lastValue;
17815 this.showDelta(params, delta);
17816 }
17817 // highlight the current value, but only if it's not new, otherwise it
17818 // would get highlighted first time the value is shown
17819 if (this.lastValue) {
17820 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.eValue, 'ag-value-change-value-highlight');
17821 }
17822 this.setTimerToRemoveDelta();
17823 this.lastValue = value;
17824 return true;
17825 };
17826 AnimateShowChangeCellRenderer.TEMPLATE = '<span>' +
17827 '<span class="ag-value-change-delta"></span>' +
17828 '<span class="ag-value-change-value"></span>' +
17829 '</span>';
17830 __decorate([
17831 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
17832 ], AnimateShowChangeCellRenderer.prototype, "filterManager", void 0);
17833 return AnimateShowChangeCellRenderer;
17834}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
17835
17836
17837
17838/***/ }),
17839/* 80 */
17840/***/ (function(module, __webpack_exports__, __webpack_require__) {
17841
17842"use strict";
17843__webpack_require__.r(__webpack_exports__);
17844/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return AnimateSlideCellRenderer; });
17845/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
17846/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
17847/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
17848/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
17849/**
17850 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17851 * @version v25.3.0
17852 * @link http://www.ag-grid.com/
17853 * @license MIT
17854 */
17855var __extends = (undefined && undefined.__extends) || (function () {
17856 var extendStatics = function (d, b) {
17857 extendStatics = Object.setPrototypeOf ||
17858 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17859 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17860 return extendStatics(d, b);
17861 };
17862 return function (d, b) {
17863 extendStatics(d, b);
17864 function __() { this.constructor = d; }
17865 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17866 };
17867})();
17868var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17869 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17870 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17871 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17872 return c > 3 && r && Object.defineProperty(target, key, r), r;
17873};
17874
17875
17876
17877
17878var AnimateSlideCellRenderer = /** @class */ (function (_super) {
17879 __extends(AnimateSlideCellRenderer, _super);
17880 function AnimateSlideCellRenderer() {
17881 var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;
17882 _this.refreshCount = 0;
17883 _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');
17884 return _this;
17885 }
17886 AnimateSlideCellRenderer.prototype.init = function (params) {
17887 this.refresh(params);
17888 };
17889 AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {
17890 var _this = this;
17891 this.refreshCount++;
17892 // below we keep checking this, and stop working on the animation
17893 // if it no longer matches - this means another animation has started
17894 // and this one is stale.
17895 var refreshCountCopy = this.refreshCount;
17896 // if old animation, remove it
17897 if (this.ePrevious) {
17898 this.getGui().removeChild(this.ePrevious);
17899 }
17900 this.ePrevious = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span class="ag-value-slide-previous ag-value-slide-out"></span>');
17901 this.ePrevious.innerHTML = this.eCurrent.innerHTML;
17902 this.getGui().insertBefore(this.ePrevious, this.eCurrent);
17903 // having timeout of 0 allows use to skip to the next css turn,
17904 // so we know the previous css classes have been applied. so the
17905 // complex set of setTimeout below creates the animation
17906 window.setTimeout(function () {
17907 if (refreshCountCopy !== _this.refreshCount) {
17908 return;
17909 }
17910 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(_this.ePrevious, 'ag-value-slide-out-end');
17911 }, 50);
17912 window.setTimeout(function () {
17913 if (refreshCountCopy !== _this.refreshCount) {
17914 return;
17915 }
17916 _this.getGui().removeChild(_this.ePrevious);
17917 _this.ePrevious = null;
17918 }, 3000);
17919 };
17920 AnimateSlideCellRenderer.prototype.refresh = function (params) {
17921 var value = params.value;
17922 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(value)) {
17923 value = '';
17924 }
17925 if (value === this.lastValue) {
17926 return false;
17927 }
17928 // we don't show the delta if we are in the middle of a filter. see comment on FilterManager
17929 // with regards processingFilterChange
17930 if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {
17931 return false;
17932 }
17933 this.addSlideAnimation();
17934 this.lastValue = value;
17935 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.valueFormatted)) {
17936 this.eCurrent.innerHTML = params.valueFormatted;
17937 }
17938 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.value)) {
17939 this.eCurrent.innerHTML = value;
17940 }
17941 else {
17942 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eCurrent);
17943 }
17944 return true;
17945 };
17946 AnimateSlideCellRenderer.TEMPLATE = "<span>\n <span class=\"ag-value-slide-current\"></span>\n </span>";
17947 __decorate([
17948 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
17949 ], AnimateSlideCellRenderer.prototype, "filterManager", void 0);
17950 return AnimateSlideCellRenderer;
17951}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
17952
17953
17954
17955/***/ }),
17956/* 81 */
17957/***/ (function(module, __webpack_exports__, __webpack_require__) {
17958
17959"use strict";
17960__webpack_require__.r(__webpack_exports__);
17961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingCellRenderer", function() { return LoadingCellRenderer; });
17962/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
17963/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
17964/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50);
17965/**
17966 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17967 * @version v25.3.0
17968 * @link http://www.ag-grid.com/
17969 * @license MIT
17970 */
17971var __extends = (undefined && undefined.__extends) || (function () {
17972 var extendStatics = function (d, b) {
17973 extendStatics = Object.setPrototypeOf ||
17974 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17975 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17976 return extendStatics(d, b);
17977 };
17978 return function (d, b) {
17979 extendStatics(d, b);
17980 function __() { this.constructor = d; }
17981 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17982 };
17983})();
17984var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17985 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17986 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17987 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17988 return c > 3 && r && Object.defineProperty(target, key, r), r;
17989};
17990
17991
17992
17993var LoadingCellRenderer = /** @class */ (function (_super) {
17994 __extends(LoadingCellRenderer, _super);
17995 function LoadingCellRenderer() {
17996 return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;
17997 }
17998 LoadingCellRenderer.prototype.init = function (params) {
17999 params.node.failedLoad ? this.setupFailed() : this.setupLoading();
18000 };
18001 LoadingCellRenderer.prototype.setupFailed = function () {
18002 this.eLoadingText.innerText = 'ERR';
18003 };
18004 LoadingCellRenderer.prototype.setupLoading = function () {
18005 var eLoadingIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_2__["createIconNoSpan"])('groupLoading', this.gridOptionsWrapper, null);
18006 if (eLoadingIcon) {
18007 this.eLoadingIcon.appendChild(eLoadingIcon);
18008 }
18009 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
18010 this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');
18011 };
18012 LoadingCellRenderer.prototype.refresh = function (params) {
18013 return false;
18014 };
18015 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>";
18016 __decorate([
18017 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLoadingIcon')
18018 ], LoadingCellRenderer.prototype, "eLoadingIcon", void 0);
18019 __decorate([
18020 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLoadingText')
18021 ], LoadingCellRenderer.prototype, "eLoadingText", void 0);
18022 return LoadingCellRenderer;
18023}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18024
18025
18026
18027/***/ }),
18028/* 82 */
18029/***/ (function(module, __webpack_exports__, __webpack_require__) {
18030
18031"use strict";
18032__webpack_require__.r(__webpack_exports__);
18033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return SelectCellEditor; });
18034/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
18035/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(40);
18036/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
18037/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
18038/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60);
18039/**
18040 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18041 * @version v25.3.0
18042 * @link http://www.ag-grid.com/
18043 * @license MIT
18044 */
18045var __extends = (undefined && undefined.__extends) || (function () {
18046 var extendStatics = function (d, b) {
18047 extendStatics = Object.setPrototypeOf ||
18048 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18049 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18050 return extendStatics(d, b);
18051 };
18052 return function (d, b) {
18053 extendStatics(d, b);
18054 function __() { this.constructor = d; }
18055 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18056 };
18057})();
18058var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18059 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18060 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18061 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18062 return c > 3 && r && Object.defineProperty(target, key, r), r;
18063};
18064
18065
18066
18067
18068
18069var SelectCellEditor = /** @class */ (function (_super) {
18070 __extends(SelectCellEditor, _super);
18071 function SelectCellEditor() {
18072 var _this = _super.call(this, '<div class="ag-cell-edit-wrapper"><ag-select class="ag-cell-editor" ref="eSelect"></ag-select></div>') || this;
18073 _this.startedByEnter = false;
18074 return _this;
18075 }
18076 SelectCellEditor.prototype.init = function (params) {
18077 var _this = this;
18078 this.focusAfterAttached = params.cellStartedEdit;
18079 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(params.values)) {
18080 console.warn('AG Grid: no values found for select cellEditor');
18081 return;
18082 }
18083 this.startedByEnter = params.keyPress === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].ENTER;
18084 var hasValue = false;
18085 params.values.forEach(function (value) {
18086 var option = { value: value };
18087 var valueFormatted = _this.valueFormatterService.formatValue(params.column, null, null, value);
18088 var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;
18089 option.text = valueFormattedExits ? valueFormatted : value;
18090 _this.eSelect.addOption(option);
18091 hasValue = hasValue || params.value === value;
18092 });
18093 if (hasValue) {
18094 this.eSelect.setValue(params.value, true);
18095 }
18096 else if (params.values.length) {
18097 this.eSelect.setValue(params.values[0], true);
18098 }
18099 // we don't want to add this if full row editing, otherwise selecting will stop the
18100 // full row editing.
18101 if (!this.gridOptionsWrapper.isFullRowEdit()) {
18102 this.eSelect.onValueChange(function () { return params.stopEditing(); });
18103 }
18104 };
18105 SelectCellEditor.prototype.afterGuiAttached = function () {
18106 if (this.focusAfterAttached) {
18107 this.eSelect.getFocusableElement().focus();
18108 }
18109 if (this.startedByEnter) {
18110 this.eSelect.showPicker();
18111 }
18112 };
18113 SelectCellEditor.prototype.focusIn = function () {
18114 this.eSelect.getFocusableElement().focus();
18115 };
18116 SelectCellEditor.prototype.getValue = function () {
18117 return this.eSelect.getValue();
18118 };
18119 SelectCellEditor.prototype.isPopup = function () {
18120 return false;
18121 };
18122 __decorate([
18123 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueFormatterService')
18124 ], SelectCellEditor.prototype, "valueFormatterService", void 0);
18125 __decorate([
18126 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eSelect')
18127 ], SelectCellEditor.prototype, "eSelect", void 0);
18128 return SelectCellEditor;
18129}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_1__["PopupComponent"]));
18130
18131
18132
18133/***/ }),
18134/* 83 */
18135/***/ (function(module, __webpack_exports__, __webpack_require__) {
18136
18137"use strict";
18138__webpack_require__.r(__webpack_exports__);
18139/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupTextCellEditor", function() { return PopupTextCellEditor; });
18140/* harmony import */ var _textCellEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
18141/**
18142 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18143 * @version v25.3.0
18144 * @link http://www.ag-grid.com/
18145 * @license MIT
18146 */
18147var __extends = (undefined && undefined.__extends) || (function () {
18148 var extendStatics = function (d, b) {
18149 extendStatics = Object.setPrototypeOf ||
18150 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18151 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18152 return extendStatics(d, b);
18153 };
18154 return function (d, b) {
18155 extendStatics(d, b);
18156 function __() { this.constructor = d; }
18157 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18158 };
18159})();
18160
18161var PopupTextCellEditor = /** @class */ (function (_super) {
18162 __extends(PopupTextCellEditor, _super);
18163 function PopupTextCellEditor() {
18164 return _super !== null && _super.apply(this, arguments) || this;
18165 }
18166 PopupTextCellEditor.prototype.isPopup = function () {
18167 return true;
18168 };
18169 return PopupTextCellEditor;
18170}(_textCellEditor__WEBPACK_IMPORTED_MODULE_0__["TextCellEditor"]));
18171
18172
18173
18174/***/ }),
18175/* 84 */
18176/***/ (function(module, __webpack_exports__, __webpack_require__) {
18177
18178"use strict";
18179__webpack_require__.r(__webpack_exports__);
18180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupSelectCellEditor", function() { return PopupSelectCellEditor; });
18181/* harmony import */ var _selectCellEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82);
18182/**
18183 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18184 * @version v25.3.0
18185 * @link http://www.ag-grid.com/
18186 * @license MIT
18187 */
18188var __extends = (undefined && undefined.__extends) || (function () {
18189 var extendStatics = function (d, b) {
18190 extendStatics = Object.setPrototypeOf ||
18191 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18192 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18193 return extendStatics(d, b);
18194 };
18195 return function (d, b) {
18196 extendStatics(d, b);
18197 function __() { this.constructor = d; }
18198 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18199 };
18200})();
18201
18202var PopupSelectCellEditor = /** @class */ (function (_super) {
18203 __extends(PopupSelectCellEditor, _super);
18204 function PopupSelectCellEditor() {
18205 return _super !== null && _super.apply(this, arguments) || this;
18206 }
18207 PopupSelectCellEditor.prototype.isPopup = function () {
18208 return true;
18209 };
18210 return PopupSelectCellEditor;
18211}(_selectCellEditor__WEBPACK_IMPORTED_MODULE_0__["SelectCellEditor"]));
18212
18213
18214
18215/***/ }),
18216/* 85 */
18217/***/ (function(module, __webpack_exports__, __webpack_require__) {
18218
18219"use strict";
18220__webpack_require__.r(__webpack_exports__);
18221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return LargeTextCellEditor; });
18222/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
18223/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
18224/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
18225/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
18226/**
18227 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18228 * @version v25.3.0
18229 * @link http://www.ag-grid.com/
18230 * @license MIT
18231 */
18232var __extends = (undefined && undefined.__extends) || (function () {
18233 var extendStatics = function (d, b) {
18234 extendStatics = Object.setPrototypeOf ||
18235 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18236 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18237 return extendStatics(d, b);
18238 };
18239 return function (d, b) {
18240 extendStatics(d, b);
18241 function __() { this.constructor = d; }
18242 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18243 };
18244})();
18245var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18246 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18247 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18248 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18249 return c > 3 && r && Object.defineProperty(target, key, r), r;
18250};
18251
18252
18253
18254
18255var LargeTextCellEditor = /** @class */ (function (_super) {
18256 __extends(LargeTextCellEditor, _super);
18257 function LargeTextCellEditor() {
18258 return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;
18259 }
18260 LargeTextCellEditor.prototype.init = function (params) {
18261 this.params = params;
18262 this.focusAfterAttached = params.cellStartedEdit;
18263 this.eTextArea
18264 .setMaxLength(params.maxLength || 200)
18265 .setCols(params.cols || 60)
18266 .setRows(params.rows || 10);
18267 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value)) {
18268 this.eTextArea.setValue(params.value.toString(), true);
18269 }
18270 this.addGuiEventListener('keydown', this.onKeyDown.bind(this));
18271 };
18272 LargeTextCellEditor.prototype.onKeyDown = function (event) {
18273 var key = event.which || event.keyCode;
18274 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].LEFT ||
18275 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP ||
18276 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].RIGHT ||
18277 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].DOWN ||
18278 (event.shiftKey && key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].ENTER)) { // shift+enter allows for newlines
18279 event.stopPropagation();
18280 }
18281 };
18282 LargeTextCellEditor.prototype.afterGuiAttached = function () {
18283 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
18284 this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));
18285 if (this.focusAfterAttached) {
18286 this.eTextArea.getFocusableElement().focus();
18287 }
18288 };
18289 LargeTextCellEditor.prototype.getValue = function () {
18290 return this.params.parseValue(this.eTextArea.getValue());
18291 };
18292 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>";
18293 __decorate([
18294 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])("eTextArea")
18295 ], LargeTextCellEditor.prototype, "eTextArea", void 0);
18296 return LargeTextCellEditor;
18297}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
18298
18299
18300
18301/***/ }),
18302/* 86 */
18303/***/ (function(module, __webpack_exports__, __webpack_require__) {
18304
18305"use strict";
18306__webpack_require__.r(__webpack_exports__);
18307/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return NumberFilter; });
18308/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
18309/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
18310/* harmony import */ var _scalarFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68);
18311/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
18312/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
18313/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(34);
18314/**
18315 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18316 * @version v25.3.0
18317 * @link http://www.ag-grid.com/
18318 * @license MIT
18319 */
18320var __extends = (undefined && undefined.__extends) || (function () {
18321 var extendStatics = function (d, b) {
18322 extendStatics = Object.setPrototypeOf ||
18323 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18324 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18325 return extendStatics(d, b);
18326 };
18327 return function (d, b) {
18328 extendStatics(d, b);
18329 function __() { this.constructor = d; }
18330 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18331 };
18332})();
18333var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18334 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18335 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18336 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18337 return c > 3 && r && Object.defineProperty(target, key, r), r;
18338};
18339
18340
18341
18342
18343
18344
18345var NumberFilter = /** @class */ (function (_super) {
18346 __extends(NumberFilter, _super);
18347 function NumberFilter() {
18348 return _super.call(this, 'numberFilter') || this;
18349 }
18350 NumberFilter.prototype.mapRangeFromModel = function (filterModel) {
18351 return {
18352 from: filterModel.filter,
18353 to: filterModel.filterTo
18354 };
18355 };
18356 NumberFilter.prototype.getDefaultDebounceMs = function () {
18357 return 500;
18358 };
18359 NumberFilter.prototype.resetUiToDefaults = function (silent) {
18360 var _this = this;
18361 return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {
18362 var fields = [_this.eValueFrom1, _this.eValueFrom2, _this.eValueTo1, _this.eValueTo2];
18363 fields.forEach(function (field) { return field.setValue(null, silent); });
18364 _this.resetPlaceholder();
18365 });
18366 };
18367 NumberFilter.prototype.setConditionIntoUi = function (model, position) {
18368 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
18369 var eValueFrom = positionOne ? this.eValueFrom1 : this.eValueFrom2;
18370 var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;
18371 eValueFrom.setValue(model ? ('' + model.filter) : null);
18372 eValueTo.setValue(model ? ('' + model.filterTo) : null);
18373 };
18374 NumberFilter.prototype.setValueFromFloatingFilter = function (value) {
18375 this.eValueFrom1.setValue(value);
18376 this.eValueTo1.setValue(null);
18377 this.eValueFrom2.setValue(null);
18378 this.eValueTo2.setValue(null);
18379 };
18380 NumberFilter.prototype.comparator = function () {
18381 return function (left, right) {
18382 if (left === right) {
18383 return 0;
18384 }
18385 return left < right ? 1 : -1;
18386 };
18387 };
18388 NumberFilter.prototype.setParams = function (params) {
18389 this.numberFilterParams = params;
18390 var allowedCharPattern = this.getAllowedCharPattern();
18391 if (allowedCharPattern) {
18392 var config = { allowedCharPattern: allowedCharPattern };
18393 this.resetTemplate({
18394 eValueFrom1: config,
18395 eValueTo1: config,
18396 eValueFrom2: config,
18397 eValueTo2: config,
18398 });
18399 }
18400 _super.prototype.setParams.call(this, params);
18401 this.addValueChangedListeners();
18402 };
18403 NumberFilter.prototype.addValueChangedListeners = function () {
18404 var _this = this;
18405 var listener = function () { return _this.onUiChanged(); };
18406 this.eValueFrom1.onValueChange(listener);
18407 this.eValueTo1.onValueChange(listener);
18408 this.eValueFrom2.onValueChange(listener);
18409 this.eValueTo2.onValueChange(listener);
18410 };
18411 NumberFilter.prototype.resetPlaceholder = function () {
18412 var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();
18413 var isRange1 = this.showValueTo(this.getCondition1Type());
18414 var isRange2 = this.showValueTo(this.getCondition2Type());
18415 this.eValueFrom1.setInputPlaceholder(this.translate(isRange1 ? 'inRangeStart' : 'filterOoo'));
18416 this.eValueFrom1.setInputAriaLabel(isRange1
18417 ? globalTranslate('ariaFilterFromValue', 'Filter from value')
18418 : globalTranslate('ariaFilterValue', 'Filter Value'));
18419 this.eValueTo1.setInputPlaceholder(this.translate('inRangeEnd'));
18420 this.eValueTo1.setInputAriaLabel(globalTranslate('ariaFilterToValue', 'Filter to Value'));
18421 this.eValueFrom2.setInputPlaceholder(this.translate(isRange2 ? 'inRangeStart' : 'filterOoo'));
18422 this.eValueFrom2.setInputAriaLabel(isRange2
18423 ? globalTranslate('ariaFilterFromValue', 'Filter from value')
18424 : globalTranslate('ariaFilterValue', 'Filter Value'));
18425 this.eValueTo2.setInputPlaceholder(this.translate('inRangeEnd'));
18426 this.eValueTo2.setInputAriaLabel(globalTranslate('ariaFilterToValue', 'Filter to Value'));
18427 };
18428 NumberFilter.prototype.afterGuiAttached = function (params) {
18429 _super.prototype.afterGuiAttached.call(this, params);
18430 this.resetPlaceholder();
18431 if (!params || !params.suppressFocus) {
18432 this.eValueFrom1.getInputElement().focus();
18433 }
18434 };
18435 NumberFilter.prototype.getDefaultFilterOptions = function () {
18436 return NumberFilter.DEFAULT_FILTER_OPTIONS;
18437 };
18438 NumberFilter.prototype.createValueTemplate = function (position) {
18439 var pos = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One ? '1' : '2';
18440 var allowedCharPattern = this.getAllowedCharPattern();
18441 var agElementTag = allowedCharPattern ? 'ag-input-text-field' : 'ag-input-number-field';
18442 return /* html */ "\n <div class=\"ag-filter-body\" ref=\"eCondition" + pos + "Body\" role=\"presentation\">\n <" + agElementTag + " class=\"ag-filter-from ag-filter-filter\" ref=\"eValueFrom" + pos + "\"></" + agElementTag + ">\n <" + agElementTag + " class=\"ag-filter-to ag-filter-filter\" ref=\"eValueTo" + pos + "\"></" + agElementTag + ">\n </div>";
18443 };
18444 NumberFilter.prototype.isConditionUiComplete = function (position) {
18445 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
18446 var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();
18447 if (option === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY) {
18448 return false;
18449 }
18450 if (this.doesFilterHaveHiddenInput(option)) {
18451 return true;
18452 }
18453 var eValue = positionOne ? this.eValueFrom1 : this.eValueFrom2;
18454 var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;
18455 var value = this.stringToFloat(eValue.getValue());
18456 return value != null && (!this.showValueTo(option) || this.stringToFloat(eValueTo.getValue()) != null);
18457 };
18458 NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
18459 return aSimple.filter === bSimple.filter
18460 && aSimple.filterTo === bSimple.filterTo
18461 && aSimple.type === bSimple.type;
18462 };
18463 NumberFilter.prototype.getFilterType = function () {
18464 return 'number';
18465 };
18466 NumberFilter.prototype.stringToFloat = function (value) {
18467 if (typeof value === 'number') {
18468 return value;
18469 }
18470 var filterText = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["makeNull"])(value);
18471 if (filterText != null && filterText.trim() === '') {
18472 filterText = null;
18473 }
18474 if (this.numberFilterParams.numberParser) {
18475 return this.numberFilterParams.numberParser(filterText);
18476 }
18477 return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);
18478 };
18479 NumberFilter.prototype.createCondition = function (position) {
18480 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
18481 var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();
18482 var eValue = positionOne ? this.eValueFrom1 : this.eValueFrom2;
18483 var value = this.stringToFloat(eValue.getValue());
18484 var model = {
18485 filterType: this.getFilterType(),
18486 type: type
18487 };
18488 if (!this.doesFilterHaveHiddenInput(type)) {
18489 model.filter = value;
18490 if (this.showValueTo(type)) {
18491 var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;
18492 var valueTo = this.stringToFloat(eValueTo.getValue());
18493 model.filterTo = valueTo;
18494 }
18495 }
18496 return model;
18497 };
18498 NumberFilter.prototype.updateUiVisibility = function () {
18499 _super.prototype.updateUiVisibility.call(this);
18500 this.resetPlaceholder();
18501 var condition1Type = this.getCondition1Type();
18502 var condition2Type = this.getCondition2Type();
18503 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueFrom1.getGui(), this.showValueFrom(condition1Type));
18504 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueTo1.getGui(), this.showValueTo(condition1Type));
18505 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueFrom2.getGui(), this.showValueFrom(condition2Type));
18506 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueTo2.getGui(), this.showValueTo(condition2Type));
18507 };
18508 NumberFilter.prototype.getAllowedCharPattern = function () {
18509 var allowedCharPattern = (this.numberFilterParams || {}).allowedCharPattern;
18510 if (allowedCharPattern) {
18511 return allowedCharPattern;
18512 }
18513 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isBrowserChrome"])() && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isBrowserEdge"])()) {
18514 // only Chrome and Edge support the HTML5 number field, so for other browsers we provide an equivalent
18515 // constraint instead
18516 return '\\d\\-\\.';
18517 }
18518 return null;
18519 };
18520 NumberFilter.DEFAULT_FILTER_OPTIONS = [
18521 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].EQUALS,
18522 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].NOT_EQUAL,
18523 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].LESS_THAN,
18524 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].LESS_THAN_OR_EQUAL,
18525 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].GREATER_THAN,
18526 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].GREATER_THAN_OR_EQUAL,
18527 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].IN_RANGE
18528 ];
18529 __decorate([
18530 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueFrom1')
18531 ], NumberFilter.prototype, "eValueFrom1", void 0);
18532 __decorate([
18533 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueTo1')
18534 ], NumberFilter.prototype, "eValueTo1", void 0);
18535 __decorate([
18536 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueFrom2')
18537 ], NumberFilter.prototype, "eValueFrom2", void 0);
18538 __decorate([
18539 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueTo2')
18540 ], NumberFilter.prototype, "eValueTo2", void 0);
18541 return NumberFilter;
18542}(_scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"]));
18543
18544
18545
18546/***/ }),
18547/* 87 */
18548/***/ (function(module, __webpack_exports__, __webpack_require__) {
18549
18550"use strict";
18551__webpack_require__.r(__webpack_exports__);
18552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingOverlayComponent", function() { return LoadingOverlayComponent; });
18553/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18554/**
18555 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18556 * @version v25.3.0
18557 * @link http://www.ag-grid.com/
18558 * @license MIT
18559 */
18560var __extends = (undefined && undefined.__extends) || (function () {
18561 var extendStatics = function (d, b) {
18562 extendStatics = Object.setPrototypeOf ||
18563 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18564 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18565 return extendStatics(d, b);
18566 };
18567 return function (d, b) {
18568 extendStatics(d, b);
18569 function __() { this.constructor = d; }
18570 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18571 };
18572})();
18573
18574var LoadingOverlayComponent = /** @class */ (function (_super) {
18575 __extends(LoadingOverlayComponent, _super);
18576 function LoadingOverlayComponent() {
18577 return _super.call(this) || this;
18578 }
18579 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18580 // so we need to override destroy() just to make the method public.
18581 LoadingOverlayComponent.prototype.destroy = function () {
18582 _super.prototype.destroy.call(this);
18583 };
18584 LoadingOverlayComponent.prototype.init = function (params) {
18585 var template = this.gridOptionsWrapper.getOverlayLoadingTemplate() ?
18586 this.gridOptionsWrapper.getOverlayLoadingTemplate() : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;
18587 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
18588 var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));
18589 this.setTemplate(localisedTemplate);
18590 };
18591 LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '<span class="ag-overlay-loading-center">[LOADING...]</span>';
18592 return LoadingOverlayComponent;
18593}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18594
18595
18596
18597/***/ }),
18598/* 88 */
18599/***/ (function(module, __webpack_exports__, __webpack_require__) {
18600
18601"use strict";
18602__webpack_require__.r(__webpack_exports__);
18603/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoRowsOverlayComponent", function() { return NoRowsOverlayComponent; });
18604/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18605/**
18606 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18607 * @version v25.3.0
18608 * @link http://www.ag-grid.com/
18609 * @license MIT
18610 */
18611var __extends = (undefined && undefined.__extends) || (function () {
18612 var extendStatics = function (d, b) {
18613 extendStatics = Object.setPrototypeOf ||
18614 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18615 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18616 return extendStatics(d, b);
18617 };
18618 return function (d, b) {
18619 extendStatics(d, b);
18620 function __() { this.constructor = d; }
18621 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18622 };
18623})();
18624
18625var NoRowsOverlayComponent = /** @class */ (function (_super) {
18626 __extends(NoRowsOverlayComponent, _super);
18627 function NoRowsOverlayComponent() {
18628 return _super.call(this) || this;
18629 }
18630 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18631 // so we need to override destroy() just to make the method public.
18632 NoRowsOverlayComponent.prototype.destroy = function () {
18633 _super.prototype.destroy.call(this);
18634 };
18635 NoRowsOverlayComponent.prototype.init = function (params) {
18636 var template = this.gridOptionsWrapper.getOverlayNoRowsTemplate() ?
18637 this.gridOptionsWrapper.getOverlayNoRowsTemplate() : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;
18638 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
18639 var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));
18640 this.setTemplate(localisedTemplate);
18641 };
18642 NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '<span class="ag-overlay-no-rows-center">[NO_ROWS_TO_SHOW]</span>';
18643 return NoRowsOverlayComponent;
18644}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18645
18646
18647
18648/***/ }),
18649/* 89 */
18650/***/ (function(module, __webpack_exports__, __webpack_require__) {
18651
18652"use strict";
18653__webpack_require__.r(__webpack_exports__);
18654/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; });
18655/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
18656/**
18657 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18658 * @version v25.3.0
18659 * @link http://www.ag-grid.com/
18660 * @license MIT
18661 */
18662var __extends = (undefined && undefined.__extends) || (function () {
18663 var extendStatics = function (d, b) {
18664 extendStatics = Object.setPrototypeOf ||
18665 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18666 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18667 return extendStatics(d, b);
18668 };
18669 return function (d, b) {
18670 extendStatics(d, b);
18671 function __() { this.constructor = d; }
18672 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18673 };
18674})();
18675
18676var TooltipComponent = /** @class */ (function (_super) {
18677 __extends(TooltipComponent, _super);
18678 function TooltipComponent() {
18679 return _super.call(this, /* html */ "<div class=\"ag-tooltip\"></div>") || this;
18680 }
18681 // will need to type params
18682 TooltipComponent.prototype.init = function (params) {
18683 var value = params.value;
18684 this.getGui().innerHTML = value;
18685 };
18686 return TooltipComponent;
18687}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
18688
18689
18690
18691/***/ }),
18692/* 90 */
18693/***/ (function(module, __webpack_exports__, __webpack_require__) {
18694
18695"use strict";
18696__webpack_require__.r(__webpack_exports__);
18697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultDateComponent", function() { return DefaultDateComponent; });
18698/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18699/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
18700/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
18701/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
18702/**
18703 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18704 * @version v25.3.0
18705 * @link http://www.ag-grid.com/
18706 * @license MIT
18707 */
18708var __extends = (undefined && undefined.__extends) || (function () {
18709 var extendStatics = function (d, b) {
18710 extendStatics = Object.setPrototypeOf ||
18711 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18712 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18713 return extendStatics(d, b);
18714 };
18715 return function (d, b) {
18716 extendStatics(d, b);
18717 function __() { this.constructor = d; }
18718 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18719 };
18720})();
18721var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18722 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18723 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18724 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18725 return c > 3 && r && Object.defineProperty(target, key, r), r;
18726};
18727
18728
18729
18730
18731var DefaultDateComponent = /** @class */ (function (_super) {
18732 __extends(DefaultDateComponent, _super);
18733 function DefaultDateComponent() {
18734 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;
18735 }
18736 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18737 // so we need to override destroy() just to make the method public.
18738 DefaultDateComponent.prototype.destroy = function () {
18739 _super.prototype.destroy.call(this);
18740 };
18741 DefaultDateComponent.prototype.init = function (params) {
18742 var inputElement = this.eDateInput.getInputElement();
18743 if (this.shouldUseBrowserDatePicker(params)) {
18744 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserIE"])()) {
18745 console.warn('ag-grid: browserDatePicker is specified to true, but it is not supported in IE 11; reverting to text date picker');
18746 }
18747 else {
18748 inputElement.type = 'date';
18749 }
18750 }
18751 // ensures that the input element is focussed when a clear button is clicked
18752 this.addManagedListener(inputElement, 'mousedown', function () { return inputElement.focus(); });
18753 this.addManagedListener(this.eDateInput.getInputElement(), 'input', function (e) {
18754 if (e.target !== document.activeElement) {
18755 return;
18756 }
18757 params.onDateChanged();
18758 });
18759 };
18760 DefaultDateComponent.prototype.getDate = function () {
18761 return Object(_utils_date__WEBPACK_IMPORTED_MODULE_2__["parseDateTimeFromString"])(this.eDateInput.getValue());
18762 };
18763 DefaultDateComponent.prototype.setDate = function (date) {
18764 this.eDateInput.setValue(Object(_utils_date__WEBPACK_IMPORTED_MODULE_2__["serialiseDate"])(date, false));
18765 };
18766 DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {
18767 this.eDateInput.setInputPlaceholder(placeholder);
18768 };
18769 DefaultDateComponent.prototype.afterGuiAttached = function (params) {
18770 if (!params || !params.suppressFocus) {
18771 this.eDateInput.getInputElement().focus();
18772 }
18773 };
18774 DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {
18775 if (params.filterParams && params.filterParams.browserDatePicker != null) {
18776 return params.filterParams.browserDatePicker;
18777 }
18778 return Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserChrome"])() || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserFirefox"])();
18779 };
18780 __decorate([
18781 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eDateInput')
18782 ], DefaultDateComponent.prototype, "eDateInput", void 0);
18783 return DefaultDateComponent;
18784}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18785
18786
18787
18788/***/ }),
18789/* 91 */
18790/***/ (function(module, __webpack_exports__, __webpack_require__) {
18791
18792"use strict";
18793__webpack_require__.r(__webpack_exports__);
18794/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFloatingFilter", function() { return DateFloatingFilter; });
18795/* harmony import */ var _dateFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61);
18796/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
18797/* harmony import */ var _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62);
18798/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
18799/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(63);
18800/* harmony import */ var _floating_provided_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(92);
18801/* harmony import */ var _providedFilter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65);
18802/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
18803/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48);
18804/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15);
18805/**
18806 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18807 * @version v25.3.0
18808 * @link http://www.ag-grid.com/
18809 * @license MIT
18810 */
18811var __extends = (undefined && undefined.__extends) || (function () {
18812 var extendStatics = function (d, b) {
18813 extendStatics = Object.setPrototypeOf ||
18814 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18815 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18816 return extendStatics(d, b);
18817 };
18818 return function (d, b) {
18819 extendStatics(d, b);
18820 function __() { this.constructor = d; }
18821 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18822 };
18823})();
18824var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18825 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18826 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18827 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18828 return c > 3 && r && Object.defineProperty(target, key, r), r;
18829};
18830
18831
18832
18833
18834
18835
18836
18837
18838
18839
18840var DateFloatingFilter = /** @class */ (function (_super) {
18841 __extends(DateFloatingFilter, _super);
18842 function DateFloatingFilter() {
18843 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;
18844 }
18845 DateFloatingFilter.prototype.getDefaultFilterOptions = function () {
18846 return _dateFilter__WEBPACK_IMPORTED_MODULE_0__["DateFilter"].DEFAULT_FILTER_OPTIONS;
18847 };
18848 DateFloatingFilter.prototype.conditionToString = function (condition) {
18849 var type = condition.type;
18850 var dateFrom = Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["parseDateTimeFromString"])(condition.dateFrom);
18851 if (type === _simpleFilter__WEBPACK_IMPORTED_MODULE_4__["SimpleFilter"].IN_RANGE) {
18852 var dateTo = Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["parseDateTimeFromString"])(condition.dateTo);
18853 return Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(dateFrom, false) + "-" + Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(dateTo, false);
18854 }
18855 // cater for when the type doesn't need a value
18856 return dateFrom == null ? "" + type : "" + Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(dateFrom, false);
18857 };
18858 DateFloatingFilter.prototype.init = function (params) {
18859 _super.prototype.init.call(this, params);
18860 this.params = params;
18861 this.createDateComponent();
18862 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
18863 this.eReadOnlyText
18864 .setDisabled(true)
18865 .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));
18866 };
18867 DateFloatingFilter.prototype.setEditable = function (editable) {
18868 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eDateWrapper, editable);
18869 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eReadOnlyText.getGui(), !editable);
18870 };
18871 DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {
18872 // We don't want to update the floating filter if the floating filter caused the change,
18873 // because the UI is already in sync. if we didn't do this, the UI would behave strangely
18874 // as it would be updating as the user is typing
18875 if (this.isEventFromFloatingFilter(event)) {
18876 return;
18877 }
18878 _super.prototype.setLastTypeFromModel.call(this, model);
18879 var allowEditing = this.canWeEditAfterModelFromParentFilter(model);
18880 this.setEditable(allowEditing);
18881 if (allowEditing) {
18882 if (model) {
18883 var dateModel = model;
18884 this.dateComp.setDate(Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["parseDateTimeFromString"])(dateModel.dateFrom));
18885 }
18886 else {
18887 this.dateComp.setDate(null);
18888 }
18889 this.eReadOnlyText.setValue('');
18890 }
18891 else {
18892 this.eReadOnlyText.setValue(this.getTextFromModel(model));
18893 this.dateComp.setDate(null);
18894 }
18895 };
18896 DateFloatingFilter.prototype.onDateChanged = function () {
18897 var _this = this;
18898 var filterValueDate = this.dateComp.getDate();
18899 var filterValueText = Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(filterValueDate);
18900 this.params.parentFilterInstance(function (filterInstance) {
18901 if (filterInstance) {
18902 var simpleFilter = filterInstance;
18903 simpleFilter.onFloatingFilterChanged(_this.getLastType(), filterValueText);
18904 }
18905 });
18906 };
18907 DateFloatingFilter.prototype.createDateComponent = function () {
18908 var _this = this;
18909 var debounceMs = _providedFilter__WEBPACK_IMPORTED_MODULE_6__["ProvidedFilter"].getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());
18910 var dateComponentParams = {
18911 onDateChanged: Object(_utils_function__WEBPACK_IMPORTED_MODULE_9__["debounce"])(this.onDateChanged.bind(this), debounceMs),
18912 filterParams: this.params.column.getColDef().filterParams
18913 };
18914 this.dateComp = new _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__["DateCompWrapper"](this.getContext(), this.userComponentFactory, dateComponentParams, this.eDateWrapper);
18915 this.addDestroyFunc(function () { return _this.dateComp.destroy(); });
18916 };
18917 __decorate([
18918 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
18919 ], DateFloatingFilter.prototype, "userComponentFactory", void 0);
18920 __decorate([
18921 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eReadOnlyText')
18922 ], DateFloatingFilter.prototype, "eReadOnlyText", void 0);
18923 __decorate([
18924 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eDateWrapper')
18925 ], DateFloatingFilter.prototype, "eDateWrapper", void 0);
18926 return DateFloatingFilter;
18927}(_floating_provided_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_5__["SimpleFloatingFilter"]));
18928
18929
18930
18931/***/ }),
18932/* 92 */
18933/***/ (function(module, __webpack_exports__, __webpack_require__) {
18934
18935"use strict";
18936__webpack_require__.r(__webpack_exports__);
18937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFloatingFilter", function() { return SimpleFloatingFilter; });
18938/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18939/* harmony import */ var _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
18940/* harmony import */ var _provided_optionsFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64);
18941/**
18942 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18943 * @version v25.3.0
18944 * @link http://www.ag-grid.com/
18945 * @license MIT
18946 */
18947var __extends = (undefined && undefined.__extends) || (function () {
18948 var extendStatics = function (d, b) {
18949 extendStatics = Object.setPrototypeOf ||
18950 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18951 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18952 return extendStatics(d, b);
18953 };
18954 return function (d, b) {
18955 extendStatics(d, b);
18956 function __() { this.constructor = d; }
18957 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18958 };
18959})();
18960
18961
18962
18963var SimpleFloatingFilter = /** @class */ (function (_super) {
18964 __extends(SimpleFloatingFilter, _super);
18965 function SimpleFloatingFilter() {
18966 return _super !== null && _super.apply(this, arguments) || this;
18967 }
18968 SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {
18969 return 0;
18970 };
18971 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18972 // so we need to override destroy() just to make the method public.
18973 SimpleFloatingFilter.prototype.destroy = function () {
18974 _super.prototype.destroy.call(this);
18975 };
18976 // used by:
18977 // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.
18978 // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)
18979 SimpleFloatingFilter.prototype.getTextFromModel = function (model) {
18980 if (!model) {
18981 return null;
18982 }
18983 var isCombined = model.operator;
18984 if (isCombined) {
18985 var combinedModel = model;
18986 var con1Str = this.conditionToString(combinedModel.condition1);
18987 var con2Str = this.conditionToString(combinedModel.condition2);
18988 return con1Str + " " + combinedModel.operator + " " + con2Str;
18989 }
18990 else {
18991 var condition = model;
18992 var customOption = this.optionsFactory.getCustomOption(condition.type);
18993 // For custom filter options we display the Name of the filter instead
18994 // of displaying the `from` value, as it wouldn't be relevant
18995 if (customOption && customOption.hideFilterInput) {
18996 this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName);
18997 return customOption.displayName;
18998 }
18999 return this.conditionToString(condition);
19000 }
19001 };
19002 SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {
19003 return event && event.afterFloatingFilter;
19004 };
19005 SimpleFloatingFilter.prototype.getLastType = function () {
19006 return this.lastType;
19007 };
19008 SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {
19009 // if no model provided by the parent filter use default
19010 if (!model) {
19011 this.lastType = this.optionsFactory.getDefaultOption();
19012 return;
19013 }
19014 var isCombined = model.operator;
19015 var condition;
19016 if (isCombined) {
19017 var combinedModel = model;
19018 condition = combinedModel.condition1;
19019 }
19020 else {
19021 condition = model;
19022 }
19023 this.lastType = condition.type;
19024 };
19025 SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {
19026 if (!model) {
19027 // if no model, then we can edit as long as the lastType is something we can edit, as this
19028 // is the type we will provide to the parent filter if the user decides to use the floating filter.
19029 return this.isTypeEditable(this.lastType);
19030 }
19031 // never allow editing if the filter is combined (ie has two parts)
19032 var isCombined = model.operator;
19033 if (isCombined) {
19034 return false;
19035 }
19036 var simpleModel = model;
19037 return this.isTypeEditable(simpleModel.type);
19038 };
19039 SimpleFloatingFilter.prototype.init = function (params) {
19040 this.optionsFactory = new _provided_optionsFactory__WEBPACK_IMPORTED_MODULE_2__["OptionsFactory"]();
19041 this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());
19042 this.lastType = this.optionsFactory.getDefaultOption();
19043 // we are editable if:
19044 // 1) there is a type (user has configured filter wrong if not type)
19045 // AND
19046 // 2) the default type is not 'in range'
19047 var editable = this.isTypeEditable(this.lastType);
19048 this.setEditable(editable);
19049 };
19050 SimpleFloatingFilter.prototype.doesFilterHaveHiddenInput = function (filterType) {
19051 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
19052 return customFilterOption && customFilterOption.hideFilterInput;
19053 };
19054 SimpleFloatingFilter.prototype.isTypeEditable = function (type) {
19055 return !!type && !this.doesFilterHaveHiddenInput(type) &&
19056 type !== _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].IN_RANGE
19057 && type !== _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY;
19058 };
19059 return SimpleFloatingFilter;
19060}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
19061
19062
19063
19064/***/ }),
19065/* 93 */
19066/***/ (function(module, __webpack_exports__, __webpack_require__) {
19067
19068"use strict";
19069__webpack_require__.r(__webpack_exports__);
19070/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return TextFilter; });
19071/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
19072/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
19073/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
19074/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
19075/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
19076/**
19077 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19078 * @version v25.3.0
19079 * @link http://www.ag-grid.com/
19080 * @license MIT
19081 */
19082var __extends = (undefined && undefined.__extends) || (function () {
19083 var extendStatics = function (d, b) {
19084 extendStatics = Object.setPrototypeOf ||
19085 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19086 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19087 return extendStatics(d, b);
19088 };
19089 return function (d, b) {
19090 extendStatics(d, b);
19091 function __() { this.constructor = d; }
19092 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19093 };
19094})();
19095var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19096 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19097 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19098 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19099 return c > 3 && r && Object.defineProperty(target, key, r), r;
19100};
19101
19102
19103
19104
19105
19106var TextFilter = /** @class */ (function (_super) {
19107 __extends(TextFilter, _super);
19108 function TextFilter() {
19109 return _super.call(this, 'textFilter') || this;
19110 }
19111 TextFilter.trimInput = function (value) {
19112 var trimmedInput = value && value.trim();
19113 // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)
19114 return trimmedInput === '' ? value : trimmedInput;
19115 };
19116 TextFilter.prototype.getDefaultDebounceMs = function () {
19117 return 500;
19118 };
19119 TextFilter.prototype.getCleanValue = function (inputField) {
19120 var value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["makeNull"])(inputField.getValue());
19121 return this.textFilterParams.trimInput ? TextFilter.trimInput(value) : value;
19122 };
19123 TextFilter.prototype.addValueChangedListeners = function () {
19124 var _this = this;
19125 var listener = function () { return _this.onUiChanged(); };
19126 this.eValue1.onValueChange(listener);
19127 this.eValue2.onValueChange(listener);
19128 };
19129 TextFilter.prototype.setParams = function (params) {
19130 _super.prototype.setParams.call(this, params);
19131 this.textFilterParams = params;
19132 this.comparator = this.textFilterParams.textCustomComparator || TextFilter.DEFAULT_COMPARATOR;
19133 this.formatter = this.textFilterParams.textFormatter ||
19134 (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);
19135 this.addValueChangedListeners();
19136 };
19137 TextFilter.prototype.setConditionIntoUi = function (model, position) {
19138 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
19139 var eValue = positionOne ? this.eValue1 : this.eValue2;
19140 eValue.setValue(model ? model.filter : null);
19141 };
19142 TextFilter.prototype.createCondition = function (position) {
19143 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
19144 var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();
19145 var eValue = positionOne ? this.eValue1 : this.eValue2;
19146 var value = this.getCleanValue(eValue);
19147 eValue.setValue(value, true); // ensure clean value is visible
19148 var model = {
19149 filterType: this.getFilterType(),
19150 type: type
19151 };
19152 if (!this.doesFilterHaveHiddenInput(type)) {
19153 model.filter = value;
19154 }
19155 return model;
19156 };
19157 TextFilter.prototype.getFilterType = function () {
19158 return 'text';
19159 };
19160 TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
19161 return aSimple.filter === bSimple.filter && aSimple.type === bSimple.type;
19162 };
19163 TextFilter.prototype.resetUiToDefaults = function (silent) {
19164 var _this = this;
19165 return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {
19166 _this.forEachInput(function (field) { return field.setValue(null, silent); });
19167 _this.resetPlaceholder();
19168 });
19169 };
19170 TextFilter.prototype.resetPlaceholder = function () {
19171 var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();
19172 var placeholder = this.translate('filterOoo');
19173 this.forEachInput(function (field) {
19174 field.setInputPlaceholder(placeholder);
19175 field.setInputAriaLabel(globalTranslate('ariaFilterValue', 'Filter Value'));
19176 });
19177 };
19178 TextFilter.prototype.forEachInput = function (action) {
19179 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])([this.eValue1, this.eValue2], action);
19180 };
19181 TextFilter.prototype.setValueFromFloatingFilter = function (value) {
19182 this.eValue1.setValue(value);
19183 this.eValue2.setValue(null);
19184 };
19185 TextFilter.prototype.getDefaultFilterOptions = function () {
19186 return TextFilter.DEFAULT_FILTER_OPTIONS;
19187 };
19188 TextFilter.prototype.createValueTemplate = function (position) {
19189 var pos = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One ? '1' : '2';
19190 return /* html */ "\n <div class=\"ag-filter-body\" ref=\"eCondition" + pos + "Body\" role=\"presentation\">\n <ag-input-text-field class=\"ag-filter-filter\" ref=\"eValue" + pos + "\"></ag-input-text-field>\n </div>";
19191 };
19192 TextFilter.prototype.updateUiVisibility = function () {
19193 _super.prototype.updateUiVisibility.call(this);
19194 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eCondition1Body, this.showValueFrom(this.getCondition1Type()));
19195 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eCondition2Body, this.isCondition2Enabled() && this.showValueFrom(this.getCondition2Type()));
19196 };
19197 TextFilter.prototype.afterGuiAttached = function (params) {
19198 _super.prototype.afterGuiAttached.call(this, params);
19199 this.resetPlaceholder();
19200 if (!params || !params.suppressFocus) {
19201 this.eValue1.getInputElement().focus();
19202 }
19203 };
19204 TextFilter.prototype.isConditionUiComplete = function (position) {
19205 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
19206 var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();
19207 if (option === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY) {
19208 return false;
19209 }
19210 if (this.doesFilterHaveHiddenInput(option)) {
19211 return true;
19212 }
19213 return this.getCleanValue(positionOne ? this.eValue1 : this.eValue2) != null;
19214 };
19215 TextFilter.prototype.individualConditionPasses = function (params, filterModel) {
19216 var filterText = filterModel.filter;
19217 var filterOption = filterModel.type;
19218 var cellValue = this.textFilterParams.valueGetter(params.node);
19219 var cellValueFormatted = this.formatter(cellValue);
19220 var customFilterOption = this.optionsFactory.getCustomOption(filterOption);
19221 if (customFilterOption) {
19222 // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden
19223 if (filterText != null || customFilterOption.hideFilterInput) {
19224 return customFilterOption.test(filterText, cellValueFormatted);
19225 }
19226 }
19227 if (cellValue == null) {
19228 return filterOption === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_EQUAL || filterOption === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_CONTAINS;
19229 }
19230 var filterTextFormatted = this.formatter(filterText);
19231 return this.comparator(filterOption, cellValueFormatted, filterTextFormatted);
19232 };
19233 TextFilter.DEFAULT_FILTER_OPTIONS = [
19234 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].CONTAINS,
19235 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_CONTAINS,
19236 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EQUALS,
19237 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_EQUAL,
19238 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].STARTS_WITH,
19239 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].ENDS_WITH
19240 ];
19241 TextFilter.DEFAULT_FORMATTER = function (from) { return from; };
19242 TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };
19243 TextFilter.DEFAULT_COMPARATOR = function (filter, value, filterText) {
19244 switch (filter) {
19245 case TextFilter.CONTAINS:
19246 return value.indexOf(filterText) >= 0;
19247 case TextFilter.NOT_CONTAINS:
19248 return value.indexOf(filterText) < 0;
19249 case TextFilter.EQUALS:
19250 return value === filterText;
19251 case TextFilter.NOT_EQUAL:
19252 return value != filterText;
19253 case TextFilter.STARTS_WITH:
19254 return value.indexOf(filterText) === 0;
19255 case TextFilter.ENDS_WITH:
19256 var index = value.lastIndexOf(filterText);
19257 return index >= 0 && index === (value.length - filterText.length);
19258 default:
19259 // should never happen
19260 console.warn('AG Grid: Unexpected type of filter "' + filter + '", it looks like the filter was configured with incorrect Filter Options');
19261 return false;
19262 }
19263 };
19264 __decorate([
19265 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValue1')
19266 ], TextFilter.prototype, "eValue1", void 0);
19267 __decorate([
19268 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValue2')
19269 ], TextFilter.prototype, "eValue2", void 0);
19270 return TextFilter;
19271}(_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"]));
19272
19273
19274
19275/***/ }),
19276/* 94 */
19277/***/ (function(module, __webpack_exports__, __webpack_require__) {
19278
19279"use strict";
19280__webpack_require__.r(__webpack_exports__);
19281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFloatingFilter", function() { return NumberFloatingFilter; });
19282/* harmony import */ var _numberFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86);
19283/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
19284/* harmony import */ var _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95);
19285/**
19286 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19287 * @version v25.3.0
19288 * @link http://www.ag-grid.com/
19289 * @license MIT
19290 */
19291var __extends = (undefined && undefined.__extends) || (function () {
19292 var extendStatics = function (d, b) {
19293 extendStatics = Object.setPrototypeOf ||
19294 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19295 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19296 return extendStatics(d, b);
19297 };
19298 return function (d, b) {
19299 extendStatics(d, b);
19300 function __() { this.constructor = d; }
19301 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19302 };
19303})();
19304
19305
19306
19307var NumberFloatingFilter = /** @class */ (function (_super) {
19308 __extends(NumberFloatingFilter, _super);
19309 function NumberFloatingFilter() {
19310 return _super !== null && _super.apply(this, arguments) || this;
19311 }
19312 NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {
19313 return _numberFilter__WEBPACK_IMPORTED_MODULE_0__["NumberFilter"].DEFAULT_FILTER_OPTIONS;
19314 };
19315 NumberFloatingFilter.prototype.conditionToString = function (condition) {
19316 var isRange = condition.type == _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].IN_RANGE;
19317 if (isRange) {
19318 return condition.filter + "-" + condition.filterTo;
19319 }
19320 // cater for when the type doesn't need a value
19321 if (condition.filter != null) {
19322 return "" + condition.filter;
19323 }
19324 return "" + condition.type;
19325 };
19326 return NumberFloatingFilter;
19327}(_floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_2__["TextInputFloatingFilter"]));
19328
19329
19330
19331/***/ }),
19332/* 95 */
19333/***/ (function(module, __webpack_exports__, __webpack_require__) {
19334
19335"use strict";
19336__webpack_require__.r(__webpack_exports__);
19337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextInputFloatingFilter", function() { return TextInputFloatingFilter; });
19338/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
19339/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
19340/* harmony import */ var _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65);
19341/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
19342/* harmony import */ var _simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92);
19343/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51);
19344/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
19345/* harmony import */ var _provided_text_textFilter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(93);
19346/**
19347 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19348 * @version v25.3.0
19349 * @link http://www.ag-grid.com/
19350 * @license MIT
19351 */
19352var __extends = (undefined && undefined.__extends) || (function () {
19353 var extendStatics = function (d, b) {
19354 extendStatics = Object.setPrototypeOf ||
19355 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19356 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19357 return extendStatics(d, b);
19358 };
19359 return function (d, b) {
19360 extendStatics(d, b);
19361 function __() { this.constructor = d; }
19362 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19363 };
19364})();
19365var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19366 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19367 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19368 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19369 return c > 3 && r && Object.defineProperty(target, key, r), r;
19370};
19371
19372
19373
19374
19375
19376
19377
19378
19379var TextInputFloatingFilter = /** @class */ (function (_super) {
19380 __extends(TextInputFloatingFilter, _super);
19381 function TextInputFloatingFilter() {
19382 return _super !== null && _super.apply(this, arguments) || this;
19383 }
19384 TextInputFloatingFilter.prototype.postConstruct = function () {
19385 this.setTemplate(/* html */ "\n <div class=\"ag-floating-filter-input\" role=\"presentation\">\n <ag-input-text-field ref=\"eFloatingFilterInput\"></ag-input-text-field>\n </div>");
19386 };
19387 TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {
19388 return 500;
19389 };
19390 TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {
19391 if (this.isEventFromFloatingFilter(event)) {
19392 // if the floating filter triggered the change, it is already in sync
19393 return;
19394 }
19395 this.setLastTypeFromModel(model);
19396 this.eFloatingFilterInput.setValue(this.getTextFromModel(model));
19397 this.setEditable(this.canWeEditAfterModelFromParentFilter(model));
19398 };
19399 TextInputFloatingFilter.prototype.init = function (params) {
19400 _super.prototype.init.call(this, params);
19401 this.params = params;
19402 this.applyActive = _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"].isUseApplyButton(this.params.filterParams);
19403 var debounceMs = _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"].getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());
19404 var toDebounce = Object(_utils_function__WEBPACK_IMPORTED_MODULE_1__["debounce"])(this.syncUpWithParentFilter.bind(this), debounceMs);
19405 var filterGui = this.eFloatingFilterInput.getGui();
19406 this.addManagedListener(filterGui, 'input', toDebounce);
19407 this.addManagedListener(filterGui, 'keypress', toDebounce);
19408 this.addManagedListener(filterGui, 'keydown', toDebounce);
19409 var columnDef = params.column.getDefinition();
19410 if (columnDef.filterParams &&
19411 columnDef.filterParams.filterOptions &&
19412 columnDef.filterParams.filterOptions.length === 1 &&
19413 columnDef.filterParams.filterOptions[0] === 'inRange') {
19414 this.eFloatingFilterInput.setDisabled(true);
19415 }
19416 var displayName = this.columnController.getDisplayNameForColumn(params.column, 'header', true);
19417 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
19418 this.eFloatingFilterInput.setInputAriaLabel(displayName + " " + translate('ariaFilterInput', 'Filter Input'));
19419 };
19420 TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {
19421 var _this = this;
19422 var enterKeyPressed = Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_5__["isKeyPressed"])(e, _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER);
19423 if (this.applyActive && !enterKeyPressed) {
19424 return;
19425 }
19426 var value = this.eFloatingFilterInput.getValue();
19427 if (this.params.filterParams.trimInput) {
19428 value = _provided_text_textFilter__WEBPACK_IMPORTED_MODULE_7__["TextFilter"].trimInput(value);
19429 this.eFloatingFilterInput.setValue(value, true); // ensure visible value is trimmed
19430 }
19431 this.params.parentFilterInstance(function (filterInstance) {
19432 if (filterInstance) {
19433 var simpleFilter = filterInstance;
19434 simpleFilter.onFloatingFilterChanged(_this.getLastType(), value);
19435 }
19436 });
19437 };
19438 TextInputFloatingFilter.prototype.setEditable = function (editable) {
19439 this.eFloatingFilterInput.setDisabled(!editable);
19440 };
19441 __decorate([
19442 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnController')
19443 ], TextInputFloatingFilter.prototype, "columnController", void 0);
19444 __decorate([
19445 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eFloatingFilterInput')
19446 ], TextInputFloatingFilter.prototype, "eFloatingFilterInput", void 0);
19447 __decorate([
19448 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
19449 ], TextInputFloatingFilter.prototype, "postConstruct", null);
19450 return TextInputFloatingFilter;
19451}(_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__["SimpleFloatingFilter"]));
19452
19453
19454
19455/***/ }),
19456/* 96 */
19457/***/ (function(module, __webpack_exports__, __webpack_require__) {
19458
19459"use strict";
19460__webpack_require__.r(__webpack_exports__);
19461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return TextFloatingFilter; });
19462/* harmony import */ var _textFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93);
19463/* harmony import */ var _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95);
19464/**
19465 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19466 * @version v25.3.0
19467 * @link http://www.ag-grid.com/
19468 * @license MIT
19469 */
19470var __extends = (undefined && undefined.__extends) || (function () {
19471 var extendStatics = function (d, b) {
19472 extendStatics = Object.setPrototypeOf ||
19473 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19474 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19475 return extendStatics(d, b);
19476 };
19477 return function (d, b) {
19478 extendStatics(d, b);
19479 function __() { this.constructor = d; }
19480 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19481 };
19482})();
19483
19484
19485var TextFloatingFilter = /** @class */ (function (_super) {
19486 __extends(TextFloatingFilter, _super);
19487 function TextFloatingFilter() {
19488 return _super !== null && _super.apply(this, arguments) || this;
19489 }
19490 TextFloatingFilter.prototype.conditionToString = function (condition) {
19491 // it's not possible to have 'in range' for string, so no need to check for it.
19492 // also cater for when the type doesn't need a value
19493 if (condition.filter != null) {
19494 return "" + condition.filter;
19495 }
19496 else {
19497 return "" + condition.type;
19498 }
19499 };
19500 TextFloatingFilter.prototype.getDefaultFilterOptions = function () {
19501 return _textFilter__WEBPACK_IMPORTED_MODULE_0__["TextFilter"].DEFAULT_FILTER_OPTIONS;
19502 };
19503 return TextFloatingFilter;
19504}(_floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__["TextInputFloatingFilter"]));
19505
19506
19507
19508/***/ }),
19509/* 97 */
19510/***/ (function(module, __webpack_exports__, __webpack_require__) {
19511
19512"use strict";
19513__webpack_require__.r(__webpack_exports__);
19514/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithAngular1", function() { return initialiseAgGridWithAngular1; });
19515/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98);
19516/**
19517 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19518 * @version v25.3.0
19519 * @link http://www.ag-grid.com/
19520 * @license MIT
19521 */
19522
19523function initialiseAgGridWithAngular1(angular) {
19524 var angularModule = angular.module("agGrid", []);
19525 angularModule.directive("agGrid", function () {
19526 return {
19527 restrict: "A",
19528 controller: ['$element', '$scope', '$compile', '$attrs', AngularDirectiveController],
19529 scope: true
19530 };
19531 });
19532}
19533function AngularDirectiveController($element, $scope, $compile, $attrs) {
19534 var gridOptions;
19535 var keyOfGridInScope = $attrs.agGrid;
19536 gridOptions = $scope.$eval(keyOfGridInScope);
19537 if (!gridOptions) {
19538 console.warn("WARNING - grid options for AG Grid not found. Please ensure the attribute ag-grid points to a valid object on the scope");
19539 return;
19540 }
19541 var eGridDiv = $element[0];
19542 var gridParams = {
19543 $scope: $scope,
19544 $compile: $compile
19545 };
19546 var grid = new _grid__WEBPACK_IMPORTED_MODULE_0__["Grid"](eGridDiv, gridOptions, gridParams);
19547 var quickFilterOnScope = keyOfGridInScope + '.quickFilterText';
19548 var quickFilterUnregisterFn = $scope.$watch(quickFilterOnScope, function (newFilter) {
19549 gridOptions.api.setQuickFilter(newFilter);
19550 });
19551 $scope.$on("$destroy", function () {
19552 quickFilterUnregisterFn();
19553 if (grid) {
19554 grid.destroy();
19555 }
19556 grid = null;
19557 });
19558}
19559
19560
19561/***/ }),
19562/* 98 */
19563/***/ (function(module, __webpack_exports__, __webpack_require__) {
19564
19565"use strict";
19566__webpack_require__.r(__webpack_exports__);
19567/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return Grid; });
19568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return GridCoreCreator; });
19569/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
19570/* harmony import */ var _selectionController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(101);
19571/* harmony import */ var _columnController_columnApi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(103);
19572/* harmony import */ var _columnController_columnController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22);
19573/* harmony import */ var _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(104);
19574/* harmony import */ var _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(111);
19575/* harmony import */ var _filter_filterManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(134);
19576/* harmony import */ var _valueService_valueService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(135);
19577/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);
19578/* harmony import */ var _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(136);
19579/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(148);
19580/* harmony import */ var _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5);
19581/* harmony import */ var _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(30);
19582/* harmony import */ var _valueService_expressionService__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(151);
19583/* harmony import */ var _templateService__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(152);
19584/* harmony import */ var _widgets_popupService__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(153);
19585/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(155);
19586/* harmony import */ var _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(28);
19587/* harmony import */ var _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(156);
19588/* harmony import */ var _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(157);
19589/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(12);
19590/* harmony import */ var _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(158);
19591/* harmony import */ var _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(160);
19592/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(78);
19593/* harmony import */ var _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(161);
19594/* harmony import */ var _sortController__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(162);
19595/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(154);
19596/* harmony import */ var _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(163);
19597/* harmony import */ var _cellNavigationService__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(164);
19598/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(23);
19599/* harmony import */ var _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(165);
19600/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(119);
19601/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(166);
19602/* harmony import */ var _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(167);
19603/* harmony import */ var _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(168);
19604/* harmony import */ var _styling_stylingService__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(169);
19605/* harmony import */ var _rendering_columnHoverService__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(170);
19606/* harmony import */ var _rendering_columnAnimationService__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(171);
19607/* harmony import */ var _columnController_autoGroupColService__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(172);
19608/* harmony import */ var _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(173);
19609/* harmony import */ var _pagination_paginationAutoPageSizeService__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(174);
19610/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(16);
19611/* harmony import */ var _valueService_valueCache__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(175);
19612/* harmony import */ var _valueService_changeDetectionService__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(176);
19613/* harmony import */ var _alignedGridsService__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(177);
19614/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(75);
19615/* harmony import */ var _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(38);
19616/* harmony import */ var _components_framework_agComponentUtils__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(178);
19617/* harmony import */ var _components_framework_componentMetadataProvider__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(179);
19618/* harmony import */ var _rendering_beans__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(180);
19619/* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(181);
19620/* harmony import */ var _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(182);
19621/* harmony import */ var _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(183);
19622/* harmony import */ var _rendering_rowContainerHeightService__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(184);
19623/* harmony import */ var _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(185);
19624/* harmony import */ var _rendering_row_autoHeightCalculator__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(186);
19625/* harmony import */ var _pagination_paginationComp__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(187);
19626/* harmony import */ var _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(188);
19627/* harmony import */ var _rendering_overlays_overlayWrapperComponent__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(189);
19628/* harmony import */ var _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(190);
19629/* harmony import */ var _widgets_agDialog__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(191);
19630/* harmony import */ var _widgets_agPanel__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(192);
19631/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(193);
19632/* harmony import */ var _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(194);
19633/* harmony import */ var _widgets_agSlider__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(195);
19634/* harmony import */ var _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(196);
19635/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(199);
19636/* harmony import */ var _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(200);
19637/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(201);
19638/* harmony import */ var _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(203);
19639/* harmony import */ var _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(204);
19640/* harmony import */ var _rendering_row_detailRowCompCache__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(205);
19641/* harmony import */ var _entities_rowPosition__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(206);
19642/* harmony import */ var _entities_cellPosition__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(207);
19643/* harmony import */ var _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(208);
19644/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(18);
19645/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(17);
19646/* harmony import */ var _undoRedo_undoRedoService__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(209);
19647/* harmony import */ var _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(211);
19648/* harmony import */ var _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(212);
19649/* harmony import */ var _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(131);
19650/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(7);
19651/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(13);
19652/* harmony import */ var _columnController_columnDefFactory__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(213);
19653/* harmony import */ var _rendering_row_rowCssClassCalculator__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(214);
19654/* harmony import */ var _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(215);
19655/* harmony import */ var _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(217);
19656/* harmony import */ var _controllersService__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(218);
19657/* harmony import */ var _gridBodyComp_fakeHorizontalScrollComp__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(219);
19658/* harmony import */ var _gridBodyComp_pinnedWidthService__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(221);
19659/* harmony import */ var _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(222);
19660/**
19661 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19662 * @version v25.3.0
19663 * @link http://www.ag-grid.com/
19664 * @license MIT
19665 */
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
19692
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can
19758// be wrapped by the framework wrappers
19759var Grid = /** @class */ (function () {
19760 function Grid(eGridDiv, gridOptions, params) {
19761 if (!gridOptions) {
19762 console.error('AG Grid: no gridOptions provided to the grid');
19763 return;
19764 }
19765 this.gridOptions = gridOptions;
19766 new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {
19767 var gridComp = new _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_21__["GridComp"](eGridDiv);
19768 context.createBean(gridComp);
19769 }, params);
19770 }
19771 Grid.prototype.destroy = function () {
19772 if (this.gridOptions && this.gridOptions.api) {
19773 this.gridOptions.api.destroy();
19774 }
19775 };
19776 return Grid;
19777}());
19778
19779// created services of grid only, no UI, so frameworks can use this if providing
19780// their own UI
19781var GridCoreCreator = /** @class */ (function () {
19782 function GridCoreCreator() {
19783 }
19784 GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, uiCallback, params) {
19785 var debug = !!gridOptions.debug;
19786 var registeredModules = this.getRegisteredModules(params);
19787 var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules);
19788 var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);
19789 if (!beanClasses) {
19790 return;
19791 } // happens when no row model found
19792 var contextParams = {
19793 providedBeanInstances: providedBeanInstances,
19794 beanClasses: beanClasses,
19795 debug: debug
19796 };
19797 var logger = new _logger__WEBPACK_IMPORTED_MODULE_16__["Logger"]('AG Grid', function () { return gridOptions.debug; });
19798 var contextLogger = new _logger__WEBPACK_IMPORTED_MODULE_16__["Logger"]('Context', function () { return contextParams.debug; });
19799 var context = new _context_context__WEBPACK_IMPORTED_MODULE_20__["Context"](contextParams, contextLogger);
19800 this.registerModuleUserComponents(context, registeredModules);
19801 this.registerStackComponents(context, registeredModules);
19802 uiCallback(context);
19803 this.setColumnsAndData(context);
19804 this.dispatchGridReadyEvent(context, gridOptions);
19805 var isEnterprise = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].EnterpriseCoreModule);
19806 logger.log("initialised successfully, enterprise = " + isEnterprise);
19807 };
19808 GridCoreCreator.prototype.registerStackComponents = function (context, registeredModules) {
19809 var agStackComponents = this.createAgStackComponentsList(registeredModules);
19810 var agStackComponentsRegistry = context.getBean('agStackComponentsRegistry');
19811 agStackComponentsRegistry.setupComponents(agStackComponents);
19812 };
19813 GridCoreCreator.prototype.getRegisteredModules = function (params) {
19814 var passedViaConstructor = params ? params.modules : null;
19815 var registered = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].getRegisteredModules();
19816 var allModules = [];
19817 var mapNames = {};
19818 // adds to list and removes duplicates
19819 function addModule(moduleBased, mod) {
19820 function addIndividualModule(currentModule) {
19821 if (!mapNames[currentModule.moduleName]) {
19822 mapNames[currentModule.moduleName] = true;
19823 allModules.push(currentModule);
19824 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].register(currentModule, moduleBased);
19825 }
19826 }
19827 addIndividualModule(mod);
19828 if (mod.dependantModules) {
19829 mod.dependantModules.forEach(addModule.bind(null, moduleBased));
19830 }
19831 }
19832 if (passedViaConstructor) {
19833 passedViaConstructor.forEach(addModule.bind(null, true));
19834 }
19835 if (registered) {
19836 registered.forEach(addModule.bind(null, !_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].isPackageBased()));
19837 }
19838 return allModules;
19839 };
19840 GridCoreCreator.prototype.registerModuleUserComponents = function (context, registeredModules) {
19841 var userComponentRegistry = context.getBean('userComponentRegistry');
19842 var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });
19843 moduleUserComps.forEach(function (compMeta) {
19844 userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);
19845 });
19846 };
19847 GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {
19848 var frameworkOverrides = params ? params.frameworkOverrides : null;
19849 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_81__["missing"])(frameworkOverrides)) {
19850 frameworkOverrides = new _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_33__["VanillaFrameworkOverrides"]();
19851 }
19852 var seed = {
19853 gridOptions: gridOptions,
19854 eGridDiv: eGridDiv,
19855 $scope: params ? params.$scope : null,
19856 $compile: params ? params.$compile : null,
19857 globalEventListener: params ? params.globalEventListener : null,
19858 frameworkOverrides: frameworkOverrides
19859 };
19860 if (params && params.providedBeanInstances) {
19861 Object(_utils_object__WEBPACK_IMPORTED_MODULE_82__["assign"])(seed, params.providedBeanInstances);
19862 }
19863 return seed;
19864 };
19865 GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {
19866 var components = [
19867 { componentName: 'AgCheckbox', componentClass: _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_31__["AgCheckbox"] },
19868 { componentName: 'AgRadioButton', componentClass: _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_32__["AgRadioButton"] },
19869 { componentName: 'AgToggleButton', componentClass: _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_70__["AgToggleButton"] },
19870 { componentName: 'AgInputTextField', componentClass: _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_62__["AgInputTextField"] },
19871 { componentName: 'AgInputTextArea', componentClass: _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_63__["AgInputTextArea"] },
19872 { componentName: 'AgInputNumberField', componentClass: _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_66__["AgInputNumberField"] },
19873 { componentName: 'AgInputRange', componentClass: _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_67__["AgInputRange"] },
19874 { componentName: 'AgSelect', componentClass: _widgets_agSelect__WEBPACK_IMPORTED_MODULE_68__["AgSelect"] },
19875 { componentName: 'AgSlider', componentClass: _widgets_agSlider__WEBPACK_IMPORTED_MODULE_64__["AgSlider"] },
19876 { componentName: 'AgAngleSelect', componentClass: _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_69__["AgAngleSelect"] },
19877 { componentName: 'AgColorPicker', componentClass: _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_65__["AgColorPicker"] },
19878 { componentName: 'AgGridBody', componentClass: _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_9__["GridBodyComp"] },
19879 { componentName: 'AgHeaderRoot', componentClass: _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_5__["HeaderRootComp"] },
19880 { componentName: 'AgPagination', componentClass: _pagination_paginationComp__WEBPACK_IMPORTED_MODULE_56__["PaginationComp"] },
19881 { componentName: 'AgOverlayWrapper', componentClass: _rendering_overlays_overlayWrapperComponent__WEBPACK_IMPORTED_MODULE_58__["OverlayWrapperComponent"] },
19882 { componentName: 'AgGroupComponent', componentClass: _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_59__["AgGroupComponent"] },
19883 { componentName: 'AgPanel', componentClass: _widgets_agPanel__WEBPACK_IMPORTED_MODULE_61__["AgPanel"] },
19884 { componentName: 'AgDialog', componentClass: _widgets_agDialog__WEBPACK_IMPORTED_MODULE_60__["AgDialog"] },
19885 { componentName: 'AgRowContainer', componentClass: _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_90__["RowContainerComp"] },
19886 { componentName: 'AgFakeHorizontalScroll', componentClass: _gridBodyComp_fakeHorizontalScrollComp__WEBPACK_IMPORTED_MODULE_88__["FakeHorizontalScrollComp"] }
19887 ];
19888 var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });
19889 components = components.concat(moduleAgStackComps);
19890 return components;
19891 };
19892 GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules) {
19893 var rowModelClass = this.getRowModelClass(rowModelType, registeredModules);
19894 if (!rowModelClass) {
19895 return;
19896 }
19897 // beans should only contain SERVICES, it should NEVER contain COMPONENTS
19898 var beans = [
19899 rowModelClass, _rendering_beans__WEBPACK_IMPORTED_MODULE_49__["Beans"], _entities_rowPosition__WEBPACK_IMPORTED_MODULE_72__["RowPositionUtils"], _entities_cellPosition__WEBPACK_IMPORTED_MODULE_73__["CellPositionUtils"], _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_79__["HeaderPositionUtils"],
19900 _pagination_paginationAutoPageSizeService__WEBPACK_IMPORTED_MODULE_40__["PaginationAutoPageSizeService"], _gridApi__WEBPACK_IMPORTED_MODULE_10__["GridApi"], _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_46__["UserComponentRegistry"], _components_framework_agComponentUtils__WEBPACK_IMPORTED_MODULE_47__["AgComponentUtils"],
19901 _components_framework_componentMetadataProvider__WEBPACK_IMPORTED_MODULE_48__["ComponentMetadataProvider"], _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_57__["ResizeObserverService"], _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_45__["UserComponentFactory"],
19902 _rendering_rowContainerHeightService__WEBPACK_IMPORTED_MODULE_53__["RowContainerHeightService"], _rendering_row_autoHeightCalculator__WEBPACK_IMPORTED_MODULE_55__["AutoHeightCalculator"], _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_19__["HorizontalResizeService"],
19903 _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_74__["PinnedRowModel"], _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_24__["DragService"], _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_12__["DisplayedGroupCreator"], _eventService__WEBPACK_IMPORTED_MODULE_8__["EventService"], _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"],
19904 _widgets_popupService__WEBPACK_IMPORTED_MODULE_15__["PopupService"], _selectionController__WEBPACK_IMPORTED_MODULE_1__["SelectionController"], _filter_filterManager__WEBPACK_IMPORTED_MODULE_6__["FilterManager"], _columnController_columnController__WEBPACK_IMPORTED_MODULE_3__["ColumnController"], _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_80__["HeaderNavigationService"],
19905 _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_39__["PaginationProxy"], _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_4__["RowRenderer"], _valueService_expressionService__WEBPACK_IMPORTED_MODULE_13__["ExpressionService"], _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_11__["ColumnFactory"], _templateService__WEBPACK_IMPORTED_MODULE_14__["TemplateService"],
19906 _alignedGridsService__WEBPACK_IMPORTED_MODULE_44__["AlignedGridsService"], _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_52__["NavigationService"], _valueService_valueCache__WEBPACK_IMPORTED_MODULE_42__["ValueCache"], _valueService_valueService__WEBPACK_IMPORTED_MODULE_7__["ValueService"], _logger__WEBPACK_IMPORTED_MODULE_16__["LoggerFactory"],
19907 _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_17__["ColumnUtils"], _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_18__["AutoWidthCalculator"], _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_22__["StandardMenuFactory"], _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_23__["DragAndDropService"], _columnController_columnApi__WEBPACK_IMPORTED_MODULE_2__["ColumnApi"],
19908 _focusController__WEBPACK_IMPORTED_MODULE_26__["FocusController"], _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_27__["MouseEventService"], _environment__WEBPACK_IMPORTED_MODULE_50__["Environment"], _cellNavigationService__WEBPACK_IMPORTED_MODULE_28__["CellNavigationService"], _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_30__["ValueFormatterService"],
19909 _styling_stylingService__WEBPACK_IMPORTED_MODULE_35__["StylingService"], _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_34__["ScrollVisibleService"], _sortController__WEBPACK_IMPORTED_MODULE_25__["SortController"], _rendering_columnHoverService__WEBPACK_IMPORTED_MODULE_36__["ColumnHoverService"], _rendering_columnAnimationService__WEBPACK_IMPORTED_MODULE_37__["ColumnAnimationService"],
19910 _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_54__["SelectableService"], _columnController_autoGroupColService__WEBPACK_IMPORTED_MODULE_38__["AutoGroupColService"], _valueService_changeDetectionService__WEBPACK_IMPORTED_MODULE_43__["ChangeDetectionService"], _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_51__["AnimationFrameService"],
19911 _rendering_row_detailRowCompCache__WEBPACK_IMPORTED_MODULE_71__["DetailRowCompCache"], _undoRedo_undoRedoService__WEBPACK_IMPORTED_MODULE_77__["UndoRedoService"], _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_78__["AgStackComponentsRegistry"], _columnController_columnDefFactory__WEBPACK_IMPORTED_MODULE_83__["ColumnDefFactory"],
19912 _rendering_row_rowCssClassCalculator__WEBPACK_IMPORTED_MODULE_84__["RowCssClassCalculator"], _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_85__["RowNodeBlockLoader"], _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_86__["RowNodeSorter"], _controllersService__WEBPACK_IMPORTED_MODULE_87__["ControllersService"],
19913 _gridBodyComp_pinnedWidthService__WEBPACK_IMPORTED_MODULE_89__["PinnedWidthService"]
19914 ];
19915 var moduleBeans = this.extractModuleEntity(registeredModules, function (module) { return module.beans ? module.beans : []; });
19916 beans.push.apply(beans, moduleBeans);
19917 // check for duplicates, as different modules could include the same beans that
19918 // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community
19919 var beansNoDuplicates = [];
19920 beans.forEach(function (bean) {
19921 if (beansNoDuplicates.indexOf(bean) < 0) {
19922 beansNoDuplicates.push(bean);
19923 }
19924 });
19925 return beansNoDuplicates;
19926 };
19927 GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {
19928 return [].concat.apply([], moduleEntities.map(extractor));
19929 };
19930 GridCoreCreator.prototype.setColumnsAndData = function (context) {
19931 var gridOptionsWrapper = context.getBean('gridOptionsWrapper');
19932 var columnController = context.getBean('columnController');
19933 var columnDefs = gridOptionsWrapper.getColumnDefs();
19934 columnController.setColumnDefs(columnDefs || [], "gridInitializing");
19935 var rowModel = context.getBean('rowModel');
19936 rowModel.start();
19937 };
19938 GridCoreCreator.prototype.dispatchGridReadyEvent = function (context, gridOptions) {
19939 var eventService = context.getBean('eventService');
19940 var readyEvent = {
19941 type: _events__WEBPACK_IMPORTED_MODULE_29__["Events"].EVENT_GRID_READY,
19942 api: gridOptions.api,
19943 columnApi: gridOptions.columnApi
19944 };
19945 eventService.dispatchEvent(readyEvent);
19946 };
19947 GridCoreCreator.prototype.getRowModelClass = function (rowModelType, registeredModules) {
19948 // default to client side
19949 if (!rowModelType) {
19950 rowModelType = _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
19951 }
19952 var rowModelClasses = {};
19953 registeredModules.forEach(function (module) {
19954 Object(_utils_object__WEBPACK_IMPORTED_MODULE_82__["iterateObject"])(module.rowModels, function (key, value) {
19955 rowModelClasses[key] = value;
19956 });
19957 });
19958 var rowModelClass = rowModelClasses[rowModelType];
19959 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_81__["exists"])(rowModelClass)) {
19960 return rowModelClass;
19961 }
19962 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_INFINITE) {
19963 console.error("AG Grid: Row Model \"Infinite\" not found. Please ensure the " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].InfiniteRowModelModule + " is registered.';");
19964 }
19965 console.error('AG Grid: could not find matching row model for rowModelType ' + rowModelType);
19966 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_VIEWPORT) {
19967 console.error("AG Grid: Row Model \"Viewport\" not found. Please ensure the AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].ViewportRowModelModule + " is registered.';");
19968 }
19969 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE) {
19970 console.error("AG Grid: Row Model \"Server Side\" not found. Please ensure the AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].ServerSideRowModelModule + " is registered.';");
19971 }
19972 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
19973 console.error("AG Grid: Row Model \"Client Side\" not found. Please ensure the " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].ClientSideRowModelModule + " is registered.';");
19974 }
19975 };
19976 return GridCoreCreator;
19977}());
19978
19979
19980
19981/***/ }),
19982/* 99 */
19983/***/ (function(module, __webpack_exports__, __webpack_require__) {
19984
19985"use strict";
19986__webpack_require__.r(__webpack_exports__);
19987/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridOptionsWrapper", function() { return GridOptionsWrapper; });
19988/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
19989/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
19990/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35);
19991/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
19992/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36);
19993/* harmony import */ var _components_colDefUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37);
19994/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24);
19995/* harmony import */ var _entities_sideBar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(100);
19996/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
19997/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
19998/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18);
19999/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(29);
20000/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7);
20001/* harmony import */ var _utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(49);
20002/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(15);
20003/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(34);
20004/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26);
20005/**
20006 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
20007 * @version v25.3.0
20008 * @link http://www.ag-grid.com/
20009 * @license MIT
20010 */
20011var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20012 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20013 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20014 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20015 return c > 3 && r && Object.defineProperty(target, key, r), r;
20016};
20017var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
20018 return function (target, key) { decorator(target, key, paramIndex); }
20019};
20020var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
20021 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
20022 for (var r = Array(s), k = 0, i = 0; i < il; i++)
20023 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
20024 r[k] = a[j];
20025 return r;
20026};
20027
20028
20029
20030
20031
20032
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044var DEFAULT_ROW_HEIGHT = 25;
20045var DEFAULT_DETAIL_ROW_HEIGHT = 300;
20046var DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;
20047var DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;
20048var DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;
20049function isTrue(value) {
20050 return value === true || value === 'true';
20051}
20052function toNumber(value) {
20053 if (typeof value == 'number') {
20054 return value;
20055 }
20056 if (typeof value == 'string') {
20057 return parseInt(value, 10);
20058 }
20059}
20060function zeroOrGreater(value, defaultValue) {
20061 if (value >= 0) {
20062 return value;
20063 }
20064 // zero gets returned if number is missing or the wrong type
20065 return defaultValue;
20066}
20067function oneOrGreater(value, defaultValue) {
20068 var valueNumber = parseInt(value, 10);
20069 if (Object(_utils_number__WEBPACK_IMPORTED_MODULE_11__["isNumeric"])(valueNumber) && valueNumber > 0) {
20070 return valueNumber;
20071 }
20072 return defaultValue;
20073}
20074var GridOptionsWrapper = /** @class */ (function () {
20075 function GridOptionsWrapper() {
20076 this.propertyEventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
20077 this.domDataKey = '__AG_' + Math.random().toString();
20078 this.destroyed = false;
20079 }
20080 GridOptionsWrapper_1 = GridOptionsWrapper;
20081 GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {
20082 this.gridOptions.api = gridApi;
20083 this.gridOptions.columnApi = columnApi;
20084 this.checkForDeprecated();
20085 this.checkForViolations();
20086 };
20087 GridOptionsWrapper.prototype.destroy = function () {
20088 // need to remove these, as we don't own the lifecycle of the gridOptions, we need to
20089 // remove the references in case the user keeps the grid options, we want the rest
20090 // of the grid to be picked up by the garbage collector
20091 this.gridOptions.api = null;
20092 this.gridOptions.columnApi = null;
20093 this.removeEventListener(GridOptionsWrapper_1.PROP_DOM_LAYOUT, this.updateLayoutClassesListener);
20094 this.destroyed = true;
20095 };
20096 GridOptionsWrapper.prototype.init = function () {
20097 var _this = this;
20098 if (this.gridOptions.suppressPropertyNamesCheck !== true) {
20099 this.checkGridOptionsProperties();
20100 this.checkColumnDefProperties();
20101 }
20102 // parse side bar options into correct format
20103 if (this.gridOptions.sideBar != null) {
20104 this.gridOptions.sideBar = _entities_sideBar__WEBPACK_IMPORTED_MODULE_7__["SideBarDefParser"].parse(this.gridOptions.sideBar);
20105 }
20106 var async = this.useAsyncEvents();
20107 this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);
20108 if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {
20109 console.warn("AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work");
20110 }
20111 if (this.isGroupSelectsChildren()) {
20112 if (!this.isRowSelectionMulti()) {
20113 console.warn("AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense");
20114 }
20115 if (this.isRowModelServerSide()) {
20116 console.warn('AG Grid: group selects children is NOT support for Server Side Row Model. ' +
20117 'This is because the rows are lazy loaded, so selecting a group is not possible as' +
20118 'the grid has no way of knowing what the children are.');
20119 }
20120 }
20121 if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {
20122 console.warn("AG Grid: groupRemoveSingleChildren and groupHideOpenParents do not work with each other, you need to pick one. And don't ask us how to us these together on our support forum either you will get the same answer!");
20123 }
20124 if (this.isRowModelServerSide()) {
20125 var msg = function (prop) { return "AG Grid: '" + prop + "' is not supported on the Server-Side Row Model"; };
20126 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.groupDefaultExpanded)) {
20127 console.warn(msg('groupDefaultExpanded'));
20128 }
20129 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.groupDefaultExpanded)) {
20130 console.warn(msg('groupIncludeFooter'));
20131 }
20132 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.groupDefaultExpanded)) {
20133 console.warn(msg('groupIncludeTotalFooter'));
20134 }
20135 }
20136 if (this.isEnableRangeSelection()) {
20137 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RangeSelectionModule, 'enableRangeSelection');
20138 }
20139 if (!this.isEnableRangeSelection() && (this.isEnableRangeHandle() || this.isEnableFillHandle())) {
20140 console.warn("AG Grid: 'enableRangeHandle' and 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true");
20141 }
20142 var warnOfDeprecaredIcon = function (name) {
20143 if (_this.gridOptions.icons && _this.gridOptions.icons[name]) {
20144 console.warn("gridOptions.icons." + name + " is no longer supported. For information on how to style checkboxes and radio buttons, see https://www.ag-grid.com/javascript-grid-icons/");
20145 }
20146 };
20147 warnOfDeprecaredIcon('radioButtonOff');
20148 warnOfDeprecaredIcon('radioButtonOn');
20149 warnOfDeprecaredIcon('checkboxChecked');
20150 warnOfDeprecaredIcon('checkboxUnchecked');
20151 warnOfDeprecaredIcon('checkboxIndeterminate');
20152 // sets an initial calculation for the scrollbar width
20153 this.getScrollbarWidth();
20154 };
20155 GridOptionsWrapper.prototype.checkColumnDefProperties = function () {
20156 var _this = this;
20157 if (this.gridOptions.columnDefs == null) {
20158 return;
20159 }
20160 this.gridOptions.columnDefs.forEach(function (colDef) {
20161 var userProperties = Object.getOwnPropertyNames(colDef);
20162 var validProperties = __spreadArrays(_components_colDefUtil__WEBPACK_IMPORTED_MODULE_5__["ColDefUtil"].ALL_PROPERTIES, _components_colDefUtil__WEBPACK_IMPORTED_MODULE_5__["ColDefUtil"].FRAMEWORK_PROPERTIES);
20163 _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');
20164 });
20165 };
20166 GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {
20167 var userProperties = Object.getOwnPropertyNames(this.gridOptions);
20168 var validProperties = __spreadArrays(_propertyKeys__WEBPACK_IMPORTED_MODULE_4__["PropertyKeys"].ALL_PROPERTIES, _propertyKeys__WEBPACK_IMPORTED_MODULE_4__["PropertyKeys"].FRAMEWORK_PROPERTIES, Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["values"])(_eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"]).map(function (event) { return _components_componentUtil__WEBPACK_IMPORTED_MODULE_2__["ComponentUtil"].getCallbackForEvent(event); }));
20169 var validPropertiesAndExceptions = __spreadArrays(validProperties, ['api', 'columnApi']);
20170 this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-grid-properties/');
20171 };
20172 GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {
20173 var invalidProperties = Object(_utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_13__["fuzzyCheckStrings"])(userProperties, validPropertiesAndExceptions, validProperties);
20174 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(invalidProperties, function (key, value) {
20175 console.warn("ag-grid: invalid " + containerName + " property '" + key + "' did you mean any of these: " + value.slice(0, 8).join(", "));
20176 });
20177 if (Object.keys(invalidProperties).length > 0) {
20178 console.warn("ag-grid: to see all the valid " + containerName + " properties please check: " + docsUrl);
20179 }
20180 };
20181 GridOptionsWrapper.prototype.getDomDataKey = function () {
20182 return this.domDataKey;
20183 };
20184 // returns the dom data, or undefined if not found
20185 GridOptionsWrapper.prototype.getDomData = function (element, key) {
20186 var domData = element[this.getDomDataKey()];
20187 return domData ? domData[key] : undefined;
20188 };
20189 GridOptionsWrapper.prototype.setDomData = function (element, key, value) {
20190 var domDataKey = this.getDomDataKey();
20191 var domData = element[domDataKey];
20192 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(domData)) {
20193 domData = {};
20194 element[domDataKey] = domData;
20195 }
20196 domData[key] = value;
20197 };
20198 GridOptionsWrapper.prototype.isRowSelection = function () {
20199 return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';
20200 };
20201 GridOptionsWrapper.prototype.isSuppressRowDeselection = function () {
20202 return isTrue(this.gridOptions.suppressRowDeselection);
20203 };
20204 GridOptionsWrapper.prototype.isRowSelectionMulti = function () {
20205 return this.gridOptions.rowSelection === 'multiple';
20206 };
20207 GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () {
20208 return isTrue(this.gridOptions.rowMultiSelectWithClick);
20209 };
20210 GridOptionsWrapper.prototype.getContext = function () {
20211 return this.gridOptions.context;
20212 };
20213 GridOptionsWrapper.prototype.isPivotMode = function () {
20214 return isTrue(this.gridOptions.pivotMode);
20215 };
20216 GridOptionsWrapper.prototype.isSuppressExpandablePivotGroups = function () {
20217 return isTrue(this.gridOptions.suppressExpandablePivotGroups);
20218 };
20219 GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () {
20220 return this.gridOptions.pivotColumnGroupTotals;
20221 };
20222 GridOptionsWrapper.prototype.getPivotRowTotals = function () {
20223 return this.gridOptions.pivotRowTotals;
20224 };
20225 GridOptionsWrapper.prototype.isRowModelInfinite = function () {
20226 return this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE;
20227 };
20228 GridOptionsWrapper.prototype.isRowModelViewport = function () {
20229 return this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_VIEWPORT;
20230 };
20231 GridOptionsWrapper.prototype.isRowModelServerSide = function () {
20232 return this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE;
20233 };
20234 GridOptionsWrapper.prototype.isRowModelDefault = function () {
20235 return (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.gridOptions.rowModelType) ||
20236 this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE);
20237 };
20238 GridOptionsWrapper.prototype.isFullRowEdit = function () {
20239 return this.gridOptions.editType === 'fullRow';
20240 };
20241 GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () {
20242 return isTrue(this.gridOptions.suppressFocusAfterRefresh);
20243 };
20244 GridOptionsWrapper.prototype.isSuppressBrowserResizeObserver = function () {
20245 return isTrue(this.gridOptions.suppressBrowserResizeObserver);
20246 };
20247 GridOptionsWrapper.prototype.isSuppressMaintainUnsortedOrder = function () {
20248 return isTrue(this.gridOptions.suppressMaintainUnsortedOrder);
20249 };
20250 GridOptionsWrapper.prototype.isSuppressClearOnFillReduction = function () {
20251 return isTrue(this.gridOptions.suppressClearOnFillReduction);
20252 };
20253 GridOptionsWrapper.prototype.isShowToolPanel = function () {
20254 return isTrue(this.gridOptions.sideBar && Array.isArray(this.getSideBar().toolPanels));
20255 };
20256 GridOptionsWrapper.prototype.getSideBar = function () {
20257 return this.gridOptions.sideBar;
20258 };
20259 GridOptionsWrapper.prototype.isSuppressTouch = function () {
20260 return isTrue(this.gridOptions.suppressTouch);
20261 };
20262 GridOptionsWrapper.prototype.isApplyColumnDefOrder = function () {
20263 return isTrue(this.gridOptions.applyColumnDefOrder);
20264 };
20265 GridOptionsWrapper.prototype.isSuppressRowTransform = function () {
20266 return isTrue(this.gridOptions.suppressRowTransform);
20267 };
20268 GridOptionsWrapper.prototype.isSuppressColumnStateEvents = function () {
20269 return isTrue(this.gridOptions.suppressColumnStateEvents);
20270 };
20271 GridOptionsWrapper.prototype.isAllowDragFromColumnsToolPanel = function () {
20272 return isTrue(this.gridOptions.allowDragFromColumnsToolPanel);
20273 };
20274 GridOptionsWrapper.prototype.useAsyncEvents = function () {
20275 return !isTrue(this.gridOptions.suppressAsyncEvents);
20276 };
20277 GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () {
20278 return isTrue(this.gridOptions.enableCellChangeFlash);
20279 };
20280 GridOptionsWrapper.prototype.getCellFlashDelay = function () {
20281 return this.gridOptions.cellFlashDelay || 500;
20282 };
20283 GridOptionsWrapper.prototype.getCellFadeDelay = function () {
20284 return this.gridOptions.cellFadeDelay || 1000;
20285 };
20286 GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {
20287 var result = isTrue(this.gridOptions.groupSelectsChildren);
20288 if (result && this.isTreeData()) {
20289 console.warn('AG Grid: groupSelectsChildren does not work with tree data');
20290 return false;
20291 }
20292 return result;
20293 };
20294 GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () {
20295 return isTrue(this.gridOptions.suppressRowHoverHighlight);
20296 };
20297 GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () {
20298 return isTrue(this.gridOptions.groupSelectsFiltered);
20299 };
20300 GridOptionsWrapper.prototype.isGroupHideOpenParents = function () {
20301 return isTrue(this.gridOptions.groupHideOpenParents);
20302 };
20303 // if we are doing hideOpenParents, then we always have groupMultiAutoColumn, otherwise hideOpenParents would not work
20304 GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () {
20305 return isTrue(this.gridOptions.groupMultiAutoColumn) || isTrue(this.gridOptions.groupHideOpenParents);
20306 };
20307 GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () {
20308 return isTrue(this.gridOptions.groupRemoveSingleChildren);
20309 };
20310 GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () {
20311 return isTrue(this.gridOptions.groupRemoveLowestSingleChildren);
20312 };
20313 GridOptionsWrapper.prototype.isGroupIncludeFooter = function () {
20314 return isTrue(this.gridOptions.groupIncludeFooter);
20315 };
20316 GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () {
20317 return isTrue(this.gridOptions.groupIncludeTotalFooter);
20318 };
20319 GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () {
20320 return isTrue(this.gridOptions.groupSuppressBlankHeader);
20321 };
20322 GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () {
20323 return isTrue(this.gridOptions.suppressRowClickSelection);
20324 };
20325 GridOptionsWrapper.prototype.isSuppressCellSelection = function () {
20326 return isTrue(this.gridOptions.suppressCellSelection);
20327 };
20328 GridOptionsWrapper.prototype.isSuppressMultiSort = function () {
20329 return isTrue(this.gridOptions.suppressMultiSort);
20330 };
20331 GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () {
20332 return this.gridOptions.multiSortKey === 'ctrl';
20333 };
20334 GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () {
20335 return isTrue(this.gridOptions.groupSuppressAutoColumn);
20336 };
20337 GridOptionsWrapper.prototype.isPivotSuppressAutoColumn = function () {
20338 return isTrue(this.gridOptions.pivotSuppressAutoColumn);
20339 };
20340 GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () {
20341 return isTrue(this.gridOptions.suppressDragLeaveHidesColumns);
20342 };
20343 GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () {
20344 return isTrue(this.gridOptions.suppressScrollOnNewData);
20345 };
20346 GridOptionsWrapper.prototype.isRowDragManaged = function () {
20347 return isTrue(this.gridOptions.rowDragManaged);
20348 };
20349 GridOptionsWrapper.prototype.isSuppressRowDrag = function () {
20350 return isTrue(this.gridOptions.suppressRowDrag);
20351 };
20352 GridOptionsWrapper.prototype.isSuppressMoveWhenRowDragging = function () {
20353 return isTrue(this.gridOptions.suppressMoveWhenRowDragging);
20354 };
20355 GridOptionsWrapper.prototype.isEnableMultiRowDragging = function () {
20356 return isTrue(this.gridOptions.enableMultiRowDragging);
20357 };
20358 // returns either 'print', 'autoHeight' or 'normal' (normal is the default)
20359 GridOptionsWrapper.prototype.getDomLayout = function () {
20360 var domLayout = this.gridOptions.domLayout || _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL;
20361 var validLayouts = [
20362 _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_PRINT,
20363 _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_AUTO_HEIGHT,
20364 _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL
20365 ];
20366 if (validLayouts.indexOf(domLayout) === -1) {
20367 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () {
20368 return console.warn("AG Grid: " + domLayout + " is not valid for DOM Layout, valid values are " + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL + ", " + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_AUTO_HEIGHT + " and " + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_PRINT);
20369 }, 'warn about dom layout values');
20370 return _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL;
20371 }
20372 return domLayout;
20373 };
20374 GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () {
20375 return isTrue(this.gridOptions.suppressHorizontalScroll);
20376 };
20377 GridOptionsWrapper.prototype.isSuppressMaxRenderedRowRestriction = function () {
20378 return isTrue(this.gridOptions.suppressMaxRenderedRowRestriction);
20379 };
20380 GridOptionsWrapper.prototype.isExcludeChildrenWhenTreeDataFiltering = function () {
20381 return isTrue(this.gridOptions.excludeChildrenWhenTreeDataFiltering);
20382 };
20383 GridOptionsWrapper.prototype.isAlwaysShowHorizontalScroll = function () {
20384 return isTrue(this.gridOptions.alwaysShowHorizontalScroll);
20385 };
20386 GridOptionsWrapper.prototype.isAlwaysShowVerticalScroll = function () {
20387 return isTrue(this.gridOptions.alwaysShowVerticalScroll);
20388 };
20389 GridOptionsWrapper.prototype.isDebounceVerticalScrollbar = function () {
20390 return isTrue(this.gridOptions.debounceVerticalScrollbar);
20391 };
20392 GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () {
20393 return isTrue(this.gridOptions.suppressLoadingOverlay);
20394 };
20395 GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () {
20396 return isTrue(this.gridOptions.suppressNoRowsOverlay);
20397 };
20398 GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () {
20399 return isTrue(this.gridOptions.suppressFieldDotNotation);
20400 };
20401 GridOptionsWrapper.prototype.getPinnedTopRowData = function () {
20402 return this.gridOptions.pinnedTopRowData;
20403 };
20404 GridOptionsWrapper.prototype.getPinnedBottomRowData = function () {
20405 return this.gridOptions.pinnedBottomRowData;
20406 };
20407 GridOptionsWrapper.prototype.isFunctionsPassive = function () {
20408 return isTrue(this.gridOptions.functionsPassive);
20409 };
20410 GridOptionsWrapper.prototype.isSuppressChangeDetection = function () {
20411 return isTrue(this.gridOptions.suppressChangeDetection);
20412 };
20413 GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () {
20414 return isTrue(this.gridOptions.suppressAnimationFrame);
20415 };
20416 GridOptionsWrapper.prototype.getQuickFilterText = function () {
20417 return this.gridOptions.quickFilterText;
20418 };
20419 GridOptionsWrapper.prototype.isCacheQuickFilter = function () {
20420 return isTrue(this.gridOptions.cacheQuickFilter);
20421 };
20422 GridOptionsWrapper.prototype.isUnSortIcon = function () {
20423 return isTrue(this.gridOptions.unSortIcon);
20424 };
20425 GridOptionsWrapper.prototype.isSuppressMenuHide = function () {
20426 return isTrue(this.gridOptions.suppressMenuHide);
20427 };
20428 GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () {
20429 return isTrue(this.gridOptions.enterMovesDownAfterEdit);
20430 };
20431 GridOptionsWrapper.prototype.isEnterMovesDown = function () {
20432 return isTrue(this.gridOptions.enterMovesDown);
20433 };
20434 GridOptionsWrapper.prototype.isUndoRedoCellEditing = function () {
20435 return isTrue(this.gridOptions.undoRedoCellEditing);
20436 };
20437 GridOptionsWrapper.prototype.getUndoRedoCellEditingLimit = function () {
20438 return this.gridOptions.undoRedoCellEditingLimit;
20439 };
20440 GridOptionsWrapper.prototype.getRowStyle = function () {
20441 return this.gridOptions.rowStyle;
20442 };
20443 GridOptionsWrapper.prototype.getRowClass = function () {
20444 return this.gridOptions.rowClass;
20445 };
20446 GridOptionsWrapper.prototype.getRowStyleFunc = function () {
20447 return this.gridOptions.getRowStyle;
20448 };
20449 GridOptionsWrapper.prototype.getRowClassFunc = function () {
20450 return this.gridOptions.getRowClass;
20451 };
20452 GridOptionsWrapper.prototype.rowClassRules = function () {
20453 return this.gridOptions.rowClassRules;
20454 };
20455 GridOptionsWrapper.prototype.getServerSideStoreType = function () {
20456 return this.gridOptions.serverSideStoreType;
20457 };
20458 GridOptionsWrapper.prototype.getServerSideStoreParamsFunc = function () {
20459 return this.gridOptions.getServerSideStoreParams;
20460 };
20461 GridOptionsWrapper.prototype.getCreateChartContainerFunc = function () {
20462 return this.gridOptions.createChartContainer;
20463 };
20464 GridOptionsWrapper.prototype.getPopupParent = function () {
20465 return this.gridOptions.popupParent;
20466 };
20467 GridOptionsWrapper.prototype.getBlockLoadDebounceMillis = function () {
20468 return this.gridOptions.blockLoadDebounceMillis;
20469 };
20470 GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () {
20471 return this.gridOptions.postProcessPopup;
20472 };
20473 GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () {
20474 return this.gridOptions.paginationNumberFormatter;
20475 };
20476 GridOptionsWrapper.prototype.getChildCountFunc = function () {
20477 return this.gridOptions.getChildCount;
20478 };
20479 GridOptionsWrapper.prototype.getIsApplyServerSideTransactionFunc = function () {
20480 return this.gridOptions.isApplyServerSideTransaction;
20481 };
20482 GridOptionsWrapper.prototype.getDefaultGroupSortComparator = function () {
20483 return this.gridOptions.defaultGroupSortComparator;
20484 };
20485 GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () {
20486 return this.gridOptions.isFullWidthCell;
20487 };
20488 GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () {
20489 return this.gridOptions.fullWidthCellRendererParams;
20490 };
20491 GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () {
20492 return isTrue(this.gridOptions.embedFullWidthRows) || isTrue(this.gridOptions.deprecatedEmbedFullWidthRows);
20493 };
20494 GridOptionsWrapper.prototype.isDetailRowAutoHeight = function () {
20495 return isTrue(this.gridOptions.detailRowAutoHeight);
20496 };
20497 GridOptionsWrapper.prototype.getSuppressKeyboardEventFunc = function () {
20498 return this.gridOptions.suppressKeyboardEvent;
20499 };
20500 GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () {
20501 return this.gridOptions.getBusinessKeyForNode;
20502 };
20503 GridOptionsWrapper.prototype.getApi = function () {
20504 return this.gridOptions.api;
20505 };
20506 GridOptionsWrapper.prototype.getColumnApi = function () {
20507 return this.gridOptions.columnApi;
20508 };
20509 GridOptionsWrapper.prototype.isImmutableData = function () {
20510 return isTrue(this.gridOptions.immutableData);
20511 };
20512 GridOptionsWrapper.prototype.isEnsureDomOrder = function () {
20513 return isTrue(this.gridOptions.ensureDomOrder);
20514 };
20515 GridOptionsWrapper.prototype.isEnableCharts = function () {
20516 if (isTrue(this.gridOptions.enableCharts)) {
20517 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].GridChartsModule, 'enableCharts');
20518 }
20519 return false;
20520 };
20521 GridOptionsWrapper.prototype.getColResizeDefault = function () {
20522 return this.gridOptions.colResizeDefault;
20523 };
20524 GridOptionsWrapper.prototype.isSingleClickEdit = function () {
20525 return isTrue(this.gridOptions.singleClickEdit);
20526 };
20527 GridOptionsWrapper.prototype.isSuppressClickEdit = function () {
20528 return isTrue(this.gridOptions.suppressClickEdit);
20529 };
20530 GridOptionsWrapper.prototype.isStopEditingWhenCellsLoseFocus = function () {
20531 return isTrue(this.gridOptions.stopEditingWhenCellsLoseFocus);
20532 };
20533 GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () {
20534 return this.gridOptions.groupDefaultExpanded;
20535 };
20536 GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () {
20537 return this.gridOptions.maxConcurrentDatasourceRequests;
20538 };
20539 GridOptionsWrapper.prototype.getMaxBlocksInCache = function () {
20540 return this.gridOptions.maxBlocksInCache;
20541 };
20542 GridOptionsWrapper.prototype.getCacheOverflowSize = function () {
20543 return this.gridOptions.cacheOverflowSize;
20544 };
20545 GridOptionsWrapper.prototype.getPaginationPageSize = function () {
20546 return toNumber(this.gridOptions.paginationPageSize);
20547 };
20548 GridOptionsWrapper.prototype.isPaginateChildRows = function () {
20549 var shouldPaginate = this.isGroupRemoveSingleChildren() || this.isGroupRemoveLowestSingleChildren();
20550 if (shouldPaginate) {
20551 return true;
20552 }
20553 return isTrue(this.gridOptions.paginateChildRows);
20554 };
20555 GridOptionsWrapper.prototype.getCacheBlockSize = function () {
20556 return oneOrGreater(this.gridOptions.cacheBlockSize);
20557 };
20558 GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () {
20559 return this.gridOptions.infiniteInitialRowCount;
20560 };
20561 GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () {
20562 return isTrue(this.gridOptions.purgeClosedRowNodes);
20563 };
20564 GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () {
20565 return isTrue(this.gridOptions.suppressPaginationPanel);
20566 };
20567 GridOptionsWrapper.prototype.getRowData = function () {
20568 return this.gridOptions.rowData;
20569 };
20570 // this property is different - we never allow groupUseEntireRow if in pivot mode,
20571 // as otherwise we don't see the pivot values.
20572 GridOptionsWrapper.prototype.isGroupUseEntireRow = function (pivotMode) {
20573 return pivotMode ? false : isTrue(this.gridOptions.groupUseEntireRow);
20574 };
20575 GridOptionsWrapper.prototype.isEnableRtl = function () {
20576 return isTrue(this.gridOptions.enableRtl);
20577 };
20578 GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () {
20579 return this.gridOptions.autoGroupColumnDef;
20580 };
20581 GridOptionsWrapper.prototype.getRowGroupPanelShow = function () {
20582 return this.gridOptions.rowGroupPanelShow;
20583 };
20584 GridOptionsWrapper.prototype.getPivotPanelShow = function () {
20585 return this.gridOptions.pivotPanelShow;
20586 };
20587 GridOptionsWrapper.prototype.isAngularCompileRows = function () {
20588 return isTrue(this.gridOptions.angularCompileRows);
20589 };
20590 GridOptionsWrapper.prototype.isAngularCompileFilters = function () {
20591 return isTrue(this.gridOptions.angularCompileFilters);
20592 };
20593 GridOptionsWrapper.prototype.isDebug = function () {
20594 return isTrue(this.gridOptions.debug);
20595 };
20596 GridOptionsWrapper.prototype.getColumnDefs = function () {
20597 return this.gridOptions.columnDefs;
20598 };
20599 GridOptionsWrapper.prototype.getColumnTypes = function () {
20600 return this.gridOptions.columnTypes;
20601 };
20602 GridOptionsWrapper.prototype.getDatasource = function () {
20603 return this.gridOptions.datasource;
20604 };
20605 GridOptionsWrapper.prototype.getViewportDatasource = function () {
20606 return this.gridOptions.viewportDatasource;
20607 };
20608 GridOptionsWrapper.prototype.getServerSideDatasource = function () {
20609 return this.gridOptions.serverSideDatasource;
20610 };
20611 GridOptionsWrapper.prototype.isAccentedSort = function () {
20612 return isTrue(this.gridOptions.accentedSort);
20613 };
20614 GridOptionsWrapper.prototype.isEnableBrowserTooltips = function () {
20615 return isTrue(this.gridOptions.enableBrowserTooltips);
20616 };
20617 GridOptionsWrapper.prototype.isEnableCellExpressions = function () {
20618 return isTrue(this.gridOptions.enableCellExpressions);
20619 };
20620 GridOptionsWrapper.prototype.isEnableGroupEdit = function () {
20621 return isTrue(this.gridOptions.enableGroupEdit);
20622 };
20623 GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () {
20624 return isTrue(this.gridOptions.suppressMiddleClickScrolls);
20625 };
20626 GridOptionsWrapper.prototype.isPreventDefaultOnContextMenu = function () {
20627 return isTrue(this.gridOptions.preventDefaultOnContextMenu);
20628 };
20629 GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () {
20630 return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel);
20631 };
20632 GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () {
20633 return isTrue(this.gridOptions.suppressColumnVirtualisation);
20634 };
20635 GridOptionsWrapper.prototype.isSuppressContextMenu = function () {
20636 return isTrue(this.gridOptions.suppressContextMenu);
20637 };
20638 GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () {
20639 return isTrue(this.gridOptions.allowContextMenuWithControlKey);
20640 };
20641 GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () {
20642 return isTrue(this.gridOptions.suppressCopyRowsToClipboard);
20643 };
20644 GridOptionsWrapper.prototype.isCopyHeadersToClipboard = function () {
20645 return isTrue(this.gridOptions.copyHeadersToClipboard);
20646 };
20647 GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () {
20648 return isTrue(this.gridOptions.suppressClipboardPaste);
20649 };
20650 GridOptionsWrapper.prototype.isSuppressLastEmptyLineOnPaste = function () {
20651 return isTrue(this.gridOptions.suppressLastEmptyLineOnPaste);
20652 };
20653 GridOptionsWrapper.prototype.isPagination = function () {
20654 return isTrue(this.gridOptions.pagination);
20655 };
20656 GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () {
20657 return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns);
20658 };
20659 GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () {
20660 return this.gridOptions.processDataFromClipboard;
20661 };
20662 GridOptionsWrapper.prototype.getAsyncTransactionWaitMillis = function () {
20663 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].BATCH_WAIT_MILLIS;
20664 };
20665 GridOptionsWrapper.prototype.isSuppressMovableColumns = function () {
20666 return isTrue(this.gridOptions.suppressMovableColumns);
20667 };
20668 GridOptionsWrapper.prototype.isAnimateRows = function () {
20669 // never allow animating if enforcing the row order
20670 if (this.isEnsureDomOrder()) {
20671 return false;
20672 }
20673 return isTrue(this.gridOptions.animateRows);
20674 };
20675 GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () {
20676 return isTrue(this.gridOptions.suppressColumnMoveAnimation);
20677 };
20678 GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () {
20679 return isTrue(this.gridOptions.suppressAggFuncInHeader);
20680 };
20681 GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () {
20682 return isTrue(this.gridOptions.suppressAggAtRootLevel);
20683 };
20684 GridOptionsWrapper.prototype.isSuppressAggFilteredOnly = function () {
20685 return isTrue(this.gridOptions.suppressAggFilteredOnly);
20686 };
20687 GridOptionsWrapper.prototype.isShowOpenedGroup = function () {
20688 return isTrue(this.gridOptions.showOpenedGroup);
20689 };
20690 GridOptionsWrapper.prototype.isEnableRangeSelection = function () {
20691 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RangeSelectionModule) && isTrue(this.gridOptions.enableRangeSelection);
20692 };
20693 GridOptionsWrapper.prototype.isEnableRangeHandle = function () {
20694 return isTrue(this.gridOptions.enableRangeHandle);
20695 };
20696 GridOptionsWrapper.prototype.isEnableFillHandle = function () {
20697 return isTrue(this.gridOptions.enableFillHandle);
20698 };
20699 GridOptionsWrapper.prototype.getFillHandleDirection = function () {
20700 var direction = this.gridOptions.fillHandleDirection;
20701 if (!direction) {
20702 return 'xy';
20703 }
20704 if (direction !== 'x' && direction !== 'y' && direction !== 'xy') {
20705 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () { return console.warn("AG Grid: valid values for fillHandleDirection are 'x', 'y' and 'xy'. Default to 'xy'."); }, 'warn invalid fill direction');
20706 return 'xy';
20707 }
20708 return direction;
20709 };
20710 GridOptionsWrapper.prototype.getFillOperation = function () {
20711 return this.gridOptions.fillOperation;
20712 };
20713 GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () {
20714 return isTrue(this.gridOptions.suppressMultiRangeSelection);
20715 };
20716 GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () {
20717 return isTrue(this.gridOptions.paginationAutoPageSize);
20718 };
20719 GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () {
20720 return isTrue(this.gridOptions.rememberGroupStateWhenNewData);
20721 };
20722 GridOptionsWrapper.prototype.getIcons = function () {
20723 return this.gridOptions.icons;
20724 };
20725 GridOptionsWrapper.prototype.getAggFuncs = function () {
20726 return this.gridOptions.aggFuncs;
20727 };
20728 GridOptionsWrapper.prototype.getSortingOrder = function () {
20729 return this.gridOptions.sortingOrder;
20730 };
20731 GridOptionsWrapper.prototype.getAlignedGrids = function () {
20732 return this.gridOptions.alignedGrids;
20733 };
20734 GridOptionsWrapper.prototype.isMasterDetail = function () {
20735 var masterDetail = isTrue(this.gridOptions.masterDetail);
20736 if (masterDetail) {
20737 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].MasterDetailModule, 'masterDetail');
20738 }
20739 else {
20740 return false;
20741 }
20742 };
20743 GridOptionsWrapper.prototype.isKeepDetailRows = function () {
20744 return isTrue(this.gridOptions.keepDetailRows);
20745 };
20746 GridOptionsWrapper.prototype.getKeepDetailRowsCount = function () {
20747 var keepDetailRowsCount = this.gridOptions.keepDetailRowsCount;
20748 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(keepDetailRowsCount) && keepDetailRowsCount > 0) {
20749 return this.gridOptions.keepDetailRowsCount;
20750 }
20751 return DEFAULT_KEEP_DETAIL_ROW_COUNT;
20752 };
20753 GridOptionsWrapper.prototype.getIsRowMasterFunc = function () {
20754 return this.gridOptions.isRowMaster;
20755 };
20756 GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () {
20757 return this.gridOptions.isRowSelectable;
20758 };
20759 GridOptionsWrapper.prototype.getGroupRowRendererParams = function () {
20760 return this.gridOptions.groupRowRendererParams;
20761 };
20762 GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () {
20763 return this.gridOptions.overlayLoadingTemplate;
20764 };
20765 GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () {
20766 return this.gridOptions.overlayNoRowsTemplate;
20767 };
20768 GridOptionsWrapper.prototype.isSuppressAutoSize = function () {
20769 return isTrue(this.gridOptions.suppressAutoSize);
20770 };
20771 GridOptionsWrapper.prototype.isEnableCellTextSelection = function () {
20772 return isTrue(this.gridOptions.enableCellTextSelection);
20773 };
20774 GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () {
20775 return isTrue(this.gridOptions.suppressParentsInRowNodes);
20776 };
20777 GridOptionsWrapper.prototype.isSuppressClipboardApi = function () {
20778 return isTrue(this.gridOptions.suppressClipboardApi);
20779 };
20780 GridOptionsWrapper.prototype.isFunctionsReadOnly = function () {
20781 return isTrue(this.gridOptions.functionsReadOnly);
20782 };
20783 GridOptionsWrapper.prototype.isFloatingFilter = function () {
20784 return this.gridOptions.floatingFilter;
20785 };
20786 GridOptionsWrapper.prototype.isEnableCellTextSelect = function () {
20787 return isTrue(this.gridOptions.enableCellTextSelection);
20788 };
20789 GridOptionsWrapper.prototype.isEnableOldSetFilterModel = function () {
20790 return isTrue(this.gridOptions.enableOldSetFilterModel);
20791 };
20792 GridOptionsWrapper.prototype.getDefaultColDef = function () {
20793 return this.gridOptions.defaultColDef;
20794 };
20795 GridOptionsWrapper.prototype.getDefaultColGroupDef = function () {
20796 return this.gridOptions.defaultColGroupDef;
20797 };
20798 GridOptionsWrapper.prototype.getDefaultExportParams = function (type) {
20799 if (this.gridOptions.defaultExportParams) {
20800 console.warn("AG Grid: Since v25.2 `defaultExportParams` has been replaced by `default" + Object(_utils_string__WEBPACK_IMPORTED_MODULE_16__["capitalise"])(type) + "ExportParams`'");
20801 if (type === 'csv') {
20802 return this.gridOptions.defaultExportParams;
20803 }
20804 return this.gridOptions.defaultExportParams;
20805 }
20806 if (type === 'csv' && this.gridOptions.defaultCsvExportParams) {
20807 return this.gridOptions.defaultCsvExportParams;
20808 }
20809 if (type === 'excel' && this.gridOptions.defaultExcelExportParams) {
20810 return this.gridOptions.defaultExcelExportParams;
20811 }
20812 };
20813 GridOptionsWrapper.prototype.isSuppressCsvExport = function () {
20814 return isTrue(this.gridOptions.suppressCsvExport);
20815 };
20816 GridOptionsWrapper.prototype.isAllowShowChangeAfterFilter = function () {
20817 return isTrue(this.gridOptions.allowShowChangeAfterFilter);
20818 };
20819 GridOptionsWrapper.prototype.isSuppressExcelExport = function () {
20820 return isTrue(this.gridOptions.suppressExcelExport);
20821 };
20822 GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () {
20823 return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup);
20824 };
20825 GridOptionsWrapper.prototype.getDataPathFunc = function () {
20826 return this.gridOptions.getDataPath;
20827 };
20828 GridOptionsWrapper.prototype.getIsServerSideGroupFunc = function () {
20829 return this.gridOptions.isServerSideGroup;
20830 };
20831 GridOptionsWrapper.prototype.getIsServerSideGroupOpenByDefaultFunc = function () {
20832 return this.gridOptions.isServerSideGroupOpenByDefault;
20833 };
20834 GridOptionsWrapper.prototype.getIsGroupOpenByDefaultFunc = function () {
20835 return this.gridOptions.isGroupOpenByDefault;
20836 };
20837 GridOptionsWrapper.prototype.getServerSideGroupKeyFunc = function () {
20838 return this.gridOptions.getServerSideGroupKey;
20839 };
20840 GridOptionsWrapper.prototype.getGroupRowAggNodesFunc = function () {
20841 return this.gridOptions.groupRowAggNodes;
20842 };
20843 GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () {
20844 return this.gridOptions.getContextMenuItems;
20845 };
20846 GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () {
20847 return this.gridOptions.getMainMenuItems;
20848 };
20849 GridOptionsWrapper.prototype.getRowNodeIdFunc = function () {
20850 return this.gridOptions.getRowNodeId;
20851 };
20852 GridOptionsWrapper.prototype.getNavigateToNextHeaderFunc = function () {
20853 return this.gridOptions.navigateToNextHeader;
20854 };
20855 GridOptionsWrapper.prototype.getTabToNextHeaderFunc = function () {
20856 return this.gridOptions.tabToNextHeader;
20857 };
20858 GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () {
20859 return this.gridOptions.navigateToNextCell;
20860 };
20861 GridOptionsWrapper.prototype.getTabToNextCellFunc = function () {
20862 return this.gridOptions.tabToNextCell;
20863 };
20864 GridOptionsWrapper.prototype.getGridTabIndex = function () {
20865 return (this.gridOptions.tabIndex || 0).toString();
20866 };
20867 GridOptionsWrapper.prototype.isTreeData = function () {
20868 var usingTreeData = isTrue(this.gridOptions.treeData);
20869 if (usingTreeData) {
20870 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RowGroupingModule, 'Tree Data');
20871 }
20872 return false;
20873 };
20874 GridOptionsWrapper.prototype.isValueCache = function () {
20875 return isTrue(this.gridOptions.valueCache);
20876 };
20877 GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () {
20878 return isTrue(this.gridOptions.valueCacheNeverExpires);
20879 };
20880 GridOptionsWrapper.prototype.isDeltaSort = function () {
20881 return isTrue(this.gridOptions.deltaSort);
20882 };
20883 GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () {
20884 return isTrue(this.gridOptions.aggregateOnlyChangedColumns);
20885 };
20886 GridOptionsWrapper.prototype.getProcessSecondaryColDefFunc = function () {
20887 return this.gridOptions.processSecondaryColDef;
20888 };
20889 GridOptionsWrapper.prototype.getProcessSecondaryColGroupDefFunc = function () {
20890 return this.gridOptions.processSecondaryColGroupDef;
20891 };
20892 GridOptionsWrapper.prototype.getSendToClipboardFunc = function () {
20893 return this.gridOptions.sendToClipboard;
20894 };
20895 GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () {
20896 return this.gridOptions.processRowPostCreate;
20897 };
20898 GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () {
20899 return this.gridOptions.processCellForClipboard;
20900 };
20901 GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () {
20902 return this.gridOptions.processHeaderForClipboard;
20903 };
20904 GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () {
20905 return this.gridOptions.processCellFromClipboard;
20906 };
20907 GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () {
20908 return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);
20909 };
20910 GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () {
20911 return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);
20912 };
20913 GridOptionsWrapper.prototype.isServerSideSortingAlwaysResets = function () {
20914 return isTrue(this.gridOptions.serverSideSortingAlwaysResets);
20915 };
20916 GridOptionsWrapper.prototype.isServerSideFilteringAlwaysResets = function () {
20917 return isTrue(this.gridOptions.serverSideFilteringAlwaysResets);
20918 };
20919 GridOptionsWrapper.prototype.getPostSortFunc = function () {
20920 return this.gridOptions.postSort;
20921 };
20922 GridOptionsWrapper.prototype.getChartToolbarItemsFunc = function () {
20923 return this.gridOptions.getChartToolbarItems;
20924 };
20925 GridOptionsWrapper.prototype.getChartThemeOverrides = function () {
20926 return this.gridOptions.chartThemeOverrides;
20927 };
20928 GridOptionsWrapper.prototype.getCustomChartThemes = function () {
20929 return this.gridOptions.customChartThemes;
20930 };
20931 GridOptionsWrapper.prototype.getChartThemes = function () {
20932 // return default themes if user hasn't supplied any
20933 return this.gridOptions.chartThemes || ['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar'];
20934 };
20935 GridOptionsWrapper.prototype.getProcessChartOptionsFunc = function () {
20936 return this.gridOptions.processChartOptions;
20937 };
20938 GridOptionsWrapper.prototype.getClipboardDeliminator = function () {
20939 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.clipboardDeliminator) ? this.gridOptions.clipboardDeliminator : '\t';
20940 };
20941 GridOptionsWrapper.prototype.setProperty = function (key, value, force) {
20942 if (force === void 0) { force = false; }
20943 var gridOptionsNoType = this.gridOptions;
20944 var previousValue = gridOptionsNoType[key];
20945 if (force || previousValue !== value) {
20946 gridOptionsNoType[key] = value;
20947 var event_1 = {
20948 type: key,
20949 currentValue: value,
20950 previousValue: previousValue
20951 };
20952 this.propertyEventService.dispatchEvent(event_1);
20953 }
20954 };
20955 GridOptionsWrapper.prototype.addEventListener = function (key, listener) {
20956 this.propertyEventService.addEventListener(key, listener);
20957 };
20958 GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {
20959 this.propertyEventService.removeEventListener(key, listener);
20960 };
20961 GridOptionsWrapper.prototype.isSkipHeaderOnAutoSize = function () {
20962 return !!this.gridOptions.skipHeaderOnAutoSize;
20963 };
20964 GridOptionsWrapper.prototype.getAutoSizePadding = function () {
20965 var value = this.gridOptions.autoSizePadding;
20966 return value != null && value >= 0 ? value : 20;
20967 };
20968 // properties
20969 GridOptionsWrapper.prototype.getHeaderHeight = function () {
20970 if (typeof this.gridOptions.headerHeight === 'number') {
20971 return this.gridOptions.headerHeight;
20972 }
20973 return this.getFromTheme(25, 'headerHeight');
20974 };
20975 GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {
20976 if (typeof this.gridOptions.floatingFiltersHeight === 'number') {
20977 return this.gridOptions.floatingFiltersHeight;
20978 }
20979 return this.getFromTheme(25, 'headerHeight');
20980 };
20981 GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {
20982 if (typeof this.gridOptions.groupHeaderHeight === 'number') {
20983 return this.gridOptions.groupHeaderHeight;
20984 }
20985 return this.getHeaderHeight();
20986 };
20987 GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {
20988 if (typeof this.gridOptions.pivotHeaderHeight === 'number') {
20989 return this.gridOptions.pivotHeaderHeight;
20990 }
20991 return this.getHeaderHeight();
20992 };
20993 GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {
20994 if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {
20995 return this.gridOptions.pivotGroupHeaderHeight;
20996 }
20997 return this.getGroupHeaderHeight();
20998 };
20999 GridOptionsWrapper.prototype.isExternalFilterPresent = function () {
21000 if (typeof this.gridOptions.isExternalFilterPresent === 'function') {
21001 return this.gridOptions.isExternalFilterPresent();
21002 }
21003 return false;
21004 };
21005 GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {
21006 if (typeof this.gridOptions.doesExternalFilterPass === 'function') {
21007 return this.gridOptions.doesExternalFilterPass(node);
21008 }
21009 return false;
21010 };
21011 GridOptionsWrapper.prototype.getTooltipShowDelay = function () {
21012 var tooltipShowDelay = this.gridOptions.tooltipShowDelay;
21013 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(tooltipShowDelay)) {
21014 if (tooltipShowDelay < 0) {
21015 console.warn('ag-grid: tooltipShowDelay should not be lower than 0');
21016 }
21017 return Math.max(200, tooltipShowDelay);
21018 }
21019 return null;
21020 };
21021 GridOptionsWrapper.prototype.isTooltipMouseTrack = function () {
21022 return isTrue(this.gridOptions.tooltipMouseTrack);
21023 };
21024 GridOptionsWrapper.prototype.isSuppressModelUpdateAfterUpdateTransaction = function () {
21025 return isTrue(this.gridOptions.suppressModelUpdateAfterUpdateTransaction);
21026 };
21027 GridOptionsWrapper.prototype.getDocument = function () {
21028 // if user is providing document, we use the users one,
21029 // otherwise we use the document on the global namespace.
21030 var result = null;
21031 if (this.gridOptions.getDocument && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.getDocument)) {
21032 result = this.gridOptions.getDocument();
21033 }
21034 if (result && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(result)) {
21035 return result;
21036 }
21037 return document;
21038 };
21039 GridOptionsWrapper.prototype.getMinColWidth = function () {
21040 var minColWidth = this.gridOptions.minColWidth;
21041 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(minColWidth) && minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {
21042 return this.gridOptions.minColWidth;
21043 }
21044 var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');
21045 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(measuredMin) ? Math.max(measuredMin, GridOptionsWrapper_1.MIN_COL_WIDTH) : GridOptionsWrapper_1.MIN_COL_WIDTH;
21046 };
21047 GridOptionsWrapper.prototype.getMaxColWidth = function () {
21048 if (this.gridOptions.maxColWidth && this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {
21049 return this.gridOptions.maxColWidth;
21050 }
21051 return null;
21052 };
21053 GridOptionsWrapper.prototype.getColWidth = function () {
21054 if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {
21055 return 200;
21056 }
21057 return this.gridOptions.colWidth;
21058 };
21059 GridOptionsWrapper.prototype.getRowBuffer = function () {
21060 var rowBuffer = this.gridOptions.rowBuffer;
21061 if (typeof rowBuffer === 'number') {
21062 if (rowBuffer < 0) {
21063 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () { return console.warn("AG Grid: rowBuffer should not be negative"); }, 'warn rowBuffer negative');
21064 this.gridOptions.rowBuffer = rowBuffer = 0;
21065 }
21066 }
21067 else {
21068 rowBuffer = _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_BUFFER_SIZE;
21069 }
21070 return rowBuffer;
21071 };
21072 GridOptionsWrapper.prototype.getRowBufferInPixels = function () {
21073 var rowsToBuffer = this.getRowBuffer();
21074 var defaultRowHeight = this.getRowHeightAsNumber();
21075 return rowsToBuffer * defaultRowHeight;
21076 };
21077 // the user might be using some non-standard scrollbar, eg a scrollbar that has zero
21078 // width and overlays (like the Safari scrollbar, but presented in Chrome). so we
21079 // allow the user to provide the scroll width before we work it out.
21080 GridOptionsWrapper.prototype.getScrollbarWidth = function () {
21081 if (this.scrollbarWidth == null) {
21082 var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;
21083 var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : Object(_utils_browser__WEBPACK_IMPORTED_MODULE_15__["getScrollbarWidth"])();
21084 if (scrollbarWidth != null) {
21085 this.scrollbarWidth = scrollbarWidth;
21086 this.eventService.dispatchEvent({
21087 type: _eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED
21088 });
21089 }
21090 }
21091 return this.scrollbarWidth;
21092 };
21093 GridOptionsWrapper.prototype.checkForDeprecated = function () {
21094 // casting to generic object, so typescript compiles even though
21095 // we are looking for attributes that don't exist
21096 var options = this.gridOptions;
21097 if (options.deprecatedEmbedFullWidthRows) {
21098 console.warn("AG Grid: since v21.2, deprecatedEmbedFullWidthRows has been replaced with embedFullWidthRows.");
21099 }
21100 if (options.enableOldSetFilterModel) {
21101 console.warn('AG Grid: since v22.x, enableOldSetFilterModel is deprecated. Please move to the new Set Filter Model as the old one may not be supported in v23 onwards.');
21102 }
21103 if (options.floatingFilter) {
21104 console.warn('AG Grid: since v23.1, floatingFilter on the gridOptions is deprecated. Please use floatingFilter on the colDef instead.');
21105 if (!options.defaultColDef) {
21106 options.defaultColDef = {};
21107 }
21108 if (options.defaultColDef.floatingFilter == null) {
21109 options.defaultColDef.floatingFilter = true;
21110 }
21111 }
21112 if (options.rowDeselection) {
21113 console.warn('AG Grid: since v24.x, rowDeselection is deprecated and the behaviour is true by default. Please use `suppressRowDeselection` to prevent rows from being deselected.');
21114 }
21115 var checkRenamedProperty = function (oldProp, newProp, version) {
21116 if (options[oldProp] != null) {
21117 console.warn("ag-grid: since version " + version + ", '" + oldProp + "' is deprecated / renamed, please use the new property name '" + newProp + "' instead.");
21118 if (options[newProp] == null) {
21119 options[newProp] = options[oldProp];
21120 }
21121 }
21122 };
21123 checkRenamedProperty('batchUpdateWaitMillis', 'asyncTransactionWaitMillis', '23.1.x');
21124 checkRenamedProperty('deltaRowDataMode', 'immutableData', '23.1.x');
21125 if (options.immutableColumns || options.deltaColumnMode) {
21126 console.warn('AG Grid: since v24.0, immutableColumns and deltaColumnMode properties are gone. The grid now works like this as default. To keep column order maintained, set grid property applyColumnDefOrder=true');
21127 }
21128 checkRenamedProperty('suppressSetColumnStateEvents', 'suppressColumnStateEvents', '24.0.x');
21129 if (options.groupRowInnerRenderer || options.groupRowInnerRendererParams || options.groupRowInnerRendererFramework) {
21130 console.warn('AG Grid: since v24.0, grid properties groupRowInnerRenderer, groupRowInnerRendererFramework and groupRowInnerRendererParams are no longer used.');
21131 console.warn(' Instead use the grid properties groupRowRendererParams.innerRenderer, groupRowRendererParams.innerRendererFramework and groupRowRendererParams.innerRendererParams.');
21132 console.warn(' For example instead of this:');
21133 console.warn(' groupRowInnerRenderer: "myRenderer"');
21134 console.warn(' groupRowInnerRendererParams: {x: a}');
21135 console.warn(' Replace with this:');
21136 console.warn(' groupRowRendererParams: {');
21137 console.warn(' innerRenderer: "myRenderer",');
21138 console.warn(' innerRendererParams: {x: a}');
21139 console.warn(' }');
21140 console.warn(' We have copied the properties over for you. However to stop this error message, please change your application code.');
21141 if (!options.groupRowRendererParams) {
21142 options.groupRowRendererParams = {};
21143 }
21144 var params = options.groupRowRendererParams;
21145 if (options.groupRowInnerRenderer) {
21146 params.innerRenderer = options.groupRowInnerRenderer;
21147 }
21148 if (options.groupRowInnerRendererParams) {
21149 params.innerRendererParams = options.groupRowInnerRendererParams;
21150 }
21151 if (options.groupRowInnerRendererFramework) {
21152 params.innerRendererFramework = options.groupRowInnerRendererFramework;
21153 }
21154 }
21155 if (options.rememberGroupStateWhenNewData) {
21156 console.warn('AG Grid: since v24.0, grid property rememberGroupStateWhenNewData is deprecated. This feature was provided before Transaction Updates worked (which keep group state). Now that transaction updates are possible and they keep group state, this feature is no longer needed.');
21157 }
21158 if (options.detailCellRendererParams && options.detailCellRendererParams.autoHeight) {
21159 console.warn('AG Grid: since v24.1, grid property detailCellRendererParams.autoHeight is replaced with grid property detailRowAutoHeight. This allows this feature to work when you provide a custom DetailCellRenderer');
21160 options.detailRowAutoHeight = true;
21161 }
21162 if (options.suppressKeyboardEvent) {
21163 console.warn("AG Grid: since v24.1 suppressKeyboardEvent in the gridOptions has been deprecated and will be removed in\n future versions of AG Grid. If you need this to be set for every column use the defaultColDef property.");
21164 }
21165 if (options.suppressEnterpriseResetOnNewColumns) {
21166 console.warn('AG Grid: since v25, grid property suppressEnterpriseResetOnNewColumns is deprecated. This was a temporary property to allow changing columns in Server Side Row Model without triggering a reload. Now that it is possible to dynamically change columns in the grid, this is no longer needed.');
21167 options.detailRowAutoHeight = true;
21168 }
21169 if (options.suppressColumnStateEvents) {
21170 console.warn('AG Grid: since v25, grid property suppressColumnStateEvents no longer works due to a refactor that we did. It should be possible to achieve similar using event.source, which would be "api" if the event was due to setting column state via the API');
21171 options.detailRowAutoHeight = true;
21172 }
21173 if (options.defaultExportParams) {
21174 console.warn('AG Grid: since v25.2, the grid property `defaultExportParams` has been replaced by `defaultCsvExportParams` and `defaultExcelExportParams`.');
21175 }
21176 if (options.stopEditingWhenGridLosesFocus) {
21177 console.warn('AG Grid: since v25.2.2, the grid property `stopEditingWhenGridLosesFocus`.');
21178 options.stopEditingWhenCellsLoseFocus = true;
21179 }
21180 };
21181 GridOptionsWrapper.prototype.checkForViolations = function () {
21182 if (this.isTreeData()) {
21183 this.treeDataViolations();
21184 }
21185 };
21186 GridOptionsWrapper.prototype.treeDataViolations = function () {
21187 if (this.isRowModelDefault()) {
21188 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getDataPathFunc())) {
21189 console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +
21190 'provide getDataPath function, please provide getDataPath function if using tree data.');
21191 }
21192 }
21193 if (this.isRowModelServerSide()) {
21194 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getIsServerSideGroupFunc())) {
21195 console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +
21196 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');
21197 }
21198 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getServerSideGroupKeyFunc())) {
21199 console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +
21200 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');
21201 }
21202 }
21203 };
21204 GridOptionsWrapper.prototype.getLocaleTextFunc = function () {
21205 if (this.gridOptions.localeTextFunc) {
21206 return this.gridOptions.localeTextFunc;
21207 }
21208 var localeText = this.gridOptions.localeText;
21209 return function (key, defaultValue) {
21210 return localeText && localeText[key] ? localeText[key] : defaultValue;
21211 };
21212 };
21213 // responsible for calling the onXXX functions on gridOptions
21214 GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {
21215 // prevent events from being fired _after_ the grid has been destroyed
21216 if (this.destroyed) {
21217 return;
21218 }
21219 var callbackMethodName = _components_componentUtil__WEBPACK_IMPORTED_MODULE_2__["ComponentUtil"].getCallbackForEvent(eventName);
21220 if (typeof this.gridOptions[callbackMethodName] === 'function') {
21221 this.gridOptions[callbackMethodName](event);
21222 }
21223 };
21224 // we don't allow dynamic row height for virtual paging
21225 GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {
21226 if (!this.gridOptions.rowHeight || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.gridOptions.rowHeight)) {
21227 return this.getDefaultRowHeight();
21228 }
21229 if (this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight)) {
21230 return this.gridOptions.rowHeight;
21231 }
21232 console.warn('AG Grid row height must be a number if not using standard row model');
21233 return this.getDefaultRowHeight();
21234 };
21235 GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode, allowEstimate) {
21236 // check the function first, in case use set both function and
21237 // number, when using virtual pagination then function can be
21238 // used for pinned rows and the number for the body rows.
21239 if (allowEstimate === void 0) { allowEstimate = false; }
21240 if (typeof this.gridOptions.getRowHeight === 'function') {
21241 if (allowEstimate) {
21242 return { height: this.getDefaultRowHeight(), estimated: true };
21243 }
21244 var params = {
21245 node: rowNode,
21246 data: rowNode.data,
21247 api: this.gridOptions.api,
21248 context: this.gridOptions.context
21249 };
21250 var height = this.gridOptions.getRowHeight(params);
21251 if (this.isNumeric(height)) {
21252 if (height === 0) {
21253 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () { return console.warn('AG Grid: The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.'); }, 'invalidRowHeight');
21254 }
21255 return { height: Math.max(1, height), estimated: false };
21256 }
21257 }
21258 if (rowNode.detail && this.isMasterDetail()) {
21259 if (this.isNumeric(this.gridOptions.detailRowHeight)) {
21260 return { height: this.gridOptions.detailRowHeight, estimated: false };
21261 }
21262 return { height: DEFAULT_DETAIL_ROW_HEIGHT, estimated: false };
21263 }
21264 var defaultRowHeight = this.getDefaultRowHeight();
21265 var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;
21266 var minRowHeight = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(rowHeight) ? Math.min(defaultRowHeight, rowHeight) : defaultRowHeight;
21267 if (this.columnController.isAutoRowHeightActive()) {
21268 if (allowEstimate) {
21269 return { height: rowHeight, estimated: true };
21270 }
21271 var autoHeight = this.autoHeightCalculator.getPreferredHeightForRow(rowNode);
21272 // never return less than the default row height - covers when auto height
21273 // cells are blank.
21274 return { height: Math.max(autoHeight, minRowHeight), estimated: false };
21275 }
21276 return { height: rowHeight, estimated: false };
21277 };
21278 GridOptionsWrapper.prototype.isDynamicRowHeight = function () {
21279 return typeof this.gridOptions.getRowHeight === 'function';
21280 };
21281 GridOptionsWrapper.prototype.getListItemHeight = function () {
21282 return this.getFromTheme(20, 'listItemHeight');
21283 };
21284 GridOptionsWrapper.prototype.chartMenuPanelWidth = function () {
21285 return this.environment.chartMenuPanelWidth();
21286 };
21287 GridOptionsWrapper.prototype.isNumeric = function (value) {
21288 return !isNaN(value) && typeof value === 'number' && isFinite(value);
21289 };
21290 GridOptionsWrapper.prototype.getFromTheme = function (defaultValue, sassVariableName) {
21291 var theme = this.environment.getTheme().theme;
21292 if (theme && theme.indexOf('ag-theme') === 0) {
21293 return this.environment.getSassVariable(theme, sassVariableName);
21294 }
21295 return defaultValue;
21296 };
21297 GridOptionsWrapper.prototype.getDefaultRowHeight = function () {
21298 return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');
21299 };
21300 var GridOptionsWrapper_1;
21301 GridOptionsWrapper.MIN_COL_WIDTH = 10;
21302 GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';
21303 GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';
21304 GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';
21305 GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';
21306 GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';
21307 GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';
21308 GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';
21309 GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL = 'navigateToNextCell';
21310 GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL = 'tabToNextCell';
21311 GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER = 'navigateToNextHeader';
21312 GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER = 'tabToNextHeader';
21313 GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT = 'isExternalFilterPresentFunc';
21314 GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS = 'doesExternalFilterPass';
21315 GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';
21316 GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION = 'suppressRowClickSelection';
21317 GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';
21318 GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG = 'suppressMoveWhenRowDragging';
21319 GridOptionsWrapper.PROP_GET_ROW_CLASS = 'getRowClass';
21320 GridOptionsWrapper.PROP_GET_ROW_STYLE = 'getRowStyle';
21321 GridOptionsWrapper.PROP_GET_ROW_HEIGHT = 'getRowHeight';
21322 GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';
21323 GridOptionsWrapper.PROP_DOM_LAYOUT = 'domLayout';
21324 GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION = 'fillHandleDirection';
21325 GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES = 'groupRowAggNodes';
21326 GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE = 'getBusinessKeyForNode';
21327 GridOptionsWrapper.PROP_GET_CHILD_COUNT = 'getChildCount';
21328 GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE = 'processRowPostCreate';
21329 GridOptionsWrapper.PROP_GET_ROW_NODE_ID = 'getRowNodeId';
21330 GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL = 'isFullWidthCell';
21331 GridOptionsWrapper.PROP_IS_ROW_SELECTABLE = 'isRowSelectable';
21332 GridOptionsWrapper.PROP_IS_ROW_MASTER = 'isRowMaster';
21333 GridOptionsWrapper.PROP_POST_SORT = 'postSort';
21334 GridOptionsWrapper.PROP_GET_DOCUMENT = 'getDocument';
21335 GridOptionsWrapper.PROP_POST_PROCESS_POPUP = 'postProcessPopup';
21336 GridOptionsWrapper.PROP_DEFAULT_GROUP_SORT_COMPARATOR = 'defaultGroupSortComparator';
21337 GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER = 'paginationNumberFormatter';
21338 GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS = 'getContextMenuItems';
21339 GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS = 'getMainMenuItems';
21340 GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD = 'processCellForClipboard';
21341 GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD = 'processCellFromClipboard';
21342 GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD = 'sendToClipboard';
21343 GridOptionsWrapper.PROP_PROCESS_TO_SECONDARY_COLDEF = 'processSecondaryColDef';
21344 GridOptionsWrapper.PROP_PROCESS_SECONDARY_COL_GROUP_DEF = 'processSecondaryColGroupDef';
21345 GridOptionsWrapper.PROP_PROCESS_CHART_OPTIONS = 'processChartOptions';
21346 GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS = 'getChartToolbarItems';
21347 GridOptionsWrapper.PROP_GET_SERVER_SIDE_STORE_PARAMS = 'getServerSideStoreParams';
21348 GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT = 'isServerSideGroupOpenByDefault';
21349 GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION = 'isApplyServerSideTransaction';
21350 GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP = 'isServerSideGroup';
21351 GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY = 'getServerSideGroupKey';
21352 __decorate([
21353 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('gridOptions')
21354 ], GridOptionsWrapper.prototype, "gridOptions", void 0);
21355 __decorate([
21356 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnController')
21357 ], GridOptionsWrapper.prototype, "columnController", void 0);
21358 __decorate([
21359 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('eventService')
21360 ], GridOptionsWrapper.prototype, "eventService", void 0);
21361 __decorate([
21362 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('environment')
21363 ], GridOptionsWrapper.prototype, "environment", void 0);
21364 __decorate([
21365 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('autoHeightCalculator')
21366 ], GridOptionsWrapper.prototype, "autoHeightCalculator", void 0);
21367 __decorate([
21368 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('gridApi')), __param(1, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('columnApi'))
21369 ], GridOptionsWrapper.prototype, "agWire", null);
21370 __decorate([
21371 _context_context__WEBPACK_IMPORTED_MODULE_3__["PreDestroy"]
21372 ], GridOptionsWrapper.prototype, "destroy", null);
21373 __decorate([
21374 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
21375 ], GridOptionsWrapper.prototype, "init", null);
21376 GridOptionsWrapper = GridOptionsWrapper_1 = __decorate([
21377 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Bean"])('gridOptionsWrapper')
21378 ], GridOptionsWrapper);
21379 return GridOptionsWrapper;
21380}());
21381
21382
21383
21384/***/ }),
21385/* 100 */
21386/***/ (function(module, __webpack_exports__, __webpack_require__) {
21387
21388"use strict";
21389__webpack_require__.r(__webpack_exports__);
21390/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SideBarDefParser", function() { return SideBarDefParser; });
21391/**
21392 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
21393 * @version v25.3.0
21394 * @link http://www.ag-grid.com/
21395 * @license MIT
21396 */
21397var SideBarDefParser = /** @class */ (function () {
21398 function SideBarDefParser() {
21399 }
21400 SideBarDefParser.parse = function (toParse) {
21401 if (!toParse) {
21402 return null;
21403 }
21404 if (toParse === true) {
21405 return {
21406 toolPanels: [
21407 SideBarDefParser.DEFAULT_COLUMN_COMP,
21408 SideBarDefParser.DEFAULT_FILTER_COMP,
21409 ],
21410 defaultToolPanel: 'columns'
21411 };
21412 }
21413 if (typeof toParse === 'string') {
21414 return SideBarDefParser.parse([toParse]);
21415 }
21416 if (Array.isArray(toParse)) {
21417 var comps_1 = [];
21418 toParse.forEach(function (key) {
21419 var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];
21420 if (!lookupResult) {
21421 console.warn("ag-grid: the key " + key + " is not a valid key for specifying a tool panel, valid keys are: " + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));
21422 return;
21423 }
21424 comps_1.push(lookupResult);
21425 });
21426 if (comps_1.length === 0) {
21427 return null;
21428 }
21429 return {
21430 toolPanels: comps_1,
21431 defaultToolPanel: comps_1[0].id
21432 };
21433 }
21434 var result = {
21435 toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),
21436 defaultToolPanel: toParse.defaultToolPanel,
21437 hiddenByDefault: toParse.hiddenByDefault,
21438 position: toParse.position
21439 };
21440 return result;
21441 };
21442 SideBarDefParser.parseComponents = function (from) {
21443 var result = [];
21444 if (!from) {
21445 return result;
21446 }
21447 from.forEach(function (it) {
21448 var toAdd = null;
21449 if (typeof it === 'string') {
21450 var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];
21451 if (!lookupResult) {
21452 console.warn("ag-grid: the key " + it + " is not a valid key for specifying a tool panel, valid keys are: " + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));
21453 return;
21454 }
21455 toAdd = lookupResult;
21456 }
21457 else {
21458 toAdd = it;
21459 }
21460 result.push(toAdd);
21461 });
21462 return result;
21463 };
21464 SideBarDefParser.DEFAULT_COLUMN_COMP = {
21465 id: 'columns',
21466 labelDefault: 'Columns',
21467 labelKey: 'columns',
21468 iconKey: 'columns',
21469 toolPanel: 'agColumnsToolPanel',
21470 };
21471 SideBarDefParser.DEFAULT_FILTER_COMP = {
21472 id: 'filters',
21473 labelDefault: 'Filters',
21474 labelKey: 'filters',
21475 iconKey: 'filter',
21476 toolPanel: 'agFiltersToolPanel',
21477 };
21478 SideBarDefParser.DEFAULT_BY_KEY = {
21479 columns: SideBarDefParser.DEFAULT_COLUMN_COMP,
21480 filters: SideBarDefParser.DEFAULT_FILTER_COMP
21481 };
21482 return SideBarDefParser;
21483}());
21484
21485
21486
21487/***/ }),
21488/* 101 */
21489/***/ (function(module, __webpack_exports__, __webpack_require__) {
21490
21491"use strict";
21492__webpack_require__.r(__webpack_exports__);
21493/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionController", function() { return SelectionController; });
21494/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
21495/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
21496/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
21497/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
21498/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(102);
21499/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
21500/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
21501/**
21502 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
21503 * @version v25.3.0
21504 * @link http://www.ag-grid.com/
21505 * @license MIT
21506 */
21507var __extends = (undefined && undefined.__extends) || (function () {
21508 var extendStatics = function (d, b) {
21509 extendStatics = Object.setPrototypeOf ||
21510 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21511 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
21512 return extendStatics(d, b);
21513 };
21514 return function (d, b) {
21515 extendStatics(d, b);
21516 function __() { this.constructor = d; }
21517 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21518 };
21519})();
21520var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21521 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21522 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21523 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21524 return c > 3 && r && Object.defineProperty(target, key, r), r;
21525};
21526var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
21527 return function (target, key) { decorator(target, key, paramIndex); }
21528};
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539var SelectionController = /** @class */ (function (_super) {
21540 __extends(SelectionController, _super);
21541 function SelectionController() {
21542 return _super !== null && _super.apply(this, arguments) || this;
21543 }
21544 SelectionController.prototype.setBeans = function (loggerFactory) {
21545 this.logger = loggerFactory.create('SelectionController');
21546 this.reset();
21547 if (this.gridOptionsWrapper.isRowModelDefault()) {
21548 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DATA_CHANGED, this.reset.bind(this));
21549 }
21550 };
21551 SelectionController.prototype.init = function () {
21552 this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
21553 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_SELECTED, this.onRowSelected.bind(this));
21554 };
21555 SelectionController.prototype.setLastSelectedNode = function (rowNode) {
21556 this.lastSelectedNode = rowNode;
21557 };
21558 SelectionController.prototype.getLastSelectedNode = function () {
21559 return this.lastSelectedNode;
21560 };
21561 SelectionController.prototype.getSelectedNodes = function () {
21562 var selectedNodes = [];
21563 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
21564 if (rowNode) {
21565 selectedNodes.push(rowNode);
21566 }
21567 });
21568 return selectedNodes;
21569 };
21570 SelectionController.prototype.getSelectedRows = function () {
21571 var selectedRows = [];
21572 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
21573 if (rowNode && rowNode.data) {
21574 selectedRows.push(rowNode.data);
21575 }
21576 });
21577 return selectedRows;
21578 };
21579 SelectionController.prototype.removeGroupsFromSelection = function () {
21580 var _this = this;
21581 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
21582 if (rowNode && rowNode.group) {
21583 _this.selectedNodes[rowNode.id] = undefined;
21584 }
21585 });
21586 };
21587 // should only be called if groupSelectsChildren=true
21588 SelectionController.prototype.updateGroupsFromChildrenSelections = function (changedPath) {
21589 // we only do this when group selection state depends on selected children
21590 if (!this.gridOptionsWrapper.isGroupSelectsChildren()) {
21591 return;
21592 }
21593 // also only do it if CSRM (code should never allow this anyway)
21594 if (this.rowModel.getType() !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
21595 return;
21596 }
21597 var clientSideRowModel = this.rowModel;
21598 var rootNode = clientSideRowModel.getRootNode();
21599 if (!changedPath) {
21600 changedPath = new _utils_changedPath__WEBPACK_IMPORTED_MODULE_4__["ChangedPath"](true, rootNode);
21601 changedPath.setInactive();
21602 }
21603 changedPath.forEachChangedNodeDepthFirst(function (rowNode) {
21604 if (rowNode !== rootNode) {
21605 rowNode.calculateSelectedFromChildren();
21606 }
21607 });
21608 // clientSideRowModel.getTopLevelNodes()!.forEach((rowNode: RowNode) => {
21609 // rowNode.depthFirstSearch((node) => {
21610 // if (node.group) {
21611 // }
21612 // });
21613 // });
21614 };
21615 SelectionController.prototype.getNodeForIdIfSelected = function (id) {
21616 return this.selectedNodes[id];
21617 };
21618 SelectionController.prototype.clearOtherNodes = function (rowNodeToKeepSelected) {
21619 var _this = this;
21620 var groupsToRefresh = {};
21621 var updatedCount = 0;
21622 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, otherRowNode) {
21623 if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {
21624 var rowNode = _this.selectedNodes[otherRowNode.id];
21625 updatedCount += rowNode.setSelectedParams({
21626 newValue: false,
21627 clearSelection: false,
21628 suppressFinishActions: true
21629 });
21630 if (_this.groupSelectsChildren && otherRowNode.parent) {
21631 groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;
21632 }
21633 }
21634 });
21635 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(groupsToRefresh, function (key, group) {
21636 group.calculateSelectedFromChildren();
21637 });
21638 return updatedCount;
21639 };
21640 SelectionController.prototype.onRowSelected = function (event) {
21641 var rowNode = event.node;
21642 // we do not store the group rows when the groups select children
21643 if (this.groupSelectsChildren && rowNode.group) {
21644 return;
21645 }
21646 if (rowNode.isSelected()) {
21647 this.selectedNodes[rowNode.id] = rowNode;
21648 }
21649 else {
21650 this.selectedNodes[rowNode.id] = undefined;
21651 }
21652 };
21653 SelectionController.prototype.syncInRowNode = function (rowNode, oldNode) {
21654 this.syncInOldRowNode(rowNode, oldNode);
21655 this.syncInNewRowNode(rowNode);
21656 };
21657 // if the id has changed for the node, then this means the rowNode
21658 // is getting used for a different data item, which breaks
21659 // our selectedNodes, as the node now is mapped by the old id
21660 // which is inconsistent. so to keep the old node as selected,
21661 // we swap in the clone (with the old id and old data). this means
21662 // the oldNode is effectively a daemon we keep a reference to,
21663 // so if client calls api.getSelectedNodes(), it gets the daemon
21664 // in the result. when the client un-selects, the reference to the
21665 // daemon is removed. the daemon, because it's an oldNode, is not
21666 // used by the grid for rendering, it's a copy of what the node used
21667 // to be like before the id was changed.
21668 SelectionController.prototype.syncInOldRowNode = function (rowNode, oldNode) {
21669 var oldNodeHasDifferentId = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(oldNode) && (rowNode.id !== oldNode.id);
21670 if (oldNodeHasDifferentId && oldNode) {
21671 var oldNodeSelected = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.selectedNodes[oldNode.id]);
21672 if (oldNodeSelected) {
21673 this.selectedNodes[oldNode.id] = oldNode;
21674 }
21675 }
21676 };
21677 SelectionController.prototype.syncInNewRowNode = function (rowNode) {
21678 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.selectedNodes[rowNode.id])) {
21679 rowNode.setSelectedInitialValue(true);
21680 this.selectedNodes[rowNode.id] = rowNode;
21681 }
21682 else {
21683 rowNode.setSelectedInitialValue(false);
21684 }
21685 };
21686 SelectionController.prototype.reset = function () {
21687 this.logger.log('reset');
21688 this.selectedNodes = {};
21689 this.lastSelectedNode = null;
21690 };
21691 // returns a list of all nodes at 'best cost' - a feature to be used
21692 // with groups / trees. if a group has all it's children selected,
21693 // then the group appears in the result, but not the children.
21694 // Designed for use with 'children' as the group selection type,
21695 // where groups don't actually appear in the selection normally.
21696 SelectionController.prototype.getBestCostNodeSelection = function () {
21697 if (this.rowModel.getType() !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
21698 console.warn('getBestCostNodeSelection is only available when using normal row model');
21699 return;
21700 }
21701 var clientSideRowModel = this.rowModel;
21702 var topLevelNodes = clientSideRowModel.getTopLevelNodes();
21703 if (topLevelNodes === null) {
21704 console.warn('selectAll not available doing rowModel=virtual');
21705 return;
21706 }
21707 var result = [];
21708 // recursive function, to find the selected nodes
21709 function traverse(nodes) {
21710 for (var i = 0, l = nodes.length; i < l; i++) {
21711 var node = nodes[i];
21712 if (node.isSelected()) {
21713 result.push(node);
21714 }
21715 else {
21716 // if not selected, then if it's a group, and the group
21717 // has children, continue to search for selections
21718 if (node.group && node.children) {
21719 traverse(node.children);
21720 }
21721 }
21722 }
21723 }
21724 traverse(topLevelNodes);
21725 return result;
21726 };
21727 SelectionController.prototype.setRowModel = function (rowModel) {
21728 this.rowModel = rowModel;
21729 };
21730 SelectionController.prototype.isEmpty = function () {
21731 var count = 0;
21732 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (nodeId, rowNode) {
21733 if (rowNode) {
21734 count++;
21735 }
21736 });
21737 return count === 0;
21738 };
21739 SelectionController.prototype.deselectAllRowNodes = function (justFiltered) {
21740 if (justFiltered === void 0) { justFiltered = false; }
21741 var callback = function (rowNode) { return rowNode.selectThisNode(false); };
21742 var rowModelClientSide = this.rowModel.getType() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
21743 if (justFiltered) {
21744 if (!rowModelClientSide) {
21745 console.error('AG Grid: selecting just filtered only works with In Memory Row Model');
21746 return;
21747 }
21748 var clientSideRowModel = this.rowModel;
21749 clientSideRowModel.forEachNodeAfterFilter(callback);
21750 }
21751 else {
21752 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (id, rowNode) {
21753 // remember the reference can be to null, as we never 'delete' from the map
21754 if (rowNode) {
21755 callback(rowNode);
21756 }
21757 });
21758 // this clears down the map (whereas above only sets the items in map to 'undefined')
21759 this.reset();
21760 }
21761 // the above does not clean up the parent rows if they are selected
21762 if (rowModelClientSide && this.groupSelectsChildren) {
21763 this.updateGroupsFromChildrenSelections();
21764 }
21765 var event = {
21766 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
21767 api: this.gridApi,
21768 columnApi: this.columnApi
21769 };
21770 this.eventService.dispatchEvent(event);
21771 };
21772 SelectionController.prototype.selectAllRowNodes = function (justFiltered) {
21773 if (justFiltered === void 0) { justFiltered = false; }
21774 if (this.rowModel.getType() !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
21775 throw new Error("selectAll only available with normal row model, ie not " + this.rowModel.getType());
21776 }
21777 var clientSideRowModel = this.rowModel;
21778 var callback = function (rowNode) { return rowNode.selectThisNode(true); };
21779 if (justFiltered) {
21780 clientSideRowModel.forEachNodeAfterFilter(callback);
21781 }
21782 else {
21783 clientSideRowModel.forEachNode(callback);
21784 }
21785 // the above does not clean up the parent rows if they are selected
21786 if (this.rowModel.getType() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE && this.groupSelectsChildren) {
21787 this.updateGroupsFromChildrenSelections();
21788 }
21789 var event = {
21790 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
21791 api: this.gridApi,
21792 columnApi: this.columnApi
21793 };
21794 this.eventService.dispatchEvent(event);
21795 };
21796 /**
21797 * @method
21798 * @deprecated
21799 */
21800 SelectionController.prototype.selectNode = function (rowNode, tryMulti) {
21801 if (rowNode) {
21802 rowNode.setSelectedParams({ newValue: true, clearSelection: !tryMulti });
21803 }
21804 };
21805 /**
21806 * @method
21807 * @deprecated
21808 */
21809 SelectionController.prototype.deselectIndex = function (rowIndex) {
21810 var node = this.rowModel.getRow(rowIndex);
21811 this.deselectNode(node);
21812 };
21813 /**
21814 * @method
21815 * @deprecated
21816 */
21817 SelectionController.prototype.deselectNode = function (rowNode) {
21818 if (rowNode) {
21819 rowNode.setSelectedParams({ newValue: false, clearSelection: false });
21820 }
21821 };
21822 /**
21823 * @method
21824 * @deprecated
21825 */
21826 SelectionController.prototype.selectIndex = function (index, tryMulti) {
21827 var node = this.rowModel.getRow(index);
21828 this.selectNode(node, tryMulti);
21829 };
21830 __decorate([
21831 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
21832 ], SelectionController.prototype, "rowModel", void 0);
21833 __decorate([
21834 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
21835 ], SelectionController.prototype, "columnApi", void 0);
21836 __decorate([
21837 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
21838 ], SelectionController.prototype, "gridApi", void 0);
21839 __decorate([
21840 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
21841 ], SelectionController.prototype, "setBeans", null);
21842 __decorate([
21843 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
21844 ], SelectionController.prototype, "init", null);
21845 SelectionController = __decorate([
21846 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('selectionController')
21847 ], SelectionController);
21848 return SelectionController;
21849}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
21850
21851
21852
21853/***/ }),
21854/* 102 */
21855/***/ (function(module, __webpack_exports__, __webpack_require__) {
21856
21857"use strict";
21858__webpack_require__.r(__webpack_exports__);
21859/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return ChangedPath; });
21860/**
21861 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
21862 * @version v25.3.0
21863 * @link http://www.ag-grid.com/
21864 * @license MIT
21865 */
21866// when doing transactions, or change detection, and grouping is present
21867// in the data, there is no need for the ClientSideRowModel to update each
21868// group after an update, ony parts that were impacted by the change.
21869// this class keeps track of all groups that were impacted by a transaction.
21870// the the different CSRM operations (filter, sort etc) use the forEach method
21871// to visit each group that was changed.
21872var ChangedPath = /** @class */ (function () {
21873 function ChangedPath(keepingColumns, rootNode) {
21874 // whether changed path is active of not. it is active when a) doing
21875 // a transaction update or b) doing change detection. if we are doing
21876 // a CSRM refresh for other reasons (after sort or filter, or user calling
21877 // setRowData() without delta mode) then we are not active. we are also
21878 // marked as not active if secondary columns change in pivot (as this impacts
21879 // aggregations)
21880 this.active = true;
21881 // for each node in the change path, we also store which columns need
21882 // to be re-aggregated.
21883 this.nodeIdsToColumns = {};
21884 // for quick lookup, all items in the change path are mapped by nodeId
21885 this.mapToItems = {};
21886 this.keepingColumns = keepingColumns;
21887 this.pathRoot = {
21888 rowNode: rootNode,
21889 children: null
21890 };
21891 this.mapToItems[rootNode.id] = this.pathRoot;
21892 }
21893 // can be set inactive by:
21894 // a) ClientSideRowModel, if no transactions or
21895 // b) PivotService, if secondary columns changed
21896 ChangedPath.prototype.setInactive = function () {
21897 this.active = false;
21898 };
21899 ChangedPath.prototype.isActive = function () {
21900 return this.active;
21901 };
21902 ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {
21903 if (pathItem.children) {
21904 for (var i = 0; i < pathItem.children.length; i++) {
21905 this.depthFirstSearchChangedPath(pathItem.children[i], callback);
21906 }
21907 }
21908 callback(pathItem.rowNode);
21909 };
21910 ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {
21911 if (rowNode.childrenAfterGroup) {
21912 for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {
21913 var childNode = rowNode.childrenAfterGroup[i];
21914 if (childNode.childrenAfterGroup) {
21915 this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);
21916 }
21917 else if (traverseEverything) {
21918 callback(childNode);
21919 }
21920 }
21921 }
21922 callback(rowNode);
21923 };
21924 // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback
21925 // will be called for child nodes in addition to parent nodes.
21926 ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes) {
21927 if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }
21928 if (this.active) {
21929 // if we are active, then use the change path to callback
21930 // only for updated groups
21931 this.depthFirstSearchChangedPath(this.pathRoot, callback);
21932 }
21933 else {
21934 // we are not active, so callback for everything, walk the entire path
21935 this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);
21936 }
21937 };
21938 ChangedPath.prototype.executeFromRootNode = function (callback) {
21939 callback(this.pathRoot.rowNode);
21940 };
21941 ChangedPath.prototype.createPathItems = function (rowNode) {
21942 var pointer = rowNode;
21943 var newEntryCount = 0;
21944 while (!this.mapToItems[pointer.id]) {
21945 var newEntry = {
21946 rowNode: pointer,
21947 children: null
21948 };
21949 this.mapToItems[pointer.id] = newEntry;
21950 newEntryCount++;
21951 pointer = pointer.parent;
21952 }
21953 return newEntryCount;
21954 };
21955 ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {
21956 var _this = this;
21957 if (!this.keepingColumns || !columns) {
21958 return;
21959 }
21960 var pointer = rowNode;
21961 while (pointer) {
21962 // if columns, add the columns in all the way to parent, merging
21963 // in any other columns that might be there already
21964 if (!this.nodeIdsToColumns[pointer.id]) {
21965 this.nodeIdsToColumns[pointer.id] = {};
21966 }
21967 columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });
21968 pointer = pointer.parent;
21969 }
21970 };
21971 ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {
21972 var pointer = rowNode;
21973 for (var i = 0; i < newEntryCount; i++) {
21974 var thisItem = this.mapToItems[pointer.id];
21975 var parentItem = this.mapToItems[pointer.parent.id];
21976 if (!parentItem.children) {
21977 parentItem.children = [];
21978 }
21979 parentItem.children.push(thisItem);
21980 pointer = pointer.parent;
21981 }
21982 };
21983 // called by
21984 // 1) change detection (provides cols) and
21985 // 2) groupStage if doing transaction update (doesn't provide cols)
21986 ChangedPath.prototype.addParentNode = function (rowNode, columns) {
21987 if (!rowNode || rowNode.isRowPinned()) {
21988 return;
21989 }
21990 // we cannot do both steps below in the same loop as
21991 // the second loop has a dependency on the first loop.
21992 // ie the hierarchy cannot be stitched up yet because
21993 // we don't have it built yet
21994 // create the new PathItem objects.
21995 var newEntryCount = this.createPathItems(rowNode);
21996 // link in the node items
21997 this.linkPathItems(rowNode, newEntryCount);
21998 // update columns
21999 this.populateColumnsMap(rowNode, columns);
22000 };
22001 ChangedPath.prototype.canSkip = function (rowNode) {
22002 return this.active && !this.mapToItems[rowNode.id];
22003 };
22004 ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {
22005 if (!this.keepingColumns) {
22006 return valueColumns;
22007 }
22008 var colsForThisNode = this.nodeIdsToColumns[rowNode.id];
22009 var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });
22010 return result;
22011 };
22012 ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {
22013 if (!this.keepingColumns) {
22014 return null;
22015 }
22016 var colsForThisNode = this.nodeIdsToColumns[rowNode.id];
22017 var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });
22018 return result;
22019 };
22020 return ChangedPath;
22021}());
22022
22023
22024
22025/***/ }),
22026/* 103 */
22027/***/ (function(module, __webpack_exports__, __webpack_require__) {
22028
22029"use strict";
22030__webpack_require__.r(__webpack_exports__);
22031/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return ColumnApi; });
22032/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
22033/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
22034/**
22035 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
22036 * @version v25.3.0
22037 * @link http://www.ag-grid.com/
22038 * @license MIT
22039 */
22040var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
22041 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22042 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22043 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22044 return c > 3 && r && Object.defineProperty(target, key, r), r;
22045};
22046
22047
22048var ColumnApi = /** @class */ (function () {
22049 function ColumnApi() {
22050 }
22051 ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {
22052 // AG-3403 validate that gridWidth is provided because this method has the same name as
22053 // a method on the grid API that takes no arguments, and it's easy to confuse the two
22054 if (typeof gridWidth === "undefined") {
22055 console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');
22056 }
22057 this.columnController.sizeColumnsToFit(gridWidth, 'api');
22058 };
22059 ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnController.setColumnGroupOpened(group, newValue, 'api'); };
22060 ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnController.getColumnGroup(name, instanceId); };
22061 ColumnApi.prototype.getOriginalColumnGroup = function (name) { return this.columnController.getOriginalColumnGroup(name); };
22062 ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnController.getDisplayNameForColumn(column, location) || ''; };
22063 ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnController.getDisplayNameForColumnGroup(columnGroup, location) || ''; };
22064 ColumnApi.prototype.getColumn = function (key) { return this.columnController.getPrimaryColumn(key); };
22065 ColumnApi.prototype.applyColumnState = function (params) { return this.columnController.applyColumnState(params, 'api'); };
22066 ColumnApi.prototype.getColumnState = function () { return this.columnController.getColumnState(); };
22067 ColumnApi.prototype.resetColumnState = function () { this.columnController.resetColumnState('api'); };
22068 ColumnApi.prototype.getColumnGroupState = function () { return this.columnController.getColumnGroupState(); };
22069 ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnController.setColumnGroupState(stateItems, 'api'); };
22070 ColumnApi.prototype.resetColumnGroupState = function () { this.columnController.resetColumnGroupState('api'); };
22071 ColumnApi.prototype.isPinning = function () { return this.columnController.isPinningLeft() || this.columnController.isPinningRight(); };
22072 ColumnApi.prototype.isPinningLeft = function () { return this.columnController.isPinningLeft(); };
22073 ColumnApi.prototype.isPinningRight = function () { return this.columnController.isPinningRight(); };
22074 ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnController.getDisplayedColAfter(col); };
22075 ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnController.getDisplayedColBefore(col); };
22076 ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnController.setColumnVisible(key, visible, 'api'); };
22077 ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnController.setColumnsVisible(keys, visible, 'api'); };
22078 ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnController.setColumnPinned(key, pinned, 'api'); };
22079 ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnController.setColumnsPinned(keys, pinned, 'api'); };
22080 ColumnApi.prototype.getAllColumns = function () { return this.columnController.getAllPrimaryColumns(); };
22081 ColumnApi.prototype.getAllGridColumns = function () { return this.columnController.getAllGridColumns(); };
22082 ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnController.getDisplayedLeftColumns(); };
22083 ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnController.getDisplayedCenterColumns(); };
22084 ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnController.getDisplayedRightColumns(); };
22085 ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnController.getAllDisplayedColumns(); };
22086 ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnController.getViewportColumns(); };
22087 ColumnApi.prototype.moveColumn = function (key, toIndex) {
22088 if (typeof key === 'number') {
22089 // moveColumn used to take indexes, so this is advising user who hasn't moved to new method name
22090 console.warn('AG Grid: you are using moveColumn(fromIndex, toIndex) - moveColumn takes a column key and a destination index, not two indexes, to move with indexes use moveColumnByIndex(from,to) instead');
22091 this.columnController.moveColumnByIndex(key, toIndex, 'api');
22092 }
22093 else {
22094 this.columnController.moveColumn(key, toIndex, 'api');
22095 }
22096 };
22097 ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnController.moveColumnByIndex(fromIndex, toIndex, 'api'); };
22098 ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnController.moveColumns(columnsToMoveKeys, toIndex, 'api'); };
22099 ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnController.moveRowGroupColumn(fromIndex, toIndex); };
22100 ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnController.setColumnAggFunc(key, aggFunc); };
22101 ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished) {
22102 if (finished === void 0) { finished = true; }
22103 this.columnController.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished);
22104 };
22105 ColumnApi.prototype.setColumnWidths = function (columnWidths, finished) {
22106 if (finished === void 0) { finished = true; }
22107 this.columnController.setColumnWidths(columnWidths, false, finished);
22108 };
22109 ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnController.setPivotMode(pivotMode); };
22110 ColumnApi.prototype.isPivotMode = function () { return this.columnController.isPivotMode(); };
22111 ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) { return this.columnController.getSecondaryPivotColumn(pivotKeys, valueColKey); };
22112 ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnController.setValueColumns(colKeys, 'api'); };
22113 ColumnApi.prototype.getValueColumns = function () { return this.columnController.getValueColumns(); };
22114 ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnController.removeValueColumn(colKey, 'api'); };
22115 ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnController.removeValueColumns(colKeys, 'api'); };
22116 ColumnApi.prototype.addValueColumn = function (colKey) { this.columnController.addValueColumn(colKey, 'api'); };
22117 ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnController.addValueColumns(colKeys, 'api'); };
22118 ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnController.setRowGroupColumns(colKeys, 'api'); };
22119 ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnController.removeRowGroupColumn(colKey, 'api'); };
22120 ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnController.removeRowGroupColumns(colKeys, 'api'); };
22121 ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnController.addRowGroupColumn(colKey, 'api'); };
22122 ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnController.addRowGroupColumns(colKeys, 'api'); };
22123 ColumnApi.prototype.getRowGroupColumns = function () { return this.columnController.getRowGroupColumns(); };
22124 ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnController.setPivotColumns(colKeys, 'api'); };
22125 ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnController.removePivotColumn(colKey, 'api'); };
22126 ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnController.removePivotColumns(colKeys, 'api'); };
22127 ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnController.addPivotColumn(colKey, 'api'); };
22128 ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnController.addPivotColumns(colKeys, 'api'); };
22129 ColumnApi.prototype.getPivotColumns = function () { return this.columnController.getPivotColumns(); };
22130 ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeLeft(); };
22131 ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeCentre(); };
22132 ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeRight(); };
22133 ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnController.getAllDisplayedTrees(); };
22134 ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnController.autoSizeColumn(key, skipHeader, 'api'); };
22135 ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) { return this.columnController.autoSizeColumns(keys, skipHeader, 'api'); };
22136 ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnController.autoSizeAllColumns(skipHeader, 'api'); };
22137 ColumnApi.prototype.setSecondaryColumns = function (colDefs) { this.columnController.setSecondaryColumns(colDefs, 'api'); };
22138 ColumnApi.prototype.getSecondaryColumns = function () { return this.columnController.getSecondaryColumns(); };
22139 ColumnApi.prototype.getPrimaryColumns = function () { return this.columnController.getAllPrimaryColumns(); };
22140 ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {
22141 // some users were raising support issues with regards memory leaks. the problem was the customers applications
22142 // were keeping references to the API. trying to educate them all would be difficult, easier to just remove
22143 // all references in teh API so at least the core grid can be garbage collected.
22144 //
22145 // wait about 100ms before clearing down the references, in case user has some cleanup to do,
22146 // and needs to deference the API first
22147 setTimeout(_utils__WEBPACK_IMPORTED_MODULE_1__["_"].removeAllReferences.bind(window, this, 'Column API'), 100);
22148 };
22149 // below goes through deprecated items, prints message to user, then calls the new version of the same method
22150 // public getColumnDefs(): (ColDef | ColGroupDef)[] {
22151 // this.setColumnGroupOpened(group, newValue);
22152 // return null;
22153 // }
22154 ColumnApi.prototype.columnGroupOpened = function (group, newValue) {
22155 console.error('AG Grid: columnGroupOpened no longer exists, use setColumnGroupOpened');
22156 this.setColumnGroupOpened(group, newValue);
22157 };
22158 ColumnApi.prototype.hideColumns = function (colIds, hide) {
22159 console.error('AG Grid: hideColumns is deprecated, use setColumnsVisible');
22160 this.columnController.setColumnsVisible(colIds, !hide, 'api');
22161 };
22162 ColumnApi.prototype.hideColumn = function (colId, hide) {
22163 console.error('AG Grid: hideColumn is deprecated, use setColumnVisible');
22164 this.columnController.setColumnVisible(colId, !hide, 'api');
22165 };
22166 ColumnApi.prototype.setState = function (columnState) {
22167 console.error('AG Grid: setState is deprecated, use setColumnState');
22168 return this.setColumnState(columnState);
22169 };
22170 ColumnApi.prototype.getState = function () {
22171 console.error('AG Grid: getState is deprecated, use getColumnState');
22172 return this.getColumnState();
22173 };
22174 ColumnApi.prototype.resetState = function () {
22175 console.error('AG Grid: resetState is deprecated, use resetColumnState');
22176 this.resetColumnState();
22177 };
22178 ColumnApi.prototype.getAggregationColumns = function () {
22179 console.error('AG Grid: getAggregationColumns is deprecated, use getValueColumns');
22180 return this.columnController.getValueColumns();
22181 };
22182 ColumnApi.prototype.removeAggregationColumn = function (colKey) {
22183 console.error('AG Grid: removeAggregationColumn is deprecated, use removeValueColumn');
22184 this.columnController.removeValueColumn(colKey, 'api');
22185 };
22186 ColumnApi.prototype.removeAggregationColumns = function (colKeys) {
22187 console.error('AG Grid: removeAggregationColumns is deprecated, use removeValueColumns');
22188 this.columnController.removeValueColumns(colKeys, 'api');
22189 };
22190 ColumnApi.prototype.addAggregationColumn = function (colKey) {
22191 console.error('AG Grid: addAggregationColumn is deprecated, use addValueColumn');
22192 this.columnController.addValueColumn(colKey, 'api');
22193 };
22194 ColumnApi.prototype.addAggregationColumns = function (colKeys) {
22195 console.error('AG Grid: addAggregationColumns is deprecated, use addValueColumns');
22196 this.columnController.addValueColumns(colKeys, 'api');
22197 };
22198 ColumnApi.prototype.setColumnAggFunction = function (column, aggFunc) {
22199 console.error('AG Grid: setColumnAggFunction is deprecated, use setColumnAggFunc');
22200 this.columnController.setColumnAggFunc(column, aggFunc, 'api');
22201 };
22202 ColumnApi.prototype.getDisplayNameForCol = function (column) {
22203 console.error('AG Grid: getDisplayNameForCol is deprecated, use getDisplayNameForColumn');
22204 return this.getDisplayNameForColumn(column, null);
22205 };
22206 ColumnApi.prototype.setColumnState = function (columnState) {
22207 return this.columnController.applyColumnState({ state: columnState, applyOrder: true }, 'api');
22208 };
22209 __decorate([
22210 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
22211 ], ColumnApi.prototype, "columnController", void 0);
22212 __decorate([
22213 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
22214 ], ColumnApi.prototype, "cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid", null);
22215 ColumnApi = __decorate([
22216 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnApi')
22217 ], ColumnApi);
22218 return ColumnApi;
22219}());
22220
22221
22222
22223/***/ }),
22224/* 104 */
22225/***/ (function(module, __webpack_exports__, __webpack_require__) {
22226
22227"use strict";
22228__webpack_require__.r(__webpack_exports__);
22229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return RowRenderer; });
22230/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
22231/* harmony import */ var _row_rowController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105);
22232/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);
22233/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
22234/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
22235/* harmony import */ var _cellComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(107);
22236/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
22237/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(20);
22238/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
22239/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
22240/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(29);
22241/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14);
22242/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15);
22243/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60);
22244/**
22245 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
22246 * @version v25.3.0
22247 * @link http://www.ag-grid.com/
22248 * @license MIT
22249 */
22250var __extends = (undefined && undefined.__extends) || (function () {
22251 var extendStatics = function (d, b) {
22252 extendStatics = Object.setPrototypeOf ||
22253 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
22254 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
22255 return extendStatics(d, b);
22256 };
22257 return function (d, b) {
22258 extendStatics(d, b);
22259 function __() { this.constructor = d; }
22260 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
22261 };
22262})();
22263var __assign = (undefined && undefined.__assign) || function () {
22264 __assign = Object.assign || function(t) {
22265 for (var s, i = 1, n = arguments.length; i < n; i++) {
22266 s = arguments[i];
22267 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22268 t[p] = s[p];
22269 }
22270 return t;
22271 };
22272 return __assign.apply(this, arguments);
22273};
22274var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
22275 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22276 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22277 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22278 return c > 3 && r && Object.defineProperty(target, key, r), r;
22279};
22280var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
22281 return function (target, key) { decorator(target, key, paramIndex); }
22282};
22283var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
22284 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
22285 for (var r = Array(s), k = 0, i = 0; i < il; i++)
22286 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
22287 r[k] = a[j];
22288 return r;
22289};
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304var RowRenderer = /** @class */ (function (_super) {
22305 __extends(RowRenderer, _super);
22306 function RowRenderer() {
22307 var _this = _super !== null && _super.apply(this, arguments) || this;
22308 _this.destroyFuncsForColumnListeners = [];
22309 // map of row ids to row objects. keeps track of which elements
22310 // are rendered for which rows in the dom.
22311 _this.rowConsByRowIndex = {};
22312 _this.zombieRowCons = {};
22313 _this.allRowCons = [];
22314 _this.topRowCons = [];
22315 _this.bottomRowCons = [];
22316 // we only allow one refresh at a time, otherwise the internal memory structure here
22317 // will get messed up. this can happen if the user has a cellRenderer, and inside the
22318 // renderer they call an API method that results in another pass of the refresh,
22319 // then it will be trying to draw rows in the middle of a refresh.
22320 _this.refreshInProgress = false;
22321 return _this;
22322 }
22323 RowRenderer.prototype.agWire = function (loggerFactory) {
22324 this.logger = loggerFactory.create("RowRenderer");
22325 };
22326 RowRenderer.prototype.postConstruct = function () {
22327 var _this = this;
22328 this.controllersService.whenReady(function () {
22329 _this.gridBodyCon = _this.controllersService.getGridBodyController();
22330 _this.initialise();
22331 });
22332 };
22333 RowRenderer.prototype.initialise = function () {
22334 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));
22335 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));
22336 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
22337 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL, this.redrawAfterScroll.bind(this));
22338 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));
22339 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));
22340 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
22341 this.registerCellEventListeners();
22342 this.printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_PRINT;
22343 this.embedFullWidthRows = this.printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();
22344 this.redrawAfterModelUpdate();
22345 };
22346 RowRenderer.prototype.getRowCons = function () {
22347 return this.allRowCons;
22348 };
22349 RowRenderer.prototype.updateAllRowCons = function () {
22350 this.allRowCons = __spreadArrays(Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["getAllValuesInObject"])(this.rowConsByRowIndex), Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["getAllValuesInObject"])(this.zombieRowCons));
22351 };
22352 // in a clean design, each cell would register for each of these events. however when scrolling, all the cells
22353 // registering and de-registering for events is a performance bottleneck. so we register here once and inform
22354 // all active cells.
22355 RowRenderer.prototype.registerCellEventListeners = function () {
22356 var _this = this;
22357 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_CELL_FOCUSED, function (event) {
22358 _this.forEachCellComp(function (cellComp) { return cellComp.onCellFocused(event); });
22359 _this.forEachRowComp(function (key, rowComp) {
22360 if (rowComp.isFullWidth()) {
22361 rowComp.onFullWidthRowFocused(event);
22362 }
22363 });
22364 });
22365 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_FLASH_CELLS, function (event) {
22366 _this.forEachCellComp(function (cellComp) { return cellComp.onFlashCells(event); });
22367 });
22368 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_HOVER_CHANGED, function () {
22369 _this.forEachCellComp(function (cellComp) { return cellComp.onColumnHover(); });
22370 });
22371 // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,
22372 // then changing the width of the containers will impact left position. eg the center cols all have their
22373 // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,
22374 // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are
22375 // in different containers so doesn't impact.
22376 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {
22377 if (_this.printLayout) {
22378 _this.forEachCellComp(function (cellComp) { return cellComp.onLeftChanged(); });
22379 }
22380 });
22381 var rangeSelectionEnabled = this.gridOptionsWrapper.isEnableRangeSelection();
22382 if (rangeSelectionEnabled) {
22383 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RANGE_SELECTION_CHANGED, function () {
22384 _this.forEachCellComp(function (cellComp) { return cellComp.onRangeSelectionChanged(); });
22385 });
22386 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_MOVED, function () {
22387 _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });
22388 });
22389 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_PINNED, function () {
22390 _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });
22391 });
22392 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_VISIBLE, function () {
22393 _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });
22394 });
22395 }
22396 // add listeners to the grid columns
22397 this.refreshListenersToColumnsForCellComps();
22398 // if the grid columns change, then refresh the listeners again
22399 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));
22400 this.addDestroyFunc(this.removeGridColumnListeners.bind(this));
22401 };
22402 // executes all functions in destroyFuncsForColumnListeners and then clears the list
22403 RowRenderer.prototype.removeGridColumnListeners = function () {
22404 this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });
22405 this.destroyFuncsForColumnListeners.length = 0;
22406 };
22407 // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.
22408 // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to
22409 // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here
22410 // once instead.
22411 RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {
22412 var _this = this;
22413 this.removeGridColumnListeners();
22414 var cols = this.columnController.getAllGridColumns();
22415 if (!cols) {
22416 return;
22417 }
22418 cols.forEach(function (col) {
22419 var forEachCellWithThisCol = function (callback) {
22420 _this.forEachCellComp(function (cellComp) {
22421 if (cellComp.getColumn() === col) {
22422 callback(cellComp);
22423 }
22424 });
22425 };
22426 var leftChangedListener = function () {
22427 forEachCellWithThisCol(function (cellComp) { return cellComp.onLeftChanged(); });
22428 };
22429 var widthChangedListener = function () {
22430 forEachCellWithThisCol(function (cellComp) { return cellComp.onWidthChanged(); });
22431 };
22432 var firstRightPinnedChangedListener = function () {
22433 forEachCellWithThisCol(function (cellComp) { return cellComp.onFirstRightPinnedChanged(); });
22434 };
22435 var lastLeftPinnedChangedListener = function () {
22436 forEachCellWithThisCol(function (cellComp) { return cellComp.onLastLeftPinnedChanged(); });
22437 };
22438 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LEFT_CHANGED, leftChangedListener);
22439 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
22440 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);
22441 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);
22442 _this.destroyFuncsForColumnListeners.push(function () {
22443 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LEFT_CHANGED, leftChangedListener);
22444 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
22445 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);
22446 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);
22447 });
22448 });
22449 };
22450 RowRenderer.prototype.onDomLayoutChanged = function () {
22451 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_PRINT;
22452 var embedFullWidthRows = printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();
22453 // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid
22454 // out using absolute positioning when doing print layout
22455 var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;
22456 this.printLayout = printLayout;
22457 this.embedFullWidthRows = embedFullWidthRows;
22458 if (destroyRows) {
22459 this.redrawAfterModelUpdate();
22460 }
22461 };
22462 // for row models that have datasources, when we update the datasource, we need to force the rowRenderer
22463 // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.
22464 RowRenderer.prototype.datasourceChanged = function () {
22465 this.firstRenderedRow = 0;
22466 this.lastRenderedRow = -1;
22467 var rowIndexesToRemove = Object.keys(this.rowConsByRowIndex);
22468 this.removeRowComps(rowIndexesToRemove);
22469 };
22470 RowRenderer.prototype.onPageLoaded = function (event) {
22471 var params = {
22472 recycleRows: event.keepRenderedRows,
22473 animate: event.animate,
22474 newData: event.newData,
22475 newPage: event.newPage,
22476 // because this is a model updated event (not pinned rows), we
22477 // can skip updating the pinned rows. this is needed so that if user
22478 // is doing transaction updates, the pinned rows are not getting constantly
22479 // trashed - or editing cells in pinned rows are not refreshed and put into read mode
22480 onlyBody: true
22481 };
22482 this.redrawAfterModelUpdate(params);
22483 };
22484 RowRenderer.prototype.getAllCellsForColumn = function (column) {
22485 var eCells = [];
22486 function callback(key, rowComp) {
22487 var eCell = rowComp.getCellForCol(column);
22488 if (eCell) {
22489 eCells.push(eCell);
22490 }
22491 }
22492 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, callback);
22493 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.bottomRowCons, callback);
22494 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.topRowCons, callback);
22495 return eCells;
22496 };
22497 RowRenderer.prototype.refreshFloatingRowComps = function () {
22498 this.refreshFloatingRows(this.topRowCons, this.pinnedRowModel.getPinnedTopRowData());
22499 this.refreshFloatingRows(this.bottomRowCons, this.pinnedRowModel.getPinnedBottomRowData());
22500 };
22501 RowRenderer.prototype.getTopRowCons = function () {
22502 return this.topRowCons;
22503 };
22504 RowRenderer.prototype.getBottomRowCons = function () {
22505 return this.bottomRowCons;
22506 };
22507 RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {
22508 var _this = this;
22509 rowComps.forEach(function (row) {
22510 row.destroyFirstPass();
22511 row.destroySecondPass();
22512 });
22513 rowComps.length = 0;
22514 if (!rowNodes) {
22515 return;
22516 }
22517 rowNodes.forEach(function (rowNode) {
22518 var rowCon = new _row_rowController__WEBPACK_IMPORTED_MODULE_1__["RowController"](_this.$scope, rowNode, _this.beans, false, false, _this.printLayout);
22519 rowComps.push(rowCon);
22520 });
22521 };
22522 RowRenderer.prototype.onPinnedRowDataChanged = function () {
22523 // recycling rows in order to ensure cell editing is not cancelled
22524 var params = {
22525 recycleRows: true
22526 };
22527 this.redrawAfterModelUpdate(params);
22528 };
22529 // if the row nodes are not rendered, no index is returned
22530 RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {
22531 var result = [];
22532 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(rowNodes)) {
22533 return result;
22534 }
22535 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, renderedRow) {
22536 var rowNode = renderedRow.getRowNode();
22537 if (rowNodes.indexOf(rowNode) >= 0) {
22538 result.push(index);
22539 }
22540 });
22541 return result;
22542 };
22543 RowRenderer.prototype.redrawRows = function (rowNodes) {
22544 // if no row nodes provided, then refresh everything
22545 var partialRefresh = rowNodes != null && rowNodes.length > 0;
22546 if (partialRefresh) {
22547 var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);
22548 // remove the rows
22549 this.removeRowComps(indexesToRemove);
22550 }
22551 // add draw them again
22552 this.redrawAfterModelUpdate({
22553 recycleRows: partialRefresh
22554 });
22555 };
22556 RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {
22557 var focusedCell = params.suppressKeepFocus ? null : this.focusController.getFocusCellToUseAfterRefresh();
22558 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(focusedCell)) {
22559 return null;
22560 }
22561 // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this
22562 // solves is with editing - if the user is editing, eg focus is on a text field, and not on the
22563 // cell itself, then the cell can be registered as having focus, however it's the text field that
22564 // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus
22565 // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,
22566 // the focus is lost from the text field. we do not want this.
22567 var activeElement = document.activeElement;
22568 var domData = this.gridOptionsWrapper.getDomData(activeElement, _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"].DOM_DATA_KEY_CELL_COMP);
22569 var elementIsNotACellDev = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(domData);
22570 return elementIsNotACellDev ? null : focusedCell;
22571 };
22572 // gets called from:
22573 // +) initialisation (in registerGridComp) params = null
22574 // +) onDomLayoutChanged, params = null
22575 // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true
22576 // +) onPinnedRowDataChanged, recycleRows = true
22577 // +) redrawRows (from Grid API), recycleRows = true/false
22578 RowRenderer.prototype.redrawAfterModelUpdate = function (params) {
22579 if (params === void 0) { params = {}; }
22580 this.getLockOnRefresh();
22581 var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);
22582 this.updateContainerHeights();
22583 this.scrollToTopIfNewData(params);
22584 // never recycle rows when print layout, we draw each row again from scratch. this is because print layout
22585 // uses normal dom layout to put cells into dom - it doesn't allow reordering rows.
22586 var recycleRows = !this.printLayout && !!params.recycleRows;
22587 var animate = params.animate && this.gridOptionsWrapper.isAnimateRows();
22588 // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,
22589 // however we can reuse the rows, so we keep them but index by rowNode.id
22590 var rowsToRecycle = recycleRows ? this.recycleRows() : null;
22591 if (!recycleRows) {
22592 this.removeAllRowComps();
22593 }
22594 var isFocusedCellGettingRecycled = function () {
22595 if (focusedCell == null || rowsToRecycle == null) {
22596 return false;
22597 }
22598 var res = false;
22599 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(rowsToRecycle, function (key, rowComp) {
22600 var rowNode = rowComp.getRowNode();
22601 var rowIndexEqual = rowNode.rowIndex == focusedCell.rowIndex;
22602 var pinnedEqual = rowNode.rowPinned == focusedCell.rowPinned;
22603 if (rowIndexEqual && pinnedEqual) {
22604 res = true;
22605 }
22606 });
22607 return res;
22608 };
22609 var focusedCellRecycled = isFocusedCellGettingRecycled();
22610 this.redraw(rowsToRecycle, animate);
22611 if (!params.onlyBody) {
22612 this.refreshFloatingRowComps();
22613 }
22614 this.dispatchDisplayedRowsChanged();
22615 // if we focus a cell that's already focused, then we get an unnecessary 'cellFocused' event fired.
22616 // this was happening when user clicked 'expand' on a rowGroup, then cellFocused was getting fired twice.
22617 if (!focusedCellRecycled) {
22618 this.restoreFocusedCell(focusedCell);
22619 }
22620 this.releaseLockOnRefresh();
22621 };
22622 RowRenderer.prototype.scrollToTopIfNewData = function (params) {
22623 var scrollToTop = params.newData || params.newPage;
22624 var suppressScrollToTop = this.gridOptionsWrapper.isSuppressScrollOnNewData();
22625 if (scrollToTop && !suppressScrollToTop) {
22626 this.gridBodyCon.getScrollFeature().scrollToTop();
22627 }
22628 };
22629 RowRenderer.prototype.updateContainerHeights = function () {
22630 // when doing print layout, we don't explicitly set height on the containers
22631 if (this.printLayout) {
22632 this.rowContainerHeightService.setModelHeight(null);
22633 return;
22634 }
22635 var containerHeight = this.paginationProxy.getCurrentPageHeight();
22636 // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,
22637 // we still want the scroll to be present, otherwise there would be no way to scroll the header
22638 // which might be needed us user wants to access columns
22639 // on the RHS - and if that was where the filter was that cause no rows to be presented, there
22640 // is no way to remove the filter.
22641 if (containerHeight === 0) {
22642 containerHeight = 1;
22643 }
22644 this.rowContainerHeightService.setModelHeight(containerHeight);
22645 };
22646 RowRenderer.prototype.getLockOnRefresh = function () {
22647 if (this.refreshInProgress) {
22648 throw new Error("AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. " +
22649 "Your code probably called a grid API method while the grid was in the render stage. To overcome " +
22650 "this, put the API call into a timeout, e.g. instead of api.refreshView(), " +
22651 "call setTimeout(function() { api.refreshView(); }, 0). To see what part of your code " +
22652 "that caused the refresh check this stacktrace.");
22653 }
22654 this.refreshInProgress = true;
22655 };
22656 RowRenderer.prototype.releaseLockOnRefresh = function () {
22657 this.refreshInProgress = false;
22658 };
22659 // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without
22660 // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits
22661 // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the
22662 // edited cell).
22663 RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {
22664 if (cellPosition) {
22665 this.focusController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);
22666 }
22667 };
22668 RowRenderer.prototype.stopEditing = function (cancel) {
22669 if (cancel === void 0) { cancel = false; }
22670 this.forEachRowComp(function (key, rowComp) {
22671 rowComp.stopEditing(cancel);
22672 });
22673 };
22674 RowRenderer.prototype.onNewColumnsLoaded = function () {
22675 // we don't want each cellComp to register for events, as would increase rendering time.
22676 // so for newColumnsLoaded, we register once here (in rowRenderer) and then inform
22677 // each cell if / when event was fired.
22678 this.forEachCellComp(function (cellComp) { return cellComp.onNewColumnsLoaded(); });
22679 };
22680 RowRenderer.prototype.forEachCellComp = function (callback) {
22681 this.forEachRowComp(function (key, rowComp) { return rowComp.forEachCellComp(callback); });
22682 };
22683 RowRenderer.prototype.forEachRowComp = function (callback) {
22684 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, callback);
22685 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.topRowCons, callback);
22686 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.bottomRowCons, callback);
22687 };
22688 RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {
22689 var rowComp = this.rowConsByRowIndex[rowIndex];
22690 if (rowComp) {
22691 rowComp.addEventListener(eventName, callback);
22692 }
22693 };
22694 RowRenderer.prototype.flashCells = function (params) {
22695 if (params === void 0) { params = {}; }
22696 var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;
22697 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) { return cellComp.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });
22698 };
22699 RowRenderer.prototype.refreshCells = function (params) {
22700 if (params === void 0) { params = {}; }
22701 var refreshCellParams = {
22702 forceRefresh: params.force,
22703 newData: false,
22704 suppressFlash: params.suppressFlash
22705 };
22706 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {
22707 if (cellComp.refreshShouldDestroy()) {
22708 var rowComp = cellComp.getRenderedRow();
22709 if (rowComp) {
22710 rowComp.refreshCell(cellComp);
22711 }
22712 }
22713 else {
22714 cellComp.refreshCell(refreshCellParams);
22715 }
22716 });
22717 };
22718 RowRenderer.prototype.getCellRendererInstances = function (params) {
22719 var res = [];
22720 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {
22721 var cellRenderer = cellComp.getCellRenderer();
22722 if (cellRenderer) {
22723 res.push(cellRenderer);
22724 }
22725 });
22726 return res;
22727 };
22728 RowRenderer.prototype.getCellEditorInstances = function (params) {
22729 var res = [];
22730 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {
22731 var cellEditor = cellComp.getCellEditor();
22732 if (cellEditor) {
22733 res.push(cellEditor);
22734 }
22735 });
22736 return res;
22737 };
22738 RowRenderer.prototype.getEditingCells = function () {
22739 var res = [];
22740 this.forEachCellComp(function (cellComp) {
22741 if (cellComp.isEditing()) {
22742 var cellPosition = cellComp.getCellPosition();
22743 res.push(cellPosition);
22744 }
22745 });
22746 return res;
22747 };
22748 // calls the callback for each cellComp that match the provided rowNodes and columns. eg if one row node
22749 // and two columns provided, that identifies 4 cells, so callback gets called 4 times, once for each cell.
22750 RowRenderer.prototype.forEachCellCompFiltered = function (rowNodes, columns, callback) {
22751 var _this = this;
22752 var rowIdsMap;
22753 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowNodes)) {
22754 rowIdsMap = {
22755 top: {},
22756 bottom: {},
22757 normal: {}
22758 };
22759 rowNodes.forEach(function (rowNode) {
22760 var id = rowNode.id;
22761 if (rowNode.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP) {
22762 rowIdsMap.top[id] = true;
22763 }
22764 else if (rowNode.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM) {
22765 rowIdsMap.bottom[id] = true;
22766 }
22767 else {
22768 rowIdsMap.normal[id] = true;
22769 }
22770 });
22771 }
22772 var colIdsMap;
22773 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(columns)) {
22774 colIdsMap = {};
22775 columns.forEach(function (colKey) {
22776 var column = _this.columnController.getGridColumn(colKey);
22777 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(column)) {
22778 colIdsMap[column.getId()] = true;
22779 }
22780 });
22781 }
22782 var processRow = function (rowComp) {
22783 var rowNode = rowComp.getRowNode();
22784 var id = rowNode.id;
22785 var floating = rowNode.rowPinned;
22786 // skip this row if it is missing from the provided list
22787 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowIdsMap)) {
22788 if (floating === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM) {
22789 if (!rowIdsMap.bottom[id]) {
22790 return;
22791 }
22792 }
22793 else if (floating === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP) {
22794 if (!rowIdsMap.top[id]) {
22795 return;
22796 }
22797 }
22798 else {
22799 if (!rowIdsMap.normal[id]) {
22800 return;
22801 }
22802 }
22803 }
22804 rowComp.forEachCellComp(function (cellComp) {
22805 var colId = cellComp.getColumn().getId();
22806 var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];
22807 if (excludeColFromRefresh) {
22808 return;
22809 }
22810 if (callback) {
22811 callback(cellComp);
22812 }
22813 });
22814 };
22815 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, rowComp) {
22816 processRow(rowComp);
22817 });
22818 if (this.topRowCons) {
22819 this.topRowCons.forEach(processRow);
22820 }
22821 if (this.bottomRowCons) {
22822 this.bottomRowCons.forEach(processRow);
22823 }
22824 };
22825 RowRenderer.prototype.destroy = function () {
22826 this.removeAllRowComps();
22827 _super.prototype.destroy.call(this);
22828 };
22829 RowRenderer.prototype.removeAllRowComps = function () {
22830 var rowIndexesToRemove = Object.keys(this.rowConsByRowIndex);
22831 this.removeRowComps(rowIndexesToRemove);
22832 };
22833 RowRenderer.prototype.recycleRows = function () {
22834 // remove all stub nodes, they can't be reused, as no rowNode id
22835 var stubNodeIndexes = [];
22836 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, rowComp) {
22837 var stubNode = rowComp.getRowNode().id == null;
22838 if (stubNode) {
22839 stubNodeIndexes.push(index);
22840 }
22841 });
22842 this.removeRowComps(stubNodeIndexes);
22843 // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex
22844 var nodesByIdMap = {};
22845 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, rowComp) {
22846 var rowNode = rowComp.getRowNode();
22847 nodesByIdMap[rowNode.id] = rowComp;
22848 });
22849 this.rowConsByRowIndex = {};
22850 return nodesByIdMap;
22851 };
22852 // takes array of row indexes
22853 RowRenderer.prototype.removeRowComps = function (rowsToRemove) {
22854 var _this = this;
22855 // if no fromIndex then set to -1, which will refresh everything
22856 // let realFromIndex = -1;
22857 rowsToRemove.forEach(function (indexToRemove) {
22858 var rowComp = _this.rowConsByRowIndex[indexToRemove];
22859 if (rowComp) {
22860 rowComp.destroyFirstPass();
22861 rowComp.destroySecondPass();
22862 }
22863 delete _this.rowConsByRowIndex[indexToRemove];
22864 });
22865 };
22866 // gets called when rows don't change, but viewport does, so after:
22867 // 1) height of grid body changes, ie number of displayed rows has changed
22868 // 2) grid scrolled to new position
22869 // 3) ensure index visible (which is a scroll)
22870 RowRenderer.prototype.redrawAfterScroll = function () {
22871 this.getLockOnRefresh();
22872 this.redraw(null, false, true);
22873 this.releaseLockOnRefresh();
22874 this.dispatchDisplayedRowsChanged();
22875 };
22876 RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {
22877 // for speedy lookup, dump into map
22878 var indexesToDrawMap = {};
22879 indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });
22880 var existingIndexes = Object.keys(this.rowConsByRowIndex);
22881 var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });
22882 this.removeRowComps(indexesNotToDraw);
22883 };
22884 RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {
22885 var _this = this;
22886 // all in all indexes in the viewport
22887 var indexesToDraw = Object(_utils_number__WEBPACK_IMPORTED_MODULE_10__["createArrayOfNumbers"])(this.firstRenderedRow, this.lastRenderedRow);
22888 var checkRowToDraw = function (indexStr, rowComp) {
22889 var index = rowComp.getRowNode().rowIndex;
22890 if (index == null) {
22891 return;
22892 }
22893 if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {
22894 if (_this.doNotUnVirtualiseRow(rowComp)) {
22895 indexesToDraw.push(index);
22896 }
22897 }
22898 };
22899 // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex
22900 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, checkRowToDraw);
22901 // if we are redrawing due to model update, then old rows are in rowsToRecycle
22902 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(rowsToRecycle, checkRowToDraw);
22903 indexesToDraw.sort(function (a, b) { return a - b; });
22904 return indexesToDraw;
22905 };
22906 RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {
22907 var _this = this;
22908 if (animate === void 0) { animate = false; }
22909 if (afterScroll === void 0) { afterScroll = false; }
22910 this.rowContainerHeightService.updateOffset();
22911 this.workOutFirstAndLastRowsToRender();
22912 // the row can already exist and be in the following:
22913 // rowsToRecycle -> if model change, then the index may be different, however row may
22914 // exist here from previous time (mapped by id).
22915 // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport
22916 // this is all the indexes we want, including those that already exist, so this method
22917 // will end up going through each index and drawing only if the row doesn't already exist
22918 var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);
22919 this.removeRowCompsNotToDraw(indexesToDraw);
22920 // never animate when doing print layout - as we want to get things ready to print as quickly as possible,
22921 // otherwise we risk the printer printing a row that's half faded (half way through fading in)
22922 if (this.printLayout) {
22923 animate = false;
22924 }
22925 // add in new rows
22926 var rowComps = [];
22927 indexesToDraw.forEach(function (rowIndex) {
22928 var rowComp = _this.createOrUpdateRowCon(rowIndex, rowsToRecycle, animate, afterScroll);
22929 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowComp)) {
22930 rowComps.push(rowComp);
22931 }
22932 });
22933 if (rowsToRecycle) {
22934 var useAnimationFrame = afterScroll && !this.gridOptionsWrapper.isSuppressAnimationFrame() && !this.printLayout;
22935 if (useAnimationFrame) {
22936 this.beans.taskQueue.addDestroyTask(function () {
22937 _this.destroyRowCons(rowsToRecycle, animate);
22938 _this.updateAllRowCons();
22939 _this.dispatchDisplayedRowsChanged();
22940 });
22941 }
22942 else {
22943 this.destroyRowCons(rowsToRecycle, animate);
22944 }
22945 }
22946 this.updateAllRowCons();
22947 this.checkAngularCompile();
22948 this.gridBodyCon.updateRowCount();
22949 };
22950 RowRenderer.prototype.dispatchDisplayedRowsChanged = function () {
22951 var event = { type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_ROWS_CHANGED };
22952 this.eventService.dispatchEvent(event);
22953 };
22954 RowRenderer.prototype.onDisplayedColumnsChanged = function () {
22955 var pinningLeft = this.columnController.isPinningLeft();
22956 var pinningRight = this.columnController.isPinningRight();
22957 var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;
22958 if (atLeastOneChanged) {
22959 this.pinningLeft = pinningLeft;
22960 this.pinningRight = pinningRight;
22961 if (this.embedFullWidthRows) {
22962 this.redrawFullWidthEmbeddedRows();
22963 }
22964 }
22965 };
22966 // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,
22967 // then it should go into the pinned left area if pinning left, or the center area if not pinning.
22968 RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {
22969 // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when
22970 // embedded, as what appears in each section depends on whether we are pinned or not
22971 var rowsToRemove = [];
22972 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (id, rowComp) {
22973 if (rowComp.isFullWidth()) {
22974 var rowIndex = rowComp.getRowNode().rowIndex;
22975 rowsToRemove.push(rowIndex.toString());
22976 }
22977 });
22978 this.refreshFloatingRowComps();
22979 this.removeRowComps(rowsToRemove);
22980 this.redrawAfterScroll();
22981 };
22982 RowRenderer.prototype.refreshFullWidthRows = function (rowNodesToRefresh) {
22983 var rowsToRemove = [];
22984 var selectivelyRefreshing = !!rowNodesToRefresh;
22985 var idsToRefresh = selectivelyRefreshing ? {} : undefined;
22986 if (selectivelyRefreshing && idsToRefresh) {
22987 rowNodesToRefresh.forEach(function (r) { return idsToRefresh[r.id] = true; });
22988 }
22989 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (id, rowComp) {
22990 if (!rowComp.isFullWidth()) {
22991 return;
22992 }
22993 var rowNode = rowComp.getRowNode();
22994 if (selectivelyRefreshing && idsToRefresh) {
22995 // we refresh if a) this node is present or b) this parents nodes is present. checking parent
22996 // node is important for master/detail, as we want detail to refresh on changes to parent node.
22997 // it's also possible, if user is provider their own fullWidth, that details panels contain
22998 // some info on the parent, eg if in tree data and child row shows some data from parent row also.
22999 var parentId = (rowNode.level > 0 && rowNode.parent) ? rowNode.parent.id : undefined;
23000 var skipThisNode = !idsToRefresh[rowNode.id] && !idsToRefresh[parentId];
23001 if (skipThisNode) {
23002 return;
23003 }
23004 }
23005 var fullWidthRowsRefreshed = rowComp.refreshFullWidth();
23006 if (!fullWidthRowsRefreshed) {
23007 var rowIndex = rowComp.getRowNode().rowIndex;
23008 rowsToRemove.push(rowIndex.toString());
23009 }
23010 });
23011 this.removeRowComps(rowsToRemove);
23012 this.redrawAfterScroll();
23013 };
23014 RowRenderer.prototype.createOrUpdateRowCon = function (rowIndex, rowsToRecycle, animate, afterScroll) {
23015 var rowNode = null;
23016 var rowCon = this.rowConsByRowIndex[rowIndex];
23017 // if no row comp, see if we can get it from the previous rowComps
23018 if (!rowCon) {
23019 rowNode = this.paginationProxy.getRow(rowIndex);
23020 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowNode) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {
23021 rowCon = rowsToRecycle[rowNode.id];
23022 rowsToRecycle[rowNode.id] = null;
23023 }
23024 }
23025 var creatingNewRowCon = !rowCon;
23026 if (creatingNewRowCon) {
23027 // create a new one
23028 if (!rowNode) {
23029 rowNode = this.paginationProxy.getRow(rowIndex);
23030 }
23031 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowNode)) {
23032 rowCon = this.createRowCon(rowNode, animate, afterScroll);
23033 }
23034 else {
23035 // this should never happen - if somehow we are trying to create
23036 // a row for a rowNode that does not exist.
23037 return;
23038 }
23039 }
23040 if (rowNode) {
23041 // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures
23042 // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.
23043 rowNode.alreadyRendered = true;
23044 }
23045 this.rowConsByRowIndex[rowIndex] = rowCon;
23046 return rowCon;
23047 };
23048 RowRenderer.prototype.destroyRowCons = function (rowConsMap, animate) {
23049 var _this = this;
23050 var executeInAWhileFuncs = [];
23051 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(rowConsMap, function (nodeId, rowCon) {
23052 // if row was used, then it's null
23053 if (!rowCon) {
23054 return;
23055 }
23056 rowCon.destroyFirstPass();
23057 if (animate) {
23058 _this.zombieRowCons[rowCon.getInstanceId()] = rowCon;
23059 executeInAWhileFuncs.push(function () {
23060 rowCon.destroySecondPass();
23061 delete _this.zombieRowCons[rowCon.getInstanceId()];
23062 });
23063 }
23064 else {
23065 rowCon.destroySecondPass();
23066 }
23067 });
23068 if (animate) {
23069 // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get
23070 // executed, as we added it to the end of the list.
23071 executeInAWhileFuncs.push(function () {
23072 _this.updateAllRowCons();
23073 _this.dispatchDisplayedRowsChanged();
23074 });
23075 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["executeInAWhile"])(executeInAWhileFuncs);
23076 }
23077 };
23078 RowRenderer.prototype.checkAngularCompile = function () {
23079 var _this = this;
23080 // if we are doing angular compiling, then do digest the scope here
23081 if (this.gridOptionsWrapper.isAngularCompileRows()) {
23082 // we do it in a timeout, in case we are already in an apply
23083 window.setTimeout(function () {
23084 _this.$scope.$apply();
23085 }, 0);
23086 }
23087 };
23088 RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {
23089 var _this = this;
23090 var newFirst;
23091 var newLast;
23092 if (!this.paginationProxy.isRowsToRender()) {
23093 newFirst = 0;
23094 newLast = -1; // setting to -1 means nothing in range
23095 }
23096 else if (this.printLayout) {
23097 newFirst = this.paginationProxy.getPageFirstRow();
23098 newLast = this.paginationProxy.getPageLastRow();
23099 }
23100 else {
23101 var bufferPixels = this.gridOptionsWrapper.getRowBufferInPixels();
23102 var gridBodyCon = this.controllersService.getGridBodyController();
23103 var rowHeightsChanged = false;
23104 var firstPixel = void 0;
23105 var lastPixel = void 0;
23106 do {
23107 var paginationOffset = this.paginationProxy.getPixelOffset();
23108 var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;
23109 var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();
23110 var bodyVRange = gridBodyCon.getScrollFeature().getVScrollPosition();
23111 var bodyTopPixel = bodyVRange.top;
23112 var bodyBottomPixel = bodyVRange.bottom;
23113 firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;
23114 lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;
23115 // if the rows we are about to display get their heights changed, then that upsets the calcs from above.
23116 rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);
23117 } while (rowHeightsChanged);
23118 var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);
23119 var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);
23120 var pageFirstRow = this.paginationProxy.getPageFirstRow();
23121 var pageLastRow = this.paginationProxy.getPageLastRow();
23122 // adjust, in case buffer extended actual size
23123 if (firstRowIndex < pageFirstRow) {
23124 firstRowIndex = pageFirstRow;
23125 }
23126 if (lastRowIndex > pageLastRow) {
23127 lastRowIndex = pageLastRow;
23128 }
23129 newFirst = firstRowIndex;
23130 newLast = lastRowIndex;
23131 }
23132 // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up
23133 // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of
23134 // killing the browser, we limit the number of rows. just in case some use case we didn't think
23135 // of, we also have a property to not do this operation.
23136 var rowLayoutNormal = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_NORMAL;
23137 var suppressRowCountRestriction = this.gridOptionsWrapper.isSuppressMaxRenderedRowRestriction();
23138 var rowBufferMaxSize = Math.max(this.gridOptionsWrapper.getRowBuffer(), 500);
23139 if (rowLayoutNormal && !suppressRowCountRestriction) {
23140 if (newLast - newFirst > rowBufferMaxSize) {
23141 newLast = newFirst + rowBufferMaxSize;
23142 }
23143 }
23144 var firstDiffers = newFirst !== this.firstRenderedRow;
23145 var lastDiffers = newLast !== this.lastRenderedRow;
23146 if (firstDiffers || lastDiffers) {
23147 this.firstRenderedRow = newFirst;
23148 this.lastRenderedRow = newLast;
23149 var event_1 = {
23150 type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_VIEWPORT_CHANGED,
23151 firstRow: newFirst,
23152 lastRow: newLast,
23153 api: this.gridApi,
23154 columnApi: this.columnApi
23155 };
23156 this.eventService.dispatchEvent(event_1);
23157 }
23158 // only dispatch firstDataRendered if we have actually rendered some data
23159 if (this.paginationProxy.isRowsToRender()) {
23160 var event_2 = {
23161 type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_FIRST_DATA_RENDERED,
23162 firstRow: newFirst,
23163 lastRow: newLast,
23164 api: this.gridApi,
23165 columnApi: this.columnApi
23166 };
23167 // added a small delay here because in some scenarios this can be fired
23168 // before the grid is actually rendered, causing component creation
23169 // on EVENT_FIRST_DATA_RENDERED to fail.
23170 window.setTimeout(function () { return _this.eventService.dispatchEventOnce(event_2); }, 50);
23171 }
23172 };
23173 RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {
23174 // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.
23175 // all the other row models just hard code so the method just returns back false
23176 var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);
23177 if (res) {
23178 this.updateContainerHeights();
23179 }
23180 return res;
23181 };
23182 RowRenderer.prototype.getFirstVirtualRenderedRow = function () {
23183 return this.firstRenderedRow;
23184 };
23185 RowRenderer.prototype.getLastVirtualRenderedRow = function () {
23186 return this.lastRenderedRow;
23187 };
23188 // check that none of the rows to remove are editing or focused as:
23189 // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,
23190 // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered
23191 // the edit is reset - so we want to keep it rendered.
23192 // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,
23193 // otherwise the user can range select and drag (with focus cell going out of the viewport)
23194 // and then ctrl+c, nothing will happen if cell is removed from dom.
23195 // c) if detail record of master detail, as users complained that the context of detail rows
23196 // was getting lost when detail row out of view. eg user expands to show detail row,
23197 // then manipulates the detail panel (eg sorts the detail grid), then context is lost
23198 // after detail panel is scrolled out of / into view.
23199 RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {
23200 var REMOVE_ROW = false;
23201 var KEEP_ROW = true;
23202 var rowNode = rowComp.getRowNode();
23203 var rowHasFocus = this.focusController.isRowNodeFocused(rowNode);
23204 var rowIsEditing = rowComp.isEditing();
23205 var rowIsDetail = rowNode.detail;
23206 var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;
23207 // if we deffo don't want to keep it,
23208 if (!mightWantToKeepRow) {
23209 return REMOVE_ROW;
23210 }
23211 // editing row, only remove if it is no longer rendered, eg filtered out or new data set.
23212 // the reason we want to keep is if user is scrolling up and down, we don't want to loose
23213 // the context of the editing in process.
23214 var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);
23215 return rowNodePresent ? KEEP_ROW : REMOVE_ROW;
23216 };
23217 RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {
23218 var suppressAnimationFrame = this.gridOptionsWrapper.isSuppressAnimationFrame();
23219 // we don't use animations frames for printing, so the user can put the grid into print mode
23220 // and immediately print - otherwise the user would have to wait for the rows to draw in the background
23221 // (via the animation frames) which is awkward to do from code.
23222 // we only do the animation frames after scrolling, as this is where we want the smooth user experience.
23223 // having animation frames for other times makes the grid look 'jumpy'.
23224 var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;
23225 var res = new _row_rowController__WEBPACK_IMPORTED_MODULE_1__["RowController"](this.$scope, rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);
23226 return res;
23227 };
23228 RowRenderer.prototype.getRenderedNodes = function () {
23229 var renderedRows = this.rowConsByRowIndex;
23230 return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });
23231 };
23232 // we use index for rows, but column object for columns, as the next column (by index) might not
23233 // be visible (header grouping) so it's not reliable, so using the column object instead.
23234 RowRenderer.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {
23235 // we keep searching for a next cell until we find one. this is how the group rows get skipped
23236 var nextCell = currentCell;
23237 var hitEdgeOfGrid = false;
23238 while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {
23239 // if the current cell is spanning across multiple columns, we need to move
23240 // our current position to be the last cell on the right before finding the
23241 // the next target.
23242 if (this.gridOptionsWrapper.isEnableRtl()) {
23243 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].LEFT) {
23244 nextCell = this.getLastCellOfColSpan(nextCell);
23245 }
23246 }
23247 else if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].RIGHT) {
23248 nextCell = this.getLastCellOfColSpan(nextCell);
23249 }
23250 nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);
23251 // eg if going down, and nextCell=undefined, means we are gone past the last row
23252 hitEdgeOfGrid = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(nextCell);
23253 }
23254 if (hitEdgeOfGrid && event && event.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].UP) {
23255 nextCell = {
23256 rowIndex: -1,
23257 rowPinned: null,
23258 column: currentCell.column
23259 };
23260 }
23261 // allow user to override what cell to go to next. when doing normal cell navigation (with keys)
23262 // we allow this, however if processing 'enter after edit' we don't allow override
23263 if (allowUserOverride) {
23264 var userFunc = this.gridOptionsWrapper.getNavigateToNextCellFunc();
23265 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userFunc)) {
23266 var params = {
23267 key: key,
23268 previousCellPosition: currentCell,
23269 nextCellPosition: nextCell ? nextCell : null,
23270 event: event
23271 };
23272 var userCell = userFunc(params);
23273 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userCell)) {
23274 if (userCell.floating) {
23275 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["doOnce"])(function () { console.warn("AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?"); }, 'no floating in userCell');
23276 userCell.rowPinned = userCell.floating;
23277 }
23278 nextCell = {
23279 rowPinned: userCell.rowPinned,
23280 rowIndex: userCell.rowIndex,
23281 column: userCell.column
23282 };
23283 }
23284 else {
23285 nextCell = null;
23286 }
23287 }
23288 }
23289 // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid
23290 if (!nextCell) {
23291 return;
23292 }
23293 if (nextCell.rowIndex < 0) {
23294 var headerLen = this.beans.headerNavigationService.getHeaderRowCount();
23295 this.focusController.focusHeaderPosition({ headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column });
23296 return;
23297 }
23298 // in case we have col spanning we get the cellComp and use it to get the
23299 // position. This was we always focus the first cell inside the spanning.
23300 var normalisedPosition = this.getNormalisedPosition(nextCell);
23301 if (normalisedPosition) {
23302 this.focusPosition(normalisedPosition);
23303 }
23304 else {
23305 this.tryToFocusFullWidthRow(nextCell);
23306 }
23307 };
23308 RowRenderer.prototype.getNormalisedPosition = function (cellPosition) {
23309 // ensureCellVisible first, to make sure cell at position is rendered.
23310 this.ensureCellVisible(cellPosition);
23311 var cellComp = this.getComponentForCell(cellPosition);
23312 // not guaranteed to have a cellComp when using the SSRM as blocks are loading.
23313 if (!cellComp) {
23314 return null;
23315 }
23316 cellPosition = cellComp.getCellPosition();
23317 // we call this again, as nextCell can be different to it's previous value due to Column Spanning
23318 // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the
23319 // last column in the group, however now it's the first column in the group). if we didn't do
23320 // ensureCellVisible again, then we could only be showing the last portion (last column) of the
23321 // merged cells.
23322 this.ensureCellVisible(cellPosition);
23323 return cellPosition;
23324 };
23325 RowRenderer.prototype.tryToFocusFullWidthRow = function (position, backwards) {
23326 if (backwards === void 0) { backwards = false; }
23327 var displayedColumns = this.columnController.getAllDisplayedColumns();
23328 var rowComp = this.getRowConByPosition(position);
23329 if (!rowComp || !rowComp.isFullWidth()) {
23330 return false;
23331 }
23332 var cellPosition = {
23333 rowIndex: position.rowIndex,
23334 rowPinned: position.rowPinned,
23335 column: position.column || (backwards ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(displayedColumns) : displayedColumns[0])
23336 };
23337 this.focusPosition(cellPosition);
23338 return true;
23339 };
23340 RowRenderer.prototype.focusPosition = function (cellPosition) {
23341 this.focusController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);
23342 if (this.rangeController) {
23343 this.rangeController.setRangeToCell(cellPosition);
23344 }
23345 };
23346 RowRenderer.prototype.isValidNavigateCell = function (cell) {
23347 var rowNode = this.rowPositionUtils.getRowNode(cell);
23348 // we do not allow focusing on detail rows and full width rows
23349 return !!rowNode;
23350 };
23351 RowRenderer.prototype.getLastCellOfColSpan = function (cell) {
23352 var cellComp = this.getComponentForCell(cell);
23353 if (!cellComp) {
23354 return cell;
23355 }
23356 var colSpanningList = cellComp.getColSpanningList();
23357 if (colSpanningList.length === 1) {
23358 return cell;
23359 }
23360 return {
23361 rowIndex: cell.rowIndex,
23362 column: Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(colSpanningList),
23363 rowPinned: cell.rowPinned
23364 };
23365 };
23366 RowRenderer.prototype.ensureCellVisible = function (gridCell) {
23367 // this scrolls the row into view
23368 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(gridCell.rowPinned)) {
23369 this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);
23370 }
23371 if (!gridCell.column.isPinned()) {
23372 this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);
23373 }
23374 // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible
23375 // floating cell, the scrolls get out of sync
23376 this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();
23377 // need to flush frames, to make sure the correct cells are rendered
23378 this.animationFrameService.flushAllFrames();
23379 };
23380 RowRenderer.prototype.startEditingCell = function (gridCell, keyPress, charPress) {
23381 var cell = this.getComponentForCell(gridCell);
23382 if (cell) {
23383 cell.startRowOrCellEdit(keyPress, charPress);
23384 }
23385 };
23386 RowRenderer.prototype.getRowConByPosition = function (rowPosition) {
23387 var rowComponent;
23388 switch (rowPosition.rowPinned) {
23389 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP:
23390 rowComponent = this.topRowCons[rowPosition.rowIndex];
23391 break;
23392 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM:
23393 rowComponent = this.bottomRowCons[rowPosition.rowIndex];
23394 break;
23395 default:
23396 rowComponent = this.rowConsByRowIndex[rowPosition.rowIndex];
23397 break;
23398 }
23399 return rowComponent;
23400 };
23401 RowRenderer.prototype.getComponentForCell = function (cellPosition) {
23402 var rowComp = this.getRowConByPosition(cellPosition);
23403 if (!rowComp) {
23404 return null;
23405 }
23406 var cellComponent = rowComp.getRenderedCellForColumn(cellPosition.column);
23407 return cellComponent;
23408 };
23409 RowRenderer.prototype.getRowNode = function (gridRow) {
23410 switch (gridRow.rowPinned) {
23411 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP:
23412 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
23413 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM:
23414 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
23415 default:
23416 return this.rowModel.getRow(gridRow.rowIndex);
23417 }
23418 };
23419 // result of keyboard event
23420 RowRenderer.prototype.onTabKeyDown = function (previousRenderedCell, keyboardEvent) {
23421 var backwards = keyboardEvent.shiftKey;
23422 var movedToNextCell = this.tabToNextCellCommon(previousRenderedCell, backwards);
23423 if (movedToNextCell) {
23424 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
23425 // to the normal tabbing so user can exit the grid.
23426 keyboardEvent.preventDefault();
23427 return;
23428 }
23429 // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going
23430 // backwards)
23431 if (backwards) {
23432 var _a = previousRenderedCell.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;
23433 var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();
23434 if (firstRow) {
23435 keyboardEvent.preventDefault();
23436 var headerRowIndex = this.beans.headerNavigationService.getHeaderRowCount() - 1;
23437 var column = Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(this.columnController.getAllDisplayedColumns());
23438 this.focusController.focusHeaderPosition({ headerRowIndex: headerRowIndex, column: column });
23439 }
23440 }
23441 else {
23442 // if the case it's a popup editor, the focus is on the editor and not the previous cell.
23443 // in order for the tab navigation to work, we need to focus the browser back onto the
23444 // previous cell.
23445 if (previousRenderedCell instanceof _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"]) {
23446 previousRenderedCell.focusCell(true);
23447 }
23448 if (this.focusController.focusNextGridCoreContainer(false)) {
23449 keyboardEvent.preventDefault();
23450 }
23451 }
23452 };
23453 // comes from API
23454 RowRenderer.prototype.tabToNextCell = function (backwards) {
23455 var focusedCell = this.focusController.getFocusedCell();
23456 // if no focus, then cannot navigate
23457 if (!focusedCell) {
23458 return false;
23459 }
23460 var cellOrRowComp = this.getComponentForCell(focusedCell);
23461 // if cell is not rendered, means user has scrolled away from the cell
23462 // or that the focusedCell is a Full Width Row
23463 if (!cellOrRowComp) {
23464 cellOrRowComp = this.getRowConByPosition(focusedCell);
23465 if (!cellOrRowComp || !cellOrRowComp.isFullWidth()) {
23466 return false;
23467 }
23468 }
23469 return this.tabToNextCellCommon(cellOrRowComp, backwards);
23470 };
23471 RowRenderer.prototype.tabToNextCellCommon = function (previousCellOrRow, backwards) {
23472 var editing = previousCellOrRow.isEditing();
23473 // if cell is not editing, there is still chance row is editing if it's Full Row Editing
23474 if (!editing && previousCellOrRow instanceof _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"]) {
23475 var cellComp = previousCellOrRow;
23476 var rowCon = cellComp.getRenderedRow();
23477 if (rowCon) {
23478 editing = rowCon.isEditing();
23479 }
23480 }
23481 var res;
23482 if (editing) {
23483 // if we are editing, we know it's not a Full Width Row (RowComp)
23484 if (this.gridOptionsWrapper.isFullRowEdit()) {
23485 res = this.moveToNextEditingRow(previousCellOrRow, backwards);
23486 }
23487 else {
23488 res = this.moveToNextEditingCell(previousCellOrRow, backwards);
23489 }
23490 }
23491 else {
23492 res = this.moveToNextCellNotEditing(previousCellOrRow, backwards);
23493 }
23494 // if a cell wasn't found, it's possible that focus was moved to the header
23495 return res || !!this.focusController.getFocusedHeader();
23496 };
23497 RowRenderer.prototype.moveToNextEditingCell = function (previousRenderedCell, backwards) {
23498 var gridCell = previousRenderedCell.getCellPosition();
23499 // need to do this before getting next cell to edit, in case the next cell
23500 // has editable function (eg colDef.editable=func() ) and it depends on the
23501 // result of this cell, so need to save updates from the first edit, in case
23502 // the value is referenced in the function.
23503 previousRenderedCell.stopEditing();
23504 // find the next cell to start editing
23505 var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, true);
23506 var foundCell = nextRenderedCell != null;
23507 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
23508 // to the normal tabbing so user can exit the grid.
23509 if (foundCell) {
23510 nextRenderedCell.startEditingIfEnabled(null, null, true);
23511 nextRenderedCell.focusCell(false);
23512 }
23513 return foundCell;
23514 };
23515 RowRenderer.prototype.moveToNextEditingRow = function (previousCellComp, backwards) {
23516 var cellPos = previousCellComp.getCellPosition();
23517 // find the next cell to start editing
23518 var nextCellComp = this.findNextCellToFocusOn(cellPos, backwards, true);
23519 if (nextCellComp == null) {
23520 return false;
23521 }
23522 var previousPos = previousCellComp.getCellPosition();
23523 var nextPos = nextCellComp.getCellPosition();
23524 var previousEditable = this.isCellEditable(previousPos);
23525 var nextEditable = this.isCellEditable(nextPos);
23526 var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;
23527 if (previousEditable) {
23528 previousCellComp.setFocusOutOnEditor();
23529 }
23530 if (!rowsMatch) {
23531 var pRow = previousCellComp.getRenderedRow();
23532 pRow.stopEditing();
23533 var nRow = nextCellComp.getRenderedRow();
23534 nRow.startRowEditing();
23535 }
23536 if (nextEditable) {
23537 nextCellComp.setFocusInOnEditor();
23538 nextCellComp.focusCell();
23539 }
23540 else {
23541 nextCellComp.focusCell(true);
23542 }
23543 return true;
23544 };
23545 RowRenderer.prototype.moveToNextCellNotEditing = function (previousRenderedCell, backwards) {
23546 var displayedColumns = this.columnController.getAllDisplayedColumns();
23547 var gridCell;
23548 if (previousRenderedCell instanceof _row_rowController__WEBPACK_IMPORTED_MODULE_1__["RowController"]) {
23549 gridCell = __assign(__assign({}, previousRenderedCell.getRowPosition()), { column: backwards ? displayedColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(displayedColumns) });
23550 }
23551 else {
23552 gridCell = previousRenderedCell.getCellPosition();
23553 }
23554 // find the next cell to start editing
23555 var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, false);
23556 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
23557 // to the normal tabbing so user can exit the grid.
23558 if (nextRenderedCell instanceof _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"]) {
23559 nextRenderedCell.focusCell(true);
23560 }
23561 else if (nextRenderedCell) {
23562 return this.tryToFocusFullWidthRow(nextRenderedCell.getRowPosition(), backwards);
23563 }
23564 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(nextRenderedCell);
23565 };
23566 // called by the cell, when tab is pressed while editing.
23567 // @return: RenderedCell when navigation successful, otherwise null
23568 RowRenderer.prototype.findNextCellToFocusOn = function (gridCell, backwards, startEditing) {
23569 var nextCell = gridCell;
23570 while (true) {
23571 if (!backwards) {
23572 nextCell = this.getLastCellOfColSpan(nextCell);
23573 }
23574 nextCell = this.cellNavigationService.getNextTabbedCell(nextCell, backwards);
23575 // allow user to override what cell to go to next
23576 var userFunc = this.gridOptionsWrapper.getTabToNextCellFunc();
23577 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userFunc)) {
23578 var params = {
23579 backwards: backwards,
23580 editing: startEditing,
23581 previousCellPosition: gridCell,
23582 nextCellPosition: nextCell ? nextCell : null
23583 };
23584 var userCell = userFunc(params);
23585 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userCell)) {
23586 if (userCell.floating) {
23587 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["doOnce"])(function () { console.warn("AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?"); }, 'no floating in userCell');
23588 userCell.rowPinned = userCell.floating;
23589 }
23590 nextCell = {
23591 rowIndex: userCell.rowIndex,
23592 column: userCell.column,
23593 rowPinned: userCell.rowPinned
23594 };
23595 }
23596 else {
23597 nextCell = null;
23598 }
23599 }
23600 // if no 'next cell', means we have got to last cell of grid, so nothing to move to,
23601 // so bottom right cell going forwards, or top left going backwards
23602 if (!nextCell) {
23603 return null;
23604 }
23605 if (nextCell.rowIndex < 0) {
23606 var headerLen = this.beans.headerNavigationService.getHeaderRowCount();
23607 this.focusController.focusHeaderPosition({ headerRowIndex: headerLen + (nextCell.rowIndex), column: nextCell.column });
23608 return null;
23609 }
23610 // if editing, but cell not editable, skip cell. we do this before we do all of
23611 // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping
23612 // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless
23613 // (except for the last one) which causes grid to stall for a while.
23614 // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.
23615 var fullRowEdit = this.gridOptionsWrapper.isFullRowEdit();
23616 if (startEditing && !fullRowEdit) {
23617 var cellIsEditable = this.isCellEditable(nextCell);
23618 if (!cellIsEditable) {
23619 continue;
23620 }
23621 }
23622 this.ensureCellVisible(nextCell);
23623 // we have to call this after ensureColumnVisible - otherwise it could be a virtual column
23624 // or row that is not currently in view, hence the renderedCell would not exist
23625 var nextCellComp = this.getComponentForCell(nextCell);
23626 // if next cell is fullWidth row, then no rendered cell,
23627 // as fullWidth rows have no cells, so we skip it
23628 if (!nextCellComp) {
23629 var rowComp = this.getRowConByPosition(nextCell);
23630 if (!rowComp || !rowComp.isFullWidth()) {
23631 continue;
23632 }
23633 else {
23634 return rowComp;
23635 }
23636 }
23637 if (nextCellComp.isSuppressNavigable()) {
23638 continue;
23639 }
23640 // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation
23641 // consistent, we set into range here also.
23642 if (this.rangeController) {
23643 this.rangeController.setRangeToCell(nextCell);
23644 }
23645 // we successfully tabbed onto a grid cell, so return true
23646 return nextCellComp;
23647 }
23648 };
23649 RowRenderer.prototype.isCellEditable = function (cell) {
23650 var rowNode = this.lookupRowNodeForCell(cell);
23651 if (rowNode) {
23652 return cell.column.isCellEditable(rowNode);
23653 }
23654 return false;
23655 };
23656 RowRenderer.prototype.lookupRowNodeForCell = function (cell) {
23657 if (cell.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP) {
23658 return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);
23659 }
23660 if (cell.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM) {
23661 return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);
23662 }
23663 return this.paginationProxy.getRow(cell.rowIndex);
23664 };
23665 // returns true if any row between startIndex and endIndex is rendered. used by
23666 // SSRM or IRM, as they don't want to purge visible blocks from cache.
23667 RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {
23668 // parent closed means the parent node is not expanded, thus these blocks are not visible
23669 var parentClosed = startIndex == null || endIndex == null;
23670 if (parentClosed) {
23671 return false;
23672 }
23673 var blockAfterViewport = startIndex > this.lastRenderedRow;
23674 var blockBeforeViewport = endIndex < this.firstRenderedRow;
23675 var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;
23676 return blockInsideViewport;
23677 };
23678 __decorate([
23679 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("paginationProxy")
23680 ], RowRenderer.prototype, "paginationProxy", void 0);
23681 __decorate([
23682 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("columnController")
23683 ], RowRenderer.prototype, "columnController", void 0);
23684 __decorate([
23685 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("$scope")
23686 ], RowRenderer.prototype, "$scope", void 0);
23687 __decorate([
23688 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("pinnedRowModel")
23689 ], RowRenderer.prototype, "pinnedRowModel", void 0);
23690 __decorate([
23691 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("rowModel")
23692 ], RowRenderer.prototype, "rowModel", void 0);
23693 __decorate([
23694 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("focusController")
23695 ], RowRenderer.prototype, "focusController", void 0);
23696 __decorate([
23697 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("cellNavigationService")
23698 ], RowRenderer.prototype, "cellNavigationService", void 0);
23699 __decorate([
23700 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("columnApi")
23701 ], RowRenderer.prototype, "columnApi", void 0);
23702 __decorate([
23703 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("gridApi")
23704 ], RowRenderer.prototype, "gridApi", void 0);
23705 __decorate([
23706 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("beans")
23707 ], RowRenderer.prototype, "beans", void 0);
23708 __decorate([
23709 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("rowContainerHeightService")
23710 ], RowRenderer.prototype, "rowContainerHeightService", void 0);
23711 __decorate([
23712 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("animationFrameService")
23713 ], RowRenderer.prototype, "animationFrameService", void 0);
23714 __decorate([
23715 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("rowPositionUtils")
23716 ], RowRenderer.prototype, "rowPositionUtils", void 0);
23717 __decorate([
23718 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])("rangeController")
23719 ], RowRenderer.prototype, "rangeController", void 0);
23720 __decorate([
23721 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])("controllersService")
23722 ], RowRenderer.prototype, "controllersService", void 0);
23723 __decorate([
23724 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Qualifier"])("loggerFactory"))
23725 ], RowRenderer.prototype, "agWire", null);
23726 __decorate([
23727 _context_context__WEBPACK_IMPORTED_MODULE_6__["PostConstruct"]
23728 ], RowRenderer.prototype, "postConstruct", null);
23729 RowRenderer = __decorate([
23730 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Bean"])("rowRenderer")
23731 ], RowRenderer);
23732 return RowRenderer;
23733}(_context_beanStub__WEBPACK_IMPORTED_MODULE_7__["BeanStub"]));
23734
23735
23736
23737/***/ }),
23738/* 105 */
23739/***/ (function(module, __webpack_exports__, __webpack_require__) {
23740
23741"use strict";
23742__webpack_require__.r(__webpack_exports__);
23743/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return RowType; });
23744/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthRenderers", function() { return FullWidthRenderers; });
23745/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthKeys", function() { return FullWidthKeys; });
23746/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowController", function() { return RowController; });
23747/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
23748/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
23749/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
23750/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47);
23751/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
23752/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
23753/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21);
23754/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
23755/* harmony import */ var _utils_general__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(46);
23756/* harmony import */ var _angularRowUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(106);
23757/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15);
23758/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20);
23759/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(27);
23760/* harmony import */ var _rowDragComp__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(77);
23761/**
23762 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
23763 * @version v25.3.0
23764 * @link http://www.ag-grid.com/
23765 * @license MIT
23766 */
23767var __extends = (undefined && undefined.__extends) || (function () {
23768 var extendStatics = function (d, b) {
23769 extendStatics = Object.setPrototypeOf ||
23770 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
23771 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
23772 return extendStatics(d, b);
23773 };
23774 return function (d, b) {
23775 extendStatics(d, b);
23776 function __() { this.constructor = d; }
23777 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
23778 };
23779})();
23780
23781
23782
23783
23784
23785
23786
23787
23788
23789
23790
23791
23792
23793
23794var RowType;
23795(function (RowType) {
23796 RowType["Normal"] = "Normal";
23797 RowType["FullWidth"] = "FullWidth";
23798 RowType["FullWidthLoading"] = "FullWidthLoading";
23799 RowType["FullWidthGroup"] = "FullWidthGroup";
23800 RowType["FullWidthDetail"] = "FullWidthDetail";
23801})(RowType || (RowType = {}));
23802var FullWidthRenderers = Object(_utils_map__WEBPACK_IMPORTED_MODULE_12__["convertToMap"])([
23803 [RowType.FullWidthLoading, 'agLoadingCellRenderer'],
23804 [RowType.FullWidthGroup, 'agGroupRowRenderer'],
23805 [RowType.FullWidthDetail, 'agDetailCellRenderer']
23806]);
23807var FullWidthKeys = Object(_utils_map__WEBPACK_IMPORTED_MODULE_12__["convertToMap"])([
23808 [RowType.FullWidth, 'fullWidthCellRenderer'],
23809 [RowType.FullWidthLoading, 'loadingCellRenderer'],
23810 [RowType.FullWidthGroup, 'groupRowRenderer'],
23811 [RowType.FullWidthDetail, 'detailCellRenderer']
23812]);
23813var instanceIdSequence = 0;
23814var RowController = /** @class */ (function (_super) {
23815 __extends(RowController, _super);
23816 function RowController(parentScope, rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {
23817 var _this = _super.call(this) || this;
23818 _this.instanceId = instanceIdSequence++;
23819 _this.allRowComps = [];
23820 _this.active = true;
23821 _this.centerCols = [];
23822 _this.leftCols = [];
23823 _this.rightCols = [];
23824 _this.lastMouseDownOnDragger = false;
23825 _this.updateColumnListsPending = false;
23826 _this.parentScope = parentScope;
23827 _this.beans = beans;
23828 _this.rowNode = rowNode;
23829 _this.rowIsEven = _this.rowNode.rowIndex % 2 === 0;
23830 _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();
23831 _this.useAnimationFrameForCreate = useAnimationFrameForCreate;
23832 _this.printLayout = printLayout;
23833 _this.setAnimateFlags(animateIn);
23834 _this.rowFocused = _this.beans.focusController.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);
23835 _this.setupAngular1Scope();
23836 _this.rowLevel = _this.beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);
23837 _this.setRowType();
23838 _this.updateColumnLists(!_this.useAnimationFrameForCreate);
23839 _this.addListeners();
23840 if (_this.slideRowIn) {
23841 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["executeNextVMTurn"])(_this.onTopChanged.bind(_this));
23842 }
23843 if (_this.fadeRowIn) {
23844 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["executeNextVMTurn"])(function () {
23845 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(rowComp.getGui(), 'ag-opacity-zero'); });
23846 });
23847 }
23848 return _this;
23849 }
23850 RowController.prototype.getInstanceId = function () {
23851 return this.instanceId;
23852 };
23853 RowController.prototype.setLeftRowComp = function (rowComp) {
23854 if (this.leftRowComp) {
23855 console.error('AG Grid - should not set leftRowComp twice');
23856 }
23857 this.leftRowComp = rowComp;
23858 this.allRowComps.push(rowComp);
23859 };
23860 RowController.prototype.setRightRowComp = function (rowComp) {
23861 if (this.rightRowComp) {
23862 console.error('AG Grid - should not set rightRowComp twice');
23863 }
23864 this.rightRowComp = rowComp;
23865 this.allRowComps.push(rowComp);
23866 };
23867 RowController.prototype.setCenterRowComp = function (rowComp) {
23868 if (this.centerRowComp) {
23869 console.error('AG Grid - should not set centerRowComp twice');
23870 }
23871 this.centerRowComp = rowComp;
23872 this.allRowComps.push(rowComp);
23873 };
23874 RowController.prototype.setFullWidthRowComp = function (rowComp) {
23875 if (this.fullWidthRowComp) {
23876 console.error('AG Grid - should not set fullWidthRowComp twice');
23877 }
23878 this.fullWidthRowComp = rowComp;
23879 this.allRowComps.push(rowComp);
23880 };
23881 RowController.prototype.getColsForRowComp = function (pinned) {
23882 switch (pinned) {
23883 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT: return this.rightCols;
23884 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT: return this.leftCols;
23885 default: return this.centerCols;
23886 }
23887 };
23888 RowController.prototype.getScope = function () {
23889 return this.scope;
23890 };
23891 RowController.prototype.isPrintLayout = function () {
23892 return this.printLayout;
23893 };
23894 RowController.prototype.setupAngular1Scope = function () {
23895 var scopeResult = _angularRowUtils__WEBPACK_IMPORTED_MODULE_9__["AngularRowUtils"].createChildScopeOrNull(this.rowNode, this.parentScope, this.beans.gridOptionsWrapper);
23896 if (scopeResult) {
23897 this.scope = scopeResult.scope;
23898 this.addDestroyFunc(scopeResult.scopeDestroyFunc);
23899 }
23900 };
23901 RowController.prototype.getCellForCol = function (column) {
23902 var cellComp = this.getRenderedCellForColumn(column);
23903 return cellComp ? cellComp.getGui() : null;
23904 };
23905 RowController.prototype.executeProcessRowPostCreateFunc = function () {
23906 var func = this.beans.gridOptionsWrapper.getProcessRowPostCreateFunc();
23907 if (!func) {
23908 return;
23909 }
23910 var params = {
23911 eRow: this.centerRowComp ? this.centerRowComp.getGui() : undefined,
23912 ePinnedLeftRow: this.leftRowComp ? this.leftRowComp.getGui() : undefined,
23913 ePinnedRightRow: this.rightRowComp ? this.rightRowComp.getGui() : undefined,
23914 node: this.rowNode,
23915 api: this.beans.gridOptionsWrapper.getApi(),
23916 rowIndex: this.rowNode.rowIndex,
23917 addRenderedRowListener: this.addEventListener.bind(this),
23918 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
23919 context: this.beans.gridOptionsWrapper.getContext()
23920 };
23921 func(params);
23922 };
23923 RowController.prototype.setRowType = function () {
23924 var isStub = this.rowNode.stub;
23925 var isFullWidthCell = this.rowNode.isFullWidthCell();
23926 var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;
23927 var pivotMode = this.beans.columnController.isPivotMode();
23928 // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking
23929 // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'
23930 // so each can be set independently (as a customer complained about footers getting full width, hence
23931 // introducing this logic)
23932 var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;
23933 var isFullWidthGroup = isGroupRow && this.beans.gridOptionsWrapper.isGroupUseEntireRow(pivotMode);
23934 if (isStub) {
23935 this.rowType = RowType.FullWidthLoading;
23936 }
23937 else if (isDetailCell) {
23938 this.rowType = RowType.FullWidthDetail;
23939 }
23940 else if (isFullWidthCell) {
23941 this.rowType = RowType.FullWidth;
23942 }
23943 else if (isFullWidthGroup) {
23944 this.rowType = RowType.FullWidthGroup;
23945 }
23946 else {
23947 this.rowType = RowType.Normal;
23948 }
23949 };
23950 RowController.prototype.updateColumnLists = function (suppressAnimationFrame) {
23951 var _this = this;
23952 if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }
23953 if (this.isFullWidth()) {
23954 return;
23955 }
23956 var noAnimation = suppressAnimationFrame
23957 || this.beans.gridOptionsWrapper.isSuppressAnimationFrame()
23958 || this.printLayout;
23959 if (noAnimation) {
23960 this.updateColumnListsImpl();
23961 return;
23962 }
23963 if (this.updateColumnListsPending) {
23964 return;
23965 }
23966 this.beans.taskQueue.createTask(function () {
23967 if (!_this.active) {
23968 return;
23969 }
23970 _this.updateColumnListsImpl();
23971 }, this.rowNode.rowIndex, 'createTasksP1');
23972 this.updateColumnListsPending = true;
23973 };
23974 RowController.prototype.updateColumnListsImpl = function () {
23975 this.updateColumnListsPending = false;
23976 if (this.printLayout) {
23977 this.centerCols = this.beans.columnController.getAllDisplayedColumns();
23978 this.leftCols = [];
23979 this.rightCols = [];
23980 }
23981 else {
23982 this.centerCols = this.beans.columnController.getViewportCenterColumnsForRow(this.rowNode);
23983 this.leftCols = this.beans.columnController.getDisplayedLeftColumnsForRow(this.rowNode);
23984 this.rightCols = this.beans.columnController.getDisplayedRightColumnsForRow(this.rowNode);
23985 }
23986 this.allRowComps.forEach(function (rc) { return rc.onColumnChanged(); });
23987 };
23988 RowController.prototype.setAnimateFlags = function (animateIn) {
23989 if (animateIn) {
23990 var oldRowTopExists = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.rowNode.oldRowTop);
23991 // if the row had a previous position, we slide it in (animate row top)
23992 this.slideRowIn = oldRowTopExists;
23993 // if the row had no previous position, we fade it in (animate
23994 this.fadeRowIn = !oldRowTopExists;
23995 }
23996 else {
23997 this.slideRowIn = false;
23998 this.fadeRowIn = false;
23999 }
24000 };
24001 RowController.prototype.isEditing = function () {
24002 return this.editingRow;
24003 };
24004 RowController.prototype.stopRowEditing = function (cancel) {
24005 this.stopEditing(cancel);
24006 };
24007 RowController.prototype.isFullWidth = function () {
24008 return this.rowType !== RowType.Normal;
24009 };
24010 RowController.prototype.getRowType = function () {
24011 return this.rowType;
24012 };
24013 RowController.prototype.refreshFullWidth = function () {
24014 var _this = this;
24015 // returns 'true' if refresh succeeded
24016 var tryRefresh = function (rowComp, pinned) {
24017 if (!rowComp) {
24018 return true;
24019 } // no refresh needed
24020 var cellComp = rowComp.getFullWidthRowComp();
24021 if (!cellComp) {
24022 return true;
24023 } // no refresh needed
24024 // no refresh method present, so can't refresh, hard refresh needed
24025 if (!cellComp.refresh) {
24026 return false;
24027 }
24028 var params = _this.createFullWidthParams(rowComp.getGui(), pinned);
24029 var refreshSucceeded = cellComp.refresh(params);
24030 return refreshSucceeded;
24031 };
24032 var normalSuccess = tryRefresh(this.fullWidthRowComp, null);
24033 var bodySuccess = tryRefresh(this.centerRowComp, null);
24034 var leftSuccess = tryRefresh(this.leftRowComp, _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT);
24035 var rightSuccess = tryRefresh(this.rightRowComp, _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT);
24036 var allFullWidthRowsRefreshed = normalSuccess && bodySuccess && leftSuccess && rightSuccess;
24037 return allFullWidthRowsRefreshed;
24038 };
24039 RowController.prototype.addListeners = function () {
24040 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));
24041 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_ROW_SELECTED, this.onRowSelected.bind(this));
24042 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));
24043 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_TOP_CHANGED, this.onTopChanged.bind(this));
24044 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));
24045 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));
24046 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));
24047 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));
24048 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));
24049 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));
24050 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));
24051 var eventService = this.beans.eventService;
24052 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));
24053 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));
24054 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
24055 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));
24056 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_FOCUSED, this.onCellFocusChanged.bind(this));
24057 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));
24058 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));
24059 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));
24060 this.addListenersForCellComps();
24061 };
24062 RowController.prototype.onColumnMoved = function () {
24063 this.updateColumnLists();
24064 };
24065 RowController.prototype.addListenersForCellComps = function () {
24066 var _this = this;
24067 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_ROW_INDEX_CHANGED, function () {
24068 _this.forEachCellComp(function (cellComp) { return cellComp.onRowIndexChanged(); });
24069 });
24070 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_CELL_CHANGED, function (event) {
24071 _this.forEachCellComp(function (cellComp) { return cellComp.onCellChanged(event); });
24072 });
24073 };
24074 RowController.prototype.onRowNodeDataChanged = function (event) {
24075 // if this is an update, we want to refresh, as this will allow the user to put in a transition
24076 // into the cellRenderer refresh method. otherwise this might be completely new data, in which case
24077 // we will want to completely replace the cells
24078 this.forEachCellComp(function (cellComp) {
24079 return cellComp.refreshCell({
24080 suppressFlash: !event.update,
24081 newData: !event.update
24082 });
24083 });
24084 // check for selected also, as this could be after lazy loading of the row data, in which case
24085 // the id might of just gotten set inside the row and the row selected state may of changed
24086 // as a result. this is what happens when selected rows are loaded in virtual pagination.
24087 // - niall note - since moving to the stub component, this may no longer be true, as replacing
24088 // the stub component now replaces the entire row
24089 this.onRowSelected();
24090 // as data has changed, then the style and class needs to be recomputed
24091 this.postProcessCss();
24092 };
24093 RowController.prototype.onRowNodeCellChanged = function () {
24094 // as data has changed, then the style and class needs to be recomputed
24095 this.postProcessCss();
24096 };
24097 RowController.prototype.postProcessCss = function () {
24098 this.postProcessStylesFromGridOptions();
24099 this.postProcessClassesFromGridOptions();
24100 this.postProcessRowClassRules();
24101 this.postProcessRowDragging();
24102 };
24103 RowController.prototype.onRowNodeHighlightChanged = function () {
24104 var highlighted = this.rowNode.highlighted;
24105 this.allRowComps.forEach(function (rowComp) {
24106 var eGui = rowComp.getGui();
24107 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, 'ag-row-highlight-above');
24108 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, 'ag-row-highlight-below');
24109 if (highlighted) {
24110 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eGui, 'ag-row-highlight-' + highlighted);
24111 }
24112 });
24113 };
24114 RowController.prototype.onRowNodeDraggingChanged = function () {
24115 this.postProcessRowDragging();
24116 };
24117 RowController.prototype.postProcessRowDragging = function () {
24118 var dragging = this.rowNode.dragging;
24119 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-dragging', dragging); });
24120 };
24121 RowController.prototype.updateExpandedCss = function () {
24122 var expandable = this.rowNode.isExpandable();
24123 var expanded = this.rowNode.expanded == true;
24124 this.allRowComps.forEach(function (rowComp) {
24125 var eRow = rowComp.getGui();
24126 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-group', expandable);
24127 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-group-expanded', expandable && expanded);
24128 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-group-contracted', expandable && !expanded);
24129 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaExpanded"])(eRow, expandable && expanded);
24130 });
24131 };
24132 RowController.prototype.onDisplayedColumnsChanged = function () {
24133 // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and
24134 // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.
24135 this.updateColumnLists(true);
24136 };
24137 RowController.prototype.onVirtualColumnsChanged = function () {
24138 this.updateColumnLists();
24139 };
24140 RowController.prototype.getRowPosition = function () {
24141 return {
24142 rowPinned: this.rowNode.rowPinned,
24143 rowIndex: this.rowNode.rowIndex
24144 };
24145 };
24146 RowController.prototype.onKeyboardNavigate = function (keyboardEvent) {
24147 var currentFullWidthComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(this.allRowComps, function (rowComp) { return rowComp.getGui().contains(keyboardEvent.target); });
24148 var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.getGui() : null;
24149 var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;
24150 if (!isFullWidthContainerFocused) {
24151 return;
24152 }
24153 var node = this.rowNode;
24154 var lastFocusedCell = this.beans.focusController.getFocusedCell();
24155 var cellPosition = {
24156 rowIndex: node.rowIndex,
24157 rowPinned: node.rowPinned,
24158 column: (lastFocusedCell && lastFocusedCell.column)
24159 };
24160 this.beans.rowRenderer.navigateToNextCell(keyboardEvent, keyboardEvent.keyCode, cellPosition, true);
24161 keyboardEvent.preventDefault();
24162 };
24163 RowController.prototype.onTabKeyDown = function (keyboardEvent) {
24164 if (keyboardEvent.defaultPrevented || Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(keyboardEvent)) {
24165 return;
24166 }
24167 var currentFullWidthComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(this.allRowComps, function (rowComp) { return rowComp.getGui().contains(keyboardEvent.target); });
24168 var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.getGui() : null;
24169 var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;
24170 var nextEl = null;
24171 if (!isFullWidthContainerFocused) {
24172 nextEl = this.beans.focusController.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);
24173 }
24174 if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {
24175 this.beans.rowRenderer.onTabKeyDown(this, keyboardEvent);
24176 }
24177 };
24178 RowController.prototype.onFullWidthRowFocused = function (event) {
24179 var node = this.rowNode;
24180 var isFocused = this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;
24181 var element = this.fullWidthRowComp ? this.fullWidthRowComp.getGui() : this.centerRowComp.getGui();
24182 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(element, 'ag-full-width-focus', isFocused);
24183 if (isFocused) {
24184 // we don't scroll normal rows into view when we focus them, so we don't want
24185 // to scroll Full Width rows either.
24186 element.focus({ preventScroll: true });
24187 }
24188 };
24189 RowController.prototype.refreshCell = function (cellComp) {
24190 this.allRowComps.forEach(function (rc) { return rc.destroyCells([cellComp]); });
24191 this.updateColumnLists();
24192 };
24193 RowController.prototype.onMouseEvent = function (eventName, mouseEvent) {
24194 switch (eventName) {
24195 case 'dblclick':
24196 this.onRowDblClick(mouseEvent);
24197 break;
24198 case 'click':
24199 this.onRowClick(mouseEvent);
24200 break;
24201 case 'mousedown':
24202 this.onRowMouseDown(mouseEvent);
24203 break;
24204 }
24205 };
24206 RowController.prototype.createRowEvent = function (type, domEvent) {
24207 return {
24208 type: type,
24209 node: this.rowNode,
24210 data: this.rowNode.data,
24211 rowIndex: this.rowNode.rowIndex,
24212 rowPinned: this.rowNode.rowPinned,
24213 context: this.beans.gridOptionsWrapper.getContext(),
24214 api: this.beans.gridOptionsWrapper.getApi(),
24215 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
24216 event: domEvent
24217 };
24218 };
24219 RowController.prototype.createRowEventWithSource = function (type, domEvent) {
24220 var event = this.createRowEvent(type, domEvent);
24221 // when first developing this, we included the rowComp in the event.
24222 // this seems very weird. so when introducing the event types, i left the 'source'
24223 // out of the type, and just include the source in the two places where this event
24224 // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any
24225 // users to be using this, as the rowComp isn't an object we expose, so would be
24226 // very surprising if a user was using it.
24227 event.source = this;
24228 return event;
24229 };
24230 RowController.prototype.onRowDblClick = function (mouseEvent) {
24231 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(mouseEvent)) {
24232 return;
24233 }
24234 var agEvent = this.createRowEventWithSource(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_DOUBLE_CLICKED, mouseEvent);
24235 this.beans.eventService.dispatchEvent(agEvent);
24236 };
24237 RowController.prototype.onRowMouseDown = function (mouseEvent) {
24238 this.lastMouseDownOnDragger = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isElementChildOfClass"])(mouseEvent.target, 'ag-row-drag', 3);
24239 if (!this.isFullWidth()) {
24240 return;
24241 }
24242 var node = this.rowNode;
24243 var columnController = this.beans.columnController;
24244 this.beans.focusController.setFocusedCell(node.rowIndex, columnController.getAllDisplayedColumns()[0], node.rowPinned, true);
24245 };
24246 RowController.prototype.onRowClick = function (mouseEvent) {
24247 var stop = Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(mouseEvent) || this.lastMouseDownOnDragger;
24248 if (stop) {
24249 return;
24250 }
24251 var agEvent = this.createRowEventWithSource(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_CLICKED, mouseEvent);
24252 this.beans.eventService.dispatchEvent(agEvent);
24253 // ctrlKey for windows, metaKey for Apple
24254 var multiSelectKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;
24255 var shiftKeyPressed = mouseEvent.shiftKey;
24256 // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to
24257 // handle this is broken. to observe, change the logic below and allow groups to be selected.
24258 // you will see the group gets selected, then all children get selected, then the grid unselects
24259 // the children (as the default behaviour when clicking is to unselect other rows) which results
24260 // in the group getting unselected (as all children are unselected). the correct thing would be
24261 // to change this, so that children of the selected group are not then subsequenly un-selected.
24262 var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();
24263 if (
24264 // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,
24265 // so return if it's a group row
24266 (groupSelectsChildren && this.rowNode.group) ||
24267 // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,
24268 // and we click it, the selection should not change (ie any currently selected row should stay selected)
24269 !this.rowNode.selectable ||
24270 // we also don't allow selection of pinned rows
24271 this.rowNode.rowPinned ||
24272 // if no selection method enabled, do nothing
24273 !this.beans.gridOptionsWrapper.isRowSelection() ||
24274 // if click selection suppressed, do nothing
24275 this.beans.gridOptionsWrapper.isSuppressRowClickSelection()) {
24276 return;
24277 }
24278 var multiSelectOnClick = this.beans.gridOptionsWrapper.isRowMultiSelectWithClick();
24279 var rowDeselectionWithCtrl = !this.beans.gridOptionsWrapper.isSuppressRowDeselection();
24280 if (this.rowNode.isSelected()) {
24281 if (multiSelectOnClick) {
24282 this.rowNode.setSelectedParams({ newValue: false });
24283 }
24284 else if (multiSelectKeyPressed) {
24285 if (rowDeselectionWithCtrl) {
24286 this.rowNode.setSelectedParams({ newValue: false });
24287 }
24288 }
24289 else {
24290 // selected with no multi key, must make sure anything else is unselected
24291 this.rowNode.setSelectedParams({ newValue: !shiftKeyPressed, clearSelection: !shiftKeyPressed, rangeSelect: shiftKeyPressed });
24292 }
24293 }
24294 else {
24295 var clearSelection = multiSelectOnClick ? false : !multiSelectKeyPressed;
24296 this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: shiftKeyPressed });
24297 }
24298 };
24299 RowController.prototype.setupDetailRowAutoHeight = function (eDetailGui) {
24300 var _this = this;
24301 if (!this.beans.gridOptionsWrapper.isDetailRowAutoHeight()) {
24302 return;
24303 }
24304 var checkRowSizeFunc = function () {
24305 var clientHeight = eDetailGui.clientHeight;
24306 // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur
24307 // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means
24308 // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an
24309 // empty detail grid would still have some styling around it giving at least a few pixels.
24310 if (clientHeight != null && clientHeight > 0) {
24311 // we do the update in a timeout, to make sure we are not calling from inside the grid
24312 // doing another update
24313 var updateRowHeightFunc = function () {
24314 _this.rowNode.setRowHeight(clientHeight);
24315 if (_this.beans.clientSideRowModel) {
24316 _this.beans.clientSideRowModel.onRowHeightChanged();
24317 }
24318 else if (_this.beans.serverSideRowModel) {
24319 _this.beans.serverSideRowModel.onRowHeightChanged();
24320 }
24321 };
24322 _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);
24323 }
24324 };
24325 var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);
24326 this.addDestroyFunc(resizeObserverDestroyFunc);
24327 checkRowSizeFunc();
24328 };
24329 RowController.prototype.createFullWidthParams = function (eRow, pinned) {
24330 var _this = this;
24331 var params = {
24332 fullWidth: true,
24333 data: this.rowNode.data,
24334 node: this.rowNode,
24335 value: this.rowNode.key,
24336 valueFormatted: this.rowNode.key,
24337 $scope: this.scope ? this.scope : this.parentScope,
24338 $compile: this.beans.$compile,
24339 rowIndex: this.rowNode.rowIndex,
24340 api: this.beans.gridOptionsWrapper.getApi(),
24341 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
24342 context: this.beans.gridOptionsWrapper.getContext(),
24343 // these need to be taken out, as part of 'afterAttached' now
24344 eGridCell: eRow,
24345 eParentOfValue: eRow,
24346 pinned: pinned,
24347 addRenderedRowListener: this.addEventListener.bind(this),
24348 registerRowDragger: function (rowDraggerElement, dragStartPixels, value) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value); }
24349 };
24350 return params;
24351 };
24352 RowController.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value) {
24353 if (value === void 0) { value = ''; }
24354 if (!this.isFullWidth()) {
24355 return;
24356 }
24357 var rowDragComp = new _rowDragComp__WEBPACK_IMPORTED_MODULE_13__["RowDragComp"](function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels);
24358 this.createManagedBean(rowDragComp, this.beans.context);
24359 };
24360 RowController.prototype.onUiLevelChanged = function () {
24361 var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);
24362 if (this.rowLevel != newLevel) {
24363 var classToAdd_1 = 'ag-row-level-' + newLevel;
24364 var classToRemove_1 = 'ag-row-level-' + this.rowLevel;
24365 this.allRowComps.forEach(function (rowComp) {
24366 var eGui = rowComp.getGui();
24367 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eGui, classToAdd_1);
24368 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, classToRemove_1);
24369 });
24370 }
24371 this.rowLevel = newLevel;
24372 };
24373 RowController.prototype.isFirstRowOnPage = function () {
24374 return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();
24375 };
24376 RowController.prototype.isLastRowOnPage = function () {
24377 return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();
24378 };
24379 RowController.prototype.onModelUpdated = function () {
24380 var newFirst = this.isFirstRowOnPage();
24381 var newLast = this.isLastRowOnPage();
24382 if (this.firstRowOnPage !== newFirst) {
24383 this.firstRowOnPage = newFirst;
24384 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-first', newFirst); });
24385 }
24386 if (this.lastRowOnPage !== newLast) {
24387 this.lastRowOnPage = newLast;
24388 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-last', newLast); });
24389 }
24390 };
24391 RowController.prototype.stopEditing = function (cancel) {
24392 if (cancel === void 0) { cancel = false; }
24393 this.forEachCellComp(function (renderedCell) {
24394 renderedCell.stopEditing(cancel);
24395 });
24396 if (!this.editingRow) {
24397 return;
24398 }
24399 if (!cancel) {
24400 var event_1 = this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_VALUE_CHANGED);
24401 this.beans.eventService.dispatchEvent(event_1);
24402 }
24403 this.setEditingRow(false);
24404 };
24405 RowController.prototype.setEditingRow = function (value) {
24406 this.editingRow = value;
24407 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-editing', value); });
24408 var event = value ?
24409 this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STARTED)
24410 : this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STOPPED);
24411 this.beans.eventService.dispatchEvent(event);
24412 };
24413 RowController.prototype.startRowEditing = function (keyPress, charPress, sourceRenderedCell) {
24414 if (keyPress === void 0) { keyPress = null; }
24415 if (charPress === void 0) { charPress = null; }
24416 if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }
24417 // don't do it if already editing
24418 if (this.editingRow) {
24419 return;
24420 }
24421 this.forEachCellComp(function (renderedCell) {
24422 var cellStartedEdit = renderedCell === sourceRenderedCell;
24423 if (cellStartedEdit) {
24424 renderedCell.startEditingIfEnabled(keyPress, charPress, cellStartedEdit);
24425 }
24426 else {
24427 renderedCell.startEditingIfEnabled(null, null, cellStartedEdit);
24428 }
24429 });
24430 this.setEditingRow(true);
24431 };
24432 RowController.prototype.forEachCellComp = function (callback) {
24433 this.allRowComps.forEach(function (rc) { return rc.forEachCellComp(callback); });
24434 };
24435 RowController.prototype.postProcessClassesFromGridOptions = function () {
24436 var _this = this;
24437 var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode, this.scope);
24438 if (!cssClasses || !cssClasses.length) {
24439 return;
24440 }
24441 cssClasses.forEach(function (classStr) {
24442 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(rowComp.getGui(), classStr); });
24443 });
24444 };
24445 RowController.prototype.postProcessRowClassRules = function () {
24446 var _this = this;
24447 this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, this.scope, function (className) {
24448 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(rowComp.getGui(), className); });
24449 }, function (className) {
24450 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(rowComp.getGui(), className); });
24451 });
24452 };
24453 RowController.prototype.postProcessStylesFromGridOptions = function () {
24454 var rowStyles = this.processStylesFromGridOptions();
24455 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addStylesToElement"])(rowComp.getGui(), rowStyles); });
24456 };
24457 RowController.prototype.getInitialRowTopStyle = function () {
24458 // print layout uses normal flow layout for row positioning
24459 if (this.printLayout) {
24460 return '';
24461 }
24462 // if sliding in, we take the old row top. otherwise we just set the current row top.
24463 var pixels = this.slideRowIn ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;
24464 var afterPaginationPixels = this.applyPaginationOffset(pixels);
24465 // we don't apply scaling if row is pinned
24466 var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);
24467 var isSuppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();
24468 return isSuppressRowTransform ? "top: " + afterScalingPixels + "px; " : "transform: translateY(" + afterScalingPixels + "px);";
24469 };
24470 RowController.prototype.getRowBusinessKey = function () {
24471 var businessKeyForNodeFunc = this.beans.gridOptionsWrapper.getBusinessKeyForNodeFunc();
24472 if (typeof businessKeyForNodeFunc !== 'function') {
24473 return;
24474 }
24475 return businessKeyForNodeFunc(this.rowNode);
24476 };
24477 RowController.prototype.getInitialRowClasses = function (pinned) {
24478 var params = {
24479 rowNode: this.rowNode,
24480 rowFocused: this.rowFocused,
24481 fadeRowIn: this.fadeRowIn,
24482 rowIsEven: this.rowIsEven,
24483 rowLevel: this.rowLevel,
24484 fullWidthRow: this.isFullWidth(),
24485 firstRowOnPage: this.isFirstRowOnPage(),
24486 lastRowOnPage: this.isLastRowOnPage(),
24487 printLayout: this.printLayout,
24488 expandable: this.rowNode.isExpandable(),
24489 scope: this.scope,
24490 pinned: pinned
24491 };
24492 return this.beans.rowCssClassCalculator.getInitialRowClasses(params);
24493 };
24494 RowController.prototype.preProcessStylesFromGridOptions = function () {
24495 var rowStyles = this.processStylesFromGridOptions();
24496 return Object(_utils_general__WEBPACK_IMPORTED_MODULE_8__["cssStyleObjectToMarkup"])(rowStyles);
24497 };
24498 RowController.prototype.processStylesFromGridOptions = function () {
24499 // part 1 - rowStyle
24500 var rowStyle = this.beans.gridOptionsWrapper.getRowStyle();
24501 if (rowStyle && typeof rowStyle === 'function') {
24502 console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');
24503 return;
24504 }
24505 // part 1 - rowStyleFunc
24506 var rowStyleFunc = this.beans.gridOptionsWrapper.getRowStyleFunc();
24507 var rowStyleFuncResult;
24508 if (rowStyleFunc) {
24509 var params = {
24510 data: this.rowNode.data,
24511 node: this.rowNode,
24512 rowIndex: this.rowNode.rowIndex,
24513 $scope: this.scope,
24514 api: this.beans.gridOptionsWrapper.getApi(),
24515 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
24516 context: this.beans.gridOptionsWrapper.getContext()
24517 };
24518 rowStyleFuncResult = rowStyleFunc(params);
24519 }
24520 return Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])({}, rowStyle, rowStyleFuncResult);
24521 };
24522 RowController.prototype.onRowSelected = function () {
24523 var _this = this;
24524 var selected = this.rowNode.isSelected();
24525 this.allRowComps.forEach(function (rowComp) {
24526 var eGui = rowComp.getGui();
24527 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaSelected"])(eGui, selected);
24528 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eGui, 'ag-row-selected', selected);
24529 _this.refreshAriaLabel(eGui, selected);
24530 });
24531 };
24532 RowController.prototype.refreshAriaLabel = function (node, selected) {
24533 if (selected && this.beans.gridOptionsWrapper.isSuppressRowDeselection()) {
24534 node.removeAttribute('aria-label');
24535 return;
24536 }
24537 var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();
24538 var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', "Press SPACE to " + (selected ? 'deselect' : 'select') + " this row.");
24539 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(node, label);
24540 };
24541 RowController.prototype.isUseAnimationFrameForCreate = function () {
24542 return this.useAnimationFrameForCreate;
24543 };
24544 RowController.prototype.addHoverFunctionality = function (eRow) {
24545 var _this = this;
24546 // because we use animation frames to do this, it's possible the row no longer exists
24547 // by the time we get to add it
24548 if (!this.active) {
24549 return;
24550 }
24551 // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel
24552 // like we do for all the other mouse events.
24553 // because of the pinning, we cannot simply add / remove the class based on the eRow. we
24554 // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a
24555 // mouse hover, it sets such in the rowNode, and then all three reflect the change as
24556 // all are listening for event on the row node.
24557 // step 1 - add listener, to set flag on row node
24558 this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });
24559 this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });
24560 // step 2 - listen for changes on row node (which any eRow can trigger)
24561 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_MOUSE_ENTER, function () {
24562 // if hover turned off, we don't add the class. we do this here so that if the application
24563 // toggles this property mid way, we remove the hover form the last row, but we stop
24564 // adding hovers from that point onwards.
24565 if (!_this.beans.gridOptionsWrapper.isSuppressRowHoverHighlight()) {
24566 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eRow, 'ag-row-hover');
24567 }
24568 });
24569 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_MOUSE_LEAVE, function () {
24570 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eRow, 'ag-row-hover');
24571 });
24572 };
24573 // for animation, we don't want to animate entry or exit to a very far away pixel,
24574 // otherwise the row would move so fast, it would appear to disappear. so this method
24575 // moves the row closer to the viewport if it is far away, so the row slide in / out
24576 // at a speed the user can see.
24577 RowController.prototype.roundRowTopToBounds = function (rowTop) {
24578 var gridBodyCon = this.beans.controllersService.getGridBodyController();
24579 var range = gridBodyCon.getScrollFeature().getVScrollPosition();
24580 var minPixel = this.applyPaginationOffset(range.top, true) - 100;
24581 var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;
24582 return Math.min(Math.max(minPixel, rowTop), maxPixel);
24583 };
24584 RowController.prototype.getFrameworkOverrides = function () {
24585 return this.beans.frameworkOverrides;
24586 };
24587 RowController.prototype.onRowHeightChanged = function () {
24588 // check for exists first - if the user is resetting the row height, then
24589 // it will be null (or undefined) momentarily until the next time the flatten
24590 // stage is called where the row will then update again with a new height
24591 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.rowNode.rowHeight)) {
24592 var heightPx_1 = this.rowNode.rowHeight + "px";
24593 this.allRowComps.forEach(function (rowComp) { return rowComp.getGui().style.height = heightPx_1; });
24594 }
24595 };
24596 RowController.prototype.addEventListener = function (eventType, listener) {
24597 if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {
24598 eventType = _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED;
24599 console.warn('AG Grid: Since version 11, event renderedRowRemoved is now called ' + _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
24600 }
24601 _super.prototype.addEventListener.call(this, eventType, listener);
24602 };
24603 RowController.prototype.removeEventListener = function (eventType, listener) {
24604 if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {
24605 eventType = _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED;
24606 console.warn('AG Grid: Since version 11, event renderedRowRemoved and rowRemoved is now called ' + _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
24607 }
24608 _super.prototype.removeEventListener.call(this, eventType, listener);
24609 };
24610 // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.
24611 RowController.prototype.destroyFirstPass = function () {
24612 this.active = false;
24613 // why do we have this method? shouldn't everything below be added as a destroy func beside
24614 // the corresponding create logic?
24615 this.setupRemoveAnimation();
24616 var event = this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
24617 this.dispatchEvent(event);
24618 this.beans.eventService.dispatchEvent(event);
24619 _super.prototype.destroy.call(this);
24620 };
24621 RowController.prototype.setupRemoveAnimation = function () {
24622 var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;
24623 if (rowStillVisibleJustNotInViewport) {
24624 // if the row is not rendered, but in viewport, it means it has moved,
24625 // so we animate the row out. if the new location is very far away,
24626 // the animation will be so fast the row will look like it's just disappeared,
24627 // so instead we animate to a position just outside the viewport.
24628 var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);
24629 this.setRowTop(rowTop);
24630 }
24631 else {
24632 this.allRowComps.forEach(function (rowComp) {
24633 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(rowComp.getGui(), 'ag-opacity-zero');
24634 });
24635 }
24636 };
24637 RowController.prototype.destroySecondPass = function () {
24638 this.allRowComps.forEach(function (c) { return c.destroy(); });
24639 this.allRowComps.length = 0;
24640 };
24641 RowController.prototype.onCellFocusChanged = function () {
24642 var rowFocused = this.beans.focusController.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);
24643 if (rowFocused !== this.rowFocused) {
24644 this.allRowComps.forEach(function (rowComp) {
24645 var eRow = rowComp.getGui();
24646 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-focus', rowFocused);
24647 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-no-focus', !rowFocused);
24648 });
24649 this.rowFocused = rowFocused;
24650 }
24651 // if we are editing, then moving the focus out of a row will stop editing
24652 if (!rowFocused && this.editingRow) {
24653 this.stopEditing(false);
24654 }
24655 };
24656 RowController.prototype.onPaginationChanged = function () {
24657 var currentPage = this.beans.paginationProxy.getCurrentPage();
24658 // it is possible this row is in the new page, but the page number has changed, which means
24659 // it needs to reposition itself relative to the new page
24660 if (this.paginationPage !== currentPage) {
24661 this.paginationPage = currentPage;
24662 this.onTopChanged();
24663 }
24664 };
24665 RowController.prototype.onTopChanged = function () {
24666 this.setRowTop(this.rowNode.rowTop);
24667 };
24668 RowController.prototype.onPaginationPixelOffsetChanged = function () {
24669 // the pixel offset is used when calculating rowTop to set on the row DIV
24670 this.onTopChanged();
24671 };
24672 // applies pagination offset, eg if on second page, and page height is 500px, then removes
24673 // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.
24674 // reverse will take the offset away rather than add.
24675 RowController.prototype.applyPaginationOffset = function (topPx, reverse) {
24676 if (reverse === void 0) { reverse = false; }
24677 if (this.rowNode.isRowPinned()) {
24678 return topPx;
24679 }
24680 var pixelOffset = this.beans.paginationProxy.getPixelOffset();
24681 var multiplier = reverse ? 1 : -1;
24682 return topPx + (pixelOffset * multiplier);
24683 };
24684 RowController.prototype.setRowTop = function (pixels) {
24685 // print layout uses normal flow layout for row positioning
24686 if (this.printLayout) {
24687 return;
24688 }
24689 // need to make sure rowTop is not null, as this can happen if the node was once
24690 // visible (ie parent group was expanded) but is now not visible
24691 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(pixels)) {
24692 var afterPaginationPixels = this.applyPaginationOffset(pixels);
24693 var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);
24694 var topPx_1 = afterScalingPixels + "px";
24695 var suppressRowTransform_1 = this.beans.gridOptionsWrapper.isSuppressRowTransform();
24696 this.allRowComps.forEach(function (rowComp) {
24697 var eGui = rowComp.getGui();
24698 if (suppressRowTransform_1) {
24699 eGui.style.top = topPx_1;
24700 }
24701 else {
24702 eGui.style.transform = "translateY(" + topPx_1 + ")";
24703 }
24704 });
24705 }
24706 };
24707 RowController.prototype.getRowNode = function () {
24708 return this.rowNode;
24709 };
24710 RowController.prototype.getRenderedCellForColumn = function (column) {
24711 var cellComps = this.allRowComps.map(function (rc) { return rc.getCellComp(column.getColId()); });
24712 var cellComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(cellComps, function (c) { return !!c; });
24713 if (cellComp) {
24714 return cellComp;
24715 }
24716 var spannedCellComps = this.allRowComps.map(function (rc) { return rc.getCellCompSpanned(column); });
24717 cellComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(spannedCellComps, function (c) { return !!c; });
24718 return cellComp || null;
24719 };
24720 RowController.prototype.onRowIndexChanged = function () {
24721 // we only bother updating if the rowIndex is present. if it is not present, it means this row
24722 // is child of a group node, and the group node was closed, it's the only way to have no row index.
24723 // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!
24724 if (this.rowNode.rowIndex != null) {
24725 this.onCellFocusChanged();
24726 this.updateRowIndexes();
24727 }
24728 };
24729 RowController.prototype.updateRowIndexes = function () {
24730 var _this = this;
24731 var rowIndexStr = this.rowNode.getRowIndexString();
24732 var rowIsEven = this.rowNode.rowIndex % 2 === 0;
24733 var rowIsEvenChanged = this.rowIsEven !== rowIsEven;
24734 var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();
24735 if (rowIsEvenChanged) {
24736 this.rowIsEven = rowIsEven;
24737 }
24738 this.allRowComps.forEach(function (rowComp) {
24739 var eRow = rowComp.getGui();
24740 eRow.setAttribute('row-index', rowIndexStr);
24741 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaRowIndex"])(eRow, headerRowCount + _this.rowNode.rowIndex + 1);
24742 if (!rowIsEvenChanged) {
24743 return;
24744 }
24745 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-even', rowIsEven);
24746 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-odd', !rowIsEven);
24747 });
24748 };
24749 // returns the pinned left container, either the normal one, or the embedded full with one if exists
24750 RowController.prototype.getPinnedLeftRowElement = function () {
24751 return this.leftRowComp ? this.leftRowComp.getGui() : undefined;
24752 };
24753 // returns the pinned right container, either the normal one, or the embedded full with one if exists
24754 RowController.prototype.getPinnedRightRowElement = function () {
24755 return this.rightRowComp ? this.rightRowComp.getGui() : undefined;
24756 };
24757 // returns the body container, either the normal one, or the embedded full with one if exists
24758 RowController.prototype.getBodyRowElement = function () {
24759 return this.centerRowComp ? this.centerRowComp.getGui() : undefined;
24760 };
24761 // returns the full width container
24762 RowController.prototype.getFullWidthRowElement = function () {
24763 return this.fullWidthRowComp ? this.fullWidthRowComp.getGui() : undefined;
24764 };
24765 RowController.DOM_DATA_KEY_RENDERED_ROW = 'renderedRow';
24766 return RowController;
24767}(_context_beanStub__WEBPACK_IMPORTED_MODULE_11__["BeanStub"]));
24768
24769
24770
24771/***/ }),
24772/* 106 */
24773/***/ (function(module, __webpack_exports__, __webpack_require__) {
24774
24775"use strict";
24776__webpack_require__.r(__webpack_exports__);
24777/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AngularRowUtils", function() { return AngularRowUtils; });
24778/**
24779 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
24780 * @version v25.3.0
24781 * @link http://www.ag-grid.com/
24782 * @license MIT
24783 */
24784var __assign = (undefined && undefined.__assign) || function () {
24785 __assign = Object.assign || function(t) {
24786 for (var s, i = 1, n = arguments.length; i < n; i++) {
24787 s = arguments[i];
24788 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24789 t[p] = s[p];
24790 }
24791 return t;
24792 };
24793 return __assign.apply(this, arguments);
24794};
24795var AngularRowUtils = /** @class */ (function () {
24796 function AngularRowUtils() {
24797 }
24798 AngularRowUtils.createChildScopeOrNull = function (rowNode, parentScope, gridOptionsWrapper) {
24799 var isAngularCompileRows = gridOptionsWrapper.isAngularCompileRows();
24800 if (!isAngularCompileRows) {
24801 return null;
24802 }
24803 var newChildScope = parentScope.$new();
24804 newChildScope.data = __assign({}, rowNode.data);
24805 newChildScope.rowNode = rowNode;
24806 newChildScope.context = gridOptionsWrapper.getContext();
24807 var destroyFunc = function () {
24808 newChildScope.$destroy();
24809 newChildScope.data = null;
24810 newChildScope.rowNode = null;
24811 newChildScope.context = null;
24812 };
24813 return {
24814 scope: newChildScope,
24815 scopeDestroyFunc: destroyFunc
24816 };
24817 };
24818 return AngularRowUtils;
24819}());
24820
24821
24822
24823/***/ }),
24824/* 107 */
24825/***/ (function(module, __webpack_exports__, __webpack_require__) {
24826
24827"use strict";
24828__webpack_require__.r(__webpack_exports__);
24829/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return CellComp; });
24830/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
24831/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
24832/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
24833/* harmony import */ var _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74);
24834/* harmony import */ var _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(108);
24835/* harmony import */ var _row_rowDragComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77);
24836/* harmony import */ var _cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(109);
24837/* harmony import */ var _dndSourceComp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(110);
24838/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(58);
24839/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(47);
24840/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13);
24841/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(26);
24842/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7);
24843/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(33);
24844/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(14);
24845/* harmony import */ var _utils_general__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(46);
24846/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(21);
24847/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(51);
24848/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(34);
24849/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(15);
24850/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(60);
24851/**
24852 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
24853 * @version v25.3.0
24854 * @link http://www.ag-grid.com/
24855 * @license MIT
24856 */
24857var __extends = (undefined && undefined.__extends) || (function () {
24858 var extendStatics = function (d, b) {
24859 extendStatics = Object.setPrototypeOf ||
24860 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
24861 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
24862 return extendStatics(d, b);
24863 };
24864 return function (d, b) {
24865 extendStatics(d, b);
24866 function __() { this.constructor = d; }
24867 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
24868 };
24869})();
24870var __assign = (undefined && undefined.__assign) || function () {
24871 __assign = Object.assign || function(t) {
24872 for (var s, i = 1, n = arguments.length; i < n; i++) {
24873 s = arguments[i];
24874 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24875 t[p] = s[p];
24876 }
24877 return t;
24878 };
24879 return __assign.apply(this, arguments);
24880};
24881
24882
24883
24884
24885
24886
24887
24888
24889
24890
24891
24892
24893
24894
24895
24896
24897
24898
24899
24900
24901
24902var CSS_CELL = 'ag-cell';
24903var CSS_CELL_VALUE = 'ag-cell-value';
24904var CSS_AUTO_HEIGHT = 'ag-cell-auto-height';
24905var CSS_RANGE_TOP = 'ag-cell-range-top';
24906var CSS_RANGE_RIGHT = 'ag-cell-range-right';
24907var CSS_RANGE_BOTTOM = 'ag-cell-range-bottom';
24908var CSS_RANGE_LEFT = 'ag-cell-range-left';
24909var CSS_CELL_FOCUS = 'ag-cell-focus';
24910var CSS_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';
24911var CSS_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';
24912var CSS_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';
24913var CSS_INLINE_EDITING = 'ag-cell-inline-editing';
24914var CSS_POPUP_EDITING = 'ag-cell-popup-editing';
24915var CSS_RANGE_SELECTED = 'ag-cell-range-selected';
24916var CSS_COLUMN_HOVER = 'ag-column-hover';
24917var CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';
24918var CSS_RANGE_CHART = 'ag-cell-range-chart';
24919var CSS_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';
24920var CSS_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';
24921var CSS_RANGE_HANDLE = 'ag-cell-range-handle';
24922var CellComp = /** @class */ (function (_super) {
24923 __extends(CellComp, _super);
24924 function CellComp(scope, beans, column, rowNode, rowComp, autoHeightCell, printLayout, eRow, editingRow) {
24925 var _this = _super.call(this) || this;
24926 _this.hasChartRange = false;
24927 _this.editingCell = false;
24928 _this.suppressRefreshCell = false;
24929 _this.tooltipFeatureEnabled = false;
24930 _this.scope = null;
24931 // every time we go into edit mode, or back again, this gets incremented.
24932 // it's the components way of dealing with the async nature of framework components,
24933 // so if a framework component takes a while to be created, we know if the object
24934 // is still relevant when creating is finished. eg we could click edit / un-edit 20
24935 // times before the first React edit component comes back - we should discard
24936 // the first 19.
24937 _this.cellEditorVersion = 0;
24938 _this.cellRendererVersion = 0;
24939 _this.scope = scope;
24940 _this.beans = beans;
24941 _this.column = column;
24942 _this.rowNode = rowNode;
24943 _this.rowComp = rowComp;
24944 _this.autoHeightCell = autoHeightCell;
24945 _this.printLayout = printLayout;
24946 _this.eRow = eRow;
24947 _this.createGridCellVo();
24948 _this.rangeSelectionEnabled = _this.beans.rangeController && beans.gridOptionsWrapper.isEnableRangeSelection();
24949 _this.cellFocused = _this.beans.focusController.isCellFocused(_this.cellPosition);
24950 _this.firstRightPinned = _this.column.isFirstRightPinned();
24951 _this.lastLeftPinned = _this.column.isLastLeftPinned();
24952 if (_this.rangeSelectionEnabled && _this.beans.rangeController) {
24953 var rangeController = _this.beans.rangeController;
24954 _this.rangeCount = rangeController.getCellRangeCount(_this.cellPosition);
24955 _this.hasChartRange = _this.getHasChartRange();
24956 }
24957 _this.getValueAndFormat();
24958 _this.setUsingWrapper();
24959 _this.chooseCellRenderer();
24960 _this.setupColSpan();
24961 _this.rowSpan = _this.column.getRowSpan(_this.rowNode);
24962 _this.setTemplate(_this.getCreateTemplate());
24963 _this.afterAttached();
24964 // if we are editing the row, then the cell needs to turn
24965 // into edit mode
24966 if (editingRow) {
24967 _this.startEditingIfEnabled();
24968 }
24969 return _this;
24970 }
24971 CellComp.prototype.getCreateTemplate = function () {
24972 var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? ' unselectable="on"' : '';
24973 var templateParts = [];
24974 var col = this.column;
24975 var width = this.getCellWidth();
24976 var left = this.modifyLeftForPrintLayout(this.getCellLeft());
24977 var valueToRender = this.getInitialValueToRender();
24978 var valueSanitised = Object(_utils_object__WEBPACK_IMPORTED_MODULE_10__["get"])(this.column, 'colDef.template', null) ? valueToRender : Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(valueToRender);
24979 this.tooltip = this.getToolTip();
24980 var tooltipSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(this.tooltip);
24981 var colIdSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(col.getId());
24982 var stylesFromColDef = this.preProcessStylesFromColDef();
24983 var cssClasses = this.getInitialCssClasses();
24984 var stylesForRowSpanning = this.getStylesForRowSpanning();
24985 var colIdxSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(this.beans.columnController.getAriaColumnIndex(this.column).toString());
24986 templateParts.push("<div");
24987 templateParts.push(" tabindex=\"-1\"");
24988 templateParts.push("" + unselectable); // THIS IS FOR IE ONLY so text selection doesn't bubble outside of the grid
24989 templateParts.push(" role=\"gridcell\"");
24990 templateParts.push(" aria-colindex=\"" + colIdxSanitised + "\"");
24991 templateParts.push(" comp-id=\"" + this.getCompId() + "\" ");
24992 templateParts.push(" col-id=\"" + colIdSanitised + "\"");
24993 templateParts.push(" class=\"" + Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(cssClasses.join(' ')) + "\"");
24994 if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips() && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(tooltipSanitised)) {
24995 templateParts.push(" title=\"" + tooltipSanitised + "\"");
24996 }
24997 if (this.rangeSelectionEnabled) {
24998 templateParts.push(" aria-selected=\"" + (this.rangeCount ? 'true' : 'false') + "\"");
24999 }
25000 templateParts.push(" style=\"width: " + Number(width) + "px; left: " + Number(left) + "px; " + Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(stylesFromColDef) + " " + Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(stylesForRowSpanning) + "\">");
25001 if (this.usingWrapper) {
25002 templateParts.push(this.getCellWrapperString(valueSanitised));
25003 }
25004 else if (valueSanitised != null) {
25005 templateParts.push(valueSanitised);
25006 }
25007 templateParts.push("</div>");
25008 return templateParts.join('');
25009 };
25010 CellComp.prototype.getCellWrapperString = function (value) {
25011 if (value === void 0) { value = ''; }
25012 var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? ' unselectable="on"' : '';
25013 var wrapper = /* html */ "<div ref=\"eCellWrapper\" class=\"ag-cell-wrapper\" role=\"presentation\">\n <span ref=\"eCellValue\" role=\"presentation\" class=\"" + CSS_CELL_VALUE + "\"" + unselectable + ">\n " + (value != null ? value : '') + "\n </span>\n </div>";
25014 return wrapper;
25015 };
25016 CellComp.prototype.getStylesForRowSpanning = function () {
25017 if (this.rowSpan === 1) {
25018 return '';
25019 }
25020 var singleRowHeight = this.beans.gridOptionsWrapper.getRowHeightAsNumber();
25021 var totalRowHeight = singleRowHeight * this.rowSpan;
25022 return "height: " + totalRowHeight + "px; z-index: 1;";
25023 };
25024 CellComp.prototype.afterAttached = function () {
25025 // all of these have dependencies on the eGui, so only do them after eGui is set
25026 this.addDomData();
25027 this.populateTemplate();
25028 this.createCellRendererInstance(true);
25029 this.angular1Compile();
25030 this.refreshHandle();
25031 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.tooltip)) {
25032 this.createTooltipFeatureIfNeeded();
25033 }
25034 };
25035 CellComp.prototype.createTooltipFeatureIfNeeded = function () {
25036 if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips() ||
25037 this.tooltipFeatureEnabled) {
25038 return;
25039 }
25040 this.createManagedBean(new _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__["TooltipFeature"](this), this.beans.context);
25041 this.tooltipFeatureEnabled = true;
25042 };
25043 CellComp.prototype.onColumnHover = function () {
25044 var isHovered = this.beans.columnHoverService.isHovered(this.column);
25045 this.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);
25046 };
25047 CellComp.prototype.onCellChanged = function (event) {
25048 var eventImpactsThisCell = event.column === this.column;
25049 if (eventImpactsThisCell) {
25050 this.refreshCell({});
25051 }
25052 };
25053 CellComp.prototype.getCellLeft = function () {
25054 var mostLeftCol;
25055 if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {
25056 mostLeftCol = Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["last"])(this.colsSpanning);
25057 }
25058 else {
25059 mostLeftCol = this.column;
25060 }
25061 return mostLeftCol.getLeft();
25062 };
25063 CellComp.prototype.getCellWidth = function () {
25064 if (!this.colsSpanning) {
25065 return this.column.getActualWidth();
25066 }
25067 return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);
25068 };
25069 CellComp.prototype.onFlashCells = function (event) {
25070 var cellId = this.beans.cellPositionUtils.createId(this.cellPosition);
25071 var shouldFlash = event.cells[cellId];
25072 if (shouldFlash) {
25073 this.animateCell('highlight');
25074 }
25075 };
25076 CellComp.prototype.setupColSpan = function () {
25077 // if no col span is active, then we don't set it up, as it would be wasteful of CPU
25078 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getComponentHolder().colSpan)) {
25079 return;
25080 }
25081 // because we are col spanning, a reorder of the cols can change what cols we are spanning over
25082 this.addManagedListener(this.beans.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));
25083 // because we are spanning over multiple cols, we check for width any time any cols width changes.
25084 // this is expensive - really we should be explicitly checking only the cols we are spanning over
25085 // instead of every col, however it would be tricky code to track the cols we are spanning over, so
25086 // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.
25087 this.addManagedListener(this.beans.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));
25088 this.colsSpanning = this.getColSpanningList();
25089 };
25090 CellComp.prototype.getColSpanningList = function () {
25091 var colSpan = this.column.getColSpan(this.rowNode);
25092 var colsSpanning = [];
25093 // if just one col, the col span is just the column we are in
25094 if (colSpan === 1) {
25095 colsSpanning.push(this.column);
25096 }
25097 else {
25098 var pointer = this.column;
25099 var pinned = this.column.getPinned();
25100 for (var i = 0; pointer && i < colSpan; i++) {
25101 colsSpanning.push(pointer);
25102 pointer = this.beans.columnController.getDisplayedColAfter(pointer);
25103 if (!pointer || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(pointer)) {
25104 break;
25105 }
25106 // we do not allow col spanning to span outside of pinned areas
25107 if (pinned !== pointer.getPinned()) {
25108 break;
25109 }
25110 }
25111 }
25112 return colsSpanning;
25113 };
25114 CellComp.prototype.onDisplayColumnsChanged = function () {
25115 var colsSpanning = this.getColSpanningList();
25116 if (!Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["areEqual"])(this.colsSpanning, colsSpanning)) {
25117 this.colsSpanning = colsSpanning;
25118 this.onWidthChanged();
25119 this.onLeftChanged(); // left changes when doing RTL
25120 }
25121 };
25122 CellComp.prototype.refreshAriaIndex = function () {
25123 var colIdx = this.beans.columnController.getAriaColumnIndex(this.column);
25124 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaColIndex"])(this.getGui(), colIdx);
25125 };
25126 CellComp.prototype.getInitialCssClasses = function () {
25127 var cssClasses = [CSS_CELL, CSS_NOT_INLINE_EDITING];
25128 // if we are putting the cell into a dummy container, to work out it's height,
25129 // then we don't put the height css in, as we want cell to fit height in that case.
25130 if (!this.autoHeightCell) {
25131 cssClasses.push(CSS_AUTO_HEIGHT);
25132 }
25133 var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();
25134 if (doingFocusCss && this.cellFocused) {
25135 // otherwise the class depends on the focus state
25136 cssClasses.push(CSS_CELL_FOCUS);
25137 }
25138 if (this.firstRightPinned) {
25139 cssClasses.push(CSS_FIRST_RIGHT_PINNED);
25140 }
25141 if (this.lastLeftPinned) {
25142 cssClasses.push(CSS_LAST_LEFT_PINNED);
25143 }
25144 if (this.beans.columnHoverService.isHovered(this.column)) {
25145 cssClasses.push(CSS_COLUMN_HOVER);
25146 }
25147 Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["pushAll"])(cssClasses, this.preProcessClassesFromColDef());
25148 Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["pushAll"])(cssClasses, this.preProcessCellClassRules());
25149 Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["pushAll"])(cssClasses, this.getInitialRangeClasses());
25150 // if using the wrapper, this class goes on the wrapper instead
25151 if (!this.usingWrapper) {
25152 cssClasses.push(CSS_CELL_VALUE);
25153 }
25154 this.wrapText = this.column.getColDef().wrapText == true;
25155 if (this.wrapText) {
25156 cssClasses.push(CSS_CELL_WRAP_TEXT);
25157 }
25158 return cssClasses;
25159 };
25160 CellComp.prototype.getInitialValueToRender = function () {
25161 // if using a cellRenderer, then render the html from the cell renderer if it exists
25162 if (this.usingCellRenderer) {
25163 if (typeof this.cellRendererGui === 'string') {
25164 return this.cellRendererGui;
25165 }
25166 return '';
25167 }
25168 var colDef = this.getComponentHolder();
25169 if (colDef.template) {
25170 // template is really only used for angular 1 - as people using ng1 are used to providing templates with
25171 // bindings in it. in ng2, people will hopefully want to provide components, not templates.
25172 return colDef.template;
25173 }
25174 if (colDef.templateUrl) {
25175 // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.
25176 // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would
25177 // not do these, but would follow a pattern that was friendly towards components, not templates.
25178 var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));
25179 return template || '';
25180 }
25181 return this.getValueToUse();
25182 };
25183 CellComp.prototype.getRenderedRow = function () {
25184 return this.rowComp;
25185 };
25186 CellComp.prototype.isSuppressNavigable = function () {
25187 return this.column.isSuppressNavigable(this.rowNode);
25188 };
25189 CellComp.prototype.getCellRenderer = function () {
25190 return this.cellRenderer;
25191 };
25192 CellComp.prototype.getCellEditor = function () {
25193 return this.cellEditor;
25194 };
25195 CellComp.prototype.onNewColumnsLoaded = function () {
25196 this.postProcessWrapText();
25197 this.postProcessCellClassRules();
25198 };
25199 CellComp.prototype.postProcessWrapText = function () {
25200 var newValue = this.column.getColDef().wrapText == true;
25201 if (newValue !== this.wrapText) {
25202 this.wrapText = newValue;
25203 this.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, this.wrapText);
25204 }
25205 };
25206 // + stop editing {forceRefresh: true, suppressFlash: true}
25207 // + event cellChanged {}
25208 // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything
25209 // + rowComp: event dataChanged {animate: update, newData: !update}
25210 // + rowComp: api refreshCells() {animate: true/false}
25211 // + rowRenderer: api softRefreshView() {}
25212 CellComp.prototype.refreshCell = function (params) {
25213 // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly
25214 if (this.suppressRefreshCell || this.editingCell) {
25215 return;
25216 }
25217 var colDef = this.getComponentHolder();
25218 var newData = params && params.newData;
25219 var suppressFlash = (params && params.suppressFlash) || colDef.suppressCellFlash;
25220 // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the
25221 // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe
25222 // printing the current time (which would be silly)???. Generally speaking
25223 // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's
25224 // best always refresh and take the performance hit rather than never refresh and users complaining in support
25225 // that cells are not updating.
25226 var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;
25227 var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;
25228 var oldValue = this.value;
25229 // get latest value without invoking the value formatter as we may not be updating the cell
25230 this.value = this.getValue();
25231 // for simple values only (not objects), see if the value is the same, and if it is, skip the refresh.
25232 // when never allow skipping after an edit, as after editing, we need to put the GUI back to the way
25233 // if was before the edit.
25234 var valuesDifferent = !this.valuesAreEqual(oldValue, this.value);
25235 var dataNeedsUpdating = forceRefresh || valuesDifferent;
25236 if (dataNeedsUpdating) {
25237 // now invoke the value formatter as we are going to update cell
25238 this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);
25239 // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.
25240 // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')
25241 // then we are not showing a movement in the stock price, rather we are showing different stock.
25242 var cellRendererRefreshed = newData ? false : this.attemptCellRendererRefresh();
25243 // we do the replace if not doing refresh, or if refresh was unsuccessful.
25244 // the refresh can be unsuccessful if we are using a framework (eg ng2 or react) and the framework
25245 // wrapper has the refresh method, but the underlying component doesn't
25246 if (!cellRendererRefreshed) {
25247 this.replaceContentsAfterRefresh();
25248 }
25249 // we don't want to flash the cells when processing a filter change, as otherwise the UI would
25250 // be to busy. see comment in FilterManager with regards processingFilterChange
25251 var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();
25252 var flashCell = !suppressFlash && !processingFilterChange &&
25253 (this.beans.gridOptionsWrapper.isEnableCellChangeFlash() || colDef.enableCellChangeFlash);
25254 if (flashCell) {
25255 this.flashCell();
25256 }
25257 // need to check rules. note, we ignore colDef classes and styles, these are assumed to be static
25258 this.postProcessStylesFromColDef();
25259 this.postProcessClassesFromColDef();
25260 }
25261 // we can't readily determine if the data in an angularjs template has changed, so here we just update
25262 // and recompile (if applicable)
25263 this.updateAngular1ScopeAndCompile();
25264 this.refreshToolTip();
25265 // we do cellClassRules even if the value has not changed, so that users who have rules that
25266 // look at other parts of the row (where the other part of the row might of changed) will work.
25267 this.postProcessCellClassRules();
25268 };
25269 // user can also call this via API
25270 CellComp.prototype.flashCell = function (delays) {
25271 var flashDelay = delays && delays.flashDelay;
25272 var fadeDelay = delays && delays.fadeDelay;
25273 this.animateCell('data-changed', flashDelay, fadeDelay);
25274 };
25275 CellComp.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {
25276 var _this = this;
25277 var fullName = "ag-cell-" + cssName;
25278 var animationFullName = "ag-cell-" + cssName + "-animation";
25279 var element = this.getGui();
25280 var gridOptionsWrapper = this.beans.gridOptionsWrapper;
25281 if (!flashDelay) {
25282 flashDelay = gridOptionsWrapper.getCellFlashDelay();
25283 }
25284 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(fadeDelay)) {
25285 fadeDelay = gridOptionsWrapper.getCellFadeDelay();
25286 }
25287 // we want to highlight the cells, without any animation
25288 this.addCssClass(fullName);
25289 this.removeCssClass(animationFullName);
25290 // then once that is applied, we remove the highlight with animation
25291 window.setTimeout(function () {
25292 _this.removeCssClass(fullName);
25293 _this.addCssClass(animationFullName);
25294 element.style.transition = "background-color " + fadeDelay + "ms";
25295 window.setTimeout(function () {
25296 // and then to leave things as we got them, we remove the animation
25297 _this.removeCssClass(animationFullName);
25298 element.style.removeProperty('transition');
25299 }, fadeDelay);
25300 }, flashDelay);
25301 };
25302 CellComp.prototype.replaceContentsAfterRefresh = function () {
25303 this.setUsingWrapper();
25304 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["clearElement"])(this.eCellValue);
25305 // remove old renderer component if it exists
25306 this.cellRenderer = this.beans.context.destroyBean(this.cellRenderer);
25307 this.cellRendererGui = null;
25308 // populate
25309 this.putDataIntoCellAfterRefresh();
25310 this.updateAngular1ScopeAndCompile();
25311 };
25312 CellComp.prototype.updateAngular1ScopeAndCompile = function () {
25313 if (this.beans.gridOptionsWrapper.isAngularCompileRows() && this.scope) {
25314 this.scope.data = __assign({}, this.rowNode.data);
25315 this.angular1Compile();
25316 }
25317 };
25318 CellComp.prototype.angular1Compile = function () {
25319 // if angular compiling, then need to also compile the cell again (angular compiling sucks, please wait...)
25320 if (this.beans.gridOptionsWrapper.isAngularCompileRows()) {
25321 var eGui = this.getGui();
25322 // only compile the node if it hasn't already been done
25323 // this prevents "orphaned" node leaks
25324 if (!eGui.classList.contains('ng-scope') || eGui.childElementCount === 0) {
25325 var compiledElement_1 = this.beans.$compile(eGui)(this.scope);
25326 this.addDestroyFunc(function () { return compiledElement_1.remove(); });
25327 }
25328 }
25329 };
25330 CellComp.prototype.postProcessStylesFromColDef = function () {
25331 var stylesToUse = this.processStylesFromColDef();
25332 if (stylesToUse) {
25333 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addStylesToElement"])(this.getGui(), stylesToUse);
25334 }
25335 };
25336 CellComp.prototype.preProcessStylesFromColDef = function () {
25337 return Object(_utils_general__WEBPACK_IMPORTED_MODULE_15__["cssStyleObjectToMarkup"])(this.processStylesFromColDef());
25338 };
25339 CellComp.prototype.processStylesFromColDef = function () {
25340 var colDef = this.getComponentHolder();
25341 if (colDef.cellStyle) {
25342 var cssToUse = void 0;
25343 if (typeof colDef.cellStyle === 'function') {
25344 var cellStyleParams = {
25345 column: this.column,
25346 value: this.value,
25347 colDef: colDef,
25348 data: this.rowNode.data,
25349 node: this.rowNode,
25350 rowIndex: this.rowNode.rowIndex,
25351 $scope: this.scope,
25352 api: this.beans.gridOptionsWrapper.getApi(),
25353 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25354 context: this.beans.gridOptionsWrapper.getContext(),
25355 };
25356 var cellStyleFunc = colDef.cellStyle;
25357 cssToUse = cellStyleFunc(cellStyleParams);
25358 }
25359 else {
25360 cssToUse = colDef.cellStyle;
25361 }
25362 return cssToUse;
25363 }
25364 };
25365 CellComp.prototype.postProcessClassesFromColDef = function () {
25366 var _this = this;
25367 this.processClassesFromColDef(function (className) { return _this.addCssClass(className); });
25368 };
25369 CellComp.prototype.preProcessClassesFromColDef = function () {
25370 var res = [];
25371 this.processClassesFromColDef(function (className) { return res.push(className); });
25372 return res;
25373 };
25374 CellComp.prototype.processClassesFromColDef = function (onApplicableClass) {
25375 var colDef = this.getComponentHolder();
25376 var cellClassParams = {
25377 value: this.value,
25378 data: this.rowNode.data,
25379 node: this.rowNode,
25380 colDef: colDef,
25381 rowIndex: this.rowNode.rowIndex,
25382 $scope: this.scope,
25383 api: this.beans.gridOptionsWrapper.getApi(),
25384 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25385 context: this.beans.gridOptionsWrapper.getContext()
25386 };
25387 this.beans.stylingService.processStaticCellClasses(colDef, cellClassParams, onApplicableClass);
25388 };
25389 CellComp.prototype.putDataIntoCellAfterRefresh = function () {
25390 // template gets preference, then cellRenderer, then do it ourselves
25391 var colDef = this.getComponentHolder();
25392 if (colDef.template) {
25393 // template is really only used for angular 1 - as people using ng1 are used to providing templates with
25394 // bindings in it. in ng2, people will hopefully want to provide components, not templates.
25395 this.eCellValue.innerHTML = colDef.template;
25396 }
25397 else if (colDef.templateUrl) {
25398 // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.
25399 // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would
25400 // not do these, but would follow a pattern that was friendly towards components, not templates.
25401 var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));
25402 if (template) {
25403 this.eCellValue.innerHTML = template;
25404 }
25405 }
25406 else {
25407 // we can switch from using a cell renderer back to the default if a user
25408 // is using cellRendererSelect
25409 this.chooseCellRenderer();
25410 if (this.usingCellRenderer) {
25411 this.createCellRendererInstance();
25412 }
25413 else {
25414 var valueToUse = this.getValueToUse();
25415 if (valueToUse != null) {
25416 this.eCellValue.innerHTML = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(valueToUse) || '';
25417 }
25418 }
25419 }
25420 };
25421 CellComp.prototype.attemptCellRendererRefresh = function () {
25422 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellRenderer) || !this.cellRenderer || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellRenderer.refresh)) {
25423 return false;
25424 }
25425 // if the cell renderer has a refresh method, we call this instead of doing a refresh
25426 var params = this.createCellRendererParams();
25427 // take any custom params off of the user
25428 var finalParams = this.beans.userComponentFactory.createFinalParams(this.getComponentHolder(), this.cellRendererType, params);
25429 var result = this.cellRenderer.refresh(finalParams);
25430 // NOTE on undefined: previous version of the cellRenderer.refresh() interface
25431 // returned nothing, if the method existed, we assumed it refreshed. so for
25432 // backwards compatibility, we assume if method exists and returns nothing,
25433 // that it was successful.
25434 return result === true || result === undefined;
25435 };
25436 CellComp.prototype.refreshToolTip = function () {
25437 var newTooltip = this.getToolTip();
25438 if (this.tooltip === newTooltip) {
25439 return;
25440 }
25441 this.createTooltipFeatureIfNeeded();
25442 var hasNewTooltip = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(newTooltip);
25443 if (hasNewTooltip && this.tooltip === newTooltip.toString()) {
25444 return;
25445 }
25446 this.tooltip = newTooltip;
25447 if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips()) {
25448 if (hasNewTooltip) {
25449 this.eCellValue.setAttribute('title', this.tooltip);
25450 }
25451 else {
25452 this.eCellValue.removeAttribute('title');
25453 }
25454 }
25455 };
25456 CellComp.prototype.valuesAreEqual = function (val1, val2) {
25457 // if the user provided an equals method, use that, otherwise do simple comparison
25458 var colDef = this.getComponentHolder();
25459 var equalsMethod = colDef ? colDef.equals : null;
25460 return equalsMethod ? equalsMethod(val1, val2) : val1 === val2;
25461 };
25462 CellComp.prototype.getToolTip = function () {
25463 var colDef = this.getComponentHolder();
25464 var data = this.rowNode.data;
25465 if (colDef.tooltipField && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(data)) {
25466 return Object(_utils_object__WEBPACK_IMPORTED_MODULE_10__["getValueUsingField"])(data, colDef.tooltipField, this.column.isTooltipFieldContainsDots());
25467 }
25468 var valueGetter = colDef.tooltipValueGetter;
25469 if (valueGetter) {
25470 return valueGetter(__assign(__assign({ api: this.beans.gridOptionsWrapper.getApi(), columnApi: this.beans.gridOptionsWrapper.getColumnApi(), context: this.beans.gridOptionsWrapper.getContext() }, this.getTooltipParams()), { value: this.value }));
25471 }
25472 return null;
25473 };
25474 CellComp.prototype.getTooltipParams = function () {
25475 return {
25476 location: 'cell',
25477 colDef: this.getComponentHolder(),
25478 column: this.getColumn(),
25479 rowIndex: this.cellPosition.rowIndex,
25480 node: this.rowNode,
25481 data: this.rowNode.data,
25482 value: this.getTooltipText(),
25483 valueFormatted: this.valueFormatted,
25484 };
25485 };
25486 CellComp.prototype.getTooltipText = function (escape) {
25487 if (escape === void 0) { escape = true; }
25488 return escape ? Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(this.tooltip) : this.tooltip;
25489 };
25490 CellComp.prototype.processCellClassRules = function (onApplicableClass, onNotApplicableClass) {
25491 var colDef = this.getComponentHolder();
25492 var cellClassParams = {
25493 value: this.value,
25494 data: this.rowNode.data,
25495 node: this.rowNode,
25496 colDef: colDef,
25497 rowIndex: this.cellPosition.rowIndex,
25498 api: this.beans.gridOptionsWrapper.getApi(),
25499 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25500 $scope: this.scope,
25501 context: this.beans.gridOptionsWrapper.getContext()
25502 };
25503 this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, onApplicableClass, onNotApplicableClass);
25504 };
25505 CellComp.prototype.postProcessCellClassRules = function () {
25506 var _this = this;
25507 this.processCellClassRules(function (className) { return _this.addCssClass(className); }, function (className) { return _this.removeCssClass(className); });
25508 };
25509 CellComp.prototype.preProcessCellClassRules = function () {
25510 var res = [];
25511 this.processCellClassRules(function (className) { return res.push(className); }, function (_) {
25512 // not catered for, if creating, no need
25513 // to remove class as it was never there
25514 });
25515 return res;
25516 };
25517 // a wrapper is used when we are putting a selection checkbox in the cell with the value
25518 CellComp.prototype.setUsingWrapper = function () {
25519 var colDef = this.getComponentHolder();
25520 // never allow selection or dragging on pinned rows
25521 if (this.rowNode.rowPinned) {
25522 this.usingWrapper = false;
25523 this.includeSelectionComponent = false;
25524 this.includeRowDraggingComponent = false;
25525 this.includeDndSourceComponent = false;
25526 return;
25527 }
25528 var cbSelectionIsFunc = typeof colDef.checkboxSelection === 'function';
25529 var rowDraggableIsFunc = typeof colDef.rowDrag === 'function';
25530 var dndSourceIsFunc = typeof colDef.dndSource === 'function';
25531 this.includeSelectionComponent = cbSelectionIsFunc || colDef.checkboxSelection === true;
25532 this.includeRowDraggingComponent = rowDraggableIsFunc || colDef.rowDrag === true;
25533 this.includeDndSourceComponent = dndSourceIsFunc || colDef.dndSource === true;
25534 var enableTextSelection = this.beans.gridOptionsWrapper.isEnableCellTextSelection();
25535 this.usingWrapper = enableTextSelection || this.includeRowDraggingComponent || this.includeSelectionComponent || this.includeDndSourceComponent;
25536 };
25537 CellComp.prototype.chooseCellRenderer = function () {
25538 // template gets preference, then cellRenderer, then do it ourselves
25539 var colDef = this.getComponentHolder();
25540 // templates are for ng1, ideally we wouldn't have these, they are ng1 support
25541 // inside the core which is bad
25542 if (colDef.template || colDef.templateUrl) {
25543 this.usingCellRenderer = false;
25544 return;
25545 }
25546 var params = this.createCellRendererParams();
25547 if (this.rowNode.rowPinned &&
25548 this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'pinnedRowCellRenderer', params)) {
25549 this.cellRendererType = CellComp.CELL_RENDERER_TYPE_PINNED;
25550 this.usingCellRenderer = true;
25551 }
25552 else if (this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'cellRenderer', params)) {
25553 this.cellRendererType = CellComp.CELL_RENDERER_TYPE_NORMAL;
25554 this.usingCellRenderer = true;
25555 }
25556 else {
25557 this.usingCellRenderer = false;
25558 }
25559 };
25560 CellComp.prototype.createCellRendererInstance = function (useTaskService) {
25561 var _this = this;
25562 if (useTaskService === void 0) { useTaskService = false; }
25563 if (!this.usingCellRenderer) {
25564 return;
25565 }
25566 // never use task service if angularCompileRows=true, as that assume the cell renderers
25567 // are finished when the row is created. also we never use it if animation frame service
25568 // is turned off.
25569 // and lastly we never use it if doing auto-height, as the auto-height service checks the
25570 // row height directly after the cell is created, it doesn't wait around for the tasks to complete
25571 var angularCompileRows = this.beans.gridOptionsWrapper.isAngularCompileRows();
25572 var suppressAnimationFrame = this.beans.gridOptionsWrapper.isSuppressAnimationFrame();
25573 if (angularCompileRows || suppressAnimationFrame || this.autoHeightCell) {
25574 useTaskService = false;
25575 }
25576 var params = this.createCellRendererParams();
25577 this.cellRendererVersion++;
25578 var callback = this.afterCellRendererCreated.bind(this, this.cellRendererVersion);
25579 var cellRendererTypeNormal = this.cellRendererType === CellComp.CELL_RENDERER_TYPE_NORMAL;
25580 this.createCellRendererFunc = function () {
25581 _this.createCellRendererFunc = null;
25582 // this can return null in the event that the user has switched from a renderer component to nothing, for example
25583 // when using a cellRendererSelect to return a component or null depending on row data etc
25584 var componentPromise = _this.beans.userComponentFactory.newCellRenderer(_this.getComponentHolder(), params, !cellRendererTypeNormal);
25585 if (componentPromise) {
25586 componentPromise.then(callback);
25587 }
25588 };
25589 if (useTaskService) {
25590 this.beans.taskQueue.createTask(this.createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');
25591 }
25592 else {
25593 this.createCellRendererFunc();
25594 }
25595 };
25596 CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRenderer) {
25597 var cellRendererNotRequired = !this.isAlive() || cellRendererVersion !== this.cellRendererVersion;
25598 if (cellRendererNotRequired) {
25599 this.beans.context.destroyBean(cellRenderer);
25600 return;
25601 }
25602 this.cellRenderer = cellRenderer;
25603 this.cellRendererGui = this.cellRenderer.getGui();
25604 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellRendererGui)) {
25605 return;
25606 }
25607 // if async components, then it's possible the user started editing since this call was made
25608 if (!this.editingCell) {
25609 this.eCellValue.appendChild(this.cellRendererGui);
25610 }
25611 };
25612 CellComp.prototype.createCellRendererParams = function () {
25613 var _this = this;
25614 return {
25615 value: this.value,
25616 valueFormatted: this.valueFormatted,
25617 getValue: this.getValue.bind(this),
25618 setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },
25619 formatValue: this.formatValue.bind(this),
25620 data: this.rowNode.data,
25621 node: this.rowNode,
25622 colDef: this.getComponentHolder(),
25623 column: this.column,
25624 $scope: this.scope,
25625 rowIndex: this.cellPosition.rowIndex,
25626 api: this.beans.gridOptionsWrapper.getApi(),
25627 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25628 context: this.beans.gridOptionsWrapper.getContext(),
25629 refreshCell: this.refreshCell.bind(this),
25630 eGridCell: this.getGui(),
25631 eParentOfValue: this.eCellValue,
25632 registerRowDragger: function (rowDraggerElement, dragStartPixels) { return _this.addRowDragging(rowDraggerElement, dragStartPixels); },
25633 // these bits are not documented anywhere, so we could drop them?
25634 // it was in the olden days to allow user to register for when rendered
25635 // row was removed (the row comp was removed), however now that the user
25636 // can provide components for cells, the destroy method gets call when this
25637 // happens so no longer need to fire event.
25638 addRowCompListener: this.rowComp ? this.rowComp.addEventListener.bind(this.rowComp) : null,
25639 addRenderedRowListener: function (eventType, listener) {
25640 console.warn('AG Grid: since AG Grid .v11, params.addRenderedRowListener() is now params.addRowCompListener()');
25641 if (_this.rowComp) {
25642 _this.rowComp.addEventListener(eventType, listener);
25643 }
25644 }
25645 };
25646 };
25647 CellComp.prototype.formatValue = function (value) {
25648 var valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, value);
25649 return valueFormatted != null ? valueFormatted : value;
25650 };
25651 CellComp.prototype.getValueToUse = function () {
25652 return this.valueFormatted != null ? this.valueFormatted : this.value;
25653 };
25654 CellComp.prototype.getValueAndFormat = function () {
25655 this.value = this.getValue();
25656 this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);
25657 };
25658 CellComp.prototype.getValue = function () {
25659 // if we don't check this, then the grid will render leaf groups as open even if we are not
25660 // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow
25661 // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded
25662 // them via the API, or user user expanded them in the UI before turning on pivot mode
25663 var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnController.isPivotMode();
25664 var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;
25665 // are we showing group footers
25666 var groupFootersEnabled = this.beans.gridOptionsWrapper.isGroupIncludeFooter();
25667 // if doing footers, we normally don't show agg data at group level when group is open
25668 var groupAlwaysShowAggData = this.beans.gridOptionsWrapper.isGroupSuppressBlankHeader();
25669 // if doing grouping and footers, we don't want to include the agg value
25670 // in the header when the group is open
25671 var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;
25672 var value = this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);
25673 return value;
25674 };
25675 CellComp.prototype.onMouseEvent = function (eventName, mouseEvent) {
25676 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_16__["isStopPropagationForAgGrid"])(mouseEvent)) {
25677 return;
25678 }
25679 switch (eventName) {
25680 case 'click':
25681 this.onCellClicked(mouseEvent);
25682 break;
25683 case 'mousedown':
25684 this.onMouseDown(mouseEvent);
25685 break;
25686 case 'dblclick':
25687 this.onCellDoubleClicked(mouseEvent);
25688 break;
25689 case 'mouseout':
25690 this.onMouseOut(mouseEvent);
25691 break;
25692 case 'mouseover':
25693 this.onMouseOver(mouseEvent);
25694 break;
25695 }
25696 };
25697 CellComp.prototype.dispatchCellContextMenuEvent = function (event) {
25698 var colDef = this.getComponentHolder();
25699 var cellContextMenuEvent = this.createEvent(event, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_CONTEXT_MENU);
25700 this.beans.eventService.dispatchEvent(cellContextMenuEvent);
25701 if (colDef.onCellContextMenu) {
25702 // to make the callback async, do in a timeout
25703 window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);
25704 }
25705 };
25706 CellComp.prototype.createEvent = function (domEvent, eventType) {
25707 var event = {
25708 type: eventType,
25709 node: this.rowNode,
25710 data: this.rowNode.data,
25711 value: this.value,
25712 column: this.column,
25713 colDef: this.getComponentHolder(),
25714 context: this.beans.gridOptionsWrapper.getContext(),
25715 api: this.beans.gridApi,
25716 columnApi: this.beans.columnApi,
25717 rowPinned: this.rowNode.rowPinned,
25718 event: domEvent,
25719 rowIndex: this.rowNode.rowIndex
25720 };
25721 // because we are hacking in $scope for angular 1, we have to de-reference
25722 if (this.scope) {
25723 event.$scope = this.scope;
25724 }
25725 return event;
25726 };
25727 CellComp.prototype.onMouseOut = function (mouseEvent) {
25728 var cellMouseOutEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_MOUSE_OUT);
25729 this.beans.eventService.dispatchEvent(cellMouseOutEvent);
25730 this.beans.columnHoverService.clearMouseOver();
25731 };
25732 CellComp.prototype.onMouseOver = function (mouseEvent) {
25733 var cellMouseOverEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_MOUSE_OVER);
25734 this.beans.eventService.dispatchEvent(cellMouseOverEvent);
25735 this.beans.columnHoverService.setMouseOver([this.column]);
25736 };
25737 CellComp.prototype.onCellDoubleClicked = function (mouseEvent) {
25738 var colDef = this.getComponentHolder();
25739 // always dispatch event to eventService
25740 var cellDoubleClickedEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_DOUBLE_CLICKED);
25741 this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);
25742 // check if colDef also wants to handle event
25743 if (typeof colDef.onCellDoubleClicked === 'function') {
25744 // to make the callback async, do in a timeout
25745 window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);
25746 }
25747 var editOnDoubleClick = !this.beans.gridOptionsWrapper.isSingleClickEdit()
25748 && !this.beans.gridOptionsWrapper.isSuppressClickEdit();
25749 if (editOnDoubleClick) {
25750 this.startRowOrCellEdit();
25751 }
25752 };
25753 // called by rowRenderer when user navigates via tab key
25754 CellComp.prototype.startRowOrCellEdit = function (keyPress, charPress) {
25755 if (this.beans.gridOptionsWrapper.isFullRowEdit()) {
25756 this.rowComp.startRowEditing(keyPress, charPress, this);
25757 }
25758 else {
25759 this.startEditingIfEnabled(keyPress, charPress, true);
25760 }
25761 };
25762 CellComp.prototype.isCellEditable = function () {
25763 return this.column.isCellEditable(this.rowNode);
25764 };
25765 // either called internally if single cell editing, or called by rowRenderer if row editing
25766 CellComp.prototype.startEditingIfEnabled = function (keyPress, charPress, cellStartedEdit) {
25767 if (keyPress === void 0) { keyPress = null; }
25768 if (charPress === void 0) { charPress = null; }
25769 if (cellStartedEdit === void 0) { cellStartedEdit = false; }
25770 // don't do it if not editable
25771 if (!this.isCellEditable()) {
25772 return;
25773 }
25774 // don't do it if already editing
25775 if (this.editingCell) {
25776 return;
25777 }
25778 this.editingCell = true;
25779 this.cellEditorVersion++;
25780 var callback = this.afterCellEditorCreated.bind(this, this.cellEditorVersion);
25781 var params = this.createCellEditorParams(keyPress, charPress, cellStartedEdit);
25782 this.createCellEditor(params).then(callback);
25783 // if we don't do this, and editor component is async, then there will be a period
25784 // when the component isn't present and keyboard navigation won't work - so example
25785 // of user hitting tab quickly (more quickly than renderers getting created) won't work
25786 var cellEditorAsync = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellEditor);
25787 if (cellEditorAsync && cellStartedEdit) {
25788 this.focusCell(true);
25789 }
25790 };
25791 CellComp.prototype.createCellEditor = function (params) {
25792 var _this = this;
25793 var cellEditorPromise = this.beans.userComponentFactory.newCellEditor(this.column.getColDef(), params);
25794 return cellEditorPromise.then(function (cellEditor) {
25795 var cellEditorComp = cellEditor;
25796 var isPopup = cellEditorComp.isPopup && cellEditorComp.isPopup();
25797 if (!isPopup) {
25798 return cellEditorComp;
25799 }
25800 if (_this.beans.gridOptionsWrapper.isFullRowEdit()) {
25801 console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +
25802 '- either turn off fullRowEdit, or stop using popup editors.');
25803 }
25804 // if a popup, then we wrap in a popup editor and return the popup
25805 var popupEditorWrapper = new _cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_6__["PopupEditorWrapper"](cellEditorComp);
25806 _this.beans.context.createBean(popupEditorWrapper);
25807 popupEditorWrapper.init(params);
25808 return popupEditorWrapper;
25809 });
25810 };
25811 CellComp.prototype.afterCellEditorCreated = function (cellEditorVersion, cellEditor) {
25812 // if editingCell=false, means user cancelled the editor before component was ready.
25813 // if versionMismatch, then user cancelled the edit, then started the edit again, and this
25814 // is the first editor which is now stale.
25815 var versionMismatch = cellEditorVersion !== this.cellEditorVersion;
25816 var cellEditorNotNeeded = versionMismatch || !this.editingCell;
25817 if (cellEditorNotNeeded) {
25818 this.beans.context.destroyBean(cellEditor);
25819 return;
25820 }
25821 var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();
25822 if (editingCancelledByUserComp) {
25823 this.beans.context.destroyBean(cellEditor);
25824 this.editingCell = false;
25825 return;
25826 }
25827 if (!cellEditor.getGui) {
25828 console.warn("AG Grid: cellEditor for column " + this.column.getId() + " is missing getGui() method");
25829 // no getGui, for React guys, see if they attached a react component directly
25830 if (cellEditor.render) {
25831 console.warn("AG Grid: we found 'render' on the component, are you trying to set a React renderer but added it as colDef.cellEditor instead of colDef.cellEditorFmk?");
25832 }
25833 this.beans.context.destroyBean(cellEditor);
25834 this.editingCell = false;
25835 return;
25836 }
25837 this.cellEditor = cellEditor;
25838 this.cellEditorInPopup = cellEditor.isPopup !== undefined && cellEditor.isPopup();
25839 this.setInlineEditingClass();
25840 if (this.cellEditorInPopup) {
25841 this.addPopupCellEditor();
25842 }
25843 else {
25844 this.addInCellEditor();
25845 }
25846 if (cellEditor.afterGuiAttached) {
25847 cellEditor.afterGuiAttached();
25848 }
25849 var event = this.createEvent(null, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STARTED);
25850 this.beans.eventService.dispatchEvent(event);
25851 };
25852 CellComp.prototype.addInCellEditor = function () {
25853 var eGui = this.getGui();
25854 // if focus is inside the cell, we move focus to the cell itself
25855 // before removing it's contents, otherwise errors could be thrown.
25856 if (eGui.contains(document.activeElement)) {
25857 eGui.focus();
25858 }
25859 this.clearCellElement();
25860 if (this.cellEditor) {
25861 eGui.appendChild(this.cellEditor.getGui());
25862 }
25863 this.angular1Compile();
25864 };
25865 CellComp.prototype.addPopupCellEditor = function () {
25866 var _this = this;
25867 var ePopupGui = this.cellEditor && this.cellEditor.getGui();
25868 if (!ePopupGui) {
25869 return;
25870 }
25871 var popupService = this.beans.popupService;
25872 var useModelPopup = this.beans.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus();
25873 var position = this.cellEditor && this.cellEditor.getPopupPosition ? this.cellEditor.getPopupPosition() : 'over';
25874 var params = {
25875 column: this.column,
25876 rowNode: this.rowNode,
25877 type: 'popupCellEditor',
25878 eventSource: this.getGui(),
25879 ePopup: ePopupGui,
25880 keepWithinBounds: true
25881 };
25882 var positionCallback = position === 'under' ?
25883 popupService.positionPopupUnderComponent.bind(popupService, params)
25884 : popupService.positionPopupOverComponent.bind(popupService, params);
25885 var addPopupRes = popupService.addPopup({
25886 modal: useModelPopup,
25887 eChild: ePopupGui,
25888 closeOnEsc: true,
25889 closedCallback: function () { _this.onPopupEditorClosed(); },
25890 anchorToElement: this.getGui(),
25891 positionCallback: positionCallback
25892 });
25893 if (addPopupRes) {
25894 this.hideEditorPopup = addPopupRes.hideFunc;
25895 }
25896 this.angular1Compile();
25897 };
25898 CellComp.prototype.onPopupEditorClosed = function () {
25899 // we only call stopEditing if we are editing, as
25900 // it's possible the popup called 'stop editing'
25901 // before this, eg if 'enter key' was pressed on
25902 // the editor.
25903 if (!this.editingCell) {
25904 return;
25905 }
25906 // note: this only happens when use clicks outside of the grid. if use clicks on another
25907 // cell, then the editing will have already stopped on this cell
25908 this.stopRowOrCellEdit();
25909 };
25910 // if we are editing inline, then we don't have the padding in the cell (set in the themes)
25911 // to allow the text editor full access to the entire cell
25912 CellComp.prototype.setInlineEditingClass = function () {
25913 if (!this.isAlive()) {
25914 return;
25915 }
25916 // ag-cell-inline-editing - appears when user is inline editing
25917 // ag-cell-not-inline-editing - appears when user is no inline editing
25918 // ag-cell-popup-editing - appears when user is editing cell in popup (appears on the cell, not on the popup)
25919 // note: one of {ag-cell-inline-editing, ag-cell-not-inline-editing} is always present, they toggle.
25920 // however {ag-cell-popup-editing} shows when popup, so you have both {ag-cell-popup-editing}
25921 // and {ag-cell-not-inline-editing} showing at the same time.
25922 var editingInline = this.editingCell && !this.cellEditorInPopup;
25923 var popupEditorShowing = this.editingCell && this.cellEditorInPopup;
25924 this.addOrRemoveCssClass(CSS_INLINE_EDITING, editingInline);
25925 this.addOrRemoveCssClass(CSS_NOT_INLINE_EDITING, !editingInline);
25926 this.addOrRemoveCssClass(CSS_POPUP_EDITING, popupEditorShowing);
25927 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui().parentNode, "ag-row-inline-editing", editingInline);
25928 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui().parentNode, "ag-row-not-inline-editing", !editingInline);
25929 };
25930 CellComp.prototype.createCellEditorParams = function (keyPress, charPress, cellStartedEdit) {
25931 return {
25932 value: this.getValue(),
25933 keyPress: keyPress,
25934 charPress: charPress,
25935 column: this.column,
25936 colDef: this.column.getColDef(),
25937 rowIndex: this.cellPosition.rowIndex,
25938 node: this.rowNode,
25939 data: this.rowNode.data,
25940 api: this.beans.gridOptionsWrapper.getApi(),
25941 cellStartedEdit: cellStartedEdit,
25942 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25943 context: this.beans.gridOptionsWrapper.getContext(),
25944 $scope: this.scope,
25945 onKeyDown: this.onKeyDown.bind(this),
25946 stopEditing: this.stopEditingAndFocus.bind(this),
25947 eGridCell: this.getGui(),
25948 parseValue: this.parseValue.bind(this),
25949 formatValue: this.formatValue.bind(this)
25950 };
25951 };
25952 // cell editors call this, when they want to stop for reasons other
25953 // than what we pick up on. eg selecting from a dropdown ends editing.
25954 CellComp.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {
25955 if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }
25956 this.stopRowOrCellEdit();
25957 this.focusCell(true);
25958 if (!suppressNavigateAfterEdit) {
25959 this.navigateAfterEdit();
25960 }
25961 };
25962 CellComp.prototype.parseValue = function (newValue) {
25963 var colDef = this.getComponentHolder();
25964 var params = {
25965 node: this.rowNode,
25966 data: this.rowNode.data,
25967 oldValue: this.value,
25968 newValue: newValue,
25969 colDef: colDef,
25970 column: this.column,
25971 api: this.beans.gridOptionsWrapper.getApi(),
25972 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25973 context: this.beans.gridOptionsWrapper.getContext()
25974 };
25975 var valueParser = colDef.valueParser;
25976 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(valueParser) ? this.beans.expressionService.evaluate(valueParser, params) : newValue;
25977 };
25978 CellComp.prototype.focusCell = function (forceBrowserFocus) {
25979 if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }
25980 this.beans.focusController.setFocusedCell(this.cellPosition.rowIndex, this.column, this.rowNode.rowPinned, forceBrowserFocus);
25981 };
25982 CellComp.prototype.setFocusInOnEditor = function () {
25983 if (this.editingCell) {
25984 if (this.cellEditor && this.cellEditor.focusIn) {
25985 // if the editor is present, then we just focus it
25986 this.cellEditor.focusIn();
25987 }
25988 else {
25989 // if the editor is not present, it means async cell editor (eg React fibre)
25990 // and we are trying to set focus before the cell editor is present, so we
25991 // focus the cell instead
25992 this.focusCell(true);
25993 }
25994 }
25995 };
25996 CellComp.prototype.isEditing = function () {
25997 return this.editingCell;
25998 };
25999 CellComp.prototype.onKeyDown = function (event) {
26000 var key = event.which || event.keyCode;
26001 switch (key) {
26002 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].ENTER:
26003 this.onEnterKeyDown(event);
26004 break;
26005 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].F2:
26006 this.onF2KeyDown();
26007 break;
26008 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].ESCAPE:
26009 this.onEscapeKeyDown();
26010 break;
26011 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].TAB:
26012 this.onTabKeyDown(event);
26013 break;
26014 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].BACKSPACE:
26015 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DELETE:
26016 this.onBackspaceOrDeleteKeyPressed(key);
26017 break;
26018 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DOWN:
26019 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].UP:
26020 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].RIGHT:
26021 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].LEFT:
26022 this.onNavigationKeyPressed(event, key);
26023 break;
26024 }
26025 };
26026 CellComp.prototype.setFocusOutOnEditor = function () {
26027 if (this.editingCell && this.cellEditor && this.cellEditor.focusOut) {
26028 this.cellEditor.focusOut();
26029 }
26030 };
26031 CellComp.prototype.onNavigationKeyPressed = function (event, key) {
26032 if (this.editingCell) {
26033 return;
26034 }
26035 if (event.shiftKey && this.rangeSelectionEnabled) {
26036 this.onShiftRangeSelect(key);
26037 }
26038 else {
26039 this.beans.rowRenderer.navigateToNextCell(event, key, this.cellPosition, true);
26040 }
26041 // if we don't prevent default, the grid will scroll with the navigation keys
26042 event.preventDefault();
26043 };
26044 CellComp.prototype.onShiftRangeSelect = function (key) {
26045 if (!this.beans.rangeController) {
26046 return;
26047 }
26048 var endCell = this.beans.rangeController.extendLatestRangeInDirection(key);
26049 if (endCell) {
26050 this.beans.rowRenderer.ensureCellVisible(endCell);
26051 }
26052 };
26053 CellComp.prototype.onTabKeyDown = function (event) {
26054 this.beans.rowRenderer.onTabKeyDown(this, event);
26055 };
26056 CellComp.prototype.onBackspaceOrDeleteKeyPressed = function (key) {
26057 if (!this.editingCell) {
26058 this.startRowOrCellEdit(key);
26059 }
26060 };
26061 CellComp.prototype.onEnterKeyDown = function (e) {
26062 if (this.editingCell || this.rowComp.isEditing()) {
26063 this.stopEditingAndFocus();
26064 }
26065 else {
26066 if (this.beans.gridOptionsWrapper.isEnterMovesDown()) {
26067 this.beans.rowRenderer.navigateToNextCell(null, _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DOWN, this.cellPosition, false);
26068 }
26069 else {
26070 this.startRowOrCellEdit(_constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].ENTER);
26071 if (this.editingCell) {
26072 // if we started editing, then we need to prevent default, otherwise the Enter action can get
26073 // applied to the cell editor. this happened, for example, with largeTextCellEditor where not
26074 // preventing default results in a 'new line' character getting inserted in the text area
26075 // when the editing was started
26076 e.preventDefault();
26077 }
26078 }
26079 }
26080 };
26081 CellComp.prototype.navigateAfterEdit = function () {
26082 var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();
26083 if (fullRowEdit) {
26084 return;
26085 }
26086 var enterMovesDownAfterEdit = this.beans.gridOptionsWrapper.isEnterMovesDownAfterEdit();
26087 if (enterMovesDownAfterEdit) {
26088 this.beans.rowRenderer.navigateToNextCell(null, _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DOWN, this.cellPosition, false);
26089 }
26090 };
26091 CellComp.prototype.onF2KeyDown = function () {
26092 if (!this.editingCell) {
26093 this.startRowOrCellEdit(_constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].F2);
26094 }
26095 };
26096 CellComp.prototype.onEscapeKeyDown = function () {
26097 if (this.editingCell) {
26098 this.stopRowOrCellEdit(true);
26099 this.focusCell(true);
26100 }
26101 };
26102 CellComp.prototype.onKeyPress = function (event) {
26103 // check this, in case focus is on a (for example) a text field inside the cell,
26104 // in which cse we should not be listening for these key pressed
26105 var eventTarget = Object(_utils_event__WEBPACK_IMPORTED_MODULE_16__["getTarget"])(event);
26106 var eventOnChildComponent = eventTarget !== this.getGui();
26107 if (eventOnChildComponent || this.editingCell) {
26108 return;
26109 }
26110 var pressedChar = String.fromCharCode(event.charCode);
26111 if (pressedChar === ' ') {
26112 this.onSpaceKeyPressed(event);
26113 }
26114 else if (Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_17__["isEventFromPrintableCharacter"])(event)) {
26115 this.startRowOrCellEdit(null, pressedChar);
26116 // if we don't prevent default, then the keypress also gets applied to the text field
26117 // (at least when doing the default editor), but we need to allow the editor to decide
26118 // what it wants to do. we only do this IF editing was started - otherwise it messes
26119 // up when the use is not doing editing, but using rendering with text fields in cellRenderer
26120 // (as it would block the the user from typing into text fields).
26121 event.preventDefault();
26122 }
26123 };
26124 CellComp.prototype.onSpaceKeyPressed = function (event) {
26125 var gridOptionsWrapper = this.beans.gridOptionsWrapper;
26126 if (!this.editingCell && gridOptionsWrapper.isRowSelection()) {
26127 var currentSelection = this.rowNode.isSelected();
26128 var newSelection = !currentSelection;
26129 if (newSelection || !gridOptionsWrapper.isSuppressRowDeselection()) {
26130 var groupSelectsFiltered = this.beans.gridOptionsWrapper.isGroupSelectsFiltered();
26131 var updatedCount = this.rowNode.setSelectedParams({
26132 newValue: newSelection,
26133 rangeSelect: event.shiftKey,
26134 groupSelectsFiltered: groupSelectsFiltered
26135 });
26136 if (currentSelection === undefined && updatedCount === 0) {
26137 this.rowNode.setSelectedParams({
26138 newValue: false,
26139 rangeSelect: event.shiftKey,
26140 groupSelectsFiltered: groupSelectsFiltered
26141 });
26142 }
26143 }
26144 }
26145 // prevent default as space key, by default, moves browser scroll down
26146 event.preventDefault();
26147 };
26148 CellComp.prototype.onMouseDown = function (mouseEvent) {
26149 var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;
26150 var target = mouseEvent.target;
26151 var _a = this.beans, eventService = _a.eventService, rangeController = _a.rangeController;
26152 // do not change the range for right-clicks inside an existing range
26153 if (this.isRightClickInExistingRange(mouseEvent)) {
26154 return;
26155 }
26156 if (!shiftKey || (rangeController && !rangeController.getCellRanges().length)) {
26157 // We only need to pass true to focusCell when the browser is IE/Edge and we are trying
26158 // to focus the cell itself. This should never be true if the mousedown was triggered
26159 // due to a click on a cell editor for example.
26160 var forceBrowserFocus = (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isBrowserIE"])() || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isBrowserEdge"])()) && !this.editingCell && !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["isFocusableFormField"])(target);
26161 this.focusCell(forceBrowserFocus);
26162 }
26163 else if (rangeController) {
26164 // if a range is being changed, we need to make sure the focused cell does not change.
26165 mouseEvent.preventDefault();
26166 }
26167 // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox
26168 // is focused but we don't want to change the range selection, so return here.
26169 if (this.containsWidget(target)) {
26170 return;
26171 }
26172 if (rangeController) {
26173 var thisCell = this.cellPosition;
26174 if (shiftKey) {
26175 rangeController.extendLatestRangeToCell(thisCell);
26176 }
26177 else {
26178 var ctrlKeyPressed = ctrlKey || metaKey;
26179 rangeController.setRangeToCell(thisCell, ctrlKeyPressed);
26180 }
26181 }
26182 eventService.dispatchEvent(this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_MOUSE_DOWN));
26183 };
26184 CellComp.prototype.isRightClickInExistingRange = function (mouseEvent) {
26185 var rangeController = this.beans.rangeController;
26186 if (rangeController) {
26187 var cellInRange = rangeController.isCellInAnyRange(this.getCellPosition());
26188 if (cellInRange && mouseEvent.button === 2) {
26189 return true;
26190 }
26191 }
26192 return false;
26193 };
26194 CellComp.prototype.containsWidget = function (target) {
26195 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["isElementChildOfClass"])(target, 'ag-selection-checkbox', 3);
26196 };
26197 // returns true if on iPad and this is second 'click' event in 200ms
26198 CellComp.prototype.isDoubleClickOnIPad = function () {
26199 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isIOSUserAgent"])() || Object(_utils_event__WEBPACK_IMPORTED_MODULE_16__["isEventSupported"])('dblclick')) {
26200 return false;
26201 }
26202 var nowMillis = new Date().getTime();
26203 var res = nowMillis - this.lastIPadMouseClickEvent < 200;
26204 this.lastIPadMouseClickEvent = nowMillis;
26205 return res;
26206 };
26207 CellComp.prototype.onCellClicked = function (mouseEvent) {
26208 // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.
26209 if (this.isDoubleClickOnIPad()) {
26210 this.onCellDoubleClicked(mouseEvent);
26211 mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in
26212 return;
26213 }
26214 var _a = this.beans, eventService = _a.eventService, gridOptionsWrapper = _a.gridOptionsWrapper;
26215 var cellClickedEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_CLICKED);
26216 eventService.dispatchEvent(cellClickedEvent);
26217 var colDef = this.getComponentHolder();
26218 if (colDef.onCellClicked) {
26219 // to make callback async, do in a timeout
26220 window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);
26221 }
26222 var editOnSingleClick = (gridOptionsWrapper.isSingleClickEdit() || colDef.singleClickEdit)
26223 && !gridOptionsWrapper.isSuppressClickEdit();
26224 if (editOnSingleClick) {
26225 this.startRowOrCellEdit();
26226 }
26227 };
26228 CellComp.prototype.createGridCellVo = function () {
26229 this.cellPosition = {
26230 rowIndex: this.rowNode.rowIndex,
26231 rowPinned: this.rowNode.rowPinned,
26232 column: this.column
26233 };
26234 };
26235 CellComp.prototype.getRowPosition = function () {
26236 return {
26237 rowIndex: this.cellPosition.rowIndex,
26238 rowPinned: this.cellPosition.rowPinned
26239 };
26240 };
26241 CellComp.prototype.getCellPosition = function () {
26242 return this.cellPosition;
26243 };
26244 CellComp.prototype.getParentRow = function () {
26245 return this.eRow;
26246 };
26247 CellComp.prototype.setParentRow = function (eParentRow) {
26248 this.eRow = eParentRow;
26249 };
26250 CellComp.prototype.getColumn = function () {
26251 return this.column;
26252 };
26253 CellComp.prototype.getComponentHolder = function () {
26254 return this.column.getColDef();
26255 };
26256 CellComp.prototype.detach = function () {
26257 this.eRow.removeChild(this.getGui());
26258 };
26259 // if the row is also getting destroyed, then we don't need to remove from dom,
26260 // as the row will also get removed, so no need to take out the cells from the row
26261 // if the row is going (removing is an expensive operation, so only need to remove
26262 // the top part)
26263 //
26264 // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.
26265 CellComp.prototype.destroy = function () {
26266 if (this.createCellRendererFunc) {
26267 this.beans.taskQueue.cancelTask(this.createCellRendererFunc);
26268 }
26269 this.stopEditing();
26270 this.cellRenderer = this.beans.context.destroyBean(this.cellRenderer);
26271 this.beans.context.destroyBean(this.selectionHandle);
26272 _super.prototype.destroy.call(this);
26273 };
26274 CellComp.prototype.onLeftChanged = function () {
26275 var left = this.modifyLeftForPrintLayout(this.getCellLeft());
26276 this.getGui().style.left = left + 'px';
26277 this.refreshAriaIndex();
26278 };
26279 CellComp.prototype.modifyLeftForPrintLayout = function (leftPosition) {
26280 if (!this.printLayout || this.column.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_LEFT) {
26281 return leftPosition;
26282 }
26283 var leftWidth = this.beans.columnController.getDisplayedColumnsLeftWidth();
26284 if (this.column.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_RIGHT) {
26285 var bodyWidth = this.beans.columnController.getBodyContainerWidth();
26286 return leftWidth + bodyWidth + (leftPosition || 0);
26287 }
26288 // is in body
26289 return leftWidth + (leftPosition || 0);
26290 };
26291 CellComp.prototype.onWidthChanged = function () {
26292 var width = this.getCellWidth();
26293 this.getGui().style.width = width + "px";
26294 };
26295 CellComp.prototype.getRangeBorders = function () {
26296 var _this = this;
26297 var isRtl = this.beans.gridOptionsWrapper.isEnableRtl();
26298 var top = false;
26299 var right = false;
26300 var bottom = false;
26301 var left = false;
26302 var thisCol = this.cellPosition.column;
26303 var _a = this.beans, rangeController = _a.rangeController, columnController = _a.columnController;
26304 var leftCol;
26305 var rightCol;
26306 if (isRtl) {
26307 leftCol = columnController.getDisplayedColAfter(thisCol);
26308 rightCol = columnController.getDisplayedColBefore(thisCol);
26309 }
26310 else {
26311 leftCol = columnController.getDisplayedColBefore(thisCol);
26312 rightCol = columnController.getDisplayedColAfter(thisCol);
26313 }
26314 var ranges = rangeController.getCellRanges().filter(function (range) { return rangeController.isCellInSpecificRange(_this.cellPosition, range); });
26315 // this means we are the first column in the grid
26316 if (!leftCol) {
26317 left = true;
26318 }
26319 // this means we are the last column in the grid
26320 if (!rightCol) {
26321 right = true;
26322 }
26323 for (var i = 0; i < ranges.length; i++) {
26324 if (top && right && bottom && left) {
26325 break;
26326 }
26327 var range = ranges[i];
26328 var startRow = rangeController.getRangeStartRow(range);
26329 var endRow = rangeController.getRangeEndRow(range);
26330 if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellPosition)) {
26331 top = true;
26332 }
26333 if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellPosition)) {
26334 bottom = true;
26335 }
26336 if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {
26337 left = true;
26338 }
26339 if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {
26340 right = true;
26341 }
26342 }
26343 return { top: top, right: right, bottom: bottom, left: left };
26344 };
26345 CellComp.prototype.getInitialRangeClasses = function () {
26346 var classes = [];
26347 if (!this.rangeSelectionEnabled || !this.rangeCount) {
26348 return classes;
26349 }
26350 classes.push(CSS_RANGE_SELECTED);
26351 if (this.hasChartRange) {
26352 classes.push(CSS_RANGE_CHART);
26353 }
26354 var count = Math.min(this.rangeCount, 4);
26355 classes.push(CSS_RANGE_SELECTED + "-" + count);
26356 if (this.isSingleCell()) {
26357 classes.push(CSS_RANGE_SINGLE_CELL);
26358 }
26359 if (this.rangeCount > 0) {
26360 var borders = this.getRangeBorders();
26361 if (borders.top) {
26362 classes.push(CSS_RANGE_TOP);
26363 }
26364 if (borders.right) {
26365 classes.push(CSS_RANGE_RIGHT);
26366 }
26367 if (borders.bottom) {
26368 classes.push(CSS_RANGE_BOTTOM);
26369 }
26370 if (borders.left) {
26371 classes.push(CSS_RANGE_LEFT);
26372 }
26373 }
26374 if (!!this.selectionHandle) {
26375 classes.push(CSS_RANGE_HANDLE);
26376 }
26377 return classes;
26378 };
26379 CellComp.prototype.onRowIndexChanged = function () {
26380 // when index changes, this influences items that need the index, so we update the
26381 // grid cell so they are working off the new index.
26382 this.createGridCellVo();
26383 // when the index of the row changes, ie means the cell may have lost or gained focus
26384 this.onCellFocused();
26385 // check range selection
26386 this.onRangeSelectionChanged();
26387 };
26388 CellComp.prototype.onRangeSelectionChanged = function () {
26389 var rangeController = this.beans.rangeController;
26390 if (!rangeController) {
26391 return;
26392 }
26393 var _a = this, cellPosition = _a.cellPosition, rangeCount = _a.rangeCount;
26394 var newRangeCount = rangeController.getCellRangeCount(cellPosition);
26395 var element = this.getGui();
26396 if (rangeCount !== newRangeCount) {
26397 this.addOrRemoveCssClass(CSS_RANGE_SELECTED, newRangeCount !== 0);
26398 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-1", newRangeCount === 1);
26399 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-2", newRangeCount === 2);
26400 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-3", newRangeCount === 3);
26401 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-4", newRangeCount >= 4);
26402 this.rangeCount = newRangeCount;
26403 }
26404 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaSelected"])(element, this.rangeCount > 0);
26405 var hasChartRange = this.getHasChartRange();
26406 if (hasChartRange !== this.hasChartRange) {
26407 this.hasChartRange = hasChartRange;
26408 this.addOrRemoveCssClass(CSS_RANGE_CHART, this.hasChartRange);
26409 }
26410 this.updateRangeBorders();
26411 this.addOrRemoveCssClass(CSS_RANGE_SINGLE_CELL, this.isSingleCell());
26412 this.refreshHandle();
26413 };
26414 CellComp.prototype.getHasChartRange = function () {
26415 var rangeController = this.beans.rangeController;
26416 if (!this.rangeCount || !rangeController) {
26417 return false;
26418 }
26419 var cellRanges = rangeController.getCellRanges();
26420 return cellRanges.length > 0 && cellRanges.every(function (range) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["includes"])([_interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].DIMENSION, _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].VALUE], range.type); });
26421 };
26422 CellComp.prototype.shouldHaveSelectionHandle = function () {
26423 var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;
26424 var cellRanges = rangeController.getCellRanges();
26425 var rangesLen = cellRanges.length;
26426 if (this.rangeCount < 1 || rangesLen < 1) {
26427 return false;
26428 }
26429 var cellRange = Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["last"])(cellRanges);
26430 var cellPosition = this.getCellPosition();
26431 var fillHandleIsAvailable = rangesLen === 1 &&
26432 (gridOptionsWrapper.isEnableFillHandle() || gridOptionsWrapper.isEnableRangeHandle()) &&
26433 !this.editingCell;
26434 if (this.hasChartRange) {
26435 var hasCategoryRange = cellRanges[0].type === _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].DIMENSION;
26436 var isCategoryCell = hasCategoryRange && rangeController.isCellInSpecificRange(cellPosition, cellRanges[0]);
26437 this.addOrRemoveCssClass(CSS_RANGE_CHART_CATEGORY, isCategoryCell);
26438 fillHandleIsAvailable = cellRange.type === _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].VALUE;
26439 }
26440 return fillHandleIsAvailable &&
26441 cellRange.endRow != null &&
26442 rangeController.isContiguousRange(cellRange) &&
26443 rangeController.isBottomRightCell(cellRange, cellPosition);
26444 };
26445 CellComp.prototype.addSelectionHandle = function () {
26446 var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;
26447 var cellRangeType = Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["last"])(rangeController.getCellRanges()).type;
26448 var selectionHandleFill = gridOptionsWrapper.isEnableFillHandle() && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(cellRangeType);
26449 var type = selectionHandleFill ? _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["SelectionHandleType"].FILL : _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["SelectionHandleType"].RANGE;
26450 if (this.selectionHandle && this.selectionHandle.getType() !== type) {
26451 this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);
26452 }
26453 if (!this.selectionHandle) {
26454 this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);
26455 }
26456 this.selectionHandle.refresh(this);
26457 };
26458 CellComp.prototype.updateRangeBordersIfRangeCount = function () {
26459 // we only need to update range borders if we are in a range
26460 if (this.rangeCount > 0) {
26461 this.updateRangeBorders();
26462 this.refreshHandle();
26463 }
26464 };
26465 CellComp.prototype.refreshHandle = function () {
26466 if (!this.beans.rangeController) {
26467 return;
26468 }
26469 var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();
26470 if (this.selectionHandle && !shouldHaveSelectionHandle) {
26471 this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);
26472 }
26473 if (shouldHaveSelectionHandle) {
26474 this.addSelectionHandle();
26475 }
26476 this.addOrRemoveCssClass(CSS_RANGE_HANDLE, !!this.selectionHandle);
26477 };
26478 CellComp.prototype.updateRangeBorders = function () {
26479 var rangeBorders = this.getRangeBorders();
26480 var isSingleCell = this.isSingleCell();
26481 var isTop = !isSingleCell && rangeBorders.top;
26482 var isRight = !isSingleCell && rangeBorders.right;
26483 var isBottom = !isSingleCell && rangeBorders.bottom;
26484 var isLeft = !isSingleCell && rangeBorders.left;
26485 this.addOrRemoveCssClass(CSS_RANGE_TOP, isTop);
26486 this.addOrRemoveCssClass(CSS_RANGE_RIGHT, isRight);
26487 this.addOrRemoveCssClass(CSS_RANGE_BOTTOM, isBottom);
26488 this.addOrRemoveCssClass(CSS_RANGE_LEFT, isLeft);
26489 };
26490 CellComp.prototype.onFirstRightPinnedChanged = function () {
26491 var firstRightPinned = this.column.isFirstRightPinned();
26492 if (this.firstRightPinned !== firstRightPinned) {
26493 this.firstRightPinned = firstRightPinned;
26494 this.addOrRemoveCssClass(CSS_FIRST_RIGHT_PINNED, firstRightPinned);
26495 }
26496 };
26497 CellComp.prototype.onLastLeftPinnedChanged = function () {
26498 var lastLeftPinned = this.column.isLastLeftPinned();
26499 if (this.lastLeftPinned !== lastLeftPinned) {
26500 this.lastLeftPinned = lastLeftPinned;
26501 this.addOrRemoveCssClass(CSS_LAST_LEFT_PINNED, lastLeftPinned);
26502 }
26503 };
26504 CellComp.prototype.refreshShouldDestroy = function () {
26505 var isUsingWrapper = this.usingWrapper;
26506 var isIncludingRowDragging = this.includeRowDraggingComponent;
26507 var isIncludingDndSource = this.includeDndSourceComponent;
26508 var isIncludingSelection = this.includeSelectionComponent;
26509 this.setUsingWrapper();
26510 return isUsingWrapper !== this.usingWrapper ||
26511 isIncludingRowDragging !== this.includeRowDraggingComponent ||
26512 isIncludingDndSource !== this.includeDndSourceComponent ||
26513 isIncludingSelection !== this.includeSelectionComponent;
26514 };
26515 CellComp.prototype.populateTemplate = function () {
26516 if (this.usingWrapper) {
26517 this.eCellValue = this.getRefElement('eCellValue');
26518 this.eCellWrapper = this.getRefElement('eCellWrapper');
26519 this.eCellValue.id = "cell-" + this.getCompId();
26520 var describedByIds = '';
26521 if (this.includeRowDraggingComponent) {
26522 this.addRowDragging();
26523 }
26524 if (this.includeDndSourceComponent) {
26525 this.addDndSource();
26526 }
26527 if (this.includeSelectionComponent) {
26528 describedByIds += this.addSelectionCheckbox().getCheckboxId();
26529 }
26530 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaDescribedBy"])(this.getGui(), (describedByIds + " " + this.eCellValue.id).trim());
26531 }
26532 else {
26533 this.eCellValue = this.getGui();
26534 this.eCellWrapper = this.eCellValue;
26535 }
26536 };
26537 CellComp.prototype.getFrameworkOverrides = function () {
26538 return this.beans.frameworkOverrides;
26539 };
26540 CellComp.prototype.addRowDragging = function (customElement, dragStartPixels) {
26541 var _this = this;
26542 var pagination = this.beans.gridOptionsWrapper.isPagination();
26543 var rowDragManaged = this.beans.gridOptionsWrapper.isRowDragManaged();
26544 var clientSideRowModelActive = this.beans.gridOptionsWrapper.isRowModelDefault();
26545 if (rowDragManaged) {
26546 // row dragging only available in default row model
26547 if (!clientSideRowModelActive) {
26548 Object(_utils_function__WEBPACK_IMPORTED_MODULE_19__["doOnce"])(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');
26549 return;
26550 }
26551 if (pagination) {
26552 Object(_utils_function__WEBPACK_IMPORTED_MODULE_19__["doOnce"])(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');
26553 return;
26554 }
26555 }
26556 if (!this.rowDraggingComp) {
26557 this.rowDraggingComp = new _row_rowDragComp__WEBPACK_IMPORTED_MODULE_5__["RowDragComp"](function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels);
26558 this.createManagedBean(this.rowDraggingComp, this.beans.context);
26559 }
26560 else if (customElement) {
26561 // if the rowDraggingComp is already present, means we should only set the drag element
26562 this.rowDraggingComp.setDragElement(customElement, dragStartPixels);
26563 }
26564 // If there is a custom element, the Cell Renderer is responsible for displaying it.
26565 if (!customElement) {
26566 // put the checkbox in before the value
26567 this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);
26568 }
26569 };
26570 CellComp.prototype.addDndSource = function () {
26571 var dndSourceComp = new _dndSourceComp__WEBPACK_IMPORTED_MODULE_7__["DndSourceComp"](this.rowNode, this.column, this.beans, this.getGui());
26572 this.createManagedBean(dndSourceComp, this.beans.context);
26573 // put the checkbox in before the value
26574 this.eCellWrapper.insertBefore(dndSourceComp.getGui(), this.eCellValue);
26575 };
26576 CellComp.prototype.addSelectionCheckbox = function () {
26577 var _this = this;
26578 var cbSelectionComponent = new _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_3__["CheckboxSelectionComponent"]();
26579 this.beans.context.createBean(cbSelectionComponent);
26580 var visibleFunc = this.getComponentHolder().checkboxSelection;
26581 if (typeof visibleFunc !== 'function') {
26582 visibleFunc = undefined;
26583 }
26584 cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });
26585 this.addDestroyFunc(function () { return _this.beans.context.destroyBean(cbSelectionComponent); });
26586 // put the checkbox in before the value
26587 this.eCellWrapper.insertBefore(cbSelectionComponent.getGui(), this.eCellValue);
26588 return cbSelectionComponent;
26589 };
26590 CellComp.prototype.addDomData = function () {
26591 var _this = this;
26592 var element = this.getGui();
26593 this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, this);
26594 this.addDestroyFunc(function () { return _this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, null); });
26595 };
26596 CellComp.prototype.isSingleCell = function () {
26597 var rangeController = this.beans.rangeController;
26598 return this.rangeCount === 1 && rangeController && !rangeController.isMoreThanOneCell();
26599 };
26600 CellComp.prototype.onCellFocused = function (event) {
26601 var cellFocused = this.beans.focusController.isCellFocused(this.cellPosition);
26602 // see if we need to change the classes on this cell
26603 if (cellFocused !== this.cellFocused) {
26604 // if we are not doing cell selection, then the focus class does not change
26605 var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();
26606 if (doingFocusCss) {
26607 this.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);
26608 }
26609 this.cellFocused = cellFocused;
26610 }
26611 // see if we need to force browser focus - this can happen if focus is programmatically set
26612 if (cellFocused && event && event.forceBrowserFocus) {
26613 var focusEl = this.getFocusableElement();
26614 focusEl.focus();
26615 // Fix for AG-3465 "IE11 - After editing cell's content, selection doesn't go one cell below on enter"
26616 // IE can fail to focus the cell after the first call to focus(), and needs a second call
26617 if (!document.activeElement || document.activeElement === document.body) {
26618 focusEl.focus();
26619 }
26620 }
26621 // if another cell was focused, and we are editing, then stop editing
26622 var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();
26623 if (!cellFocused && !fullRowEdit && this.editingCell) {
26624 this.stopRowOrCellEdit();
26625 }
26626 };
26627 // pass in 'true' to cancel the editing.
26628 CellComp.prototype.stopRowOrCellEdit = function (cancel) {
26629 if (cancel === void 0) { cancel = false; }
26630 if (this.beans.gridOptionsWrapper.isFullRowEdit()) {
26631 this.rowComp.stopRowEditing(cancel);
26632 }
26633 else {
26634 this.stopEditing(cancel);
26635 }
26636 };
26637 CellComp.prototype.stopEditing = function (cancel) {
26638 if (cancel === void 0) { cancel = false; }
26639 if (!this.editingCell) {
26640 return;
26641 }
26642 // if no cell editor, this means due to async, that the cell editor never got initialised,
26643 // so we just carry on regardless as if the editing was never started.
26644 if (!this.cellEditor) {
26645 this.editingCell = false;
26646 return;
26647 }
26648 var oldValue = this.getValue();
26649 var newValueExists = false;
26650 var newValue;
26651 if (!cancel) {
26652 // also have another option here to cancel after editing, so for example user could have a popup editor and
26653 // it is closed by user clicking outside the editor. then the editor will close automatically (with false
26654 // passed above) and we need to see if the editor wants to accept the new value.
26655 var userWantsToCancel = this.cellEditor.isCancelAfterEnd && this.cellEditor.isCancelAfterEnd();
26656 if (!userWantsToCancel) {
26657 newValue = this.cellEditor.getValue();
26658 newValueExists = true;
26659 }
26660 }
26661 // it is important we set this after setValue() above, as otherwise the cell will flash
26662 // when editing stops. the 'refresh' method checks editing, and doesn't refresh editing cells.
26663 // thus it will skip the refresh on this cell until the end of this method where we call
26664 // refresh directly and we suppress the flash.
26665 this.editingCell = false;
26666 // important to clear this out - as parts of the code will check for
26667 // this to see if an async cellEditor has yet to be created
26668 this.beans.context.destroyBean(this.cellEditor);
26669 this.cellEditor = null;
26670 if (this.cellEditorInPopup && this.hideEditorPopup) {
26671 this.hideEditorPopup();
26672 this.hideEditorPopup = null;
26673 }
26674 else {
26675 this.clearCellElement();
26676 var eGui = this.getGui();
26677 // put the cell back the way it was before editing
26678 if (this.usingWrapper) {
26679 // if wrapper, then put the wrapper back
26680 eGui.appendChild(this.eCellWrapper);
26681 }
26682 else if (this.cellRenderer) {
26683 // if cellRenderer, then put the gui back in. if the renderer has
26684 // a refresh, it will be called. however if it doesn't, then later
26685 // the renderer will be destroyed and a new one will be created.
26686 // we know it's a dom element (not a string) because we converted
26687 // it after the gui was attached if it was a string.
26688 var eCell = this.cellRendererGui;
26689 // can be null if cell was previously null / contained empty string,
26690 // this will result in new value not being rendered.
26691 if (eCell) {
26692 eGui.appendChild(eCell);
26693 }
26694 }
26695 }
26696 this.setInlineEditingClass();
26697 this.refreshHandle();
26698 if (newValueExists && newValue !== oldValue) {
26699 // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection
26700 // getting triggered, which results in all cells getting refreshed. we do not want this refresh
26701 // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.
26702 // if we only did this refresh (and not the one below) then the cell would flash and not be forced.
26703 this.suppressRefreshCell = true;
26704 this.rowNode.setDataValue(this.column, newValue);
26705 this.suppressRefreshCell = false;
26706 }
26707 // we suppress the flash, as it is not correct to flash the cell the user has finished editing,
26708 // the user doesn't need to flash as they were the one who did the edit, the flash is pointless
26709 // (as the flash is meant to draw the user to a change that they didn't manually do themselves).
26710 this.refreshCell({ forceRefresh: true, suppressFlash: true });
26711 var editingStoppedEvent = __assign(__assign({}, this.createEvent(null, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue,
26712 newValue: newValue });
26713 this.beans.eventService.dispatchEvent(editingStoppedEvent);
26714 };
26715 CellComp.prototype.clearCellElement = function () {
26716 var eGui = this.getGui();
26717 // if focus is inside the cell, we move focus to the cell itself
26718 // before removing it's contents, otherwise errors could be thrown.
26719 if (eGui.contains(document.activeElement) && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isBrowserIE"])()) {
26720 eGui.focus({
26721 preventScroll: true
26722 });
26723 }
26724 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["clearElement"])(eGui);
26725 };
26726 CellComp.DOM_DATA_KEY_CELL_COMP = 'cellComp';
26727 CellComp.CELL_RENDERER_TYPE_NORMAL = 'cellRenderer';
26728 CellComp.CELL_RENDERER_TYPE_PINNED = 'pinnedRowCellRenderer';
26729 return CellComp;
26730}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
26731
26732
26733
26734/***/ }),
26735/* 108 */
26736/***/ (function(module, __webpack_exports__, __webpack_require__) {
26737
26738"use strict";
26739__webpack_require__.r(__webpack_exports__);
26740/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return SelectionHandleType; });
26741/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return CellRangeType; });
26742/**
26743 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26744 * @version v25.3.0
26745 * @link http://www.ag-grid.com/
26746 * @license MIT
26747 */
26748var SelectionHandleType;
26749(function (SelectionHandleType) {
26750 SelectionHandleType[SelectionHandleType["FILL"] = 0] = "FILL";
26751 SelectionHandleType[SelectionHandleType["RANGE"] = 1] = "RANGE";
26752})(SelectionHandleType || (SelectionHandleType = {}));
26753var CellRangeType;
26754(function (CellRangeType) {
26755 CellRangeType[CellRangeType["VALUE"] = 0] = "VALUE";
26756 CellRangeType[CellRangeType["DIMENSION"] = 1] = "DIMENSION";
26757})(CellRangeType || (CellRangeType = {}));
26758
26759
26760/***/ }),
26761/* 109 */
26762/***/ (function(module, __webpack_exports__, __webpack_require__) {
26763
26764"use strict";
26765__webpack_require__.r(__webpack_exports__);
26766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return PopupEditorWrapper; });
26767/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
26768/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
26769/**
26770 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26771 * @version v25.3.0
26772 * @link http://www.ag-grid.com/
26773 * @license MIT
26774 */
26775var __extends = (undefined && undefined.__extends) || (function () {
26776 var extendStatics = function (d, b) {
26777 extendStatics = Object.setPrototypeOf ||
26778 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26779 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26780 return extendStatics(d, b);
26781 };
26782 return function (d, b) {
26783 extendStatics(d, b);
26784 function __() { this.constructor = d; }
26785 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26786 };
26787})();
26788
26789
26790var PopupEditorWrapper = /** @class */ (function (_super) {
26791 __extends(PopupEditorWrapper, _super);
26792 function PopupEditorWrapper(cellEditor) {
26793 var _this = _super.call(this, "<div class=\"ag-popup-editor\" tabindex=\"-1\"/>") || this;
26794 _this.getGuiCalledOnChild = false;
26795 _this.cellEditor = cellEditor;
26796 return _this;
26797 }
26798 PopupEditorWrapper.prototype.onKeyDown = function (event) {
26799 if (!Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_1__["isUserSuppressingKeyboardEvent"])(this.gridOptionsWrapper, event, this.params.node, this.params.column, true)) {
26800 this.params.onKeyDown(event);
26801 }
26802 };
26803 PopupEditorWrapper.prototype.getGui = function () {
26804 // we call getGui() on child here (rather than in the constructor)
26805 // as we should wait for 'init' to be called on child first.
26806 if (!this.getGuiCalledOnChild) {
26807 this.appendChild(this.cellEditor.getGui());
26808 this.getGuiCalledOnChild = true;
26809 }
26810 return _super.prototype.getGui.call(this);
26811 };
26812 PopupEditorWrapper.prototype.init = function (params) {
26813 var _this = this;
26814 this.params = params;
26815 this.gridOptionsWrapper.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);
26816 this.addDestroyFunc(function () { return _this.destroyBean(_this.cellEditor); });
26817 this.addManagedListener(
26818 // this needs to be 'super' and not 'this' as if we call 'this',
26819 // it ends up called 'getGui()' on the child before 'init' was called,
26820 // which is not good
26821 _super.prototype.getGui.call(this), 'keydown', this.onKeyDown.bind(this));
26822 };
26823 PopupEditorWrapper.prototype.afterGuiAttached = function () {
26824 if (this.cellEditor.afterGuiAttached) {
26825 this.cellEditor.afterGuiAttached();
26826 }
26827 };
26828 PopupEditorWrapper.prototype.getValue = function () {
26829 return this.cellEditor.getValue();
26830 };
26831 PopupEditorWrapper.prototype.isCancelBeforeStart = function () {
26832 if (this.cellEditor.isCancelBeforeStart) {
26833 return this.cellEditor.isCancelBeforeStart();
26834 }
26835 return false;
26836 };
26837 PopupEditorWrapper.prototype.isCancelAfterEnd = function () {
26838 if (this.cellEditor.isCancelAfterEnd) {
26839 return this.cellEditor.isCancelAfterEnd();
26840 }
26841 return false;
26842 };
26843 PopupEditorWrapper.prototype.getPopupPosition = function () {
26844 if (this.cellEditor.getPopupPosition) {
26845 return this.cellEditor.getPopupPosition();
26846 }
26847 };
26848 PopupEditorWrapper.prototype.focusIn = function () {
26849 if (this.cellEditor.focusIn) {
26850 this.cellEditor.focusIn();
26851 }
26852 };
26853 PopupEditorWrapper.prototype.focusOut = function () {
26854 if (this.cellEditor.focusOut) {
26855 this.cellEditor.focusOut();
26856 }
26857 };
26858 PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';
26859 return PopupEditorWrapper;
26860}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
26861
26862
26863
26864/***/ }),
26865/* 110 */
26866/***/ (function(module, __webpack_exports__, __webpack_require__) {
26867
26868"use strict";
26869__webpack_require__.r(__webpack_exports__);
26870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DndSourceComp", function() { return DndSourceComp; });
26871/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
26872/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
26873/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50);
26874/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
26875/**
26876 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26877 * @version v25.3.0
26878 * @link http://www.ag-grid.com/
26879 * @license MIT
26880 */
26881var __extends = (undefined && undefined.__extends) || (function () {
26882 var extendStatics = function (d, b) {
26883 extendStatics = Object.setPrototypeOf ||
26884 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26885 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26886 return extendStatics(d, b);
26887 };
26888 return function (d, b) {
26889 extendStatics(d, b);
26890 function __() { this.constructor = d; }
26891 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26892 };
26893})();
26894var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
26895 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26896 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26897 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26898 return c > 3 && r && Object.defineProperty(target, key, r), r;
26899};
26900
26901
26902
26903
26904var DndSourceComp = /** @class */ (function (_super) {
26905 __extends(DndSourceComp, _super);
26906 function DndSourceComp(rowNode, column, beans, eCell) {
26907 var _this = _super.call(this, "<div class=\"ag-drag-handle ag-row-drag\" draggable=\"true\"></div>") || this;
26908 _this.rowNode = rowNode;
26909 _this.column = column;
26910 _this.beans = beans;
26911 _this.eCell = eCell;
26912 return _this;
26913 }
26914 DndSourceComp.prototype.postConstruct = function () {
26915 var eGui = this.getGui();
26916 eGui.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_2__["createIconNoSpan"])('rowDrag', this.beans.gridOptionsWrapper, null));
26917 // we need to stop the event propagation here to avoid starting a range selection while dragging
26918 this.addGuiEventListener('mousedown', function (e) {
26919 e.stopPropagation();
26920 });
26921 this.addDragSource();
26922 this.checkVisibility();
26923 };
26924 DndSourceComp.prototype.addDragSource = function () {
26925 this.addGuiEventListener('dragstart', this.onDragStart.bind(this));
26926 };
26927 DndSourceComp.prototype.onDragStart = function (dragEvent) {
26928 var _this = this;
26929 var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;
26930 var isIE = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserIE"])();
26931 if (!isIE) {
26932 dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);
26933 }
26934 // default behaviour is to convert data to json and set into drag component
26935 var defaultOnRowDrag = function () {
26936 try {
26937 var jsonData = JSON.stringify(_this.rowNode.data);
26938 if (isIE) {
26939 dragEvent.dataTransfer.setData('text', jsonData);
26940 }
26941 else {
26942 dragEvent.dataTransfer.setData('application/json', jsonData);
26943 dragEvent.dataTransfer.setData('text/plain', jsonData);
26944 }
26945 }
26946 catch (e) {
26947 // if we cannot convert the data to json, then we do not set the type
26948 }
26949 };
26950 if (providedOnRowDrag) {
26951 providedOnRowDrag({ rowNode: this.rowNode, dragEvent: dragEvent });
26952 }
26953 else {
26954 defaultOnRowDrag();
26955 }
26956 };
26957 DndSourceComp.prototype.checkVisibility = function () {
26958 var visible = this.column.isDndSource(this.rowNode);
26959 this.setDisplayed(visible);
26960 };
26961 __decorate([
26962 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
26963 ], DndSourceComp.prototype, "postConstruct", null);
26964 return DndSourceComp;
26965}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
26966
26967
26968
26969/***/ }),
26970/* 111 */
26971/***/ (function(module, __webpack_exports__, __webpack_require__) {
26972
26973"use strict";
26974__webpack_require__.r(__webpack_exports__);
26975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRootComp", function() { return HeaderRootComp; });
26976/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
26977/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
26978/* harmony import */ var _headerContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(112);
26979/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
26980/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(59);
26981/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
26982/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
26983/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67);
26984/* harmony import */ var _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(131);
26985/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
26986/* harmony import */ var _constants_keyName__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(132);
26987/* harmony import */ var _gridBodyComp_centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(133);
26988/**
26989 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26990 * @version v25.3.0
26991 * @link http://www.ag-grid.com/
26992 * @license MIT
26993 */
26994var __extends = (undefined && undefined.__extends) || (function () {
26995 var extendStatics = function (d, b) {
26996 extendStatics = Object.setPrototypeOf ||
26997 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26998 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26999 return extendStatics(d, b);
27000 };
27001 return function (d, b) {
27002 extendStatics(d, b);
27003 function __() { this.constructor = d; }
27004 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27005 };
27006})();
27007var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27008 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27009 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27010 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
27011 return c > 3 && r && Object.defineProperty(target, key, r), r;
27012};
27013
27014
27015
27016
27017
27018
27019
27020
27021
27022
27023
27024
27025var HeaderRootComp = /** @class */ (function (_super) {
27026 __extends(HeaderRootComp, _super);
27027 function HeaderRootComp() {
27028 var _this = _super.call(this, HeaderRootComp.TEMPLATE) || this;
27029 _this.headerContainers = new Map();
27030 return _this;
27031 }
27032 HeaderRootComp.prototype.postConstruct = function () {
27033 var _this = this;
27034 _super.prototype.postConstruct.call(this);
27035 this.printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].DOM_LAYOUT_PRINT;
27036 this.gridApi.registerHeaderRootComp(this);
27037 this.autoWidthCalculator.registerHeaderRootComp(this);
27038 this.registerHeaderContainer(new _headerContainer__WEBPACK_IMPORTED_MODULE_2__["HeaderContainer"](this.eHeaderContainer, this.eHeaderViewport, null), 'center');
27039 this.registerHeaderContainer(new _headerContainer__WEBPACK_IMPORTED_MODULE_2__["HeaderContainer"](this.ePinnedLeftHeader, null, _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].PINNED_LEFT), 'left');
27040 this.registerHeaderContainer(new _headerContainer__WEBPACK_IMPORTED_MODULE_2__["HeaderContainer"](this.ePinnedRightHeader, null, _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].PINNED_RIGHT), 'right');
27041 this.headerContainers.forEach(function (container) { return _this.createManagedBean(container); });
27042 this.headerNavigationService.registerHeaderRoot(this);
27043 // shotgun way to get labels to change, eg from sum(amount) to avg(amount)
27044 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));
27045 // for setting ag-pivot-on / ag-pivot-off CSS classes
27046 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));
27047 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));
27048 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));
27049 this.onPivotModeChanged();
27050 this.addPreventHeaderScroll();
27051 this.createManagedBean(new _gridBodyComp_centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__["CenterWidthFeature"](function (width) { return _this.eHeaderContainer.style.width = width + "px"; }));
27052 if (this.columnController.isReady()) {
27053 this.refreshHeader();
27054 }
27055 this.setupHeaderHeight();
27056 this.controllersService.registerHeaderRootComp(this);
27057 };
27058 HeaderRootComp.prototype.setupHeaderHeight = function () {
27059 var listener = this.setHeaderHeight.bind(this);
27060 listener();
27061 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_HEADER_HEIGHT, listener);
27062 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_HEADER_HEIGHT, listener);
27063 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_HEADER_HEIGHT, listener);
27064 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_GROUP_HEADER_HEIGHT, listener);
27065 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_FLOATING_FILTERS_HEIGHT, listener);
27066 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
27067 };
27068 HeaderRootComp.prototype.registerHeaderContainer = function (headerContainer, type) {
27069 this.headerContainers.set(type, headerContainer);
27070 };
27071 HeaderRootComp.prototype.onTabKeyDown = function (e) {
27072 var isRtl = this.gridOptionsWrapper.isEnableRtl();
27073 var direction = e.shiftKey !== isRtl
27074 ? _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].LEFT
27075 : _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].RIGHT;
27076 if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||
27077 this.focusController.focusNextGridCoreContainer(e.shiftKey)) {
27078 e.preventDefault();
27079 }
27080 };
27081 HeaderRootComp.prototype.handleKeyDown = function (e) {
27082 var direction = null;
27083 switch (e.key) {
27084 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].LEFT:
27085 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].LEFT;
27086 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].RIGHT:
27087 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(direction)) {
27088 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].RIGHT;
27089 }
27090 this.headerNavigationService.navigateHorizontally(direction, false, e);
27091 break;
27092 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].UP:
27093 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].UP;
27094 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].DOWN:
27095 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(direction)) {
27096 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].DOWN;
27097 }
27098 if (this.headerNavigationService.navigateVertically(direction, null, e)) {
27099 e.preventDefault();
27100 }
27101 break;
27102 default:
27103 return;
27104 }
27105 };
27106 HeaderRootComp.prototype.onFocusOut = function (e) {
27107 var relatedTarget = e.relatedTarget;
27108 var eGui = this.getGui();
27109 if (!relatedTarget && eGui.contains(document.activeElement)) {
27110 return;
27111 }
27112 if (!eGui.contains(relatedTarget)) {
27113 this.focusController.clearFocusedHeader();
27114 }
27115 };
27116 HeaderRootComp.prototype.onDomLayoutChanged = function () {
27117 var newValue = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].DOM_LAYOUT_PRINT;
27118 if (this.printLayout !== newValue) {
27119 this.printLayout = newValue;
27120 this.refreshHeader();
27121 }
27122 };
27123 HeaderRootComp.prototype.setHorizontalScroll = function (offset) {
27124 this.eHeaderContainer.style.transform = "translateX(" + offset + "px)";
27125 };
27126 HeaderRootComp.prototype.forEachHeaderElement = function (callback) {
27127 this.headerContainers.forEach(function (childContainer) { return childContainer.forEachHeaderElement(callback); });
27128 };
27129 HeaderRootComp.prototype.refreshHeader = function () {
27130 this.headerContainers.forEach(function (container) { return container.refresh(); });
27131 };
27132 HeaderRootComp.prototype.onPivotModeChanged = function () {
27133 var pivotMode = this.columnController.isPivotMode();
27134 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.getGui(), 'ag-pivot-on', pivotMode);
27135 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.getGui(), 'ag-pivot-off', !pivotMode);
27136 };
27137 HeaderRootComp.prototype.setHeaderHeight = function () {
27138 var _a = this, columnController = _a.columnController, gridOptionsWrapper = _a.gridOptionsWrapper;
27139 var numberOfFloating = 0;
27140 var headerRowCount = columnController.getHeaderRowCount();
27141 var totalHeaderHeight;
27142 var groupHeight;
27143 var headerHeight;
27144 if (columnController.isPivotMode()) {
27145 groupHeight = gridOptionsWrapper.getPivotGroupHeaderHeight();
27146 headerHeight = gridOptionsWrapper.getPivotHeaderHeight();
27147 }
27148 else {
27149 var hasFloatingFilters = columnController.hasFloatingFilters();
27150 if (hasFloatingFilters) {
27151 headerRowCount++;
27152 numberOfFloating = 1;
27153 }
27154 groupHeight = gridOptionsWrapper.getGroupHeaderHeight();
27155 headerHeight = gridOptionsWrapper.getHeaderHeight();
27156 }
27157 var numberOfNonGroups = 1 + numberOfFloating;
27158 var numberOfGroups = headerRowCount - numberOfNonGroups;
27159 totalHeaderHeight = numberOfFloating * gridOptionsWrapper.getFloatingFiltersHeight();
27160 totalHeaderHeight += numberOfGroups * groupHeight;
27161 totalHeaderHeight += headerHeight;
27162 // one extra pixel is needed here to account for the
27163 // height of the border
27164 var px = totalHeaderHeight + 1 + "px";
27165 this.getGui().style.height = px;
27166 this.getGui().style.minHeight = px;
27167 };
27168 // if the user is in floating filter and hits tab a few times, the header can
27169 // end up scrolling to show items off the screen, leaving the grid and header
27170 // and the grid columns no longer in sync.
27171 HeaderRootComp.prototype.addPreventHeaderScroll = function () {
27172 var _this = this;
27173 this.addManagedListener(this.eHeaderViewport, 'scroll', function () {
27174 // if the header scrolls, the header will be out of sync. so we reset the
27175 // header scroll, and then scroll the body, which will in turn set the offset
27176 // on the header, giving the impression that the header scrolled as expected.
27177 var scrollLeft = _this.eHeaderViewport.scrollLeft;
27178 if (scrollLeft !== 0) {
27179 var gridBodyCon = _this.controllersService.getGridBodyController();
27180 gridBodyCon.getScrollFeature().scrollHorizontally(scrollLeft);
27181 _this.eHeaderViewport.scrollLeft = 0;
27182 }
27183 });
27184 };
27185 HeaderRootComp.prototype.getHeaderContainers = function () {
27186 return this.headerContainers;
27187 };
27188 HeaderRootComp.prototype.onPinnedLeftWidthChanged = function () {
27189 var displayed = this.pinnedWidthService.getPinnedLeftWidth() > 0;
27190 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.ePinnedLeftHeader, displayed);
27191 };
27192 HeaderRootComp.prototype.onPinnedRightWidthChanged = function () {
27193 var displayed = this.pinnedWidthService.getPinnedRightWidth() > 0;
27194 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.ePinnedRightHeader, displayed);
27195 };
27196 HeaderRootComp.TEMPLATE = "<div class=\"ag-header\" role=\"presentation\">\n <div class=\"ag-pinned-left-header\" ref=\"ePinnedLeftHeader\" role=\"presentation\"></div>\n <div class=\"ag-header-viewport\" ref=\"eHeaderViewport\" role=\"presentation\">\n <div class=\"ag-header-container\" ref=\"eHeaderContainer\" role=\"rowgroup\"></div>\n </div>\n <div class=\"ag-pinned-right-header\" ref=\"ePinnedRightHeader\" role=\"presentation\"></div>\n </div>";
27197 __decorate([
27198 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('ePinnedLeftHeader')
27199 ], HeaderRootComp.prototype, "ePinnedLeftHeader", void 0);
27200 __decorate([
27201 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('ePinnedRightHeader')
27202 ], HeaderRootComp.prototype, "ePinnedRightHeader", void 0);
27203 __decorate([
27204 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eHeaderContainer')
27205 ], HeaderRootComp.prototype, "eHeaderContainer", void 0);
27206 __decorate([
27207 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eHeaderViewport')
27208 ], HeaderRootComp.prototype, "eHeaderViewport", void 0);
27209 __decorate([
27210 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
27211 ], HeaderRootComp.prototype, "columnController", void 0);
27212 __decorate([
27213 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
27214 ], HeaderRootComp.prototype, "gridApi", void 0);
27215 __decorate([
27216 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('autoWidthCalculator')
27217 ], HeaderRootComp.prototype, "autoWidthCalculator", void 0);
27218 __decorate([
27219 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
27220 ], HeaderRootComp.prototype, "headerNavigationService", void 0);
27221 __decorate([
27222 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedWidthService')
27223 ], HeaderRootComp.prototype, "pinnedWidthService", void 0);
27224 __decorate([
27225 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
27226 ], HeaderRootComp.prototype, "controllersService", void 0);
27227 return HeaderRootComp;
27228}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_7__["ManagedFocusComponent"]));
27229
27230
27231
27232/***/ }),
27233/* 112 */
27234/***/ (function(module, __webpack_exports__, __webpack_require__) {
27235
27236"use strict";
27237__webpack_require__.r(__webpack_exports__);
27238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderContainer", function() { return HeaderContainer; });
27239/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
27240/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
27241/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(113);
27242/* harmony import */ var _bodyDropTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(128);
27243/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
27244/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
27245/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);
27246/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42);
27247/**
27248 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
27249 * @version v25.3.0
27250 * @link http://www.ag-grid.com/
27251 * @license MIT
27252 */
27253var __extends = (undefined && undefined.__extends) || (function () {
27254 var extendStatics = function (d, b) {
27255 extendStatics = Object.setPrototypeOf ||
27256 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27257 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27258 return extendStatics(d, b);
27259 };
27260 return function (d, b) {
27261 extendStatics(d, b);
27262 function __() { this.constructor = d; }
27263 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27264 };
27265})();
27266var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27267 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27268 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27269 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
27270 return c > 3 && r && Object.defineProperty(target, key, r), r;
27271};
27272
27273
27274
27275
27276
27277
27278
27279
27280var HeaderContainer = /** @class */ (function (_super) {
27281 __extends(HeaderContainer, _super);
27282 function HeaderContainer(eContainer, eViewport, pinned) {
27283 var _this = _super.call(this) || this;
27284 _this.groupsRowComps = [];
27285 _this.eContainer = eContainer;
27286 _this.pinned = pinned;
27287 _this.eViewport = eViewport;
27288 return _this;
27289 }
27290 HeaderContainer.prototype.forEachHeaderElement = function (callback) {
27291 if (this.groupsRowComps) {
27292 this.groupsRowComps.forEach(function (c) { return c.forEachHeaderElement(callback); });
27293 }
27294 if (this.columnsRowComp) {
27295 this.columnsRowComp.forEachHeaderElement(callback);
27296 }
27297 if (this.filtersRowComp) {
27298 this.filtersRowComp.forEachHeaderElement(callback);
27299 }
27300 };
27301 HeaderContainer.prototype.init = function () {
27302 // if value changes, then if not pivoting, we at least need to change the label eg from sum() to avg(),
27303 // if pivoting, then the columns have changed
27304 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
27305 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
27306 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));
27307 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
27308 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));
27309 this.setupDragAndDrop();
27310 };
27311 HeaderContainer.prototype.onColumnResized = function () {
27312 this.setWidthOfPinnedContainer();
27313 };
27314 HeaderContainer.prototype.onDisplayedColumnsChanged = function () {
27315 this.setWidthOfPinnedContainer();
27316 };
27317 HeaderContainer.prototype.onScrollVisibilityChanged = function () {
27318 this.setWidthOfPinnedContainer();
27319 };
27320 HeaderContainer.prototype.onScrollbarWidthChanged = function () {
27321 this.setWidthOfPinnedContainer();
27322 };
27323 HeaderContainer.prototype.setWidthOfPinnedContainer = function () {
27324 var pinningLeft = this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_LEFT;
27325 var pinningRight = this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_RIGHT;
27326 var controller = this.columnController;
27327 var isRtl = this.gridOptionsWrapper.isEnableRtl();
27328 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
27329 if (pinningLeft || pinningRight) {
27330 // size to fit all columns
27331 var width = controller[pinningLeft ? 'getDisplayedColumnsLeftWidth' : 'getDisplayedColumnsRightWidth']();
27332 // if there is a scroll showing (and taking up space, so Windows, and not iOS)
27333 // in the body, then we add extra space to keep header aligned with the body,
27334 // as body width fits the cols and the scrollbar
27335 var addPaddingForScrollbar = this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));
27336 if (addPaddingForScrollbar) {
27337 width += scrollbarWidth;
27338 }
27339 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setFixedWidth"])(this.eContainer, width);
27340 }
27341 };
27342 HeaderContainer.prototype.getRowComps = function () {
27343 var res = [];
27344 if (this.groupsRowComps) {
27345 res = res.concat(this.groupsRowComps);
27346 }
27347 if (this.columnsRowComp) {
27348 res.push(this.columnsRowComp);
27349 }
27350 if (this.filtersRowComp) {
27351 res.push(this.filtersRowComp);
27352 }
27353 return res;
27354 };
27355 // grid cols have changed - this also means the number of rows in the header can have
27356 // changed. so we remove all the old rows and insert new ones for a complete refresh
27357 HeaderContainer.prototype.onGridColumnsChanged = function () {
27358 this.refresh(true);
27359 };
27360 // we expose this for gridOptions.api.refreshHeader() to call
27361 HeaderContainer.prototype.refresh = function (keepColumns) {
27362 if (keepColumns === void 0) { keepColumns = false; }
27363 this.refreshRowComps(keepColumns);
27364 };
27365 HeaderContainer.prototype.setupDragAndDrop = function () {
27366 // center section has viewport, but pinned sections do not
27367 var dropContainer = this.eViewport ? this.eViewport : this.eContainer;
27368 var bodyDropTarget = new _bodyDropTarget__WEBPACK_IMPORTED_MODULE_3__["BodyDropTarget"](this.pinned, dropContainer);
27369 this.createManagedBean(bodyDropTarget);
27370 };
27371 HeaderContainer.prototype.destroyRowComps = function (keepColumns) {
27372 if (keepColumns === void 0) { keepColumns = false; }
27373 this.groupsRowComps.forEach(this.destroyRowComp.bind(this));
27374 this.groupsRowComps = [];
27375 this.destroyRowComp(this.filtersRowComp);
27376 this.filtersRowComp = undefined;
27377 if (!keepColumns) {
27378 this.destroyRowComp(this.columnsRowComp);
27379 this.columnsRowComp = undefined;
27380 }
27381 };
27382 HeaderContainer.prototype.destroyRowComp = function (rowComp) {
27383 if (rowComp) {
27384 this.destroyBean(rowComp);
27385 this.eContainer.removeChild(rowComp.getGui());
27386 }
27387 };
27388 HeaderContainer.prototype.refreshRowComps = function (keepColumns) {
27389 var _this = this;
27390 if (keepColumns === void 0) { keepColumns = false; }
27391 var sequence = new _utils__WEBPACK_IMPORTED_MODULE_7__["NumberSequence"]();
27392 var refreshColumnGroups = function () {
27393 var groupRowCount = _this.columnController.getHeaderRowCount() - 1;
27394 _this.groupsRowComps.forEach(_this.destroyRowComp.bind(_this));
27395 _this.groupsRowComps = [];
27396 for (var i = 0; i < groupRowCount; i++) {
27397 var rowComp = _this.createBean(new _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowComp"](sequence.next(), _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowType"].COLUMN_GROUP, _this.pinned));
27398 _this.groupsRowComps.push(rowComp);
27399 }
27400 };
27401 var refreshColumns = function () {
27402 var rowIndex = sequence.next();
27403 if (_this.columnsRowComp) {
27404 var rowIndexMismatch = _this.columnsRowComp.getRowIndex() !== rowIndex;
27405 if (!keepColumns || rowIndexMismatch) {
27406 _this.destroyRowComp(_this.columnsRowComp);
27407 _this.columnsRowComp = undefined;
27408 }
27409 }
27410 if (!_this.columnsRowComp) {
27411 _this.columnsRowComp = _this.createBean(new _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowComp"](rowIndex, _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowType"].COLUMN, _this.pinned));
27412 }
27413 };
27414 var refreshFilters = function () {
27415 var includeFloatingFilter = !_this.columnController.isPivotMode() && _this.columnController.hasFloatingFilters();
27416 var destroyPreviousComp = function () {
27417 _this.destroyRowComp(_this.filtersRowComp);
27418 _this.filtersRowComp = undefined;
27419 };
27420 if (!includeFloatingFilter) {
27421 destroyPreviousComp();
27422 return;
27423 }
27424 var rowIndex = sequence.next();
27425 if (_this.filtersRowComp) {
27426 var rowIndexMismatch = _this.filtersRowComp.getRowIndex() !== rowIndex;
27427 if (!keepColumns || rowIndexMismatch) {
27428 destroyPreviousComp();
27429 }
27430 }
27431 if (!_this.filtersRowComp) {
27432 _this.filtersRowComp = _this.createBean(new _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowComp"](rowIndex, _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowType"].FLOATING_FILTER, _this.pinned));
27433 }
27434 };
27435 refreshColumnGroups();
27436 refreshColumns();
27437 refreshFilters();
27438 // this re-adds the this.columnsRowComp, which is fine, it just means the DOM will rearrange then,
27439 // taking it out of the last position and re-inserting relative to the other rows.
27440 this.getRowComps().forEach(function (rowComp) { return _this.eContainer.appendChild(rowComp.getGui()); });
27441 };
27442 __decorate([
27443 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
27444 ], HeaderContainer.prototype, "columnController", void 0);
27445 __decorate([
27446 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('scrollVisibleService')
27447 ], HeaderContainer.prototype, "scrollVisibleService", void 0);
27448 __decorate([
27449 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
27450 ], HeaderContainer.prototype, "init", null);
27451 __decorate([
27452 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
27453 ], HeaderContainer.prototype, "destroyRowComps", null);
27454 return HeaderContainer;
27455}(_context_beanStub__WEBPACK_IMPORTED_MODULE_6__["BeanStub"]));
27456
27457
27458
27459/***/ }),
27460/* 113 */
27461/***/ (function(module, __webpack_exports__, __webpack_require__) {
27462
27463"use strict";
27464__webpack_require__.r(__webpack_exports__);
27465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowType", function() { return HeaderRowType; });
27466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return HeaderRowComp; });
27467/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
27468/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
27469/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
27470/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
27471/* harmony import */ var _header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(114);
27472/* harmony import */ var _headerGroup_headerGroupWrapperComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(124);
27473/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
27474/* harmony import */ var _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(125);
27475/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(34);
27476/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
27477/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14);
27478/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33);
27479/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(47);
27480/**
27481 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
27482 * @version v25.3.0
27483 * @link http://www.ag-grid.com/
27484 * @license MIT
27485 */
27486var __extends = (undefined && undefined.__extends) || (function () {
27487 var extendStatics = function (d, b) {
27488 extendStatics = Object.setPrototypeOf ||
27489 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27490 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27491 return extendStatics(d, b);
27492 };
27493 return function (d, b) {
27494 extendStatics(d, b);
27495 function __() { this.constructor = d; }
27496 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27497 };
27498})();
27499var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27500 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27501 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27502 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
27503 return c > 3 && r && Object.defineProperty(target, key, r), r;
27504};
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518var HeaderRowType;
27519(function (HeaderRowType) {
27520 HeaderRowType[HeaderRowType["COLUMN_GROUP"] = 0] = "COLUMN_GROUP";
27521 HeaderRowType[HeaderRowType["COLUMN"] = 1] = "COLUMN";
27522 HeaderRowType[HeaderRowType["FLOATING_FILTER"] = 2] = "FLOATING_FILTER";
27523})(HeaderRowType || (HeaderRowType = {}));
27524var HeaderRowComp = /** @class */ (function (_super) {
27525 __extends(HeaderRowComp, _super);
27526 function HeaderRowComp(dept, type, pinned) {
27527 var _this = _super.call(this, /* html */ "<div class=\"ag-header-row\" role=\"row\"></div>") || this;
27528 _this.headerComps = {};
27529 _this.setRowIndex(dept);
27530 _this.type = type;
27531 _this.pinned = pinned;
27532 var niceClassName = HeaderRowType[type].toLowerCase().replace(/_/g, '-');
27533 _this.addCssClass("ag-header-row-" + niceClassName);
27534 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_8__["isBrowserSafari"])()) {
27535 // fix for a Safari rendering bug that caused the header to flicker above chart panels
27536 // as you move the mouse over the header
27537 _this.getGui().style.transform = 'translateZ(0)';
27538 }
27539 return _this;
27540 }
27541 HeaderRowComp.prototype.forEachHeaderElement = function (callback) {
27542 var _this = this;
27543 Object.keys(this.headerComps).forEach(function (key) {
27544 callback(_this.headerComps[key]);
27545 });
27546 };
27547 HeaderRowComp.prototype.setRowIndex = function (rowIndex) {
27548 this.dept = rowIndex;
27549 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["setAriaRowIndex"])(this.getGui(), rowIndex + 1);
27550 };
27551 HeaderRowComp.prototype.getRowIndex = function () {
27552 return this.dept;
27553 };
27554 HeaderRowComp.prototype.getType = function () {
27555 return this.type;
27556 };
27557 HeaderRowComp.prototype.destroyAllChildComponents = function () {
27558 var idsOfAllChildren = Object.keys(this.headerComps);
27559 this.destroyChildComponents(idsOfAllChildren);
27560 };
27561 HeaderRowComp.prototype.destroyChildComponents = function (idsToDestroy) {
27562 var _this = this;
27563 idsToDestroy.forEach(function (id) {
27564 var childHeaderWrapper = _this.headerComps[id];
27565 _this.getGui().removeChild(childHeaderWrapper.getGui());
27566 _this.destroyBean(childHeaderWrapper);
27567 delete _this.headerComps[id];
27568 });
27569 };
27570 HeaderRowComp.prototype.onRowHeightChanged = function () {
27571 var headerRowCount = this.columnController.getHeaderRowCount();
27572 var sizes = [];
27573 var numberOfFloating = 0;
27574 var groupHeight;
27575 var headerHeight;
27576 if (this.columnController.isPivotMode()) {
27577 groupHeight = this.gridOptionsWrapper.getPivotGroupHeaderHeight();
27578 headerHeight = this.gridOptionsWrapper.getPivotHeaderHeight();
27579 }
27580 else {
27581 if (this.columnController.hasFloatingFilters()) {
27582 headerRowCount++;
27583 numberOfFloating = 1;
27584 }
27585 groupHeight = this.gridOptionsWrapper.getGroupHeaderHeight();
27586 headerHeight = this.gridOptionsWrapper.getHeaderHeight();
27587 }
27588 var numberOfNonGroups = 1 + numberOfFloating;
27589 var numberOfGroups = headerRowCount - numberOfNonGroups;
27590 for (var i = 0; i < numberOfGroups; i++) {
27591 sizes.push(groupHeight);
27592 }
27593 sizes.push(headerHeight);
27594 for (var i = 0; i < numberOfFloating; i++) {
27595 sizes.push(this.gridOptionsWrapper.getFloatingFiltersHeight());
27596 }
27597 var rowHeight = 0;
27598 for (var i = 0; i < this.dept; i++) {
27599 rowHeight += sizes[i];
27600 }
27601 this.getGui().style.top = rowHeight + 'px';
27602 this.getGui().style.height = sizes[this.dept] + 'px';
27603 };
27604 //noinspection JSUnusedLocalSymbols
27605 HeaderRowComp.prototype.init = function () {
27606 this.onRowHeightChanged();
27607 this.onVirtualColumnsChanged();
27608 this.setWidth();
27609 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27610 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_PIVOT_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27611 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27612 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_PIVOT_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27613 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_FLOATING_FILTERS_HEIGHT, this.onRowHeightChanged.bind(this));
27614 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));
27615 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
27616 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));
27617 // this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
27618 };
27619 HeaderRowComp.prototype.onColumnResized = function () {
27620 this.setWidth();
27621 };
27622 HeaderRowComp.prototype.setWidth = function () {
27623 var width = this.getWidthForRow();
27624 this.getGui().style.width = width + 'px';
27625 };
27626 HeaderRowComp.prototype.getWidthForRow = function () {
27627 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].DOM_LAYOUT_PRINT;
27628 if (printLayout) {
27629 var centerRow = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.pinned);
27630 if (centerRow) {
27631 return this.columnController.getContainerWidth(_constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_RIGHT)
27632 + this.columnController.getContainerWidth(_constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_LEFT)
27633 + this.columnController.getContainerWidth(null);
27634 }
27635 return 0;
27636 }
27637 // if not printing, just return the width as normal
27638 return this.columnController.getContainerWidth(this.pinned);
27639 };
27640 HeaderRowComp.prototype.onDisplayedColumnsChanged = function () {
27641 this.onVirtualColumnsChanged();
27642 this.setWidth();
27643 };
27644 HeaderRowComp.prototype.getColumnsInViewport = function () {
27645 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].DOM_LAYOUT_PRINT;
27646 return printLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();
27647 };
27648 HeaderRowComp.prototype.getColumnsInViewportPrintLayout = function () {
27649 var _this = this;
27650 // for print layout, we add all columns into the center
27651 if (this.pinned != null) {
27652 return [];
27653 }
27654 var viewportColumns = [];
27655 var actualDepth = this.getActualDepth();
27656 [_constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_LEFT, null, _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_RIGHT].forEach(function (pinned) {
27657 var items = _this.columnController.getVirtualHeaderGroupRow(pinned, actualDepth);
27658 viewportColumns = viewportColumns.concat(items);
27659 });
27660 return viewportColumns;
27661 };
27662 HeaderRowComp.prototype.getActualDepth = function () {
27663 return this.type == HeaderRowType.FLOATING_FILTER ? this.dept - 1 : this.dept;
27664 };
27665 HeaderRowComp.prototype.getColumnsInViewportNormalLayout = function () {
27666 // when in normal layout, we add the columns for that container only
27667 return this.columnController.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());
27668 };
27669 HeaderRowComp.prototype.onVirtualColumnsChanged = function () {
27670 var _this = this;
27671 var compIdsToRemove = Object.keys(this.headerComps);
27672 var compIdsWanted = [];
27673 var columns = this.getColumnsInViewport();
27674 columns.forEach(function (child) {
27675 // skip groups that have no displayed children. this can happen when the group is broken,
27676 // and this section happens to have nothing to display for the open / closed state.
27677 // (a broken group is one that is split, ie columns in the group have a non-group column
27678 // in between them)
27679 if (child.isEmptyGroup()) {
27680 return;
27681 }
27682 var idOfChild = child.getUniqueId();
27683 var eParentContainer = _this.getGui();
27684 // if we already have this cell rendered, do nothing
27685 var previousComp = _this.headerComps[idOfChild];
27686 // it's possible there is a new Column with the same ID, but it's for a different Column.
27687 // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,
27688 // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are
27689 // about to replace it in the this.headerComps map.
27690 var previousCompForOldColumn = previousComp && previousComp.getColumn() != child;
27691 if (previousCompForOldColumn) {
27692 _this.destroyChildComponents([idOfChild]);
27693 Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["removeFromArray"])(compIdsToRemove, idOfChild);
27694 previousComp = undefined;
27695 }
27696 if (previousComp) {
27697 // already have comp for this column, so do nothing
27698 Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["removeFromArray"])(compIdsToRemove, idOfChild);
27699 }
27700 else {
27701 // don't have comp, need to create one
27702 var headerComp = _this.createHeaderComp(child);
27703 _this.headerComps[idOfChild] = headerComp;
27704 eParentContainer.appendChild(headerComp.getGui());
27705 }
27706 compIdsWanted.push(idOfChild);
27707 });
27708 // we want to keep columns that are focused, otherwise keyboard navigation breaks
27709 var isFocusedAndDisplayed = function (colId) {
27710 var wrapper = _this.headerComps[colId];
27711 var isFocused = _this.focusController.isHeaderWrapperFocused(wrapper);
27712 if (!isFocused) {
27713 return false;
27714 }
27715 var isDisplayed = _this.columnController.isDisplayed(wrapper.getColumn());
27716 return isDisplayed;
27717 };
27718 var focusedAndDisplayedComps = compIdsToRemove.filter(isFocusedAndDisplayed);
27719 focusedAndDisplayedComps.forEach(function (colId) {
27720 Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["removeFromArray"])(compIdsToRemove, colId);
27721 compIdsWanted.push(colId);
27722 });
27723 // at this point, anything left in currentChildIds is an element that is no longer in the viewport
27724 this.destroyChildComponents(compIdsToRemove);
27725 var ensureDomOrder = this.gridOptionsWrapper.isEnsureDomOrder();
27726 if (ensureDomOrder) {
27727 var correctChildOrder = compIdsWanted.map(function (id) { return _this.headerComps[id].getGui(); });
27728 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_11__["setDomChildOrder"])(this.getGui(), correctChildOrder);
27729 }
27730 };
27731 HeaderRowComp.prototype.createHeaderComp = function (columnGroupChild) {
27732 var result;
27733 switch (this.type) {
27734 case HeaderRowType.COLUMN_GROUP:
27735 result = new _headerGroup_headerGroupWrapperComp__WEBPACK_IMPORTED_MODULE_5__["HeaderGroupWrapperComp"](columnGroupChild, this.pinned);
27736 break;
27737 case HeaderRowType.FLOATING_FILTER:
27738 result = new _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_7__["FloatingFilterWrapper"](columnGroupChild, this.pinned);
27739 break;
27740 default:
27741 result = new _header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_4__["HeaderWrapperComp"](columnGroupChild, this.pinned);
27742 break;
27743 }
27744 this.createBean(result);
27745 result.setParentComponent(this);
27746 return result;
27747 };
27748 HeaderRowComp.prototype.getHeaderComps = function () {
27749 return this.headerComps;
27750 };
27751 __decorate([
27752 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
27753 ], HeaderRowComp.prototype, "columnController", void 0);
27754 __decorate([
27755 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusController')
27756 ], HeaderRowComp.prototype, "focusController", void 0);
27757 __decorate([
27758 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
27759 ], HeaderRowComp.prototype, "destroyAllChildComponents", null);
27760 __decorate([
27761 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
27762 ], HeaderRowComp.prototype, "init", null);
27763 return HeaderRowComp;
27764}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
27765
27766
27767
27768/***/ }),
27769/* 114 */
27770/***/ (function(module, __webpack_exports__, __webpack_require__) {
27771
27772"use strict";
27773__webpack_require__.r(__webpack_exports__);
27774/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderWrapperComp", function() { return HeaderWrapperComp; });
27775/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
27776/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
27777/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78);
27778/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
27779/* harmony import */ var _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(115);
27780/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
27781/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(116);
27782/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(117);
27783/* harmony import */ var _selectAllFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(118);
27784/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59);
27785/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(70);
27786/* harmony import */ var _abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(123);
27787/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(47);
27788/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(33);
27789/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60);
27790/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(26);
27791/**
27792 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
27793 * @version v25.3.0
27794 * @link http://www.ag-grid.com/
27795 * @license MIT
27796 */
27797var __extends = (undefined && undefined.__extends) || (function () {
27798 var extendStatics = function (d, b) {
27799 extendStatics = Object.setPrototypeOf ||
27800 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27801 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27802 return extendStatics(d, b);
27803 };
27804 return function (d, b) {
27805 extendStatics(d, b);
27806 function __() { this.constructor = d; }
27807 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27808 };
27809})();
27810var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27811 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27812 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27813 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
27814 return c > 3 && r && Object.defineProperty(target, key, r), r;
27815};
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832var HeaderWrapperComp = /** @class */ (function (_super) {
27833 __extends(HeaderWrapperComp, _super);
27834 function HeaderWrapperComp(column, pinned) {
27835 var _this = _super.call(this, HeaderWrapperComp.TEMPLATE) || this;
27836 _this.headerCompVersion = 0;
27837 _this.refreshFunctions = [];
27838 _this.column = column;
27839 _this.pinned = pinned;
27840 return _this;
27841 }
27842 HeaderWrapperComp.prototype.postConstruct = function () {
27843 _super.prototype.postConstruct.call(this);
27844 this.colDefVersion = this.columnController.getColDefVersion();
27845 this.updateState();
27846 this.setupWidth();
27847 this.setupMovingCss();
27848 this.setupTooltip();
27849 this.setupResize();
27850 this.setupMenuClass();
27851 this.setupSortableClass();
27852 this.addColumnHoverListener();
27853 this.addActiveHeaderMouseListeners();
27854 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_6__["HoverFeature"]([this.column], this.getGui()));
27855 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_ACTIVE_CHANGED, this.onFilterChanged.bind(this));
27856 this.onFilterChanged();
27857 this.createManagedBean(new _selectAllFeature__WEBPACK_IMPORTED_MODULE_8__["SelectAllFeature"](this.cbSelectAll, this.column));
27858 this.cbSelectAll.setParentComponent(this);
27859 this.createManagedBean(new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_7__["SetLeftFeature"](this.column, this.getGui(), this.beans));
27860 this.addAttributes();
27861 _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__["CssClassApplier"].addHeaderClassesFromColDef(this.column.getColDef(), this.getGui(), this.gridOptionsWrapper, this.column, null);
27862 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
27863 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));
27864 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));
27865 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));
27866 this.appendHeaderComp();
27867 };
27868 HeaderWrapperComp.prototype.onColumnRowGroupChanged = function () {
27869 this.checkDisplayName();
27870 };
27871 HeaderWrapperComp.prototype.onColumnPivotChanged = function () {
27872 this.checkDisplayName();
27873 };
27874 HeaderWrapperComp.prototype.onColumnValueChanged = function () {
27875 this.checkDisplayName();
27876 };
27877 HeaderWrapperComp.prototype.checkDisplayName = function () {
27878 // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)
27879 if (this.displayName !== this.calculateDisplayName()) {
27880 this.refresh();
27881 }
27882 };
27883 HeaderWrapperComp.prototype.updateState = function () {
27884 var colDef = this.column.getColDef();
27885 this.sortable = colDef.sortable;
27886 this.displayName = this.calculateDisplayName();
27887 this.draggable = this.workOutDraggable();
27888 };
27889 HeaderWrapperComp.prototype.calculateDisplayName = function () {
27890 return this.columnController.getDisplayNameForColumn(this.column, 'header', true);
27891 };
27892 HeaderWrapperComp.prototype.onNewColumnsLoaded = function () {
27893 var colDefVersionNow = this.columnController.getColDefVersion();
27894 if (colDefVersionNow != this.colDefVersion) {
27895 this.colDefVersion = colDefVersionNow;
27896 this.refresh();
27897 }
27898 };
27899 HeaderWrapperComp.prototype.refresh = function () {
27900 this.updateState();
27901 this.refreshHeaderComp();
27902 this.refreshFunctions.forEach(function (f) { return f(); });
27903 };
27904 HeaderWrapperComp.prototype.refreshHeaderComp = function () {
27905 // if no header comp created yet, it's cos of async creation, so first version is yet
27906 // to get here, in which case nothing to refresh
27907 if (!this.headerComp) {
27908 return;
27909 }
27910 var colDef = this.column.getColDef();
27911 var newHeaderCompConfigured = this.colDefHeaderComponent != colDef.headerComponent
27912 || this.colDefHeaderComponentFramework != colDef.headerComponentFramework;
27913 var headerCompRefreshed = newHeaderCompConfigured ? false : this.attemptHeaderCompRefresh();
27914 if (headerCompRefreshed) {
27915 var dragSourceIsMissing = this.draggable && !this.moveDragSource;
27916 var dragSourceNeedsRemoving = !this.draggable && this.moveDragSource;
27917 if (dragSourceIsMissing || dragSourceNeedsRemoving) {
27918 this.attachDraggingToHeaderComp();
27919 }
27920 }
27921 else {
27922 this.appendHeaderComp();
27923 }
27924 };
27925 HeaderWrapperComp.prototype.destroyHeaderComp = function () {
27926 if (this.headerComp) {
27927 this.getGui().removeChild(this.headerCompGui);
27928 this.headerComp = this.destroyBean(this.headerComp);
27929 this.headerCompGui = undefined;
27930 }
27931 this.removeMoveDragSource();
27932 };
27933 HeaderWrapperComp.prototype.removeMoveDragSource = function () {
27934 if (this.moveDragSource) {
27935 this.dragAndDropService.removeDragSource(this.moveDragSource);
27936 this.moveDragSource = undefined;
27937 }
27938 };
27939 HeaderWrapperComp.prototype.attemptHeaderCompRefresh = function () {
27940 // if no refresh method, then we want to replace the headerComp
27941 if (!this.headerComp.refresh) {
27942 return false;
27943 }
27944 // if the cell renderer has a refresh method, we call this instead of doing a refresh
27945 var params = this.createParams();
27946 // take any custom params off of the user
27947 var finalParams = this.userComponentFactory.createFinalParams(this.getComponentHolder(), 'headerComponent', params);
27948 var res = this.headerComp.refresh(finalParams);
27949 return res;
27950 };
27951 HeaderWrapperComp.prototype.addActiveHeaderMouseListeners = function () {
27952 var _this = this;
27953 var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };
27954 this.addManagedListener(this.getGui(), 'mouseenter', listener);
27955 this.addManagedListener(this.getGui(), 'mouseleave', listener);
27956 };
27957 HeaderWrapperComp.prototype.setActiveHeader = function (active) {
27958 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-active', active);
27959 };
27960 HeaderWrapperComp.prototype.onFocusIn = function (e) {
27961 if (!this.getGui().contains(e.relatedTarget)) {
27962 var headerRow = this.getParentComponent();
27963 this.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());
27964 }
27965 this.setActiveHeader(true);
27966 };
27967 HeaderWrapperComp.prototype.onFocusOut = function (e) {
27968 if (this.getGui().contains(e.relatedTarget)) {
27969 return;
27970 }
27971 this.setActiveHeader(false);
27972 };
27973 HeaderWrapperComp.prototype.handleKeyDown = function (e) {
27974 var headerComp = this.headerComp;
27975 if (!headerComp) {
27976 return;
27977 }
27978 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].SPACE) {
27979 var checkbox = this.cbSelectAll;
27980 if (checkbox.isDisplayed() && !checkbox.getGui().contains(document.activeElement)) {
27981 e.preventDefault();
27982 checkbox.setValue(!checkbox.getValue());
27983 }
27984 }
27985 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].ENTER) {
27986 if (e.ctrlKey || e.metaKey) {
27987 if (this.menuEnabled && headerComp.showMenu) {
27988 e.preventDefault();
27989 headerComp.showMenu();
27990 }
27991 }
27992 else if (this.sortable) {
27993 var multiSort = e.shiftKey;
27994 this.sortController.progressSort(this.column, multiSort, "uiColumnSorted");
27995 }
27996 }
27997 };
27998 HeaderWrapperComp.prototype.onTabKeyDown = function () { };
27999 HeaderWrapperComp.prototype.getComponentHolder = function () {
28000 return this.column.getColDef();
28001 };
28002 HeaderWrapperComp.prototype.addColumnHoverListener = function () {
28003 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_HOVER_CHANGED, this.onColumnHover.bind(this));
28004 this.onColumnHover();
28005 };
28006 HeaderWrapperComp.prototype.onColumnHover = function () {
28007 var isHovered = this.columnHoverService.isHovered(this.column);
28008 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui(), 'ag-column-hover', isHovered);
28009 };
28010 HeaderWrapperComp.prototype.setupSortableClass = function () {
28011 var _this = this;
28012 var eGui = this.getGui();
28013 var updateSortableCssClass = function () {
28014 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(eGui, 'ag-header-cell-sortable', !!_this.sortable);
28015 };
28016 var updateAriaSort = function () {
28017 if (_this.sortable) {
28018 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["setAriaSort"])(eGui, Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["getAriaSortState"])(_this.column));
28019 }
28020 else {
28021 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["removeAriaSort"])(eGui);
28022 }
28023 };
28024 updateSortableCssClass();
28025 updateAriaSort();
28026 this.refreshFunctions.push(updateSortableCssClass);
28027 this.refreshFunctions.push(updateAriaSort);
28028 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_SORT_CHANGED, updateAriaSort.bind(this));
28029 };
28030 HeaderWrapperComp.prototype.onFilterChanged = function () {
28031 var filterPresent = this.column.isFilterActive();
28032 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-filtered', filterPresent);
28033 };
28034 HeaderWrapperComp.prototype.appendHeaderComp = function () {
28035 this.headerCompVersion++;
28036 var colDef = this.column.getColDef();
28037 this.colDefHeaderComponent = colDef.headerComponent;
28038 this.colDefHeaderComponentFramework = colDef.headerComponentFramework;
28039 var params = this.createParams();
28040 var callback = this.afterHeaderCompCreated.bind(this, this.headerCompVersion);
28041 this.userComponentFactory.newHeaderComponent(params).then(callback);
28042 };
28043 HeaderWrapperComp.prototype.createParams = function () {
28044 var _this = this;
28045 var colDef = this.column.getColDef();
28046 this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;
28047 var params = {
28048 column: this.column,
28049 displayName: this.displayName,
28050 enableSorting: colDef.sortable,
28051 enableMenu: this.menuEnabled,
28052 showColumnMenu: function (source) {
28053 _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);
28054 },
28055 progressSort: function (multiSort) {
28056 _this.sortController.progressSort(_this.column, !!multiSort, "uiColumnSorted");
28057 },
28058 setSort: function (sort, multiSort) {
28059 _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, "uiColumnSorted");
28060 },
28061 api: this.gridApi,
28062 columnApi: this.columnApi,
28063 context: this.gridOptionsWrapper.getContext(),
28064 eGridHeader: this.getGui()
28065 };
28066 return params;
28067 };
28068 HeaderWrapperComp.prototype.afterHeaderCompCreated = function (version, headerComp) {
28069 if (version != this.headerCompVersion || !this.isAlive()) {
28070 this.destroyBean(headerComp);
28071 return;
28072 }
28073 this.destroyHeaderComp();
28074 this.headerComp = headerComp;
28075 this.headerCompGui = headerComp.getGui();
28076 this.getGui().appendChild(this.headerCompGui);
28077 this.attachDraggingToHeaderComp();
28078 };
28079 HeaderWrapperComp.prototype.onColumnMovingChanged = function () {
28080 // this function adds or removes the moving css, based on if the col is moving.
28081 // this is what makes the header go dark when it is been moved (gives impression to
28082 // user that the column was picked up).
28083 if (this.column.isMoving()) {
28084 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addCssClass"])(this.getGui(), 'ag-header-cell-moving');
28085 }
28086 else {
28087 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["removeCssClass"])(this.getGui(), 'ag-header-cell-moving');
28088 }
28089 };
28090 HeaderWrapperComp.prototype.workOutDraggable = function () {
28091 var colDef = this.column.getColDef();
28092 var isSuppressMovableColumns = this.gridOptionsWrapper.isSuppressMovableColumns();
28093 var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;
28094 // we should still be allowed drag the column, even if it can't be moved, if the column
28095 // can be dragged to a rowGroup or pivot drop zone
28096 return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;
28097 };
28098 HeaderWrapperComp.prototype.attachDraggingToHeaderComp = function () {
28099 var _this = this;
28100 this.removeMoveDragSource();
28101 if (!this.draggable) {
28102 return;
28103 }
28104 this.moveDragSource = {
28105 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].HeaderCell,
28106 eElement: this.headerCompGui,
28107 defaultIconName: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_HIDE,
28108 getDragItem: function () { return _this.createDragItem(); },
28109 dragItemName: this.displayName,
28110 onDragStarted: function () { return _this.column.setMoving(true, "uiColumnMoved"); },
28111 onDragStopped: function () { return _this.column.setMoving(false, "uiColumnMoved"); }
28112 };
28113 this.dragAndDropService.addDragSource(this.moveDragSource, true);
28114 };
28115 HeaderWrapperComp.prototype.createDragItem = function () {
28116 var visibleState = {};
28117 visibleState[this.column.getId()] = this.column.isVisible();
28118 return {
28119 columns: [this.column],
28120 visibleState: visibleState
28121 };
28122 };
28123 HeaderWrapperComp.prototype.setupResize = function () {
28124 var _this = this;
28125 var colDef = this.getComponentHolder();
28126 var destroyResizeFuncs = [];
28127 var canResize;
28128 var canAutosize;
28129 var addResize = function () {
28130 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["setDisplayed"])(_this.eResize, canResize);
28131 if (!canResize) {
28132 return;
28133 }
28134 var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({
28135 eResizeBar: _this.eResize,
28136 onResizeStart: _this.onResizeStart.bind(_this),
28137 onResizing: _this.onResizing.bind(_this, false),
28138 onResizeEnd: _this.onResizing.bind(_this, true)
28139 });
28140 destroyResizeFuncs.push(finishedWithResizeFunc);
28141 if (canAutosize) {
28142 var skipHeaderOnAutoSize_1 = _this.gridOptionsWrapper.isSkipHeaderOnAutoSize();
28143 var autoSizeColListener_1 = function () {
28144 _this.columnController.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, "uiColumnResized");
28145 };
28146 _this.eResize.addEventListener('dblclick', autoSizeColListener_1);
28147 var touchListener_1 = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"](_this.eResize);
28148 touchListener_1.addEventListener(_widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"].EVENT_DOUBLE_TAP, autoSizeColListener_1);
28149 _this.addDestroyFunc(function () {
28150 _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);
28151 touchListener_1.removeEventListener(_widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"].EVENT_DOUBLE_TAP, autoSizeColListener_1);
28152 touchListener_1.destroy();
28153 });
28154 }
28155 };
28156 var removeResize = function () {
28157 destroyResizeFuncs.forEach(function (f) { return f(); });
28158 destroyResizeFuncs.length = 0;
28159 };
28160 var refresh = function () {
28161 var resize = _this.column.isResizable();
28162 var autoSize = !_this.gridOptionsWrapper.isSuppressAutoSize() && !colDef.suppressAutoSize;
28163 var propertyChange = resize !== canResize || autoSize !== canAutosize;
28164 if (propertyChange) {
28165 canResize = resize;
28166 canAutosize = autoSize;
28167 removeResize();
28168 addResize();
28169 }
28170 };
28171 refresh();
28172 this.addDestroyFunc(removeResize);
28173 this.refreshFunctions.push(refresh);
28174 };
28175 HeaderWrapperComp.prototype.onResizing = function (finished, resizeAmount) {
28176 var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);
28177 var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];
28178 this.columnController.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, "uiColumnDragged");
28179 if (finished) {
28180 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["removeCssClass"])(this.getGui(), 'ag-column-resizing');
28181 }
28182 };
28183 HeaderWrapperComp.prototype.onResizeStart = function (shiftKey) {
28184 this.resizeStartWidth = this.column.getActualWidth();
28185 this.resizeWithShiftKey = shiftKey;
28186 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addCssClass"])(this.getGui(), 'ag-column-resizing');
28187 };
28188 HeaderWrapperComp.prototype.getTooltipParams = function () {
28189 var res = _super.prototype.getTooltipParams.call(this);
28190 res.location = 'header';
28191 res.colDef = this.column.getColDef();
28192 return res;
28193 };
28194 HeaderWrapperComp.prototype.setupTooltip = function () {
28195 var _this = this;
28196 var refresh = function () {
28197 var newTooltipText = _this.column.getColDef().headerTooltip;
28198 _this.setTooltip(Object(_utils_string__WEBPACK_IMPORTED_MODULE_15__["escapeString"])(newTooltipText));
28199 };
28200 refresh();
28201 this.refreshFunctions.push(refresh);
28202 };
28203 HeaderWrapperComp.prototype.setupMovingCss = function () {
28204 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MOVING_CHANGED, this.onColumnMovingChanged.bind(this));
28205 this.onColumnMovingChanged();
28206 };
28207 HeaderWrapperComp.prototype.addAttributes = function () {
28208 this.getGui().setAttribute("col-id", this.column.getColId());
28209 };
28210 HeaderWrapperComp.prototype.setupWidth = function () {
28211 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_WIDTH_CHANGED, this.onColumnWidthChanged.bind(this));
28212 this.onColumnWidthChanged();
28213 };
28214 HeaderWrapperComp.prototype.setupMenuClass = function () {
28215 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MENU_VISIBLE_CHANGED, this.onMenuVisible.bind(this));
28216 };
28217 HeaderWrapperComp.prototype.onMenuVisible = function () {
28218 this.addOrRemoveCssClass('ag-column-menu-visible', this.column.isMenuVisible());
28219 };
28220 HeaderWrapperComp.prototype.onColumnWidthChanged = function () {
28221 this.getGui().style.width = this.column.getActualWidth() + 'px';
28222 };
28223 // optionally inverts the drag, depending on pinned and RTL
28224 // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?
28225 HeaderWrapperComp.prototype.normaliseResizeAmount = function (dragChange) {
28226 var result = dragChange;
28227 if (this.gridOptionsWrapper.isEnableRtl()) {
28228 // for RTL, dragging left makes the col bigger, except when pinning left
28229 if (this.pinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_LEFT) {
28230 result *= -1;
28231 }
28232 }
28233 else {
28234 // for LTR (ie normal), dragging left makes the col smaller, except when pinning right
28235 if (this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_RIGHT) {
28236 result *= -1;
28237 }
28238 }
28239 return result;
28240 };
28241 HeaderWrapperComp.TEMPLATE = "<div class=\"ag-header-cell\" role=\"columnheader\" unselectable=\"on\" tabindex=\"-1\">\n <div ref=\"eResize\" class=\"ag-header-cell-resize\" role=\"presentation\"></div>\n <ag-checkbox ref=\"cbSelectAll\" class=\"ag-header-select-all\" role=\"presentation\"></ag-checkbox>\n </div>";
28242 __decorate([
28243 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
28244 ], HeaderWrapperComp.prototype, "dragAndDropService", void 0);
28245 __decorate([
28246 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
28247 ], HeaderWrapperComp.prototype, "columnController", void 0);
28248 __decorate([
28249 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('horizontalResizeService')
28250 ], HeaderWrapperComp.prototype, "horizontalResizeService", void 0);
28251 __decorate([
28252 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('menuFactory')
28253 ], HeaderWrapperComp.prototype, "menuFactory", void 0);
28254 __decorate([
28255 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
28256 ], HeaderWrapperComp.prototype, "gridApi", void 0);
28257 __decorate([
28258 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
28259 ], HeaderWrapperComp.prototype, "columnApi", void 0);
28260 __decorate([
28261 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
28262 ], HeaderWrapperComp.prototype, "sortController", void 0);
28263 __decorate([
28264 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
28265 ], HeaderWrapperComp.prototype, "userComponentFactory", void 0);
28266 __decorate([
28267 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
28268 ], HeaderWrapperComp.prototype, "columnHoverService", void 0);
28269 __decorate([
28270 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
28271 ], HeaderWrapperComp.prototype, "beans", void 0);
28272 __decorate([
28273 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eResize')
28274 ], HeaderWrapperComp.prototype, "eResize", void 0);
28275 __decorate([
28276 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('cbSelectAll')
28277 ], HeaderWrapperComp.prototype, "cbSelectAll", void 0);
28278 __decorate([
28279 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
28280 ], HeaderWrapperComp.prototype, "destroyHeaderComp", null);
28281 return HeaderWrapperComp;
28282}(_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_11__["AbstractHeaderWrapper"]));
28283
28284
28285
28286/***/ }),
28287/* 115 */
28288/***/ (function(module, __webpack_exports__, __webpack_require__) {
28289
28290"use strict";
28291__webpack_require__.r(__webpack_exports__);
28292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return CssClassApplier; });
28293/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
28294/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
28295/**
28296 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28297 * @version v25.3.0
28298 * @link http://www.ag-grid.com/
28299 * @license MIT
28300 */
28301
28302
28303var CssClassApplier = /** @class */ (function () {
28304 function CssClassApplier() {
28305 }
28306 CssClassApplier.addHeaderClassesFromColDef = function (abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {
28307 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(abstractColDef)) {
28308 return;
28309 }
28310 this.addColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup);
28311 };
28312 CssClassApplier.addToolPanelClassesFromColDef = function (abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {
28313 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(abstractColDef)) {
28314 return;
28315 }
28316 this.addColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup);
28317 };
28318 CssClassApplier.addColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {
28319 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(classesOrFunc)) {
28320 return;
28321 }
28322 var classToUse;
28323 if (typeof classesOrFunc === 'function') {
28324 var params = {
28325 // bad naming, as colDef here can be a group or a column,
28326 // however most people won't appreciate the difference,
28327 // so keeping it as colDef to avoid confusion.
28328 colDef: abstractColDef,
28329 column: column,
28330 columnGroup: columnGroup,
28331 context: gridOptionsWrapper.getContext(),
28332 api: gridOptionsWrapper.getApi()
28333 };
28334 var headerClassFunc = classesOrFunc;
28335 classToUse = headerClassFunc(params);
28336 }
28337 else {
28338 classToUse = classesOrFunc;
28339 }
28340 if (typeof classToUse === 'string') {
28341 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(eHeaderCell, classToUse);
28342 }
28343 else if (Array.isArray(classToUse)) {
28344 classToUse.forEach(function (cssClassItem) {
28345 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(eHeaderCell, cssClassItem);
28346 });
28347 }
28348 };
28349 return CssClassApplier;
28350}());
28351
28352
28353
28354/***/ }),
28355/* 116 */
28356/***/ (function(module, __webpack_exports__, __webpack_require__) {
28357
28358"use strict";
28359__webpack_require__.r(__webpack_exports__);
28360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HoverFeature", function() { return HoverFeature; });
28361/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
28362/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
28363/**
28364 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28365 * @version v25.3.0
28366 * @link http://www.ag-grid.com/
28367 * @license MIT
28368 */
28369var __extends = (undefined && undefined.__extends) || (function () {
28370 var extendStatics = function (d, b) {
28371 extendStatics = Object.setPrototypeOf ||
28372 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28373 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28374 return extendStatics(d, b);
28375 };
28376 return function (d, b) {
28377 extendStatics(d, b);
28378 function __() { this.constructor = d; }
28379 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28380 };
28381})();
28382var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28383 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28384 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28385 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
28386 return c > 3 && r && Object.defineProperty(target, key, r), r;
28387};
28388
28389
28390var HoverFeature = /** @class */ (function (_super) {
28391 __extends(HoverFeature, _super);
28392 function HoverFeature(columns, element) {
28393 var _this = _super.call(this) || this;
28394 _this.columns = columns;
28395 _this.element = element;
28396 return _this;
28397 }
28398 HoverFeature.prototype.postConstruct = function () {
28399 this.addMouseHoverListeners();
28400 };
28401 HoverFeature.prototype.addMouseHoverListeners = function () {
28402 this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));
28403 this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));
28404 };
28405 HoverFeature.prototype.onMouseOut = function () {
28406 this.columnHoverService.clearMouseOver();
28407 };
28408 HoverFeature.prototype.onMouseOver = function () {
28409 this.columnHoverService.setMouseOver(this.columns);
28410 };
28411 __decorate([
28412 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnHoverService')
28413 ], HoverFeature.prototype, "columnHoverService", void 0);
28414 __decorate([
28415 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
28416 ], HoverFeature.prototype, "postConstruct", null);
28417 return HoverFeature;
28418}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
28419
28420
28421
28422/***/ }),
28423/* 117 */
28424/***/ (function(module, __webpack_exports__, __webpack_require__) {
28425
28426"use strict";
28427__webpack_require__.r(__webpack_exports__);
28428/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return SetLeftFeature; });
28429/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
28430/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
28431/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
28432/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
28433/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
28434/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
28435/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
28436/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24);
28437/**
28438 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28439 * @version v25.3.0
28440 * @link http://www.ag-grid.com/
28441 * @license MIT
28442 */
28443var __extends = (undefined && undefined.__extends) || (function () {
28444 var extendStatics = function (d, b) {
28445 extendStatics = Object.setPrototypeOf ||
28446 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28447 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28448 return extendStatics(d, b);
28449 };
28450 return function (d, b) {
28451 extendStatics(d, b);
28452 function __() { this.constructor = d; }
28453 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28454 };
28455})();
28456var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28457 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28458 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28459 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
28460 return c > 3 && r && Object.defineProperty(target, key, r), r;
28461};
28462
28463
28464
28465
28466
28467
28468
28469
28470var SetLeftFeature = /** @class */ (function (_super) {
28471 __extends(SetLeftFeature, _super);
28472 function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {
28473 var _this = _super.call(this) || this;
28474 _this.columnOrGroup = columnOrGroup;
28475 _this.eCell = eCell;
28476 _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;
28477 _this.colsSpanning = colsSpanning;
28478 _this.beans = beans;
28479 _this.printLayout = beans.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].DOM_LAYOUT_PRINT;
28480 return _this;
28481 }
28482 SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {
28483 this.colsSpanning = colsSpanning;
28484 this.onLeftChanged();
28485 };
28486 SetLeftFeature.prototype.getColumnOrGroup = function () {
28487 if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {
28488 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["last"])(this.colsSpanning);
28489 }
28490 return this.columnOrGroup;
28491 };
28492 SetLeftFeature.prototype.postConstruct = function () {
28493 this.addManagedListener(this.columnOrGroup, _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));
28494 this.setLeftFirstTime();
28495 // when in print layout, the left position is also dependent on the width of the pinned sections.
28496 // so additionally update left if any column width changes.
28497 if (this.printLayout) {
28498 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));
28499 }
28500 };
28501 SetLeftFeature.prototype.setLeftFirstTime = function () {
28502 var suppressMoveAnimation = this.beans.gridOptionsWrapper.isSuppressColumnMoveAnimation();
28503 var oldLeftExists = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.columnOrGroup.getOldLeft());
28504 var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;
28505 if (animateColumnMove) {
28506 this.animateInLeft();
28507 }
28508 else {
28509 this.onLeftChanged();
28510 }
28511 };
28512 SetLeftFeature.prototype.animateInLeft = function () {
28513 var _this = this;
28514 var colOrGroup = this.getColumnOrGroup();
28515 var left = colOrGroup.getLeft();
28516 var oldLeft = colOrGroup.getOldLeft();
28517 var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);
28518 var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);
28519 this.setLeft(oldActualLeft);
28520 // we must keep track of the left we want to set to, as this would otherwise lead to a race
28521 // condition, if the user changed the left value many times in one VM turn, then we want to make
28522 // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left
28523 // position. eg if user changes column position twice, then setLeft() below executes twice in next
28524 // VM turn, but only one (the correct one) should get applied.
28525 this.actualLeft = actualLeft;
28526 this.beans.columnAnimationService.executeNextVMTurn(function () {
28527 // test this left value is the latest one to be applied, and if not, do nothing
28528 if (_this.actualLeft === actualLeft) {
28529 _this.setLeft(actualLeft);
28530 }
28531 });
28532 };
28533 SetLeftFeature.prototype.onLeftChanged = function () {
28534 var colOrGroup = this.getColumnOrGroup();
28535 var left = colOrGroup.getLeft();
28536 this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);
28537 this.setLeft(this.actualLeft);
28538 };
28539 SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {
28540 if (!this.printLayout) {
28541 return leftPosition;
28542 }
28543 if (colOrGroup.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT) {
28544 return leftPosition;
28545 }
28546 var leftWidth = this.beans.columnController.getDisplayedColumnsLeftWidth();
28547 if (colOrGroup.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT) {
28548 var bodyWidth = this.beans.columnController.getBodyContainerWidth();
28549 return leftWidth + bodyWidth + leftPosition;
28550 }
28551 // is in body
28552 return leftWidth + leftPosition;
28553 };
28554 SetLeftFeature.prototype.setLeft = function (value) {
28555 // if the value is null, then that means the column is no longer
28556 // displayed. there is logic in the rendering to fade these columns
28557 // out, so we don't try and change their left positions.
28558 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(value)) {
28559 this.eCell.style.left = value + "px";
28560 }
28561 var indexColumn;
28562 if (this.columnOrGroup instanceof _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
28563 indexColumn = this.columnOrGroup;
28564 }
28565 else {
28566 var columnGroup = this.columnOrGroup;
28567 var children = columnGroup.getLeafColumns();
28568 if (!children.length) {
28569 return;
28570 }
28571 if (children.length > 1) {
28572 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaColSpan"])(this.ariaEl, children.length);
28573 }
28574 indexColumn = children[0];
28575 }
28576 var index = this.beans.columnController.getAriaColumnIndex(indexColumn);
28577 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaColIndex"])(this.ariaEl, index);
28578 };
28579 __decorate([
28580 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
28581 ], SetLeftFeature.prototype, "postConstruct", null);
28582 return SetLeftFeature;
28583}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
28584
28585
28586
28587/***/ }),
28588/* 118 */
28589/***/ (function(module, __webpack_exports__, __webpack_require__) {
28590
28591"use strict";
28592__webpack_require__.r(__webpack_exports__);
28593/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectAllFeature", function() { return SelectAllFeature; });
28594/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(119);
28595/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
28596/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
28597/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
28598/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
28599/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47);
28600/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
28601/**
28602 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28603 * @version v25.3.0
28604 * @link http://www.ag-grid.com/
28605 * @license MIT
28606 */
28607var __extends = (undefined && undefined.__extends) || (function () {
28608 var extendStatics = function (d, b) {
28609 extendStatics = Object.setPrototypeOf ||
28610 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28611 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28612 return extendStatics(d, b);
28613 };
28614 return function (d, b) {
28615 extendStatics(d, b);
28616 function __() { this.constructor = d; }
28617 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28618 };
28619})();
28620var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28621 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28622 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28623 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
28624 return c > 3 && r && Object.defineProperty(target, key, r), r;
28625};
28626
28627
28628
28629
28630
28631
28632
28633var SelectAllFeature = /** @class */ (function (_super) {
28634 __extends(SelectAllFeature, _super);
28635 function SelectAllFeature(cbSelectAll, column) {
28636 var _this = _super.call(this) || this;
28637 _this.cbSelectAllVisible = false;
28638 _this.processingEventFromCheckbox = false;
28639 _this.cbSelectAll = cbSelectAll;
28640 _this.column = column;
28641 var colDef = column.getColDef();
28642 _this.filteredOnly = colDef ? !!colDef.headerCheckboxSelectionFilteredOnly : false;
28643 return _this;
28644 }
28645 SelectAllFeature.prototype.postConstruct = function () {
28646 this.showOrHideSelectAll();
28647 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));
28648 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));
28649 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));
28650 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));
28651 this.addManagedListener(this.cbSelectAll, _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"].EVENT_CHANGED, this.onCbSelectAll.bind(this));
28652 this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');
28653 this.refreshSelectAllLabel();
28654 };
28655 SelectAllFeature.prototype.showOrHideSelectAll = function () {
28656 this.cbSelectAllVisible = this.isCheckboxSelection();
28657 this.cbSelectAll.setDisplayed(this.cbSelectAllVisible);
28658 if (this.cbSelectAllVisible) {
28659 // in case user is trying this feature with the wrong model type
28660 this.checkRightRowModelType();
28661 // make sure checkbox is showing the right state
28662 this.updateStateOfCheckbox();
28663 }
28664 this.refreshHeaderAriaDescribedBy(this.cbSelectAllVisible);
28665 };
28666 SelectAllFeature.prototype.refreshHeaderAriaDescribedBy = function (isSelectAllVisible) {
28667 var parentHeader = this.cbSelectAll.getParentComponent();
28668 var parentHeaderGui = parentHeader && parentHeader.getGui();
28669 if (!parentHeaderGui || !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["isVisible"])(parentHeaderGui)) {
28670 return;
28671 }
28672 var describedByIds = '';
28673 if (parentHeaderGui) {
28674 describedByIds = Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["getAriaDescribedBy"])(parentHeaderGui);
28675 }
28676 var cbSelectAllId = this.cbSelectAll.getInputElement().id;
28677 var describedByIdsHasSelectAllFeature = describedByIds.indexOf(cbSelectAllId) !== -1;
28678 if (isSelectAllVisible) {
28679 if (!describedByIdsHasSelectAllFeature) {
28680 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaDescribedBy"])(parentHeaderGui, cbSelectAllId + " " + describedByIds.trim());
28681 }
28682 }
28683 else if (describedByIdsHasSelectAllFeature) {
28684 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaDescribedBy"])(parentHeaderGui, describedByIds.trim().split(' ').filter(function (id) { return id === cbSelectAllId; }).join(' '));
28685 }
28686 };
28687 SelectAllFeature.prototype.onModelChanged = function () {
28688 if (!this.cbSelectAllVisible) {
28689 return;
28690 }
28691 this.updateStateOfCheckbox();
28692 };
28693 SelectAllFeature.prototype.onSelectionChanged = function () {
28694 if (!this.cbSelectAllVisible) {
28695 return;
28696 }
28697 this.updateStateOfCheckbox();
28698 };
28699 SelectAllFeature.prototype.getNextCheckboxState = function (selectionCount) {
28700 // if no rows, always have it unselected
28701 if (selectionCount.selected === 0 && selectionCount.notSelected === 0) {
28702 return false;
28703 }
28704 // if mix of selected and unselected, this is the tri-state
28705 if (selectionCount.selected > 0 && selectionCount.notSelected > 0) {
28706 return null;
28707 }
28708 // only selected
28709 if (selectionCount.selected > 0) {
28710 return true;
28711 }
28712 // nothing selected
28713 return false;
28714 };
28715 SelectAllFeature.prototype.updateStateOfCheckbox = function () {
28716 if (this.processingEventFromCheckbox) {
28717 return;
28718 }
28719 this.processingEventFromCheckbox = true;
28720 var selectionCount = this.getSelectionCount();
28721 var allSelected = this.getNextCheckboxState(selectionCount);
28722 this.cbSelectAll.setValue(allSelected);
28723 this.refreshSelectAllLabel();
28724 this.processingEventFromCheckbox = false;
28725 };
28726 SelectAllFeature.prototype.refreshSelectAllLabel = function () {
28727 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
28728 var checked = this.cbSelectAll.getValue();
28729 var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');
28730 var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');
28731 this.cbSelectAll.setInputAriaLabel(ariaLabel + " (" + ariaStatus + ")");
28732 };
28733 SelectAllFeature.prototype.getSelectionCount = function () {
28734 var _this = this;
28735 var selectedCount = 0;
28736 var notSelectedCount = 0;
28737 var callback = function (node) {
28738 if (_this.gridOptionsWrapper.isGroupSelectsChildren() && node.group) {
28739 return;
28740 }
28741 if (node.isSelected()) {
28742 selectedCount++;
28743 }
28744 else if (!node.selectable) {
28745 // don't count non-selectable nodes!
28746 }
28747 else {
28748 notSelectedCount++;
28749 }
28750 };
28751 if (this.filteredOnly) {
28752 this.gridApi.forEachNodeAfterFilter(callback);
28753 }
28754 else {
28755 this.gridApi.forEachNode(callback);
28756 }
28757 return {
28758 notSelected: notSelectedCount,
28759 selected: selectedCount
28760 };
28761 };
28762 SelectAllFeature.prototype.checkRightRowModelType = function () {
28763 var rowModelType = this.rowModel.getType();
28764 var rowModelMatches = rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
28765 if (!rowModelMatches) {
28766 console.warn("AG Grid: selectAllCheckbox is only available if using normal row model, you are using " + rowModelType);
28767 }
28768 };
28769 SelectAllFeature.prototype.onCbSelectAll = function () {
28770 if (this.processingEventFromCheckbox) {
28771 return;
28772 }
28773 if (!this.cbSelectAllVisible) {
28774 return;
28775 }
28776 var value = this.cbSelectAll.getValue();
28777 if (value) {
28778 this.selectionController.selectAllRowNodes(this.filteredOnly);
28779 }
28780 else {
28781 this.selectionController.deselectAllRowNodes(this.filteredOnly);
28782 }
28783 };
28784 SelectAllFeature.prototype.isCheckboxSelection = function () {
28785 var result = this.column.getColDef().headerCheckboxSelection;
28786 if (typeof result === 'function') {
28787 var func = result;
28788 result = func({
28789 column: this.column,
28790 colDef: this.column.getColDef(),
28791 columnApi: this.columnApi,
28792 api: this.gridApi
28793 });
28794 }
28795 if (result) {
28796 if (this.gridOptionsWrapper.isRowModelServerSide()) {
28797 console.warn('headerCheckboxSelection is not supported for Server Side Row Model');
28798 return false;
28799 }
28800 if (this.gridOptionsWrapper.isRowModelInfinite()) {
28801 console.warn('headerCheckboxSelection is not supported for Infinite Row Model');
28802 return false;
28803 }
28804 if (this.gridOptionsWrapper.isRowModelViewport()) {
28805 console.warn('headerCheckboxSelection is not supported for Viewport Row Model');
28806 return false;
28807 }
28808 // otherwise the row model is compatible, so return true
28809 return true;
28810 }
28811 return false;
28812 };
28813 __decorate([
28814 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
28815 ], SelectAllFeature.prototype, "gridApi", void 0);
28816 __decorate([
28817 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
28818 ], SelectAllFeature.prototype, "columnApi", void 0);
28819 __decorate([
28820 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
28821 ], SelectAllFeature.prototype, "rowModel", void 0);
28822 __decorate([
28823 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionController')
28824 ], SelectAllFeature.prototype, "selectionController", void 0);
28825 __decorate([
28826 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
28827 ], SelectAllFeature.prototype, "postConstruct", null);
28828 return SelectAllFeature;
28829}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
28830
28831
28832
28833/***/ }),
28834/* 119 */
28835/***/ (function(module, __webpack_exports__, __webpack_require__) {
28836
28837"use strict";
28838__webpack_require__.r(__webpack_exports__);
28839/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return AgCheckbox; });
28840/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
28841/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(120);
28842/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
28843/**
28844 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28845 * @version v25.3.0
28846 * @link http://www.ag-grid.com/
28847 * @license MIT
28848 */
28849var __extends = (undefined && undefined.__extends) || (function () {
28850 var extendStatics = function (d, b) {
28851 extendStatics = Object.setPrototypeOf ||
28852 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28853 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28854 return extendStatics(d, b);
28855 };
28856 return function (d, b) {
28857 extendStatics(d, b);
28858 function __() { this.constructor = d; }
28859 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28860 };
28861})();
28862
28863
28864
28865var AgCheckbox = /** @class */ (function (_super) {
28866 __extends(AgCheckbox, _super);
28867 function AgCheckbox(config, className, inputType) {
28868 if (className === void 0) { className = 'ag-checkbox'; }
28869 if (inputType === void 0) { inputType = 'checkbox'; }
28870 var _this = _super.call(this, config, className, inputType) || this;
28871 _this.labelAlignment = 'right';
28872 _this.selected = false;
28873 _this.readOnly = false;
28874 _this.passive = false;
28875 return _this;
28876 }
28877 AgCheckbox.prototype.addInputListeners = function () {
28878 this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));
28879 this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));
28880 };
28881 AgCheckbox.prototype.getNextValue = function () {
28882 return this.selected === undefined ? true : !this.selected;
28883 };
28884 AgCheckbox.prototype.setPassive = function (passive) {
28885 this.passive = passive;
28886 };
28887 AgCheckbox.prototype.isReadOnly = function () {
28888 return this.readOnly;
28889 };
28890 AgCheckbox.prototype.setReadOnly = function (readOnly) {
28891 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-disabled', readOnly);
28892 this.eInput.disabled = readOnly;
28893 this.readOnly = readOnly;
28894 };
28895 AgCheckbox.prototype.setDisabled = function (disabled) {
28896 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-disabled', disabled);
28897 return _super.prototype.setDisabled.call(this, disabled);
28898 };
28899 AgCheckbox.prototype.toggle = function () {
28900 var previousValue = this.isSelected();
28901 var nextValue = this.getNextValue();
28902 if (this.passive) {
28903 this.dispatchChange(nextValue, previousValue);
28904 }
28905 else {
28906 this.setValue(nextValue);
28907 }
28908 };
28909 AgCheckbox.prototype.getValue = function () {
28910 return this.isSelected();
28911 };
28912 AgCheckbox.prototype.setValue = function (value, silent) {
28913 this.refreshSelectedClass(value);
28914 this.setSelected(value, silent);
28915 return this;
28916 };
28917 AgCheckbox.prototype.setName = function (name) {
28918 var input = this.getInputElement();
28919 input.name = name;
28920 return this;
28921 };
28922 AgCheckbox.prototype.isSelected = function () {
28923 return this.selected;
28924 };
28925 AgCheckbox.prototype.setSelected = function (selected, silent) {
28926 if (this.isSelected() === selected) {
28927 return;
28928 }
28929 this.previousValue = this.isSelected();
28930 selected = this.selected = typeof selected === 'boolean' ? selected : undefined;
28931 this.eInput.checked = selected;
28932 this.eInput.indeterminate = selected === undefined;
28933 if (!silent) {
28934 this.dispatchChange(this.selected, this.previousValue);
28935 }
28936 };
28937 AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {
28938 this.dispatchEvent({ type: AgCheckbox.EVENT_CHANGED, selected: selected, previousValue: previousValue, event: event });
28939 var input = this.getInputElement();
28940 var checkboxChangedEvent = {
28941 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CHECKBOX_CHANGED,
28942 id: input.id,
28943 name: input.name,
28944 selected: selected,
28945 previousValue: previousValue
28946 };
28947 this.eventService.dispatchEvent(checkboxChangedEvent);
28948 };
28949 AgCheckbox.prototype.onCheckboxClick = function (e) {
28950 if (this.passive) {
28951 return;
28952 }
28953 var previousValue = this.isSelected();
28954 var selected = this.selected = e.target.checked;
28955 this.refreshSelectedClass(selected);
28956 this.dispatchChange(selected, previousValue, e);
28957 };
28958 AgCheckbox.prototype.refreshSelectedClass = function (value) {
28959 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-checked', value === true);
28960 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-indeterminate', value == null);
28961 };
28962 return AgCheckbox;
28963}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_1__["AgAbstractInputField"]));
28964
28965
28966
28967/***/ }),
28968/* 120 */
28969/***/ (function(module, __webpack_exports__, __webpack_require__) {
28970
28971"use strict";
28972__webpack_require__.r(__webpack_exports__);
28973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractInputField", function() { return AgAbstractInputField; });
28974/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
28975/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(121);
28976/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
28977/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47);
28978/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
28979/**
28980 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28981 * @version v25.3.0
28982 * @link http://www.ag-grid.com/
28983 * @license MIT
28984 */
28985var __extends = (undefined && undefined.__extends) || (function () {
28986 var extendStatics = function (d, b) {
28987 extendStatics = Object.setPrototypeOf ||
28988 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28989 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28990 return extendStatics(d, b);
28991 };
28992 return function (d, b) {
28993 extendStatics(d, b);
28994 function __() { this.constructor = d; }
28995 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28996 };
28997})();
28998var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28999 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29000 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29001 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29002 return c > 3 && r && Object.defineProperty(target, key, r), r;
29003};
29004
29005
29006
29007
29008
29009var AgAbstractInputField = /** @class */ (function (_super) {
29010 __extends(AgAbstractInputField, _super);
29011 function AgAbstractInputField(config, className, inputType, displayFieldTag) {
29012 if (inputType === void 0) { inputType = 'text'; }
29013 if (displayFieldTag === void 0) { displayFieldTag = 'input'; }
29014 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;
29015 _this.inputType = inputType;
29016 _this.displayFieldTag = displayFieldTag;
29017 return _this;
29018 }
29019 AgAbstractInputField.prototype.postConstruct = function () {
29020 _super.prototype.postConstruct.call(this);
29021 this.setInputType();
29022 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eLabel, this.className + "-label");
29023 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eWrapper, this.className + "-input-wrapper");
29024 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eInput, this.className + "-input");
29025 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.getGui(), 'ag-input-field');
29026 this.eInput.id = this.eInput.id || "ag-" + this.getCompId() + "-input";
29027 var _a = this.config, width = _a.width, value = _a.value;
29028 if (width != null) {
29029 this.setWidth(width);
29030 }
29031 if (value != null) {
29032 this.setValue(value);
29033 }
29034 this.addInputListeners();
29035 };
29036 AgAbstractInputField.prototype.refreshLabel = function () {
29037 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getLabel())) {
29038 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabelledBy"])(this.eInput, this.getLabelId());
29039 }
29040 else {
29041 this.eInput.removeAttribute('aria-labelledby');
29042 }
29043 _super.prototype.refreshLabel.call(this);
29044 };
29045 AgAbstractInputField.prototype.addInputListeners = function () {
29046 var _this = this;
29047 this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });
29048 };
29049 AgAbstractInputField.prototype.setInputType = function () {
29050 if (this.displayFieldTag === 'input') {
29051 this.eInput.setAttribute('type', this.inputType);
29052 }
29053 };
29054 AgAbstractInputField.prototype.getInputElement = function () {
29055 return this.eInput;
29056 };
29057 AgAbstractInputField.prototype.setInputWidth = function (width) {
29058 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setElementWidth"])(this.eWrapper, width);
29059 return this;
29060 };
29061 AgAbstractInputField.prototype.setInputName = function (name) {
29062 this.getInputElement().setAttribute('name', name);
29063 return this;
29064 };
29065 AgAbstractInputField.prototype.getFocusableElement = function () {
29066 return this.eInput;
29067 };
29068 AgAbstractInputField.prototype.setMaxLength = function (length) {
29069 var eInput = this.eInput;
29070 eInput.maxLength = length;
29071 return this;
29072 };
29073 AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {
29074 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveAttribute"])(this.eInput, 'placeholder', placeholder);
29075 return this;
29076 };
29077 AgAbstractInputField.prototype.setInputAriaLabel = function (label) {
29078 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(this.eInput, label);
29079 return this;
29080 };
29081 AgAbstractInputField.prototype.setDisabled = function (disabled) {
29082 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisabled"])(this.eInput, disabled);
29083 return _super.prototype.setDisabled.call(this, disabled);
29084 };
29085 __decorate([
29086 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eLabel')
29087 ], AgAbstractInputField.prototype, "eLabel", void 0);
29088 __decorate([
29089 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eWrapper')
29090 ], AgAbstractInputField.prototype, "eWrapper", void 0);
29091 __decorate([
29092 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eInput')
29093 ], AgAbstractInputField.prototype, "eInput", void 0);
29094 return AgAbstractInputField;
29095}(_agAbstractField__WEBPACK_IMPORTED_MODULE_1__["AgAbstractField"]));
29096
29097
29098
29099/***/ }),
29100/* 121 */
29101/***/ (function(module, __webpack_exports__, __webpack_require__) {
29102
29103"use strict";
29104__webpack_require__.r(__webpack_exports__);
29105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return AgAbstractField; });
29106/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(122);
29107/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
29108/**
29109 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29110 * @version v25.3.0
29111 * @link http://www.ag-grid.com/
29112 * @license MIT
29113 */
29114var __extends = (undefined && undefined.__extends) || (function () {
29115 var extendStatics = function (d, b) {
29116 extendStatics = Object.setPrototypeOf ||
29117 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29118 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29119 return extendStatics(d, b);
29120 };
29121 return function (d, b) {
29122 extendStatics(d, b);
29123 function __() { this.constructor = d; }
29124 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29125 };
29126})();
29127
29128
29129var AgAbstractField = /** @class */ (function (_super) {
29130 __extends(AgAbstractField, _super);
29131 function AgAbstractField(config, template, className) {
29132 var _this = _super.call(this, config, template) || this;
29133 _this.className = className;
29134 _this.disabled = false;
29135 return _this;
29136 }
29137 AgAbstractField.prototype.postConstruct = function () {
29138 _super.prototype.postConstruct.call(this);
29139 if (this.className) {
29140 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(this.getGui(), this.className);
29141 }
29142 };
29143 AgAbstractField.prototype.onValueChange = function (callbackFn) {
29144 var _this = this;
29145 this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () { return callbackFn(_this.getValue()); });
29146 return this;
29147 };
29148 AgAbstractField.prototype.getWidth = function () {
29149 return this.getGui().clientWidth;
29150 };
29151 AgAbstractField.prototype.setWidth = function (width) {
29152 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setFixedWidth"])(this.getGui(), width);
29153 return this;
29154 };
29155 AgAbstractField.prototype.getPreviousValue = function () {
29156 return this.previousValue;
29157 };
29158 AgAbstractField.prototype.getValue = function () {
29159 return this.value;
29160 };
29161 AgAbstractField.prototype.setValue = function (value, silent) {
29162 if (this.value === value) {
29163 return this;
29164 }
29165 this.previousValue = this.value;
29166 this.value = value;
29167 if (!silent) {
29168 this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });
29169 }
29170 return this;
29171 };
29172 AgAbstractField.prototype.setDisabled = function (disabled) {
29173 disabled = !!disabled;
29174 var element = this.getGui();
29175 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisabled"])(element, disabled);
29176 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveCssClass"])(element, 'ag-disabled', disabled);
29177 this.disabled = disabled;
29178 return this;
29179 };
29180 AgAbstractField.prototype.isDisabled = function () {
29181 return !!this.disabled;
29182 };
29183 AgAbstractField.EVENT_CHANGED = 'valueChange';
29184 return AgAbstractField;
29185}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__["AgAbstractLabel"]));
29186
29187
29188
29189/***/ }),
29190/* 122 */
29191/***/ (function(module, __webpack_exports__, __webpack_require__) {
29192
29193"use strict";
29194__webpack_require__.r(__webpack_exports__);
29195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractLabel", function() { return AgAbstractLabel; });
29196/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
29197/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
29198/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
29199/**
29200 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29201 * @version v25.3.0
29202 * @link http://www.ag-grid.com/
29203 * @license MIT
29204 */
29205var __extends = (undefined && undefined.__extends) || (function () {
29206 var extendStatics = function (d, b) {
29207 extendStatics = Object.setPrototypeOf ||
29208 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29209 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29210 return extendStatics(d, b);
29211 };
29212 return function (d, b) {
29213 extendStatics(d, b);
29214 function __() { this.constructor = d; }
29215 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29216 };
29217})();
29218var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29219 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29220 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29221 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29222 return c > 3 && r && Object.defineProperty(target, key, r), r;
29223};
29224
29225
29226
29227var AgAbstractLabel = /** @class */ (function (_super) {
29228 __extends(AgAbstractLabel, _super);
29229 function AgAbstractLabel(config, template) {
29230 var _this = _super.call(this, template) || this;
29231 _this.labelSeparator = '';
29232 _this.labelAlignment = 'left';
29233 _this.label = '';
29234 _this.config = config || {};
29235 return _this;
29236 }
29237 AgAbstractLabel.prototype.postConstruct = function () {
29238 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.getGui(), 'ag-labeled');
29239 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eLabel, 'ag-label');
29240 var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;
29241 if (labelSeparator != null) {
29242 this.setLabelSeparator(labelSeparator);
29243 }
29244 if (label != null) {
29245 this.setLabel(label);
29246 }
29247 if (labelWidth != null) {
29248 this.setLabelWidth(labelWidth);
29249 }
29250 this.setLabelAlignment(labelAlignment || this.labelAlignment);
29251 this.refreshLabel();
29252 };
29253 AgAbstractLabel.prototype.refreshLabel = function () {
29254 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eLabel);
29255 if (typeof this.label === 'string') {
29256 this.eLabel.innerText = this.label + this.labelSeparator;
29257 }
29258 else if (this.label) {
29259 this.eLabel.appendChild(this.label);
29260 }
29261 if (this.label === '') {
29262 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eLabel, 'ag-hidden');
29263 this.eLabel.setAttribute('role', 'presentation');
29264 }
29265 else {
29266 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["removeCssClass"])(this.eLabel, 'ag-hidden');
29267 this.eLabel.removeAttribute('role');
29268 }
29269 };
29270 AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {
29271 if (this.labelSeparator === labelSeparator) {
29272 return this;
29273 }
29274 this.labelSeparator = labelSeparator;
29275 if (this.label != null) {
29276 this.refreshLabel();
29277 }
29278 return this;
29279 };
29280 AgAbstractLabel.prototype.getLabelId = function () {
29281 this.eLabel.id = this.eLabel.id || "ag-" + this.getCompId() + "-label";
29282 return this.eLabel.id;
29283 };
29284 AgAbstractLabel.prototype.getLabel = function () {
29285 return this.label;
29286 };
29287 AgAbstractLabel.prototype.setLabel = function (label) {
29288 if (this.label === label) {
29289 return this;
29290 }
29291 this.label = label;
29292 this.refreshLabel();
29293 return this;
29294 };
29295 AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {
29296 var eGui = this.getGui();
29297 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(eGui, 'ag-label-align-left', alignment === 'left');
29298 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(eGui, 'ag-label-align-right', alignment === 'right');
29299 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(eGui, 'ag-label-align-top', alignment === 'top');
29300 return this;
29301 };
29302 AgAbstractLabel.prototype.setLabelWidth = function (width) {
29303 if (this.label == null) {
29304 return this;
29305 }
29306 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setElementWidth"])(this.eLabel, width);
29307 return this;
29308 };
29309 __decorate([
29310 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
29311 ], AgAbstractLabel.prototype, "postConstruct", null);
29312 return AgAbstractLabel;
29313}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
29314
29315
29316
29317/***/ }),
29318/* 123 */
29319/***/ (function(module, __webpack_exports__, __webpack_require__) {
29320
29321"use strict";
29322__webpack_require__.r(__webpack_exports__);
29323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractHeaderWrapper", function() { return AbstractHeaderWrapper; });
29324/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67);
29325/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
29326/**
29327 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29328 * @version v25.3.0
29329 * @link http://www.ag-grid.com/
29330 * @license MIT
29331 */
29332var __extends = (undefined && undefined.__extends) || (function () {
29333 var extendStatics = function (d, b) {
29334 extendStatics = Object.setPrototypeOf ||
29335 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29336 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29337 return extendStatics(d, b);
29338 };
29339 return function (d, b) {
29340 extendStatics(d, b);
29341 function __() { this.constructor = d; }
29342 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29343 };
29344})();
29345
29346
29347var AbstractHeaderWrapper = /** @class */ (function (_super) {
29348 __extends(AbstractHeaderWrapper, _super);
29349 function AbstractHeaderWrapper() {
29350 return _super !== null && _super.apply(this, arguments) || this;
29351 }
29352 AbstractHeaderWrapper.prototype.shouldStopEventPropagation = function (e) {
29353 var _a = this.focusController.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;
29354 return Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_1__["isUserSuppressingHeaderKeyboardEvent"])(this.gridOptionsWrapper, e, headerRowIndex, column);
29355 };
29356 AbstractHeaderWrapper.prototype.getColumn = function () {
29357 return this.column;
29358 };
29359 AbstractHeaderWrapper.prototype.getPinned = function () {
29360 return this.pinned;
29361 };
29362 return AbstractHeaderWrapper;
29363}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_0__["ManagedFocusComponent"]));
29364
29365
29366
29367/***/ }),
29368/* 124 */
29369/***/ (function(module, __webpack_exports__, __webpack_require__) {
29370
29371"use strict";
29372__webpack_require__.r(__webpack_exports__);
29373/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupWrapperComp", function() { return HeaderGroupWrapperComp; });
29374/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
29375/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
29376/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
29377/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
29378/* harmony import */ var _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(115);
29379/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78);
29380/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(117);
29381/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(116);
29382/* harmony import */ var _header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(123);
29383/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8);
29384/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(47);
29385/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14);
29386/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(33);
29387/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60);
29388/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(26);
29389/**
29390 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29391 * @version v25.3.0
29392 * @link http://www.ag-grid.com/
29393 * @license MIT
29394 */
29395var __extends = (undefined && undefined.__extends) || (function () {
29396 var extendStatics = function (d, b) {
29397 extendStatics = Object.setPrototypeOf ||
29398 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29399 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29400 return extendStatics(d, b);
29401 };
29402 return function (d, b) {
29403 extendStatics(d, b);
29404 function __() { this.constructor = d; }
29405 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29406 };
29407})();
29408var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29409 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29410 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29411 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29412 return c > 3 && r && Object.defineProperty(target, key, r), r;
29413};
29414
29415
29416
29417
29418
29419
29420
29421
29422
29423
29424
29425
29426
29427
29428
29429var HeaderGroupWrapperComp = /** @class */ (function (_super) {
29430 __extends(HeaderGroupWrapperComp, _super);
29431 function HeaderGroupWrapperComp(columnGroup, pinned) {
29432 var _this = _super.call(this, HeaderGroupWrapperComp.TEMPLATE) || this;
29433 // the children can change, we keep destroy functions related to listening to the children here
29434 _this.removeChildListenersFuncs = [];
29435 _this.column = columnGroup;
29436 _this.pinned = pinned;
29437 return _this;
29438 }
29439 HeaderGroupWrapperComp.prototype.postConstruct = function () {
29440 _super.prototype.postConstruct.call(this);
29441 _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__["CssClassApplier"].addHeaderClassesFromColDef(this.getComponentHolder(), this.getGui(), this.gridOptionsWrapper, null, this.column);
29442 var displayName = this.columnController.getDisplayNameForColumnGroup(this.column, 'header');
29443 this.appendHeaderGroupComp(displayName);
29444 this.setupResize();
29445 this.addClasses();
29446 this.setupWidth();
29447 this.addAttributes();
29448 this.setupMovingCss();
29449 this.setupTooltip();
29450 this.setupExpandable();
29451 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_7__["HoverFeature"](this.column.getOriginalColumnGroup().getLeafColumns(), this.getGui()));
29452 this.createManagedBean(new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_6__["SetLeftFeature"](this.column, this.getGui(), this.beans));
29453 };
29454 HeaderGroupWrapperComp.prototype.onFocusIn = function (e) {
29455 if (!this.getGui().contains(e.relatedTarget)) {
29456 var headerRow = this.getParentComponent();
29457 this.beans.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());
29458 }
29459 };
29460 HeaderGroupWrapperComp.prototype.handleKeyDown = function (e) {
29461 var activeEl = document.activeElement;
29462 var eGui = this.getGui();
29463 var wrapperHasFocus = activeEl === eGui;
29464 if (!this.expandable || !wrapperHasFocus) {
29465 return;
29466 }
29467 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].ENTER) {
29468 var column = this.getColumn();
29469 var newExpandedValue = !column.isExpanded();
29470 this.columnController.setColumnGroupOpened(column.getOriginalColumnGroup(), newExpandedValue, "uiColumnExpanded");
29471 }
29472 };
29473 HeaderGroupWrapperComp.prototype.onTabKeyDown = function () { };
29474 HeaderGroupWrapperComp.prototype.setupExpandable = function () {
29475 var column = this.getColumn();
29476 var originalColumnGroup = column.getOriginalColumnGroup();
29477 this.refreshExpanded();
29478 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_9__["OriginalColumnGroup"].EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));
29479 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_9__["OriginalColumnGroup"].EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));
29480 };
29481 HeaderGroupWrapperComp.prototype.refreshExpanded = function () {
29482 var column = this.getColumn();
29483 var eGui = this.getGui();
29484 var expandable = column.isExpandable();
29485 var expanded = column.isExpanded();
29486 this.expandable = expandable;
29487 if (!expandable) {
29488 eGui.removeAttribute('aria-expanded');
29489 }
29490 else {
29491 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_10__["setAriaExpanded"])(eGui, expanded);
29492 }
29493 };
29494 HeaderGroupWrapperComp.prototype.setupMovingCss = function () {
29495 var _this = this;
29496 var originalColumnGroup = this.column.getOriginalColumnGroup();
29497 var leafColumns = originalColumnGroup.getLeafColumns();
29498 leafColumns.forEach(function (col) {
29499 _this.addManagedListener(col, _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_MOVING_CHANGED, _this.onColumnMovingChanged.bind(_this));
29500 });
29501 this.onColumnMovingChanged();
29502 };
29503 HeaderGroupWrapperComp.prototype.getComponentHolder = function () {
29504 return this.column.getColGroupDef();
29505 };
29506 HeaderGroupWrapperComp.prototype.getTooltipParams = function () {
29507 var res = _super.prototype.getTooltipParams.call(this);
29508 res.location = 'headerGroup';
29509 // this is wrong, but leaving it as i don't want to change code,
29510 // but the ColumnGroup does not have a ColDef or a Column (although it does have GroupDef and ColumnGroup)
29511 res.colDef = this.getComponentHolder();
29512 res.column = this.getColumn();
29513 return res;
29514 };
29515 HeaderGroupWrapperComp.prototype.setupTooltip = function () {
29516 var colGroupDef = this.getComponentHolder();
29517 var tooltipText = colGroupDef && colGroupDef.headerTooltip;
29518 if (tooltipText != null) {
29519 this.setTooltip(Object(_utils_string__WEBPACK_IMPORTED_MODULE_14__["escapeString"])(tooltipText));
29520 }
29521 };
29522 HeaderGroupWrapperComp.prototype.onColumnMovingChanged = function () {
29523 // this function adds or removes the moving css, based on if the col is moving.
29524 // this is what makes the header go dark when it is been moved (gives impression to
29525 // user that the column was picked up).
29526 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-moving', this.column.isMoving());
29527 };
29528 HeaderGroupWrapperComp.prototype.addAttributes = function () {
29529 this.getGui().setAttribute("col-id", this.column.getUniqueId());
29530 };
29531 HeaderGroupWrapperComp.prototype.appendHeaderGroupComp = function (displayName) {
29532 var _this = this;
29533 var params = {
29534 displayName: displayName,
29535 columnGroup: this.column,
29536 setExpanded: function (expanded) {
29537 _this.columnController.setColumnGroupOpened(_this.column.getOriginalColumnGroup(), expanded, "gridInitializing");
29538 },
29539 api: this.gridApi,
29540 columnApi: this.columnApi,
29541 context: this.gridOptionsWrapper.getContext()
29542 };
29543 if (!displayName) {
29544 var columnGroup = this.column;
29545 var leafCols = columnGroup.getLeafColumns();
29546 // find the top most column group that represents the same columns. so if we are dragging a group, we also
29547 // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels
29548 // of grouping, with each group only containing the next group, and the last group containing three columns,
29549 // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all
29550 // the groups represent the same column set.
29551 while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {
29552 columnGroup = columnGroup.getParent();
29553 }
29554 var colGroupDef = columnGroup.getColGroupDef();
29555 if (colGroupDef) {
29556 displayName = colGroupDef.headerName;
29557 }
29558 if (!displayName) {
29559 displayName = leafCols ? this.columnController.getDisplayNameForColumn(leafCols[0], 'header', true) : '';
29560 }
29561 }
29562 var callback = this.afterHeaderCompCreated.bind(this, displayName);
29563 this.userComponentFactory.newHeaderGroupComponent(params).then(callback);
29564 };
29565 HeaderGroupWrapperComp.prototype.afterHeaderCompCreated = function (displayName, headerGroupComp) {
29566 var _this = this;
29567 this.getGui().appendChild(headerGroupComp.getGui());
29568 this.addDestroyFunc(function () {
29569 _this.getContext().destroyBean(headerGroupComp);
29570 });
29571 this.setupMove(headerGroupComp.getGui(), displayName);
29572 };
29573 HeaderGroupWrapperComp.prototype.addClasses = function () {
29574 // having different classes below allows the style to not have a bottom border
29575 // on the group header, if no group is specified
29576 // columnGroup.getColGroupDef
29577 var style = this.column.isPadding() ? 'no' : 'with';
29578 this.addCssClass("ag-header-group-cell-" + style + "-group");
29579 };
29580 HeaderGroupWrapperComp.prototype.setupMove = function (eHeaderGroup, displayName) {
29581 var _this = this;
29582 if (!eHeaderGroup) {
29583 return;
29584 }
29585 if (this.isSuppressMoving()) {
29586 return;
29587 }
29588 var allLeafColumns = this.column.getOriginalColumnGroup().getLeafColumns();
29589 var dragSource = {
29590 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_5__["DragSourceType"].HeaderCell,
29591 eElement: eHeaderGroup,
29592 defaultIconName: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_5__["DragAndDropService"].ICON_HIDE,
29593 dragItemName: displayName,
29594 // we add in the original group leaf columns, so we move both visible and non-visible items
29595 getDragItem: this.getDragItemForGroup.bind(this),
29596 onDragStarted: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(true, "uiColumnDragged"); }); },
29597 onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, "uiColumnDragged"); }); }
29598 };
29599 this.dragAndDropService.addDragSource(dragSource, true);
29600 this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });
29601 };
29602 // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,
29603 // and in the order they are currently in the screen.
29604 HeaderGroupWrapperComp.prototype.getDragItemForGroup = function () {
29605 var allColumnsOriginalOrder = this.column.getOriginalColumnGroup().getLeafColumns();
29606 // capture visible state, used when re-entering grid to dictate which columns should be visible
29607 var visibleState = {};
29608 allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });
29609 var allColumnsCurrentOrder = [];
29610 this.columnController.getAllDisplayedColumns().forEach(function (column) {
29611 if (allColumnsOriginalOrder.indexOf(column) >= 0) {
29612 allColumnsCurrentOrder.push(column);
29613 Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["removeFromArray"])(allColumnsOriginalOrder, column);
29614 }
29615 });
29616 // we are left with non-visible columns, stick these in at the end
29617 allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });
29618 // create and return dragItem
29619 return {
29620 columns: allColumnsCurrentOrder,
29621 visibleState: visibleState
29622 };
29623 };
29624 HeaderGroupWrapperComp.prototype.isSuppressMoving = function () {
29625 // if any child is fixed, then don't allow moving
29626 var childSuppressesMoving = false;
29627 this.column.getLeafColumns().forEach(function (column) {
29628 if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {
29629 childSuppressesMoving = true;
29630 }
29631 });
29632 var result = childSuppressesMoving || this.gridOptionsWrapper.isSuppressMovableColumns();
29633 return result;
29634 };
29635 HeaderGroupWrapperComp.prototype.setupWidth = function () {
29636 // we need to listen to changes in child columns, as they impact our width
29637 this.addListenersToChildrenColumns();
29638 // the children belonging to this group can change, so we need to add and remove listeners as they change
29639 this.addManagedListener(this.column, _entities_columnGroup__WEBPACK_IMPORTED_MODULE_1__["ColumnGroup"].EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));
29640 this.onWidthChanged();
29641 // the child listeners are not tied to this components life-cycle, as children can get added and removed
29642 // to the group - hence they are on a different life-cycle. so we must make sure the existing children
29643 // listeners are removed when we finally get destroyed
29644 this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));
29645 };
29646 HeaderGroupWrapperComp.prototype.onDisplayedChildrenChanged = function () {
29647 this.addListenersToChildrenColumns();
29648 this.onWidthChanged();
29649 };
29650 HeaderGroupWrapperComp.prototype.addListenersToChildrenColumns = function () {
29651 var _this = this;
29652 // first destroy any old listeners
29653 this.removeListenersOnChildrenColumns();
29654 // now add new listeners to the new set of children
29655 var widthChangedListener = this.onWidthChanged.bind(this);
29656 this.column.getLeafColumns().forEach(function (column) {
29657 column.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
29658 column.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_VISIBLE_CHANGED, widthChangedListener);
29659 _this.removeChildListenersFuncs.push(function () {
29660 column.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
29661 column.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_VISIBLE_CHANGED, widthChangedListener);
29662 });
29663 });
29664 };
29665 HeaderGroupWrapperComp.prototype.removeListenersOnChildrenColumns = function () {
29666 this.removeChildListenersFuncs.forEach(function (func) { return func(); });
29667 this.removeChildListenersFuncs = [];
29668 };
29669 HeaderGroupWrapperComp.prototype.onWidthChanged = function () {
29670 this.getGui().style.width = this.column.getActualWidth() + 'px';
29671 };
29672 HeaderGroupWrapperComp.prototype.setupResize = function () {
29673 var _this = this;
29674 this.eHeaderCellResize = this.getRefElement('agResize');
29675 if (!this.column.isResizable()) {
29676 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["removeFromParent"])(this.eHeaderCellResize);
29677 return;
29678 }
29679 var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({
29680 eResizeBar: this.eHeaderCellResize,
29681 onResizeStart: this.onResizeStart.bind(this),
29682 onResizing: this.onResizing.bind(this, false),
29683 onResizeEnd: this.onResizing.bind(this, true)
29684 });
29685 this.addDestroyFunc(finishedWithResizeFunc);
29686 if (!this.gridOptionsWrapper.isSuppressAutoSize()) {
29687 var skipHeaderOnAutoSize_1 = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();
29688 this.eHeaderCellResize.addEventListener('dblclick', function (event) {
29689 // get list of all the column keys we are responsible for
29690 var keys = [];
29691 _this.column.getDisplayedLeafColumns().forEach(function (column) {
29692 // not all cols in the group may be participating with auto-resize
29693 if (!column.getColDef().suppressAutoSize) {
29694 keys.push(column.getColId());
29695 }
29696 });
29697 if (keys.length > 0) {
29698 _this.columnController.autoSizeColumns(keys, skipHeaderOnAutoSize_1, "uiColumnResized");
29699 }
29700 });
29701 }
29702 };
29703 HeaderGroupWrapperComp.prototype.onResizeStart = function (shiftKey) {
29704 var _this = this;
29705 var leafCols = this.column.getDisplayedLeafColumns();
29706 this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });
29707 this.resizeStartWidth = 0;
29708 this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });
29709 this.resizeRatios = [];
29710 this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });
29711 var takeFromGroup = null;
29712 if (shiftKey) {
29713 takeFromGroup = this.columnController.getDisplayedGroupAfter(this.column);
29714 }
29715 if (takeFromGroup) {
29716 var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();
29717 this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });
29718 this.resizeTakeFromStartWidth = 0;
29719 this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });
29720 this.resizeTakeFromRatios = [];
29721 this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });
29722 }
29723 else {
29724 this.resizeTakeFromCols = null;
29725 this.resizeTakeFromStartWidth = null;
29726 this.resizeTakeFromRatios = null;
29727 }
29728 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["addCssClass"])(this.getGui(), 'ag-column-resizing');
29729 };
29730 HeaderGroupWrapperComp.prototype.onResizing = function (finished, resizeAmount) {
29731 var resizeSets = [];
29732 var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);
29733 resizeSets.push({
29734 columns: this.resizeCols,
29735 ratios: this.resizeRatios,
29736 width: this.resizeStartWidth + resizeAmountNormalised
29737 });
29738 if (this.resizeTakeFromCols) {
29739 resizeSets.push({
29740 columns: this.resizeTakeFromCols,
29741 ratios: this.resizeTakeFromRatios,
29742 width: this.resizeTakeFromStartWidth - resizeAmountNormalised
29743 });
29744 }
29745 this.columnController.resizeColumnSets(resizeSets, finished, 'uiColumnDragged');
29746 if (finished) {
29747 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["removeCssClass"])(this.getGui(), 'ag-column-resizing');
29748 }
29749 };
29750 // optionally inverts the drag, depending on pinned and RTL
29751 // note - this method is duplicated in RenderedHeaderCell - should refactor out?
29752 HeaderGroupWrapperComp.prototype.normaliseDragChange = function (dragChange) {
29753 var result = dragChange;
29754 if (this.gridOptionsWrapper.isEnableRtl()) {
29755 // for RTL, dragging left makes the col bigger, except when pinning left
29756 if (this.pinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT) {
29757 result *= -1;
29758 }
29759 }
29760 else if (this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT) {
29761 // for LTR (ie normal), dragging left makes the col smaller, except when pinning right
29762 result *= -1;
29763 }
29764 return result;
29765 };
29766 HeaderGroupWrapperComp.TEMPLATE = "<div class=\"ag-header-group-cell\" role=\"columnheader\" tabindex=\"-1\">\n <div ref=\"agResize\" class=\"ag-header-cell-resize\" role=\"presentation\"></div>\n </div>";
29767 __decorate([
29768 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnController')
29769 ], HeaderGroupWrapperComp.prototype, "columnController", void 0);
29770 __decorate([
29771 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('horizontalResizeService')
29772 ], HeaderGroupWrapperComp.prototype, "horizontalResizeService", void 0);
29773 __decorate([
29774 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('dragAndDropService')
29775 ], HeaderGroupWrapperComp.prototype, "dragAndDropService", void 0);
29776 __decorate([
29777 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('userComponentFactory')
29778 ], HeaderGroupWrapperComp.prototype, "userComponentFactory", void 0);
29779 __decorate([
29780 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('beans')
29781 ], HeaderGroupWrapperComp.prototype, "beans", void 0);
29782 __decorate([
29783 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('gridApi')
29784 ], HeaderGroupWrapperComp.prototype, "gridApi", void 0);
29785 __decorate([
29786 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnApi')
29787 ], HeaderGroupWrapperComp.prototype, "columnApi", void 0);
29788 return HeaderGroupWrapperComp;
29789}(_header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_8__["AbstractHeaderWrapper"]));
29790
29791
29792
29793/***/ }),
29794/* 125 */
29795/***/ (function(module, __webpack_exports__, __webpack_require__) {
29796
29797"use strict";
29798__webpack_require__.r(__webpack_exports__);
29799/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterWrapper", function() { return FloatingFilterWrapper; });
29800/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
29801/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
29802/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(117);
29803/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
29804/* harmony import */ var _headerRendering_hoverFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(116);
29805/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
29806/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42);
29807/* harmony import */ var _provided_readOnlyFloatingFilter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(126);
29808/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
29809/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18);
29810/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
29811/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50);
29812/* harmony import */ var _headerRendering_header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(123);
29813/* harmony import */ var _floatingFilterMapper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(127);
29814/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60);
29815/**
29816 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29817 * @version v25.3.0
29818 * @link http://www.ag-grid.com/
29819 * @license MIT
29820 */
29821var __extends = (undefined && undefined.__extends) || (function () {
29822 var extendStatics = function (d, b) {
29823 extendStatics = Object.setPrototypeOf ||
29824 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29825 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29826 return extendStatics(d, b);
29827 };
29828 return function (d, b) {
29829 extendStatics(d, b);
29830 function __() { this.constructor = d; }
29831 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29832 };
29833})();
29834var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29835 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29836 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29837 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29838 return c > 3 && r && Object.defineProperty(target, key, r), r;
29839};
29840
29841
29842
29843
29844
29845
29846
29847
29848
29849
29850
29851
29852
29853
29854
29855var FloatingFilterWrapper = /** @class */ (function (_super) {
29856 __extends(FloatingFilterWrapper, _super);
29857 function FloatingFilterWrapper(column, pinned) {
29858 var _this = _super.call(this, FloatingFilterWrapper.TEMPLATE) || this;
29859 _this.column = column;
29860 _this.pinned = pinned;
29861 return _this;
29862 }
29863 FloatingFilterWrapper.prototype.postConstruct = function () {
29864 _super.prototype.postConstruct.call(this);
29865 this.setupFloatingFilter();
29866 this.setupWidth();
29867 this.setupLeftPositioning();
29868 this.setupColumnHover();
29869 this.createManagedBean(new _headerRendering_hoverFeature__WEBPACK_IMPORTED_MODULE_4__["HoverFeature"]([this.column], this.getGui()));
29870 this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));
29871 };
29872 FloatingFilterWrapper.prototype.onTabKeyDown = function (e) {
29873 var activeEl = document.activeElement;
29874 var eGui = this.getGui();
29875 var wrapperHasFocus = activeEl === eGui;
29876 if (wrapperHasFocus) {
29877 return;
29878 }
29879 e.preventDefault();
29880 var nextFocusableEl = this.focusController.findNextFocusableElement(eGui, null, e.shiftKey);
29881 if (nextFocusableEl) {
29882 nextFocusableEl.focus();
29883 }
29884 else {
29885 eGui.focus();
29886 }
29887 };
29888 FloatingFilterWrapper.prototype.handleKeyDown = function (e) {
29889 var activeEl = document.activeElement;
29890 var eGui = this.getGui();
29891 var wrapperHasFocus = activeEl === eGui;
29892 switch (e.keyCode) {
29893 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].UP:
29894 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].DOWN:
29895 if (!wrapperHasFocus) {
29896 e.preventDefault();
29897 }
29898 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].LEFT:
29899 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].RIGHT:
29900 if (wrapperHasFocus) {
29901 return;
29902 }
29903 e.stopPropagation();
29904 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].ENTER:
29905 if (wrapperHasFocus) {
29906 if (this.focusController.focusInto(eGui)) {
29907 e.preventDefault();
29908 }
29909 }
29910 break;
29911 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].ESCAPE:
29912 if (!wrapperHasFocus) {
29913 this.getGui().focus();
29914 }
29915 }
29916 };
29917 FloatingFilterWrapper.prototype.onFocusIn = function (e) {
29918 var eGui = this.getGui();
29919 if (!eGui.contains(e.relatedTarget)) {
29920 var headerRow = this.getParentComponent();
29921 this.beans.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());
29922 }
29923 };
29924 FloatingFilterWrapper.prototype.setupFloatingFilter = function () {
29925 var _this = this;
29926 var colDef = this.column.getColDef();
29927 if (!colDef.filter || !colDef.floatingFilter) {
29928 return;
29929 }
29930 this.floatingFilterCompPromise = this.getFloatingFilterInstance();
29931 if (!this.floatingFilterCompPromise) {
29932 return;
29933 }
29934 this.floatingFilterCompPromise.then(function (compInstance) {
29935 if (compInstance) {
29936 _this.setupWithFloatingFilter(compInstance);
29937 _this.setupSyncWithFilter();
29938 }
29939 });
29940 };
29941 FloatingFilterWrapper.prototype.setupLeftPositioning = function () {
29942 var setLeftFeature = new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_2__["SetLeftFeature"](this.column, this.getGui(), this.beans);
29943 this.createManagedBean(setLeftFeature);
29944 };
29945 FloatingFilterWrapper.prototype.setupSyncWithFilter = function () {
29946 var _this = this;
29947 var syncWithFilter = function (filterChangedEvent) {
29948 _this.onParentModelChanged(_this.currentParentModel(), filterChangedEvent);
29949 };
29950 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_CHANGED, syncWithFilter);
29951 if (this.filterManager.isFilterActive(this.column)) {
29952 syncWithFilter(null);
29953 }
29954 };
29955 // linked to event listener in template
29956 FloatingFilterWrapper.prototype.showParentFilter = function () {
29957 var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;
29958 this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'filterMenuTab', ['filterMenuTab']);
29959 };
29960 FloatingFilterWrapper.prototype.setupColumnHover = function () {
29961 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_HOVER_CHANGED, this.onColumnHover.bind(this));
29962 this.onColumnHover();
29963 };
29964 FloatingFilterWrapper.prototype.onColumnHover = function () {
29965 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-column-hover', this.columnHoverService.isHovered(this.column));
29966 };
29967 FloatingFilterWrapper.prototype.setupWidth = function () {
29968 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_WIDTH_CHANGED, this.onColumnWidthChanged.bind(this));
29969 this.onColumnWidthChanged();
29970 };
29971 FloatingFilterWrapper.prototype.onColumnWidthChanged = function () {
29972 this.getGui().style.width = this.column.getActualWidth() + "px";
29973 };
29974 FloatingFilterWrapper.prototype.setupWithFloatingFilter = function (floatingFilterComp) {
29975 var _this = this;
29976 var disposeFunc = function () {
29977 _this.getContext().destroyBean(floatingFilterComp);
29978 };
29979 if (!this.isAlive()) {
29980 disposeFunc();
29981 return;
29982 }
29983 this.addDestroyFunc(disposeFunc);
29984 var floatingFilterCompUi = floatingFilterComp.getGui();
29985 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eFloatingFilterBody, 'ag-floating-filter-full-body', this.suppressFilterButton);
29986 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eFloatingFilterBody, 'ag-floating-filter-body', !this.suppressFilterButton);
29987 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(this.eButtonWrapper, !this.suppressFilterButton);
29988 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_11__["createIconNoSpan"])('filter', this.gridOptionsWrapper, this.column);
29989 this.eButtonShowMainFilter.appendChild(eIcon);
29990 this.eFloatingFilterBody.appendChild(floatingFilterCompUi);
29991 if (floatingFilterComp.afterGuiAttached) {
29992 floatingFilterComp.afterGuiAttached();
29993 }
29994 };
29995 FloatingFilterWrapper.prototype.parentFilterInstance = function (callback) {
29996 var filterComponent = this.getFilterComponent();
29997 if (filterComponent) {
29998 filterComponent.then(callback);
29999 }
30000 };
30001 FloatingFilterWrapper.prototype.getFilterComponent = function (createIfDoesNotExist) {
30002 if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }
30003 return this.filterManager.getFilterComponent(this.column, 'NO_UI', createIfDoesNotExist);
30004 };
30005 FloatingFilterWrapper.getDefaultFloatingFilterType = function (def) {
30006 if (def == null) {
30007 return null;
30008 }
30009 var defaultFloatingFilterType = null;
30010 if (typeof def.filter === 'string') {
30011 // will be undefined if not in the map
30012 defaultFloatingFilterType = _floatingFilterMapper__WEBPACK_IMPORTED_MODULE_13__["FloatingFilterMapper"].getFloatingFilterType(def.filter);
30013 }
30014 else if (def.filterFramework) {
30015 // If filterFramework, then grid is NOT using one of the provided filters, hence no default.
30016 // Note: We could combine this with another part of the 'if' statement, however explicitly
30017 // having this section makes the code easier to read.
30018 }
30019 else if (def.filter === true) {
30020 var setFilterModuleLoaded = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_9__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].SetFilterModule);
30021 defaultFloatingFilterType = setFilterModuleLoaded ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';
30022 }
30023 return defaultFloatingFilterType;
30024 };
30025 FloatingFilterWrapper.prototype.getFloatingFilterInstance = function () {
30026 var colDef = this.column.getColDef();
30027 var defaultFloatingFilterType = FloatingFilterWrapper.getDefaultFloatingFilterType(colDef);
30028 var filterParams = this.filterManager.createFilterParams(this.column, colDef);
30029 var finalFilterParams = this.userComponentFactory.createFinalParams(colDef, 'filter', filterParams);
30030 var params = {
30031 api: this.gridApi,
30032 column: this.column,
30033 filterParams: finalFilterParams,
30034 currentParentModel: this.currentParentModel.bind(this),
30035 parentFilterInstance: this.parentFilterInstance.bind(this),
30036 showParentFilter: this.showParentFilter.bind(this),
30037 onFloatingFilterChanged: this.onFloatingFilterChanged.bind(this),
30038 suppressFilterButton: false // This one might be overridden from the colDef
30039 };
30040 // this is unusual - we need a params value OUTSIDE the component the params are for.
30041 // the params are for the floating filter component, but this property is actually for the wrapper.
30042 this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;
30043 var promise = this.userComponentFactory.newFloatingFilterComponent(colDef, params, defaultFloatingFilterType);
30044 if (!promise) {
30045 var compInstance = this.userComponentFactory.createUserComponentFromConcreteClass(_provided_readOnlyFloatingFilter__WEBPACK_IMPORTED_MODULE_7__["ReadOnlyFloatingFilter"], params);
30046 promise = _utils__WEBPACK_IMPORTED_MODULE_6__["AgPromise"].resolve(compInstance);
30047 }
30048 return promise;
30049 };
30050 FloatingFilterWrapper.prototype.currentParentModel = function () {
30051 var filterComponent = this.getFilterComponent(false);
30052 return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;
30053 };
30054 FloatingFilterWrapper.prototype.onParentModelChanged = function (model, filterChangedEvent) {
30055 if (!this.floatingFilterCompPromise) {
30056 return;
30057 }
30058 this.floatingFilterCompPromise.then(function (comp) { return comp && comp.onParentModelChanged(model, filterChangedEvent); });
30059 };
30060 FloatingFilterWrapper.prototype.onFloatingFilterChanged = function () {
30061 console.warn('AG Grid: since version 21.x, how floating filters are implemented has changed. ' +
30062 'Instead of calling params.onFloatingFilterChanged(), get a reference to the main filter via ' +
30063 'params.parentFilterInstance() and then set a value on the parent filter directly.');
30064 };
30065 FloatingFilterWrapper.TEMPLATE = "<div class=\"ag-header-cell\" role=\"gridcell\" tabindex=\"-1\">\n <div class=\"ag-floating-filter-full-body\" ref=\"eFloatingFilterBody\" role=\"presentation\"></div>\n <div class=\"ag-floating-filter-button ag-hidden\" ref=\"eButtonWrapper\" role=\"presentation\">\n <button type=\"button\" aria-label=\"Open Filter Menu\" class=\"ag-floating-filter-button-button\" ref=\"eButtonShowMainFilter\" tabindex=\"-1\"></button>\n </div>\n </div>";
30066 __decorate([
30067 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
30068 ], FloatingFilterWrapper.prototype, "columnHoverService", void 0);
30069 __decorate([
30070 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
30071 ], FloatingFilterWrapper.prototype, "userComponentFactory", void 0);
30072 __decorate([
30073 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
30074 ], FloatingFilterWrapper.prototype, "gridApi", void 0);
30075 __decorate([
30076 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
30077 ], FloatingFilterWrapper.prototype, "columnApi", void 0);
30078 __decorate([
30079 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
30080 ], FloatingFilterWrapper.prototype, "filterManager", void 0);
30081 __decorate([
30082 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('menuFactory')
30083 ], FloatingFilterWrapper.prototype, "menuFactory", void 0);
30084 __decorate([
30085 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
30086 ], FloatingFilterWrapper.prototype, "beans", void 0);
30087 __decorate([
30088 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eFloatingFilterBody')
30089 ], FloatingFilterWrapper.prototype, "eFloatingFilterBody", void 0);
30090 __decorate([
30091 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eButtonWrapper')
30092 ], FloatingFilterWrapper.prototype, "eButtonWrapper", void 0);
30093 __decorate([
30094 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eButtonShowMainFilter')
30095 ], FloatingFilterWrapper.prototype, "eButtonShowMainFilter", void 0);
30096 return FloatingFilterWrapper;
30097}(_headerRendering_header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_12__["AbstractHeaderWrapper"]));
30098
30099
30100
30101/***/ }),
30102/* 126 */
30103/***/ (function(module, __webpack_exports__, __webpack_require__) {
30104
30105"use strict";
30106__webpack_require__.r(__webpack_exports__);
30107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReadOnlyFloatingFilter", function() { return ReadOnlyFloatingFilter; });
30108/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
30109/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
30110/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
30111/**
30112 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30113 * @version v25.3.0
30114 * @link http://www.ag-grid.com/
30115 * @license MIT
30116 */
30117var __extends = (undefined && undefined.__extends) || (function () {
30118 var extendStatics = function (d, b) {
30119 extendStatics = Object.setPrototypeOf ||
30120 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30121 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30122 return extendStatics(d, b);
30123 };
30124 return function (d, b) {
30125 extendStatics(d, b);
30126 function __() { this.constructor = d; }
30127 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30128 };
30129})();
30130var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30131 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30132 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30133 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30134 return c > 3 && r && Object.defineProperty(target, key, r), r;
30135};
30136
30137
30138
30139// optional floating filter for user provided filters - instead of providing a floating filter,
30140// they can provide a getModelAsString() method on the filter instead. this class just displays
30141// the string returned from getModelAsString()
30142var ReadOnlyFloatingFilter = /** @class */ (function (_super) {
30143 __extends(ReadOnlyFloatingFilter, _super);
30144 function ReadOnlyFloatingFilter() {
30145 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;
30146 }
30147 // this is a user component, and IComponent has "public destroy()" as part of the interface.
30148 // so we need to override destroy() just to make the method public.
30149 ReadOnlyFloatingFilter.prototype.destroy = function () {
30150 _super.prototype.destroy.call(this);
30151 };
30152 ReadOnlyFloatingFilter.prototype.init = function (params) {
30153 this.params = params;
30154 var displayName = this.columnController.getDisplayNameForColumn(params.column, 'header', true);
30155 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
30156 this.eFloatingFilterText
30157 .setDisabled(true)
30158 .setInputAriaLabel(displayName + " " + translate('ariaFilterInput', 'Filter Input'));
30159 };
30160 ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {
30161 var _this = this;
30162 if (!parentModel) {
30163 this.eFloatingFilterText.setValue('');
30164 return;
30165 }
30166 this.params.parentFilterInstance(function (filterInstance) {
30167 // it would be nice to check if getModelAsString was present before creating this component,
30168 // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until
30169 // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns
30170 // are drawn, but the parent filters are only created when needed).
30171 if (filterInstance.getModelAsString) {
30172 var modelAsString = filterInstance.getModelAsString(parentModel);
30173 _this.eFloatingFilterText.setValue(modelAsString);
30174 }
30175 });
30176 };
30177 __decorate([
30178 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eFloatingFilterText')
30179 ], ReadOnlyFloatingFilter.prototype, "eFloatingFilterText", void 0);
30180 __decorate([
30181 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
30182 ], ReadOnlyFloatingFilter.prototype, "columnController", void 0);
30183 return ReadOnlyFloatingFilter;
30184}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
30185
30186
30187
30188/***/ }),
30189/* 127 */
30190/***/ (function(module, __webpack_exports__, __webpack_require__) {
30191
30192"use strict";
30193__webpack_require__.r(__webpack_exports__);
30194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return FloatingFilterMapper; });
30195/**
30196 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30197 * @version v25.3.0
30198 * @link http://www.ag-grid.com/
30199 * @license MIT
30200 */
30201var FloatingFilterMapper = /** @class */ (function () {
30202 function FloatingFilterMapper() {
30203 }
30204 FloatingFilterMapper.getFloatingFilterType = function (filterType) {
30205 return this.filterToFloatingFilterMapping[filterType];
30206 };
30207 FloatingFilterMapper.filterToFloatingFilterMapping = {
30208 set: 'agSetColumnFloatingFilter',
30209 agSetColumnFilter: 'agSetColumnFloatingFilter',
30210 multi: 'agMultiColumnFloatingFilter',
30211 agMultiColumnFilter: 'agMultiColumnFloatingFilter',
30212 number: 'agNumberColumnFloatingFilter',
30213 agNumberColumnFilter: 'agNumberColumnFloatingFilter',
30214 date: 'agDateColumnFloatingFilter',
30215 agDateColumnFilter: 'agDateColumnFloatingFilter',
30216 text: 'agTextColumnFloatingFilter',
30217 agTextColumnFilter: 'agTextColumnFloatingFilter'
30218 };
30219 return FloatingFilterMapper;
30220}());
30221
30222
30223
30224/***/ }),
30225/* 128 */
30226/***/ (function(module, __webpack_exports__, __webpack_require__) {
30227
30228"use strict";
30229__webpack_require__.r(__webpack_exports__);
30230/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return BodyDropTarget; });
30231/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
30232/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
30233/* harmony import */ var _moveColumnController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(129);
30234/* harmony import */ var _bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(130);
30235/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
30236/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);
30237/**
30238 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30239 * @version v25.3.0
30240 * @link http://www.ag-grid.com/
30241 * @license MIT
30242 */
30243var __extends = (undefined && undefined.__extends) || (function () {
30244 var extendStatics = function (d, b) {
30245 extendStatics = Object.setPrototypeOf ||
30246 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30247 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30248 return extendStatics(d, b);
30249 };
30250 return function (d, b) {
30251 extendStatics(d, b);
30252 function __() { this.constructor = d; }
30253 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30254 };
30255})();
30256var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30257 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30258 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30259 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30260 return c > 3 && r && Object.defineProperty(target, key, r), r;
30261};
30262
30263
30264
30265
30266
30267
30268var DropType;
30269(function (DropType) {
30270 DropType[DropType["ColumnMove"] = 0] = "ColumnMove";
30271 DropType[DropType["Pivot"] = 1] = "Pivot";
30272})(DropType || (DropType = {}));
30273var BodyDropTarget = /** @class */ (function (_super) {
30274 __extends(BodyDropTarget, _super);
30275 function BodyDropTarget(pinned, eContainer) {
30276 var _this = _super.call(this) || this;
30277 _this.dropListeners = {};
30278 _this.pinned = pinned;
30279 _this.eContainer = eContainer;
30280 return _this;
30281 }
30282 BodyDropTarget.prototype.postConstruct = function () {
30283 var _this = this;
30284 this.controllersService.whenReady(function (p) {
30285 var containers;
30286 switch (_this.pinned) {
30287 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_LEFT:
30288 containers = [p.leftRowContainerCon, p.bottomLeftRowContainerCon, p.topLeftRowContainerCon];
30289 break;
30290 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_RIGHT:
30291 containers = [p.rightRowContainerCon, p.bottomRightRowContainerCon, p.topRightRowContainerCon];
30292 break;
30293 default:
30294 containers = [p.centerRowContainerCon, p.bottomCenterRowContainerCon, p.topCenterRowContainerCon];
30295 break;
30296 }
30297 _this.eSecondaryContainers = containers.map(function (c) { return c.getContainerElement(); });
30298 });
30299 };
30300 BodyDropTarget.prototype.isInterestedIn = function (type) {
30301 return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].HeaderCell ||
30302 (type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].ToolPanel && this.gridOptionsWrapper.isAllowDragFromColumnsToolPanel());
30303 };
30304 BodyDropTarget.prototype.getSecondaryContainers = function () {
30305 return this.eSecondaryContainers;
30306 };
30307 BodyDropTarget.prototype.getContainer = function () {
30308 return this.eContainer;
30309 };
30310 BodyDropTarget.prototype.init = function () {
30311 this.moveColumnController = this.createBean(new _moveColumnController__WEBPACK_IMPORTED_MODULE_2__["MoveColumnController"](this.pinned, this.eContainer));
30312 var bodyDropPivotTarget = new _bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_3__["BodyDropPivotTarget"](this.pinned);
30313 this.createBean(bodyDropPivotTarget);
30314 this.dropListeners[DropType.ColumnMove] = this.moveColumnController;
30315 this.dropListeners[DropType.Pivot] = bodyDropPivotTarget;
30316 this.dragAndDropService.addDropTarget(this);
30317 };
30318 BodyDropTarget.prototype.getIconName = function () {
30319 return this.currentDropListener.getIconName();
30320 };
30321 // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel
30322 // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when
30323 // dropped into the grid's body.
30324 BodyDropTarget.prototype.getDropType = function (draggingEvent) {
30325 if (this.columnController.isPivotMode()) {
30326 // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's
30327 // a standard column move, however if it came from the toolpanel, then we are introducing
30328 // dimensions or values to the grid
30329 if (draggingEvent.dragSource.type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].ToolPanel) {
30330 return DropType.Pivot;
30331 }
30332 return DropType.ColumnMove;
30333 }
30334 // it's a column, and not pivot mode, so always moving
30335 return DropType.ColumnMove;
30336 };
30337 BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {
30338 // we pick the drop listener depending on whether we are in pivot mode are not. if we are
30339 // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise
30340 // we change visibility state and position.
30341 // if (this.columnController.isPivotMode()) {
30342 var dropType = this.getDropType(draggingEvent);
30343 this.currentDropListener = this.dropListeners[dropType];
30344 this.currentDropListener.onDragEnter(draggingEvent);
30345 };
30346 BodyDropTarget.prototype.onDragLeave = function (params) {
30347 this.currentDropListener.onDragLeave(params);
30348 };
30349 BodyDropTarget.prototype.onDragging = function (params) {
30350 this.currentDropListener.onDragging(params);
30351 };
30352 BodyDropTarget.prototype.onDragStop = function (params) {
30353 this.currentDropListener.onDragStop(params);
30354 };
30355 __decorate([
30356 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
30357 ], BodyDropTarget.prototype, "dragAndDropService", void 0);
30358 __decorate([
30359 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
30360 ], BodyDropTarget.prototype, "columnController", void 0);
30361 __decorate([
30362 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
30363 ], BodyDropTarget.prototype, "controllersService", void 0);
30364 __decorate([
30365 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
30366 ], BodyDropTarget.prototype, "postConstruct", null);
30367 __decorate([
30368 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
30369 ], BodyDropTarget.prototype, "init", null);
30370 return BodyDropTarget;
30371}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
30372
30373
30374
30375/***/ }),
30376/* 129 */
30377/***/ (function(module, __webpack_exports__, __webpack_require__) {
30378
30379"use strict";
30380__webpack_require__.r(__webpack_exports__);
30381/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoveColumnController", function() { return MoveColumnController; });
30382/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
30383/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
30384/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78);
30385/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
30386/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
30387/**
30388 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30389 * @version v25.3.0
30390 * @link http://www.ag-grid.com/
30391 * @license MIT
30392 */
30393var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30394 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30395 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30396 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30397 return c > 3 && r && Object.defineProperty(target, key, r), r;
30398};
30399
30400
30401
30402
30403
30404var MoveColumnController = /** @class */ (function () {
30405 function MoveColumnController(pinned, eContainer) {
30406 this.needToMoveLeft = false;
30407 this.needToMoveRight = false;
30408 this.pinned = pinned;
30409 this.eContainer = eContainer;
30410 this.centerContainer = !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(pinned);
30411 }
30412 MoveColumnController.prototype.init = function () {
30413 var _this = this;
30414 this.logger = this.loggerFactory.create('MoveColumnController');
30415 this.controllersService.whenReady(function () {
30416 _this.gridBodyCon = _this.controllersService.getGridBodyController();
30417 });
30418 };
30419 MoveColumnController.prototype.getIconName = function () {
30420 return this.pinned ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_PINNED : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_MOVE;
30421 };
30422 MoveColumnController.prototype.onDragEnter = function (draggingEvent) {
30423 // we do dummy drag, so make sure column appears in the right location when first placed
30424 var columns = draggingEvent.dragItem.columns;
30425 var dragCameFromToolPanel = draggingEvent.dragSource.type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].ToolPanel;
30426 if (dragCameFromToolPanel) {
30427 // the if statement doesn't work if drag leaves grid, then enters again
30428 this.setColumnsVisible(columns, true, "uiColumnDragged");
30429 }
30430 else {
30431 // restore previous state of visible columns upon re-entering. this means if the user drags
30432 // a group out, and then drags the group back in, only columns that were originally visible
30433 // will be visible again. otherwise a group with three columns (but only two visible) could
30434 // be dragged out, then when it's dragged in again, all three are visible. this stops that.
30435 var visibleState_1 = draggingEvent.dragItem.visibleState;
30436 var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });
30437 this.setColumnsVisible(visibleColumns, true, "uiColumnDragged");
30438 }
30439 this.setColumnsPinned(columns, this.pinned, "uiColumnDragged");
30440 this.onDragging(draggingEvent, true);
30441 };
30442 MoveColumnController.prototype.onDragLeave = function (draggingEvent) {
30443 var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns() && !draggingEvent.fromNudge;
30444 if (hideColumnOnExit) {
30445 var dragItem = draggingEvent.dragSource.getDragItem();
30446 var columns = dragItem.columns;
30447 this.setColumnsVisible(columns, false, "uiColumnDragged");
30448 }
30449 this.ensureIntervalCleared();
30450 };
30451 MoveColumnController.prototype.setColumnsVisible = function (columns, visible, source) {
30452 if (source === void 0) { source = "api"; }
30453 if (columns) {
30454 var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });
30455 this.columnController.setColumnsVisible(allowedCols, visible, source);
30456 }
30457 };
30458 MoveColumnController.prototype.setColumnsPinned = function (columns, pinned, source) {
30459 if (source === void 0) { source = "api"; }
30460 if (columns) {
30461 var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });
30462 this.columnController.setColumnsPinned(allowedCols, pinned, source);
30463 }
30464 };
30465 MoveColumnController.prototype.onDragStop = function () {
30466 this.ensureIntervalCleared();
30467 };
30468 MoveColumnController.prototype.normaliseX = function (x) {
30469 // flip the coordinate if doing RTL
30470 if (this.gridOptionsWrapper.isEnableRtl()) {
30471 var clientWidth = this.eContainer.clientWidth;
30472 x = clientWidth - x;
30473 }
30474 // adjust for scroll only if centre container (the pinned containers don't scroll)
30475 if (this.centerContainer) {
30476 x += this.controllersService.getCenterRowContainerCon().getCenterViewportScrollLeft();
30477 }
30478 return x;
30479 };
30480 MoveColumnController.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {
30481 if (this.centerContainer) {
30482 // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)
30483 // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen
30484 var firstVisiblePixel = this.controllersService.getCenterRowContainerCon().getCenterViewportScrollLeft();
30485 var lastVisiblePixel = firstVisiblePixel + this.controllersService.getCenterRowContainerCon().getCenterWidth();
30486 if (this.gridOptionsWrapper.isEnableRtl()) {
30487 this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);
30488 this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);
30489 }
30490 else {
30491 this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);
30492 this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);
30493 }
30494 if (this.needToMoveLeft || this.needToMoveRight) {
30495 this.ensureIntervalStarted();
30496 }
30497 else {
30498 this.ensureIntervalCleared();
30499 }
30500 }
30501 };
30502 MoveColumnController.prototype.onDragging = function (draggingEvent, fromEnter) {
30503 var _this = this;
30504 if (fromEnter === void 0) { fromEnter = false; }
30505 this.lastDraggingEvent = draggingEvent;
30506 // if moving up or down (ie not left or right) then do nothing
30507 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(draggingEvent.hDirection)) {
30508 return;
30509 }
30510 var mouseXNormalised = this.normaliseX(draggingEvent.x);
30511 // if the user is dragging into the panel, ie coming from the side panel into the main grid,
30512 // we don't want to scroll the grid this time, it would appear like the table is jumping
30513 // each time a column is dragged in.
30514 if (!fromEnter) {
30515 this.checkCenterForScrolling(mouseXNormalised);
30516 }
30517 var hDirectionNormalised = this.normaliseDirection(draggingEvent.hDirection);
30518 var dragSourceType = draggingEvent.dragSource.type;
30519 var columnsToMove = draggingEvent.dragSource.getDragItem().columns;
30520 columnsToMove = columnsToMove.filter(function (col) {
30521 if (col.getColDef().lockPinned) {
30522 // if locked return true only if both col and container are same pin type.
30523 // double equals (==) here on purpose so that null==undefined is true (for not pinned options)
30524 return col.getPinned() == _this.pinned;
30525 }
30526 // if not pin locked, then always allowed to be in this container
30527 return true;
30528 });
30529 this.attemptMoveColumns(dragSourceType, columnsToMove, hDirectionNormalised, mouseXNormalised, fromEnter);
30530 };
30531 MoveColumnController.prototype.normaliseDirection = function (hDirection) {
30532 if (this.gridOptionsWrapper.isEnableRtl()) {
30533 switch (hDirection) {
30534 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Left: return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Right;
30535 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Right: return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Left;
30536 default: console.error("AG Grid: Unknown direction " + hDirection);
30537 }
30538 }
30539 else {
30540 return hDirection;
30541 }
30542 };
30543 // returns the index of the first column in the list ONLY if the cols are all beside
30544 // each other. if the cols are not beside each other, then returns null
30545 MoveColumnController.prototype.calculateOldIndex = function (movingCols) {
30546 var gridCols = this.columnController.getAllGridColumns();
30547 var indexes = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["sortNumerically"])(movingCols.map(function (col) { return gridCols.indexOf(col); }));
30548 var firstIndex = indexes[0];
30549 var lastIndex = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(indexes);
30550 var spread = lastIndex - firstIndex;
30551 var gapsExist = spread !== indexes.length - 1;
30552 return gapsExist ? null : firstIndex;
30553 };
30554 MoveColumnController.prototype.attemptMoveColumns = function (dragSourceType, allMovingColumns, hDirection, mouseX, fromEnter) {
30555 var draggingLeft = hDirection === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Left;
30556 var draggingRight = hDirection === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Right;
30557 // it is important to sort the moving columns as they are in grid columns, as the list of moving columns
30558 // could themselves be part of 'married children' groups, which means we need to maintain the order within
30559 // the moving list.
30560 var allMovingColumnsOrdered = allMovingColumns.slice();
30561 this.columnController.sortColumnsLikeGridColumns(allMovingColumnsOrdered);
30562 var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);
30563 // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move
30564 // (ie left or right) to the mouse direction. however
30565 var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);
30566 if (validMoves.length === 0) {
30567 return;
30568 }
30569 var firstValidMove = validMoves[0];
30570 // the two check below stop an error when the user grabs a group my a middle column, then
30571 // it is possible the mouse pointer is to the right of a column while been dragged left.
30572 // so we need to make sure that the mouse pointer is actually left of the left most column
30573 // if moving left, and right of the right most column if moving right
30574 // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from
30575 // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should
30576 // place the column to the RHS even if the mouse is moving left and the column is already on
30577 // the LHS. otherwise we stick to the rule described above.
30578 var constrainDirection = oldIndex !== null && !fromEnter;
30579 // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag
30580 if (dragSourceType == _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].HeaderCell) {
30581 constrainDirection = oldIndex !== null;
30582 }
30583 if (constrainDirection) {
30584 // only allow left drag if this column is moving left
30585 if (draggingLeft && firstValidMove >= oldIndex) {
30586 return;
30587 }
30588 // only allow right drag if this column is moving right
30589 if (draggingRight && firstValidMove <= oldIndex) {
30590 return;
30591 }
30592 }
30593 for (var i = 0; i < validMoves.length; i++) {
30594 var move = validMoves[i];
30595 if (!this.columnController.doesMovePassRules(allMovingColumnsOrdered, move)) {
30596 continue;
30597 }
30598 this.columnController.moveColumns(allMovingColumnsOrdered, move, "uiColumnDragged");
30599 // important to return here, so once we do the first valid move, we don't try do any more
30600 return;
30601 }
30602 };
30603 MoveColumnController.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {
30604 var isMoveBlocked = this.gridOptionsWrapper.isSuppressMovableColumns() || movingCols.some(function (col) { return col.getColDef().suppressMovable; });
30605 if (isMoveBlocked) {
30606 return [];
30607 }
30608 // this is the list of cols on the screen, so it's these we use when comparing the x mouse position
30609 var allDisplayedCols = this.columnController.getDisplayedColumns(this.pinned);
30610 // but this list is the list of all cols, when we move a col it's the index within this list that gets used,
30611 // so the result we return has to be and index location for this list
30612 var allGridCols = this.columnController.getAllGridColumns();
30613 var movingDisplayedCols = allDisplayedCols.filter(function (col) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(movingCols, col); });
30614 var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(movingCols, col); });
30615 var otherGridCols = allGridCols.filter(function (col) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(movingCols, col); });
30616 // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.
30617 // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving
30618 // col between b and c (so that it is under the mouse position).
30619 var displayIndex = 0;
30620 var availableWidth = mouseX;
30621 // if we are dragging right, then the columns will be to the left of the mouse, so we also want to
30622 // include the width of the moving columns
30623 if (draggingRight) {
30624 var widthOfMovingDisplayedCols_1 = 0;
30625 movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });
30626 availableWidth -= widthOfMovingDisplayedCols_1;
30627 }
30628 if (availableWidth > 0) {
30629 // now count how many of the displayed columns will fit to the left
30630 for (var i = 0; i < otherDisplayedCols.length; i++) {
30631 var col = otherDisplayedCols[i];
30632 availableWidth -= col.getActualWidth();
30633 if (availableWidth < 0) {
30634 break;
30635 }
30636 displayIndex++;
30637 }
30638 // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works
30639 if (draggingRight) {
30640 displayIndex++;
30641 }
30642 }
30643 // the display index is with respect to all the showing columns, however when we move, it's with
30644 // respect to all grid columns, so we need to translate from display index to grid index
30645 var firstValidMove;
30646 if (displayIndex > 0) {
30647 var leftColumn = otherDisplayedCols[displayIndex - 1];
30648 firstValidMove = otherGridCols.indexOf(leftColumn) + 1;
30649 }
30650 else {
30651 firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);
30652 if (firstValidMove === -1) {
30653 firstValidMove = 0;
30654 }
30655 }
30656 var validMoves = [firstValidMove];
30657 var numberComparator = function (a, b) { return a - b; };
30658 // add in other valid moves due to hidden columns and married children. for example, a particular
30659 // move might break a group that has married children (so move isn't valid), however there could
30660 // be hidden columns (not displayed) that we could jump over to make the move valid. because
30661 // they are hidden, user doesn't see any different, however it allows moves that would otherwise
30662 // not work. for example imagine a group with 9 columns and all columns are hidden except the
30663 // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will
30664 // be relative to the not-shown column, however we need to consider the move jumping over all the
30665 // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the
30666 // grid, there would be no way to put a column after it (as the grid would only consider beside the
30667 // visible column, which would fail valid move rules).
30668 if (draggingRight) {
30669 // if dragging right, then we add all the additional moves to the right. so in other words
30670 // if the next move is not valid, find the next move to the right that is valid.
30671 var pointer = firstValidMove + 1;
30672 var lastIndex = allGridCols.length - 1;
30673 while (pointer <= lastIndex) {
30674 validMoves.push(pointer);
30675 pointer++;
30676 }
30677 // adding columns here means the order is now messed up
30678 validMoves.sort(numberComparator);
30679 }
30680 else {
30681 // if dragging left we do the reverse of dragging right, we add in all the valid moves to the
30682 // left. however we also have to consider moves to the right for all hidden columns first.
30683 // (this logic is hard to reason with, it was worked out with trial and error,
30684 // more observation rather than science).
30685 // add moves to the right
30686 var pointer = firstValidMove;
30687 var lastIndex = allGridCols.length - 1;
30688 var displacedCol = allGridCols[pointer];
30689 while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {
30690 pointer++;
30691 validMoves.push(pointer);
30692 displacedCol = allGridCols[pointer];
30693 }
30694 // add moves to the left
30695 pointer = firstValidMove - 1;
30696 var firstDisplayIndex = 0;
30697 while (pointer >= firstDisplayIndex) {
30698 validMoves.push(pointer);
30699 pointer--;
30700 }
30701 // adding columns here means the order is now messed up
30702 validMoves.sort(numberComparator).reverse();
30703 }
30704 return validMoves;
30705 };
30706 // isHidden takes into account visible=false and group=closed, ie it is not displayed
30707 MoveColumnController.prototype.isColumnHidden = function (displayedColumns, col) {
30708 return displayedColumns.indexOf(col) < 0;
30709 };
30710 MoveColumnController.prototype.ensureIntervalStarted = function () {
30711 if (!this.movingIntervalId) {
30712 this.intervalCount = 0;
30713 this.failedMoveAttempts = 0;
30714 this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);
30715 if (this.needToMoveLeft) {
30716 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_LEFT, true);
30717 }
30718 else {
30719 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_RIGHT, true);
30720 }
30721 }
30722 };
30723 MoveColumnController.prototype.ensureIntervalCleared = function () {
30724 if (this.movingIntervalId) {
30725 window.clearInterval(this.movingIntervalId);
30726 this.movingIntervalId = null;
30727 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_MOVE);
30728 }
30729 };
30730 MoveColumnController.prototype.moveInterval = function () {
30731 // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow
30732 // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.
30733 var pixelsToMove;
30734 this.intervalCount++;
30735 pixelsToMove = 10 + (this.intervalCount * 5);
30736 if (pixelsToMove > 100) {
30737 pixelsToMove = 100;
30738 }
30739 var pixelsMoved = null;
30740 var scrollFeature = this.gridBodyCon.getScrollFeature();
30741 if (this.needToMoveLeft) {
30742 pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);
30743 }
30744 else if (this.needToMoveRight) {
30745 pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);
30746 }
30747 if (pixelsMoved !== 0) {
30748 this.onDragging(this.lastDraggingEvent);
30749 this.failedMoveAttempts = 0;
30750 }
30751 else {
30752 // we count the failed move attempts. if we fail to move 7 times, then we pin the column.
30753 // this is how we achieve pining by dragging the column to the edge of the grid.
30754 this.failedMoveAttempts++;
30755 var columns = this.lastDraggingEvent.dragItem.columns;
30756 var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });
30757 if (columnsThatCanPin.length > 0) {
30758 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_PINNED);
30759 if (this.failedMoveAttempts > 7) {
30760 var pinType = this.needToMoveLeft ? _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_LEFT : _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_RIGHT;
30761 this.setColumnsPinned(columnsThatCanPin, pinType, "uiColumnDragged");
30762 this.dragAndDropService.nudge();
30763 }
30764 }
30765 }
30766 };
30767 __decorate([
30768 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
30769 ], MoveColumnController.prototype, "loggerFactory", void 0);
30770 __decorate([
30771 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
30772 ], MoveColumnController.prototype, "columnController", void 0);
30773 __decorate([
30774 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
30775 ], MoveColumnController.prototype, "dragAndDropService", void 0);
30776 __decorate([
30777 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
30778 ], MoveColumnController.prototype, "gridOptionsWrapper", void 0);
30779 __decorate([
30780 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
30781 ], MoveColumnController.prototype, "controllersService", void 0);
30782 __decorate([
30783 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
30784 ], MoveColumnController.prototype, "init", null);
30785 return MoveColumnController;
30786}());
30787
30788
30789
30790/***/ }),
30791/* 130 */
30792/***/ (function(module, __webpack_exports__, __webpack_require__) {
30793
30794"use strict";
30795__webpack_require__.r(__webpack_exports__);
30796/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return BodyDropPivotTarget; });
30797/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
30798/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
30799/**
30800 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30801 * @version v25.3.0
30802 * @link http://www.ag-grid.com/
30803 * @license MIT
30804 */
30805var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30806 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30807 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30808 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30809 return c > 3 && r && Object.defineProperty(target, key, r), r;
30810};
30811
30812
30813var BodyDropPivotTarget = /** @class */ (function () {
30814 function BodyDropPivotTarget(pinned) {
30815 this.columnsToAggregate = [];
30816 this.columnsToGroup = [];
30817 this.columnsToPivot = [];
30818 this.pinned = pinned;
30819 }
30820 /** Callback for when drag enters */
30821 BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {
30822 var _this = this;
30823 this.clearColumnsList();
30824 // in pivot mode, we don't accept any drops if functions are read only
30825 if (this.gridOptionsWrapper.isFunctionsReadOnly()) {
30826 return;
30827 }
30828 var dragColumns = draggingEvent.dragItem.columns;
30829 if (!dragColumns) {
30830 return;
30831 }
30832 dragColumns.forEach(function (column) {
30833 // we don't allow adding secondary columns
30834 if (!column.isPrimary()) {
30835 return;
30836 }
30837 if (column.isAnyFunctionActive()) {
30838 return;
30839 }
30840 if (column.isAllowValue()) {
30841 _this.columnsToAggregate.push(column);
30842 }
30843 else if (column.isAllowRowGroup()) {
30844 _this.columnsToGroup.push(column);
30845 }
30846 else if (column.isAllowPivot()) {
30847 _this.columnsToPivot.push(column);
30848 }
30849 });
30850 };
30851 BodyDropPivotTarget.prototype.getIconName = function () {
30852 var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;
30853 if (totalColumns > 0) {
30854 return this.pinned ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_PINNED : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE;
30855 }
30856 return null;
30857 };
30858 /** Callback for when drag leaves */
30859 BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {
30860 // if we are taking columns out of the center, then we remove them from the report
30861 this.clearColumnsList();
30862 };
30863 BodyDropPivotTarget.prototype.clearColumnsList = function () {
30864 this.columnsToAggregate.length = 0;
30865 this.columnsToGroup.length = 0;
30866 this.columnsToPivot.length = 0;
30867 };
30868 /** Callback for when dragging */
30869 BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {
30870 };
30871 /** Callback for when drag stops */
30872 BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {
30873 if (this.columnsToAggregate.length > 0) {
30874 this.columnController.addValueColumns(this.columnsToAggregate, "toolPanelDragAndDrop");
30875 }
30876 if (this.columnsToGroup.length > 0) {
30877 this.columnController.addRowGroupColumns(this.columnsToGroup, "toolPanelDragAndDrop");
30878 }
30879 if (this.columnsToPivot.length > 0) {
30880 this.columnController.addPivotColumns(this.columnsToPivot, "toolPanelDragAndDrop");
30881 }
30882 };
30883 __decorate([
30884 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
30885 ], BodyDropPivotTarget.prototype, "columnController", void 0);
30886 __decorate([
30887 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
30888 ], BodyDropPivotTarget.prototype, "gridOptionsWrapper", void 0);
30889 return BodyDropPivotTarget;
30890}());
30891
30892
30893
30894/***/ }),
30895/* 131 */
30896/***/ (function(module, __webpack_exports__, __webpack_require__) {
30897
30898"use strict";
30899__webpack_require__.r(__webpack_exports__);
30900/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return HeaderNavigationDirection; });
30901/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return HeaderNavigationService; });
30902/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
30903/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
30904/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
30905/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(113);
30906/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
30907/**
30908 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30909 * @version v25.3.0
30910 * @link http://www.ag-grid.com/
30911 * @license MIT
30912 */
30913var __extends = (undefined && undefined.__extends) || (function () {
30914 var extendStatics = function (d, b) {
30915 extendStatics = Object.setPrototypeOf ||
30916 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30917 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30918 return extendStatics(d, b);
30919 };
30920 return function (d, b) {
30921 extendStatics(d, b);
30922 function __() { this.constructor = d; }
30923 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30924 };
30925})();
30926var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30927 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30928 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30929 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30930 return c > 3 && r && Object.defineProperty(target, key, r), r;
30931};
30932
30933
30934
30935
30936
30937var HeaderNavigationDirection;
30938(function (HeaderNavigationDirection) {
30939 HeaderNavigationDirection[HeaderNavigationDirection["UP"] = 0] = "UP";
30940 HeaderNavigationDirection[HeaderNavigationDirection["DOWN"] = 1] = "DOWN";
30941 HeaderNavigationDirection[HeaderNavigationDirection["LEFT"] = 2] = "LEFT";
30942 HeaderNavigationDirection[HeaderNavigationDirection["RIGHT"] = 3] = "RIGHT";
30943})(HeaderNavigationDirection || (HeaderNavigationDirection = {}));
30944var HeaderNavigationService = /** @class */ (function (_super) {
30945 __extends(HeaderNavigationService, _super);
30946 function HeaderNavigationService() {
30947 return _super !== null && _super.apply(this, arguments) || this;
30948 }
30949 HeaderNavigationService.prototype.postConstruct = function () {
30950 var _this = this;
30951 this.controllersService.whenReady(function (p) {
30952 _this.gridBodyCon = p.gridBodyCon;
30953 });
30954 };
30955 HeaderNavigationService.prototype.registerHeaderRoot = function (headerRoot) {
30956 this.headerRoot = headerRoot;
30957 };
30958 HeaderNavigationService.prototype.getHeaderRowCount = function () {
30959 var headerContainers = this.headerRoot.getHeaderContainers();
30960 return headerContainers.size === 0 ? 0 : this.getHeaderContainer().getRowComps().length;
30961 };
30962 HeaderNavigationService.prototype.getHeaderRowType = function (idx) {
30963 if (this.getHeaderRowCount()) {
30964 return this.getHeaderContainer().getRowComps()[idx].getType();
30965 }
30966 };
30967 HeaderNavigationService.prototype.getHeaderContainer = function (position) {
30968 if (position === void 0) { position = 'center'; }
30969 if (position === null) {
30970 position = 'center';
30971 }
30972 return this.headerRoot.getHeaderContainers().get(position);
30973 };
30974 /*
30975 * This method navigates grid header vertically
30976 * @return {boolean} true to preventDefault on the event that caused this navigation.
30977 */
30978 HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {
30979 if (!fromHeader) {
30980 fromHeader = this.focusController.getFocusedHeader();
30981 }
30982 if (!fromHeader) {
30983 return false;
30984 }
30985 var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;
30986 var rowLen = this.getHeaderRowCount();
30987 var isUp = direction === HeaderNavigationDirection.UP;
30988 var nextRow = isUp ? headerRowIndex - 1 : headerRowIndex + 1;
30989 var nextFocusColumn = null;
30990 var skipColumn = false;
30991 if (nextRow < 0) {
30992 nextRow = 0;
30993 nextFocusColumn = column;
30994 skipColumn = true;
30995 }
30996 if (nextRow >= rowLen) {
30997 nextRow = -1; // -1 indicates the focus should move to grid rows.
30998 }
30999 var currentRowType = this.getHeaderRowType(headerRowIndex);
31000 if (!skipColumn) {
31001 if (currentRowType === _headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
31002 var currentColumn = column;
31003 nextFocusColumn = isUp ? column.getParent() : currentColumn.getDisplayedChildren()[0];
31004 }
31005 else if (currentRowType === _headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].FLOATING_FILTER) {
31006 nextFocusColumn = column;
31007 }
31008 else {
31009 var currentColumn = column;
31010 nextFocusColumn = isUp ? currentColumn.getParent() : currentColumn;
31011 }
31012 if (!nextFocusColumn) {
31013 return false;
31014 }
31015 }
31016 return this.focusController.focusHeaderPosition({ headerRowIndex: nextRow, column: nextFocusColumn }, undefined, false, true, event);
31017 };
31018 /*
31019 * This method navigates grid header horizontally
31020 * @return {boolean} true to preventDefault on the event that caused this navigation.
31021 */
31022 HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {
31023 if (fromTab === void 0) { fromTab = false; }
31024 var focusedHeader = this.focusController.getFocusedHeader();
31025 var isLeft = direction === HeaderNavigationDirection.LEFT;
31026 var isRtl = this.gridOptionsWrapper.isEnableRtl();
31027 var nextHeader;
31028 var normalisedDirection;
31029 // either navigating to the left or isRtl (cannot be both)
31030 if (isLeft !== isRtl) {
31031 normalisedDirection = 'Before';
31032 nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);
31033 }
31034 else {
31035 normalisedDirection = 'After';
31036 nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);
31037 }
31038 if (nextHeader) {
31039 return this.focusController.focusHeaderPosition(nextHeader, normalisedDirection, fromTab, true, event);
31040 }
31041 if (!fromTab) {
31042 return true;
31043 }
31044 return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);
31045 };
31046 HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {
31047 var currentIndex = focusedHeader.headerRowIndex;
31048 var nextPosition = null;
31049 var nextRowIndex;
31050 if (direction === 'Before') {
31051 if (currentIndex > 0) {
31052 nextRowIndex = currentIndex - 1;
31053 nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');
31054 }
31055 }
31056 else {
31057 nextRowIndex = currentIndex + 1;
31058 nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');
31059 }
31060 return this.focusController.focusHeaderPosition(nextPosition, direction, true, true, event);
31061 };
31062 HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {
31063 if (direction === void 0) { direction = 'After'; }
31064 if (column.getPinned()) {
31065 return;
31066 }
31067 var columnToScrollTo;
31068 if (column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__["ColumnGroup"]) {
31069 var columns = column.getDisplayedLeafColumns();
31070 columnToScrollTo = direction === 'Before' ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(columns) : columns[0];
31071 }
31072 else {
31073 columnToScrollTo = column;
31074 }
31075 this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);
31076 // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible
31077 // floating cell, the scrolls get out of sync
31078 this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();
31079 // need to flush frames, to make sure the correct cells are rendered
31080 this.animationFrameService.flushAllFrames();
31081 };
31082 __decorate([
31083 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
31084 ], HeaderNavigationService.prototype, "focusController", void 0);
31085 __decorate([
31086 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerPositionUtils')
31087 ], HeaderNavigationService.prototype, "headerPositionUtils", void 0);
31088 __decorate([
31089 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
31090 ], HeaderNavigationService.prototype, "animationFrameService", void 0);
31091 __decorate([
31092 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
31093 ], HeaderNavigationService.prototype, "controllersService", void 0);
31094 __decorate([
31095 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
31096 ], HeaderNavigationService.prototype, "postConstruct", null);
31097 HeaderNavigationService = __decorate([
31098 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('headerNavigationService')
31099 ], HeaderNavigationService);
31100 return HeaderNavigationService;
31101}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
31102
31103
31104
31105/***/ }),
31106/* 132 */
31107/***/ (function(module, __webpack_exports__, __webpack_require__) {
31108
31109"use strict";
31110__webpack_require__.r(__webpack_exports__);
31111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyName", function() { return KeyName; });
31112/**
31113 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31114 * @version v25.3.0
31115 * @link http://www.ag-grid.com/
31116 * @license MIT
31117 */
31118var KeyName = /** @class */ (function () {
31119 function KeyName() {
31120 }
31121 KeyName.BACKSPACE = 'Backspace';
31122 KeyName.TAB = 'Tab';
31123 KeyName.ENTER = 'Enter';
31124 KeyName.SHIFT = 'Shift';
31125 KeyName.ESCAPE = 'Escape';
31126 KeyName.SPACE = ' ';
31127 KeyName.LEFT = 'ArrowLeft';
31128 KeyName.UP = 'ArrowUp';
31129 KeyName.RIGHT = 'ArrowRight';
31130 KeyName.DOWN = 'ArrowDown';
31131 KeyName.DELETE = 'Delete';
31132 // IE11 & Edge treat the numpad del key differently - with numlock on we get "Del" for key
31133 KeyName.NUM_PAD_DELETE = 'Del';
31134 KeyName.A = 'a';
31135 KeyName.C = 'c';
31136 KeyName.V = 'v';
31137 KeyName.D = 'd';
31138 KeyName.Z = 'z';
31139 KeyName.Y = 'y';
31140 KeyName.F2 = 'F2';
31141 KeyName.PAGE_UP = 'PageUp';
31142 KeyName.PAGE_DOWN = 'PageDown';
31143 KeyName.PAGE_HOME = 'Home';
31144 KeyName.PAGE_END = 'End';
31145 return KeyName;
31146}());
31147
31148
31149
31150/***/ }),
31151/* 133 */
31152/***/ (function(module, __webpack_exports__, __webpack_require__) {
31153
31154"use strict";
31155__webpack_require__.r(__webpack_exports__);
31156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CenterWidthFeature", function() { return CenterWidthFeature; });
31157/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
31158/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
31159/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
31160/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
31161/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
31162/**
31163 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31164 * @version v25.3.0
31165 * @link http://www.ag-grid.com/
31166 * @license MIT
31167 */
31168var __extends = (undefined && undefined.__extends) || (function () {
31169 var extendStatics = function (d, b) {
31170 extendStatics = Object.setPrototypeOf ||
31171 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31172 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
31173 return extendStatics(d, b);
31174 };
31175 return function (d, b) {
31176 extendStatics(d, b);
31177 function __() { this.constructor = d; }
31178 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31179 };
31180})();
31181var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31182 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31183 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31184 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31185 return c > 3 && r && Object.defineProperty(target, key, r), r;
31186};
31187
31188
31189
31190
31191
31192var CenterWidthFeature = /** @class */ (function (_super) {
31193 __extends(CenterWidthFeature, _super);
31194 function CenterWidthFeature(callback) {
31195 var _this = _super.call(this) || this;
31196 _this.callback = callback;
31197 return _this;
31198 }
31199 CenterWidthFeature.prototype.postConstruct = function () {
31200 var listener = this.setWidth.bind(this);
31201 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_DOM_LAYOUT, listener);
31202 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
31203 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);
31204 this.setWidth();
31205 };
31206 CenterWidthFeature.prototype.setWidth = function () {
31207 var columnController = this.columnController;
31208 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].DOM_LAYOUT_PRINT;
31209 var centerWidth = columnController.getBodyContainerWidth();
31210 var leftWidth = columnController.getDisplayedColumnsLeftWidth();
31211 var rightWidth = columnController.getDisplayedColumnsRightWidth();
31212 var totalWidth = printLayout ? centerWidth + leftWidth + rightWidth : centerWidth;
31213 this.callback(totalWidth);
31214 };
31215 __decorate([
31216 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
31217 ], CenterWidthFeature.prototype, "columnController", void 0);
31218 __decorate([
31219 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31220 ], CenterWidthFeature.prototype, "postConstruct", null);
31221 return CenterWidthFeature;
31222}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
31223
31224
31225
31226/***/ }),
31227/* 134 */
31228/***/ (function(module, __webpack_exports__, __webpack_require__) {
31229
31230"use strict";
31231__webpack_require__.r(__webpack_exports__);
31232/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return FilterManager; });
31233/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42);
31234/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
31235/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
31236/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
31237/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18);
31238/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
31239/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);
31240/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54);
31241/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
31242/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
31243/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
31244/**
31245 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31246 * @version v25.3.0
31247 * @link http://www.ag-grid.com/
31248 * @license MIT
31249 */
31250var __extends = (undefined && undefined.__extends) || (function () {
31251 var extendStatics = function (d, b) {
31252 extendStatics = Object.setPrototypeOf ||
31253 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31254 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
31255 return extendStatics(d, b);
31256 };
31257 return function (d, b) {
31258 extendStatics(d, b);
31259 function __() { this.constructor = d; }
31260 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31261 };
31262})();
31263var __assign = (undefined && undefined.__assign) || function () {
31264 __assign = Object.assign || function(t) {
31265 for (var s, i = 1, n = arguments.length; i < n; i++) {
31266 s = arguments[i];
31267 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31268 t[p] = s[p];
31269 }
31270 return t;
31271 };
31272 return __assign.apply(this, arguments);
31273};
31274var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31275 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31276 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31277 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31278 return c > 3 && r && Object.defineProperty(target, key, r), r;
31279};
31280
31281
31282
31283
31284
31285
31286
31287
31288
31289
31290
31291var FilterManager = /** @class */ (function (_super) {
31292 __extends(FilterManager, _super);
31293 function FilterManager() {
31294 var _this = _super !== null && _super.apply(this, arguments) || this;
31295 _this.allAdvancedFilters = new Map();
31296 _this.activeAdvancedFilters = [];
31297 _this.quickFilter = null;
31298 _this.quickFilterParts = null;
31299 // this is true when the grid is processing the filter change. this is used by the cell comps, so that they
31300 // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the
31301 // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where
31302 // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)
31303 // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.
31304 _this.processingFilterChange = false;
31305 return _this;
31306 }
31307 FilterManager_1 = FilterManager;
31308 FilterManager.prototype.init = function () {
31309 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DATA_CHANGED, this.onNewRowsLoaded.bind(this));
31310 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
31311 this.quickFilter = this.parseQuickFilter(this.gridOptionsWrapper.getQuickFilterText());
31312 this.setQuickFilterParts();
31313 this.allowShowChangeAfterFilter = this.gridOptionsWrapper.isAllowShowChangeAfterFilter();
31314 };
31315 FilterManager.prototype.setQuickFilterParts = function () {
31316 this.quickFilterParts = this.quickFilter ? this.quickFilter.split(' ') : null;
31317 };
31318 FilterManager.prototype.setFilterModel = function (model) {
31319 var _this = this;
31320 var allPromises = [];
31321 if (model) {
31322 // mark the filters as we set them, so any active filters left over we stop
31323 var modelKeys_1 = Object(_utils_set__WEBPACK_IMPORTED_MODULE_7__["convertToSet"])(Object.keys(model));
31324 this.allAdvancedFilters.forEach(function (filterWrapper, colId) {
31325 var newModel = model[colId];
31326 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));
31327 modelKeys_1.delete(colId);
31328 });
31329 // at this point, processedFields contains data for which we don't have a filter working yet
31330 modelKeys_1.forEach(function (colId) {
31331 var column = _this.columnController.getPrimaryColumn(colId);
31332 if (!column) {
31333 console.warn('Warning ag-grid setFilterModel - no column found for colId ' + colId);
31334 return;
31335 }
31336 var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');
31337 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));
31338 });
31339 }
31340 else {
31341 this.allAdvancedFilters.forEach(function (filterWrapper) {
31342 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));
31343 });
31344 }
31345 _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].all(allPromises).then(function () { return _this.onFilterChanged(); });
31346 };
31347 FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {
31348 return new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
31349 filterPromise.then(function (filter) {
31350 if (typeof filter.setModel !== 'function') {
31351 console.warn('Warning ag-grid - filter missing setModel method, which is needed for setFilterModel');
31352 resolve();
31353 }
31354 (filter.setModel(newModel) || _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve()).then(function () { return resolve(); });
31355 });
31356 });
31357 };
31358 FilterManager.prototype.getFilterModel = function () {
31359 var result = {};
31360 this.allAdvancedFilters.forEach(function (filterWrapper, key) {
31361 // because user can provide filters, we provide useful error checking and messages
31362 var filterPromise = filterWrapper.filterPromise;
31363 var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });
31364 if (filter == null) {
31365 return null;
31366 }
31367 if (typeof filter.getModel !== 'function') {
31368 console.warn('Warning ag-grid - filter API missing getModel method, which is needed for getFilterModel');
31369 return;
31370 }
31371 var model = filter.getModel();
31372 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(model)) {
31373 result[key] = model;
31374 }
31375 });
31376 return result;
31377 };
31378 // returns true if any advanced filter (ie not quick filter) active
31379 FilterManager.prototype.isAdvancedFilterPresent = function () {
31380 return this.activeAdvancedFilters.length > 0;
31381 };
31382 // called by:
31383 // 1) onFilterChanged()
31384 // 2) onNewRowsLoaded()
31385 FilterManager.prototype.updateActiveFilters = function () {
31386 var _this = this;
31387 this.activeAdvancedFilters.length = 0;
31388 this.allAdvancedFilters.forEach(function (filterWrapper) {
31389 if (filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); })) {
31390 var resolvedPromise = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });
31391 _this.activeAdvancedFilters.push(resolvedPromise);
31392 }
31393 });
31394 };
31395 FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {
31396 this.allAdvancedFilters.forEach(function (filterWrapper) {
31397 var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });
31398 filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);
31399 });
31400 };
31401 FilterManager.prototype.isAnyFilterPresent = function () {
31402 return this.isQuickFilterPresent() || this.isAdvancedFilterPresent() || this.gridOptionsWrapper.isExternalFilterPresent();
31403 };
31404 FilterManager.prototype.doAdvancedFiltersPass = function (node, filterToSkip) {
31405 var data = node.data;
31406 for (var i = 0; i < this.activeAdvancedFilters.length; i++) {
31407 var filter = this.activeAdvancedFilters[i];
31408 if (filter == null || filter === filterToSkip) {
31409 continue;
31410 }
31411 if (typeof filter.doesFilterPass !== 'function') {
31412 // because users can do custom filters, give nice error message
31413 throw new Error('Filter is missing method doesFilterPass');
31414 }
31415 if (!filter.doesFilterPass({ node: node, data: data })) {
31416 return false;
31417 }
31418 }
31419 return true;
31420 };
31421 FilterManager.prototype.parseQuickFilter = function (newFilter) {
31422 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(newFilter)) {
31423 return null;
31424 }
31425 if (!this.gridOptionsWrapper.isRowModelDefault()) {
31426 console.warn('ag-grid: quick filtering only works with the Client-Side Row Model');
31427 return null;
31428 }
31429 return newFilter.toUpperCase();
31430 };
31431 FilterManager.prototype.setQuickFilter = function (newFilter) {
31432 var parsedFilter = this.parseQuickFilter(newFilter);
31433 if (this.quickFilter !== parsedFilter) {
31434 this.quickFilter = parsedFilter;
31435 this.setQuickFilterParts();
31436 this.onFilterChanged();
31437 }
31438 };
31439 FilterManager.prototype.onFilterChanged = function (filterInstance, additionalEventAttributes) {
31440 this.updateActiveFilters();
31441 this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);
31442 this.allAdvancedFilters.forEach(function (filterWrapper) {
31443 filterWrapper.filterPromise.then(function (filter) {
31444 if (filter !== filterInstance && filter.onAnyFilterChanged) {
31445 filter.onAnyFilterChanged();
31446 }
31447 });
31448 });
31449 var filterChangedEvent = {
31450 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_CHANGED,
31451 api: this.gridApi,
31452 columnApi: this.columnApi
31453 };
31454 if (additionalEventAttributes) {
31455 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["mergeDeep"])(filterChangedEvent, additionalEventAttributes);
31456 }
31457 // because internal events are not async in ag-grid, when the dispatchEvent
31458 // method comes back, we know all listeners have finished executing.
31459 this.processingFilterChange = true;
31460 this.eventService.dispatchEvent(filterChangedEvent);
31461 this.processingFilterChange = false;
31462 };
31463 FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {
31464 // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing
31465 // changes when filtering
31466 return !this.allowShowChangeAfterFilter && this.processingFilterChange;
31467 };
31468 FilterManager.prototype.isQuickFilterPresent = function () {
31469 return this.quickFilter !== null;
31470 };
31471 FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {
31472 return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });
31473 };
31474 FilterManager.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {
31475 var _this = this;
31476 var columns = this.columnController.getAllColumnsForQuickFilter();
31477 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["some"])(columns, function (column) {
31478 var part = _this.getQuickFilterTextForColumn(column, node);
31479 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(part) && part.indexOf(filterPart) >= 0;
31480 });
31481 };
31482 FilterManager.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {
31483 if (!node.quickFilterAggregateText) {
31484 this.aggregateRowForQuickFilter(node);
31485 }
31486 return node.quickFilterAggregateText.indexOf(filterPart) >= 0;
31487 };
31488 FilterManager.prototype.doesRowPassQuickFilter = function (node) {
31489 var _this = this;
31490 var usingCache = this.gridOptionsWrapper.isCacheQuickFilter();
31491 // each part must pass, if any fails, then the whole filter fails
31492 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["every"])(this.quickFilterParts, function (part) {
31493 return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);
31494 });
31495 };
31496 FilterManager.prototype.doesRowPassFilter = function (params) {
31497 // the row must pass ALL of the filters, so if any of them fail,
31498 // we return true. that means if a row passes the quick filter,
31499 // but fails the column filter, it fails overall
31500 // first up, check quick filter
31501 if (this.isQuickFilterPresent() && !this.doesRowPassQuickFilter(params.rowNode)) {
31502 return false;
31503 }
31504 // secondly, give the client a chance to reject this row
31505 if (this.gridOptionsWrapper.isExternalFilterPresent() && !this.gridOptionsWrapper.doesExternalFilterPass(params.rowNode)) {
31506 return false;
31507 }
31508 // lastly, check our internal advanced filter
31509 if (this.isAdvancedFilterPresent() && !this.doAdvancedFiltersPass(params.rowNode, params.filterInstanceToSkip)) {
31510 return false;
31511 }
31512 // got this far, all filters pass
31513 return true;
31514 };
31515 FilterManager.prototype.getQuickFilterTextForColumn = function (column, node) {
31516 var value = this.valueService.getValue(column, node, true);
31517 var colDef = column.getColDef();
31518 if (colDef.getQuickFilterText) {
31519 var params = {
31520 value: value,
31521 node: node,
31522 data: node.data,
31523 column: column,
31524 colDef: colDef,
31525 context: this.gridOptionsWrapper.getContext()
31526 };
31527 value = colDef.getQuickFilterText(params);
31528 }
31529 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(value) ? value.toString().toUpperCase() : null;
31530 };
31531 FilterManager.prototype.aggregateRowForQuickFilter = function (node) {
31532 var _this = this;
31533 var stringParts = [];
31534 var columns = this.columnController.getAllColumnsForQuickFilter();
31535 Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["forEach"])(columns, function (column) {
31536 var part = _this.getQuickFilterTextForColumn(column, node);
31537 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(part)) {
31538 stringParts.push(part);
31539 }
31540 });
31541 node.quickFilterAggregateText = stringParts.join(FilterManager_1.QUICK_FILTER_SEPARATOR);
31542 };
31543 FilterManager.prototype.onNewRowsLoaded = function (source) {
31544 this.allAdvancedFilters.forEach(function (filterWrapper) {
31545 filterWrapper.filterPromise.then(function (filter) {
31546 if (filter.onNewRowsLoaded) {
31547 filter.onNewRowsLoaded();
31548 }
31549 });
31550 });
31551 this.updateFilterFlagInColumns(source);
31552 this.updateActiveFilters();
31553 };
31554 FilterManager.prototype.createValueGetter = function (column) {
31555 var _this = this;
31556 return function (node) { return _this.valueService.getValue(column, node, true); };
31557 };
31558 FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {
31559 if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }
31560 if (createIfDoesNotExist) {
31561 return this.getOrCreateFilterWrapper(column, source).filterPromise;
31562 }
31563 var filterWrapper = this.cachedFilter(column);
31564 return filterWrapper ? filterWrapper.filterPromise : null;
31565 };
31566 FilterManager.prototype.isFilterActive = function (column) {
31567 var filterWrapper = this.cachedFilter(column);
31568 return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });
31569 };
31570 FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {
31571 var filterWrapper = this.cachedFilter(column);
31572 if (!filterWrapper) {
31573 filterWrapper = this.createFilterWrapper(column, source);
31574 this.allAdvancedFilters.set(column.getColId(), filterWrapper);
31575 }
31576 else if (source !== 'NO_UI') {
31577 this.putIntoGui(filterWrapper, source);
31578 }
31579 return filterWrapper;
31580 };
31581 FilterManager.prototype.cachedFilter = function (column) {
31582 return this.allAdvancedFilters.get(column.getColId());
31583 };
31584 FilterManager.prototype.createFilterInstance = function (column, $scope) {
31585 var _this = this;
31586 var defaultFilter = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SetFilterModule) ? 'agSetColumnFilter' : 'agTextColumnFilter';
31587 var colDef = column.getColDef();
31588 var filterInstance;
31589 var params = __assign(__assign({}, this.createFilterParams(column, colDef, $scope)), { filterModifiedCallback: function () {
31590 var event = {
31591 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_MODIFIED,
31592 api: _this.gridApi,
31593 columnApi: _this.columnApi,
31594 column: column,
31595 filterInstance: filterInstance
31596 };
31597 _this.eventService.dispatchEvent(event);
31598 }, filterChangedCallback: function (additionalEventAttributes) {
31599 return _this.onFilterChanged(filterInstance, additionalEventAttributes);
31600 }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });
31601 var res = this.userComponentFactory.newFilterComponent(colDef, params, defaultFilter);
31602 if (res) {
31603 res.then(function (r) { return filterInstance = r; });
31604 }
31605 return res;
31606 };
31607 FilterManager.prototype.createFilterParams = function (column, colDef, $scope) {
31608 if ($scope === void 0) { $scope = null; }
31609 var params = {
31610 api: this.gridOptionsWrapper.getApi(),
31611 column: column,
31612 colDef: Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["cloneObject"])(colDef),
31613 rowModel: this.rowModel,
31614 filterChangedCallback: function () { },
31615 filterModifiedCallback: function () { },
31616 valueGetter: this.createValueGetter(column),
31617 context: this.gridOptionsWrapper.getContext(),
31618 doesRowPassOtherFilter: function () { return true; },
31619 };
31620 // hack in scope if using AngularJS
31621 if ($scope) {
31622 params.$scope = $scope;
31623 }
31624 return params;
31625 };
31626 FilterManager.prototype.createFilterWrapper = function (column, source) {
31627 var filterWrapper = {
31628 column: column,
31629 filterPromise: null,
31630 scope: null,
31631 compiledElement: null,
31632 guiPromise: _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve(null)
31633 };
31634 filterWrapper.scope = this.gridOptionsWrapper.isAngularCompileFilters() ? this.$scope.$new() : null;
31635 filterWrapper.filterPromise = this.createFilterInstance(column, filterWrapper.scope);
31636 if (filterWrapper.filterPromise) {
31637 this.putIntoGui(filterWrapper, source);
31638 }
31639 return filterWrapper;
31640 };
31641 FilterManager.prototype.putIntoGui = function (filterWrapper, source) {
31642 var _this = this;
31643 var eFilterGui = document.createElement('div');
31644 eFilterGui.className = 'ag-filter';
31645 filterWrapper.guiPromise = new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
31646 filterWrapper.filterPromise.then(function (filter) {
31647 var guiFromFilter = filter.getGui();
31648 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(guiFromFilter)) {
31649 console.warn("getGui method from filter returned " + guiFromFilter + ", it should be a DOM element or an HTML template string.");
31650 }
31651 // for backwards compatibility with Angular 1 - we
31652 // used to allow providing back HTML from getGui().
31653 // once we move away from supporting Angular 1
31654 // directly, we can change this.
31655 if (typeof guiFromFilter === 'string') {
31656 guiFromFilter = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["loadTemplate"])(guiFromFilter);
31657 }
31658 eFilterGui.appendChild(guiFromFilter);
31659 if (filterWrapper.scope) {
31660 var compiledElement = _this.$compile(eFilterGui)(filterWrapper.scope);
31661 filterWrapper.compiledElement = compiledElement;
31662 window.setTimeout(function () { return filterWrapper.scope.$apply(); }, 0);
31663 }
31664 resolve(eFilterGui);
31665 _this.eventService.dispatchEvent({
31666 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_OPENED,
31667 column: filterWrapper.column,
31668 source: source,
31669 eGui: eFilterGui,
31670 api: _this.gridApi,
31671 columnApi: _this.columnApi
31672 });
31673 });
31674 });
31675 };
31676 FilterManager.prototype.onNewColumnsLoaded = function () {
31677 var _this = this;
31678 var atLeastOneFilterGone = false;
31679 this.allAdvancedFilters.forEach(function (filterWrapper) {
31680 var oldColumn = !_this.columnController.getPrimaryColumn(filterWrapper.column);
31681 if (oldColumn) {
31682 atLeastOneFilterGone = true;
31683 _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed');
31684 }
31685 });
31686 if (atLeastOneFilterGone) {
31687 this.onFilterChanged();
31688 }
31689 };
31690 // destroys the filter, so it not longer takes part
31691 FilterManager.prototype.destroyFilter = function (column, source) {
31692 if (source === void 0) { source = 'api'; }
31693 var filterWrapper = this.allAdvancedFilters.get(column.getColId());
31694 if (filterWrapper) {
31695 this.disposeFilterWrapper(filterWrapper, source);
31696 this.onFilterChanged();
31697 }
31698 };
31699 FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {
31700 var _this = this;
31701 filterWrapper.filterPromise.then(function (filter) {
31702 (filter.setModel(null) || _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve()).then(function () {
31703 _this.getContext().destroyBean(filter);
31704 filterWrapper.column.setFilterActive(false, source);
31705 if (filterWrapper.scope) {
31706 if (filterWrapper.compiledElement) {
31707 filterWrapper.compiledElement.remove();
31708 }
31709 filterWrapper.scope.$destroy();
31710 }
31711 _this.allAdvancedFilters.delete(filterWrapper.column.getColId());
31712 });
31713 });
31714 };
31715 FilterManager.prototype.destroy = function () {
31716 var _this = this;
31717 _super.prototype.destroy.call(this);
31718 this.allAdvancedFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed'); });
31719 };
31720 var FilterManager_1;
31721 FilterManager.QUICK_FILTER_SEPARATOR = '\n';
31722 __decorate([
31723 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('$compile')
31724 ], FilterManager.prototype, "$compile", void 0);
31725 __decorate([
31726 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('$scope')
31727 ], FilterManager.prototype, "$scope", void 0);
31728 __decorate([
31729 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('valueService')
31730 ], FilterManager.prototype, "valueService", void 0);
31731 __decorate([
31732 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
31733 ], FilterManager.prototype, "columnController", void 0);
31734 __decorate([
31735 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
31736 ], FilterManager.prototype, "rowModel", void 0);
31737 __decorate([
31738 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
31739 ], FilterManager.prototype, "columnApi", void 0);
31740 __decorate([
31741 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
31742 ], FilterManager.prototype, "gridApi", void 0);
31743 __decorate([
31744 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
31745 ], FilterManager.prototype, "userComponentFactory", void 0);
31746 __decorate([
31747 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31748 ], FilterManager.prototype, "init", null);
31749 __decorate([
31750 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
31751 ], FilterManager.prototype, "destroy", null);
31752 FilterManager = FilterManager_1 = __decorate([
31753 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('filterManager')
31754 ], FilterManager);
31755 return FilterManager;
31756}(_context_beanStub__WEBPACK_IMPORTED_MODULE_6__["BeanStub"]));
31757
31758
31759
31760/***/ }),
31761/* 135 */
31762/***/ (function(module, __webpack_exports__, __webpack_require__) {
31763
31764"use strict";
31765__webpack_require__.r(__webpack_exports__);
31766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return ValueService; });
31767/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
31768/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
31769/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
31770/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
31771/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
31772/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
31773/**
31774 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31775 * @version v25.3.0
31776 * @link http://www.ag-grid.com/
31777 * @license MIT
31778 */
31779var __extends = (undefined && undefined.__extends) || (function () {
31780 var extendStatics = function (d, b) {
31781 extendStatics = Object.setPrototypeOf ||
31782 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31783 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
31784 return extendStatics(d, b);
31785 };
31786 return function (d, b) {
31787 extendStatics(d, b);
31788 function __() { this.constructor = d; }
31789 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31790 };
31791})();
31792var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31793 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31794 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31795 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31796 return c > 3 && r && Object.defineProperty(target, key, r), r;
31797};
31798
31799
31800
31801
31802
31803
31804var ValueService = /** @class */ (function (_super) {
31805 __extends(ValueService, _super);
31806 function ValueService() {
31807 var _this = _super !== null && _super.apply(this, arguments) || this;
31808 _this.initialised = false;
31809 return _this;
31810 }
31811 ValueService.prototype.init = function () {
31812 this.cellExpressions = this.gridOptionsWrapper.isEnableCellExpressions();
31813 this.initialised = true;
31814 };
31815 ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {
31816 if (forFilter === void 0) { forFilter = false; }
31817 if (ignoreAggData === void 0) { ignoreAggData = false; }
31818 // hack - the grid is getting refreshed before this bean gets initialised, race condition.
31819 // really should have a way so they get initialised in the right order???
31820 if (!this.initialised) {
31821 this.init();
31822 }
31823 if (!rowNode) {
31824 return;
31825 }
31826 // pull these out to make code below easier to read
31827 var colDef = column.getColDef();
31828 var field = colDef.field;
31829 var colId = column.getId();
31830 var data = rowNode.data;
31831 var result;
31832 // if there is a value getter, this gets precedence over a field
31833 var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;
31834 var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;
31835 if (forFilter && colDef.filterValueGetter) {
31836 result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);
31837 }
31838 else if (this.gridOptionsWrapper.isTreeData() && aggDataExists) {
31839 result = rowNode.aggData[colId];
31840 }
31841 else if (this.gridOptionsWrapper.isTreeData() && colDef.valueGetter) {
31842 result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);
31843 }
31844 else if (this.gridOptionsWrapper.isTreeData() && (field && data)) {
31845 result = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getValueUsingField"])(data, field, column.isFieldContainsDots());
31846 }
31847 else if (groupDataExists) {
31848 result = rowNode.groupData[colId];
31849 }
31850 else if (aggDataExists) {
31851 result = rowNode.aggData[colId];
31852 }
31853 else if (colDef.valueGetter) {
31854 result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);
31855 }
31856 else if (field && data) {
31857 result = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getValueUsingField"])(data, field, column.isFieldContainsDots());
31858 }
31859 // the result could be an expression itself, if we are allowing cell values to be expressions
31860 if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {
31861 var cellValueGetter = result.substring(1);
31862 result = this.executeValueGetter(cellValueGetter, data, column, rowNode);
31863 }
31864 if (result == null) {
31865 var openedGroup = this.getOpenedGroup(rowNode, column);
31866 if (openedGroup != null) {
31867 return openedGroup;
31868 }
31869 }
31870 return result;
31871 };
31872 ValueService.prototype.getOpenedGroup = function (rowNode, column) {
31873 if (!this.gridOptionsWrapper.isShowOpenedGroup()) {
31874 return;
31875 }
31876 var colDef = column.getColDef();
31877 if (!colDef.showRowGroup) {
31878 return;
31879 }
31880 var showRowGroup = column.getColDef().showRowGroup;
31881 var pointer = rowNode.parent;
31882 while (pointer != null) {
31883 if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getId())) {
31884 return pointer.key;
31885 }
31886 pointer = pointer.parent;
31887 }
31888 return undefined;
31889 };
31890 ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {
31891 var column = this.columnController.getPrimaryColumn(colKey);
31892 if (!rowNode || !column) {
31893 return;
31894 }
31895 // this will only happen if user is trying to paste into a group row, which doesn't make sense
31896 // the user should not be trying to paste into group rows
31897 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(rowNode.data)) {
31898 rowNode.data = {};
31899 }
31900 // for backwards compatibility we are also retrieving the newValueHandler as well as the valueSetter
31901 var _a = column.getColDef(), field = _a.field, newValueHandler = _a.newValueHandler, valueSetter = _a.valueSetter;
31902 // need either a field or a newValueHandler for this to work
31903 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(field) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(newValueHandler) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(valueSetter)) {
31904 // we don't tell user about newValueHandler, as that is deprecated
31905 console.warn("AG Grid: you need either field or valueSetter set on colDef for editing to work");
31906 return;
31907 }
31908 var params = {
31909 node: rowNode,
31910 data: rowNode.data,
31911 oldValue: this.getValue(column, rowNode),
31912 newValue: newValue,
31913 colDef: column.getColDef(),
31914 column: column,
31915 api: this.gridOptionsWrapper.getApi(),
31916 columnApi: this.gridOptionsWrapper.getColumnApi(),
31917 context: this.gridOptionsWrapper.getContext()
31918 };
31919 params.newValue = newValue;
31920 var valueWasDifferent;
31921 if (newValueHandler && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(newValueHandler)) {
31922 valueWasDifferent = newValueHandler(params);
31923 }
31924 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(valueSetter)) {
31925 valueWasDifferent = this.expressionService.evaluate(valueSetter, params);
31926 }
31927 else {
31928 valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());
31929 }
31930 // in case user forgot to return something (possible if they are not using TypeScript
31931 // and just forgot, or using an old newValueHandler we didn't always expect a return
31932 // value here), we default the return value to true, so we always refresh.
31933 if (valueWasDifferent === undefined) {
31934 valueWasDifferent = true;
31935 }
31936 // if no change to the value, then no need to do the updating, or notifying via events.
31937 // otherwise the user could be tabbing around the grid, and cellValueChange would get called
31938 // all the time.
31939 if (!valueWasDifferent) {
31940 return;
31941 }
31942 // reset quick filter on this row
31943 rowNode.resetQuickFilterAggregateText();
31944 this.valueCache.onDataChanged();
31945 params.newValue = this.getValue(column, rowNode);
31946 var onCellValueChanged = column.getColDef().onCellValueChanged;
31947 if (typeof onCellValueChanged === 'function') {
31948 // to make callback async, do in a timeout
31949 setTimeout(function () { return onCellValueChanged(params); }, 0);
31950 }
31951 var event = {
31952 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED,
31953 event: null,
31954 rowIndex: rowNode.rowIndex,
31955 rowPinned: rowNode.rowPinned,
31956 column: params.column,
31957 api: params.api,
31958 columnApi: params.columnApi,
31959 colDef: params.colDef,
31960 context: params.context,
31961 data: rowNode.data,
31962 node: rowNode,
31963 oldValue: params.oldValue,
31964 newValue: params.newValue,
31965 value: params.newValue,
31966 source: eventSource
31967 };
31968 this.eventService.dispatchEvent(event);
31969 };
31970 ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {
31971 if (!field) {
31972 return false;
31973 }
31974 // if no '.', then it's not a deep value
31975 var valuesAreSame = false;
31976 if (!isFieldContainsDots) {
31977 data[field] = newValue;
31978 }
31979 else {
31980 // otherwise it is a deep value, so need to dig for it
31981 var fieldPieces = field.split('.');
31982 var currentObject = data;
31983 while (fieldPieces.length > 0 && currentObject) {
31984 var fieldPiece = fieldPieces.shift();
31985 if (fieldPieces.length === 0) {
31986 currentObject[fieldPiece] = newValue;
31987 }
31988 else {
31989 currentObject = currentObject[fieldPiece];
31990 }
31991 }
31992 }
31993 return !valuesAreSame;
31994 };
31995 ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {
31996 var params = {
31997 data: data,
31998 node: rowNode,
31999 column: column,
32000 colDef: column.getColDef(),
32001 api: this.gridOptionsWrapper.getApi(),
32002 columnApi: this.gridOptionsWrapper.getColumnApi(),
32003 context: this.gridOptionsWrapper.getContext(),
32004 getValue: this.getValueCallback.bind(this, rowNode)
32005 };
32006 return this.expressionService.evaluate(valueGetter, params);
32007 };
32008 ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {
32009 var colId = column.getId();
32010 // if inside the same turn, just return back the value we got last time
32011 var valueFromCache = this.valueCache.getValue(rowNode, colId);
32012 if (valueFromCache !== undefined) {
32013 return valueFromCache;
32014 }
32015 var params = {
32016 data: data,
32017 node: rowNode,
32018 column: column,
32019 colDef: column.getColDef(),
32020 api: this.gridOptionsWrapper.getApi(),
32021 columnApi: this.gridOptionsWrapper.getColumnApi(),
32022 context: this.gridOptionsWrapper.getContext(),
32023 getValue: this.getValueCallback.bind(this, rowNode)
32024 };
32025 var result = this.expressionService.evaluate(valueGetter, params);
32026 // if a turn is active, store the value in case the grid asks for it again
32027 this.valueCache.setValue(rowNode, colId, result);
32028 return result;
32029 };
32030 ValueService.prototype.getValueCallback = function (node, field) {
32031 var otherColumn = this.columnController.getPrimaryColumn(field);
32032 if (otherColumn) {
32033 return this.getValue(otherColumn, node);
32034 }
32035 return null;
32036 };
32037 // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col
32038 ValueService.prototype.getKeyForNode = function (col, rowNode) {
32039 var value = this.getValue(col, rowNode);
32040 var keyCreator = col.getColDef().keyCreator;
32041 var result = keyCreator ? keyCreator({ value: value }) : value;
32042 // if already a string, or missing, just return it
32043 if (typeof result === 'string' || result == null) {
32044 return result;
32045 }
32046 result = String(result);
32047 if (result === '[object Object]') {
32048 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["doOnce"])(function () {
32049 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');
32050 }, 'getKeyForNode - warn about [object,object]');
32051 }
32052 return result;
32053 };
32054 __decorate([
32055 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
32056 ], ValueService.prototype, "expressionService", void 0);
32057 __decorate([
32058 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
32059 ], ValueService.prototype, "columnController", void 0);
32060 __decorate([
32061 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
32062 ], ValueService.prototype, "valueCache", void 0);
32063 __decorate([
32064 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
32065 ], ValueService.prototype, "init", null);
32066 ValueService = __decorate([
32067 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueService')
32068 ], ValueService);
32069 return ValueService;
32070}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
32071
32072
32073
32074/***/ }),
32075/* 136 */
32076/***/ (function(module, __webpack_exports__, __webpack_require__) {
32077
32078"use strict";
32079__webpack_require__.r(__webpack_exports__);
32080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return GridBodyComp; });
32081/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
32082/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
32083/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
32084/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
32085/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
32086/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
32087/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(137);
32088/* harmony import */ var _gridBodyController__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(138);
32089/* harmony import */ var _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(141);
32090/**
32091 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32092 * @version v25.3.0
32093 * @link http://www.ag-grid.com/
32094 * @license MIT
32095 */
32096var __extends = (undefined && undefined.__extends) || (function () {
32097 var extendStatics = function (d, b) {
32098 extendStatics = Object.setPrototypeOf ||
32099 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32100 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32101 return extendStatics(d, b);
32102 };
32103 return function (d, b) {
32104 extendStatics(d, b);
32105 function __() { this.constructor = d; }
32106 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32107 };
32108})();
32109var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32110 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32111 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32112 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32113 return c > 3 && r && Object.defineProperty(target, key, r), r;
32114};
32115
32116
32117
32118
32119
32120
32121
32122
32123
32124var GRID_BODY_TEMPLATE = /* html */ "<div class=\"ag-root ag-unselectable\" role=\"grid\" unselectable=\"on\">\n <ag-header-root ref=\"headerRoot\" unselectable=\"on\"></ag-header-root>\n <div class=\"ag-floating-top\" ref=\"eTop\" role=\"presentation\" unselectable=\"on\">\n <ag-row-container ref=\"topLeftContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"topCenterContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"topRightContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"topFullWidthContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_FULL_WITH + "\"></ag-row-container>\n </div>\n <div class=\"ag-body-viewport\" ref=\"eBodyViewport\" role=\"presentation\">\n <ag-row-container ref=\"leftContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"centerContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"rightContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"fullWidthContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].FULL_WIDTH + "\"></ag-row-container>\n </div>\n <div class=\"ag-floating-bottom\" ref=\"eBottom\" role=\"presentation\" unselectable=\"on\">\n <ag-row-container ref=\"bottomLeftContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"bottomCenterContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"bottomRightContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"bottomFullWidthContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_FULL_WITH + "\"></ag-row-container>\n </div>\n <ag-fake-horizontal-scroll></ag-fake-horizontal-scroll>\n <ag-overlay-wrapper></ag-overlay-wrapper>\n </div>";
32125var GridBodyComp = /** @class */ (function (_super) {
32126 __extends(GridBodyComp, _super);
32127 function GridBodyComp() {
32128 return _super.call(this, GRID_BODY_TEMPLATE) || this;
32129 }
32130 GridBodyComp.prototype.init = function () {
32131 var _this = this;
32132 var setHeight = function (height, element) {
32133 var heightString = height + "px";
32134 element.style.minHeight = heightString;
32135 element.style.height = heightString;
32136 };
32137 var view = {
32138 setRowAnimationCssOnBodyViewport: this.setRowAnimationCssOnBodyViewport.bind(this),
32139 setColumnCount: function (count) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaColCount"])(_this.getGui(), count); },
32140 setRowCount: function (count) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaRowCount"])(_this.getGui(), count); },
32141 setTopHeight: function (height) { return setHeight(height, _this.eTop); },
32142 setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },
32143 setTopDisplay: function (display) { return _this.eTop.style.display = display; },
32144 setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },
32145 setColumnMovingCss: function (moving) { return _this.addOrRemoveCssClass(_gridBodyController__WEBPACK_IMPORTED_MODULE_7__["CSS_CLASS_COLUMN_MOVING"], moving); },
32146 updateLayoutClasses: function (params) {
32147 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
32148 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].NORMAL, params.normal);
32149 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].PRINT, params.print);
32150 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
32151 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].NORMAL, params.normal);
32152 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].PRINT, params.print);
32153 },
32154 setAlwaysVerticalScrollClass: function (on) {
32155 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["CSS_CLASS_FORCE_VERTICAL_SCROLL"], on);
32156 },
32157 registerBodyViewportResizeListener: function (listener) {
32158 var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);
32159 _this.addDestroyFunc(function () { return unsubscribeFromResize(); });
32160 },
32161 setVerticalScrollPaddingVisible: function (show) {
32162 var scroller = show ? 'scroll' : 'hidden';
32163 _this.eTop.style.overflowY = _this.eBottom.style.overflowY = scroller;
32164 },
32165 setCellSelectableCss: function (selectable) {
32166 [_this.eTop, _this.eBodyViewport, _this.eBottom]
32167 .forEach(function (ct) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(ct, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["CSS_CLASS_CELL_SELECTABLE"], selectable); });
32168 },
32169 };
32170 this.controller = this.createManagedBean(new _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["GridBodyController"]());
32171 this.controller.setView(view, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom);
32172 if (this.$scope) {
32173 this.addAngularApplyCheck();
32174 }
32175 this.gridApi.registerGridComp(this);
32176 this.beans.registerGridComp(this);
32177 if (this.contextMenuFactory) {
32178 this.contextMenuFactory.registerGridComp(this);
32179 }
32180 if (this.menuFactory) {
32181 this.menuFactory.registerGridComp(this);
32182 }
32183 if (this.rangeController || this.gridOptionsWrapper.isRowSelectionMulti()) {
32184 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaMultiSelectable"])(this.getGui(), true);
32185 if (this.rangeController) {
32186 this.rangeController.registerGridComp(this);
32187 }
32188 }
32189 [this.eTop, this.eBodyViewport, this.eBottom].forEach(function (element) {
32190 _this.addManagedListener(element, 'focusin', function () {
32191 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addCssClass"])(element, 'ag-has-focus');
32192 });
32193 _this.addManagedListener(element, 'focusout', function (e) {
32194 if (!element.contains(e.relatedTarget)) {
32195 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["removeCssClass"])(element, 'ag-has-focus');
32196 }
32197 });
32198 });
32199 };
32200 GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (animateRows) {
32201 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(this.eBodyViewport, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["RowAnimationCssClasses"].ANIMATION_ON, animateRows);
32202 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(this.eBodyViewport, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["RowAnimationCssClasses"].ANIMATION_OFF, !animateRows);
32203 };
32204 GridBodyComp.prototype.addAngularApplyCheck = function () {
32205 var _this = this;
32206 // this makes sure if we queue up requests, we only execute oe
32207 var applyTriggered = false;
32208 var listener = function () {
32209 // only need to do one apply at a time
32210 if (applyTriggered) {
32211 return;
32212 }
32213 applyTriggered = true; // mark 'need apply' to true
32214 window.setTimeout(function () {
32215 applyTriggered = false;
32216 _this.$scope.$apply();
32217 }, 0);
32218 };
32219 // these are the events we need to do an apply after - these are the ones that can end up
32220 // with columns added or removed
32221 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
32222 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, listener);
32223 };
32224 GridBodyComp.prototype.getFloatingTopBottom = function () {
32225 return [this.eTop, this.eBottom];
32226 };
32227 // + rangeController
32228 GridBodyComp.prototype.addScrollEventListener = function (listener) {
32229 this.eBodyViewport.addEventListener('scroll', listener);
32230 };
32231 // + rangeController
32232 GridBodyComp.prototype.removeScrollEventListener = function (listener) {
32233 this.eBodyViewport.removeEventListener('scroll', listener);
32234 };
32235 __decorate([
32236 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
32237 ], GridBodyComp.prototype, "beans", void 0);
32238 __decorate([
32239 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
32240 ], GridBodyComp.prototype, "gridApi", void 0);
32241 __decorate([
32242 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$scope')
32243 ], GridBodyComp.prototype, "$scope", void 0);
32244 __decorate([
32245 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
32246 ], GridBodyComp.prototype, "resizeObserverService", void 0);
32247 __decorate([
32248 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
32249 ], GridBodyComp.prototype, "rangeController", void 0);
32250 __decorate([
32251 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('contextMenuFactory')
32252 ], GridBodyComp.prototype, "contextMenuFactory", void 0);
32253 __decorate([
32254 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('menuFactory')
32255 ], GridBodyComp.prototype, "menuFactory", void 0);
32256 __decorate([
32257 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eBodyViewport')
32258 ], GridBodyComp.prototype, "eBodyViewport", void 0);
32259 __decorate([
32260 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eTop')
32261 ], GridBodyComp.prototype, "eTop", void 0);
32262 __decorate([
32263 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eBottom')
32264 ], GridBodyComp.prototype, "eBottom", void 0);
32265 __decorate([
32266 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('headerRoot')
32267 ], GridBodyComp.prototype, "headerRootComp", void 0);
32268 __decorate([
32269 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
32270 ], GridBodyComp.prototype, "init", null);
32271 return GridBodyComp;
32272}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
32273
32274
32275
32276/***/ }),
32277/* 137 */
32278/***/ (function(module, __webpack_exports__, __webpack_require__) {
32279
32280"use strict";
32281__webpack_require__.r(__webpack_exports__);
32282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return LayoutCssClasses; });
32283/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutFeature", function() { return LayoutFeature; });
32284/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
32285/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
32286/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
32287/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
32288/**
32289 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32290 * @version v25.3.0
32291 * @link http://www.ag-grid.com/
32292 * @license MIT
32293 */
32294var __extends = (undefined && undefined.__extends) || (function () {
32295 var extendStatics = function (d, b) {
32296 extendStatics = Object.setPrototypeOf ||
32297 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32298 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32299 return extendStatics(d, b);
32300 };
32301 return function (d, b) {
32302 extendStatics(d, b);
32303 function __() { this.constructor = d; }
32304 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32305 };
32306})();
32307var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32308 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32309 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32310 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32311 return c > 3 && r && Object.defineProperty(target, key, r), r;
32312};
32313
32314
32315
32316
32317var LayoutCssClasses;
32318(function (LayoutCssClasses) {
32319 LayoutCssClasses["AUTO_HEIGHT"] = "ag-layout-auto-height";
32320 LayoutCssClasses["NORMAL"] = "ag-layout-normal";
32321 LayoutCssClasses["PRINT"] = "ag-layout-print";
32322})(LayoutCssClasses || (LayoutCssClasses = {}));
32323var LayoutFeature = /** @class */ (function (_super) {
32324 __extends(LayoutFeature, _super);
32325 function LayoutFeature(view) {
32326 var _this = _super.call(this) || this;
32327 _this.view = view;
32328 return _this;
32329 }
32330 LayoutFeature.prototype.postConstruct = function () {
32331 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_DOM_LAYOUT, this.updateLayoutClasses.bind(this));
32332 this.updateLayoutClasses();
32333 };
32334 LayoutFeature.prototype.updateLayoutClasses = function () {
32335 var domLayout = this.gridOptionsWrapper.getDomLayout();
32336 this.view.updateLayoutClasses({
32337 autoHeight: domLayout === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_AUTO_HEIGHT,
32338 normal: domLayout === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_NORMAL,
32339 print: domLayout === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_PRINT
32340 });
32341 };
32342 __decorate([
32343 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
32344 ], LayoutFeature.prototype, "gridOptionsWrapper", void 0);
32345 __decorate([
32346 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
32347 ], LayoutFeature.prototype, "postConstruct", null);
32348 return LayoutFeature;
32349}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
32350
32351
32352
32353/***/ }),
32354/* 138 */
32355/***/ (function(module, __webpack_exports__, __webpack_require__) {
32356
32357"use strict";
32358__webpack_require__.r(__webpack_exports__);
32359/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowAnimationCssClasses", function() { return RowAnimationCssClasses; });
32360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_CELL_SELECTABLE", function() { return CSS_CLASS_CELL_SELECTABLE; });
32361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_FORCE_VERTICAL_SCROLL", function() { return CSS_CLASS_FORCE_VERTICAL_SCROLL; });
32362/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_COLUMN_MOVING", function() { return CSS_CLASS_COLUMN_MOVING; });
32363/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyController", function() { return GridBodyController; });
32364/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
32365/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
32366/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(137);
32367/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
32368/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
32369/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21);
32370/* harmony import */ var _gridBodyScrollFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(139);
32371/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
32372/* harmony import */ var _rowDragFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(140);
32373/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34);
32374/**
32375 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32376 * @version v25.3.0
32377 * @link http://www.ag-grid.com/
32378 * @license MIT
32379 */
32380var __extends = (undefined && undefined.__extends) || (function () {
32381 var extendStatics = function (d, b) {
32382 extendStatics = Object.setPrototypeOf ||
32383 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32384 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32385 return extendStatics(d, b);
32386 };
32387 return function (d, b) {
32388 extendStatics(d, b);
32389 function __() { this.constructor = d; }
32390 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32391 };
32392})();
32393var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32394 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32395 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32396 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32397 return c > 3 && r && Object.defineProperty(target, key, r), r;
32398};
32399
32400
32401
32402
32403
32404
32405
32406
32407
32408
32409var RowAnimationCssClasses;
32410(function (RowAnimationCssClasses) {
32411 RowAnimationCssClasses["ANIMATION_ON"] = "ag-row-animation";
32412 RowAnimationCssClasses["ANIMATION_OFF"] = "ag-row-no-animation";
32413})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));
32414var CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';
32415var CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';
32416var CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';
32417var GridBodyController = /** @class */ (function (_super) {
32418 __extends(GridBodyController, _super);
32419 function GridBodyController() {
32420 return _super !== null && _super.apply(this, arguments) || this;
32421 }
32422 GridBodyController.prototype.getScrollFeature = function () {
32423 return this.bodyScrollFeature;
32424 };
32425 GridBodyController.prototype.getBodyViewportElement = function () {
32426 return this.eBodyViewport;
32427 };
32428 GridBodyController.prototype.setView = function (view, eGridBody, eBodyViewport, eTop, eBottom) {
32429 this.view = view;
32430 this.eGridBody = eGridBody;
32431 this.eBodyViewport = eBodyViewport;
32432 this.eTop = eTop;
32433 this.eBottom = eBottom;
32434 this.setCellTextSelection(this.gridOptionsWrapper.isEnableCellTextSelect());
32435 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_2__["LayoutFeature"](this.view));
32436 this.bodyScrollFeature = this.createManagedBean(new _gridBodyScrollFeature__WEBPACK_IMPORTED_MODULE_6__["GridBodyScrollFeature"](this.eBodyViewport));
32437 this.addRowDragListener();
32438 this.setupRowAnimationCssClass();
32439 this.controllersService.registerGridBodyController(this);
32440 this.addEventListeners();
32441 this.onGridColumnsChanged();
32442 this.addBodyViewportListener();
32443 this.setFloatingHeights();
32444 this.disableBrowserDragging();
32445 this.addStopEditingWhenGridLosesFocus();
32446 };
32447 GridBodyController.prototype.addEventListeners = function () {
32448 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
32449 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
32450 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.setFloatingHeights.bind(this));
32451 };
32452 // used by ColumnAnimationService
32453 GridBodyController.prototype.setColumnMovingCss = function (moving) {
32454 this.view.setColumnMovingCss(moving);
32455 };
32456 GridBodyController.prototype.setCellTextSelection = function (selectable) {
32457 if (selectable === void 0) { selectable = false; }
32458 this.view.setCellSelectableCss(selectable);
32459 };
32460 GridBodyController.prototype.onScrollVisibilityChanged = function () {
32461 var show = this.scrollVisibleService.isVerticalScrollShowing();
32462 this.view.setVerticalScrollPaddingVisible(show);
32463 };
32464 GridBodyController.prototype.onGridColumnsChanged = function () {
32465 var columns = this.columnController.getAllGridColumns();
32466 this.view.setColumnCount(columns ? columns.length : 0);
32467 };
32468 // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)
32469 // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.
32470 GridBodyController.prototype.disableBrowserDragging = function () {
32471 this.addManagedListener(this.eGridBody, 'dragstart', function (event) {
32472 if (event.target instanceof HTMLImageElement) {
32473 event.preventDefault();
32474 return false;
32475 }
32476 });
32477 };
32478 GridBodyController.prototype.addStopEditingWhenGridLosesFocus = function () {
32479 var _this = this;
32480 if (!this.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus()) {
32481 return;
32482 }
32483 var focusOutListener = function (event) {
32484 // this is the element the focus is moving to
32485 var elementWithFocus = event.relatedTarget;
32486 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_9__["getTabIndex"])(elementWithFocus) === null) {
32487 _this.rowRenderer.stopEditing();
32488 return;
32489 }
32490 var clickInsideGrid =
32491 // see if click came from inside the viewports
32492 viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })
32493 // and also that it's not from a detail grid
32494 && _this.mouseEventService.isElementInThisGrid(elementWithFocus);
32495 if (!clickInsideGrid) {
32496 var popupService = _this.popupService;
32497 clickInsideGrid =
32498 popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||
32499 popupService.isElementWithinCustomPopup(elementWithFocus);
32500 }
32501 if (!clickInsideGrid) {
32502 _this.rowRenderer.stopEditing();
32503 }
32504 };
32505 var viewports = [this.eBodyViewport, this.eBottom, this.eTop];
32506 viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });
32507 };
32508 GridBodyController.prototype.updateRowCount = function () {
32509 var headerCount = this.headerNavigationService.getHeaderRowCount();
32510 var modelType = this.paginationProxy.getType();
32511 var rowCount = -1;
32512 if (modelType === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
32513 rowCount = 0;
32514 this.paginationProxy.forEachNode(function (node) {
32515 if (!node.group) {
32516 rowCount++;
32517 }
32518 });
32519 }
32520 var total = rowCount === -1 ? -1 : (headerCount + rowCount);
32521 this.view.setRowCount(total);
32522 };
32523 GridBodyController.prototype.registerBodyViewportResizeListener = function (listener) {
32524 this.view.registerBodyViewportResizeListener(listener);
32525 };
32526 GridBodyController.prototype.setVerticalScrollPaddingVisible = function (visible) {
32527 this.view.setVerticalScrollPaddingVisible(visible);
32528 };
32529 GridBodyController.prototype.isVerticalScrollShowing = function () {
32530 var isAlwaysShowVerticalScroll = this.gridOptionsWrapper.isAlwaysShowVerticalScroll();
32531 this.view.setAlwaysVerticalScrollClass(isAlwaysShowVerticalScroll);
32532 return isAlwaysShowVerticalScroll || Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["isVerticalScrollShowing"])(this.eBodyViewport);
32533 };
32534 GridBodyController.prototype.setupRowAnimationCssClass = function () {
32535 var _this = this;
32536 var listener = function () {
32537 // we don't want to use row animation if scaling, as rows jump strangely as you scroll,
32538 // when scaling and doing row animation.
32539 var animateRows = _this.gridOptionsWrapper.isAnimateRows() && !_this.rowContainerHeightService.isStretching();
32540 _this.view.setRowAnimationCssOnBodyViewport(animateRows);
32541 };
32542 listener();
32543 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_HEIGHT_SCALE_CHANGED, listener);
32544 };
32545 GridBodyController.prototype.getGridBodyElement = function () {
32546 return this.eGridBody;
32547 };
32548 GridBodyController.prototype.addBodyViewportListener = function () {
32549 var _this = this;
32550 // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing
32551 // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell
32552 var listener = function (mouseEvent) {
32553 var target = Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["getTarget"])(mouseEvent);
32554 if (target === _this.eBodyViewport || target === _this.controllersService.getCenterRowContainerCon().getViewportElement()) {
32555 // show it
32556 if (_this.contextMenuFactory) {
32557 _this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, _this.eGridBody);
32558 }
32559 }
32560 };
32561 this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);
32562 };
32563 GridBodyController.prototype.getGui = function () {
32564 return this.eGridBody;
32565 };
32566 // called by rowDragFeature
32567 GridBodyController.prototype.scrollVertically = function (pixels) {
32568 var oldScrollPosition = this.eBodyViewport.scrollTop;
32569 this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);
32570 return this.eBodyViewport.scrollTop - oldScrollPosition;
32571 };
32572 // + rangeController - used to know when to scroll when user is dragging outside the
32573 // main viewport while doing a range selection
32574 GridBodyController.prototype.getBodyClientRect = function () {
32575 if (!this.eBodyViewport) {
32576 return;
32577 }
32578 return this.eBodyViewport.getBoundingClientRect();
32579 };
32580 GridBodyController.prototype.addRowDragListener = function () {
32581 this.rowDragFeature = this.createManagedBean(new _rowDragFeature__WEBPACK_IMPORTED_MODULE_8__["RowDragFeature"](this.eBodyViewport));
32582 this.dragAndDropService.addDropTarget(this.rowDragFeature);
32583 };
32584 GridBodyController.prototype.getRowDragFeature = function () {
32585 return this.rowDragFeature;
32586 };
32587 GridBodyController.prototype.setFloatingHeights = function () {
32588 var pinnedRowModel = this.pinnedRowModel;
32589 var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();
32590 if (floatingTopHeight) {
32591 // adding 1px for cell bottom border
32592 floatingTopHeight += 1;
32593 }
32594 var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();
32595 if (floatingBottomHeight) {
32596 // adding 1px for cell bottom border
32597 floatingBottomHeight += 1;
32598 }
32599 this.view.setTopHeight(floatingTopHeight);
32600 this.view.setBottomHeight(floatingBottomHeight);
32601 this.view.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');
32602 this.view.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');
32603 };
32604 // method will call itself if no available width. this covers if the grid
32605 // isn't visible, but is just about to be visible.
32606 GridBodyController.prototype.sizeColumnsToFit = function (nextTimeout) {
32607 var _this = this;
32608 // IE is different to the other browsers, it already removes the scroll width
32609 // while calling window.getComputedStyle() (which is called by getInnerWidth())
32610 var removeScrollWidth = this.isVerticalScrollShowing() && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_9__["isBrowserIE"])();
32611 var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsWrapper.getScrollbarWidth() : 0;
32612 var bodyViewportWidth = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["getInnerWidth"])(this.eBodyViewport);
32613 var availableWidth = bodyViewportWidth - scrollWidthToRemove;
32614 if (availableWidth > 0) {
32615 this.columnController.sizeColumnsToFit(availableWidth, "sizeColumnsToFit");
32616 return;
32617 }
32618 if (nextTimeout === undefined) {
32619 window.setTimeout(function () {
32620 _this.sizeColumnsToFit(100);
32621 }, 0);
32622 }
32623 else if (nextTimeout === 100) {
32624 window.setTimeout(function () {
32625 _this.sizeColumnsToFit(500);
32626 }, 100);
32627 }
32628 else if (nextTimeout === 500) {
32629 window.setTimeout(function () {
32630 _this.sizeColumnsToFit(-1);
32631 }, 500);
32632 }
32633 else {
32634 console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +
32635 'zero width, maybe the grid is not visible yet on the screen?');
32636 }
32637 };
32638 __decorate([
32639 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowContainerHeightService')
32640 ], GridBodyController.prototype, "rowContainerHeightService", void 0);
32641 __decorate([
32642 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
32643 ], GridBodyController.prototype, "controllersService", void 0);
32644 __decorate([
32645 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
32646 ], GridBodyController.prototype, "columnController", void 0);
32647 __decorate([
32648 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
32649 ], GridBodyController.prototype, "scrollVisibleService", void 0);
32650 __decorate([
32651 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('contextMenuFactory')
32652 ], GridBodyController.prototype, "contextMenuFactory", void 0);
32653 __decorate([
32654 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
32655 ], GridBodyController.prototype, "headerNavigationService", void 0);
32656 __decorate([
32657 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
32658 ], GridBodyController.prototype, "paginationProxy", void 0);
32659 __decorate([
32660 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
32661 ], GridBodyController.prototype, "dragAndDropService", void 0);
32662 __decorate([
32663 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedRowModel')
32664 ], GridBodyController.prototype, "pinnedRowModel", void 0);
32665 __decorate([
32666 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
32667 ], GridBodyController.prototype, "rowRenderer", void 0);
32668 __decorate([
32669 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('popupService')
32670 ], GridBodyController.prototype, "popupService", void 0);
32671 __decorate([
32672 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
32673 ], GridBodyController.prototype, "mouseEventService", void 0);
32674 return GridBodyController;
32675}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
32676
32677
32678
32679/***/ }),
32680/* 139 */
32681/***/ (function(module, __webpack_exports__, __webpack_require__) {
32682
32683"use strict";
32684__webpack_require__.r(__webpack_exports__);
32685/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyScrollFeature", function() { return GridBodyScrollFeature; });
32686/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
32687/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
32688/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
32689/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
32690/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);
32691/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(34);
32692/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
32693/**
32694 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32695 * @version v25.3.0
32696 * @link http://www.ag-grid.com/
32697 * @license MIT
32698 */
32699var __extends = (undefined && undefined.__extends) || (function () {
32700 var extendStatics = function (d, b) {
32701 extendStatics = Object.setPrototypeOf ||
32702 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32703 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32704 return extendStatics(d, b);
32705 };
32706 return function (d, b) {
32707 extendStatics(d, b);
32708 function __() { this.constructor = d; }
32709 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32710 };
32711})();
32712var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32713 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32714 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32715 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32716 return c > 3 && r && Object.defineProperty(target, key, r), r;
32717};
32718
32719
32720
32721
32722
32723
32724
32725var GridBodyScrollFeature = /** @class */ (function (_super) {
32726 __extends(GridBodyScrollFeature, _super);
32727 function GridBodyScrollFeature(eBodyViewport) {
32728 var _this = _super.call(this) || this;
32729 _this.scrollLeft = -1;
32730 _this.nextScrollTop = -1;
32731 _this.scrollTop = -1;
32732 _this.eBodyViewport = eBodyViewport;
32733 _this.resetLastHorizontalScrollElementDebounced = Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(_this.resetLastHorizontalScrollElement.bind(_this), 500);
32734 return _this;
32735 }
32736 GridBodyScrollFeature.prototype.postConstruct = function () {
32737 var _this = this;
32738 this.enableRtl = this.gridOptionsWrapper.isEnableRtl();
32739 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
32740 this.controllersService.whenReady(function (p) {
32741 _this.centerRowContainerCon = p.centerRowContainerCon;
32742 _this.onDisplayedColumnsWidthChanged();
32743 _this.addScrollListener();
32744 });
32745 };
32746 GridBodyScrollFeature.prototype.addScrollListener = function () {
32747 var fakeHScroll = this.controllersService.getFakeHScrollCon();
32748 this.addManagedListener(this.centerRowContainerCon.getViewportElement(), 'scroll', this.onCenterViewportScroll.bind(this));
32749 this.addManagedListener(fakeHScroll.getViewport(), 'scroll', this.onFakeHorizontalScroll.bind(this));
32750 var onVerticalScroll = this.gridOptionsWrapper.isDebounceVerticalScrollbar() ?
32751 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(this.onVerticalScroll.bind(this), 100)
32752 : this.onVerticalScroll.bind(this);
32753 this.addManagedListener(this.eBodyViewport, 'scroll', onVerticalScroll);
32754 };
32755 GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {
32756 if (this.enableRtl) {
32757 // because RTL is all backwards, a change in the width of the row
32758 // can cause a change in the scroll position, without a scroll event,
32759 // because the scroll position in RTL is a function that depends on
32760 // the width. to be convinced of this, take out this line, enable RTL,
32761 // scroll all the way to the left and then resize a column
32762 this.horizontallyScrollHeaderCenterAndFloatingCenter();
32763 }
32764 };
32765 GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {
32766 if (scrollLeft === undefined) {
32767 scrollLeft = this.centerRowContainerCon.getCenterViewportScrollLeft();
32768 }
32769 var offset = this.enableRtl ? scrollLeft : -scrollLeft;
32770 var topCenterContainer = this.controllersService.getTopCenterRowContainerCon();
32771 var bottomCenterContainer = this.controllersService.getBottomCenterRowContainerCon();
32772 var headerRootComp = this.controllersService.getHeaderRootComp();
32773 var fakeHScroll = this.controllersService.getFakeHScrollCon();
32774 headerRootComp.setHorizontalScroll(offset);
32775 bottomCenterContainer.setContainerTranslateX(offset);
32776 topCenterContainer.setContainerTranslateX(offset);
32777 var partner = this.lastHorizontalScrollElement === this.centerRowContainerCon.getViewportElement() ?
32778 fakeHScroll.getViewport() : this.centerRowContainerCon.getViewportElement();
32779 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setScrollLeft"])(partner, Math.abs(scrollLeft), this.enableRtl);
32780 };
32781 GridBodyScrollFeature.prototype.isControllingScroll = function (eDiv) {
32782 if (!this.lastHorizontalScrollElement) {
32783 this.lastHorizontalScrollElement = eDiv;
32784 return true;
32785 }
32786 return eDiv === this.lastHorizontalScrollElement;
32787 };
32788 GridBodyScrollFeature.prototype.onFakeHorizontalScroll = function () {
32789 var fakeHScrollViewport = this.controllersService.getFakeHScrollCon().getViewport();
32790 if (!this.isControllingScroll(fakeHScrollViewport)) {
32791 return;
32792 }
32793 this.onBodyHorizontalScroll(fakeHScrollViewport);
32794 };
32795 GridBodyScrollFeature.prototype.onCenterViewportScroll = function () {
32796 var centerContainerViewport = this.centerRowContainerCon.getViewportElement();
32797 if (!this.isControllingScroll(centerContainerViewport)) {
32798 return;
32799 }
32800 this.onBodyHorizontalScroll(centerContainerViewport);
32801 };
32802 GridBodyScrollFeature.prototype.onBodyHorizontalScroll = function (eSource) {
32803 var centerContainerViewport = this.centerRowContainerCon.getViewportElement();
32804 var scrollLeft = centerContainerViewport.scrollLeft;
32805 if (this.shouldBlockScrollUpdate('horizontal', scrollLeft, true)) {
32806 return;
32807 }
32808 // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.
32809 // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200
32810 // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.
32811 // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,
32812 // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause
32813 // scroll to 200px, the next to 199px, then the first back to 198px and so on).
32814 this.doHorizontalScroll(Math.round(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getScrollLeft"])(eSource, this.enableRtl)));
32815 this.resetLastHorizontalScrollElementDebounced();
32816 };
32817 GridBodyScrollFeature.prototype.onVerticalScroll = function () {
32818 var scrollTop = this.eBodyViewport.scrollTop;
32819 if (this.shouldBlockScrollUpdate('vertical', scrollTop, true)) {
32820 return;
32821 }
32822 this.animationFrameService.setScrollTop(scrollTop);
32823 this.nextScrollTop = scrollTop;
32824 if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {
32825 this.scrollTop = this.nextScrollTop;
32826 this.redrawRowsAfterScroll();
32827 }
32828 else {
32829 this.animationFrameService.schedule();
32830 }
32831 };
32832 GridBodyScrollFeature.prototype.resetLastHorizontalScrollElement = function () {
32833 this.lastHorizontalScrollElement = null;
32834 };
32835 GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {
32836 this.scrollLeft = scrollLeft;
32837 var event = {
32838 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL,
32839 api: this.gridApi,
32840 columnApi: this.columnApi,
32841 direction: 'horizontal',
32842 left: this.scrollLeft,
32843 top: this.scrollTop
32844 };
32845 this.eventService.dispatchEvent(event);
32846 this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);
32847 this.onHorizontalViewportChanged();
32848 };
32849 GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {
32850 // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport
32851 // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually
32852 // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,
32853 // as otherwise it was causing the rows and header to flicker.
32854 if (touchOnly === void 0) { touchOnly = false; }
32855 // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to
32856 // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event
32857 // could be 10px before the max position, and then current scroll event could be 20px after the max position).
32858 // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in
32859 // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.
32860 if (touchOnly && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isIOSUserAgent"])()) {
32861 return false;
32862 }
32863 if (direction === 'vertical') {
32864 var clientHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getInnerHeight"])(this.eBodyViewport);
32865 var scrollHeight = this.eBodyViewport.scrollHeight;
32866 if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {
32867 return true;
32868 }
32869 }
32870 if (direction === 'horizontal') {
32871 var clientWidth = this.centerRowContainerCon.getCenterWidth();
32872 var scrollWidth = this.centerRowContainerCon.getViewportElement().scrollWidth;
32873 if (this.enableRtl && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isRtlNegativeScroll"])()) {
32874 if (scrollTo > 0) {
32875 return true;
32876 }
32877 }
32878 else if (scrollTo < 0) {
32879 return true;
32880 }
32881 if (Math.abs(scrollTo) + clientWidth > scrollWidth) {
32882 return true;
32883 }
32884 }
32885 return false;
32886 };
32887 GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {
32888 var event = {
32889 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL,
32890 direction: 'vertical',
32891 api: this.gridApi,
32892 columnApi: this.columnApi,
32893 left: this.scrollLeft,
32894 top: this.scrollTop
32895 };
32896 this.eventService.dispatchEvent(event);
32897 };
32898 GridBodyScrollFeature.prototype.onHorizontalViewportChanged = function () {
32899 this.centerRowContainerCon.onHorizontalViewportChanged();
32900 };
32901 // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.
32902 // (which happens with some implementations of tabbing). this can result in horizontal scroll getting
32903 // reset back to the left, however no scroll event is fired. so we need to get header to also scroll
32904 // back to the left to be kept in sync.
32905 // adding and removing the grid from the DOM both resets the scroll position and
32906 // triggers a resize event, so notify listeners if the scroll position has changed
32907 GridBodyScrollFeature.prototype.checkScrollLeft = function () {
32908 if (this.scrollLeft !== this.centerRowContainerCon.getCenterViewportScrollLeft()) {
32909 this.onBodyHorizontalScroll(this.centerRowContainerCon.getViewportElement());
32910 }
32911 };
32912 GridBodyScrollFeature.prototype.executeAnimationFrameScroll = function () {
32913 var frameNeeded = this.scrollTop != this.nextScrollTop;
32914 if (frameNeeded) {
32915 this.scrollTop = this.nextScrollTop;
32916 this.redrawRowsAfterScroll();
32917 }
32918 return frameNeeded;
32919 };
32920 // called by scrollHorizontally method and alignedGridsService
32921 GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition) {
32922 var minScrollLeft = 0;
32923 var maxScrollLeft = this.centerRowContainerCon.getViewportElement().scrollWidth - this.centerRowContainerCon.getCenterWidth();
32924 if (this.shouldBlockScrollUpdate('horizontal', hScrollPosition)) {
32925 if (this.enableRtl && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isRtlNegativeScroll"])()) {
32926 hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;
32927 }
32928 else {
32929 hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);
32930 }
32931 }
32932 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setScrollLeft"])(this.centerRowContainerCon.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);
32933 // we need to manually do the event handling (rather than wait for the event)
32934 // for the alignedGridsService, as if we don't, the aligned grid service gets
32935 // notified async, and then it's 'consuming' flag doesn't get used right, and
32936 // we can end up with an infinite loop
32937 this.doHorizontalScroll(hScrollPosition);
32938 };
32939 GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {
32940 this.eBodyViewport.scrollTop = vScrollPosition;
32941 };
32942 GridBodyScrollFeature.prototype.getVScrollPosition = function () {
32943 var result = {
32944 top: this.eBodyViewport.scrollTop,
32945 bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight
32946 };
32947 return result;
32948 };
32949 GridBodyScrollFeature.prototype.getHScrollPosition = function () {
32950 return this.centerRowContainerCon.getHScrollPosition();
32951 };
32952 GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {
32953 return this.centerRowContainerCon.isHorizontalScrollShowing();
32954 };
32955 // called by the headerRootComp and moveColumnController
32956 GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {
32957 var oldScrollPosition = this.centerRowContainerCon.getViewportElement().scrollLeft;
32958 this.setHorizontalScrollPosition(oldScrollPosition + pixels);
32959 return this.centerRowContainerCon.getViewportElement().scrollLeft - oldScrollPosition;
32960 };
32961 // gets called by rowRenderer when new data loaded, as it will want to scroll to the top
32962 GridBodyScrollFeature.prototype.scrollToTop = function () {
32963 this.eBodyViewport.scrollTop = 0;
32964 };
32965 // Valid values for position are bottom, middle and top
32966 GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {
32967 if (position === void 0) { position = null; }
32968 // look for the node index we want to display
32969 var rowCount = this.rowModel.getRowCount();
32970 var comparatorIsAFunction = typeof comparator === 'function';
32971 var indexToSelect = -1;
32972 // go through all the nodes, find the one we want to show
32973 for (var i = 0; i < rowCount; i++) {
32974 var node = this.rowModel.getRow(i);
32975 if (comparatorIsAFunction) {
32976 if (comparator(node)) {
32977 indexToSelect = i;
32978 break;
32979 }
32980 }
32981 else {
32982 // check object equality against node and data
32983 if (comparator === node || comparator === node.data) {
32984 indexToSelect = i;
32985 break;
32986 }
32987 }
32988 }
32989 if (indexToSelect >= 0) {
32990 this.ensureIndexVisible(indexToSelect, position);
32991 }
32992 };
32993 // Valid values for position are bottom, middle and top
32994 // position should be {'top','middle','bottom', or undefined/null}.
32995 // if undefined/null, then the grid will to the minimal amount of scrolling,
32996 // eg if grid needs to scroll up, it scrolls until row is on top,
32997 // if grid needs to scroll down, it scrolls until row is on bottom,
32998 // if row is already in view, grid does not scroll
32999 GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {
33000 // if for print or auto height, everything is always visible
33001 if (this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].DOM_LAYOUT_PRINT) {
33002 return;
33003 }
33004 var rowCount = this.paginationProxy.getRowCount();
33005 if (typeof index !== 'number' || index < 0 || index >= rowCount) {
33006 console.warn('invalid row index for ensureIndexVisible: ' + index);
33007 return;
33008 }
33009 var isPaging = this.gridOptionsWrapper.isPagination();
33010 var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();
33011 if (!paginationPanelEnabled) {
33012 this.paginationProxy.goToPageWithIndex(index);
33013 }
33014 var rowNode = this.paginationProxy.getRow(index);
33015 var rowGotShiftedDuringOperation;
33016 do {
33017 var startingRowTop = rowNode.rowTop;
33018 var startingRowHeight = rowNode.rowHeight;
33019 var paginationOffset = this.paginationProxy.getPixelOffset();
33020 var rowTopPixel = rowNode.rowTop - paginationOffset;
33021 var rowBottomPixel = rowTopPixel + rowNode.rowHeight;
33022 var scrollPosition = this.getVScrollPosition();
33023 var heightOffset = this.heightScaler.getDivStretchOffset();
33024 var vScrollTop = scrollPosition.top + heightOffset;
33025 var vScrollBottom = scrollPosition.bottom + heightOffset;
33026 var viewportHeight = vScrollBottom - vScrollTop;
33027 // work out the pixels for top, middle and bottom up front,
33028 // make the if/else below easier to read
33029 var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);
33030 var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);
33031 // make sure if middle, the row is not outside the top of the grid
33032 var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);
33033 var rowBelowViewport = vScrollTop > rowTopPixel;
33034 var rowAboveViewport = vScrollBottom < rowBottomPixel;
33035 var newScrollPosition = null;
33036 if (position === 'top') {
33037 newScrollPosition = pxTop;
33038 }
33039 else if (position === 'bottom') {
33040 newScrollPosition = pxBottom;
33041 }
33042 else if (position === 'middle') {
33043 newScrollPosition = pxMiddle;
33044 }
33045 else if (rowBelowViewport) {
33046 // if row is before, scroll up with row at top
33047 newScrollPosition = pxTop;
33048 }
33049 else if (rowAboveViewport) {
33050 // if row is below, scroll down with row at bottom
33051 newScrollPosition = pxBottom;
33052 }
33053 if (newScrollPosition !== null) {
33054 this.eBodyViewport.scrollTop = newScrollPosition;
33055 this.rowRenderer.redrawAfterScroll();
33056 }
33057 // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),
33058 // the height of a row changes due to lazy calculation of row heights when using
33059 // colDef.autoHeight or gridOptions.getRowHeight.
33060 // if row was shifted, then the position we scrolled to is incorrect.
33061 rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)
33062 || (startingRowHeight !== rowNode.rowHeight);
33063 } while (rowGotShiftedDuringOperation);
33064 // so when we return back to user, the cells have rendered
33065 this.animationFrameService.flushAllFrames();
33066 };
33067 GridBodyScrollFeature.prototype.ensureColumnVisible = function (key) {
33068 var column = this.columnController.getGridColumn(key);
33069 if (!column) {
33070 return;
33071 }
33072 if (column.isPinned()) {
33073 console.warn('calling ensureIndexVisible on a ' + column.getPinned() + ' pinned column doesn\'t make sense for column ' + column.getColId());
33074 return;
33075 }
33076 if (!this.columnController.isColumnDisplayed(column)) {
33077 console.warn('column is not currently visible');
33078 return;
33079 }
33080 var colLeftPixel = column.getLeft();
33081 var colRightPixel = colLeftPixel + column.getActualWidth();
33082 var viewportWidth = this.centerRowContainerCon.getCenterWidth();
33083 var scrollPosition = this.centerRowContainerCon.getCenterViewportScrollLeft();
33084 var bodyWidth = this.columnController.getBodyContainerWidth();
33085 var viewportLeftPixel;
33086 var viewportRightPixel;
33087 // the logic of working out left and right viewport px is both here and in the ColumnController,
33088 // need to refactor it out to one place
33089 if (this.enableRtl) {
33090 viewportLeftPixel = bodyWidth - scrollPosition - viewportWidth;
33091 viewportRightPixel = bodyWidth - scrollPosition;
33092 }
33093 else {
33094 viewportLeftPixel = scrollPosition;
33095 viewportRightPixel = viewportWidth + scrollPosition;
33096 }
33097 var viewportScrolledPastCol = viewportLeftPixel > colLeftPixel;
33098 var viewportScrolledBeforeCol = viewportRightPixel < colRightPixel;
33099 var colToSmallForViewport = viewportWidth < column.getActualWidth();
33100 var alignColToLeft = viewportScrolledPastCol || colToSmallForViewport;
33101 var alignColToRight = viewportScrolledBeforeCol;
33102 if (alignColToLeft || alignColToRight) {
33103 var newScrollPosition = void 0;
33104 if (this.enableRtl) {
33105 newScrollPosition = alignColToLeft ? (bodyWidth - viewportWidth - colLeftPixel) : (bodyWidth - colRightPixel);
33106 }
33107 else {
33108 newScrollPosition = alignColToLeft ? colLeftPixel : (colRightPixel - viewportWidth);
33109 }
33110 this.centerRowContainerCon.setCenterViewportScrollLeft(newScrollPosition);
33111 }
33112 else {
33113 // otherwise, col is already in view, so do nothing
33114 }
33115 // this will happen anyway, as the move will cause a 'scroll' event on the body, however
33116 // it is possible that the ensureColumnVisible method is called from within AG Grid and
33117 // the caller will need to have the columns rendered to continue, which will be before
33118 // the event has been worked on (which is the case for cell navigation).
33119 this.centerRowContainerCon.onHorizontalViewportChanged();
33120 // so when we return back to user, the cells have rendered
33121 this.animationFrameService.flushAllFrames();
33122 };
33123 __decorate([
33124 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
33125 ], GridBodyScrollFeature.prototype, "controllersService", void 0);
33126 __decorate([
33127 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
33128 ], GridBodyScrollFeature.prototype, "animationFrameService", void 0);
33129 __decorate([
33130 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
33131 ], GridBodyScrollFeature.prototype, "columnApi", void 0);
33132 __decorate([
33133 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
33134 ], GridBodyScrollFeature.prototype, "gridApi", void 0);
33135 __decorate([
33136 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
33137 ], GridBodyScrollFeature.prototype, "paginationProxy", void 0);
33138 __decorate([
33139 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
33140 ], GridBodyScrollFeature.prototype, "rowModel", void 0);
33141 __decorate([
33142 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowContainerHeightService')
33143 ], GridBodyScrollFeature.prototype, "heightScaler", void 0);
33144 __decorate([
33145 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
33146 ], GridBodyScrollFeature.prototype, "rowRenderer", void 0);
33147 __decorate([
33148 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
33149 ], GridBodyScrollFeature.prototype, "columnController", void 0);
33150 __decorate([
33151 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
33152 ], GridBodyScrollFeature.prototype, "postConstruct", null);
33153 return GridBodyScrollFeature;
33154}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
33155
33156
33157
33158/***/ }),
33159/* 140 */
33160/***/ (function(module, __webpack_exports__, __webpack_require__) {
33161
33162"use strict";
33163__webpack_require__.r(__webpack_exports__);
33164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDragFeature", function() { return RowDragFeature; });
33165/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
33166/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
33167/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
33168/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
33169/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);
33170/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
33171/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
33172/**
33173 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
33174 * @version v25.3.0
33175 * @link http://www.ag-grid.com/
33176 * @license MIT
33177 */
33178var __extends = (undefined && undefined.__extends) || (function () {
33179 var extendStatics = function (d, b) {
33180 extendStatics = Object.setPrototypeOf ||
33181 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33182 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33183 return extendStatics(d, b);
33184 };
33185 return function (d, b) {
33186 extendStatics(d, b);
33187 function __() { this.constructor = d; }
33188 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33189 };
33190})();
33191var __assign = (undefined && undefined.__assign) || function () {
33192 __assign = Object.assign || function(t) {
33193 for (var s, i = 1, n = arguments.length; i < n; i++) {
33194 s = arguments[i];
33195 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33196 t[p] = s[p];
33197 }
33198 return t;
33199 };
33200 return __assign.apply(this, arguments);
33201};
33202var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33203 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33204 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33205 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
33206 return c > 3 && r && Object.defineProperty(target, key, r), r;
33207};
33208var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
33209 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
33210 for (var r = Array(s), k = 0, i = 0; i < il; i++)
33211 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
33212 r[k] = a[j];
33213 return r;
33214};
33215
33216
33217
33218
33219
33220
33221
33222var RowDragFeature = /** @class */ (function (_super) {
33223 __extends(RowDragFeature, _super);
33224 function RowDragFeature(eContainer) {
33225 var _this = _super.call(this) || this;
33226 _this.isMultiRowDrag = false;
33227 _this.isGridSorted = false;
33228 _this.isGridFiltered = false;
33229 _this.isRowGroupActive = false;
33230 _this.eContainer = eContainer;
33231 return _this;
33232 }
33233 RowDragFeature.prototype.postConstruct = function () {
33234 if (this.gridOptionsWrapper.isRowModelDefault()) {
33235 this.clientSideRowModel = this.rowModel;
33236 }
33237 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
33238 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
33239 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));
33240 this.onSortChanged();
33241 this.onFilterChanged();
33242 this.onRowGroupChanged();
33243 };
33244 RowDragFeature.prototype.onSortChanged = function () {
33245 this.isGridSorted = this.sortController.isSortActive();
33246 };
33247 RowDragFeature.prototype.onFilterChanged = function () {
33248 this.isGridFiltered = this.filterManager.isAnyFilterPresent();
33249 };
33250 RowDragFeature.prototype.onRowGroupChanged = function () {
33251 var rowGroups = this.columnController.getRowGroupColumns();
33252 this.isRowGroupActive = !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(rowGroups);
33253 };
33254 RowDragFeature.prototype.getContainer = function () {
33255 return this.eContainer;
33256 };
33257 RowDragFeature.prototype.isInterestedIn = function (type) {
33258 return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].RowDrag;
33259 };
33260 RowDragFeature.prototype.getIconName = function () {
33261 var managedDrag = this.gridOptionsWrapper.isRowDragManaged();
33262 if (managedDrag && this.shouldPreventRowMove()) {
33263 return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_NOT_ALLOWED;
33264 }
33265 return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE;
33266 };
33267 RowDragFeature.prototype.shouldPreventRowMove = function () {
33268 return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;
33269 };
33270 RowDragFeature.prototype.getRowNodes = function (draggingEvent) {
33271 if (!this.isFromThisGrid(draggingEvent)) {
33272 return draggingEvent.dragItem.rowNodes || [];
33273 }
33274 var enableMultiRowDragging = this.gridOptionsWrapper.isEnableMultiRowDragging();
33275 var selectedNodes = this.selectionController.getSelectedNodes();
33276 var currentNode = draggingEvent.dragItem.rowNode;
33277 if (enableMultiRowDragging && selectedNodes.indexOf(currentNode) !== -1) {
33278 this.isMultiRowDrag = true;
33279 return __spreadArrays(selectedNodes);
33280 }
33281 this.isMultiRowDrag = false;
33282 return [currentNode];
33283 };
33284 RowDragFeature.prototype.onDragEnter = function (draggingEvent) {
33285 // when entering, we fire the enter event, then in onEnterOrDragging,
33286 // we also fire the move event. so we get both events when entering.
33287 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, draggingEvent);
33288 this.getRowNodes(draggingEvent).forEach(function (rowNode) {
33289 rowNode.setDragging(true);
33290 });
33291 this.onEnterOrDragging(draggingEvent);
33292 };
33293 RowDragFeature.prototype.onDragging = function (draggingEvent) {
33294 this.onEnterOrDragging(draggingEvent);
33295 };
33296 RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {
33297 var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;
33298 return dragSourceDomDataKey === this.gridOptionsWrapper.getDomDataKey();
33299 };
33300 RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {
33301 var gridBodyCon = this.controllersService.getGridBodyController();
33302 var gridGui = gridBodyCon.getGui();
33303 var dropZoneTarget = draggingEvent.dropZoneTarget;
33304 return !gridGui.contains(dropZoneTarget);
33305 };
33306 RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {
33307 // this event is fired for enter and move
33308 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, draggingEvent);
33309 this.lastDraggingEvent = draggingEvent;
33310 var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
33311 var managedDrag = this.gridOptionsWrapper.isRowDragManaged();
33312 if (managedDrag) {
33313 this.doManagedDrag(draggingEvent, pixel);
33314 }
33315 this.checkCenterForScrolling(pixel);
33316 };
33317 RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {
33318 var _this = this;
33319 var rowNodes;
33320 var isFromThisGrid = this.isFromThisGrid(draggingEvent);
33321 if (isFromThisGrid) {
33322 rowNodes = [draggingEvent.dragItem.rowNode];
33323 if (this.isMultiRowDrag) {
33324 rowNodes = __spreadArrays(this.selectionController.getSelectedNodes()).sort(function (a, b) { return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b); });
33325 }
33326 draggingEvent.dragItem.rowNodes = rowNodes;
33327 }
33328 else {
33329 rowNodes = draggingEvent.dragItem.rowNodes;
33330 }
33331 var managedDrag = this.gridOptionsWrapper.isRowDragManaged();
33332 if (managedDrag && this.shouldPreventRowMove()) {
33333 return;
33334 }
33335 if (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !isFromThisGrid) {
33336 if (!this.isDropZoneWithinThisGrid(draggingEvent)) {
33337 this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);
33338 }
33339 }
33340 else {
33341 this.moveRows(rowNodes, pixel);
33342 }
33343 };
33344 RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {
33345 return parseInt(Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(rowNode.getRowIndexString().split('-')), 10);
33346 };
33347 RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {
33348 var _this = this;
33349 var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();
33350 var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === 'below';
33351 var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
33352 var rowNodes = draggingEvent.dragItem.rowNodes;
33353 var increment = isBelow ? 1 : 0;
33354 if (this.isFromThisGrid(draggingEvent)) {
33355 rowNodes.forEach(function (rowNode) {
33356 if (rowNode.rowTop < pixel) {
33357 increment -= 1;
33358 }
33359 });
33360 this.moveRows(rowNodes, pixel, increment);
33361 }
33362 else {
33363 var getRowNodeId_1 = this.gridOptionsWrapper.getRowNodeIdFunc();
33364 var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;
33365 if (this.clientSideRowModel.getHighlightPosition(pixel) === 'above') {
33366 addIndex--;
33367 }
33368 this.clientSideRowModel.updateRowData({
33369 add: rowNodes
33370 .map(function (node) { return node.data; })
33371 .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowNodeId_1 ? getRowNodeId_1(data) : data.id); }),
33372 addIndex: addIndex
33373 });
33374 }
33375 this.clearRowHighlight();
33376 };
33377 RowDragFeature.prototype.clearRowHighlight = function () {
33378 this.clientSideRowModel.highlightRowAtPixel(null);
33379 };
33380 RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {
33381 if (increment === void 0) { increment = 0; }
33382 var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);
33383 if (rowWasMoved) {
33384 this.focusController.clearFocusedCell();
33385 if (this.rangeController) {
33386 this.rangeController.removeAllCellRanges();
33387 }
33388 }
33389 };
33390 RowDragFeature.prototype.checkCenterForScrolling = function (pixel) {
33391 // scroll if the mouse is within 50px of the grid edge
33392 var gridBodyCon = this.controllersService.getGridBodyController();
33393 var pixelRange = gridBodyCon.getScrollFeature().getVScrollPosition();
33394 // console.log(`pixelRange = (${pixelRange.top}, ${pixelRange.bottom})`);
33395 this.needToMoveUp = pixel < (pixelRange.top + 50);
33396 this.needToMoveDown = pixel > (pixelRange.bottom - 50);
33397 // console.log(`needToMoveUp = ${this.needToMoveUp} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);
33398 // console.log(`needToMoveDown = ${this.needToMoveDown} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);
33399 if (this.needToMoveUp || this.needToMoveDown) {
33400 this.ensureIntervalStarted();
33401 }
33402 else {
33403 this.ensureIntervalCleared();
33404 }
33405 };
33406 RowDragFeature.prototype.ensureIntervalStarted = function () {
33407 if (this.movingIntervalId) {
33408 return;
33409 }
33410 this.intervalCount = 0;
33411 this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);
33412 };
33413 RowDragFeature.prototype.ensureIntervalCleared = function () {
33414 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.movingIntervalId)) {
33415 return;
33416 }
33417 window.clearInterval(this.movingIntervalId);
33418 this.movingIntervalId = null;
33419 };
33420 RowDragFeature.prototype.moveInterval = function () {
33421 // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow
33422 // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.
33423 var pixelsToMove;
33424 this.intervalCount++;
33425 pixelsToMove = 10 + (this.intervalCount * 5);
33426 if (pixelsToMove > 100) {
33427 pixelsToMove = 100;
33428 }
33429 var pixelsMoved = null;
33430 var gridBodyCon = this.controllersService.getGridBodyController();
33431 if (this.needToMoveDown) {
33432 pixelsMoved = gridBodyCon.scrollVertically(pixelsToMove);
33433 }
33434 else if (this.needToMoveUp) {
33435 pixelsMoved = gridBodyCon.scrollVertically(-pixelsToMove);
33436 }
33437 if (pixelsMoved !== 0) {
33438 this.onDragging(this.lastDraggingEvent);
33439 }
33440 };
33441 RowDragFeature.prototype.addRowDropZone = function (params) {
33442 var _this = this;
33443 if (!params.getContainer()) {
33444 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');
33445 return;
33446 }
33447 if (this.dragAndDropService.findExternalZone(params)) {
33448 console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');
33449 return;
33450 }
33451 var processedParams = {
33452 getContainer: params.getContainer
33453 };
33454 if (params.fromGrid) {
33455 params.fromGrid = undefined;
33456 processedParams = params;
33457 }
33458 else {
33459 if (params.onDragEnter) {
33460 processedParams.onDragEnter = function (e) {
33461 params.onDragEnter(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, e));
33462 };
33463 }
33464 if (params.onDragLeave) {
33465 processedParams.onDragLeave = function (e) {
33466 params.onDragLeave(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, e));
33467 };
33468 }
33469 if (params.onDragging) {
33470 processedParams.onDragging = function (e) {
33471 params.onDragging(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, e));
33472 };
33473 }
33474 if (params.onDragStop) {
33475 processedParams.onDragStop = function (e) {
33476 params.onDragStop(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, e));
33477 };
33478 }
33479 }
33480 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));
33481 };
33482 RowDragFeature.prototype.getRowDropZone = function (events) {
33483 var _this = this;
33484 var getContainer = this.getContainer.bind(this);
33485 var onDragEnter = this.onDragEnter.bind(this);
33486 var onDragLeave = this.onDragLeave.bind(this);
33487 var onDragging = this.onDragging.bind(this);
33488 var onDragStop = this.onDragStop.bind(this);
33489 if (!events) {
33490 return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };
33491 }
33492 return {
33493 getContainer: getContainer,
33494 onDragEnter: events.onDragEnter
33495 ? (function (e) {
33496 onDragEnter(e);
33497 events.onDragEnter(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, e));
33498 })
33499 : onDragEnter,
33500 onDragLeave: events.onDragLeave
33501 ? (function (e) {
33502 onDragLeave(e);
33503 events.onDragLeave(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, e));
33504 })
33505 : onDragLeave,
33506 onDragging: events.onDragging
33507 ? (function (e) {
33508 onDragging(e);
33509 events.onDragging(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, e));
33510 })
33511 : onDragging,
33512 onDragStop: events.onDragStop
33513 ? (function (e) {
33514 onDragStop(e);
33515 events.onDragStop(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, e));
33516 })
33517 : onDragStop,
33518 fromGrid: true /* @private */
33519 };
33520 };
33521 RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {
33522 var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
33523 var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();
33524 var overIndex = -1;
33525 var overNode = null;
33526 if (!mouseIsPastLastRow) {
33527 overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);
33528 overNode = this.rowModel.getRow(overIndex);
33529 }
33530 var vDirectionString;
33531 switch (draggingEvent.vDirection) {
33532 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["VerticalDirection"].Down:
33533 vDirectionString = 'down';
33534 break;
33535 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["VerticalDirection"].Up:
33536 vDirectionString = 'up';
33537 break;
33538 default:
33539 vDirectionString = null;
33540 break;
33541 }
33542 var event = {
33543 type: type,
33544 api: this.gridOptionsWrapper.getApi(),
33545 columnApi: this.gridOptionsWrapper.getColumnApi(),
33546 event: draggingEvent.event,
33547 node: draggingEvent.dragItem.rowNode,
33548 nodes: draggingEvent.dragItem.rowNodes,
33549 overIndex: overIndex,
33550 overNode: overNode,
33551 y: yNormalised,
33552 vDirection: vDirectionString
33553 };
33554 return event;
33555 };
33556 RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {
33557 var event = this.draggingToRowDragEvent(type, draggingEvent);
33558 this.eventService.dispatchEvent(event);
33559 };
33560 RowDragFeature.prototype.onDragLeave = function (draggingEvent) {
33561 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, draggingEvent);
33562 this.stopDragging(draggingEvent);
33563 if (this.gridOptionsWrapper.isRowDragManaged()) {
33564 this.clearRowHighlight();
33565 }
33566 if (this.isFromThisGrid(draggingEvent)) {
33567 this.isMultiRowDrag = false;
33568 }
33569 };
33570 RowDragFeature.prototype.onDragStop = function (draggingEvent) {
33571 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, draggingEvent);
33572 this.stopDragging(draggingEvent);
33573 if (this.gridOptionsWrapper.isRowDragManaged() &&
33574 (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !this.isFromThisGrid(draggingEvent)) &&
33575 !this.isDropZoneWithinThisGrid(draggingEvent)) {
33576 this.moveRowAndClearHighlight(draggingEvent);
33577 }
33578 };
33579 RowDragFeature.prototype.stopDragging = function (draggingEvent) {
33580 this.ensureIntervalCleared();
33581 this.getRowNodes(draggingEvent).forEach(function (rowNode) {
33582 rowNode.setDragging(false);
33583 });
33584 };
33585 __decorate([
33586 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
33587 ], RowDragFeature.prototype, "dragAndDropService", void 0);
33588 __decorate([
33589 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
33590 ], RowDragFeature.prototype, "rowModel", void 0);
33591 __decorate([
33592 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
33593 ], RowDragFeature.prototype, "paginationProxy", void 0);
33594 __decorate([
33595 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
33596 ], RowDragFeature.prototype, "columnController", void 0);
33597 __decorate([
33598 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusController')
33599 ], RowDragFeature.prototype, "focusController", void 0);
33600 __decorate([
33601 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('sortController')
33602 ], RowDragFeature.prototype, "sortController", void 0);
33603 __decorate([
33604 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('filterManager')
33605 ], RowDragFeature.prototype, "filterManager", void 0);
33606 __decorate([
33607 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('selectionController')
33608 ], RowDragFeature.prototype, "selectionController", void 0);
33609 __decorate([
33610 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('rangeController')
33611 ], RowDragFeature.prototype, "rangeController", void 0);
33612 __decorate([
33613 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
33614 ], RowDragFeature.prototype, "mouseEventService", void 0);
33615 __decorate([
33616 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
33617 ], RowDragFeature.prototype, "controllersService", void 0);
33618 __decorate([
33619 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
33620 ], RowDragFeature.prototype, "postConstruct", null);
33621 return RowDragFeature;
33622}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
33623
33624
33625
33626/***/ }),
33627/* 141 */
33628/***/ (function(module, __webpack_exports__, __webpack_require__) {
33629
33630"use strict";
33631__webpack_require__.r(__webpack_exports__);
33632/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerNames", function() { return RowContainerNames; });
33633/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContainerCssClasses", function() { return ContainerCssClasses; });
33634/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewportCssClasses", function() { return ViewportCssClasses; });
33635/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WrapperCssClasses", function() { return WrapperCssClasses; });
33636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerController", function() { return RowContainerController; });
33637/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
33638/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
33639/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
33640/* harmony import */ var _rowContainerEventsFeature__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(142);
33641/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
33642/* harmony import */ var _viewportSizeFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(143);
33643/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(27);
33644/* harmony import */ var _setPinnedLeftWidthFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(144);
33645/* harmony import */ var _setPinnedRightWidthFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(145);
33646/* harmony import */ var _setHeightFeature__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(146);
33647/* harmony import */ var _dragListenerFeature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(147);
33648/* harmony import */ var _centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(133);
33649/**
33650 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
33651 * @version v25.3.0
33652 * @link http://www.ag-grid.com/
33653 * @license MIT
33654 */
33655var __extends = (undefined && undefined.__extends) || (function () {
33656 var extendStatics = function (d, b) {
33657 extendStatics = Object.setPrototypeOf ||
33658 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33659 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33660 return extendStatics(d, b);
33661 };
33662 return function (d, b) {
33663 extendStatics(d, b);
33664 function __() { this.constructor = d; }
33665 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33666 };
33667})();
33668var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33669 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33670 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33671 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
33672 return c > 3 && r && Object.defineProperty(target, key, r), r;
33673};
33674var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
33675 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
33676 for (var r = Array(s), k = 0, i = 0; i < il; i++)
33677 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
33678 r[k] = a[j];
33679 return r;
33680};
33681
33682
33683
33684
33685
33686
33687
33688
33689
33690
33691
33692
33693var RowContainerNames;
33694(function (RowContainerNames) {
33695 RowContainerNames["LEFT"] = "left";
33696 RowContainerNames["RIGHT"] = "right";
33697 RowContainerNames["CENTER"] = "center";
33698 RowContainerNames["FULL_WIDTH"] = "fullWidth";
33699 RowContainerNames["TOP_LEFT"] = "topLeft";
33700 RowContainerNames["TOP_RIGHT"] = "topRight";
33701 RowContainerNames["TOP_CENTER"] = "topCenter";
33702 RowContainerNames["TOP_FULL_WITH"] = "topFullWidth";
33703 RowContainerNames["BOTTOM_LEFT"] = "bottomLeft";
33704 RowContainerNames["BOTTOM_RIGHT"] = "bottomRight";
33705 RowContainerNames["BOTTOM_CENTER"] = "bottomCenter";
33706 RowContainerNames["BOTTOM_FULL_WITH"] = "bottomFullWidth";
33707})(RowContainerNames || (RowContainerNames = {}));
33708var ContainerCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
33709 [RowContainerNames.CENTER, 'ag-center-cols-container'],
33710 [RowContainerNames.LEFT, 'ag-pinned-left-cols-container'],
33711 [RowContainerNames.RIGHT, 'ag-pinned-right-cols-container'],
33712 [RowContainerNames.FULL_WIDTH, 'ag-full-width-container'],
33713 [RowContainerNames.TOP_CENTER, 'ag-floating-top-container'],
33714 [RowContainerNames.TOP_LEFT, 'ag-pinned-left-floating-top'],
33715 [RowContainerNames.TOP_RIGHT, 'ag-pinned-right-floating-top'],
33716 [RowContainerNames.TOP_FULL_WITH, 'ag-floating-top-full-width-container'],
33717 [RowContainerNames.BOTTOM_CENTER, 'ag-floating-bottom-container'],
33718 [RowContainerNames.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],
33719 [RowContainerNames.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],
33720 [RowContainerNames.BOTTOM_FULL_WITH, 'ag-floating-bottom-full-width-container'],
33721]);
33722var ViewportCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
33723 [RowContainerNames.CENTER, 'ag-center-cols-viewport'],
33724 [RowContainerNames.TOP_CENTER, 'ag-floating-top-viewport'],
33725 [RowContainerNames.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],
33726]);
33727var WrapperCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
33728 [RowContainerNames.CENTER, 'ag-center-cols-clipper'],
33729]);
33730var RowContainerController = /** @class */ (function (_super) {
33731 __extends(RowContainerController, _super);
33732 function RowContainerController(name) {
33733 var _this = _super.call(this) || this;
33734 _this.name = name;
33735 return _this;
33736 }
33737 RowContainerController.prototype.postConstruct = function () {
33738 var _this = this;
33739 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
33740 this.enableRtl = this.gridOptionsWrapper.isEnableRtl();
33741 this.forContainers([RowContainerNames.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new _viewportSizeFeature__WEBPACK_IMPORTED_MODULE_5__["ViewportSizeFeature"](_this)); });
33742 this.registerWithControllersService();
33743 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
33744 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
33745 };
33746 RowContainerController.prototype.registerWithControllersService = function () {
33747 switch (this.name) {
33748 case RowContainerNames.CENTER:
33749 this.controllersService.registerCenterRowContainerCon(this);
33750 break;
33751 case RowContainerNames.LEFT:
33752 this.controllersService.registerLeftRowContainerCon(this);
33753 break;
33754 case RowContainerNames.RIGHT:
33755 this.controllersService.registerRightRowContainerCon(this);
33756 break;
33757 case RowContainerNames.TOP_CENTER:
33758 this.controllersService.registerTopCenterRowContainerCon(this);
33759 break;
33760 case RowContainerNames.TOP_LEFT:
33761 this.controllersService.registerTopLeftRowContainerCon(this);
33762 break;
33763 case RowContainerNames.TOP_RIGHT:
33764 this.controllersService.registerTopRightRowContainerCon(this);
33765 break;
33766 case RowContainerNames.BOTTOM_CENTER:
33767 this.controllersService.registerBottomCenterRowContainerCon(this);
33768 break;
33769 case RowContainerNames.BOTTOM_LEFT:
33770 this.controllersService.registerBottomLeftRowContainerCon(this);
33771 break;
33772 case RowContainerNames.BOTTOM_RIGHT:
33773 this.controllersService.registerBottomRightRowContainerCon(this);
33774 break;
33775 }
33776 };
33777 RowContainerController.prototype.forContainers = function (names, callback) {
33778 if (names.indexOf(this.name) >= 0) {
33779 callback();
33780 }
33781 };
33782 RowContainerController.prototype.getContainerElement = function () {
33783 return this.eContainer;
33784 };
33785 RowContainerController.prototype.getViewportSizeFeature = function () {
33786 return this.viewportSizeFeature;
33787 };
33788 RowContainerController.prototype.setView = function (view, eContainer, eViewport, eWrapper) {
33789 var _this = this;
33790 this.view = view;
33791 this.eContainer = eContainer;
33792 this.eViewport = eViewport;
33793 this.eWrapper = eWrapper;
33794 this.createManagedBean(new _rowContainerEventsFeature__WEBPACK_IMPORTED_MODULE_3__["RowContainerEventsFeature"](this.eContainer));
33795 this.addPreventScrollWhileDragging();
33796 var allTopNoFW = [RowContainerNames.TOP_CENTER, RowContainerNames.TOP_LEFT, RowContainerNames.TOP_RIGHT];
33797 var allBottomNoFW = [RowContainerNames.BOTTOM_CENTER, RowContainerNames.BOTTOM_LEFT, RowContainerNames.BOTTOM_RIGHT];
33798 var allMiddleNoFW = [RowContainerNames.CENTER, RowContainerNames.LEFT, RowContainerNames.RIGHT];
33799 var allNoFW = __spreadArrays(allTopNoFW, allBottomNoFW, allMiddleNoFW);
33800 var allMiddle = [RowContainerNames.CENTER, RowContainerNames.LEFT, RowContainerNames.RIGHT, RowContainerNames.FULL_WIDTH];
33801 var allCenter = [RowContainerNames.CENTER, RowContainerNames.TOP_CENTER, RowContainerNames.BOTTOM_CENTER];
33802 var allLeft = [RowContainerNames.LEFT, RowContainerNames.BOTTOM_LEFT, RowContainerNames.TOP_LEFT];
33803 var allRight = [RowContainerNames.RIGHT, RowContainerNames.BOTTOM_RIGHT, RowContainerNames.TOP_RIGHT];
33804 this.forContainers(allLeft, function () { return _this.createManagedBean(new _setPinnedLeftWidthFeature__WEBPACK_IMPORTED_MODULE_7__["SetPinnedLeftWidthFeature"](_this.eContainer)); });
33805 this.forContainers(allRight, function () { return _this.createManagedBean(new _setPinnedRightWidthFeature__WEBPACK_IMPORTED_MODULE_8__["SetPinnedRightWidthFeature"](_this.eContainer)); });
33806 this.forContainers(allMiddle, function () { return _this.createManagedBean(new _setHeightFeature__WEBPACK_IMPORTED_MODULE_9__["SetHeightFeature"](_this.eContainer, _this.eWrapper)); });
33807 this.forContainers(allNoFW, function () { return _this.createManagedBean(new _dragListenerFeature__WEBPACK_IMPORTED_MODULE_10__["DragListenerFeature"](_this.eContainer)); });
33808 this.forContainers(allCenter, function () { return _this.createManagedBean(new _centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__["CenterWidthFeature"](function (width) { return _this.eContainer.style.width = width + "px"; })); });
33809 };
33810 RowContainerController.prototype.onDisplayedColumnsChanged = function () {
33811 var _this = this;
33812 this.forContainers([RowContainerNames.CENTER], function () { return _this.onHorizontalViewportChanged(); });
33813 };
33814 RowContainerController.prototype.onDisplayedColumnsWidthChanged = function () {
33815 var _this = this;
33816 this.forContainers([RowContainerNames.CENTER], function () { return _this.onHorizontalViewportChanged(); });
33817 };
33818 RowContainerController.prototype.onScrollVisibilityChanged = function () {
33819 if (this.name !== RowContainerNames.CENTER) {
33820 return;
33821 }
33822 var visible = this.scrollVisibleService.isHorizontalScrollShowing();
33823 var scrollbarWidth = visible ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;
33824 var height = scrollbarWidth == 0 ? '100%' : "calc(100% + " + scrollbarWidth + "px)";
33825 this.view.setViewportHeight(height);
33826 };
33827 // this methods prevents the grid views from being scrolled while the dragService is being used
33828 // eg. the view should not scroll up and down while dragging rows using the rowDragComp.
33829 RowContainerController.prototype.addPreventScrollWhileDragging = function () {
33830 var _this = this;
33831 var preventScroll = function (e) {
33832 if (_this.dragService.isDragging()) {
33833 if (e.cancelable) {
33834 e.preventDefault();
33835 }
33836 }
33837 };
33838 this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });
33839 this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });
33840 };
33841 // this gets called whenever a change in the viewport, so we can inform column controller it has to work
33842 // out the virtual columns again. gets called from following locations:
33843 // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)
33844 RowContainerController.prototype.onHorizontalViewportChanged = function () {
33845 var scrollWidth = this.getCenterWidth();
33846 var scrollPosition = this.getCenterViewportScrollLeft();
33847 this.columnController.setViewportPosition(scrollWidth, scrollPosition);
33848 };
33849 RowContainerController.prototype.getCenterWidth = function () {
33850 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getInnerWidth"])(this.eViewport);
33851 };
33852 RowContainerController.prototype.getCenterViewportScrollLeft = function () {
33853 // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser
33854 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getScrollLeft"])(this.eViewport, this.enableRtl);
33855 };
33856 RowContainerController.prototype.registerViewportResizeListener = function (listener) {
33857 var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);
33858 this.addDestroyFunc(function () { return unsubscribeFromResize(); });
33859 };
33860 RowContainerController.prototype.isViewportVisible = function () {
33861 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isVisible"])(this.eViewport);
33862 };
33863 RowContainerController.prototype.isViewportHScrollShowing = function () {
33864 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isHorizontalScrollShowing"])(this.eViewport);
33865 };
33866 RowContainerController.prototype.getViewportScrollLeft = function () {
33867 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getScrollLeft"])(this.eViewport, this.enableRtl);
33868 };
33869 RowContainerController.prototype.isHorizontalScrollShowing = function () {
33870 var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();
33871 return isAlwaysShowHorizontalScroll || Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isHorizontalScrollShowing"])(this.eViewport);
33872 };
33873 RowContainerController.prototype.getViewportElement = function () {
33874 return this.eViewport;
33875 };
33876 RowContainerController.prototype.setContainerTranslateX = function (amount) {
33877 this.eContainer.style.transform = "translateX(" + amount + "px)";
33878 };
33879 RowContainerController.prototype.getHScrollPosition = function () {
33880 var res = {
33881 left: this.eViewport.scrollLeft,
33882 right: this.eViewport.scrollLeft + this.eViewport.offsetWidth
33883 };
33884 return res;
33885 };
33886 RowContainerController.prototype.setCenterViewportScrollLeft = function (value) {
33887 // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser
33888 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setScrollLeft"])(this.eViewport, value, this.enableRtl);
33889 };
33890 __decorate([
33891 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
33892 ], RowContainerController.prototype, "scrollVisibleService", void 0);
33893 __decorate([
33894 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
33895 ], RowContainerController.prototype, "dragService", void 0);
33896 __decorate([
33897 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
33898 ], RowContainerController.prototype, "controllersService", void 0);
33899 __decorate([
33900 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
33901 ], RowContainerController.prototype, "columnController", void 0);
33902 __decorate([
33903 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('resizeObserverService')
33904 ], RowContainerController.prototype, "resizeObserverService", void 0);
33905 __decorate([
33906 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
33907 ], RowContainerController.prototype, "postConstruct", null);
33908 return RowContainerController;
33909}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
33910
33911
33912
33913/***/ }),
33914/* 142 */
33915/***/ (function(module, __webpack_exports__, __webpack_require__) {
33916
33917"use strict";
33918__webpack_require__.r(__webpack_exports__);
33919/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerEventsFeature", function() { return RowContainerEventsFeature; });
33920/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
33921/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21);
33922/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
33923/* harmony import */ var _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(105);
33924/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34);
33925/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70);
33926/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51);
33927/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23);
33928/* harmony import */ var _constants_keyName__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(132);
33929/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(60);
33930/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(16);
33931/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7);
33932/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(14);
33933/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(18);
33934/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(17);
33935/**
33936 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
33937 * @version v25.3.0
33938 * @link http://www.ag-grid.com/
33939 * @license MIT
33940 */
33941var __extends = (undefined && undefined.__extends) || (function () {
33942 var extendStatics = function (d, b) {
33943 extendStatics = Object.setPrototypeOf ||
33944 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33945 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33946 return extendStatics(d, b);
33947 };
33948 return function (d, b) {
33949 extendStatics(d, b);
33950 function __() { this.constructor = d; }
33951 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33952 };
33953})();
33954var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33955 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33956 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33957 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
33958 return c > 3 && r && Object.defineProperty(target, key, r), r;
33959};
33960
33961
33962
33963
33964
33965
33966
33967
33968
33969
33970
33971
33972
33973
33974
33975var RowContainerEventsFeature = /** @class */ (function (_super) {
33976 __extends(RowContainerEventsFeature, _super);
33977 function RowContainerEventsFeature(element) {
33978 var _this = _super.call(this) || this;
33979 _this.element = element;
33980 return _this;
33981 }
33982 RowContainerEventsFeature.prototype.postConstruct = function () {
33983 this.addMouseListeners();
33984 this.mockContextMenuForIPad();
33985 this.addKeyboardEvents();
33986 };
33987 RowContainerEventsFeature.prototype.addKeyboardEvents = function () {
33988 var _this = this;
33989 var eventNames = ['keydown', 'keypress'];
33990 eventNames.forEach(function (eventName) {
33991 var listener = _this.processKeyboardEvent.bind(_this, eventName);
33992 _this.addManagedListener(_this.element, eventName, listener);
33993 });
33994 };
33995 RowContainerEventsFeature.prototype.addMouseListeners = function () {
33996 var _this = this;
33997 var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', 'mousedown'];
33998 eventNames.forEach(function (eventName) {
33999 var listener = _this.processMouseEvent.bind(_this, eventName);
34000 _this.addManagedListener(_this.element, eventName, listener);
34001 });
34002 };
34003 RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {
34004 if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||
34005 Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["isStopPropagationForAgGrid"])(mouseEvent)) {
34006 return;
34007 }
34008 var rowComp = this.getRowForEvent(mouseEvent);
34009 var cellComp = this.mouseEventService.getRenderedCellForEvent(mouseEvent);
34010 if (eventName === "contextmenu") {
34011 this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellComp);
34012 }
34013 else {
34014 if (cellComp) {
34015 cellComp.onMouseEvent(eventName, mouseEvent);
34016 }
34017 if (rowComp) {
34018 rowComp.onMouseEvent(eventName, mouseEvent);
34019 }
34020 }
34021 };
34022 RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {
34023 var _this = this;
34024 // we do NOT want this when not in iPad, otherwise we will be doing
34025 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_4__["isIOSUserAgent"])()) {
34026 return;
34027 }
34028 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__["TouchListener"](this.element);
34029 var longTapListener = function (event) {
34030 var rowComp = _this.getRowForEvent(event.touchEvent);
34031 var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);
34032 _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);
34033 };
34034 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__["TouchListener"].EVENT_LONG_TAP, longTapListener);
34035 this.addDestroyFunc(function () { return touchListener.destroy(); });
34036 };
34037 RowContainerEventsFeature.prototype.getRowForEvent = function (event) {
34038 var sourceElement = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getTarget"])(event);
34039 while (sourceElement) {
34040 var rowCon = this.gridOptionsWrapper.getDomData(sourceElement, _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_3__["RowController"].DOM_DATA_KEY_RENDERED_ROW);
34041 if (rowCon) {
34042 return rowCon;
34043 }
34044 sourceElement = sourceElement.parentElement;
34045 }
34046 return null;
34047 };
34048 RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellComp) {
34049 var rowNode = rowComp ? rowComp.getRowNode() : null;
34050 var column = cellComp ? cellComp.getColumn() : null;
34051 var value = null;
34052 if (column) {
34053 var event_1 = mouseEvent ? mouseEvent : touchEvent;
34054 cellComp.dispatchCellContextMenuEvent(event_1);
34055 value = this.valueService.getValue(column, rowNode);
34056 }
34057 // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel
34058 var gridBodyCon = this.controllersService.getGridBodyController();
34059 var anchorToElement = cellComp ? cellComp.getGui() : gridBodyCon.getGridBodyElement();
34060 if (this.contextMenuFactory) {
34061 this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);
34062 }
34063 };
34064 RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {
34065 var cellComp = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getComponentForEvent"])(this.gridOptionsWrapper, keyboardEvent, 'cellComp');
34066 var rowComp = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getComponentForEvent"])(this.gridOptionsWrapper, keyboardEvent, 'renderedRow');
34067 if (keyboardEvent.defaultPrevented) {
34068 return;
34069 }
34070 if (cellComp) {
34071 this.processCellKeyboardEvent(cellComp, eventName, keyboardEvent);
34072 }
34073 else if (rowComp && rowComp.isFullWidth()) {
34074 this.processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent);
34075 }
34076 };
34077 RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellComp, eventName, keyboardEvent) {
34078 var rowNode = cellComp.getRenderedRow().getRowNode();
34079 var column = cellComp.getColumn();
34080 var editing = cellComp.isEditing();
34081 var gridProcessingAllowed = !Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["isUserSuppressingKeyboardEvent"])(this.gridOptionsWrapper, keyboardEvent, rowNode, column, editing);
34082 if (gridProcessingAllowed) {
34083 switch (eventName) {
34084 case 'keydown':
34085 // first see if it's a scroll key, page up / down, home / end etc
34086 var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);
34087 // if not a scroll key, then we pass onto cell
34088 if (!wasScrollKey) {
34089 cellComp.onKeyDown(keyboardEvent);
34090 }
34091 // perform clipboard and undo / redo operations
34092 this.doGridOperations(keyboardEvent, cellComp);
34093 break;
34094 case 'keypress':
34095 cellComp.onKeyPress(keyboardEvent);
34096 break;
34097 }
34098 }
34099 if (eventName === 'keydown') {
34100 var cellKeyDownEvent = cellComp.createEvent(keyboardEvent, _events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_DOWN);
34101 this.eventService.dispatchEvent(cellKeyDownEvent);
34102 }
34103 if (eventName === 'keypress') {
34104 var cellKeyPressEvent = cellComp.createEvent(keyboardEvent, _events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_PRESS);
34105 this.eventService.dispatchEvent(cellKeyPressEvent);
34106 }
34107 };
34108 RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {
34109 var rowNode = rowComp.getRowNode();
34110 var focusedCell = this.focusController.getFocusedCell();
34111 var column = (focusedCell && focusedCell.column);
34112 var gridProcessingAllowed = !Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["isUserSuppressingKeyboardEvent"])(this.gridOptionsWrapper, keyboardEvent, rowNode, column, false);
34113 if (gridProcessingAllowed) {
34114 var key = keyboardEvent.key;
34115 if (eventName === 'keydown') {
34116 switch (key) {
34117 case _constants_keyName__WEBPACK_IMPORTED_MODULE_8__["KeyName"].UP:
34118 case _constants_keyName__WEBPACK_IMPORTED_MODULE_8__["KeyName"].DOWN:
34119 rowComp.onKeyboardNavigate(keyboardEvent);
34120 break;
34121 case _constants_keyName__WEBPACK_IMPORTED_MODULE_8__["KeyName"].TAB:
34122 rowComp.onTabKeyDown(keyboardEvent);
34123 default:
34124 }
34125 }
34126 }
34127 if (eventName === 'keydown') {
34128 var cellKeyDownEvent = rowComp.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_DOWN, keyboardEvent);
34129 this.eventService.dispatchEvent(cellKeyDownEvent);
34130 }
34131 if (eventName === 'keypress') {
34132 var cellKeyPressEvent = rowComp.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_PRESS, keyboardEvent);
34133 this.eventService.dispatchEvent(cellKeyPressEvent);
34134 }
34135 };
34136 RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, cellComp) {
34137 // check if ctrl or meta key pressed
34138 if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {
34139 return;
34140 }
34141 // if the cell the event came from is editing, then we do not
34142 // want to do the default shortcut keys, otherwise the editor
34143 // (eg a text field) would not be able to do the normal cut/copy/paste
34144 if (cellComp.isEditing()) {
34145 return;
34146 }
34147 // for copy / paste, we don't want to execute when the event
34148 // was from a child grid (happens in master detail)
34149 if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {
34150 return;
34151 }
34152 switch (keyboardEvent.which) {
34153 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].A:
34154 return this.onCtrlAndA(keyboardEvent);
34155 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].C:
34156 return this.onCtrlAndC(keyboardEvent);
34157 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].V:
34158 return this.onCtrlAndV();
34159 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].D:
34160 return this.onCtrlAndD(keyboardEvent);
34161 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].Z:
34162 return keyboardEvent.shiftKey ? this.undoRedoService.redo() : this.undoRedoService.undo();
34163 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].Y:
34164 return this.undoRedoService.redo();
34165 }
34166 };
34167 RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {
34168 var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeController = _a.rangeController;
34169 var PINNED_BOTTOM = _constants_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].PINNED_BOTTOM, PINNED_TOP = _constants_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].PINNED_TOP;
34170 if (rangeController && paginationProxy.isRowsToRender()) {
34171 var _b = [
34172 pinnedRowModel.isEmpty(PINNED_TOP),
34173 pinnedRowModel.isEmpty(PINNED_BOTTOM)
34174 ], isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];
34175 var floatingStart = isEmptyPinnedTop ? null : PINNED_TOP;
34176 var floatingEnd = void 0;
34177 var rowEnd = void 0;
34178 if (isEmptyPinnedBottom) {
34179 floatingEnd = null;
34180 rowEnd = this.paginationProxy.getRowCount() - 1;
34181 }
34182 else {
34183 floatingEnd = PINNED_BOTTOM;
34184 rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;
34185 }
34186 var allDisplayedColumns = this.columnController.getAllDisplayedColumns();
34187 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_11__["missingOrEmpty"])(allDisplayedColumns)) {
34188 return;
34189 }
34190 rangeController.setCellRange({
34191 rowStartIndex: 0,
34192 rowStartPinned: floatingStart,
34193 rowEndIndex: rowEnd,
34194 rowEndPinned: floatingEnd,
34195 columnStart: allDisplayedColumns[0],
34196 columnEnd: Object(_utils_array__WEBPACK_IMPORTED_MODULE_12__["last"])(allDisplayedColumns)
34197 });
34198 }
34199 event.preventDefault();
34200 };
34201 RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {
34202 if (!this.clipboardService || this.gridOptionsWrapper.isEnableCellTextSelection()) {
34203 return;
34204 }
34205 this.clipboardService.copyToClipboard();
34206 event.preventDefault();
34207 };
34208 RowContainerEventsFeature.prototype.onCtrlAndV = function () {
34209 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_13__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_14__["ModuleNames"].ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {
34210 this.clipboardService.pasteFromClipboard();
34211 }
34212 };
34213 RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {
34214 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_13__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_14__["ModuleNames"].ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {
34215 this.clipboardService.copyRangeDown();
34216 }
34217 event.preventDefault();
34218 };
34219 __decorate([
34220 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('mouseEventService')
34221 ], RowContainerEventsFeature.prototype, "mouseEventService", void 0);
34222 __decorate([
34223 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
34224 ], RowContainerEventsFeature.prototype, "valueService", void 0);
34225 __decorate([
34226 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('contextMenuFactory')
34227 ], RowContainerEventsFeature.prototype, "contextMenuFactory", void 0);
34228 __decorate([
34229 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('controllersService')
34230 ], RowContainerEventsFeature.prototype, "controllersService", void 0);
34231 __decorate([
34232 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('navigationService')
34233 ], RowContainerEventsFeature.prototype, "navigationService", void 0);
34234 __decorate([
34235 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('focusController')
34236 ], RowContainerEventsFeature.prototype, "focusController", void 0);
34237 __decorate([
34238 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('undoRedoService')
34239 ], RowContainerEventsFeature.prototype, "undoRedoService", void 0);
34240 __decorate([
34241 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
34242 ], RowContainerEventsFeature.prototype, "columnController", void 0);
34243 __decorate([
34244 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('paginationProxy')
34245 ], RowContainerEventsFeature.prototype, "paginationProxy", void 0);
34246 __decorate([
34247 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('pinnedRowModel')
34248 ], RowContainerEventsFeature.prototype, "pinnedRowModel", void 0);
34249 __decorate([
34250 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeController')
34251 ], RowContainerEventsFeature.prototype, "rangeController", void 0);
34252 __decorate([
34253 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('clipboardService')
34254 ], RowContainerEventsFeature.prototype, "clipboardService", void 0);
34255 __decorate([
34256 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
34257 ], RowContainerEventsFeature.prototype, "postConstruct", null);
34258 return RowContainerEventsFeature;
34259}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34260
34261
34262
34263/***/ }),
34264/* 143 */
34265/***/ (function(module, __webpack_exports__, __webpack_require__) {
34266
34267"use strict";
34268__webpack_require__.r(__webpack_exports__);
34269/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewportSizeFeature", function() { return ViewportSizeFeature; });
34270/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34271/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
34272/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
34273/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
34274/**
34275 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34276 * @version v25.3.0
34277 * @link http://www.ag-grid.com/
34278 * @license MIT
34279 */
34280var __extends = (undefined && undefined.__extends) || (function () {
34281 var extendStatics = function (d, b) {
34282 extendStatics = Object.setPrototypeOf ||
34283 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34284 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34285 return extendStatics(d, b);
34286 };
34287 return function (d, b) {
34288 extendStatics(d, b);
34289 function __() { this.constructor = d; }
34290 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34291 };
34292})();
34293var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34294 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34295 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34296 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34297 return c > 3 && r && Object.defineProperty(target, key, r), r;
34298};
34299
34300
34301
34302
34303// listens to changes in the center viewport size, for column and row virtualisation,
34304// and adjusts grid as necessary. there are two viewports, one for horizontal and one for
34305// vertical scrolling.
34306var ViewportSizeFeature = /** @class */ (function (_super) {
34307 __extends(ViewportSizeFeature, _super);
34308 function ViewportSizeFeature(centerContainer) {
34309 var _this = _super.call(this) || this;
34310 _this.centerContainerCon = centerContainer;
34311 return _this;
34312 }
34313 ViewportSizeFeature.prototype.postConstruct = function () {
34314 var _this = this;
34315 this.controllersService.whenReady(function () {
34316 _this.gridBodyCon = _this.controllersService.getGridBodyController();
34317 _this.listenForResize();
34318 });
34319 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));
34320 };
34321 ViewportSizeFeature.prototype.listenForResize = function () {
34322 var listener = this.onCenterViewportResized.bind(this);
34323 // centerContainer gets horizontal resizes
34324 this.centerContainerCon.registerViewportResizeListener(listener);
34325 // eBodyViewport gets vertical resizes
34326 this.gridBodyCon.registerBodyViewportResizeListener(listener);
34327 };
34328 ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {
34329 this.checkViewportAndScrolls();
34330 };
34331 ViewportSizeFeature.prototype.onCenterViewportResized = function () {
34332 if (this.centerContainerCon.isViewportVisible()) {
34333 this.checkViewportAndScrolls();
34334 var newWidth = this.centerContainerCon.getCenterWidth();
34335 if (newWidth !== this.centerWidth) {
34336 this.centerWidth = newWidth;
34337 this.columnController.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });
34338 }
34339 }
34340 else {
34341 this.bodyHeight = 0;
34342 }
34343 };
34344 // gets called every time the viewport size changes. we use this to check visibility of scrollbars
34345 // in the grid panel, and also to check size and position of viewport for row and column virtualisation.
34346 ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {
34347 // results in updating anything that depends on scroll showing
34348 this.updateScrollVisibleService();
34349 // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer
34350 this.checkBodyHeight();
34351 // check for virtual columns for ColumnController
34352 this.onHorizontalViewportChanged();
34353 this.gridBodyCon.getScrollFeature().checkScrollLeft();
34354 };
34355 ViewportSizeFeature.prototype.getBodyHeight = function () {
34356 return this.bodyHeight;
34357 };
34358 ViewportSizeFeature.prototype.checkBodyHeight = function () {
34359 var eBodyViewport = this.gridBodyCon.getBodyViewportElement();
34360 var bodyHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerHeight"])(eBodyViewport);
34361 if (this.bodyHeight !== bodyHeight) {
34362 this.bodyHeight = bodyHeight;
34363 var event_1 = {
34364 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_BODY_HEIGHT_CHANGED,
34365 api: this.gridApi,
34366 columnApi: this.columnApi
34367 };
34368 this.eventService.dispatchEvent(event_1);
34369 }
34370 };
34371 ViewportSizeFeature.prototype.updateScrollVisibleService = function () {
34372 // because of column animation (which takes 200ms), we have to do this twice.
34373 // eg if user removes cols anywhere except at the RHS, then the cols on the RHS
34374 // will animate to the left to fill the gap. this animation means just after
34375 // the cols are removed, the remaining cols are still in the original location
34376 // at the start of the animation, so pre animation the H scrollbar is still needed,
34377 // but post animation it is not.
34378 this.updateScrollVisibleServiceImpl();
34379 setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);
34380 };
34381 ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {
34382 var params = {
34383 horizontalScrollShowing: this.isHorizontalScrollShowing(),
34384 verticalScrollShowing: this.gridBodyCon.isVerticalScrollShowing()
34385 };
34386 this.scrollVisibleService.setScrollsVisible(params);
34387 // fix - gridComp should just listen to event from above
34388 this.gridBodyCon.setVerticalScrollPaddingVisible(params.verticalScrollShowing);
34389 };
34390 ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {
34391 var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();
34392 return isAlwaysShowHorizontalScroll || this.centerContainerCon.isViewportHScrollShowing();
34393 };
34394 // this gets called whenever a change in the viewport, so we can inform column controller it has to work
34395 // out the virtual columns again. gets called from following locations:
34396 // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)
34397 ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {
34398 var scrollWidth = this.centerContainerCon.getCenterWidth();
34399 var scrollPosition = this.centerContainerCon.getViewportScrollLeft();
34400 this.columnController.setViewportPosition(scrollWidth, scrollPosition);
34401 };
34402 __decorate([
34403 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
34404 ], ViewportSizeFeature.prototype, "controllersService", void 0);
34405 __decorate([
34406 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
34407 ], ViewportSizeFeature.prototype, "columnController", void 0);
34408 __decorate([
34409 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
34410 ], ViewportSizeFeature.prototype, "scrollVisibleService", void 0);
34411 __decorate([
34412 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
34413 ], ViewportSizeFeature.prototype, "columnApi", void 0);
34414 __decorate([
34415 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
34416 ], ViewportSizeFeature.prototype, "gridApi", void 0);
34417 __decorate([
34418 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34419 ], ViewportSizeFeature.prototype, "postConstruct", null);
34420 return ViewportSizeFeature;
34421}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34422
34423
34424
34425/***/ }),
34426/* 144 */
34427/***/ (function(module, __webpack_exports__, __webpack_require__) {
34428
34429"use strict";
34430__webpack_require__.r(__webpack_exports__);
34431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetPinnedLeftWidthFeature", function() { return SetPinnedLeftWidthFeature; });
34432/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34433/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
34434/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
34435/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
34436/**
34437 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34438 * @version v25.3.0
34439 * @link http://www.ag-grid.com/
34440 * @license MIT
34441 */
34442var __extends = (undefined && undefined.__extends) || (function () {
34443 var extendStatics = function (d, b) {
34444 extendStatics = Object.setPrototypeOf ||
34445 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34446 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34447 return extendStatics(d, b);
34448 };
34449 return function (d, b) {
34450 extendStatics(d, b);
34451 function __() { this.constructor = d; }
34452 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34453 };
34454})();
34455var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34456 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34457 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34458 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34459 return c > 3 && r && Object.defineProperty(target, key, r), r;
34460};
34461
34462
34463
34464
34465var SetPinnedLeftWidthFeature = /** @class */ (function (_super) {
34466 __extends(SetPinnedLeftWidthFeature, _super);
34467 function SetPinnedLeftWidthFeature(element) {
34468 var _this = _super.call(this) || this;
34469 _this.element = element;
34470 return _this;
34471 }
34472 SetPinnedLeftWidthFeature.prototype.postConstruct = function () {
34473 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));
34474 };
34475 SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {
34476 var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();
34477 var displayed = leftWidth > 0;
34478 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.element, displayed);
34479 if (displayed) {
34480 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(this.element, leftWidth);
34481 }
34482 };
34483 __decorate([
34484 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedWidthService')
34485 ], SetPinnedLeftWidthFeature.prototype, "pinnedWidthService", void 0);
34486 __decorate([
34487 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34488 ], SetPinnedLeftWidthFeature.prototype, "postConstruct", null);
34489 return SetPinnedLeftWidthFeature;
34490}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34491
34492
34493
34494/***/ }),
34495/* 145 */
34496/***/ (function(module, __webpack_exports__, __webpack_require__) {
34497
34498"use strict";
34499__webpack_require__.r(__webpack_exports__);
34500/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetPinnedRightWidthFeature", function() { return SetPinnedRightWidthFeature; });
34501/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
34502/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
34503/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
34504/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
34505/**
34506 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34507 * @version v25.3.0
34508 * @link http://www.ag-grid.com/
34509 * @license MIT
34510 */
34511var __extends = (undefined && undefined.__extends) || (function () {
34512 var extendStatics = function (d, b) {
34513 extendStatics = Object.setPrototypeOf ||
34514 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34515 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34516 return extendStatics(d, b);
34517 };
34518 return function (d, b) {
34519 extendStatics(d, b);
34520 function __() { this.constructor = d; }
34521 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34522 };
34523})();
34524var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34525 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34526 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34527 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34528 return c > 3 && r && Object.defineProperty(target, key, r), r;
34529};
34530
34531
34532
34533
34534var SetPinnedRightWidthFeature = /** @class */ (function (_super) {
34535 __extends(SetPinnedRightWidthFeature, _super);
34536 function SetPinnedRightWidthFeature(element) {
34537 var _this = _super.call(this) || this;
34538 _this.element = element;
34539 return _this;
34540 }
34541 SetPinnedRightWidthFeature.prototype.postConstruct = function () {
34542 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));
34543 };
34544 SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {
34545 var rightWidth = this.pinnedWidthService.getPinnedRightWidth();
34546 var displayed = rightWidth > 0;
34547 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.element, displayed);
34548 if (displayed) {
34549 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.element, rightWidth);
34550 }
34551 };
34552 __decorate([
34553 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedWidthService')
34554 ], SetPinnedRightWidthFeature.prototype, "pinnedWidthService", void 0);
34555 __decorate([
34556 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
34557 ], SetPinnedRightWidthFeature.prototype, "postConstruct", null);
34558 return SetPinnedRightWidthFeature;
34559}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
34560
34561
34562
34563/***/ }),
34564/* 146 */
34565/***/ (function(module, __webpack_exports__, __webpack_require__) {
34566
34567"use strict";
34568__webpack_require__.r(__webpack_exports__);
34569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetHeightFeature", function() { return SetHeightFeature; });
34570/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34571/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
34572/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
34573/**
34574 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34575 * @version v25.3.0
34576 * @link http://www.ag-grid.com/
34577 * @license MIT
34578 */
34579var __extends = (undefined && undefined.__extends) || (function () {
34580 var extendStatics = function (d, b) {
34581 extendStatics = Object.setPrototypeOf ||
34582 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34583 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34584 return extendStatics(d, b);
34585 };
34586 return function (d, b) {
34587 extendStatics(d, b);
34588 function __() { this.constructor = d; }
34589 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34590 };
34591})();
34592var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34593 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34594 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34595 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34596 return c > 3 && r && Object.defineProperty(target, key, r), r;
34597};
34598
34599
34600
34601var SetHeightFeature = /** @class */ (function (_super) {
34602 __extends(SetHeightFeature, _super);
34603 function SetHeightFeature(eContainer, eWrapper) {
34604 var _this = _super.call(this) || this;
34605 _this.eContainer = eContainer;
34606 _this.eWrapper = eWrapper;
34607 return _this;
34608 }
34609 SetHeightFeature.prototype.postConstruct = function () {
34610 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));
34611 };
34612 SetHeightFeature.prototype.onHeightChanged = function () {
34613 var height = this.maxDivHeightScaler.getUiContainerHeight();
34614 var heightString = height != null ? height + "px" : "";
34615 this.eContainer.style.height = heightString;
34616 if (this.eWrapper) {
34617 this.eWrapper.style.height = heightString;
34618 }
34619 };
34620 __decorate([
34621 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("rowContainerHeightService")
34622 ], SetHeightFeature.prototype, "maxDivHeightScaler", void 0);
34623 __decorate([
34624 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34625 ], SetHeightFeature.prototype, "postConstruct", null);
34626 return SetHeightFeature;
34627}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34628
34629
34630
34631/***/ }),
34632/* 147 */
34633/***/ (function(module, __webpack_exports__, __webpack_require__) {
34634
34635"use strict";
34636__webpack_require__.r(__webpack_exports__);
34637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragListenerFeature", function() { return DragListenerFeature; });
34638/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34639/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
34640/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
34641/**
34642 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34643 * @version v25.3.0
34644 * @link http://www.ag-grid.com/
34645 * @license MIT
34646 */
34647var __extends = (undefined && undefined.__extends) || (function () {
34648 var extendStatics = function (d, b) {
34649 extendStatics = Object.setPrototypeOf ||
34650 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34651 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34652 return extendStatics(d, b);
34653 };
34654 return function (d, b) {
34655 extendStatics(d, b);
34656 function __() { this.constructor = d; }
34657 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34658 };
34659})();
34660var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34661 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34662 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34663 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34664 return c > 3 && r && Object.defineProperty(target, key, r), r;
34665};
34666
34667
34668
34669var DragListenerFeature = /** @class */ (function (_super) {
34670 __extends(DragListenerFeature, _super);
34671 function DragListenerFeature(eContainer) {
34672 var _this = _super.call(this) || this;
34673 _this.eContainer = eContainer;
34674 return _this;
34675 }
34676 DragListenerFeature.prototype.postConstruct = function () {
34677 var _this = this;
34678 if (!this.gridOptionsWrapper.isEnableRangeSelection() || // no range selection if no property
34679 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_1__["missing"])(this.rangeController) // no range selection if not enterprise version
34680 ) {
34681 return;
34682 }
34683 var params = {
34684 eElement: this.eContainer,
34685 onDragStart: this.rangeController.onDragStart.bind(this.rangeController),
34686 onDragStop: this.rangeController.onDragStop.bind(this.rangeController),
34687 onDragging: this.rangeController.onDragging.bind(this.rangeController)
34688 };
34689 this.dragService.addDragSource(params);
34690 this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });
34691 };
34692 __decorate([
34693 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeController')
34694 ], DragListenerFeature.prototype, "rangeController", void 0);
34695 __decorate([
34696 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragService')
34697 ], DragListenerFeature.prototype, "dragService", void 0);
34698 __decorate([
34699 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
34700 ], DragListenerFeature.prototype, "postConstruct", null);
34701 return DragListenerFeature;
34702}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34703
34704
34705
34706/***/ }),
34707/* 148 */
34708/***/ (function(module, __webpack_exports__, __webpack_require__) {
34709
34710"use strict";
34711__webpack_require__.r(__webpack_exports__);
34712/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return GridApi; });
34713/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
34714/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
34715/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
34716/* harmony import */ var _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(149);
34717/* harmony import */ var _entities_sideBar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(100);
34718/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
34719/* harmony import */ var _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(150);
34720/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18);
34721/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);
34722/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
34723/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(26);
34724/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(15);
34725/**
34726 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34727 * @version v25.3.0
34728 * @link http://www.ag-grid.com/
34729 * @license MIT
34730 */
34731var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34732 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34733 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34734 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34735 return c > 3 && r && Object.defineProperty(target, key, r), r;
34736};
34737
34738
34739
34740
34741
34742
34743
34744
34745
34746
34747
34748
34749var GridApi = /** @class */ (function () {
34750 function GridApi() {
34751 this.detailGridInfoMap = {};
34752 this.destroyCalled = false;
34753 }
34754 GridApi.prototype.registerGridComp = function (gridBodyComp) {
34755 this.gridBodyComp = gridBodyComp;
34756 };
34757 GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {
34758 this.overlayWrapperComp = overlayWrapperComp;
34759 };
34760 GridApi.prototype.registerGridCompController = function (gridCompController) {
34761 this.gridCompController = gridCompController;
34762 };
34763 GridApi.prototype.registerHeaderRootComp = function (headerRootComp) {
34764 this.headerRootComp = headerRootComp;
34765 };
34766 GridApi.prototype.registerSideBarComp = function (sideBarComp) {
34767 this.sideBarComp = sideBarComp;
34768 };
34769 GridApi.prototype.init = function () {
34770 var _this = this;
34771 switch (this.rowModel.getType()) {
34772 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE:
34773 this.clientSideRowModel = this.rowModel;
34774 break;
34775 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE:
34776 this.infiniteRowModel = this.rowModel;
34777 break;
34778 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE:
34779 this.serverSideRowModel = this.rowModel;
34780 break;
34781 }
34782 this.controllersService.whenReady(function () {
34783 _this.gridBodyCon = _this.controllersService.getGridBodyController();
34784 });
34785 };
34786 /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */
34787 GridApi.prototype.__getAlignedGridService = function () {
34788 return this.alignedGridsService;
34789 };
34790 GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {
34791 this.detailGridInfoMap[id] = gridInfo;
34792 };
34793 GridApi.prototype.removeDetailGridInfo = function (id) {
34794 this.detailGridInfoMap[id] = undefined;
34795 };
34796 GridApi.prototype.getDetailGridInfo = function (id) {
34797 return this.detailGridInfoMap[id];
34798 };
34799 GridApi.prototype.forEachDetailGridInfo = function (callback) {
34800 var index = 0;
34801 Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["iterateObject"])(this.detailGridInfoMap, function (id, gridInfo) {
34802 // check for undefined, as old references will still be lying around
34803 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(gridInfo)) {
34804 callback(gridInfo, index);
34805 index++;
34806 }
34807 });
34808 };
34809 GridApi.prototype.getDataAsCsv = function (params) {
34810 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].CsvExportModule, 'api.getDataAsCsv')) {
34811 return this.csvCreator.getDataAsCsv(params);
34812 }
34813 };
34814 GridApi.prototype.exportDataAsCsv = function (params) {
34815 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].CsvExportModule, 'api.exportDataAsCSv')) {
34816 this.csvCreator.exportDataAsCsv(params);
34817 }
34818 };
34819 GridApi.prototype.getDataAsExcel = function (params) {
34820 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.getDataAsExcel')) {
34821 var exportMode = (params && params.exportMode) || 'xlsx';
34822 if (this.excelCreator.getFactoryMode(exportMode) === _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET) {
34823 console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');
34824 return;
34825 }
34826 return this.excelCreator.getDataAsExcel(params);
34827 }
34828 };
34829 GridApi.prototype.exportDataAsExcel = function (params) {
34830 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.exportDataAsExcel')) {
34831 var exportMode = (params && params.exportMode) || 'xlsx';
34832 if (this.excelCreator.getFactoryMode(exportMode) === _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET) {
34833 console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');
34834 return;
34835 }
34836 this.excelCreator.exportDataAsExcel(params);
34837 }
34838 };
34839 GridApi.prototype.getSheetDataForExcel = function (params) {
34840 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.getSheetDataForExcel')) {
34841 var exportMode = (params && params.exportMode) || 'xlsx';
34842 this.excelCreator.setFactoryMode(_interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET, exportMode);
34843 return this.excelCreator.getSheetDataForExcel(params);
34844 }
34845 };
34846 GridApi.prototype.getMultipleSheetsAsExcel = function (params) {
34847 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.getMultipleSheetsAsExcel')) {
34848 return this.excelCreator.getMultipleSheetsAsExcel(params);
34849 }
34850 };
34851 GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {
34852 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.exportMultipleSheetsAsExcel')) {
34853 return this.excelCreator.exportMultipleSheetsAsExcel(params);
34854 }
34855 };
34856 /** @deprecated */
34857 GridApi.prototype.setEnterpriseDatasource = function (datasource) {
34858 console.warn("ag-grid: since version 18.x, api.setEnterpriseDatasource() should be replaced with api.setServerSideDatasource()");
34859 this.setServerSideDatasource(datasource);
34860 };
34861 GridApi.prototype.setGridAriaProperty = function (property, value) {
34862 if (!property) {
34863 return;
34864 }
34865 var eGrid = this.gridBodyComp.getGui();
34866 var ariaProperty = "aria-" + property;
34867 if (value === null) {
34868 eGrid.removeAttribute(ariaProperty);
34869 }
34870 else {
34871 eGrid.setAttribute(ariaProperty, value);
34872 }
34873 };
34874 GridApi.prototype.setServerSideDatasource = function (datasource) {
34875 if (this.serverSideRowModel) {
34876 // should really have an IEnterpriseRowModel interface, so we are not casting to any
34877 this.serverSideRowModel.setDatasource(datasource);
34878 }
34879 else {
34880 console.warn("AG Grid: you can only use an enterprise datasource when gridOptions.rowModelType is '" + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE + "'");
34881 }
34882 };
34883 GridApi.prototype.setDatasource = function (datasource) {
34884 if (this.gridOptionsWrapper.isRowModelInfinite()) {
34885 this.rowModel.setDatasource(datasource);
34886 }
34887 else {
34888 console.warn("AG Grid: you can only use a datasource when gridOptions.rowModelType is '" + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE + "'");
34889 }
34890 };
34891 GridApi.prototype.setViewportDatasource = function (viewportDatasource) {
34892 if (this.gridOptionsWrapper.isRowModelViewport()) {
34893 // this is bad coding, because it's using an interface that's exposed in the enterprise.
34894 // really we should create an interface in the core for viewportDatasource and let
34895 // the enterprise implement it, rather than casting to 'any' here
34896 this.rowModel.setViewportDatasource(viewportDatasource);
34897 }
34898 else {
34899 console.warn("AG Grid: you can only use a viewport datasource when gridOptions.rowModelType is '" + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_VIEWPORT + "'");
34900 }
34901 };
34902 GridApi.prototype.setRowData = function (rowData) {
34903 if (this.gridOptionsWrapper.isRowModelDefault()) {
34904 if (this.gridOptionsWrapper.isImmutableData()) {
34905 var transactionAndMap = this.immutableService.createTransactionForRowData(rowData);
34906 if (!transactionAndMap) {
34907 return;
34908 }
34909 var transaction = transactionAndMap[0], orderIdMap = transactionAndMap[1];
34910 var nodeTransaction = this.clientSideRowModel.updateRowData(transaction, orderIdMap);
34911 // need to force updating of full width rows - note this wouldn't be necessary the full width cell comp listened
34912 // to the data change event on the row node and refreshed itself.
34913 if (nodeTransaction) {
34914 this.rowRenderer.refreshFullWidthRows(nodeTransaction.update);
34915 }
34916 }
34917 else {
34918 this.selectionController.reset();
34919 this.clientSideRowModel.setRowData(rowData);
34920 }
34921 }
34922 else {
34923 console.warn('cannot call setRowData unless using normal row model');
34924 }
34925 };
34926 /** @deprecated */
34927 GridApi.prototype.setFloatingTopRowData = function (rows) {
34928 console.warn('AG Grid: since v12, api.setFloatingTopRowData() is now api.setPinnedTopRowData()');
34929 this.setPinnedTopRowData(rows);
34930 };
34931 /** @deprecated */
34932 GridApi.prototype.setFloatingBottomRowData = function (rows) {
34933 console.warn('AG Grid: since v12, api.setFloatingBottomRowData() is now api.setPinnedBottomRowData()');
34934 this.setPinnedBottomRowData(rows);
34935 };
34936 /** @deprecated */
34937 GridApi.prototype.getFloatingTopRowCount = function () {
34938 console.warn('AG Grid: since v12, api.getFloatingTopRowCount() is now api.getPinnedTopRowCount()');
34939 return this.getPinnedTopRowCount();
34940 };
34941 /** @deprecated */
34942 GridApi.prototype.getFloatingBottomRowCount = function () {
34943 console.warn('AG Grid: since v12, api.getFloatingBottomRowCount() is now api.getPinnedBottomRowCount()');
34944 return this.getPinnedBottomRowCount();
34945 };
34946 /** @deprecated */
34947 GridApi.prototype.getFloatingTopRow = function (index) {
34948 console.warn('AG Grid: since v12, api.getFloatingTopRow() is now api.getPinnedTopRow()');
34949 return this.getPinnedTopRow(index);
34950 };
34951 /** @deprecated */
34952 GridApi.prototype.getFloatingBottomRow = function (index) {
34953 console.warn('AG Grid: since v12, api.getFloatingBottomRow() is now api.getPinnedBottomRow()');
34954 return this.getPinnedBottomRow(index);
34955 };
34956 GridApi.prototype.setPinnedTopRowData = function (rows) {
34957 this.pinnedRowModel.setPinnedTopRowData(rows);
34958 };
34959 GridApi.prototype.setPinnedBottomRowData = function (rows) {
34960 this.pinnedRowModel.setPinnedBottomRowData(rows);
34961 };
34962 GridApi.prototype.getPinnedTopRowCount = function () {
34963 return this.pinnedRowModel.getPinnedTopRowCount();
34964 };
34965 GridApi.prototype.getPinnedBottomRowCount = function () {
34966 return this.pinnedRowModel.getPinnedBottomRowCount();
34967 };
34968 GridApi.prototype.getPinnedTopRow = function (index) {
34969 return this.pinnedRowModel.getPinnedTopRow(index);
34970 };
34971 GridApi.prototype.getPinnedBottomRow = function (index) {
34972 return this.pinnedRowModel.getPinnedBottomRow(index);
34973 };
34974 GridApi.prototype.setColumnDefs = function (colDefs, source) {
34975 if (source === void 0) { source = "api"; }
34976 this.columnController.setColumnDefs(colDefs, source);
34977 };
34978 GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {
34979 if (source === void 0) { source = "api"; }
34980 this.gridOptionsWrapper.setProperty('autoGroupColumnDef', colDef, true);
34981 };
34982 GridApi.prototype.expireValueCache = function () {
34983 this.valueCache.expire();
34984 };
34985 GridApi.prototype.getVerticalPixelRange = function () {
34986 return this.gridBodyCon.getScrollFeature().getVScrollPosition();
34987 };
34988 GridApi.prototype.getHorizontalPixelRange = function () {
34989 return this.gridBodyCon.getScrollFeature().getHScrollPosition();
34990 };
34991 GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {
34992 this.gridOptionsWrapper.setProperty('alwaysShowHorizontalScroll', show);
34993 };
34994 GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {
34995 this.gridOptionsWrapper.setProperty('alwaysShowVerticalScroll', show);
34996 };
34997 GridApi.prototype.refreshToolPanel = function () {
34998 if (!this.sideBarComp) {
34999 return;
35000 }
35001 this.sideBarComp.refresh();
35002 };
35003 GridApi.prototype.refreshCells = function (params) {
35004 if (params === void 0) { params = {}; }
35005 if (Array.isArray(params)) {
35006 // the old version of refreshCells() took an array of rowNodes for the first argument
35007 console.warn('since AG Grid v11.1, refreshCells() now takes parameters, please see the documentation.');
35008 return;
35009 }
35010 this.rowRenderer.refreshCells(params);
35011 };
35012 GridApi.prototype.flashCells = function (params) {
35013 if (params === void 0) { params = {}; }
35014 this.rowRenderer.flashCells(params);
35015 };
35016 GridApi.prototype.redrawRows = function (params) {
35017 if (params === void 0) { params = {}; }
35018 var rowNodes = params ? params.rowNodes : undefined;
35019 this.rowRenderer.redrawRows(rowNodes);
35020 };
35021 /** @deprecated */
35022 GridApi.prototype.refreshView = function () {
35023 console.warn('AG Grid: since v11.1, refreshView() is deprecated, please call refreshCells() or redrawRows() instead');
35024 this.redrawRows();
35025 };
35026 /** @deprecated */
35027 GridApi.prototype.refreshRows = function (rowNodes) {
35028 console.warn('since AG Grid v11.1, refreshRows() is deprecated, please use refreshCells({rowNodes: rows}) or redrawRows({rowNodes: rows}) instead');
35029 this.refreshCells({ rowNodes: rowNodes });
35030 };
35031 /** @deprecated */
35032 GridApi.prototype.rowDataChanged = function (rows) {
35033 console.warn('AG Grid: rowDataChanged is deprecated, either call refreshView() to refresh everything, or call rowNode.setRowData(newData) to set value on a particular node');
35034 this.redrawRows();
35035 };
35036 /** @deprecated */
35037 GridApi.prototype.softRefreshView = function () {
35038 console.error('AG Grid: since v16, softRefreshView() is no longer supported. Please check the documentation on how to refresh.');
35039 };
35040 /** @deprecated */
35041 GridApi.prototype.refreshGroupRows = function () {
35042 console.warn('AG Grid: since v11.1, refreshGroupRows() is no longer supported, call refreshCells() instead. ' +
35043 'Because refreshCells() now does dirty checking, it will only refresh cells that have changed, so it should ' +
35044 'not be necessary to only refresh the group rows.');
35045 this.refreshCells();
35046 };
35047 GridApi.prototype.setFunctionsReadOnly = function (readOnly) {
35048 this.gridOptionsWrapper.setProperty('functionsReadOnly', readOnly);
35049 };
35050 GridApi.prototype.refreshHeader = function () {
35051 this.headerRootComp.refreshHeader();
35052 };
35053 GridApi.prototype.isAnyFilterPresent = function () {
35054 return this.filterManager.isAnyFilterPresent();
35055 };
35056 /** @deprecated */
35057 GridApi.prototype.isAdvancedFilterPresent = function () {
35058 console.warn('AG Grid: isAdvancedFilterPresent() is deprecated, please use isColumnFilterPresent()');
35059 return this.isColumnFilterPresent();
35060 };
35061 GridApi.prototype.isColumnFilterPresent = function () {
35062 return this.filterManager.isAdvancedFilterPresent();
35063 };
35064 GridApi.prototype.isQuickFilterPresent = function () {
35065 return this.filterManager.isQuickFilterPresent();
35066 };
35067 GridApi.prototype.getModel = function () {
35068 return this.rowModel;
35069 };
35070 GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded) {
35071 if (rowNode) {
35072 rowNode.setExpanded(expanded);
35073 }
35074 };
35075 GridApi.prototype.onGroupExpandedOrCollapsed = function (deprecated_refreshFromIndex) {
35076 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35077 console.warn('AG Grid: cannot call onGroupExpandedOrCollapsed unless using normal row model');
35078 }
35079 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(deprecated_refreshFromIndex)) {
35080 console.warn('AG Grid: api.onGroupExpandedOrCollapsed - refreshFromIndex parameter is no longer used, the grid will refresh all rows');
35081 }
35082 // we don't really want the user calling this if only one rowNode was expanded, instead they should be
35083 // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole
35084 // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,
35085 // and thus the expand icon in the group cell won't get 'opened' or 'closed'.
35086 this.clientSideRowModel.refreshModel({ step: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].MAP });
35087 };
35088 GridApi.prototype.refreshInMemoryRowModel = function (step) {
35089 console.warn("ag-grid: since version 18.x, api.refreshInMemoryRowModel() should be replaced with api.refreshClientSideRowModel()");
35090 this.refreshClientSideRowModel(step);
35091 };
35092 GridApi.prototype.refreshClientSideRowModel = function (step) {
35093 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35094 console.warn('cannot call refreshClientSideRowModel unless using normal row model');
35095 }
35096 var paramsStep = _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].EVERYTHING;
35097 var stepsMapped = {
35098 group: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].EVERYTHING,
35099 filter: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].FILTER,
35100 map: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].MAP,
35101 aggregate: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].AGGREGATE,
35102 sort: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].SORT,
35103 pivot: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].PIVOT
35104 };
35105 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(step)) {
35106 paramsStep = stepsMapped[step];
35107 }
35108 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(paramsStep)) {
35109 console.error("AG Grid: invalid step " + step + ", available steps are " + Object.keys(stepsMapped).join(', '));
35110 return;
35111 }
35112 var modelParams = {
35113 step: paramsStep,
35114 keepRenderedRows: true,
35115 animate: true,
35116 keepEditingRows: true
35117 };
35118 this.clientSideRowModel.refreshModel(modelParams);
35119 };
35120 GridApi.prototype.isAnimationFrameQueueEmpty = function () {
35121 return this.animationFrameService.isQueueEmpty();
35122 };
35123 GridApi.prototype.getRowNode = function (id) {
35124 return this.rowModel.getRowNode(id);
35125 };
35126 GridApi.prototype.getSizesForCurrentTheme = function () {
35127 return {
35128 rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),
35129 headerHeight: this.gridOptionsWrapper.getHeaderHeight()
35130 };
35131 };
35132 GridApi.prototype.expandAll = function () {
35133 if (this.clientSideRowModel) {
35134 this.clientSideRowModel.expandOrCollapseAll(true);
35135 }
35136 else if (this.serverSideRowModel) {
35137 this.serverSideRowModel.expandAll(true);
35138 }
35139 else {
35140 console.warn('AG Grid: expandAll only works with Client Side Row Model and Server Side Row Model');
35141 }
35142 };
35143 GridApi.prototype.collapseAll = function () {
35144 if (this.clientSideRowModel) {
35145 this.clientSideRowModel.expandOrCollapseAll(false);
35146 }
35147 else if (this.serverSideRowModel) {
35148 this.serverSideRowModel.expandAll(false);
35149 }
35150 else {
35151 console.warn('AG Grid: collapseAll only works with Client Side Row Model and Server Side Row Model');
35152 }
35153 };
35154 GridApi.prototype.getToolPanelInstance = function (id) {
35155 if (!this.sideBarComp) {
35156 console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');
35157 return;
35158 }
35159 return this.sideBarComp.getToolPanelInstance(id);
35160 };
35161 GridApi.prototype.addVirtualRowListener = function (eventName, rowIndex, callback) {
35162 if (typeof eventName !== 'string') {
35163 console.warn('AG Grid: addVirtualRowListener is deprecated, please use addRenderedRowListener.');
35164 }
35165 this.addRenderedRowListener(eventName, rowIndex, callback);
35166 };
35167 GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {
35168 if (eventName === 'virtualRowSelected') {
35169 console.warn("AG Grid: event virtualRowSelected is deprecated, to register for individual row\n selection events, add a listener directly to the row node.");
35170 }
35171 this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);
35172 };
35173 GridApi.prototype.setQuickFilter = function (newFilter) {
35174 this.filterManager.setQuickFilter(newFilter);
35175 };
35176 GridApi.prototype.selectIndex = function (index, tryMulti, suppressEvents) {
35177 console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');
35178 if (suppressEvents) {
35179 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35180 }
35181 this.selectionController.selectIndex(index, tryMulti);
35182 };
35183 GridApi.prototype.deselectIndex = function (index, suppressEvents) {
35184 if (suppressEvents === void 0) { suppressEvents = false; }
35185 console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');
35186 if (suppressEvents) {
35187 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35188 }
35189 this.selectionController.deselectIndex(index);
35190 };
35191 GridApi.prototype.selectNode = function (node, tryMulti, suppressEvents) {
35192 if (tryMulti === void 0) { tryMulti = false; }
35193 if (suppressEvents === void 0) { suppressEvents = false; }
35194 console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');
35195 if (suppressEvents) {
35196 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35197 }
35198 node.setSelectedParams({ newValue: true, clearSelection: !tryMulti });
35199 };
35200 GridApi.prototype.deselectNode = function (node, suppressEvents) {
35201 if (suppressEvents === void 0) { suppressEvents = false; }
35202 console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');
35203 if (suppressEvents) {
35204 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35205 }
35206 node.setSelectedParams({ newValue: false });
35207 };
35208 GridApi.prototype.selectAll = function () {
35209 this.selectionController.selectAllRowNodes();
35210 };
35211 GridApi.prototype.deselectAll = function () {
35212 this.selectionController.deselectAllRowNodes();
35213 };
35214 GridApi.prototype.selectAllFiltered = function () {
35215 this.selectionController.selectAllRowNodes(true);
35216 };
35217 GridApi.prototype.deselectAllFiltered = function () {
35218 this.selectionController.deselectAllRowNodes(true);
35219 };
35220 GridApi.prototype.recomputeAggregates = function () {
35221 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35222 console.warn('cannot call recomputeAggregates unless using normal row model');
35223 }
35224 console.warn("recomputeAggregates is deprecated, please call api.refreshClientSideRowModel('aggregate') instead");
35225 this.clientSideRowModel.refreshModel({ step: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].AGGREGATE });
35226 };
35227 GridApi.prototype.sizeColumnsToFit = function () {
35228 this.gridBodyCon.sizeColumnsToFit();
35229 };
35230 GridApi.prototype.showLoadingOverlay = function () {
35231 this.overlayWrapperComp.showLoadingOverlay();
35232 };
35233 GridApi.prototype.showNoRowsOverlay = function () {
35234 this.overlayWrapperComp.showNoRowsOverlay();
35235 };
35236 GridApi.prototype.hideOverlay = function () {
35237 this.overlayWrapperComp.hideOverlay();
35238 };
35239 GridApi.prototype.isNodeSelected = function (node) {
35240 console.warn('AG Grid: no need to call api.isNodeSelected(), just call node.isSelected() instead');
35241 return node.isSelected();
35242 };
35243 GridApi.prototype.getSelectedNodesById = function () {
35244 console.error('AG Grid: since version 3.4, getSelectedNodesById no longer exists, use getSelectedNodes() instead');
35245 return null;
35246 };
35247 GridApi.prototype.getSelectedNodes = function () {
35248 return this.selectionController.getSelectedNodes();
35249 };
35250 GridApi.prototype.getSelectedRows = function () {
35251 return this.selectionController.getSelectedRows();
35252 };
35253 GridApi.prototype.getBestCostNodeSelection = function () {
35254 return this.selectionController.getBestCostNodeSelection();
35255 };
35256 GridApi.prototype.getRenderedNodes = function () {
35257 return this.rowRenderer.getRenderedNodes();
35258 };
35259 GridApi.prototype.ensureColIndexVisible = function (index) {
35260 console.warn('AG Grid: ensureColIndexVisible(index) no longer supported, use ensureColumnVisible(colKey) instead.');
35261 };
35262 GridApi.prototype.ensureColumnVisible = function (key) {
35263 this.gridBodyCon.getScrollFeature().ensureColumnVisible(key);
35264 };
35265 // Valid values for position are bottom, middle and top
35266 GridApi.prototype.ensureIndexVisible = function (index, position) {
35267 this.gridBodyCon.getScrollFeature().ensureIndexVisible(index, position);
35268 };
35269 // Valid values for position are bottom, middle and top
35270 GridApi.prototype.ensureNodeVisible = function (comparator, position) {
35271 if (position === void 0) { position = null; }
35272 this.gridBodyCon.getScrollFeature().ensureNodeVisible(comparator, position);
35273 };
35274 GridApi.prototype.forEachLeafNode = function (callback) {
35275 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35276 console.warn('cannot call forEachNode unless using normal row model');
35277 }
35278 this.clientSideRowModel.forEachLeafNode(callback);
35279 };
35280 GridApi.prototype.forEachNode = function (callback) {
35281 this.rowModel.forEachNode(callback);
35282 };
35283 GridApi.prototype.forEachNodeAfterFilter = function (callback) {
35284 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35285 console.warn('cannot call forEachNodeAfterFilter unless using normal row model');
35286 }
35287 this.clientSideRowModel.forEachNodeAfterFilter(callback);
35288 };
35289 GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {
35290 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35291 console.warn('cannot call forEachNodeAfterFilterAndSort unless using normal row model');
35292 }
35293 this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);
35294 };
35295 GridApi.prototype.getFilterApiForColDef = function (colDef) {
35296 console.warn('ag-grid API method getFilterApiForColDef deprecated, use getFilterInstance instead');
35297 return this.getFilterInstance(colDef);
35298 };
35299 GridApi.prototype.getFilterInstance = function (key, callback) {
35300 var column = this.columnController.getPrimaryColumn(key);
35301 if (column) {
35302 var filterPromise = this.filterManager.getFilterComponent(column, 'NO_UI');
35303 var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });
35304 if (callback) {
35305 if (currentValue) {
35306 setTimeout(callback, 0, currentValue);
35307 }
35308 else if (filterPromise) {
35309 filterPromise.then(callback);
35310 }
35311 }
35312 return currentValue;
35313 }
35314 };
35315 GridApi.prototype.getFilterApi = function (key) {
35316 console.warn('AG Grid: getFilterApi is deprecated, use getFilterInstance instead');
35317 return this.getFilterInstance(key);
35318 };
35319 GridApi.prototype.destroyFilter = function (key) {
35320 var column = this.columnController.getPrimaryColumn(key);
35321 if (column) {
35322 return this.filterManager.destroyFilter(column, "filterDestroyed");
35323 }
35324 };
35325 GridApi.prototype.getStatusPanel = function (key) {
35326 if (this.statusBarService) {
35327 return this.statusBarService.getStatusPanel(key);
35328 }
35329 };
35330 GridApi.prototype.getColumnDef = function (key) {
35331 var column = this.columnController.getPrimaryColumn(key);
35332 if (column) {
35333 return column.getColDef();
35334 }
35335 return null;
35336 };
35337 GridApi.prototype.getColumnDefs = function () { return this.columnController.getColumnDefs(); };
35338 GridApi.prototype.onFilterChanged = function () {
35339 this.filterManager.onFilterChanged();
35340 };
35341 GridApi.prototype.onSortChanged = function () {
35342 this.sortController.onSortChanged();
35343 };
35344 GridApi.prototype.setSortModel = function (sortModel, source) {
35345 if (source === void 0) { source = "api"; }
35346 console.warn('AG Grid: as of version 24.0.0, setSortModel() is deprecated, sort information is now part of Column State. Please use columnApi.applyColumnState() instead.');
35347 var columnState = [];
35348 if (sortModel) {
35349 sortModel.forEach(function (item, index) {
35350 columnState.push({
35351 colId: item.colId,
35352 sort: item.sort,
35353 sortIndex: index
35354 });
35355 });
35356 }
35357 this.columnController.applyColumnState({ state: columnState, defaultState: { sort: null } });
35358 };
35359 GridApi.prototype.getSortModel = function () {
35360 console.warn('AG Grid: as of version 24.0.0, getSortModel() is deprecated, sort information is now part of Column State. Please use columnApi.getColumnState() instead.');
35361 var columnState = this.columnController.getColumnState();
35362 var filteredStates = columnState.filter(function (item) { return item.sort != null; });
35363 var indexes = {};
35364 filteredStates.forEach(function (state) {
35365 var id = state.colId;
35366 var sortIndex = state.sortIndex;
35367 indexes[id] = sortIndex;
35368 });
35369 var res = filteredStates.map(function (s) {
35370 return { colId: s.colId, sort: s.sort };
35371 });
35372 res.sort(function (a, b) { return indexes[a.colId] - indexes[b.colId]; });
35373 return res;
35374 };
35375 GridApi.prototype.setFilterModel = function (model) {
35376 this.filterManager.setFilterModel(model);
35377 };
35378 GridApi.prototype.getFilterModel = function () {
35379 return this.filterManager.getFilterModel();
35380 };
35381 GridApi.prototype.getFocusedCell = function () {
35382 return this.focusController.getFocusedCell();
35383 };
35384 GridApi.prototype.clearFocusedCell = function () {
35385 return this.focusController.clearFocusedCell();
35386 };
35387 GridApi.prototype.setFocusedCell = function (rowIndex, colKey, floating) {
35388 this.focusController.setFocusedCell(rowIndex, colKey, floating, true);
35389 };
35390 GridApi.prototype.setSuppressRowDrag = function (value) {
35391 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_ROW_DRAG, value);
35392 };
35393 GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {
35394 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG, value);
35395 };
35396 GridApi.prototype.setSuppressRowClickSelection = function (value) {
35397 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_ROW_CLICK_SELECTION, value);
35398 };
35399 GridApi.prototype.addRowDropZone = function (params) {
35400 this.gridBodyCon.getRowDragFeature().addRowDropZone(params);
35401 };
35402 GridApi.prototype.removeRowDropZone = function (params) {
35403 var activeDropTarget = this.dragAndDropService.findExternalZone(params);
35404 if (activeDropTarget) {
35405 this.dragAndDropService.removeDropTarget(activeDropTarget);
35406 }
35407 };
35408 GridApi.prototype.getRowDropZoneParams = function (events) {
35409 return this.gridBodyCon.getRowDragFeature().getRowDropZone(events);
35410 };
35411 GridApi.prototype.setHeaderHeight = function (headerHeight) {
35412 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_HEADER_HEIGHT, headerHeight);
35413 };
35414 GridApi.prototype.setDomLayout = function (domLayout) {
35415 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOM_LAYOUT, domLayout);
35416 };
35417 GridApi.prototype.setEnableCellTextSelection = function (selectable) {
35418 this.gridBodyCon.setCellTextSelection(selectable);
35419 };
35420 GridApi.prototype.setFillHandleDirection = function (direction) {
35421 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_FILL_HANDLE_DIRECTION, direction);
35422 };
35423 GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {
35424 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_HEADER_HEIGHT, headerHeight);
35425 };
35426 GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {
35427 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_FLOATING_FILTERS_HEIGHT, headerHeight);
35428 };
35429 GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {
35430 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_GROUP_HEADER_HEIGHT, headerHeight);
35431 };
35432 GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {
35433 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_EXTERNAL_FILTER_PRESENT, isExternalFilterPresentFunc);
35434 };
35435 GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {
35436 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOES_EXTERNAL_FILTER_PASS, doesExternalFilterPassFunc);
35437 };
35438 GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {
35439 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_NAVIGATE_TO_NEXT_CELL, navigateToNextCellFunc);
35440 };
35441 GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {
35442 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_TAB_TO_NEXT_CELL, tabToNextCellFunc);
35443 };
35444 GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {
35445 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_TAB_TO_NEXT_HEADER, tabToNextHeaderFunc);
35446 };
35447 GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {
35448 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_NAVIGATE_TO_NEXT_HEADER, navigateToNextHeaderFunc);
35449 };
35450 GridApi.prototype.setGroupRowAggNodes = function (groupRowAggNodesFunc) {
35451 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_ROW_AGG_NODES, groupRowAggNodesFunc);
35452 };
35453 GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {
35454 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_BUSINESS_KEY_FOR_NODE, getBusinessKeyForNodeFunc);
35455 };
35456 GridApi.prototype.setGetChildCount = function (getChildCountFunc) {
35457 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_CHILD_COUNT, getChildCountFunc);
35458 };
35459 GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {
35460 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_ROW_POST_CREATE, processRowPostCreateFunc);
35461 };
35462 GridApi.prototype.setGetRowNodeId = function (getRowNodeIdFunc) {
35463 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_NODE_ID, getRowNodeIdFunc);
35464 };
35465 GridApi.prototype.setGetRowClass = function (rowClassFunc) {
35466 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_CLASS, rowClassFunc);
35467 };
35468 GridApi.prototype.setIsFullWidthCell = function (isFullWidthCellFunc) {
35469 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_FULL_WIDTH_CELL, isFullWidthCellFunc);
35470 };
35471 GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {
35472 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_ROW_SELECTABLE, isRowSelectableFunc);
35473 };
35474 GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {
35475 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_ROW_MASTER, isRowMasterFunc);
35476 };
35477 GridApi.prototype.setPostSort = function (postSortFunc) {
35478 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_POST_SORT, postSortFunc);
35479 };
35480 GridApi.prototype.setGetDocument = function (getDocumentFunc) {
35481 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_DOCUMENT, getDocumentFunc);
35482 };
35483 GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {
35484 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_CONTEXT_MENU_ITEMS, getContextMenuItemsFunc);
35485 };
35486 GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {
35487 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_MAIN_MENU_ITEMS, getMainMenuItemsFunc);
35488 };
35489 GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {
35490 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_CELL_FOR_CLIPBOARD, processCellForClipboardFunc);
35491 };
35492 GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {
35493 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SEND_TO_CLIPBOARD, sendToClipboardFunc);
35494 };
35495 GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {
35496 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_CELL_FROM_CLIPBOARD, processCellFromClipboardFunc);
35497 };
35498 GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {
35499 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_TO_SECONDARY_COLDEF, processSecondaryColDefFunc);
35500 };
35501 GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {
35502 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_SECONDARY_COL_GROUP_DEF, processSecondaryColGroupDefFunc);
35503 };
35504 GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {
35505 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_POST_PROCESS_POPUP, postProcessPopupFunc);
35506 };
35507 GridApi.prototype.setDefaultGroupSortComparator = function (defaultGroupSortComparatorFunc) {
35508 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DEFAULT_GROUP_SORT_COMPARATOR, defaultGroupSortComparatorFunc);
35509 };
35510 GridApi.prototype.setProcessChartOptions = function (processChartOptionsFunc) {
35511 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_CHART_OPTIONS, processChartOptionsFunc);
35512 };
35513 GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {
35514 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_CHART_TOOLBAR_ITEMS, getChartToolbarItemsFunc);
35515 };
35516 GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {
35517 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PAGINATION_NUMBER_FORMATTER, paginationNumberFormatterFunc);
35518 };
35519 GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {
35520 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_SERVER_SIDE_STORE_PARAMS, getServerSideStoreParamsFunc);
35521 };
35522 GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {
35523 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT, isServerSideGroupOpenByDefaultFunc);
35524 };
35525 GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {
35526 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_APPLY_SERVER_SIDE_TRANSACTION, isApplyServerSideTransactionFunc);
35527 };
35528 GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {
35529 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_SERVER_SIDE_GROUP, isServerSideGroupFunc);
35530 };
35531 GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {
35532 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_SERVER_SIDE_GROUP_KEY, getServerSideGroupKeyFunc);
35533 };
35534 GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {
35535 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_STYLE, rowStyleFunc);
35536 };
35537 GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {
35538 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_HEIGHT, rowHeightFunc);
35539 };
35540 GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {
35541 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_HEADER_HEIGHT, headerHeight);
35542 };
35543 GridApi.prototype.isSideBarVisible = function () {
35544 return this.sideBarComp ? this.sideBarComp.isDisplayed() : false;
35545 };
35546 GridApi.prototype.setSideBarVisible = function (show) {
35547 if (!this.sideBarComp) {
35548 if (show) {
35549 console.warn('AG Grid: sideBar is not loaded');
35550 }
35551 return;
35552 }
35553 this.sideBarComp.setDisplayed(show);
35554 };
35555 GridApi.prototype.setSideBarPosition = function (position) {
35556 if (!this.sideBarComp) {
35557 console.warn('AG Grid: sideBar is not loaded');
35558 return;
35559 }
35560 this.sideBarComp.setSideBarPosition(position);
35561 };
35562 GridApi.prototype.openToolPanel = function (key) {
35563 if (!this.sideBarComp) {
35564 console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');
35565 return;
35566 }
35567 this.sideBarComp.openToolPanel(key);
35568 };
35569 GridApi.prototype.closeToolPanel = function () {
35570 if (!this.sideBarComp) {
35571 console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');
35572 return;
35573 }
35574 this.sideBarComp.close();
35575 };
35576 GridApi.prototype.getOpenedToolPanel = function () {
35577 return this.sideBarComp ? this.sideBarComp.openedItem() : null;
35578 };
35579 GridApi.prototype.getSideBar = function () {
35580 return this.gridOptionsWrapper.getSideBar();
35581 };
35582 GridApi.prototype.setSideBar = function (def) {
35583 this.gridOptionsWrapper.setProperty('sideBar', _entities_sideBar__WEBPACK_IMPORTED_MODULE_4__["SideBarDefParser"].parse(def));
35584 };
35585 GridApi.prototype.setSuppressClipboardPaste = function (value) {
35586 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_CLIPBOARD_PASTE, value);
35587 };
35588 GridApi.prototype.isToolPanelShowing = function () {
35589 return this.sideBarComp.isToolPanelShowing();
35590 };
35591 GridApi.prototype.doLayout = function () {
35592 var message = "AG Grid - since version 25.1, doLayout was taken out, as it's not needed. The grid responds to grid size changes automatically";
35593 Object(_utils_function__WEBPACK_IMPORTED_MODULE_11__["doOnce"])(function () { return console.warn(message); }, 'doLayoutDeprecated');
35594 };
35595 GridApi.prototype.resetRowHeights = function () {
35596 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.clientSideRowModel)) {
35597 this.clientSideRowModel.resetRowHeights();
35598 }
35599 };
35600 GridApi.prototype.setGroupRemoveSingleChildren = function (value) {
35601 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_SINGLE_CHILDREN, value);
35602 };
35603 GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {
35604 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, value);
35605 };
35606 GridApi.prototype.onRowHeightChanged = function () {
35607 if (this.clientSideRowModel) {
35608 this.clientSideRowModel.onRowHeightChanged();
35609 }
35610 else if (this.serverSideRowModel) {
35611 this.serverSideRowModel.onRowHeightChanged();
35612 }
35613 };
35614 GridApi.prototype.getValue = function (colKey, rowNode) {
35615 var column = this.columnController.getPrimaryColumn(colKey);
35616 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(column)) {
35617 column = this.columnController.getGridColumn(colKey);
35618 }
35619 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(column)) {
35620 return null;
35621 }
35622 return this.valueService.getValue(column, rowNode);
35623 };
35624 GridApi.prototype.addEventListener = function (eventType, listener) {
35625 var async = this.gridOptionsWrapper.useAsyncEvents();
35626 this.eventService.addEventListener(eventType, listener, async);
35627 };
35628 GridApi.prototype.addGlobalListener = function (listener) {
35629 var async = this.gridOptionsWrapper.useAsyncEvents();
35630 this.eventService.addGlobalListener(listener, async);
35631 };
35632 GridApi.prototype.removeEventListener = function (eventType, listener) {
35633 var async = this.gridOptionsWrapper.useAsyncEvents();
35634 this.eventService.removeEventListener(eventType, listener, async);
35635 };
35636 GridApi.prototype.removeGlobalListener = function (listener) {
35637 var async = this.gridOptionsWrapper.useAsyncEvents();
35638 this.eventService.removeGlobalListener(listener, async);
35639 };
35640 GridApi.prototype.dispatchEvent = function (event) {
35641 this.eventService.dispatchEvent(event);
35642 };
35643 GridApi.prototype.destroy = function () {
35644 // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part
35645 // of context.destroy(). so we need to stop the infinite loop.
35646 if (this.destroyCalled) {
35647 return;
35648 }
35649 this.destroyCalled = true;
35650 // destroy the UI first (as they use the services)
35651 this.gridCompController.destroyGridUi();
35652 // destroy the services
35653 this.context.destroy();
35654 };
35655 GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {
35656 // some users were raising support issues with regards memory leaks. the problem was the customers applications
35657 // were keeping references to the API. trying to educate them all would be difficult, easier to just remove
35658 // all references in teh API so at least the core grid can be garbage collected.
35659 //
35660 // wait about 100ms before clearing down the references, in case user has some cleanup to do,
35661 // and needs to deference the API first
35662 setTimeout(_utils_object__WEBPACK_IMPORTED_MODULE_8__["removeAllReferences"].bind(window, this, 'Grid API'), 100);
35663 };
35664 GridApi.prototype.warnIfDestroyed = function (methodName) {
35665 if (this.destroyCalled) {
35666 console.warn("AG Grid: Grid API method " + methodName + " was called on a grid that was destroyed.");
35667 }
35668 return this.destroyCalled;
35669 };
35670 GridApi.prototype.resetQuickFilter = function () {
35671 if (this.warnIfDestroyed('resetQuickFilter')) {
35672 return;
35673 }
35674 this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });
35675 };
35676 GridApi.prototype.getRangeSelections = function () {
35677 console.warn("AG Grid: in v20.1.x, api.getRangeSelections() is gone, please use getCellRanges() instead.\n We had to change how cell selections works a small bit to allow charting to integrate. The return type of\n getCellRanges() is a bit different, please check the AG Grid documentation.");
35678 return null;
35679 };
35680 GridApi.prototype.getCellRanges = function () {
35681 if (this.rangeController) {
35682 return this.rangeController.getCellRanges();
35683 }
35684 console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');
35685 return null;
35686 };
35687 GridApi.prototype.camelCaseToHumanReadable = function (camelCase) {
35688 return Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["camelCaseToHumanText"])(camelCase);
35689 };
35690 GridApi.prototype.addRangeSelection = function (deprecatedNoLongerUsed) {
35691 console.warn('AG Grid: As of version 21.x, range selection changed slightly to allow charting integration. Please call api.addCellRange() instead of api.addRangeSelection()');
35692 };
35693 GridApi.prototype.addCellRange = function (params) {
35694 if (!this.rangeController) {
35695 console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');
35696 }
35697 this.rangeController.addCellRange(params);
35698 };
35699 GridApi.prototype.clearRangeSelection = function () {
35700 if (!this.rangeController) {
35701 console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');
35702 }
35703 this.rangeController.removeAllCellRanges();
35704 };
35705 GridApi.prototype.undoCellEditing = function () {
35706 this.undoRedoService.undo();
35707 };
35708 GridApi.prototype.redoCellEditing = function () {
35709 this.undoRedoService.redo();
35710 };
35711 GridApi.prototype.getCurrentUndoSize = function () {
35712 return this.undoRedoService.getCurrentUndoStackSize();
35713 };
35714 GridApi.prototype.getCurrentRedoSize = function () {
35715 return this.undoRedoService.getCurrentRedoStackSize();
35716 };
35717 GridApi.prototype.getChartModels = function () {
35718 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.getChartModels') &&
35719 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.getChartModels')) {
35720 return this.chartService.getChartModels();
35721 }
35722 };
35723 GridApi.prototype.createRangeChart = function (params) {
35724 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.createRangeChart') &&
35725 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.createRangeChart')) {
35726 return this.chartService.createRangeChart(params);
35727 }
35728 };
35729 GridApi.prototype.createCrossFilterChart = function (params) {
35730 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.createCrossFilterChart') &&
35731 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.createCrossFilterChart')) {
35732 return this.chartService.createCrossFilterChart(params);
35733 }
35734 };
35735 GridApi.prototype.restoreChart = function (chartModel, chartContainer) {
35736 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.restoreChart') &&
35737 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.restoreChart')) {
35738 return this.chartService.restoreChart(chartModel, chartContainer);
35739 }
35740 };
35741 GridApi.prototype.createPivotChart = function (params) {
35742 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.createPivotChart') &&
35743 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.createPivotChart')) {
35744 return this.chartService.createPivotChart(params);
35745 }
35746 };
35747 GridApi.prototype.copySelectedRowsToClipboard = function (includeHeader, columnKeys) {
35748 if (!this.clipboardService) {
35749 console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');
35750 }
35751 this.clipboardService.copySelectedRowsToClipboard(includeHeader, columnKeys);
35752 };
35753 GridApi.prototype.copySelectedRangeToClipboard = function (includeHeader) {
35754 if (!this.clipboardService) {
35755 console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');
35756 }
35757 this.clipboardService.copySelectedRangeToClipboard(includeHeader);
35758 };
35759 GridApi.prototype.copySelectedRangeDown = function () {
35760 if (!this.clipboardService) {
35761 console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');
35762 }
35763 this.clipboardService.copyRangeDown();
35764 };
35765 GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {
35766 // use grid column so works with pivot mode
35767 var column = this.columnController.getGridColumn(colKey);
35768 this.menuFactory.showMenuAfterButtonClick(column, buttonElement);
35769 };
35770 GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {
35771 // use grid column so works with pivot mode
35772 var column = this.columnController.getGridColumn(colKey);
35773 if (!column) {
35774 column = this.columnController.getPrimaryColumn(colKey);
35775 }
35776 if (!column) {
35777 console.error("AG Grid: column '" + colKey + "' not found");
35778 return;
35779 }
35780 this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);
35781 };
35782 GridApi.prototype.hidePopupMenu = function () {
35783 // hide the context menu if in enterprise
35784 if (this.contextMenuFactory) {
35785 this.contextMenuFactory.hideActiveMenu();
35786 }
35787 // and hide the column menu always
35788 this.menuFactory.hideActiveMenu();
35789 };
35790 GridApi.prototype.setPopupParent = function (ePopupParent) {
35791 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_POPUP_PARENT, ePopupParent);
35792 };
35793 GridApi.prototype.tabToNextCell = function () {
35794 return this.rowRenderer.tabToNextCell(false);
35795 };
35796 GridApi.prototype.tabToPreviousCell = function () {
35797 return this.rowRenderer.tabToNextCell(true);
35798 };
35799 GridApi.prototype.getCellRendererInstances = function (params) {
35800 if (params === void 0) { params = {}; }
35801 return this.rowRenderer.getCellRendererInstances(params);
35802 };
35803 GridApi.prototype.getCellEditorInstances = function (params) {
35804 if (params === void 0) { params = {}; }
35805 return this.rowRenderer.getCellEditorInstances(params);
35806 };
35807 GridApi.prototype.getEditingCells = function () {
35808 return this.rowRenderer.getEditingCells();
35809 };
35810 GridApi.prototype.stopEditing = function (cancel) {
35811 if (cancel === void 0) { cancel = false; }
35812 this.rowRenderer.stopEditing(cancel);
35813 };
35814 GridApi.prototype.startEditingCell = function (params) {
35815 var column = this.columnController.getGridColumn(params.colKey);
35816 if (!column) {
35817 console.warn("AG Grid: no column found for " + params.colKey);
35818 return;
35819 }
35820 var cellPosition = {
35821 rowIndex: params.rowIndex,
35822 rowPinned: params.rowPinned || null,
35823 column: column
35824 };
35825 var notPinned = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(params.rowPinned);
35826 if (notPinned) {
35827 this.gridBodyCon.getScrollFeature().ensureIndexVisible(params.rowIndex);
35828 }
35829 this.rowRenderer.startEditingCell(cellPosition, params.keyPress, params.charPress);
35830 };
35831 GridApi.prototype.addAggFunc = function (key, aggFunc) {
35832 if (this.aggFuncService) {
35833 this.aggFuncService.addAggFunc(key, aggFunc);
35834 }
35835 };
35836 GridApi.prototype.addAggFuncs = function (aggFuncs) {
35837 if (this.aggFuncService) {
35838 this.aggFuncService.addAggFuncs(aggFuncs);
35839 }
35840 };
35841 GridApi.prototype.clearAggFuncs = function () {
35842 if (this.aggFuncService) {
35843 this.aggFuncService.clear();
35844 }
35845 };
35846 GridApi.prototype.applyServerSideTransaction = function (transaction) {
35847 if (!this.serverSideTransactionManager) {
35848 console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');
35849 return;
35850 }
35851 return this.serverSideTransactionManager.applyTransaction(transaction);
35852 };
35853 GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {
35854 if (!this.serverSideTransactionManager) {
35855 console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');
35856 return;
35857 }
35858 return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);
35859 };
35860 GridApi.prototype.retryServerSideLoads = function () {
35861 if (!this.serverSideRowModel) {
35862 console.warn('AG Grid: API retryServerSideLoads() can only be used when using Server-Side Row Model.');
35863 return;
35864 }
35865 this.serverSideRowModel.retryLoads();
35866 };
35867 GridApi.prototype.flushServerSideAsyncTransactions = function () {
35868 if (!this.serverSideTransactionManager) {
35869 console.warn('AG Grid: Cannot flush Server Side Transaction if not using the Server Side Row Model.');
35870 return;
35871 }
35872 return this.serverSideTransactionManager.flushAsyncTransactions();
35873 };
35874 GridApi.prototype.applyTransaction = function (rowDataTransaction) {
35875 if (!this.clientSideRowModel) {
35876 console.error('AG Grid: updateRowData() only works with ClientSideRowModel. Working with InfiniteRowModel was deprecated in v23.1 and removed in v24.1');
35877 return;
35878 }
35879 var res = this.clientSideRowModel.updateRowData(rowDataTransaction);
35880 // refresh all the full width rows
35881 this.rowRenderer.refreshFullWidthRows(res.update);
35882 // do change detection for all present cells
35883 if (!this.gridOptionsWrapper.isSuppressChangeDetection()) {
35884 this.rowRenderer.refreshCells();
35885 }
35886 return res;
35887 };
35888 /** @deprecated */
35889 GridApi.prototype.updateRowData = function (rowDataTransaction) {
35890 var message = 'AG Grid: as of v23.1, grid API updateRowData(transaction) is now called applyTransaction(transaction). updateRowData is deprecated and will be removed in a future major release.';
35891 Object(_utils_function__WEBPACK_IMPORTED_MODULE_11__["doOnce"])(function () { return console.warn(message); }, 'updateRowData deprecated');
35892 return this.applyTransaction(rowDataTransaction);
35893 };
35894 GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {
35895 if (!this.clientSideRowModel) {
35896 console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');
35897 return;
35898 }
35899 this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);
35900 };
35901 GridApi.prototype.flushAsyncTransactions = function () {
35902 if (!this.clientSideRowModel) {
35903 console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');
35904 return;
35905 }
35906 this.clientSideRowModel.flushAsyncTransactions();
35907 };
35908 /** @deprecated */
35909 GridApi.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {
35910 var message = 'AG Grid: as of v23.1, grid API batchUpdateRowData(transaction, callback) is now called applyTransactionAsync(transaction, callback). batchUpdateRowData is deprecated and will be removed in a future major release.';
35911 Object(_utils_function__WEBPACK_IMPORTED_MODULE_11__["doOnce"])(function () { return console.warn(message); }, 'batchUpdateRowData deprecated');
35912 this.applyTransactionAsync(rowDataTransaction, callback);
35913 };
35914 GridApi.prototype.insertItemsAtIndex = function (index, items, skipRefresh) {
35915 if (skipRefresh === void 0) { skipRefresh = false; }
35916 console.warn('AG Grid: insertItemsAtIndex() is deprecated, use updateRowData(transaction) instead.');
35917 this.updateRowData({ add: items, addIndex: index, update: null, remove: null });
35918 };
35919 GridApi.prototype.removeItems = function (rowNodes, skipRefresh) {
35920 if (skipRefresh === void 0) { skipRefresh = false; }
35921 console.warn('AG Grid: removeItems() is deprecated, use updateRowData(transaction) instead.');
35922 var dataToRemove = rowNodes.map(function (rowNode) { return rowNode.data; });
35923 this.updateRowData({ add: null, addIndex: null, update: null, remove: dataToRemove });
35924 };
35925 GridApi.prototype.addItems = function (items, skipRefresh) {
35926 if (skipRefresh === void 0) { skipRefresh = false; }
35927 console.warn('AG Grid: addItems() is deprecated, use updateRowData(transaction) instead.');
35928 this.updateRowData({ add: items, addIndex: null, update: null, remove: null });
35929 };
35930 GridApi.prototype.refreshVirtualPageCache = function () {
35931 console.warn('AG Grid: refreshVirtualPageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');
35932 this.refreshInfiniteCache();
35933 };
35934 GridApi.prototype.refreshInfinitePageCache = function () {
35935 console.warn('AG Grid: refreshInfinitePageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');
35936 this.refreshInfiniteCache();
35937 };
35938 GridApi.prototype.refreshInfiniteCache = function () {
35939 if (this.infiniteRowModel) {
35940 this.infiniteRowModel.refreshCache();
35941 }
35942 else {
35943 console.warn("AG Grid: api.refreshInfiniteCache is only available when rowModelType='infinite'.");
35944 }
35945 };
35946 GridApi.prototype.purgeVirtualPageCache = function () {
35947 console.warn('AG Grid: purgeVirtualPageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');
35948 this.purgeInfinitePageCache();
35949 };
35950 GridApi.prototype.purgeInfinitePageCache = function () {
35951 console.warn('AG Grid: purgeInfinitePageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');
35952 this.purgeInfiniteCache();
35953 };
35954 GridApi.prototype.purgeInfiniteCache = function () {
35955 if (this.infiniteRowModel) {
35956 this.infiniteRowModel.purgeCache();
35957 }
35958 else {
35959 console.warn("AG Grid: api.purgeInfiniteCache is only available when rowModelType='infinite'.");
35960 }
35961 };
35962 /** @deprecated */
35963 GridApi.prototype.purgeEnterpriseCache = function (route) {
35964 console.warn("ag-grid: since version 18.x, api.purgeEnterpriseCache() should be replaced with api.purgeServerSideCache()");
35965 this.purgeServerSideCache(route);
35966 };
35967 /** @deprecated */
35968 GridApi.prototype.purgeServerSideCache = function (route) {
35969 if (route === void 0) { route = []; }
35970 if (this.serverSideRowModel) {
35971 console.warn("AG Grid: since v25.0, api.purgeServerSideCache is deprecated. Please use api.refreshServerSideStore({purge: true}) instead.");
35972 this.refreshServerSideStore({
35973 route: route,
35974 purge: true
35975 });
35976 }
35977 else {
35978 console.warn("AG Grid: api.purgeServerSideCache is only available when rowModelType='serverSide'.");
35979 }
35980 };
35981 GridApi.prototype.refreshServerSideStore = function (params) {
35982 if (this.serverSideRowModel) {
35983 this.serverSideRowModel.refreshStore(params);
35984 }
35985 else {
35986 console.warn("AG Grid: api.refreshServerSideStore is only available when rowModelType='serverSide'.");
35987 }
35988 };
35989 GridApi.prototype.getServerSideStoreState = function () {
35990 if (this.serverSideRowModel) {
35991 return this.serverSideRowModel.getStoreState();
35992 }
35993 else {
35994 console.warn("AG Grid: api.getServerSideStoreState is only available when rowModelType='serverSide'.");
35995 return [];
35996 }
35997 };
35998 GridApi.prototype.getVirtualRowCount = function () {
35999 console.warn('AG Grid: getVirtualRowCount() is now called getInfiniteRowCount(), please call getInfiniteRowCount() instead');
36000 return this.getInfiniteRowCount();
36001 };
36002 GridApi.prototype.getInfiniteRowCount = function () {
36003 if (this.infiniteRowModel) {
36004 return this.infiniteRowModel.getRowCount();
36005 }
36006 else {
36007 console.warn("AG Grid: api.getVirtualRowCount is only available when rowModelType='virtual'.");
36008 }
36009 };
36010 GridApi.prototype.isMaxRowFound = function () {
36011 console.warn("AG Grid: api.isLastRowIndexKnown is deprecated, please use api.isLastRowIndexKnown()");
36012 return this.isLastRowIndexKnown();
36013 };
36014 GridApi.prototype.isLastRowIndexKnown = function () {
36015 if (this.infiniteRowModel) {
36016 return this.infiniteRowModel.isLastRowIndexKnown();
36017 }
36018 else {
36019 console.warn("AG Grid: api.isMaxRowFound is only available when rowModelType='virtual'.");
36020 }
36021 };
36022 GridApi.prototype.setVirtualRowCount = function (rowCount, maxRowFound) {
36023 console.warn('AG Grid: setVirtualRowCount() is now called setInfiniteRowCount(), please call setInfiniteRowCount() instead');
36024 this.setRowCount(rowCount, maxRowFound);
36025 };
36026 GridApi.prototype.setInfiniteRowCount = function (rowCount, maxRowFound) {
36027 console.warn('AG Grid: setInfiniteRowCount() is now called setRowCount(), please call setRowCount() instead');
36028 this.setRowCount(rowCount, maxRowFound);
36029 };
36030 GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {
36031 if (this.infiniteRowModel) {
36032 this.infiniteRowModel.setRowCount(rowCount, maxRowFound);
36033 }
36034 else {
36035 console.warn("AG Grid: api.setRowCount is only available for Infinite Row Model.");
36036 }
36037 };
36038 GridApi.prototype.getVirtualPageState = function () {
36039 console.warn('AG Grid: getVirtualPageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');
36040 return this.getCacheBlockState();
36041 };
36042 GridApi.prototype.getInfinitePageState = function () {
36043 console.warn('AG Grid: getInfinitePageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');
36044 return this.getCacheBlockState();
36045 };
36046 GridApi.prototype.getCacheBlockState = function () {
36047 return this.rowNodeBlockLoader.getBlockState();
36048 };
36049 GridApi.prototype.checkGridSize = function () {
36050 console.warn("in AG Grid v25.2.0, checkGridSize() was removed, as it was legacy and didn't do anything uesful.");
36051 };
36052 GridApi.prototype.getFirstRenderedRow = function () {
36053 console.warn('in AG Grid v12, getFirstRenderedRow() was renamed to getFirstDisplayedRow()');
36054 return this.getFirstDisplayedRow();
36055 };
36056 GridApi.prototype.getFirstDisplayedRow = function () {
36057 return this.rowRenderer.getFirstVirtualRenderedRow();
36058 };
36059 GridApi.prototype.getLastRenderedRow = function () {
36060 console.warn('in AG Grid v12, getLastRenderedRow() was renamed to getLastDisplayedRow()');
36061 return this.getLastDisplayedRow();
36062 };
36063 GridApi.prototype.getLastDisplayedRow = function () {
36064 return this.rowRenderer.getLastVirtualRenderedRow();
36065 };
36066 GridApi.prototype.getDisplayedRowAtIndex = function (index) {
36067 return this.rowModel.getRow(index);
36068 };
36069 GridApi.prototype.getDisplayedRowCount = function () {
36070 return this.rowModel.getRowCount();
36071 };
36072 GridApi.prototype.paginationIsLastPageFound = function () {
36073 return this.paginationProxy.isLastPageFound();
36074 };
36075 GridApi.prototype.paginationGetPageSize = function () {
36076 return this.paginationProxy.getPageSize();
36077 };
36078 GridApi.prototype.paginationSetPageSize = function (size) {
36079 this.gridOptionsWrapper.setProperty('paginationPageSize', size);
36080 };
36081 GridApi.prototype.paginationGetCurrentPage = function () {
36082 return this.paginationProxy.getCurrentPage();
36083 };
36084 GridApi.prototype.paginationGetTotalPages = function () {
36085 return this.paginationProxy.getTotalPages();
36086 };
36087 GridApi.prototype.paginationGetRowCount = function () {
36088 return this.paginationProxy.getMasterRowCount();
36089 };
36090 GridApi.prototype.paginationGoToNextPage = function () {
36091 this.paginationProxy.goToNextPage();
36092 };
36093 GridApi.prototype.paginationGoToPreviousPage = function () {
36094 this.paginationProxy.goToPreviousPage();
36095 };
36096 GridApi.prototype.paginationGoToFirstPage = function () {
36097 this.paginationProxy.goToFirstPage();
36098 };
36099 GridApi.prototype.paginationGoToLastPage = function () {
36100 this.paginationProxy.goToLastPage();
36101 };
36102 GridApi.prototype.paginationGoToPage = function (page) {
36103 this.paginationProxy.goToPage(page);
36104 };
36105 __decorate([
36106 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('immutableService')
36107 ], GridApi.prototype, "immutableService", void 0);
36108 __decorate([
36109 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('csvCreator')
36110 ], GridApi.prototype, "csvCreator", void 0);
36111 __decorate([
36112 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('excelCreator')
36113 ], GridApi.prototype, "excelCreator", void 0);
36114 __decorate([
36115 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowRenderer')
36116 ], GridApi.prototype, "rowRenderer", void 0);
36117 __decorate([
36118 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('filterManager')
36119 ], GridApi.prototype, "filterManager", void 0);
36120 __decorate([
36121 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
36122 ], GridApi.prototype, "columnController", void 0);
36123 __decorate([
36124 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionController')
36125 ], GridApi.prototype, "selectionController", void 0);
36126 __decorate([
36127 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
36128 ], GridApi.prototype, "gridOptionsWrapper", void 0);
36129 __decorate([
36130 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
36131 ], GridApi.prototype, "valueService", void 0);
36132 __decorate([
36133 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('alignedGridsService')
36134 ], GridApi.prototype, "alignedGridsService", void 0);
36135 __decorate([
36136 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('eventService')
36137 ], GridApi.prototype, "eventService", void 0);
36138 __decorate([
36139 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('pinnedRowModel')
36140 ], GridApi.prototype, "pinnedRowModel", void 0);
36141 __decorate([
36142 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('context')
36143 ], GridApi.prototype, "context", void 0);
36144 __decorate([
36145 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
36146 ], GridApi.prototype, "rowModel", void 0);
36147 __decorate([
36148 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('sortController')
36149 ], GridApi.prototype, "sortController", void 0);
36150 __decorate([
36151 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('paginationProxy')
36152 ], GridApi.prototype, "paginationProxy", void 0);
36153 __decorate([
36154 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('focusController')
36155 ], GridApi.prototype, "focusController", void 0);
36156 __decorate([
36157 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragAndDropService')
36158 ], GridApi.prototype, "dragAndDropService", void 0);
36159 __decorate([
36160 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeController')
36161 ], GridApi.prototype, "rangeController", void 0);
36162 __decorate([
36163 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('clipboardService')
36164 ], GridApi.prototype, "clipboardService", void 0);
36165 __decorate([
36166 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('aggFuncService')
36167 ], GridApi.prototype, "aggFuncService", void 0);
36168 __decorate([
36169 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('menuFactory')
36170 ], GridApi.prototype, "menuFactory", void 0);
36171 __decorate([
36172 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('contextMenuFactory')
36173 ], GridApi.prototype, "contextMenuFactory", void 0);
36174 __decorate([
36175 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueCache')
36176 ], GridApi.prototype, "valueCache", void 0);
36177 __decorate([
36178 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('animationFrameService')
36179 ], GridApi.prototype, "animationFrameService", void 0);
36180 __decorate([
36181 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('statusBarService')
36182 ], GridApi.prototype, "statusBarService", void 0);
36183 __decorate([
36184 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('chartService')
36185 ], GridApi.prototype, "chartService", void 0);
36186 __decorate([
36187 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('undoRedoService')
36188 ], GridApi.prototype, "undoRedoService", void 0);
36189 __decorate([
36190 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('headlessService')
36191 ], GridApi.prototype, "headlessService", void 0);
36192 __decorate([
36193 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rowNodeBlockLoader')
36194 ], GridApi.prototype, "rowNodeBlockLoader", void 0);
36195 __decorate([
36196 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('ssrmTransactionManager')
36197 ], GridApi.prototype, "serverSideTransactionManager", void 0);
36198 __decorate([
36199 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('controllersService')
36200 ], GridApi.prototype, "controllersService", void 0);
36201 __decorate([
36202 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
36203 ], GridApi.prototype, "init", null);
36204 __decorate([
36205 _context_context__WEBPACK_IMPORTED_MODULE_2__["PreDestroy"]
36206 ], GridApi.prototype, "cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid", null);
36207 GridApi = __decorate([
36208 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('gridApi')
36209 ], GridApi);
36210 return GridApi;
36211}());
36212
36213
36214
36215/***/ }),
36216/* 149 */
36217/***/ (function(module, __webpack_exports__, __webpack_require__) {
36218
36219"use strict";
36220__webpack_require__.r(__webpack_exports__);
36221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return ExcelFactoryMode; });
36222/**
36223 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36224 * @version v25.3.0
36225 * @link http://www.ag-grid.com/
36226 * @license MIT
36227 */
36228// Excel Export
36229var ExcelFactoryMode;
36230(function (ExcelFactoryMode) {
36231 ExcelFactoryMode[ExcelFactoryMode["SINGLE_SHEET"] = 0] = "SINGLE_SHEET";
36232 ExcelFactoryMode[ExcelFactoryMode["MULTI_SHEET"] = 1] = "MULTI_SHEET";
36233})(ExcelFactoryMode || (ExcelFactoryMode = {}));
36234
36235
36236/***/ }),
36237/* 150 */
36238/***/ (function(module, __webpack_exports__, __webpack_require__) {
36239
36240"use strict";
36241__webpack_require__.r(__webpack_exports__);
36242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return ClientSideRowModelSteps; });
36243/**
36244 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36245 * @version v25.3.0
36246 * @link http://www.ag-grid.com/
36247 * @license MIT
36248 */
36249var ClientSideRowModelSteps;
36250(function (ClientSideRowModelSteps) {
36251 ClientSideRowModelSteps["EVERYTHING"] = "group";
36252 ClientSideRowModelSteps["FILTER"] = "filter";
36253 ClientSideRowModelSteps["SORT"] = "sort";
36254 ClientSideRowModelSteps["MAP"] = "map";
36255 ClientSideRowModelSteps["AGGREGATE"] = "aggregate";
36256 ClientSideRowModelSteps["PIVOT"] = "pivot";
36257 ClientSideRowModelSteps["NOTHING"] = "nothing";
36258})(ClientSideRowModelSteps || (ClientSideRowModelSteps = {}));
36259
36260
36261/***/ }),
36262/* 151 */
36263/***/ (function(module, __webpack_exports__, __webpack_require__) {
36264
36265"use strict";
36266__webpack_require__.r(__webpack_exports__);
36267/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return ExpressionService; });
36268/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
36269/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
36270/**
36271 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36272 * @version v25.3.0
36273 * @link http://www.ag-grid.com/
36274 * @license MIT
36275 */
36276var __extends = (undefined && undefined.__extends) || (function () {
36277 var extendStatics = function (d, b) {
36278 extendStatics = Object.setPrototypeOf ||
36279 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36280 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
36281 return extendStatics(d, b);
36282 };
36283 return function (d, b) {
36284 extendStatics(d, b);
36285 function __() { this.constructor = d; }
36286 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36287 };
36288})();
36289var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36290 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36291 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36292 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
36293 return c > 3 && r && Object.defineProperty(target, key, r), r;
36294};
36295var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
36296 return function (target, key) { decorator(target, key, paramIndex); }
36297};
36298
36299
36300
36301var ExpressionService = /** @class */ (function (_super) {
36302 __extends(ExpressionService, _super);
36303 function ExpressionService() {
36304 var _this = _super !== null && _super.apply(this, arguments) || this;
36305 _this.expressionToFunctionCache = {};
36306 return _this;
36307 }
36308 ExpressionService.prototype.setBeans = function (loggerFactory) {
36309 this.logger = loggerFactory.create('ExpressionService');
36310 };
36311 ExpressionService.prototype.evaluate = function (expressionOrFunc, params) {
36312 if (typeof expressionOrFunc === 'function') {
36313 // valueGetter is a function, so just call it
36314 var func = expressionOrFunc;
36315 return func(params);
36316 }
36317 else if (typeof expressionOrFunc === 'string') {
36318 // valueGetter is an expression, so execute the expression
36319 var expression = expressionOrFunc;
36320 return this.evaluateExpression(expression, params);
36321 }
36322 else {
36323 console.error('AG Grid: value should be either a string or a function', expressionOrFunc);
36324 }
36325 };
36326 ExpressionService.prototype.evaluateExpression = function (expression, params) {
36327 try {
36328 var javaScriptFunction = this.createExpressionFunction(expression);
36329 // the params don't have all these values, rather we add every possible
36330 // value a params can have, which makes whatever is in the params available.
36331 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);
36332 return result;
36333 }
36334 catch (e) {
36335 // the expression failed, which can happen, as it's the client that
36336 // provides the expression. so print a nice message
36337 // tslint:disable-next-line
36338 console.log('Processing of the expression failed');
36339 // tslint:disable-next-line
36340 console.log('Expression = ' + expression);
36341 // tslint:disable-next-line
36342 console.log('Params =', params);
36343 // tslint:disable-next-line
36344 console.log('Exception = ' + e);
36345 return null;
36346 }
36347 };
36348 ExpressionService.prototype.createExpressionFunction = function (expression) {
36349 // check cache first
36350 if (this.expressionToFunctionCache[expression]) {
36351 return this.expressionToFunctionCache[expression];
36352 }
36353 // if not found in cache, return the function
36354 var functionBody = this.createFunctionBody(expression);
36355 var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);
36356 // store in cache
36357 this.expressionToFunctionCache[expression] = theFunction;
36358 return theFunction;
36359 };
36360 ExpressionService.prototype.createFunctionBody = function (expression) {
36361 // if the expression has the 'return' word in it, then use as is,
36362 // if not, then wrap it with return and ';' to make a function
36363 if (expression.indexOf('return') >= 0) {
36364 return expression;
36365 }
36366 else {
36367 return 'return ' + expression + ';';
36368 }
36369 };
36370 __decorate([
36371 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
36372 ], ExpressionService.prototype, "setBeans", null);
36373 ExpressionService = __decorate([
36374 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('expressionService')
36375 ], ExpressionService);
36376 return ExpressionService;
36377}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
36378
36379
36380
36381/***/ }),
36382/* 152 */
36383/***/ (function(module, __webpack_exports__, __webpack_require__) {
36384
36385"use strict";
36386__webpack_require__.r(__webpack_exports__);
36387/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return TemplateService; });
36388/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
36389/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
36390/**
36391 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36392 * @version v25.3.0
36393 * @link http://www.ag-grid.com/
36394 * @license MIT
36395 */
36396var __extends = (undefined && undefined.__extends) || (function () {
36397 var extendStatics = function (d, b) {
36398 extendStatics = Object.setPrototypeOf ||
36399 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36400 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
36401 return extendStatics(d, b);
36402 };
36403 return function (d, b) {
36404 extendStatics(d, b);
36405 function __() { this.constructor = d; }
36406 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36407 };
36408})();
36409var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36410 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36411 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36412 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
36413 return c > 3 && r && Object.defineProperty(target, key, r), r;
36414};
36415
36416
36417
36418var TemplateService = /** @class */ (function (_super) {
36419 __extends(TemplateService, _super);
36420 function TemplateService() {
36421 var _this = _super !== null && _super.apply(this, arguments) || this;
36422 _this.templateCache = {};
36423 _this.waitingCallbacks = {};
36424 return _this;
36425 }
36426 // returns the template if it is loaded, or null if it is not loaded
36427 // but will call the callback when it is loaded
36428 TemplateService.prototype.getTemplate = function (url, callback) {
36429 var templateFromCache = this.templateCache[url];
36430 if (templateFromCache) {
36431 return templateFromCache;
36432 }
36433 var callbackList = this.waitingCallbacks[url];
36434 var that = this;
36435 if (!callbackList) {
36436 // first time this was called, so need a new list for callbacks
36437 callbackList = [];
36438 this.waitingCallbacks[url] = callbackList;
36439 // and also need to do the http request
36440 var client = new XMLHttpRequest();
36441 client.onload = function () {
36442 that.handleHttpResult(this, url);
36443 };
36444 client.open("GET", url);
36445 client.send();
36446 }
36447 // add this callback
36448 if (callback) {
36449 callbackList.push(callback);
36450 }
36451 // caller needs to wait for template to load, so return null
36452 return null;
36453 };
36454 TemplateService.prototype.handleHttpResult = function (httpResult, url) {
36455 if (httpResult.status !== 200 || httpResult.response === null) {
36456 console.warn("Unable to get template error " + httpResult.status + " - " + url);
36457 return;
36458 }
36459 // response success, so process it
36460 // in IE9 the response is in - responseText
36461 this.templateCache[url] = httpResult.response || httpResult.responseText;
36462 // inform all listeners that this is now in the cache
36463 var callbacks = this.waitingCallbacks[url];
36464 for (var i = 0; i < callbacks.length; i++) {
36465 var callback = callbacks[i];
36466 // we could pass the callback the response, however we know the client of this code
36467 // is the cell renderer, and it passes the 'cellRefresh' method in as the callback
36468 // which doesn't take any parameters.
36469 callback();
36470 }
36471 if (this.$scope) {
36472 var that_1 = this;
36473 window.setTimeout(function () {
36474 that_1.$scope.$apply();
36475 }, 0);
36476 }
36477 };
36478 __decorate([
36479 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$scope')
36480 ], TemplateService.prototype, "$scope", void 0);
36481 TemplateService = __decorate([
36482 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('templateService')
36483 ], TemplateService);
36484 return TemplateService;
36485}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
36486
36487
36488
36489/***/ }),
36490/* 153 */
36491/***/ (function(module, __webpack_exports__, __webpack_require__) {
36492
36493"use strict";
36494__webpack_require__.r(__webpack_exports__);
36495/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return PopupService; });
36496/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
36497/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
36498/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
36499/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
36500/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
36501/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21);
36502/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
36503/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(154);
36504/**
36505 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36506 * @version v25.3.0
36507 * @link http://www.ag-grid.com/
36508 * @license MIT
36509 */
36510var __extends = (undefined && undefined.__extends) || (function () {
36511 var extendStatics = function (d, b) {
36512 extendStatics = Object.setPrototypeOf ||
36513 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36514 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
36515 return extendStatics(d, b);
36516 };
36517 return function (d, b) {
36518 extendStatics(d, b);
36519 function __() { this.constructor = d; }
36520 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36521 };
36522})();
36523var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36524 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36525 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36526 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
36527 return c > 3 && r && Object.defineProperty(target, key, r), r;
36528};
36529
36530
36531
36532
36533
36534
36535
36536
36537var PopupService = /** @class */ (function (_super) {
36538 __extends(PopupService, _super);
36539 function PopupService() {
36540 var _this = _super !== null && _super.apply(this, arguments) || this;
36541 _this.popupList = [];
36542 return _this;
36543 }
36544 PopupService.prototype.registerGridCompController = function (gridCompController) {
36545 var _this = this;
36546 this.gridCompController = gridCompController;
36547 this.addManagedListener(this.gridCompController, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_KEYBOARD_FOCUS, function () {
36548 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(_this.popupList, function (popup) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(popup.element, _focusController__WEBPACK_IMPORTED_MODULE_7__["FocusController"].AG_KEYBOARD_FOCUS); });
36549 });
36550 this.addManagedListener(this.gridCompController, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MOUSE_FOCUS, function () {
36551 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(_this.popupList, function (popup) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["removeCssClass"])(popup.element, _focusController__WEBPACK_IMPORTED_MODULE_7__["FocusController"].AG_KEYBOARD_FOCUS); });
36552 });
36553 };
36554 PopupService.prototype.getPopupParent = function () {
36555 var ePopupParent = this.gridOptionsWrapper.getPopupParent();
36556 if (ePopupParent) {
36557 return ePopupParent;
36558 }
36559 return this.gridCompController.getGui();
36560 };
36561 PopupService.prototype.positionPopupForMenu = function (params) {
36562 var sourceRect = params.eventSource.getBoundingClientRect();
36563 var parentRect = this.getParentRect();
36564 var y = this.keepYWithinBounds(params, sourceRect.top - parentRect.top);
36565 var minWidth = (params.ePopup.clientWidth > 0) ? params.ePopup.clientWidth : 200;
36566 params.ePopup.style.minWidth = minWidth + "px";
36567 var widthOfParent = parentRect.right - parentRect.left;
36568 var maxX = widthOfParent - minWidth;
36569 // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup
36570 // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,
36571 // we try place it first to the left, and then if not to the right.
36572 var x;
36573 if (this.gridOptionsWrapper.isEnableRtl()) {
36574 // for RTL, try left first
36575 x = xLeftPosition();
36576 if (x < 0) {
36577 x = xRightPosition();
36578 }
36579 if (x > maxX) {
36580 x = 0;
36581 }
36582 }
36583 else {
36584 // for LTR, try right first
36585 x = xRightPosition();
36586 if (x > maxX) {
36587 x = xLeftPosition();
36588 }
36589 if (x < 0) {
36590 x = 0;
36591 }
36592 }
36593 params.ePopup.style.left = x + "px";
36594 params.ePopup.style.top = y + "px";
36595 function xRightPosition() {
36596 return sourceRect.right - parentRect.left - 2;
36597 }
36598 function xLeftPosition() {
36599 return sourceRect.left - parentRect.left - minWidth;
36600 }
36601 };
36602 PopupService.prototype.positionPopupUnderMouseEvent = function (params) {
36603 var _a = this.calculatePointerAlign(params.mouseEvent), x = _a.x, y = _a.y;
36604 var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY;
36605 this.positionPopup({
36606 ePopup: ePopup,
36607 x: x,
36608 y: y,
36609 nudgeX: nudgeX,
36610 nudgeY: nudgeY,
36611 keepWithinBounds: true
36612 });
36613 this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode);
36614 };
36615 PopupService.prototype.calculatePointerAlign = function (e) {
36616 var parentRect = this.getParentRect();
36617 return {
36618 x: e.clientX - parentRect.left,
36619 y: e.clientY - parentRect.top
36620 };
36621 };
36622 PopupService.prototype.positionPopupUnderComponent = function (params) {
36623 var sourceRect = params.eventSource.getBoundingClientRect();
36624 var alignSide = params.alignSide || 'left';
36625 var parentRect = this.getParentRect();
36626 var x = sourceRect.left - parentRect.left;
36627 if (alignSide === 'right') {
36628 x -= (params.ePopup.offsetWidth - sourceRect.width);
36629 }
36630 this.positionPopup({
36631 ePopup: params.ePopup,
36632 minWidth: params.minWidth,
36633 minHeight: params.minHeight,
36634 nudgeX: params.nudgeX,
36635 nudgeY: params.nudgeY,
36636 x: x,
36637 y: sourceRect.top - parentRect.top + sourceRect.height,
36638 keepWithinBounds: params.keepWithinBounds
36639 });
36640 this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);
36641 };
36642 PopupService.prototype.positionPopupOverComponent = function (params) {
36643 var sourceRect = params.eventSource.getBoundingClientRect();
36644 var parentRect = this.getParentRect();
36645 this.positionPopup({
36646 ePopup: params.ePopup,
36647 minWidth: params.minWidth,
36648 nudgeX: params.nudgeX,
36649 nudgeY: params.nudgeY,
36650 x: sourceRect.left - parentRect.left,
36651 y: sourceRect.top - parentRect.top,
36652 keepWithinBounds: params.keepWithinBounds
36653 });
36654 this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);
36655 };
36656 PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {
36657 var callback = this.gridOptionsWrapper.getPostProcessPopupFunc();
36658 if (callback) {
36659 var params = {
36660 column: column,
36661 rowNode: rowNode,
36662 ePopup: ePopup,
36663 type: type,
36664 eventSource: eventSource,
36665 mouseEvent: mouseEvent
36666 };
36667 callback(params);
36668 }
36669 };
36670 PopupService.prototype.positionPopup = function (params) {
36671 var x = params.x;
36672 var y = params.y;
36673 if (params.nudgeX) {
36674 x += params.nudgeX;
36675 }
36676 if (params.nudgeY) {
36677 y += params.nudgeY;
36678 }
36679 // if popup is overflowing to the bottom, move it up
36680 if (params.keepWithinBounds) {
36681 x = this.keepXWithinBounds(params, x);
36682 y = this.keepYWithinBounds(params, y);
36683 }
36684 params.ePopup.style.left = x + "px";
36685 params.ePopup.style.top = y + "px";
36686 };
36687 PopupService.prototype.getActivePopups = function () {
36688 return this.popupList.map(function (popup) { return popup.element; });
36689 };
36690 PopupService.prototype.getParentRect = function () {
36691 // subtract the popup parent borders, because popupParent.getBoundingClientRect
36692 // returns the rect outside the borders, but the 0,0 coordinate for absolute
36693 // positioning is inside the border, leading the popup to be off by the width
36694 // of the border
36695 var popupParent = this.getPopupParent();
36696 var eDocument = this.gridOptionsWrapper.getDocument();
36697 if (popupParent === eDocument.body) {
36698 popupParent = eDocument.documentElement;
36699 }
36700 var style = getComputedStyle(popupParent);
36701 var bounds = popupParent.getBoundingClientRect();
36702 return {
36703 top: bounds.top + parseFloat(style.borderTopWidth) || 0,
36704 left: bounds.left + parseFloat(style.borderLeftWidth) || 0,
36705 right: bounds.right + parseFloat(style.borderRightWidth) || 0,
36706 bottom: bounds.bottom + parseFloat(style.borderBottomWidth) || 0,
36707 };
36708 };
36709 PopupService.prototype.keepYWithinBounds = function (params, y) {
36710 var eDocument = this.gridOptionsWrapper.getDocument();
36711 var docElement = eDocument.documentElement;
36712 var popupParent = this.getPopupParent();
36713 var parentRect = popupParent.getBoundingClientRect();
36714 var documentRect = eDocument.documentElement.getBoundingClientRect();
36715 var isBody = popupParent === eDocument.body;
36716 var minHeight = Math.min(200, parentRect.height);
36717 var diff = 0;
36718 if (params.minHeight && params.minHeight < minHeight) {
36719 minHeight = params.minHeight;
36720 }
36721 else if (params.ePopup.offsetHeight > 0) {
36722 minHeight = params.ePopup.clientHeight;
36723 diff = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"])(params.ePopup) - minHeight;
36724 }
36725 var heightOfParent = isBody ? (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"])(docElement) + docElement.scrollTop) : parentRect.height;
36726 if (isBody) {
36727 heightOfParent -= Math.abs(documentRect.top - parentRect.top);
36728 }
36729 var maxY = heightOfParent - minHeight - diff;
36730 return Math.min(Math.max(y, 0), Math.abs(maxY));
36731 };
36732 PopupService.prototype.keepXWithinBounds = function (params, x) {
36733 var eDocument = this.gridOptionsWrapper.getDocument();
36734 var docElement = eDocument.documentElement;
36735 var popupParent = this.getPopupParent();
36736 var parentRect = popupParent.getBoundingClientRect();
36737 var documentRect = eDocument.documentElement.getBoundingClientRect();
36738 var isBody = popupParent === eDocument.body;
36739 var ePopup = params.ePopup;
36740 var minWidth = Math.min(200, parentRect.width);
36741 var diff = 0;
36742 if (params.minWidth && params.minWidth < minWidth) {
36743 minWidth = params.minWidth;
36744 }
36745 else if (ePopup.offsetWidth > 0) {
36746 minWidth = ePopup.offsetWidth;
36747 ePopup.style.minWidth = minWidth + "px";
36748 diff = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"])(ePopup) - minWidth;
36749 }
36750 var widthOfParent = isBody ? (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"])(docElement) + docElement.scrollLeft) : parentRect.width;
36751 if (isBody) {
36752 widthOfParent -= Math.abs(documentRect.left - parentRect.left);
36753 }
36754 var maxX = widthOfParent - minWidth - diff;
36755 return Math.min(Math.max(x, 0), Math.abs(maxX));
36756 };
36757 PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {
36758 var eParent = this.getPopupParent();
36759 var parentRect = eParent.getBoundingClientRect();
36760 var sourceRect = params.element.getBoundingClientRect();
36761 var initialDiffTop = parentRect.top - sourceRect.top;
36762 var initialDiffLeft = parentRect.left - sourceRect.left;
36763 var lastDiffTop = initialDiffTop;
36764 var lastDiffLeft = initialDiffLeft;
36765 var topPx = params.ePopup.style.top;
36766 var top = parseInt(topPx.substring(0, topPx.length - 1), 10);
36767 var leftPx = params.ePopup.style.left;
36768 var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);
36769 var intervalId = window.setInterval(function () {
36770 var pRect = eParent.getBoundingClientRect();
36771 var sRect = params.element.getBoundingClientRect();
36772 var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;
36773 if (elementNotInDom) {
36774 params.hidePopup();
36775 return;
36776 }
36777 var currentDiffTop = pRect.top - sRect.top;
36778 if (currentDiffTop != lastDiffTop) {
36779 var newTop = top + initialDiffTop - currentDiffTop;
36780 params.ePopup.style.top = newTop + "px";
36781 }
36782 lastDiffTop = currentDiffTop;
36783 var currentDiffLeft = pRect.left - sRect.left;
36784 if (currentDiffLeft != lastDiffLeft) {
36785 var newLeft = left + initialDiffLeft - currentDiffLeft;
36786 params.ePopup.style.left = newLeft + "px";
36787 }
36788 lastDiffLeft = currentDiffLeft;
36789 }, 200);
36790 var res = function () {
36791 if (intervalId != null) {
36792 window.clearInterval(intervalId);
36793 }
36794 intervalId = undefined;
36795 };
36796 return res;
36797 };
36798 PopupService.prototype.addPopup = function (params) {
36799 var _this = this;
36800 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;
36801 var eDocument = this.gridOptionsWrapper.getDocument();
36802 if (!eDocument) {
36803 console.warn('ag-grid: could not find the document, document is empty');
36804 return;
36805 }
36806 var pos = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["findIndex"])(this.popupList, function (popup) { return popup.element === eChild; });
36807 if (pos !== -1) {
36808 var popup = this.popupList[pos];
36809 return { hideFunc: popup.hideFunc, stopAnchoringFunc: popup.stopAnchoringFunc };
36810 }
36811 var ePopupParent = this.getPopupParent();
36812 // for angular specifically, but shouldn't cause an issue with js or other fw's
36813 // https://github.com/angular/angular/issues/8563
36814 ePopupParent.appendChild(eChild);
36815 if (eChild.style.top == null) {
36816 eChild.style.top = '0px';
36817 }
36818 if (eChild.style.left == null) {
36819 eChild.style.left = '0px';
36820 }
36821 // add env CSS class to child, in case user provided a popup parent, which means
36822 // theme class may be missing
36823 var eWrapper = document.createElement('div');
36824 var theme = this.environment.getTheme().theme;
36825 if (theme) {
36826 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eWrapper, theme);
36827 }
36828 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eWrapper, 'ag-popup');
36829 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eChild, this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr');
36830 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eChild, 'ag-popup-child');
36831 if (this.focusController.isKeyboardMode()) {
36832 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eChild, _focusController__WEBPACK_IMPORTED_MODULE_7__["FocusController"].AG_KEYBOARD_FOCUS);
36833 }
36834 eWrapper.appendChild(eChild);
36835 ePopupParent.appendChild(eWrapper);
36836 if (alwaysOnTop) {
36837 this.setAlwaysOnTop(eWrapper, true);
36838 }
36839 else {
36840 this.bringPopupToFront(eWrapper);
36841 }
36842 var popupHidden = false;
36843 var hidePopupOnKeyboardEvent = function (event) {
36844 if (!eWrapper.contains(document.activeElement)) {
36845 return;
36846 }
36847 var key = event.which || event.keyCode;
36848 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ESCAPE) {
36849 hidePopup({ keyboardEvent: event });
36850 }
36851 };
36852 var hidePopupOnMouseEvent = function (event) { return hidePopup({ mouseEvent: event }); };
36853 var hidePopupOnTouchEvent = function (event) { return hidePopup({ touchEvent: event }); };
36854 var destroyPositionTracker;
36855 var hidePopup = function (popupParams) {
36856 if (popupParams === void 0) { popupParams = {}; }
36857 var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;
36858 if (
36859 // we don't hide popup if the event was on the child, or any
36860 // children of this child
36861 _this.isEventFromCurrentPopup({ mouseEvent: mouseEvent, touchEvent: touchEvent }, eChild) ||
36862 // if the event to close is actually the open event, then ignore it
36863 _this.isEventSameChainAsOriginalEvent({ originalMouseEvent: click, mouseEvent: mouseEvent, touchEvent: touchEvent }) ||
36864 // this method should only be called once. the client can have different
36865 // paths, each one wanting to close, so this method may be called multiple times.
36866 popupHidden) {
36867 return;
36868 }
36869 popupHidden = true;
36870 ePopupParent.removeChild(eWrapper);
36871 eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);
36872 eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);
36873 eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);
36874 eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);
36875 _this.eventService.removeEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED, hidePopupOnMouseEvent);
36876 if (closedCallback) {
36877 closedCallback(mouseEvent || touchEvent || keyboardEvent);
36878 }
36879 _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });
36880 if (destroyPositionTracker) {
36881 destroyPositionTracker();
36882 }
36883 };
36884 if (afterGuiAttached) {
36885 afterGuiAttached({ hidePopup: hidePopup });
36886 }
36887 // if we add these listeners now, then the current mouse
36888 // click will be included, which we don't want
36889 window.setTimeout(function () {
36890 if (closeOnEsc) {
36891 eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);
36892 }
36893 if (modal) {
36894 eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);
36895 _this.eventService.addEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED, hidePopupOnMouseEvent);
36896 eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);
36897 eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);
36898 }
36899 }, 0);
36900 if (positionCallback) {
36901 positionCallback();
36902 }
36903 if (anchorToElement) {
36904 // keeps popup positioned under created, eg if context menu, if user scrolls
36905 // using touchpad and the cell moves, it moves the popup to keep it with the cell.
36906 destroyPositionTracker = this.keepPopupPositionedRelativeTo({
36907 element: anchorToElement,
36908 ePopup: eChild,
36909 hidePopup: hidePopup
36910 });
36911 }
36912 this.popupList.push({
36913 element: eChild,
36914 hideFunc: hidePopup,
36915 stopAnchoringFunc: destroyPositionTracker
36916 });
36917 return {
36918 hideFunc: hidePopup,
36919 stopAnchoringFunc: destroyPositionTracker
36920 };
36921 };
36922 PopupService.prototype.isEventFromCurrentPopup = function (params, target) {
36923 var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;
36924 var event = mouseEvent ? mouseEvent : touchEvent;
36925 if (!event) {
36926 return false;
36927 }
36928 var indexOfThisChild = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["findIndex"])(this.popupList, function (popup) { return popup.element === target; });
36929 if (indexOfThisChild === -1) {
36930 return false;
36931 }
36932 for (var i = indexOfThisChild; i < this.popupList.length; i++) {
36933 var popup = this.popupList[i];
36934 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isElementInEventPath"])(popup.element, event)) {
36935 return true;
36936 }
36937 }
36938 // if the user did not write their own Custom Element to be rendered as popup
36939 // and this component has an additional popup element, they should have the
36940 // `ag-custom-component-popup` class to be detected as part of the Custom Component
36941 return this.isElementWithinCustomPopup(event.target);
36942 };
36943 PopupService.prototype.isElementWithinCustomPopup = function (el) {
36944 if (!this.popupList.length) {
36945 return false;
36946 }
36947 while (el && el !== document.body) {
36948 if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {
36949 return true;
36950 }
36951 el = el.parentElement;
36952 }
36953 return false;
36954 };
36955 // in some browsers, the context menu event can be fired before the click event, which means
36956 // the context menu event could open the popup, but then the click event closes it straight away.
36957 PopupService.prototype.isEventSameChainAsOriginalEvent = function (params) {
36958 var originalMouseEvent = params.originalMouseEvent, mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;
36959 // we check the coordinates of the event, to see if it's the same event. there is a 1 / 1000 chance that
36960 // the event is a different event, however that is an edge case that is not very relevant (the user clicking
36961 // twice on the same location isn't a normal path).
36962 // event could be mouse event or touch event.
36963 var mouseEventOrTouch = null;
36964 if (mouseEvent) {
36965 // mouse event can be used direction, it has coordinates
36966 mouseEventOrTouch = mouseEvent;
36967 }
36968 else if (touchEvent) {
36969 // touch event doesn't have coordinates, need it's touch object
36970 mouseEventOrTouch = touchEvent.touches[0];
36971 }
36972 if (mouseEventOrTouch && originalMouseEvent) {
36973 // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed
36974 // by browser click (when you finger up, touch is interrupted as click in browser)
36975 var screenX_1 = mouseEvent ? mouseEvent.screenX : 0;
36976 var screenY_1 = mouseEvent ? mouseEvent.screenY : 0;
36977 var xMatch = Math.abs(originalMouseEvent.screenX - screenX_1) < 5;
36978 var yMatch = Math.abs(originalMouseEvent.screenY - screenY_1) < 5;
36979 if (xMatch && yMatch) {
36980 return true;
36981 }
36982 }
36983 return false;
36984 };
36985 PopupService.prototype.getWrapper = function (ePopup) {
36986 while (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(ePopup, 'ag-popup') && ePopup.parentElement) {
36987 ePopup = ePopup.parentElement;
36988 }
36989 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(ePopup, 'ag-popup') ? ePopup : null;
36990 };
36991 PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {
36992 var eWrapper = this.getWrapper(ePopup);
36993 if (!eWrapper) {
36994 return;
36995 }
36996 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(eWrapper, 'ag-always-on-top', !!alwaysOnTop);
36997 if (alwaysOnTop) {
36998 this.bringPopupToFront(eWrapper);
36999 }
37000 };
37001 PopupService.prototype.bringPopupToFront = function (ePopup) {
37002 var parent = this.getPopupParent();
37003 var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));
37004 var popupLen = popupList.length;
37005 var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));
37006 var onTopLength = alwaysOnTopList.length;
37007 var eWrapper = this.getWrapper(ePopup);
37008 if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {
37009 return;
37010 }
37011 var pos = popupList.indexOf(eWrapper);
37012 if (onTopLength) {
37013 var isPopupAlwaysOnTop = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(eWrapper, 'ag-always-on-top');
37014 if (isPopupAlwaysOnTop) {
37015 if (pos !== popupLen - 1) {
37016 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);
37017 }
37018 }
37019 else if (pos !== popupLen - onTopLength - 1) {
37020 alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);
37021 }
37022 }
37023 else if (pos !== popupLen - 1) {
37024 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(popupList).insertAdjacentElement('afterend', eWrapper);
37025 }
37026 var params = {
37027 type: 'popupToFront',
37028 api: this.gridOptionsWrapper.getApi(),
37029 columnApi: this.gridOptionsWrapper.getColumnApi(),
37030 eWrapper: eWrapper
37031 };
37032 this.eventService.dispatchEvent(params);
37033 };
37034 __decorate([
37035 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('environment')
37036 ], PopupService.prototype, "environment", void 0);
37037 __decorate([
37038 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
37039 ], PopupService.prototype, "focusController", void 0);
37040 PopupService = __decorate([
37041 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('popupService')
37042 ], PopupService);
37043 return PopupService;
37044}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
37045
37046
37047
37048/***/ }),
37049/* 154 */
37050/***/ (function(module, __webpack_exports__, __webpack_require__) {
37051
37052"use strict";
37053__webpack_require__.r(__webpack_exports__);
37054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusController", function() { return FocusController; });
37055/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37056/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37057/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
37058/* harmony import */ var _rendering_cellComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(107);
37059/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67);
37060/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(34);
37061/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
37062/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
37063/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16);
37064/**
37065 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37066 * @version v25.3.0
37067 * @link http://www.ag-grid.com/
37068 * @license MIT
37069 */
37070var __extends = (undefined && undefined.__extends) || (function () {
37071 var extendStatics = function (d, b) {
37072 extendStatics = Object.setPrototypeOf ||
37073 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37074 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37075 return extendStatics(d, b);
37076 };
37077 return function (d, b) {
37078 extendStatics(d, b);
37079 function __() { this.constructor = d; }
37080 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37081 };
37082})();
37083var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37084 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37085 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37086 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37087 return c > 3 && r && Object.defineProperty(target, key, r), r;
37088};
37089var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
37090 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
37091 for (var r = Array(s), k = 0, i = 0; i < il; i++)
37092 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
37093 r[k] = a[j];
37094 return r;
37095};
37096
37097
37098
37099
37100
37101
37102
37103
37104
37105var FocusController = /** @class */ (function (_super) {
37106 __extends(FocusController, _super);
37107 function FocusController() {
37108 return _super !== null && _super.apply(this, arguments) || this;
37109 }
37110 FocusController_1 = FocusController;
37111 /**
37112 * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode
37113 * in a specific HTMLDocument.
37114 *
37115 * @param doc {Document} - The Document containing the gridCore.
37116 * @param gridCore {GridComp} - The GridCore to be monitored.
37117 */
37118 FocusController.addKeyboardModeEvents = function (doc, controller) {
37119 var docControllers = FocusController_1.instancesMonitored.get(doc);
37120 if (docControllers && docControllers.length > 0) {
37121 if (docControllers.indexOf(controller) === -1) {
37122 docControllers.push(controller);
37123 }
37124 }
37125 else {
37126 FocusController_1.instancesMonitored.set(doc, [controller]);
37127 doc.addEventListener('keydown', FocusController_1.toggleKeyboardMode);
37128 doc.addEventListener('mousedown', FocusController_1.toggleKeyboardMode);
37129 }
37130 };
37131 /**
37132 * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode
37133 * in a specific HTMLDocument.
37134 *
37135 * @param doc {Document} - The Document containing the gridCore.
37136 * @param gridCore {GridComp} - The GridCore to be removed.
37137 */
37138 FocusController.removeKeyboardModeEvents = function (doc, controller) {
37139 var docControllers = FocusController_1.instancesMonitored.get(doc);
37140 var newControllers = [];
37141 if (docControllers && docControllers.length) {
37142 newControllers = __spreadArrays(docControllers).filter(function (currentGridCore) { return currentGridCore !== controller; });
37143 FocusController_1.instancesMonitored.set(doc, newControllers);
37144 }
37145 if (newControllers.length === 0) {
37146 doc.removeEventListener('keydown', FocusController_1.toggleKeyboardMode);
37147 doc.removeEventListener('mousedown', FocusController_1.toggleKeyboardMode);
37148 }
37149 };
37150 /**
37151 * This method will be called by `keydown` and `mousedown` events on all Documents monitoring
37152 * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in
37153 * the Document allowing each gridCore to maintain a state for KeyboardMode.
37154 *
37155 * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.
37156 */
37157 FocusController.toggleKeyboardMode = function (event) {
37158 var isKeyboardActive = FocusController_1.keyboardModeActive;
37159 var isKeyboardEvent = event.type === 'keydown';
37160 if (isKeyboardEvent) {
37161 // the following keys should not toggle keyboard mode.
37162 if (event.ctrlKey || event.metaKey || event.altKey) {
37163 return;
37164 }
37165 }
37166 if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {
37167 return;
37168 }
37169 FocusController_1.keyboardModeActive = isKeyboardEvent;
37170 var doc = event.target.ownerDocument;
37171 if (!doc) {
37172 return;
37173 }
37174 var controllersForDoc = FocusController_1.instancesMonitored.get(doc);
37175 if (controllersForDoc) {
37176 controllersForDoc.forEach(function (controller) {
37177 controller.dispatchEvent({ type: isKeyboardEvent ? _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_KEYBOARD_FOCUS : _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_MOUSE_FOCUS });
37178 });
37179 }
37180 };
37181 FocusController.prototype.init = function () {
37182 var clearFocusedCellListener = this.clearFocusedCell.bind(this);
37183 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);
37184 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));
37185 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);
37186 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);
37187 };
37188 FocusController.prototype.registerGridCompController = function (gridCompController) {
37189 var _this = this;
37190 this.gridCompController = gridCompController;
37191 var doc = this.gridOptionsWrapper.getDocument();
37192 FocusController_1.addKeyboardModeEvents(doc, gridCompController);
37193 this.addDestroyFunc(function () { return _this.unregisterGridCompController(gridCompController); });
37194 };
37195 FocusController.prototype.unregisterGridCompController = function (gridCompController) {
37196 var doc = this.gridOptionsWrapper.getDocument();
37197 FocusController_1.removeKeyboardModeEvents(doc, gridCompController);
37198 };
37199 FocusController.prototype.onColumnEverythingChanged = function () {
37200 // if the columns change, check and see if this column still exists. if it does, then
37201 // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.
37202 if (!this.focusedCellPosition) {
37203 return;
37204 }
37205 var col = this.focusedCellPosition.column;
37206 var colFromColumnController = this.columnController.getGridColumn(col.getId());
37207 if (col !== colFromColumnController) {
37208 this.clearFocusedCell();
37209 }
37210 };
37211 FocusController.prototype.isKeyboardMode = function () {
37212 return FocusController_1.keyboardModeActive;
37213 };
37214 // we check if the browser is focusing something, and if it is, and
37215 // it's the cell we think is focused, then return the cell. so this
37216 // methods returns the cell if a) we think it has focus and b) the
37217 // browser thinks it has focus. this then returns nothing if we
37218 // first focus a cell, then second click outside the grid, as then the
37219 // grid cell will still be focused as far as the grid is concerned,
37220 // however the browser focus will have moved somewhere else.
37221 FocusController.prototype.getFocusCellToUseAfterRefresh = function () {
37222 if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedCellPosition) {
37223 return null;
37224 }
37225 // we check that the browser is actually focusing on the grid, if it is not, then
37226 // we have nothing to worry about
37227 if (!this.getGridCellForDomElement(document.activeElement)) {
37228 return null;
37229 }
37230 return this.focusedCellPosition;
37231 };
37232 FocusController.prototype.getGridCellForDomElement = function (eBrowserCell) {
37233 var ePointer = eBrowserCell;
37234 while (ePointer) {
37235 var cellComp = this.gridOptionsWrapper.getDomData(ePointer, _rendering_cellComp__WEBPACK_IMPORTED_MODULE_3__["CellComp"].DOM_DATA_KEY_CELL_COMP);
37236 if (cellComp) {
37237 return cellComp.getCellPosition();
37238 }
37239 ePointer = ePointer.parentNode;
37240 }
37241 return null;
37242 };
37243 FocusController.prototype.clearFocusedCell = function () {
37244 this.focusedCellPosition = null;
37245 this.onCellFocused(false);
37246 };
37247 FocusController.prototype.getFocusedCell = function () {
37248 return this.focusedCellPosition;
37249 };
37250 FocusController.prototype.setFocusedCell = function (rowIndex, colKey, floating, forceBrowserFocus) {
37251 if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }
37252 var gridColumn = this.columnController.getGridColumn(colKey);
37253 // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,
37254 // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries
37255 // to re-focus the focused cell.
37256 if (!gridColumn) {
37257 this.focusedCellPosition = null;
37258 return;
37259 }
37260 this.focusedCellPosition = gridColumn ? { rowIndex: rowIndex, rowPinned: Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["makeNull"])(floating), column: gridColumn } : null;
37261 this.onCellFocused(forceBrowserFocus);
37262 };
37263 FocusController.prototype.isCellFocused = function (cellPosition) {
37264 if (this.focusedCellPosition == null) {
37265 return false;
37266 }
37267 return this.focusedCellPosition.column === cellPosition.column &&
37268 this.isRowFocused(cellPosition.rowIndex, cellPosition.rowPinned);
37269 };
37270 FocusController.prototype.isRowNodeFocused = function (rowNode) {
37271 return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);
37272 };
37273 FocusController.prototype.isHeaderWrapperFocused = function (headerWrapper) {
37274 if (this.focusedHeaderPosition == null) {
37275 return false;
37276 }
37277 var column = headerWrapper.getColumn();
37278 var headerRowIndex = headerWrapper.getParentComponent().getRowIndex();
37279 var pinned = headerWrapper.getPinned();
37280 var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;
37281 return column === focusedColumn &&
37282 headerRowIndex === focusedHeaderRowIndex &&
37283 pinned == focusedColumn.getPinned();
37284 };
37285 FocusController.prototype.clearFocusedHeader = function () {
37286 this.focusedHeaderPosition = null;
37287 };
37288 FocusController.prototype.getFocusedHeader = function () {
37289 return this.focusedHeaderPosition;
37290 };
37291 FocusController.prototype.setFocusedHeader = function (headerRowIndex, column) {
37292 this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };
37293 };
37294 FocusController.prototype.focusHeaderPosition = function (headerPosition, direction, fromTab, allowUserOverride, event) {
37295 if (direction === void 0) { direction = null; }
37296 if (fromTab === void 0) { fromTab = false; }
37297 if (allowUserOverride === void 0) { allowUserOverride = false; }
37298 if (allowUserOverride) {
37299 var gridOptionsWrapper = this.gridOptionsWrapper;
37300 var currentPosition = this.getFocusedHeader();
37301 var headerRowCount = this.headerNavigationService.getHeaderRowCount();
37302 if (fromTab) {
37303 var userFunc = gridOptionsWrapper.getTabToNextHeaderFunc();
37304 if (userFunc) {
37305 var params = {
37306 backwards: direction === 'Before',
37307 previousHeaderPosition: currentPosition,
37308 nextHeaderPosition: headerPosition,
37309 headerRowCount: headerRowCount
37310 };
37311 headerPosition = userFunc(params);
37312 }
37313 }
37314 else {
37315 var userFunc = gridOptionsWrapper.getNavigateToNextHeaderFunc();
37316 if (userFunc && event) {
37317 var params = {
37318 key: event.key,
37319 previousHeaderPosition: currentPosition,
37320 nextHeaderPosition: headerPosition,
37321 headerRowCount: headerRowCount,
37322 event: event
37323 };
37324 headerPosition = userFunc(params);
37325 }
37326 }
37327 }
37328 if (!headerPosition) {
37329 return false;
37330 }
37331 if (headerPosition.headerRowIndex === -1) {
37332 return this.focusGridView(headerPosition.column);
37333 }
37334 this.headerNavigationService.scrollToColumn(headerPosition.column, direction);
37335 var childContainer = this.headerNavigationService.getHeaderContainer(headerPosition.column.getPinned());
37336 var rowComps = childContainer.getRowComps();
37337 var nextRowComp = rowComps[headerPosition.headerRowIndex];
37338 var headerComps = nextRowComp.getHeaderComps();
37339 var nextHeader = headerComps[headerPosition.column.getUniqueId()];
37340 if (nextHeader) {
37341 // this will automatically call the setFocusedHeader method above
37342 nextHeader.getFocusableElement().focus();
37343 return true;
37344 }
37345 return false;
37346 };
37347 FocusController.prototype.isAnyCellFocused = function () {
37348 return !!this.focusedCellPosition;
37349 };
37350 FocusController.prototype.isRowFocused = function (rowIndex, floating) {
37351 if (this.focusedCellPosition == null) {
37352 return false;
37353 }
37354 return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["makeNull"])(floating);
37355 };
37356 FocusController.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {
37357 if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }
37358 var focusableString = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].FOCUSABLE_SELECTOR;
37359 var excludeString = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].FOCUSABLE_EXCLUDE;
37360 if (exclude) {
37361 excludeString += ', ' + exclude;
37362 }
37363 if (onlyUnmanaged) {
37364 excludeString += ', [tabindex="-1"]';
37365 }
37366 var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));
37367 var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));
37368 if (!excludeNodes.length) {
37369 return nodes;
37370 }
37371 var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };
37372 return diff(nodes, excludeNodes);
37373 };
37374 FocusController.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {
37375 if (up === void 0) { up = false; }
37376 if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }
37377 var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);
37378 var toFocus = up ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["last"])(focusableElements) : focusableElements[0];
37379 if (toFocus) {
37380 toFocus.focus();
37381 return true;
37382 }
37383 return false;
37384 };
37385 FocusController.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {
37386 var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex="-1"])' : null);
37387 var currentIndex;
37388 if (onlyManaged) {
37389 currentIndex = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["findIndex"])(focusable, function (el) { return el.contains(document.activeElement); });
37390 }
37391 else {
37392 currentIndex = focusable.indexOf(document.activeElement);
37393 }
37394 var nextIndex = currentIndex + (backwards ? -1 : 1);
37395 if (nextIndex < 0 || nextIndex >= focusable.length) {
37396 return null;
37397 }
37398 return focusable[nextIndex];
37399 };
37400 FocusController.prototype.isFocusUnderManagedComponent = function (rootNode) {
37401 var managedContainers = rootNode.querySelectorAll("." + _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_4__["ManagedFocusComponent"].FOCUS_MANAGED_CLASS);
37402 if (!managedContainers.length) {
37403 return false;
37404 }
37405 for (var i = 0; i < managedContainers.length; i++) {
37406 if (managedContainers[i].contains(document.activeElement)) {
37407 return true;
37408 }
37409 }
37410 return false;
37411 };
37412 FocusController.prototype.findTabbableParent = function (node, limit) {
37413 if (limit === void 0) { limit = 5; }
37414 var counter = 0;
37415 while (node && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["getTabIndex"])(node) === null && ++counter <= limit) {
37416 node = node.parentElement;
37417 }
37418 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["getTabIndex"])(node) === null) {
37419 return null;
37420 }
37421 return node;
37422 };
37423 FocusController.prototype.onCellFocused = function (forceBrowserFocus) {
37424 var event = {
37425 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_CELL_FOCUSED,
37426 forceBrowserFocus: forceBrowserFocus,
37427 rowIndex: null,
37428 column: null,
37429 floating: null,
37430 api: this.gridApi,
37431 columnApi: this.columnApi,
37432 rowPinned: null,
37433 isFullWidthCell: false
37434 };
37435 if (this.focusedCellPosition) {
37436 var rowIndex = event.rowIndex = this.focusedCellPosition.rowIndex;
37437 var rowPinned = event.rowPinned = this.focusedCellPosition.rowPinned;
37438 event.column = this.focusedCellPosition.column;
37439 var rowCon = this.rowRenderer.getRowConByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });
37440 if (rowCon) {
37441 event.isFullWidthCell = rowCon.isFullWidth();
37442 }
37443 }
37444 this.eventService.dispatchEvent(event);
37445 };
37446 FocusController.prototype.focusGridView = function (column, backwards) {
37447 var nextRow = backwards
37448 ? this.rowPositionUtils.getLastRow()
37449 : this.rowPositionUtils.getFirstRow();
37450 if (!nextRow) {
37451 return false;
37452 }
37453 var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;
37454 var focusedHeader = this.getFocusedHeader();
37455 if (!column && focusedHeader) {
37456 column = focusedHeader.column;
37457 }
37458 if (rowIndex == null || !column) {
37459 return false;
37460 }
37461 this.rowRenderer.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });
37462 this.setFocusedCell(rowIndex, column, Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["makeNull"])(rowPinned), true);
37463 if (this.rangeController) {
37464 var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };
37465 this.rangeController.setRangeToCell(cellPosition);
37466 }
37467 return true;
37468 };
37469 FocusController.prototype.focusNextGridCoreContainer = function (backwards) {
37470 if (this.gridCompController.focusNextInnerContainer(backwards)) {
37471 return true;
37472 }
37473 if (!backwards) {
37474 this.gridCompController.forceFocusOutOfContainer();
37475 }
37476 return false;
37477 };
37478 var FocusController_1;
37479 FocusController.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';
37480 FocusController.keyboardModeActive = false;
37481 FocusController.instancesMonitored = new Map();
37482 __decorate([
37483 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
37484 ], FocusController.prototype, "columnController", void 0);
37485 __decorate([
37486 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
37487 ], FocusController.prototype, "headerNavigationService", void 0);
37488 __decorate([
37489 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
37490 ], FocusController.prototype, "columnApi", void 0);
37491 __decorate([
37492 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
37493 ], FocusController.prototype, "gridApi", void 0);
37494 __decorate([
37495 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
37496 ], FocusController.prototype, "rowRenderer", void 0);
37497 __decorate([
37498 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
37499 ], FocusController.prototype, "rowPositionUtils", void 0);
37500 __decorate([
37501 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
37502 ], FocusController.prototype, "rangeController", void 0);
37503 __decorate([
37504 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
37505 ], FocusController.prototype, "init", null);
37506 FocusController = FocusController_1 = __decorate([
37507 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('focusController')
37508 ], FocusController);
37509 return FocusController;
37510}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37511
37512
37513
37514/***/ }),
37515/* 155 */
37516/***/ (function(module, __webpack_exports__, __webpack_require__) {
37517
37518"use strict";
37519__webpack_require__.r(__webpack_exports__);
37520/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return LoggerFactory; });
37521/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return Logger; });
37522/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37523/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37524/**
37525 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37526 * @version v25.3.0
37527 * @link http://www.ag-grid.com/
37528 * @license MIT
37529 */
37530var __extends = (undefined && undefined.__extends) || (function () {
37531 var extendStatics = function (d, b) {
37532 extendStatics = Object.setPrototypeOf ||
37533 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37534 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37535 return extendStatics(d, b);
37536 };
37537 return function (d, b) {
37538 extendStatics(d, b);
37539 function __() { this.constructor = d; }
37540 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37541 };
37542})();
37543var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37544 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37545 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37546 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37547 return c > 3 && r && Object.defineProperty(target, key, r), r;
37548};
37549var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
37550 return function (target, key) { decorator(target, key, paramIndex); }
37551};
37552
37553
37554
37555var LoggerFactory = /** @class */ (function (_super) {
37556 __extends(LoggerFactory, _super);
37557 function LoggerFactory() {
37558 return _super !== null && _super.apply(this, arguments) || this;
37559 }
37560 LoggerFactory.prototype.setBeans = function (gridOptionsWrapper) {
37561 this.logging = gridOptionsWrapper.isDebug();
37562 };
37563 LoggerFactory.prototype.create = function (name) {
37564 return new Logger(name, this.isLogging.bind(this));
37565 };
37566 LoggerFactory.prototype.isLogging = function () {
37567 return this.logging;
37568 };
37569 __decorate([
37570 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('gridOptionsWrapper'))
37571 ], LoggerFactory.prototype, "setBeans", null);
37572 LoggerFactory = __decorate([
37573 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('loggerFactory')
37574 ], LoggerFactory);
37575 return LoggerFactory;
37576}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37577
37578var Logger = /** @class */ (function () {
37579 function Logger(name, isLoggingFunc) {
37580 this.name = name;
37581 this.isLoggingFunc = isLoggingFunc;
37582 }
37583 Logger.prototype.isLogging = function () {
37584 return this.isLoggingFunc();
37585 };
37586 Logger.prototype.log = function (message) {
37587 if (this.isLoggingFunc()) {
37588 // tslint:disable-next-line
37589 console.log('AG Grid.' + this.name + ': ' + message);
37590 }
37591 };
37592 return Logger;
37593}());
37594
37595
37596
37597/***/ }),
37598/* 156 */
37599/***/ (function(module, __webpack_exports__, __webpack_require__) {
37600
37601"use strict";
37602__webpack_require__.r(__webpack_exports__);
37603/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return AutoWidthCalculator; });
37604/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37605/* harmony import */ var _headerRendering_header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(114);
37606/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
37607/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
37608/**
37609 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37610 * @version v25.3.0
37611 * @link http://www.ag-grid.com/
37612 * @license MIT
37613 */
37614var __extends = (undefined && undefined.__extends) || (function () {
37615 var extendStatics = function (d, b) {
37616 extendStatics = Object.setPrototypeOf ||
37617 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37618 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37619 return extendStatics(d, b);
37620 };
37621 return function (d, b) {
37622 extendStatics(d, b);
37623 function __() { this.constructor = d; }
37624 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37625 };
37626})();
37627var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37628 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37629 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37630 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37631 return c > 3 && r && Object.defineProperty(target, key, r), r;
37632};
37633
37634
37635
37636
37637var AutoWidthCalculator = /** @class */ (function (_super) {
37638 __extends(AutoWidthCalculator, _super);
37639 function AutoWidthCalculator() {
37640 return _super !== null && _super.apply(this, arguments) || this;
37641 }
37642 AutoWidthCalculator.prototype.postConstruct = function () {
37643 var _this = this;
37644 this.controllersService.whenReady(function (p) {
37645 _this.centerRowContainerCon = p.centerRowContainerCon;
37646 });
37647 };
37648 AutoWidthCalculator.prototype.registerHeaderRootComp = function (headerRootComp) {
37649 this.headerRootComp = headerRootComp;
37650 };
37651 // this is the trick: we create a dummy container and clone all the cells
37652 // into the dummy, then check the dummy's width. then destroy the dummy
37653 // as we don't need it any more.
37654 // drawback: only the cells visible on the screen are considered
37655 AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {
37656 var eHeaderCell = this.getHeaderCellForColumn(column);
37657 // cell isn't visible
37658 if (!eHeaderCell) {
37659 return -1;
37660 }
37661 var eDummyContainer = document.createElement('span');
37662 // position fixed, so it isn't restricted to the boundaries of the parent
37663 eDummyContainer.style.position = 'fixed';
37664 // we put the dummy into the body container, so it will inherit all the
37665 // css styles that the real cells are inheriting
37666 var eBodyContainer = this.centerRowContainerCon.getContainerElement();
37667 eBodyContainer.appendChild(eDummyContainer);
37668 // get all the cells that are currently displayed (this only brings back
37669 // rendered cells, rows not rendered due to row visualisation will not be here)
37670 this.putRowCellsIntoDummyContainer(column, eDummyContainer);
37671 if (!skipHeader) {
37672 // we only consider the lowest level cell, not the group cell. in 99% of the time, this
37673 // will be enough. if we consider groups, then it gets too complicated for what it's worth,
37674 // as the groups can span columns and this class only considers one column at a time.
37675 this.cloneItemIntoDummy(eHeaderCell, eDummyContainer);
37676 }
37677 // at this point, all the clones are lined up vertically with natural widths. the dummy
37678 // container will have a width wide enough just to fit the largest.
37679 var dummyContainerWidth = eDummyContainer.offsetWidth;
37680 // we are finished with the dummy container, so get rid of it
37681 eBodyContainer.removeChild(eDummyContainer);
37682 // we add padding as I found sometimes the gui still put '...' after some of the texts. so the
37683 // user can configure the grid to add a few more pixels after the calculated width
37684 var autoSizePadding = this.gridOptionsWrapper.getAutoSizePadding();
37685 return dummyContainerWidth + autoSizePadding;
37686 };
37687 AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {
37688 var comp = null;
37689 // find the rendered header cell
37690 this.headerRootComp.forEachHeaderElement(function (headerElement) {
37691 if (headerElement instanceof _headerRendering_header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_1__["HeaderWrapperComp"]) {
37692 var headerWrapperComp = headerElement;
37693 if (headerWrapperComp.getColumn() === column) {
37694 comp = headerWrapperComp;
37695 }
37696 }
37697 });
37698 return comp ? comp.getGui() : null;
37699 };
37700 AutoWidthCalculator.prototype.putRowCellsIntoDummyContainer = function (column, eDummyContainer) {
37701 var _this = this;
37702 var eCells = this.rowRenderer.getAllCellsForColumn(column);
37703 eCells.forEach(function (eCell) { return _this.cloneItemIntoDummy(eCell, eDummyContainer); });
37704 };
37705 AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {
37706 // make a deep clone of the cell
37707 var eCellClone = eCell.cloneNode(true);
37708 // the original has a fixed width, we remove this to allow the natural width based on content
37709 eCellClone.style.width = '';
37710 // the original has position = absolute, we need to remove this so it's positioned normally
37711 eCellClone.style.position = 'static';
37712 eCellClone.style.left = '';
37713 // we put the cell into a containing div, as otherwise the cells would just line up
37714 // on the same line, standard flow layout, by putting them into divs, they are laid
37715 // out one per line
37716 var eCloneParent = document.createElement('div');
37717 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(eCellClone, 'ag-header-cell')) {
37718 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eCloneParent, 'ag-header');
37719 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eCloneParent, 'ag-header-row');
37720 eCloneParent.style.position = 'static';
37721 }
37722 else {
37723 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eCloneParent, 'ag-row');
37724 }
37725 // table-row, so that each cell is on a row. i also tried display='block', but this
37726 // didn't work in IE
37727 eCloneParent.style.display = 'table-row';
37728 // the twig on the branch, the branch on the tree, the tree in the hole,
37729 // the hole in the bog, the bog in the clone, the clone in the parent,
37730 // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....
37731 eCloneParent.appendChild(eCellClone);
37732 eDummyContainer.appendChild(eCloneParent);
37733 };
37734 __decorate([
37735 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
37736 ], AutoWidthCalculator.prototype, "rowRenderer", void 0);
37737 __decorate([
37738 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
37739 ], AutoWidthCalculator.prototype, "controllersService", void 0);
37740 __decorate([
37741 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
37742 ], AutoWidthCalculator.prototype, "postConstruct", null);
37743 AutoWidthCalculator = __decorate([
37744 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoWidthCalculator')
37745 ], AutoWidthCalculator);
37746 return AutoWidthCalculator;
37747}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
37748
37749
37750
37751/***/ }),
37752/* 157 */
37753/***/ (function(module, __webpack_exports__, __webpack_require__) {
37754
37755"use strict";
37756__webpack_require__.r(__webpack_exports__);
37757/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return HorizontalResizeService; });
37758/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37759/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37760/**
37761 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37762 * @version v25.3.0
37763 * @link http://www.ag-grid.com/
37764 * @license MIT
37765 */
37766var __extends = (undefined && undefined.__extends) || (function () {
37767 var extendStatics = function (d, b) {
37768 extendStatics = Object.setPrototypeOf ||
37769 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37770 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37771 return extendStatics(d, b);
37772 };
37773 return function (d, b) {
37774 extendStatics(d, b);
37775 function __() { this.constructor = d; }
37776 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37777 };
37778})();
37779var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37780 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37781 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37782 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37783 return c > 3 && r && Object.defineProperty(target, key, r), r;
37784};
37785
37786
37787var HorizontalResizeService = /** @class */ (function (_super) {
37788 __extends(HorizontalResizeService, _super);
37789 function HorizontalResizeService() {
37790 return _super !== null && _super.apply(this, arguments) || this;
37791 }
37792 HorizontalResizeService.prototype.addResizeBar = function (params) {
37793 var _this = this;
37794 var dragSource = {
37795 dragStartPixels: params.dragStartPixels || 0,
37796 eElement: params.eResizeBar,
37797 onDragStart: this.onDragStart.bind(this, params),
37798 onDragStop: this.onDragStop.bind(this, params),
37799 onDragging: this.onDragging.bind(this, params)
37800 };
37801 this.dragService.addDragSource(dragSource, true);
37802 // we pass remove func back to the caller, so call can tell us when they
37803 // are finished, and then we remove the listener from the drag source
37804 var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };
37805 return finishedWithResizeFunc;
37806 };
37807 HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {
37808 this.dragStartX = mouseEvent.clientX;
37809 this.setResizeIcons();
37810 var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;
37811 params.onResizeStart(shiftKey);
37812 };
37813 HorizontalResizeService.prototype.setResizeIcons = function () {
37814 this.oldBodyCursor = this.eGridDiv.style.cursor;
37815 this.oldUserSelect = this.eGridDiv.style.userSelect;
37816 this.oldWebkitUserSelect = this.eGridDiv.style.webkitUserSelect;
37817 // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'
37818 this.eGridDiv.style.cursor = 'ew-resize';
37819 // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)
37820 this.eGridDiv.style.userSelect = 'none';
37821 this.eGridDiv.style.webkitUserSelect = 'none';
37822 };
37823 HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {
37824 params.onResizeEnd(this.resizeAmount);
37825 this.resetIcons();
37826 };
37827 HorizontalResizeService.prototype.resetIcons = function () {
37828 // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)
37829 this.eGridDiv.style.cursor = this.oldBodyCursor;
37830 this.eGridDiv.style.userSelect = this.oldUserSelect;
37831 this.eGridDiv.style.webkitUserSelect = this.oldWebkitUserSelect;
37832 };
37833 HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {
37834 this.resizeAmount = mouseEvent.clientX - this.dragStartX;
37835 params.onResizing(this.resizeAmount);
37836 };
37837 __decorate([
37838 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragService')
37839 ], HorizontalResizeService.prototype, "dragService", void 0);
37840 __decorate([
37841 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eGridDiv')
37842 ], HorizontalResizeService.prototype, "eGridDiv", void 0);
37843 HorizontalResizeService = __decorate([
37844 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('horizontalResizeService')
37845 ], HorizontalResizeService);
37846 return HorizontalResizeService;
37847}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37848
37849
37850
37851/***/ }),
37852/* 158 */
37853/***/ (function(module, __webpack_exports__, __webpack_require__) {
37854
37855"use strict";
37856__webpack_require__.r(__webpack_exports__);
37857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return GridComp; });
37858/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37859/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
37860/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67);
37861/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
37862/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
37863/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(154);
37864/* harmony import */ var _gridCompController__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(159);
37865/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(137);
37866/**
37867 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37868 * @version v25.3.0
37869 * @link http://www.ag-grid.com/
37870 * @license MIT
37871 */
37872var __extends = (undefined && undefined.__extends) || (function () {
37873 var extendStatics = function (d, b) {
37874 extendStatics = Object.setPrototypeOf ||
37875 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37876 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37877 return extendStatics(d, b);
37878 };
37879 return function (d, b) {
37880 extendStatics(d, b);
37881 function __() { this.constructor = d; }
37882 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37883 };
37884})();
37885var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37886 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37887 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37888 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
37889 return c > 3 && r && Object.defineProperty(target, key, r), r;
37890};
37891
37892
37893
37894
37895
37896
37897
37898
37899var GridComp = /** @class */ (function (_super) {
37900 __extends(GridComp, _super);
37901 function GridComp(eGridDiv) {
37902 var _this = _super.call(this, undefined, true) || this;
37903 _this.eGridDiv = eGridDiv;
37904 return _this;
37905 }
37906 GridComp.prototype.postConstruct = function () {
37907 var _this = this;
37908 this.logger = this.loggerFactory.create('GridComp');
37909 var view = {
37910 destroyGridUi: function () { return _this.destroyBean(_this); },
37911 setRtlClass: function (cssClass) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(_this.getGui(), cssClass); },
37912 addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(_focusController__WEBPACK_IMPORTED_MODULE_5__["FocusController"].AG_KEYBOARD_FOCUS, addOrRemove); },
37913 forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),
37914 updateLayoutClasses: this.updateLayoutClasses.bind(this),
37915 getFocusableContainers: this.getFocusableContainers.bind(this)
37916 };
37917 this.con = this.createManagedBean(new _gridCompController__WEBPACK_IMPORTED_MODULE_6__["GridCompController"]());
37918 var template = this.createTemplate();
37919 this.setTemplate(template);
37920 this.con.setView(view, this.eGridDiv, this.getGui());
37921 this.insertGridIntoDom();
37922 _super.prototype.postConstruct.call(this);
37923 };
37924 GridComp.prototype.insertGridIntoDom = function () {
37925 var _this = this;
37926 var eGui = this.getGui();
37927 this.eGridDiv.appendChild(eGui);
37928 this.addDestroyFunc(function () {
37929 _this.eGridDiv.removeChild(eGui);
37930 _this.logger.log('Grid removed from DOM');
37931 });
37932 };
37933 GridComp.prototype.updateLayoutClasses = function (params) {
37934 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eRootWrapperBody, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
37935 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eRootWrapperBody, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].NORMAL, params.normal);
37936 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eRootWrapperBody, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].PRINT, params.print);
37937 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
37938 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].NORMAL, params.normal);
37939 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].PRINT, params.print);
37940 };
37941 GridComp.prototype.createTemplate = function () {
37942 var dropZones = this.con.showDropZones() ? '<ag-grid-header-drop-zones></ag-grid-header-drop-zones>' : '';
37943 var sideBar = this.con.showSideBar() ? '<ag-side-bar ref="sideBar"></ag-side-bar>' : '';
37944 var statusBar = this.con.showStatusBar() ? '<ag-status-bar ref="statusBar"></ag-status-bar>' : '';
37945 var watermark = this.con.showWatermark() ? '<ag-watermark></ag-watermark>' : '';
37946 var template = /* html */ "<div ref=\"eRootWrapper\" class=\"ag-root-wrapper\">\n " + dropZones + "\n <div class=\"ag-root-wrapper-body\" ref=\"rootWrapperBody\">\n <ag-grid-body ref=\"gridBody\"></ag-grid-body>\n " + sideBar + "\n </div>\n " + statusBar + "\n <ag-pagination></ag-pagination>\n " + watermark + "\n </div>";
37947 return template;
37948 };
37949 GridComp.prototype.getFocusableElement = function () {
37950 return this.eRootWrapperBody;
37951 };
37952 GridComp.prototype.getFocusableContainers = function () {
37953 var focusableContainers = [
37954 this.gridBodyComp.getGui()
37955 ];
37956 if (this.sideBarComp) {
37957 focusableContainers.push(this.sideBarComp.getGui());
37958 }
37959 return focusableContainers.filter(function (el) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["isVisible"])(el); });
37960 };
37961 GridComp.prototype.focusInnerElement = function (fromBottom) {
37962 var focusableContainers = this.getFocusableContainers();
37963 if (fromBottom) {
37964 if (focusableContainers.length > 1) {
37965 return this.focusController.focusInto(Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(focusableContainers));
37966 }
37967 var lastColumn = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(this.columnController.getAllDisplayedColumns());
37968 if (this.focusController.focusGridView(lastColumn, true)) {
37969 return true;
37970 }
37971 }
37972 return this.con.focusGridHeader();
37973 };
37974 GridComp.prototype.onTabKeyDown = function () { };
37975 __decorate([
37976 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
37977 ], GridComp.prototype, "columnController", void 0);
37978 __decorate([
37979 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
37980 ], GridComp.prototype, "loggerFactory", void 0);
37981 __decorate([
37982 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('gridBody')
37983 ], GridComp.prototype, "gridBodyComp", void 0);
37984 __decorate([
37985 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('sideBar')
37986 ], GridComp.prototype, "sideBarComp", void 0);
37987 __decorate([
37988 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('rootWrapperBody')
37989 ], GridComp.prototype, "eRootWrapperBody", void 0);
37990 return GridComp;
37991}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__["ManagedFocusComponent"]));
37992
37993
37994
37995/***/ }),
37996/* 159 */
37997/***/ (function(module, __webpack_exports__, __webpack_require__) {
37998
37999"use strict";
38000__webpack_require__.r(__webpack_exports__);
38001/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCompController", function() { return GridCompController; });
38002/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38003/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38004/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
38005/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
38006/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(137);
38007/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24);
38008/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
38009/**
38010 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38011 * @version v25.3.0
38012 * @link http://www.ag-grid.com/
38013 * @license MIT
38014 */
38015var __extends = (undefined && undefined.__extends) || (function () {
38016 var extendStatics = function (d, b) {
38017 extendStatics = Object.setPrototypeOf ||
38018 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38019 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38020 return extendStatics(d, b);
38021 };
38022 return function (d, b) {
38023 extendStatics(d, b);
38024 function __() { this.constructor = d; }
38025 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38026 };
38027})();
38028var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38029 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38030 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38031 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
38032 return c > 3 && r && Object.defineProperty(target, key, r), r;
38033};
38034
38035
38036
38037
38038
38039
38040
38041var GridCompController = /** @class */ (function (_super) {
38042 __extends(GridCompController, _super);
38043 function GridCompController() {
38044 return _super.call(this) || this;
38045 }
38046 GridCompController.prototype.postConstruct = function () {
38047 var _this = this;
38048 this.logger = this.loggerFactory.create('GridCompController');
38049 // register with services that need grid core
38050 [
38051 this.gridApi,
38052 this.popupService,
38053 this.focusController,
38054 this.controllersService
38055 ].forEach(function (service) { return service.registerGridCompController(_this); });
38056 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].ClipboardModule)) {
38057 this.clipboardService.registerGridCompController(this);
38058 }
38059 };
38060 GridCompController.prototype.setView = function (view, eGridDiv, eGui) {
38061 var _this = this;
38062 this.view = view;
38063 this.eGridHostDiv = eGridDiv;
38064 this.eGui = eGui;
38065 this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);
38066 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutFeature"](this.view));
38067 // important to set rtl before doLayout, as setting the RTL class impacts the scroll position,
38068 // which doLayout indirectly depends on
38069 this.addRtlSupport();
38070 this.addManagedListener(this, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_KEYBOARD_FOCUS, function () {
38071 _this.view.addOrRemoveKeyboardFocusClass(true);
38072 });
38073 this.addManagedListener(this, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_MOUSE_FOCUS, function () {
38074 _this.view.addOrRemoveKeyboardFocusClass(false);
38075 });
38076 var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));
38077 this.addDestroyFunc(function () { return unsubscribeFromResize(); });
38078 };
38079 GridCompController.prototype.showDropZones = function () {
38080 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule);
38081 };
38082 GridCompController.prototype.showSideBar = function () {
38083 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SideBarModule);
38084 };
38085 GridCompController.prototype.showStatusBar = function () {
38086 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].StatusBarModule);
38087 };
38088 GridCompController.prototype.showWatermark = function () {
38089 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].EnterpriseCoreModule);
38090 ;
38091 };
38092 GridCompController.prototype.onGridSizeChanged = function () {
38093 var event = {
38094 type: _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_GRID_SIZE_CHANGED,
38095 api: this.gridApi,
38096 columnApi: this.columnApi,
38097 clientWidth: this.eGridHostDiv.clientWidth,
38098 clientHeight: this.eGridHostDiv.clientHeight
38099 };
38100 this.eventService.dispatchEvent(event);
38101 };
38102 GridCompController.prototype.addRtlSupport = function () {
38103 var cssClass = this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr';
38104 this.view.setRtlClass(cssClass);
38105 };
38106 GridCompController.prototype.destroyGridUi = function () {
38107 this.view.destroyGridUi();
38108 };
38109 GridCompController.prototype.getGui = function () {
38110 return this.eGui;
38111 };
38112 GridCompController.prototype.focusNextInnerContainer = function (backwards) {
38113 var focusableContainers = this.view.getFocusableContainers();
38114 var idxWithFocus = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["findIndex"])(focusableContainers, function (container) { return container.contains(document.activeElement); });
38115 var nextIdx = idxWithFocus + (backwards ? -1 : 1);
38116 if (nextIdx < 0 || nextIdx >= focusableContainers.length) {
38117 return false;
38118 }
38119 if (nextIdx === 0) {
38120 return this.focusGridHeader();
38121 }
38122 return this.focusController.focusInto(focusableContainers[nextIdx]);
38123 };
38124 GridCompController.prototype.focusGridHeader = function () {
38125 var firstColumn = this.columnController.getAllDisplayedColumns()[0];
38126 if (!firstColumn) {
38127 return false;
38128 }
38129 if (firstColumn.getParent()) {
38130 firstColumn = this.columnController.getColumnGroupAtLevel(firstColumn, 0);
38131 }
38132 this.focusController.focusHeaderPosition({ headerRowIndex: 0, column: firstColumn });
38133 return true;
38134 };
38135 GridCompController.prototype.forceFocusOutOfContainer = function (up) {
38136 if (up === void 0) { up = false; }
38137 this.view.forceFocusOutOfContainer(up);
38138 };
38139 __decorate([
38140 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
38141 ], GridCompController.prototype, "columnApi", void 0);
38142 __decorate([
38143 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
38144 ], GridCompController.prototype, "gridApi", void 0);
38145 __decorate([
38146 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
38147 ], GridCompController.prototype, "popupService", void 0);
38148 __decorate([
38149 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
38150 ], GridCompController.prototype, "focusController", void 0);
38151 __decorate([
38152 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('clipboardService')
38153 ], GridCompController.prototype, "clipboardService", void 0);
38154 __decorate([
38155 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
38156 ], GridCompController.prototype, "loggerFactory", void 0);
38157 __decorate([
38158 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
38159 ], GridCompController.prototype, "resizeObserverService", void 0);
38160 __decorate([
38161 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
38162 ], GridCompController.prototype, "columnController", void 0);
38163 __decorate([
38164 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
38165 ], GridCompController.prototype, "controllersService", void 0);
38166 __decorate([
38167 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
38168 ], GridCompController.prototype, "mouseEventService", void 0);
38169 __decorate([
38170 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
38171 ], GridCompController.prototype, "postConstruct", null);
38172 return GridCompController;
38173}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38174
38175
38176
38177/***/ }),
38178/* 160 */
38179/***/ (function(module, __webpack_exports__, __webpack_require__) {
38180
38181"use strict";
38182__webpack_require__.r(__webpack_exports__);
38183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return StandardMenuFactory; });
38184/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38185/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38186/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
38187/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
38188/**
38189 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38190 * @version v25.3.0
38191 * @link http://www.ag-grid.com/
38192 * @license MIT
38193 */
38194var __extends = (undefined && undefined.__extends) || (function () {
38195 var extendStatics = function (d, b) {
38196 extendStatics = Object.setPrototypeOf ||
38197 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38198 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38199 return extendStatics(d, b);
38200 };
38201 return function (d, b) {
38202 extendStatics(d, b);
38203 function __() { this.constructor = d; }
38204 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38205 };
38206})();
38207var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38208 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38209 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38210 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
38211 return c > 3 && r && Object.defineProperty(target, key, r), r;
38212};
38213
38214
38215
38216
38217var StandardMenuFactory = /** @class */ (function (_super) {
38218 __extends(StandardMenuFactory, _super);
38219 function StandardMenuFactory() {
38220 return _super !== null && _super.apply(this, arguments) || this;
38221 }
38222 StandardMenuFactory.prototype.registerGridComp = function (gridBodyComp) {
38223 this.gridBodyComp = gridBodyComp;
38224 };
38225 StandardMenuFactory.prototype.hideActiveMenu = function () {
38226 if (this.hidePopup) {
38227 this.hidePopup();
38228 }
38229 };
38230 StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {
38231 var _this = this;
38232 this.showPopup(column, function (eMenu) {
38233 _this.popupService.positionPopupUnderMouseEvent({
38234 column: column,
38235 type: 'columnMenu',
38236 mouseEvent: mouseEvent,
38237 ePopup: eMenu
38238 });
38239 }, mouseEvent.target);
38240 };
38241 StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource) {
38242 var _this = this;
38243 this.showPopup(column, function (eMenu) {
38244 _this.popupService.positionPopupUnderComponent({
38245 type: 'columnMenu',
38246 eventSource: eventSource,
38247 ePopup: eMenu,
38248 keepWithinBounds: true,
38249 column: column
38250 });
38251 }, eventSource);
38252 };
38253 StandardMenuFactory.prototype.showPopup = function (column, positionCallback, eventSource) {
38254 var _this = this;
38255 var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');
38256 var eMenu = document.createElement('div');
38257 eMenu.setAttribute('role', 'presentation');
38258 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eMenu, 'ag-menu');
38259 this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });
38260 filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });
38261 var hidePopup;
38262 var anchorToElement = eventSource || this.gridBodyComp.getGui();
38263 var closedCallback = function (e) {
38264 column.setMenuVisible(false, 'contextMenu');
38265 var isKeyboardEvent = e instanceof KeyboardEvent;
38266 if (_this.tabListener) {
38267 _this.tabListener = _this.tabListener();
38268 }
38269 if (isKeyboardEvent && eventSource && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isVisible"])(eventSource)) {
38270 var focusableEl = _this.focusController.findTabbableParent(eventSource);
38271 if (focusableEl) {
38272 focusableEl.focus();
38273 }
38274 }
38275 };
38276 var addPopupRes = this.popupService.addPopup({
38277 modal: true,
38278 eChild: eMenu,
38279 closeOnEsc: true,
38280 closedCallback: closedCallback,
38281 positionCallback: function () { return positionCallback(eMenu); },
38282 anchorToElement: anchorToElement
38283 });
38284 if (addPopupRes) {
38285 this.hidePopup = hidePopup = addPopupRes.hideFunc;
38286 }
38287 filterWrapper.filterPromise.then(function (filter) {
38288 // need to make sure the filter is present before positioning, as only
38289 // after filter it is visible can we find out what the width of it is
38290 positionCallback(eMenu);
38291 if (filter.afterGuiAttached) {
38292 filter.afterGuiAttached({ container: 'columnMenu', hidePopup: hidePopup });
38293 }
38294 });
38295 column.setMenuVisible(true, 'contextMenu');
38296 };
38297 StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {
38298 if (e.keyCode !== _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].TAB ||
38299 e.defaultPrevented ||
38300 this.focusController.findNextFocusableElement(menu, false, e.shiftKey)) {
38301 return;
38302 }
38303 e.preventDefault();
38304 this.focusController.focusInto(menu, e.shiftKey);
38305 };
38306 StandardMenuFactory.prototype.isMenuEnabled = function (column) {
38307 // for standard, we show menu if filter is enabled, and the menu is not suppressed
38308 return column.isFilterAllowed();
38309 };
38310 __decorate([
38311 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
38312 ], StandardMenuFactory.prototype, "filterManager", void 0);
38313 __decorate([
38314 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
38315 ], StandardMenuFactory.prototype, "popupService", void 0);
38316 __decorate([
38317 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
38318 ], StandardMenuFactory.prototype, "focusController", void 0);
38319 StandardMenuFactory = __decorate([
38320 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('menuFactory')
38321 ], StandardMenuFactory);
38322 return StandardMenuFactory;
38323}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38324
38325
38326
38327/***/ }),
38328/* 161 */
38329/***/ (function(module, __webpack_exports__, __webpack_require__) {
38330
38331"use strict";
38332__webpack_require__.r(__webpack_exports__);
38333/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return DragService; });
38334/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38335/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
38336/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
38337/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
38338/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
38339/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
38340/* harmony import */ var _utils_mouse__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(52);
38341/**
38342 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38343 * @version v25.3.0
38344 * @link http://www.ag-grid.com/
38345 * @license MIT
38346 */
38347var __extends = (undefined && undefined.__extends) || (function () {
38348 var extendStatics = function (d, b) {
38349 extendStatics = Object.setPrototypeOf ||
38350 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38351 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38352 return extendStatics(d, b);
38353 };
38354 return function (d, b) {
38355 extendStatics(d, b);
38356 function __() { this.constructor = d; }
38357 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38358 };
38359})();
38360var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38361 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38362 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38363 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
38364 return c > 3 && r && Object.defineProperty(target, key, r), r;
38365};
38366
38367
38368
38369
38370
38371
38372
38373/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,
38374 * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */
38375var DragService = /** @class */ (function (_super) {
38376 __extends(DragService, _super);
38377 function DragService() {
38378 var _this = _super !== null && _super.apply(this, arguments) || this;
38379 _this.dragEndFunctions = [];
38380 _this.dragSources = [];
38381 return _this;
38382 }
38383 DragService.prototype.init = function () {
38384 this.logger = this.loggerFactory.create('DragService');
38385 };
38386 DragService.prototype.removeAllListeners = function () {
38387 this.dragSources.forEach(this.removeListener.bind(this));
38388 this.dragSources.length = 0;
38389 };
38390 DragService.prototype.removeListener = function (dragSourceAndListener) {
38391 var element = dragSourceAndListener.dragSource.eElement;
38392 var mouseDownListener = dragSourceAndListener.mouseDownListener;
38393 element.removeEventListener('mousedown', mouseDownListener);
38394 // remove touch listener only if it exists
38395 if (dragSourceAndListener.touchEnabled) {
38396 var touchStartListener = dragSourceAndListener.touchStartListener;
38397 element.removeEventListener('touchstart', touchStartListener, { passive: true });
38398 }
38399 };
38400 DragService.prototype.removeDragSource = function (params) {
38401 var dragSourceAndListener = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["find"])(this.dragSources, function (item) { return item.dragSource === params; });
38402 if (!dragSourceAndListener) {
38403 return;
38404 }
38405 this.removeListener(dragSourceAndListener);
38406 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["removeFromArray"])(this.dragSources, dragSourceAndListener);
38407 };
38408 DragService.prototype.setNoSelectToBody = function (noSelect) {
38409 var eDocument = this.gridOptionsWrapper.getDocument();
38410 var eBody = eDocument.querySelector('body');
38411 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(eBody)) {
38412 // when we drag the mouse in AG Grid, this class gets added / removed from the body, so that
38413 // the mouse isn't selecting text when dragging.
38414 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(eBody, 'ag-unselectable', noSelect);
38415 }
38416 };
38417 DragService.prototype.isDragging = function () {
38418 return this.dragging;
38419 };
38420 DragService.prototype.addDragSource = function (params, includeTouch) {
38421 if (includeTouch === void 0) { includeTouch = false; }
38422 var mouseListener = this.onMouseDown.bind(this, params);
38423 params.eElement.addEventListener('mousedown', mouseListener);
38424 var touchListener = null;
38425 var suppressTouch = this.gridOptionsWrapper.isSuppressTouch();
38426 if (includeTouch && !suppressTouch) {
38427 touchListener = this.onTouchStart.bind(this, params);
38428 params.eElement.addEventListener('touchstart', touchListener, { passive: true });
38429 }
38430 this.dragSources.push({
38431 dragSource: params,
38432 mouseDownListener: mouseListener,
38433 touchStartListener: touchListener,
38434 touchEnabled: includeTouch
38435 });
38436 };
38437 // gets called whenever mouse down on any drag source
38438 DragService.prototype.onTouchStart = function (params, touchEvent) {
38439 var _this = this;
38440 this.currentDragParams = params;
38441 this.dragging = false;
38442 var touch = touchEvent.touches[0];
38443 this.touchLastTime = touch;
38444 this.touchStart = touch;
38445 var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };
38446 var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };
38447 var documentTouchMove = function (e) { if (e.cancelable) {
38448 e.preventDefault();
38449 } };
38450 var target = params.eElement;
38451 var events = [
38452 // Prevents the page document from moving while we are dragging items around.
38453 // preventDefault needs to be called in the touchmove listener and never inside the
38454 // touchstart, because using touchstart causes the click event to be cancelled on touch devices.
38455 { target: document, type: 'touchmove', listener: documentTouchMove, options: { passive: false } },
38456 { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },
38457 { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },
38458 { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }
38459 ];
38460 // temporally add these listeners, for the duration of the drag
38461 this.addTemporaryEvents(events);
38462 // see if we want to start dragging straight away
38463 if (params.dragStartPixels === 0) {
38464 this.onCommonMove(touch, this.touchStart, params.eElement);
38465 }
38466 };
38467 // gets called whenever mouse down on any drag source
38468 DragService.prototype.onMouseDown = function (params, mouseEvent) {
38469 var _this = this;
38470 var e = mouseEvent;
38471 if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {
38472 return;
38473 }
38474 // if there are two elements with parent / child relationship, and both are draggable,
38475 // when we drag the child, we should NOT drag the parent. an example of this is row moving
38476 // and range selection - row moving should get preference when use drags the rowDrag component.
38477 if (e._alreadyProcessedByDragService) {
38478 return;
38479 }
38480 e._alreadyProcessedByDragService = true;
38481 // only interested in left button clicks
38482 if (mouseEvent.button !== 0) {
38483 return;
38484 }
38485 this.currentDragParams = params;
38486 this.dragging = false;
38487 this.mouseStartEvent = mouseEvent;
38488 var eDocument = this.gridOptionsWrapper.getDocument();
38489 this.setNoSelectToBody(true);
38490 var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };
38491 var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };
38492 var contextEvent = function (event) { return event.preventDefault(); };
38493 var target = eDocument;
38494 var events = [
38495 { target: target, type: 'mousemove', listener: mouseMoveEvent },
38496 { target: target, type: 'mouseup', listener: mouseUpEvent },
38497 { target: target, type: 'contextmenu', listener: contextEvent }
38498 ];
38499 // temporally add these listeners, for the duration of the drag
38500 this.addTemporaryEvents(events);
38501 //see if we want to start dragging straight away
38502 if (params.dragStartPixels === 0) {
38503 this.onMouseMove(mouseEvent, params.eElement);
38504 }
38505 };
38506 DragService.prototype.addTemporaryEvents = function (events) {
38507 events.forEach(function (currentEvent) {
38508 var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;
38509 target.addEventListener(type, listener, options);
38510 });
38511 this.dragEndFunctions.push(function () {
38512 events.forEach(function (currentEvent) {
38513 var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;
38514 target.removeEventListener(type, listener, options);
38515 });
38516 });
38517 };
38518 // returns true if the event is close to the original event by X pixels either vertically or horizontally.
38519 // we only start dragging after X pixels so this allows us to know if we should start dragging yet.
38520 DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {
38521 // by default, we wait 4 pixels before starting the drag
38522 var dragStartPixels = this.currentDragParams.dragStartPixels;
38523 var requiredPixelDiff = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(dragStartPixels) ? dragStartPixels : 4;
38524 return Object(_utils_mouse__WEBPACK_IMPORTED_MODULE_6__["areEventsNear"])(currentEvent, startEvent, requiredPixelDiff);
38525 };
38526 DragService.prototype.getFirstActiveTouch = function (touchList) {
38527 for (var i = 0; i < touchList.length; i++) {
38528 if (touchList[i].identifier === this.touchStart.identifier) {
38529 return touchList[i];
38530 }
38531 }
38532 return null;
38533 };
38534 DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {
38535 if (!this.dragging) {
38536 // if mouse hasn't travelled from the start position enough, do nothing
38537 if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {
38538 return;
38539 }
38540 this.dragging = true;
38541 var event_1 = {
38542 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED,
38543 api: this.gridApi,
38544 columnApi: this.columnApi,
38545 target: el
38546 };
38547 this.eventService.dispatchEvent(event_1);
38548 this.currentDragParams.onDragStart(startEvent);
38549 // we need ONE drag action at the startEvent, so that we are guaranteed the drop target
38550 // at the start gets notified. this is because the drag can start outside of the element
38551 // that started it, as the mouse is allowed drag away from the mouse down before it's
38552 // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then
38553 // it would be possible to click a column by the edge, then drag outside of the drop zone
38554 // in less than 4 pixels and the drag officially starts outside of the header but the header
38555 // wouldn't be notified of the dragging.
38556 this.currentDragParams.onDragging(startEvent);
38557 }
38558 this.currentDragParams.onDragging(currentEvent);
38559 };
38560 DragService.prototype.onTouchMove = function (touchEvent, el) {
38561 var touch = this.getFirstActiveTouch(touchEvent.touches);
38562 if (!touch) {
38563 return;
38564 }
38565 // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');
38566 this.onCommonMove(touch, this.touchStart, el);
38567 };
38568 // only gets called after a mouse down - as this is only added after mouseDown
38569 // and is removed when mouseUp happens
38570 DragService.prototype.onMouseMove = function (mouseEvent, el) {
38571 this.onCommonMove(mouseEvent, this.mouseStartEvent, el);
38572 };
38573 DragService.prototype.onTouchUp = function (touchEvent, el) {
38574 var touch = this.getFirstActiveTouch(touchEvent.changedTouches);
38575 // i haven't worked this out yet, but there is no matching touch
38576 // when we get the touch up event. to get around this, we swap in
38577 // the last touch. this is a hack to 'get it working' while we
38578 // figure out what's going on, why we are not getting a touch in
38579 // current event.
38580 if (!touch) {
38581 touch = this.touchLastTime;
38582 }
38583 // if mouse was left up before we started to move, then this is a tap.
38584 // we check this before onUpCommon as onUpCommon resets the dragging
38585 // let tap = !this.dragging;
38586 // let tapTarget = this.currentDragParams.eElement;
38587 this.onUpCommon(touch, el);
38588 // if tap, tell user
38589 // console.log(`${Math.random()} tap = ${tap}`);
38590 // if (tap) {
38591 // tapTarget.click();
38592 // }
38593 };
38594 DragService.prototype.onMouseUp = function (mouseEvent, el) {
38595 this.onUpCommon(mouseEvent, el);
38596 };
38597 DragService.prototype.onUpCommon = function (eventOrTouch, el) {
38598 if (this.dragging) {
38599 this.dragging = false;
38600 this.currentDragParams.onDragStop(eventOrTouch);
38601 var event_2 = {
38602 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STOPPED,
38603 api: this.gridApi,
38604 columnApi: this.columnApi,
38605 target: el
38606 };
38607 this.eventService.dispatchEvent(event_2);
38608 }
38609 this.setNoSelectToBody(false);
38610 this.mouseStartEvent = null;
38611 this.touchStart = null;
38612 this.touchLastTime = null;
38613 this.currentDragParams = null;
38614 this.dragEndFunctions.forEach(function (func) { return func(); });
38615 this.dragEndFunctions.length = 0;
38616 };
38617 __decorate([
38618 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
38619 ], DragService.prototype, "loggerFactory", void 0);
38620 __decorate([
38621 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
38622 ], DragService.prototype, "columnApi", void 0);
38623 __decorate([
38624 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
38625 ], DragService.prototype, "gridApi", void 0);
38626 __decorate([
38627 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
38628 ], DragService.prototype, "init", null);
38629 __decorate([
38630 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
38631 ], DragService.prototype, "removeAllListeners", null);
38632 DragService = __decorate([
38633 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('dragService')
38634 ], DragService);
38635 return DragService;
38636}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
38637
38638
38639
38640/***/ }),
38641/* 162 */
38642/***/ (function(module, __webpack_exports__, __webpack_require__) {
38643
38644"use strict";
38645__webpack_require__.r(__webpack_exports__);
38646/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return SortController; });
38647/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38648/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38649/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
38650/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
38651/**
38652 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38653 * @version v25.3.0
38654 * @link http://www.ag-grid.com/
38655 * @license MIT
38656 */
38657var __extends = (undefined && undefined.__extends) || (function () {
38658 var extendStatics = function (d, b) {
38659 extendStatics = Object.setPrototypeOf ||
38660 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38661 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38662 return extendStatics(d, b);
38663 };
38664 return function (d, b) {
38665 extendStatics(d, b);
38666 function __() { this.constructor = d; }
38667 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38668 };
38669})();
38670var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38671 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38672 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38673 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
38674 return c > 3 && r && Object.defineProperty(target, key, r), r;
38675};
38676
38677
38678
38679
38680var SortController = /** @class */ (function (_super) {
38681 __extends(SortController, _super);
38682 function SortController() {
38683 return _super !== null && _super.apply(this, arguments) || this;
38684 }
38685 SortController_1 = SortController;
38686 SortController.prototype.progressSort = function (column, multiSort, source) {
38687 if (source === void 0) { source = "api"; }
38688 var nextDirection = this.getNextSortDirection(column);
38689 this.setSortForColumn(column, nextDirection, multiSort, source);
38690 };
38691 SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {
38692 if (source === void 0) { source = "api"; }
38693 // auto correct - if sort not legal value, then set it to 'no sort' (which is null)
38694 if (sort !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC && sort !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC) {
38695 sort = null;
38696 }
38697 // update sort on current col
38698 column.setSort(sort, source);
38699 var doingMultiSort = multiSort && !this.gridOptionsWrapper.isSuppressMultiSort();
38700 // clear sort on all columns except this one, and update the icons
38701 if (!doingMultiSort) {
38702 this.clearSortBarThisColumn(column, source);
38703 }
38704 // sortIndex used for knowing order of cols when multi-col sort
38705 this.updateSortIndex(column);
38706 this.dispatchSortChangedEvents();
38707 };
38708 SortController.prototype.updateSortIndex = function (lastColToChange) {
38709 // update sortIndex on all sorting cols
38710 var allSortedCols = this.getColumnsWithSortingOrdered();
38711 var sortIndex = 0;
38712 allSortedCols.forEach(function (col) {
38713 if (col !== lastColToChange) {
38714 col.setSortIndex(sortIndex);
38715 sortIndex++;
38716 }
38717 });
38718 // last col to change always gets the last sort index, it's added to the end
38719 if (lastColToChange.getSort()) {
38720 lastColToChange.setSortIndex(sortIndex);
38721 }
38722 // clear sort index on all cols not sorting
38723 var allCols = this.columnController.getPrimaryAndSecondaryAndAutoColumns();
38724 allCols.filter(function (col) { return col.getSort() == null; }).forEach(function (col) { return col.setSortIndex(); });
38725 };
38726 // gets called by API, so if data changes, use can call this, which will end up
38727 // working out the sort order again of the rows.
38728 SortController.prototype.onSortChanged = function () {
38729 this.dispatchSortChangedEvents();
38730 };
38731 SortController.prototype.isSortActive = function () {
38732 // pull out all the columns that have sorting set
38733 var allCols = this.columnController.getPrimaryAndSecondaryAndAutoColumns();
38734 var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });
38735 return sortedCols && sortedCols.length > 0;
38736 };
38737 SortController.prototype.dispatchSortChangedEvents = function () {
38738 var event = {
38739 type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SORT_CHANGED,
38740 api: this.gridApi,
38741 columnApi: this.columnApi
38742 };
38743 this.eventService.dispatchEvent(event);
38744 };
38745 SortController.prototype.clearSortBarThisColumn = function (columnToSkip, source) {
38746 this.columnController.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {
38747 // Do not clear if either holding shift, or if column in question was clicked
38748 if (columnToClear !== columnToSkip) {
38749 // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise
38750 // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.
38751 columnToClear.setSort(undefined, source);
38752 }
38753 });
38754 };
38755 SortController.prototype.getNextSortDirection = function (column) {
38756 var sortingOrder;
38757 if (column.getColDef().sortingOrder) {
38758 sortingOrder = column.getColDef().sortingOrder;
38759 }
38760 else if (this.gridOptionsWrapper.getSortingOrder()) {
38761 sortingOrder = this.gridOptionsWrapper.getSortingOrder();
38762 }
38763 else {
38764 sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;
38765 }
38766 if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {
38767 console.warn("ag-grid: sortingOrder must be an array with at least one element, currently it's " + sortingOrder);
38768 return null;
38769 }
38770 var currentIndex = sortingOrder.indexOf(column.getSort());
38771 var notInArray = currentIndex < 0;
38772 var lastItemInArray = currentIndex == sortingOrder.length - 1;
38773 var result;
38774 if (notInArray || lastItemInArray) {
38775 result = sortingOrder[0];
38776 }
38777 else {
38778 result = sortingOrder[currentIndex + 1];
38779 }
38780 // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid
38781 if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {
38782 console.warn('ag-grid: invalid sort type ' + result);
38783 return null;
38784 }
38785 return result;
38786 };
38787 SortController.prototype.getColumnsWithSortingOrdered = function () {
38788 // pull out all the columns that have sorting set
38789 var allColumnsIncludingAuto = this.columnController.getPrimaryAndSecondaryAndAutoColumns();
38790 var columnsWithSorting = allColumnsIncludingAuto.filter(function (column) { return !!column.getSort(); });
38791 // when both cols are missing sortIndex, we use the position of the col in all cols list.
38792 // this means if colDefs only have sort, but no sortIndex, we deterministically pick which
38793 // cols is sorted by first.
38794 var allColsIndexes = {};
38795 allColumnsIncludingAuto.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });
38796 // put the columns in order of which one got sorted first
38797 columnsWithSorting.sort(function (a, b) {
38798 var iA = a.getSortIndex();
38799 var iB = b.getSortIndex();
38800 if (iA != null && iB != null) {
38801 return iA - iB; // both present, normal comparison
38802 }
38803 else if (iA == null && iB == null) {
38804 // both missing, compare using column positions
38805 var posA = allColsIndexes[a.getId()];
38806 var posB = allColsIndexes[b.getId()];
38807 return posA > posB ? 1 : -1;
38808 }
38809 else if (iB == null) {
38810 return -1; // iB missing
38811 }
38812 else {
38813 return 1; // iA missing
38814 }
38815 });
38816 return columnsWithSorting;
38817 };
38818 // used by server side row models, to sent sort to server
38819 SortController.prototype.getSortModel = function () {
38820 return this.getColumnsWithSortingOrdered().map(function (column) { return ({
38821 sort: column.getSort(),
38822 colId: column.getId()
38823 }); });
38824 };
38825 SortController.prototype.getSortOptions = function () {
38826 return this.getColumnsWithSortingOrdered().map(function (column) { return ({
38827 sort: column.getSort(),
38828 column: column
38829 }); });
38830 };
38831 var SortController_1;
38832 SortController.DEFAULT_SORTING_ORDER = [_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC, _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC, null];
38833 __decorate([
38834 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
38835 ], SortController.prototype, "columnController", void 0);
38836 __decorate([
38837 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
38838 ], SortController.prototype, "columnApi", void 0);
38839 __decorate([
38840 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
38841 ], SortController.prototype, "gridApi", void 0);
38842 SortController = SortController_1 = __decorate([
38843 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortController')
38844 ], SortController);
38845 return SortController;
38846}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38847
38848
38849
38850/***/ }),
38851/* 163 */
38852/***/ (function(module, __webpack_exports__, __webpack_require__) {
38853
38854"use strict";
38855__webpack_require__.r(__webpack_exports__);
38856/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return MouseEventService; });
38857/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38858/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
38859/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
38860/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
38861/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21);
38862/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
38863/**
38864 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38865 * @version v25.3.0
38866 * @link http://www.ag-grid.com/
38867 * @license MIT
38868 */
38869var __extends = (undefined && undefined.__extends) || (function () {
38870 var extendStatics = function (d, b) {
38871 extendStatics = Object.setPrototypeOf ||
38872 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38873 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38874 return extendStatics(d, b);
38875 };
38876 return function (d, b) {
38877 extendStatics(d, b);
38878 function __() { this.constructor = d; }
38879 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38880 };
38881})();
38882var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38883 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38884 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38885 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
38886 return c > 3 && r && Object.defineProperty(target, key, r), r;
38887};
38888
38889
38890
38891
38892
38893
38894
38895var MouseEventService = /** @class */ (function (_super) {
38896 __extends(MouseEventService, _super);
38897 function MouseEventService() {
38898 var _this = _super !== null && _super.apply(this, arguments) || this;
38899 _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();
38900 return _this;
38901 }
38902 MouseEventService_1 = MouseEventService;
38903 // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,
38904 // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic
38905 // for where this is used.
38906 MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {
38907 eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;
38908 };
38909 MouseEventService.prototype.getRenderedCellForEvent = function (event) {
38910 return Object(_utils_event__WEBPACK_IMPORTED_MODULE_4__["getComponentForEvent"])(this.gridOptionsWrapper, event, 'cellComp');
38911 };
38912 // walks the path of the event, and returns true if this grid is the first one that it finds. if doing
38913 // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste
38914 // getting executed on many grids at the same time.
38915 MouseEventService.prototype.isEventFromThisGrid = function (event) {
38916 var res = this.isElementInThisGrid(event.target);
38917 return res;
38918 };
38919 MouseEventService.prototype.isElementInThisGrid = function (element) {
38920 var pointer = element;
38921 while (pointer) {
38922 var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];
38923 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(instanceId)) {
38924 var eventFromThisGrid = instanceId === this.gridInstanceId;
38925 return eventFromThisGrid;
38926 }
38927 pointer = pointer.parentElement;
38928 }
38929 return false;
38930 };
38931 MouseEventService.prototype.getCellPositionForEvent = function (event) {
38932 var cellComp = this.getRenderedCellForEvent(event);
38933 return cellComp ? cellComp.getCellPosition() : null;
38934 };
38935 MouseEventService.prototype.getNormalisedPosition = function (event) {
38936 var gridPanelHasScrolls = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].DOM_LAYOUT_NORMAL;
38937 var e = event;
38938 var x;
38939 var y;
38940 if (e.clientX != null || e.clientY != null) {
38941 x = e.clientX;
38942 y = e.clientY;
38943 }
38944 else {
38945 x = e.x;
38946 y = e.y;
38947 }
38948 if (gridPanelHasScrolls) {
38949 var gridBodyCon = this.controllersService.getGridBodyController();
38950 var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();
38951 var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();
38952 x += hRange.left;
38953 y += vRange.top;
38954 }
38955 return { x: x, y: y };
38956 };
38957 var MouseEventService_1;
38958 MouseEventService.gridInstanceSequence = new _utils__WEBPACK_IMPORTED_MODULE_1__["NumberSequence"]();
38959 MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';
38960 __decorate([
38961 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
38962 ], MouseEventService.prototype, "controllersService", void 0);
38963 MouseEventService = MouseEventService_1 = __decorate([
38964 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('mouseEventService')
38965 ], MouseEventService);
38966 return MouseEventService;
38967}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
38968
38969
38970
38971/***/ }),
38972/* 164 */
38973/***/ (function(module, __webpack_exports__, __webpack_require__) {
38974
38975"use strict";
38976__webpack_require__.r(__webpack_exports__);
38977/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return CellNavigationService; });
38978/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38979/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38980/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
38981/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
38982/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
38983/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
38984/**
38985 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38986 * @version v25.3.0
38987 * @link http://www.ag-grid.com/
38988 * @license MIT
38989 */
38990var __extends = (undefined && undefined.__extends) || (function () {
38991 var extendStatics = function (d, b) {
38992 extendStatics = Object.setPrototypeOf ||
38993 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38994 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38995 return extendStatics(d, b);
38996 };
38997 return function (d, b) {
38998 extendStatics(d, b);
38999 function __() { this.constructor = d; }
39000 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39001 };
39002})();
39003var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39004 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39005 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39006 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39007 return c > 3 && r && Object.defineProperty(target, key, r), r;
39008};
39009
39010
39011
39012
39013
39014
39015var CellNavigationService = /** @class */ (function (_super) {
39016 __extends(CellNavigationService, _super);
39017 function CellNavigationService() {
39018 return _super !== null && _super.apply(this, arguments) || this;
39019 }
39020 // returns null if no cell to focus on, ie at the end of the grid
39021 CellNavigationService.prototype.getNextCellToFocus = function (key, lastCellToFocus) {
39022 // starting with the provided cell, we keep moving until we find a cell we can
39023 // focus on.
39024 var pointer = lastCellToFocus;
39025 var finished = false;
39026 // finished will be true when either:
39027 // a) cell found that we can focus on
39028 // b) run out of cells (ie the method returns null)
39029 while (!finished) {
39030 switch (key) {
39031 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP:
39032 pointer = this.getCellAbove(pointer);
39033 break;
39034 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].DOWN:
39035 pointer = this.getCellBelow(pointer);
39036 break;
39037 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT:
39038 if (this.gridOptionsWrapper.isEnableRtl()) {
39039 pointer = this.getCellToLeft(pointer);
39040 }
39041 else {
39042 pointer = this.getCellToRight(pointer);
39043 }
39044 break;
39045 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].LEFT:
39046 if (this.gridOptionsWrapper.isEnableRtl()) {
39047 pointer = this.getCellToRight(pointer);
39048 }
39049 else {
39050 pointer = this.getCellToLeft(pointer);
39051 }
39052 break;
39053 default:
39054 pointer = null;
39055 console.warn('AG Grid: unknown key for navigation ' + key);
39056 break;
39057 }
39058 if (pointer) {
39059 finished = this.isCellGoodToFocusOn(pointer);
39060 }
39061 else {
39062 finished = true;
39063 }
39064 }
39065 return pointer;
39066 };
39067 CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {
39068 var column = gridCell.column;
39069 var rowNode;
39070 switch (gridCell.rowPinned) {
39071 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
39072 rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);
39073 break;
39074 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
39075 rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);
39076 break;
39077 default:
39078 rowNode = this.rowModel.getRow(gridCell.rowIndex);
39079 break;
39080 }
39081 if (!rowNode) {
39082 return false;
39083 }
39084 var suppressNavigable = column.isSuppressNavigable(rowNode);
39085 return !suppressNavigable;
39086 };
39087 CellNavigationService.prototype.getCellToLeft = function (lastCell) {
39088 if (!lastCell) {
39089 return null;
39090 }
39091 var colToLeft = this.columnController.getDisplayedColBefore(lastCell.column);
39092 if (!colToLeft) {
39093 return null;
39094 }
39095 return {
39096 rowIndex: lastCell.rowIndex,
39097 column: colToLeft,
39098 rowPinned: lastCell.rowPinned
39099 };
39100 };
39101 CellNavigationService.prototype.getCellToRight = function (lastCell) {
39102 if (!lastCell) {
39103 return null;
39104 }
39105 var colToRight = this.columnController.getDisplayedColAfter(lastCell.column);
39106 // if already on right, do nothing
39107 if (!colToRight) {
39108 return null;
39109 }
39110 return {
39111 rowIndex: lastCell.rowIndex,
39112 column: colToRight,
39113 rowPinned: lastCell.rowPinned
39114 };
39115 };
39116 CellNavigationService.prototype.getRowBelow = function (rowPosition) {
39117 // if already on top row, do nothing
39118 var index = rowPosition.rowIndex;
39119 var pinned = rowPosition.rowPinned;
39120 if (this.isLastRowInContainer(rowPosition)) {
39121 switch (pinned) {
39122 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
39123 // never any rows after pinned bottom
39124 return null;
39125 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
39126 // if on last row of pinned top, then next row is main body (if rows exist),
39127 // otherwise it's the pinned bottom
39128 if (this.rowModel.isRowsToRender()) {
39129 return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };
39130 }
39131 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM)) {
39132 return { rowIndex: 0, rowPinned: _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM };
39133 }
39134 return null;
39135 default:
39136 // if in the main body, then try pinned bottom, otherwise return nothing
39137 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM)) {
39138 return { rowIndex: 0, rowPinned: _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM };
39139 }
39140 return null;
39141 }
39142 }
39143 return { rowIndex: index + 1, rowPinned: pinned };
39144 };
39145 CellNavigationService.prototype.getCellBelow = function (lastCell) {
39146 if (!lastCell) {
39147 return null;
39148 }
39149 var rowBelow = this.getRowBelow(lastCell);
39150 if (rowBelow) {
39151 return {
39152 rowIndex: rowBelow.rowIndex,
39153 column: lastCell.column,
39154 rowPinned: rowBelow.rowPinned
39155 };
39156 }
39157 return null;
39158 };
39159 CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {
39160 var pinned = rowPosition.rowPinned;
39161 var index = rowPosition.rowIndex;
39162 if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP) {
39163 var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;
39164 return lastTopIndex <= index;
39165 }
39166 if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM) {
39167 var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;
39168 return lastBottomIndex <= index;
39169 }
39170 var lastBodyIndex = this.paginationProxy.getPageLastRow();
39171 return lastBodyIndex <= index;
39172 };
39173 CellNavigationService.prototype.getRowAbove = function (rowPosition) {
39174 // if already on top row, do nothing
39175 var index = rowPosition.rowIndex;
39176 var pinned = rowPosition.rowPinned;
39177 var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();
39178 // if already on top row, do nothing
39179 if (isFirstRow) {
39180 if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP) {
39181 return null;
39182 }
39183 if (!pinned) {
39184 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP)) {
39185 return this.getLastFloatingTopRow();
39186 }
39187 return null;
39188 }
39189 // last floating bottom
39190 if (this.rowModel.isRowsToRender()) {
39191 return this.getLastBodyCell();
39192 }
39193 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP)) {
39194 return this.getLastFloatingTopRow();
39195 }
39196 return null;
39197 }
39198 return { rowIndex: index - 1, rowPinned: pinned };
39199 };
39200 CellNavigationService.prototype.getCellAbove = function (lastCell) {
39201 if (!lastCell) {
39202 return null;
39203 }
39204 var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });
39205 if (rowAbove) {
39206 return {
39207 rowIndex: rowAbove.rowIndex,
39208 column: lastCell.column,
39209 rowPinned: rowAbove.rowPinned
39210 };
39211 }
39212 return null;
39213 };
39214 CellNavigationService.prototype.getLastBodyCell = function () {
39215 var lastBodyRow = this.paginationProxy.getPageLastRow();
39216 return { rowIndex: lastBodyRow, rowPinned: null };
39217 };
39218 CellNavigationService.prototype.getLastFloatingTopRow = function () {
39219 var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;
39220 return { rowIndex: lastFloatingRow, rowPinned: _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP };
39221 };
39222 CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {
39223 if (backwards) {
39224 return this.getNextTabbedCellBackwards(gridCell);
39225 }
39226 return this.getNextTabbedCellForwards(gridCell);
39227 };
39228 CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {
39229 var displayedColumns = this.columnController.getAllDisplayedColumns();
39230 var newRowIndex = gridCell.rowIndex;
39231 var newFloating = gridCell.rowPinned;
39232 // move along to the next cell
39233 var newColumn = this.columnController.getDisplayedColAfter(gridCell.column);
39234 // check if end of the row, and if so, go forward a row
39235 if (!newColumn) {
39236 newColumn = displayedColumns[0];
39237 var rowBelow = this.getRowBelow(gridCell);
39238 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(rowBelow)) {
39239 return null;
39240 }
39241 // If we are tabbing and there is a paging panel present, tabbing should go
39242 // to the paging panel instead of loading the next page.
39243 if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {
39244 return null;
39245 }
39246 newRowIndex = rowBelow ? rowBelow.rowIndex : null;
39247 newFloating = rowBelow ? rowBelow.rowPinned : null;
39248 }
39249 return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };
39250 };
39251 CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {
39252 var displayedColumns = this.columnController.getAllDisplayedColumns();
39253 var newRowIndex = gridCell.rowIndex;
39254 var newFloating = gridCell.rowPinned;
39255 // move along to the next cell
39256 var newColumn = this.columnController.getDisplayedColBefore(gridCell.column);
39257 // check if end of the row, and if so, go forward a row
39258 if (!newColumn) {
39259 newColumn = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(displayedColumns);
39260 var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });
39261 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(rowAbove)) {
39262 return null;
39263 }
39264 // If we are tabbing and there is a paging panel present, tabbing should go
39265 // to the paging panel instead of loading the next page.
39266 if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {
39267 return null;
39268 }
39269 newRowIndex = rowAbove ? rowAbove.rowIndex : null;
39270 newFloating = rowAbove ? rowAbove.rowPinned : null;
39271 }
39272 return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };
39273 };
39274 __decorate([
39275 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
39276 ], CellNavigationService.prototype, "columnController", void 0);
39277 __decorate([
39278 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
39279 ], CellNavigationService.prototype, "rowModel", void 0);
39280 __decorate([
39281 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
39282 ], CellNavigationService.prototype, "pinnedRowModel", void 0);
39283 __decorate([
39284 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
39285 ], CellNavigationService.prototype, "paginationProxy", void 0);
39286 CellNavigationService = __decorate([
39287 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('cellNavigationService')
39288 ], CellNavigationService);
39289 return CellNavigationService;
39290}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39291
39292
39293
39294/***/ }),
39295/* 165 */
39296/***/ (function(module, __webpack_exports__, __webpack_require__) {
39297
39298"use strict";
39299__webpack_require__.r(__webpack_exports__);
39300/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return ValueFormatterService; });
39301/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39302/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39303/**
39304 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39305 * @version v25.3.0
39306 * @link http://www.ag-grid.com/
39307 * @license MIT
39308 */
39309var __extends = (undefined && undefined.__extends) || (function () {
39310 var extendStatics = function (d, b) {
39311 extendStatics = Object.setPrototypeOf ||
39312 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39313 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39314 return extendStatics(d, b);
39315 };
39316 return function (d, b) {
39317 extendStatics(d, b);
39318 function __() { this.constructor = d; }
39319 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39320 };
39321})();
39322var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39323 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39324 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39325 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39326 return c > 3 && r && Object.defineProperty(target, key, r), r;
39327};
39328
39329
39330var ValueFormatterService = /** @class */ (function (_super) {
39331 __extends(ValueFormatterService, _super);
39332 function ValueFormatterService() {
39333 return _super !== null && _super.apply(this, arguments) || this;
39334 }
39335 ValueFormatterService.prototype.formatValue = function (column, node, $scope, value, suppliedFormatter, useFormatterFromColumn) {
39336 if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }
39337 var result = null;
39338 var formatter;
39339 var colDef = column.getColDef();
39340 if (suppliedFormatter) {
39341 // use supplied formatter if provided, e.g. set filter items can have their own value formatters
39342 formatter = suppliedFormatter;
39343 }
39344 else if (useFormatterFromColumn) {
39345 // if row is pinned, give preference to the pinned formatter
39346 formatter = node && node.rowPinned && colDef.pinnedRowValueFormatter ?
39347 colDef.pinnedRowValueFormatter : colDef.valueFormatter;
39348 }
39349 if (formatter) {
39350 var params = {
39351 value: value,
39352 node: node,
39353 data: node ? node.data : null,
39354 colDef: colDef,
39355 column: column,
39356 api: this.gridOptionsWrapper.getApi(),
39357 columnApi: this.gridOptionsWrapper.getColumnApi(),
39358 context: this.gridOptionsWrapper.getContext()
39359 };
39360 // originally we put the angular 1 scope here, but we don't want the scope
39361 // in the params interface, as other frameworks will see the interface, and
39362 // angular 1 is not cool any more. so we hack the scope in here (we cannot
39363 // include it above, as it's not in the interface, so would cause a compile error).
39364 // in the future, when we stop supporting angular 1, we can take this out.
39365 params.$scope = $scope;
39366 result = this.expressionService.evaluate(formatter, params);
39367 }
39368 else if (colDef.refData) {
39369 return colDef.refData[value] || '';
39370 }
39371 // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)
39372 if (result == null && Array.isArray(value)) {
39373 result = value.join(', ');
39374 }
39375 return result;
39376 };
39377 __decorate([
39378 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
39379 ], ValueFormatterService.prototype, "expressionService", void 0);
39380 ValueFormatterService = __decorate([
39381 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueFormatterService')
39382 ], ValueFormatterService);
39383 return ValueFormatterService;
39384}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39385
39386
39387
39388/***/ }),
39389/* 166 */
39390/***/ (function(module, __webpack_exports__, __webpack_require__) {
39391
39392"use strict";
39393__webpack_require__.r(__webpack_exports__);
39394/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return AgRadioButton; });
39395/* harmony import */ var _agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(119);
39396/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
39397/**
39398 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39399 * @version v25.3.0
39400 * @link http://www.ag-grid.com/
39401 * @license MIT
39402 */
39403var __extends = (undefined && undefined.__extends) || (function () {
39404 var extendStatics = function (d, b) {
39405 extendStatics = Object.setPrototypeOf ||
39406 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39407 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39408 return extendStatics(d, b);
39409 };
39410 return function (d, b) {
39411 extendStatics(d, b);
39412 function __() { this.constructor = d; }
39413 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39414 };
39415})();
39416
39417
39418var AgRadioButton = /** @class */ (function (_super) {
39419 __extends(AgRadioButton, _super);
39420 function AgRadioButton(config) {
39421 return _super.call(this, config, 'ag-radio-button', 'radio') || this;
39422 }
39423 AgRadioButton.prototype.isSelected = function () {
39424 return this.eInput.checked;
39425 };
39426 AgRadioButton.prototype.toggle = function () {
39427 // do not allow an active radio button to be deselected
39428 if (!this.isSelected()) {
39429 this.setValue(true);
39430 }
39431 };
39432 AgRadioButton.prototype.addInputListeners = function () {
39433 _super.prototype.addInputListeners.call(this);
39434 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));
39435 };
39436 /**
39437 * This ensures that if another radio button in the same named group is selected, we deselect this radio button.
39438 * By default the browser does this for you, but we are managing classes ourselves in order to ensure input
39439 * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,
39440 * not deselected, so we need to use our own event.
39441 */
39442 AgRadioButton.prototype.onChange = function (event) {
39443 if (event.selected &&
39444 event.name &&
39445 this.eInput.name &&
39446 this.eInput.name === event.name &&
39447 event.id &&
39448 this.eInput.id !== event.id) {
39449 this.setValue(false, true);
39450 }
39451 };
39452 return AgRadioButton;
39453}(_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"]));
39454
39455
39456
39457/***/ }),
39458/* 167 */
39459/***/ (function(module, __webpack_exports__, __webpack_require__) {
39460
39461"use strict";
39462__webpack_require__.r(__webpack_exports__);
39463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return VanillaFrameworkOverrides; });
39464/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
39465/**
39466 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39467 * @version v25.3.0
39468 * @link http://www.ag-grid.com/
39469 * @license MIT
39470 */
39471
39472var OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave'];
39473/** The base frameworks, eg React & Angular 2, override this bean with implementations specific to their requirement. */
39474var VanillaFrameworkOverrides = /** @class */ (function () {
39475 function VanillaFrameworkOverrides() {
39476 this.isOutsideAngular = function (eventType) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(OUTSIDE_ANGULAR_EVENTS, eventType); };
39477 }
39478 // for Vanilla JS, we use simple timeout
39479 VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {
39480 window.setTimeout(action, timeout);
39481 };
39482 // for Vanilla JS, we just add the event to the element
39483 VanillaFrameworkOverrides.prototype.addEventListener = function (element, type, listener, useCapture) {
39484 element.addEventListener(type, listener, useCapture);
39485 };
39486 // for Vanilla JS, we just execute the listener
39487 VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener) {
39488 listener();
39489 };
39490 return VanillaFrameworkOverrides;
39491}());
39492
39493
39494
39495/***/ }),
39496/* 168 */
39497/***/ (function(module, __webpack_exports__, __webpack_require__) {
39498
39499"use strict";
39500__webpack_require__.r(__webpack_exports__);
39501/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return ScrollVisibleService; });
39502/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39503/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39504/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
39505/**
39506 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39507 * @version v25.3.0
39508 * @link http://www.ag-grid.com/
39509 * @license MIT
39510 */
39511var __extends = (undefined && undefined.__extends) || (function () {
39512 var extendStatics = function (d, b) {
39513 extendStatics = Object.setPrototypeOf ||
39514 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39515 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39516 return extendStatics(d, b);
39517 };
39518 return function (d, b) {
39519 extendStatics(d, b);
39520 function __() { this.constructor = d; }
39521 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39522 };
39523})();
39524var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39525 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39526 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39527 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39528 return c > 3 && r && Object.defineProperty(target, key, r), r;
39529};
39530
39531
39532
39533var ScrollVisibleService = /** @class */ (function (_super) {
39534 __extends(ScrollVisibleService, _super);
39535 function ScrollVisibleService() {
39536 return _super !== null && _super.apply(this, arguments) || this;
39537 }
39538 ScrollVisibleService.prototype.postConstruct = function () {
39539 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
39540 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
39541 };
39542 ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {
39543 this.update();
39544 };
39545 ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {
39546 this.update();
39547 };
39548 ScrollVisibleService.prototype.update = function () {
39549 // because of column animation (which takes 200ms), we have to do this twice.
39550 // eg if user removes cols anywhere except at the RHS, then the cols on the RHS
39551 // will animate to the left to fill the gap. this animation means just after
39552 // the cols are removed, the remaining cols are still in the original location
39553 // at the start of the animation, so pre animation the H scrollbar is still needed,
39554 // but post animation it is not.
39555 this.updateImpl();
39556 setTimeout(this.updateImpl.bind(this), 500);
39557 };
39558 ScrollVisibleService.prototype.updateImpl = function () {
39559 var params = {
39560 horizontalScrollShowing: this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing(),
39561 verticalScrollShowing: this.isVerticalScrollShowing()
39562 };
39563 this.setScrollsVisible(params);
39564 };
39565 ScrollVisibleService.prototype.setScrollsVisible = function (params) {
39566 var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||
39567 this.verticalScrollShowing !== params.verticalScrollShowing;
39568 if (atLeastOneDifferent) {
39569 this.horizontalScrollShowing = params.horizontalScrollShowing;
39570 this.verticalScrollShowing = params.verticalScrollShowing;
39571 var event_1 = {
39572 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED,
39573 api: this.gridApi,
39574 columnApi: this.columnApi
39575 };
39576 this.eventService.dispatchEvent(event_1);
39577 }
39578 };
39579 // used by pagination service - to know page height
39580 ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {
39581 return this.horizontalScrollShowing;
39582 };
39583 // used by header container
39584 ScrollVisibleService.prototype.isVerticalScrollShowing = function () {
39585 return this.verticalScrollShowing;
39586 };
39587 __decorate([
39588 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
39589 ], ScrollVisibleService.prototype, "columnApi", void 0);
39590 __decorate([
39591 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
39592 ], ScrollVisibleService.prototype, "gridApi", void 0);
39593 __decorate([
39594 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
39595 ], ScrollVisibleService.prototype, "controllersService", void 0);
39596 __decorate([
39597 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
39598 ], ScrollVisibleService.prototype, "postConstruct", null);
39599 ScrollVisibleService = __decorate([
39600 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('scrollVisibleService')
39601 ], ScrollVisibleService);
39602 return ScrollVisibleService;
39603}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39604
39605
39606
39607/***/ }),
39608/* 169 */
39609/***/ (function(module, __webpack_exports__, __webpack_require__) {
39610
39611"use strict";
39612__webpack_require__.r(__webpack_exports__);
39613/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return StylingService; });
39614/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39615/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39616/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
39617/**
39618 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39619 * @version v25.3.0
39620 * @link http://www.ag-grid.com/
39621 * @license MIT
39622 */
39623var __extends = (undefined && undefined.__extends) || (function () {
39624 var extendStatics = function (d, b) {
39625 extendStatics = Object.setPrototypeOf ||
39626 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39627 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39628 return extendStatics(d, b);
39629 };
39630 return function (d, b) {
39631 extendStatics(d, b);
39632 function __() { this.constructor = d; }
39633 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39634 };
39635})();
39636var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39637 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39638 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39639 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39640 return c > 3 && r && Object.defineProperty(target, key, r), r;
39641};
39642
39643
39644
39645var StylingService = /** @class */ (function (_super) {
39646 __extends(StylingService, _super);
39647 function StylingService() {
39648 return _super !== null && _super.apply(this, arguments) || this;
39649 }
39650 StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {
39651 this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);
39652 this.processStaticCellClasses(colDef, params, onApplicableClass);
39653 };
39654 StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {
39655 if (Object(_utils_object__WEBPACK_IMPORTED_MODULE_2__["isNonNullObject"])(classRules)) {
39656 var classNames = Object.keys(classRules);
39657 for (var i = 0; i < classNames.length; i++) {
39658 var className = classNames[i];
39659 var rule = classRules[className];
39660 var resultOfRule = void 0;
39661 if (typeof rule === 'string') {
39662 resultOfRule = this.expressionService.evaluate(rule, params);
39663 }
39664 else if (typeof rule === 'function') {
39665 resultOfRule = rule(params);
39666 }
39667 if (resultOfRule) {
39668 onApplicableClass(className);
39669 }
39670 else if (onNotApplicableClass) {
39671 onNotApplicableClass(className);
39672 }
39673 }
39674 }
39675 };
39676 StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {
39677 var cellClass = colDef.cellClass;
39678 if (cellClass) {
39679 var classOrClasses = void 0;
39680 if (typeof colDef.cellClass === 'function') {
39681 var cellClassFunc = colDef.cellClass;
39682 classOrClasses = cellClassFunc(params);
39683 }
39684 else {
39685 classOrClasses = colDef.cellClass;
39686 }
39687 if (typeof classOrClasses === 'string') {
39688 onApplicableClass(classOrClasses);
39689 }
39690 else if (Array.isArray(classOrClasses)) {
39691 classOrClasses.forEach(function (cssClassItem) {
39692 onApplicableClass(cssClassItem);
39693 });
39694 }
39695 }
39696 };
39697 __decorate([
39698 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
39699 ], StylingService.prototype, "expressionService", void 0);
39700 StylingService = __decorate([
39701 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('stylingService')
39702 ], StylingService);
39703 return StylingService;
39704}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39705
39706
39707
39708/***/ }),
39709/* 170 */
39710/***/ (function(module, __webpack_exports__, __webpack_require__) {
39711
39712"use strict";
39713__webpack_require__.r(__webpack_exports__);
39714/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnHoverService", function() { return ColumnHoverService; });
39715/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39716/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
39717/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
39718/**
39719 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39720 * @version v25.3.0
39721 * @link http://www.ag-grid.com/
39722 * @license MIT
39723 */
39724var __extends = (undefined && undefined.__extends) || (function () {
39725 var extendStatics = function (d, b) {
39726 extendStatics = Object.setPrototypeOf ||
39727 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39728 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39729 return extendStatics(d, b);
39730 };
39731 return function (d, b) {
39732 extendStatics(d, b);
39733 function __() { this.constructor = d; }
39734 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39735 };
39736})();
39737var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39738 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39739 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39740 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39741 return c > 3 && r && Object.defineProperty(target, key, r), r;
39742};
39743
39744
39745
39746var ColumnHoverService = /** @class */ (function (_super) {
39747 __extends(ColumnHoverService, _super);
39748 function ColumnHoverService() {
39749 return _super !== null && _super.apply(this, arguments) || this;
39750 }
39751 ColumnHoverService.prototype.setMouseOver = function (columns) {
39752 this.selectedColumns = columns;
39753 var event = {
39754 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_HOVER_CHANGED,
39755 api: this.gridApi,
39756 columnApi: this.columnApi
39757 };
39758 this.eventService.dispatchEvent(event);
39759 };
39760 ColumnHoverService.prototype.clearMouseOver = function () {
39761 this.selectedColumns = null;
39762 var event = {
39763 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_HOVER_CHANGED,
39764 api: this.gridApi,
39765 columnApi: this.columnApi
39766 };
39767 this.eventService.dispatchEvent(event);
39768 };
39769 ColumnHoverService.prototype.isHovered = function (column) {
39770 return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;
39771 };
39772 __decorate([
39773 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
39774 ], ColumnHoverService.prototype, "columnApi", void 0);
39775 __decorate([
39776 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
39777 ], ColumnHoverService.prototype, "gridApi", void 0);
39778 ColumnHoverService = __decorate([
39779 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnHoverService')
39780 ], ColumnHoverService);
39781 return ColumnHoverService;
39782}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
39783
39784
39785
39786/***/ }),
39787/* 171 */
39788/***/ (function(module, __webpack_exports__, __webpack_require__) {
39789
39790"use strict";
39791__webpack_require__.r(__webpack_exports__);
39792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnAnimationService", function() { return ColumnAnimationService; });
39793/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39794/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39795/**
39796 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39797 * @version v25.3.0
39798 * @link http://www.ag-grid.com/
39799 * @license MIT
39800 */
39801var __extends = (undefined && undefined.__extends) || (function () {
39802 var extendStatics = function (d, b) {
39803 extendStatics = Object.setPrototypeOf ||
39804 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39805 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39806 return extendStatics(d, b);
39807 };
39808 return function (d, b) {
39809 extendStatics(d, b);
39810 function __() { this.constructor = d; }
39811 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39812 };
39813})();
39814var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39815 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39816 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39817 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39818 return c > 3 && r && Object.defineProperty(target, key, r), r;
39819};
39820
39821
39822var ColumnAnimationService = /** @class */ (function (_super) {
39823 __extends(ColumnAnimationService, _super);
39824 function ColumnAnimationService() {
39825 var _this = _super !== null && _super.apply(this, arguments) || this;
39826 _this.executeNextFuncs = [];
39827 _this.executeLaterFuncs = [];
39828 _this.active = false;
39829 _this.animationThreadCount = 0;
39830 return _this;
39831 }
39832 ColumnAnimationService.prototype.postConstruct = function () {
39833 var _this = this;
39834 this.controllersService.whenReady(function (p) { return _this.gridBodyCon = p.gridBodyCon; });
39835 };
39836 ColumnAnimationService.prototype.isActive = function () {
39837 return this.active;
39838 };
39839 ColumnAnimationService.prototype.start = function () {
39840 if (this.active) {
39841 return;
39842 }
39843 if (this.gridOptionsWrapper.isSuppressColumnMoveAnimation()) {
39844 return;
39845 }
39846 // if doing RTL, we don't animate open / close as due to how the pixels are inverted,
39847 // the animation moves all the row the the right rather than to the left (ie it's the static
39848 // columns that actually get their coordinates updated)
39849 if (this.gridOptionsWrapper.isEnableRtl()) {
39850 return;
39851 }
39852 this.ensureAnimationCssClassPresent();
39853 this.active = true;
39854 };
39855 ColumnAnimationService.prototype.finish = function () {
39856 if (!this.active) {
39857 return;
39858 }
39859 this.flush();
39860 this.active = false;
39861 };
39862 ColumnAnimationService.prototype.executeNextVMTurn = function (func) {
39863 if (this.active) {
39864 this.executeNextFuncs.push(func);
39865 }
39866 else {
39867 func();
39868 }
39869 };
39870 ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {
39871 if (this.active) {
39872 this.executeLaterFuncs.push(func);
39873 }
39874 else {
39875 func();
39876 }
39877 };
39878 ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {
39879 var _this = this;
39880 // up the count, so we can tell if someone else has updated the count
39881 // by the time the 'wait' func executes
39882 this.animationThreadCount++;
39883 var animationThreadCountCopy = this.animationThreadCount;
39884 this.gridBodyCon.setColumnMovingCss(true);
39885 this.executeLaterFuncs.push(function () {
39886 // only remove the class if this thread was the last one to update it
39887 if (_this.animationThreadCount === animationThreadCountCopy) {
39888 _this.gridBodyCon.setColumnMovingCss(false);
39889 }
39890 });
39891 };
39892 ColumnAnimationService.prototype.flush = function () {
39893 var nowFuncs = this.executeNextFuncs;
39894 this.executeNextFuncs = [];
39895 var waitFuncs = this.executeLaterFuncs;
39896 this.executeLaterFuncs = [];
39897 if (nowFuncs.length === 0 && waitFuncs.length === 0) {
39898 return;
39899 }
39900 window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);
39901 window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);
39902 };
39903 __decorate([
39904 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
39905 ], ColumnAnimationService.prototype, "controllersService", void 0);
39906 __decorate([
39907 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
39908 ], ColumnAnimationService.prototype, "postConstruct", null);
39909 ColumnAnimationService = __decorate([
39910 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnAnimationService')
39911 ], ColumnAnimationService);
39912 return ColumnAnimationService;
39913}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39914
39915
39916
39917/***/ }),
39918/* 172 */
39919/***/ (function(module, __webpack_exports__, __webpack_require__) {
39920
39921"use strict";
39922__webpack_require__.r(__webpack_exports__);
39923/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoGroupColService", function() { return AutoGroupColService; });
39924/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39925/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
39926/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
39927/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
39928/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
39929/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
39930/**
39931 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39932 * @version v25.3.0
39933 * @link http://www.ag-grid.com/
39934 * @license MIT
39935 */
39936var __extends = (undefined && undefined.__extends) || (function () {
39937 var extendStatics = function (d, b) {
39938 extendStatics = Object.setPrototypeOf ||
39939 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39940 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39941 return extendStatics(d, b);
39942 };
39943 return function (d, b) {
39944 extendStatics(d, b);
39945 function __() { this.constructor = d; }
39946 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39947 };
39948})();
39949var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39950 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39951 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39952 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39953 return c > 3 && r && Object.defineProperty(target, key, r), r;
39954};
39955
39956
39957
39958
39959
39960
39961var AutoGroupColService = /** @class */ (function (_super) {
39962 __extends(AutoGroupColService, _super);
39963 function AutoGroupColService() {
39964 return _super !== null && _super.apply(this, arguments) || this;
39965 }
39966 AutoGroupColService_1 = AutoGroupColService;
39967 AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) {
39968 var _this = this;
39969 var groupAutoColumns = [];
39970 var doingTreeData = this.gridOptionsWrapper.isTreeData();
39971 var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();
39972 if (doingTreeData && doingMultiAutoColumn) {
39973 console.warn('AG Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data');
39974 doingMultiAutoColumn = false;
39975 }
39976 // if doing groupMultiAutoColumn, then we call the method multiple times, once
39977 // for each column we are grouping by
39978 if (doingMultiAutoColumn) {
39979 rowGroupColumns.forEach(function (rowGroupCol, index) {
39980 groupAutoColumns.push(_this.createOneAutoGroupColumn(rowGroupCol, index));
39981 });
39982 }
39983 else {
39984 groupAutoColumns.push(this.createOneAutoGroupColumn());
39985 }
39986 return groupAutoColumns;
39987 };
39988 // rowGroupCol and index are missing if groupMultiAutoColumn=false
39989 AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) {
39990 // if one provided by user, use it, otherwise create one
39991 var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);
39992 // if doing multi, set the field
39993 var colId;
39994 if (rowGroupCol) {
39995 colId = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].GROUP_AUTO_COLUMN_ID + "-" + rowGroupCol.getId();
39996 }
39997 else {
39998 colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID;
39999 }
40000 var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();
40001 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["mergeDeep"])(defaultAutoColDef, userAutoColDef);
40002 defaultAutoColDef = this.columnFactory.mergeColDefs(defaultAutoColDef);
40003 defaultAutoColDef.colId = colId;
40004 // For tree data the filter is always allowed
40005 if (!this.gridOptionsWrapper.isTreeData()) {
40006 // we would only allow filter if the user has provided field or value getter. otherwise the filter
40007 // would not be able to work.
40008 var noFieldOrValueGetter = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(defaultAutoColDef.field) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(defaultAutoColDef.valueGetter) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(defaultAutoColDef.filterValueGetter);
40009 if (noFieldOrValueGetter) {
40010 defaultAutoColDef.filter = false;
40011 }
40012 }
40013 // if showing many cols, we don't want to show more than one with a checkbox for selection
40014 if (index && index > 0) {
40015 defaultAutoColDef.headerCheckboxSelection = false;
40016 }
40017 var newCol = new _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"](defaultAutoColDef, null, colId, true);
40018 this.context.createBean(newCol);
40019 return newCol;
40020 };
40021 AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {
40022 var userDef = this.gridOptionsWrapper.getAutoGroupColumnDef();
40023 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
40024 var res = {
40025 headerName: localeTextFunc('group', 'Group')
40026 };
40027 var userHasProvidedGroupCellRenderer = userDef &&
40028 (userDef.cellRenderer || userDef.cellRendererFramework || userDef.cellRendererSelector);
40029 // only add the default group cell renderer if user hasn't provided one
40030 if (!userHasProvidedGroupCellRenderer) {
40031 res.cellRenderer = 'agGroupCellRenderer';
40032 }
40033 // we never allow moving the group column
40034 // defaultAutoColDef.suppressMovable = true;
40035 if (rowGroupCol) {
40036 var colDef = rowGroupCol.getColDef();
40037 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["assign"])(res, {
40038 // cellRendererParams.groupKey: colDefToCopy.field;
40039 headerName: this.columnController.getDisplayNameForColumn(rowGroupCol, 'header'),
40040 headerValueGetter: colDef.headerValueGetter
40041 });
40042 if (colDef.cellRenderer) {
40043 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["assign"])(res, {
40044 cellRendererParams: {
40045 innerRenderer: colDef.cellRenderer,
40046 innerRendererParams: colDef.cellRendererParams
40047 }
40048 });
40049 }
40050 res.showRowGroup = rowGroupCol.getColId();
40051 }
40052 else {
40053 res.showRowGroup = true;
40054 }
40055 return res;
40056 };
40057 var AutoGroupColService_1;
40058 AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].GROUP_AUTO_COLUMN_ID;
40059 __decorate([
40060 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
40061 ], AutoGroupColService.prototype, "columnController", void 0);
40062 __decorate([
40063 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnFactory')
40064 ], AutoGroupColService.prototype, "columnFactory", void 0);
40065 AutoGroupColService = AutoGroupColService_1 = __decorate([
40066 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoGroupColService')
40067 ], AutoGroupColService);
40068 return AutoGroupColService;
40069}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
40070
40071
40072
40073/***/ }),
40074/* 173 */
40075/***/ (function(module, __webpack_exports__, __webpack_require__) {
40076
40077"use strict";
40078__webpack_require__.r(__webpack_exports__);
40079/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return PaginationProxy; });
40080/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
40081/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
40082/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
40083/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
40084/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
40085/**
40086 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40087 * @version v25.3.0
40088 * @link http://www.ag-grid.com/
40089 * @license MIT
40090 */
40091var __extends = (undefined && undefined.__extends) || (function () {
40092 var extendStatics = function (d, b) {
40093 extendStatics = Object.setPrototypeOf ||
40094 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40095 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40096 return extendStatics(d, b);
40097 };
40098 return function (d, b) {
40099 extendStatics(d, b);
40100 function __() { this.constructor = d; }
40101 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40102 };
40103})();
40104var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40105 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40106 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40107 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40108 return c > 3 && r && Object.defineProperty(target, key, r), r;
40109};
40110
40111
40112
40113
40114
40115var PaginationProxy = /** @class */ (function (_super) {
40116 __extends(PaginationProxy, _super);
40117 function PaginationProxy() {
40118 var _this = _super !== null && _super.apply(this, arguments) || this;
40119 _this.currentPage = 0;
40120 _this.topDisplayedRowIndex = 0;
40121 _this.bottomDisplayedRowIndex = 0;
40122 _this.pixelOffset = 0;
40123 _this.masterRowCount = 0;
40124 return _this;
40125 }
40126 PaginationProxy.prototype.postConstruct = function () {
40127 this.active = this.gridOptionsWrapper.isPagination();
40128 this.paginateChildRows = this.gridOptionsWrapper.isPaginateChildRows();
40129 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));
40130 this.addManagedListener(this.gridOptionsWrapper, 'paginationPageSize', this.onPaginationPageSizeChanged.bind(this));
40131 this.onModelUpdated();
40132 };
40133 PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
40134 var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());
40135 if (res) {
40136 this.calculatePages();
40137 }
40138 return res;
40139 };
40140 PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {
40141 this.calculatePages();
40142 var paginationChangedEvent = {
40143 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED,
40144 animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,
40145 newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,
40146 newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,
40147 keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false,
40148 api: this.gridApi,
40149 columnApi: this.columnApi
40150 };
40151 this.eventService.dispatchEvent(paginationChangedEvent);
40152 };
40153 PaginationProxy.prototype.onPaginationPageSizeChanged = function () {
40154 this.calculatePages();
40155 var paginationChangedEvent = {
40156 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED,
40157 animate: false,
40158 newData: false,
40159 newPage: false,
40160 // important to keep rendered rows, otherwise every time grid is resized,
40161 // we would destroy all the rows.
40162 keepRenderedRows: true,
40163 api: this.gridApi,
40164 columnApi: this.columnApi
40165 };
40166 this.eventService.dispatchEvent(paginationChangedEvent);
40167 };
40168 PaginationProxy.prototype.goToPage = function (page) {
40169 if (!this.active || this.currentPage === page) {
40170 return;
40171 }
40172 this.currentPage = page;
40173 var event = {
40174 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED,
40175 animate: false,
40176 keepRenderedRows: false,
40177 newData: false,
40178 newPage: true,
40179 api: this.gridApi,
40180 columnApi: this.columnApi
40181 };
40182 this.onModelUpdated(event);
40183 };
40184 PaginationProxy.prototype.getPixelOffset = function () {
40185 return this.pixelOffset;
40186 };
40187 PaginationProxy.prototype.getRow = function (index) {
40188 return this.rowModel.getRow(index);
40189 };
40190 PaginationProxy.prototype.getRowNode = function (id) {
40191 return this.rowModel.getRowNode(id);
40192 };
40193 PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {
40194 return this.rowModel.getRowIndexAtPixel(pixel);
40195 };
40196 PaginationProxy.prototype.getCurrentPageHeight = function () {
40197 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.topRowBounds) || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.bottomRowBounds)) {
40198 return 0;
40199 }
40200 return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);
40201 };
40202 PaginationProxy.prototype.getCurrentPagePixelRange = function () {
40203 var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;
40204 var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;
40205 return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };
40206 };
40207 PaginationProxy.prototype.isRowPresent = function (rowNode) {
40208 if (!this.rowModel.isRowPresent(rowNode)) {
40209 return false;
40210 }
40211 var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;
40212 return nodeIsInPage;
40213 };
40214 PaginationProxy.prototype.isEmpty = function () {
40215 return this.rowModel.isEmpty();
40216 };
40217 PaginationProxy.prototype.isRowsToRender = function () {
40218 return this.rowModel.isRowsToRender();
40219 };
40220 PaginationProxy.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
40221 return this.rowModel.getNodesInRangeForSelection(firstInRange, lastInRange);
40222 };
40223 PaginationProxy.prototype.forEachNode = function (callback) {
40224 return this.rowModel.forEachNode(callback);
40225 };
40226 PaginationProxy.prototype.getType = function () {
40227 return this.rowModel.getType();
40228 };
40229 PaginationProxy.prototype.getRowBounds = function (index) {
40230 var res = this.rowModel.getRowBounds(index);
40231 res.rowIndex = index;
40232 return res;
40233 };
40234 PaginationProxy.prototype.getPageFirstRow = function () {
40235 return this.topRowBounds ? this.topRowBounds.rowIndex : -1;
40236 };
40237 PaginationProxy.prototype.getPageLastRow = function () {
40238 return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;
40239 };
40240 PaginationProxy.prototype.getRowCount = function () {
40241 return this.rowModel.getRowCount();
40242 };
40243 PaginationProxy.prototype.getPageForIndex = function (index) {
40244 return Math.floor(index / this.pageSize);
40245 };
40246 PaginationProxy.prototype.goToPageWithIndex = function (index) {
40247 if (!this.active) {
40248 return;
40249 }
40250 var pageNumber = this.getPageForIndex(index);
40251 this.goToPage(pageNumber);
40252 };
40253 PaginationProxy.prototype.isRowInPage = function (row) {
40254 if (!this.active) {
40255 return true;
40256 }
40257 var rowPage = this.getPageForIndex(row.rowIndex);
40258 return rowPage === this.currentPage;
40259 };
40260 PaginationProxy.prototype.isLastPageFound = function () {
40261 return this.rowModel.isLastRowIndexKnown();
40262 };
40263 PaginationProxy.prototype.getCurrentPage = function () {
40264 return this.currentPage;
40265 };
40266 PaginationProxy.prototype.goToNextPage = function () {
40267 this.goToPage(this.currentPage + 1);
40268 };
40269 PaginationProxy.prototype.goToPreviousPage = function () {
40270 this.goToPage(this.currentPage - 1);
40271 };
40272 PaginationProxy.prototype.goToFirstPage = function () {
40273 this.goToPage(0);
40274 };
40275 PaginationProxy.prototype.goToLastPage = function () {
40276 var rowCount = this.rowModel.getRowCount();
40277 var lastPage = Math.floor(rowCount / this.pageSize);
40278 this.goToPage(lastPage);
40279 };
40280 PaginationProxy.prototype.getPageSize = function () {
40281 return this.pageSize;
40282 };
40283 PaginationProxy.prototype.getTotalPages = function () {
40284 return this.totalPages;
40285 };
40286 PaginationProxy.prototype.setPageSize = function () {
40287 // show put this into super class
40288 this.pageSize = this.gridOptionsWrapper.getPaginationPageSize();
40289 if (this.pageSize == null || this.pageSize < 1) {
40290 this.pageSize = 100;
40291 }
40292 };
40293 PaginationProxy.prototype.calculatePages = function () {
40294 if (this.active) {
40295 this.setPageSize();
40296 if (this.paginateChildRows) {
40297 this.calculatePagesAllRows();
40298 }
40299 else {
40300 this.calculatePagesMasterRowsOnly();
40301 }
40302 }
40303 else {
40304 this.calculatedPagesNotActive();
40305 }
40306 this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);
40307 if (this.topRowBounds) {
40308 this.topRowBounds.rowIndex = this.topDisplayedRowIndex;
40309 }
40310 this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);
40311 if (this.bottomRowBounds) {
40312 this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;
40313 }
40314 this.setPixelOffset(Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(this.topRowBounds) ? this.topRowBounds.rowTop : 0);
40315 };
40316 PaginationProxy.prototype.setPixelOffset = function (value) {
40317 if (this.pixelOffset === value) {
40318 return;
40319 }
40320 this.pixelOffset = value;
40321 this.eventService.dispatchEvent({ type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });
40322 };
40323 PaginationProxy.prototype.setZeroRows = function () {
40324 this.masterRowCount = 0;
40325 this.topDisplayedRowIndex = 0;
40326 this.bottomDisplayedRowIndex = -1;
40327 this.currentPage = 0;
40328 this.totalPages = 0;
40329 };
40330 PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {
40331 // const csrm = <ClientSideRowModel> this.rowModel;
40332 // const rootNode = csrm.getRootNode();
40333 // const masterRows = rootNode.childrenAfterSort;
40334 this.masterRowCount = this.rowModel.getTopLevelRowCount();
40335 // we say <=0 (rather than =0) as viewport returns -1 when no rows
40336 if (this.masterRowCount <= 0) {
40337 this.setZeroRows();
40338 return;
40339 }
40340 var masterLastRowIndex = this.masterRowCount - 1;
40341 this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;
40342 if (this.currentPage >= this.totalPages) {
40343 this.currentPage = this.totalPages - 1;
40344 }
40345 if (!Object(_utils_number__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(this.currentPage) || this.currentPage < 0) {
40346 this.currentPage = 0;
40347 }
40348 var masterPageStartIndex = this.pageSize * this.currentPage;
40349 var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;
40350 if (masterPageEndIndex > masterLastRowIndex) {
40351 masterPageEndIndex = masterLastRowIndex;
40352 }
40353 this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);
40354 // masterRows[masterPageStartIndex].rowIndex;
40355 if (masterPageEndIndex === masterLastRowIndex) {
40356 // if showing the last master row, then we want to show the very last row of the model
40357 this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;
40358 }
40359 else {
40360 var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);
40361 //masterRows[masterPageEndIndex + 1].rowIndex;
40362 // this gets the index of the last child - eg current row is open, we want to display all children,
40363 // the index of the last child is one less than the index of the next parent row.
40364 this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;
40365 }
40366 };
40367 PaginationProxy.prototype.getMasterRowCount = function () {
40368 return this.masterRowCount;
40369 };
40370 PaginationProxy.prototype.calculatePagesAllRows = function () {
40371 this.masterRowCount = this.rowModel.getRowCount();
40372 if (this.masterRowCount === 0) {
40373 this.setZeroRows();
40374 return;
40375 }
40376 var maxRowIndex = this.masterRowCount - 1;
40377 this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;
40378 if (this.currentPage >= this.totalPages) {
40379 this.currentPage = this.totalPages - 1;
40380 }
40381 if (!Object(_utils_number__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(this.currentPage) || this.currentPage < 0) {
40382 this.currentPage = 0;
40383 }
40384 this.topDisplayedRowIndex = this.pageSize * this.currentPage;
40385 this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;
40386 if (this.bottomDisplayedRowIndex > maxRowIndex) {
40387 this.bottomDisplayedRowIndex = maxRowIndex;
40388 }
40389 };
40390 PaginationProxy.prototype.calculatedPagesNotActive = function () {
40391 this.pageSize = this.rowModel.getRowCount();
40392 this.totalPages = 1;
40393 this.currentPage = 0;
40394 this.topDisplayedRowIndex = 0;
40395 this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;
40396 };
40397 __decorate([
40398 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
40399 ], PaginationProxy.prototype, "rowModel", void 0);
40400 __decorate([
40401 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
40402 ], PaginationProxy.prototype, "columnApi", void 0);
40403 __decorate([
40404 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
40405 ], PaginationProxy.prototype, "gridApi", void 0);
40406 __decorate([
40407 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
40408 ], PaginationProxy.prototype, "postConstruct", null);
40409 PaginationProxy = __decorate([
40410 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('paginationProxy')
40411 ], PaginationProxy);
40412 return PaginationProxy;
40413}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
40414
40415
40416
40417/***/ }),
40418/* 174 */
40419/***/ (function(module, __webpack_exports__, __webpack_require__) {
40420
40421"use strict";
40422__webpack_require__.r(__webpack_exports__);
40423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationAutoPageSizeService", function() { return PaginationAutoPageSizeService; });
40424/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
40425/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
40426/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
40427/**
40428 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40429 * @version v25.3.0
40430 * @link http://www.ag-grid.com/
40431 * @license MIT
40432 */
40433var __extends = (undefined && undefined.__extends) || (function () {
40434 var extendStatics = function (d, b) {
40435 extendStatics = Object.setPrototypeOf ||
40436 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40437 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40438 return extendStatics(d, b);
40439 };
40440 return function (d, b) {
40441 extendStatics(d, b);
40442 function __() { this.constructor = d; }
40443 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40444 };
40445})();
40446var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40447 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40448 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40449 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40450 return c > 3 && r && Object.defineProperty(target, key, r), r;
40451};
40452
40453
40454
40455var PaginationAutoPageSizeService = /** @class */ (function (_super) {
40456 __extends(PaginationAutoPageSizeService, _super);
40457 function PaginationAutoPageSizeService() {
40458 return _super !== null && _super.apply(this, arguments) || this;
40459 }
40460 PaginationAutoPageSizeService.prototype.postConstruct = function () {
40461 var _this = this;
40462 this.controllersService.whenReady(function (p) {
40463 _this.centerRowContainerCon = p.centerRowContainerCon;
40464 _this.addManagedListener(_this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_HEIGHT_CHANGED, _this.onBodyHeightChanged.bind(_this));
40465 _this.addManagedListener(_this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, _this.onScrollVisibilityChanged.bind(_this));
40466 _this.checkPageSize();
40467 });
40468 };
40469 PaginationAutoPageSizeService.prototype.notActive = function () {
40470 return !this.gridOptionsWrapper.isPaginationAutoPageSize();
40471 };
40472 PaginationAutoPageSizeService.prototype.onScrollVisibilityChanged = function () {
40473 this.checkPageSize();
40474 };
40475 PaginationAutoPageSizeService.prototype.onBodyHeightChanged = function () {
40476 this.checkPageSize();
40477 };
40478 PaginationAutoPageSizeService.prototype.checkPageSize = function () {
40479 if (this.notActive()) {
40480 return;
40481 }
40482 var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();
40483 var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();
40484 if (bodyHeight > 0) {
40485 var newPageSize = Math.floor(bodyHeight / rowHeight);
40486 this.gridOptionsWrapper.setProperty('paginationPageSize', newPageSize);
40487 }
40488 };
40489 __decorate([
40490 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('controllersService')
40491 ], PaginationAutoPageSizeService.prototype, "controllersService", void 0);
40492 __decorate([
40493 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
40494 ], PaginationAutoPageSizeService.prototype, "postConstruct", null);
40495 PaginationAutoPageSizeService = __decorate([
40496 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('paginationAutoPageSizeService')
40497 ], PaginationAutoPageSizeService);
40498 return PaginationAutoPageSizeService;
40499}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
40500
40501
40502
40503/***/ }),
40504/* 175 */
40505/***/ (function(module, __webpack_exports__, __webpack_require__) {
40506
40507"use strict";
40508__webpack_require__.r(__webpack_exports__);
40509/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return ValueCache; });
40510/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
40511/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
40512/**
40513 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40514 * @version v25.3.0
40515 * @link http://www.ag-grid.com/
40516 * @license MIT
40517 */
40518var __extends = (undefined && undefined.__extends) || (function () {
40519 var extendStatics = function (d, b) {
40520 extendStatics = Object.setPrototypeOf ||
40521 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40522 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40523 return extendStatics(d, b);
40524 };
40525 return function (d, b) {
40526 extendStatics(d, b);
40527 function __() { this.constructor = d; }
40528 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40529 };
40530})();
40531var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40532 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40533 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40534 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40535 return c > 3 && r && Object.defineProperty(target, key, r), r;
40536};
40537
40538
40539var ValueCache = /** @class */ (function (_super) {
40540 __extends(ValueCache, _super);
40541 function ValueCache() {
40542 var _this = _super !== null && _super.apply(this, arguments) || this;
40543 _this.cacheVersion = 0;
40544 return _this;
40545 }
40546 ValueCache.prototype.init = function () {
40547 this.active = this.gridOptionsWrapper.isValueCache();
40548 this.neverExpires = this.gridOptionsWrapper.isValueCacheNeverExpires();
40549 };
40550 ValueCache.prototype.onDataChanged = function () {
40551 if (this.neverExpires) {
40552 return;
40553 }
40554 this.expire();
40555 };
40556 ValueCache.prototype.expire = function () {
40557 this.cacheVersion++;
40558 };
40559 ValueCache.prototype.setValue = function (rowNode, colId, value) {
40560 if (this.active) {
40561 if (rowNode.__cacheVersion !== this.cacheVersion) {
40562 rowNode.__cacheVersion = this.cacheVersion;
40563 rowNode.__cacheData = {};
40564 }
40565 rowNode.__cacheData[colId] = value;
40566 }
40567 };
40568 ValueCache.prototype.getValue = function (rowNode, colId) {
40569 if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {
40570 return undefined;
40571 }
40572 return rowNode.__cacheData[colId];
40573 };
40574 __decorate([
40575 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
40576 ], ValueCache.prototype, "init", null);
40577 ValueCache = __decorate([
40578 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueCache')
40579 ], ValueCache);
40580 return ValueCache;
40581}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
40582
40583
40584
40585/***/ }),
40586/* 176 */
40587/***/ (function(module, __webpack_exports__, __webpack_require__) {
40588
40589"use strict";
40590__webpack_require__.r(__webpack_exports__);
40591/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectionService", function() { return ChangeDetectionService; });
40592/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
40593/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
40594/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(102);
40595/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
40596/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23);
40597/**
40598 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40599 * @version v25.3.0
40600 * @link http://www.ag-grid.com/
40601 * @license MIT
40602 */
40603var __extends = (undefined && undefined.__extends) || (function () {
40604 var extendStatics = function (d, b) {
40605 extendStatics = Object.setPrototypeOf ||
40606 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40607 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40608 return extendStatics(d, b);
40609 };
40610 return function (d, b) {
40611 extendStatics(d, b);
40612 function __() { this.constructor = d; }
40613 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40614 };
40615})();
40616var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40617 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40618 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40619 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40620 return c > 3 && r && Object.defineProperty(target, key, r), r;
40621};
40622
40623
40624
40625
40626
40627var ChangeDetectionService = /** @class */ (function (_super) {
40628 __extends(ChangeDetectionService, _super);
40629 function ChangeDetectionService() {
40630 return _super !== null && _super.apply(this, arguments) || this;
40631 }
40632 ChangeDetectionService.prototype.init = function () {
40633 if (this.rowModel.getType() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
40634 this.clientSideRowModel = this.rowModel;
40635 }
40636 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));
40637 };
40638 ChangeDetectionService.prototype.onCellValueChanged = function (event) {
40639 // Clipboard service manages its own change detection, so no need to do it here.
40640 // The clipboard manages its own as otherwise this would happen once for every cell
40641 // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,
40642 // this doChangeDetection would get called 100 times (once for each cell), instead clipboard
40643 // service executes the logic we have here once (in essence batching up all cell changes
40644 // into one change detection).
40645 if (event.source === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].SOURCE_PASTE) {
40646 return;
40647 }
40648 this.doChangeDetection(event.node, event.column);
40649 };
40650 ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {
40651 if (this.gridOptionsWrapper.isSuppressChangeDetection()) {
40652 return;
40653 }
40654 // step 1 of change detection is to update the aggregated values
40655 if (this.clientSideRowModel && !rowNode.isRowPinned()) {
40656 var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();
40657 var changedPath = new _utils_changedPath__WEBPACK_IMPORTED_MODULE_2__["ChangedPath"](onlyChangedColumns, this.clientSideRowModel.getRootNode());
40658 changedPath.addParentNode(rowNode.parent, [column]);
40659 this.clientSideRowModel.doAggregate(changedPath);
40660 }
40661 // step 2 of change detection is to refresh the cells
40662 this.rowRenderer.refreshCells();
40663 };
40664 __decorate([
40665 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
40666 ], ChangeDetectionService.prototype, "rowModel", void 0);
40667 __decorate([
40668 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
40669 ], ChangeDetectionService.prototype, "rowRenderer", void 0);
40670 __decorate([
40671 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
40672 ], ChangeDetectionService.prototype, "init", null);
40673 ChangeDetectionService = __decorate([
40674 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('changeDetectionService')
40675 ], ChangeDetectionService);
40676 return ChangeDetectionService;
40677}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
40678
40679
40680
40681/***/ }),
40682/* 177 */
40683/***/ (function(module, __webpack_exports__, __webpack_require__) {
40684
40685"use strict";
40686__webpack_require__.r(__webpack_exports__);
40687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return AlignedGridsService; });
40688/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
40689/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
40690/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
40691/**
40692 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40693 * @version v25.3.0
40694 * @link http://www.ag-grid.com/
40695 * @license MIT
40696 */
40697var __extends = (undefined && undefined.__extends) || (function () {
40698 var extendStatics = function (d, b) {
40699 extendStatics = Object.setPrototypeOf ||
40700 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40701 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40702 return extendStatics(d, b);
40703 };
40704 return function (d, b) {
40705 extendStatics(d, b);
40706 function __() { this.constructor = d; }
40707 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40708 };
40709})();
40710var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40711 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40712 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40713 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40714 return c > 3 && r && Object.defineProperty(target, key, r), r;
40715};
40716var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
40717 return function (target, key) { decorator(target, key, paramIndex); }
40718};
40719
40720
40721
40722
40723
40724
40725var AlignedGridsService = /** @class */ (function (_super) {
40726 __extends(AlignedGridsService, _super);
40727 function AlignedGridsService() {
40728 var _this = _super !== null && _super.apply(this, arguments) || this;
40729 // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master
40730 // while processing a master event) we mark this if consuming an event, and if we are, then
40731 // we don't fire back any events.
40732 _this.consuming = false;
40733 return _this;
40734 }
40735 AlignedGridsService.prototype.setBeans = function (loggerFactory) {
40736 this.logger = loggerFactory.create('AlignedGridsService');
40737 };
40738 AlignedGridsService.prototype.init = function () {
40739 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));
40740 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));
40741 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));
40742 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));
40743 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));
40744 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));
40745 };
40746 // common logic across all the fire methods
40747 AlignedGridsService.prototype.fireEvent = function (callback) {
40748 // if we are already consuming, then we are acting on an event from a master,
40749 // so we don't cause a cyclic firing of events
40750 if (this.consuming) {
40751 return;
40752 }
40753 // iterate through the aligned grids, and pass each aligned grid service to the callback
40754 var otherGrids = this.gridOptionsWrapper.getAlignedGrids();
40755 if (otherGrids) {
40756 otherGrids.forEach(function (otherGridOptions) {
40757 if (otherGridOptions.api) {
40758 var alignedGridService = otherGridOptions.api.__getAlignedGridService();
40759 callback(alignedGridService);
40760 }
40761 });
40762 }
40763 };
40764 // common logic across all consume methods. very little common logic, however extracting
40765 // guarantees consistency across the methods.
40766 AlignedGridsService.prototype.onEvent = function (callback) {
40767 this.consuming = true;
40768 callback();
40769 this.consuming = false;
40770 };
40771 AlignedGridsService.prototype.fireColumnEvent = function (event) {
40772 this.fireEvent(function (alignedGridsService) {
40773 alignedGridsService.onColumnEvent(event);
40774 });
40775 };
40776 AlignedGridsService.prototype.fireScrollEvent = function (event) {
40777 if (event.direction !== 'horizontal') {
40778 return;
40779 }
40780 this.fireEvent(function (alignedGridsService) {
40781 alignedGridsService.onScrollEvent(event);
40782 });
40783 };
40784 AlignedGridsService.prototype.onScrollEvent = function (event) {
40785 var _this = this;
40786 this.onEvent(function () {
40787 var gridBodyCon = _this.controllersService.getGridBodyController();
40788 gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left);
40789 });
40790 };
40791 AlignedGridsService.prototype.getMasterColumns = function (event) {
40792 var result = [];
40793 if (event.columns) {
40794 event.columns.forEach(function (column) {
40795 result.push(column);
40796 });
40797 }
40798 else if (event.column) {
40799 result.push(event.column);
40800 }
40801 return result;
40802 };
40803 AlignedGridsService.prototype.getColumnIds = function (event) {
40804 var result = [];
40805 if (event.columns) {
40806 event.columns.forEach(function (column) {
40807 result.push(column.getColId());
40808 });
40809 }
40810 else if (event.column) {
40811 result.push(event.column.getColId());
40812 }
40813 return result;
40814 };
40815 AlignedGridsService.prototype.onColumnEvent = function (event) {
40816 var _this = this;
40817 this.onEvent(function () {
40818 switch (event.type) {
40819 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED:
40820 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE:
40821 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED:
40822 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED:
40823 var colEvent = event;
40824 _this.processColumnEvent(colEvent);
40825 break;
40826 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_GROUP_OPENED:
40827 var groupOpenedEvent = event;
40828 _this.processGroupOpenedEvent(groupOpenedEvent);
40829 break;
40830 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_CHANGED:
40831 // we cannot support pivoting with aligned grids as the columns will be out of sync as the
40832 // grids will have columns created based on the row data of the grid.
40833 console.warn('AG Grid: pivoting is not supported with aligned grids. ' +
40834 'You can only use one of these features at a time in a grid.');
40835 break;
40836 }
40837 });
40838 };
40839 AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {
40840 // likewise for column group
40841 var masterColumnGroup = groupOpenedEvent.columnGroup;
40842 var otherColumnGroup = null;
40843 if (masterColumnGroup) {
40844 var groupId = masterColumnGroup.getGroupId();
40845 otherColumnGroup = this.columnController.getOriginalColumnGroup(groupId);
40846 }
40847 if (masterColumnGroup && !otherColumnGroup) {
40848 return;
40849 }
40850 this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());
40851 this.columnController.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), "alignedGridChanged");
40852 };
40853 AlignedGridsService.prototype.processColumnEvent = function (colEvent) {
40854 var _this = this;
40855 // the column in the event is from the master grid. need to
40856 // look up the equivalent from this (other) grid
40857 var masterColumn = colEvent.column;
40858 var otherColumn = null;
40859 if (masterColumn) {
40860 otherColumn = this.columnController.getPrimaryColumn(masterColumn.getColId());
40861 }
40862 // if event was with respect to a master column, that is not present in this
40863 // grid, then we ignore the event
40864 if (masterColumn && !otherColumn) {
40865 return;
40866 }
40867 // in time, all the methods below should use the column ids, it's a more generic way
40868 // of handling columns, and also allows for single or multi column events
40869 var masterColumns = this.getMasterColumns(colEvent);
40870 switch (colEvent.type) {
40871 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED:
40872 // when the user moves columns via setColumnState, we can't depend on moving specific columns
40873 // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).
40874 // so only way to be sure is match the order of all columns using Column State.
40875 {
40876 var movedEvent = colEvent;
40877 var srcColState = colEvent.columnApi.getColumnState();
40878 var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });
40879 this.columnController.applyColumnState({ state: destColState, applyOrder: true }, "alignedGridChanged");
40880 this.logger.log("onColumnEvent-> processing " + colEvent.type + " toIndex = " + movedEvent.toIndex);
40881 }
40882 break;
40883 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE:
40884 // when the user changes visibility via setColumnState, we can't depend on visibility flag in event
40885 // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).
40886 // so only way to be sure is match the visibility of all columns using Column State.
40887 {
40888 var visibleEvent = colEvent;
40889 var srcColState = colEvent.columnApi.getColumnState();
40890 var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });
40891 this.columnController.applyColumnState({ state: destColState }, "alignedGridChanged");
40892 this.logger.log("onColumnEvent-> processing " + colEvent.type + " visible = " + visibleEvent.visible);
40893 }
40894 break;
40895 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED:
40896 {
40897 var pinnedEvent = colEvent;
40898 var srcColState = colEvent.columnApi.getColumnState();
40899 var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });
40900 this.columnController.applyColumnState({ state: destColState }, "alignedGridChanged");
40901 this.logger.log("onColumnEvent-> processing " + colEvent.type + " pinned = " + pinnedEvent.pinned);
40902 }
40903 break;
40904 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED:
40905 var resizedEvent_1 = colEvent;
40906 masterColumns.forEach(function (column) {
40907 _this.logger.log("onColumnEvent-> processing " + colEvent.type + " actualWidth = " + column.getActualWidth());
40908 var columnWidths = [{ key: column.getColId(), newWidth: column.getActualWidth() }];
40909 _this.columnController.setColumnWidths(columnWidths, false, resizedEvent_1.finished, "alignedGridChanged");
40910 });
40911 break;
40912 }
40913 var gridBodyCon = this.controllersService.getGridBodyController();
40914 var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();
40915 var alignedGrids = this.gridOptionsWrapper.getAlignedGrids();
40916 if (alignedGrids) {
40917 alignedGrids.forEach(function (grid) {
40918 if (grid.api) {
40919 grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);
40920 }
40921 });
40922 }
40923 };
40924 __decorate([
40925 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
40926 ], AlignedGridsService.prototype, "columnController", void 0);
40927 __decorate([
40928 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
40929 ], AlignedGridsService.prototype, "controllersService", void 0);
40930 __decorate([
40931 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('loggerFactory'))
40932 ], AlignedGridsService.prototype, "setBeans", null);
40933 __decorate([
40934 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
40935 ], AlignedGridsService.prototype, "init", null);
40936 AlignedGridsService = __decorate([
40937 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('alignedGridsService')
40938 ], AlignedGridsService);
40939 return AlignedGridsService;
40940}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
40941
40942
40943
40944/***/ }),
40945/* 178 */
40946/***/ (function(module, __webpack_exports__, __webpack_require__) {
40947
40948"use strict";
40949__webpack_require__.r(__webpack_exports__);
40950/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgComponentUtils", function() { return AgComponentUtils; });
40951/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
40952/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
40953/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
40954/**
40955 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40956 * @version v25.3.0
40957 * @link http://www.ag-grid.com/
40958 * @license MIT
40959 */
40960var __extends = (undefined && undefined.__extends) || (function () {
40961 var extendStatics = function (d, b) {
40962 extendStatics = Object.setPrototypeOf ||
40963 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40964 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40965 return extendStatics(d, b);
40966 };
40967 return function (d, b) {
40968 extendStatics(d, b);
40969 function __() { this.constructor = d; }
40970 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40971 };
40972})();
40973var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40974 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40975 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40976 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40977 return c > 3 && r && Object.defineProperty(target, key, r), r;
40978};
40979
40980
40981
40982var AgComponentUtils = /** @class */ (function (_super) {
40983 __extends(AgComponentUtils, _super);
40984 function AgComponentUtils() {
40985 return _super !== null && _super.apply(this, arguments) || this;
40986 }
40987 AgComponentUtils.prototype.adaptFunction = function (propertyName, hardcodedJsFunction, componentFromFramework, source) {
40988 if (hardcodedJsFunction == null) {
40989 return {
40990 component: null,
40991 componentFromFramework: componentFromFramework,
40992 source: source,
40993 paramsFromSelector: null
40994 };
40995 }
40996 var metadata = this.componentMetadataProvider.retrieve(propertyName);
40997 if (metadata && metadata.functionAdapter) {
40998 return {
40999 componentFromFramework: componentFromFramework,
41000 component: metadata.functionAdapter(hardcodedJsFunction),
41001 source: source,
41002 paramsFromSelector: null
41003 };
41004 }
41005 return null;
41006 };
41007 AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {
41008 var Adapter = /** @class */ (function () {
41009 function Adapter() {
41010 }
41011 Adapter.prototype.refresh = function (params) {
41012 return false;
41013 };
41014 Adapter.prototype.getGui = function () {
41015 var callbackResult = callback(this.params);
41016 var type = typeof callbackResult;
41017 if (type === 'string' || type === 'number' || type === 'boolean') {
41018 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span>' + callbackResult + '</span>');
41019 }
41020 return callbackResult;
41021 };
41022 Adapter.prototype.init = function (params) {
41023 this.params = params;
41024 };
41025 return Adapter;
41026 }());
41027 return Adapter;
41028 };
41029 AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {
41030 if (!candidate) {
41031 return false;
41032 }
41033 return candidate.prototype && 'getGui' in candidate.prototype;
41034 };
41035 __decorate([
41036 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("componentMetadataProvider")
41037 ], AgComponentUtils.prototype, "componentMetadataProvider", void 0);
41038 AgComponentUtils = __decorate([
41039 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])("agComponentUtils")
41040 ], AgComponentUtils);
41041 return AgComponentUtils;
41042}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41043
41044
41045
41046/***/ }),
41047/* 179 */
41048/***/ (function(module, __webpack_exports__, __webpack_require__) {
41049
41050"use strict";
41051__webpack_require__.r(__webpack_exports__);
41052/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentMetadataProvider", function() { return ComponentMetadataProvider; });
41053/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41054/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
41055/**
41056 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41057 * @version v25.3.0
41058 * @link http://www.ag-grid.com/
41059 * @license MIT
41060 */
41061var __extends = (undefined && undefined.__extends) || (function () {
41062 var extendStatics = function (d, b) {
41063 extendStatics = Object.setPrototypeOf ||
41064 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41065 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41066 return extendStatics(d, b);
41067 };
41068 return function (d, b) {
41069 extendStatics(d, b);
41070 function __() { this.constructor = d; }
41071 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41072 };
41073})();
41074var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41075 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41076 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41077 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
41078 return c > 3 && r && Object.defineProperty(target, key, r), r;
41079};
41080
41081
41082var ComponentMetadataProvider = /** @class */ (function (_super) {
41083 __extends(ComponentMetadataProvider, _super);
41084 function ComponentMetadataProvider() {
41085 return _super !== null && _super.apply(this, arguments) || this;
41086 }
41087 ComponentMetadataProvider.prototype.postConstruct = function () {
41088 this.componentMetaData = {
41089 dateComponent: {
41090 mandatoryMethodList: ['getDate', 'setDate'],
41091 optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']
41092 },
41093 detailCellRenderer: {
41094 mandatoryMethodList: [],
41095 optionalMethodList: ['refresh']
41096 },
41097 headerComponent: {
41098 mandatoryMethodList: [],
41099 optionalMethodList: ['refresh']
41100 },
41101 headerGroupComponent: {
41102 mandatoryMethodList: [],
41103 optionalMethodList: []
41104 },
41105 loadingCellRenderer: {
41106 mandatoryMethodList: [],
41107 optionalMethodList: []
41108 },
41109 loadingOverlayComponent: {
41110 mandatoryMethodList: [],
41111 optionalMethodList: []
41112 },
41113 noRowsOverlayComponent: {
41114 mandatoryMethodList: [],
41115 optionalMethodList: []
41116 },
41117 floatingFilterComponent: {
41118 mandatoryMethodList: ['onParentModelChanged'],
41119 optionalMethodList: ['afterGuiAttached']
41120 },
41121 floatingFilterWrapperComponent: {
41122 mandatoryMethodList: [],
41123 optionalMethodList: []
41124 },
41125 cellRenderer: {
41126 mandatoryMethodList: [],
41127 optionalMethodList: ['refresh', 'afterGuiAttached'],
41128 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41129 },
41130 cellEditor: {
41131 mandatoryMethodList: ['getValue'],
41132 optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']
41133 },
41134 innerRenderer: {
41135 mandatoryMethodList: [],
41136 optionalMethodList: ['afterGuiAttached'],
41137 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41138 },
41139 fullWidthCellRenderer: {
41140 mandatoryMethodList: [],
41141 optionalMethodList: ['refresh', 'afterGuiAttached'],
41142 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41143 },
41144 pinnedRowCellRenderer: {
41145 mandatoryMethodList: [],
41146 optionalMethodList: ['refresh', 'afterGuiAttached'],
41147 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41148 },
41149 groupRowRenderer: {
41150 mandatoryMethodList: [],
41151 optionalMethodList: ['afterGuiAttached'],
41152 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41153 },
41154 filter: {
41155 mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],
41156 optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']
41157 },
41158 filterComponent: {
41159 mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],
41160 optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']
41161 },
41162 statusPanel: {
41163 mandatoryMethodList: [],
41164 optionalMethodList: ['afterGuiAttached'],
41165 },
41166 toolPanel: {
41167 mandatoryMethodList: [],
41168 optionalMethodList: ['refresh', 'afterGuiAttached']
41169 },
41170 tooltipComponent: {
41171 mandatoryMethodList: [],
41172 optionalMethodList: []
41173 }
41174 };
41175 };
41176 ComponentMetadataProvider.prototype.retrieve = function (name) {
41177 return this.componentMetaData[name];
41178 };
41179 __decorate([
41180 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("agComponentUtils")
41181 ], ComponentMetadataProvider.prototype, "agComponentUtils", void 0);
41182 __decorate([
41183 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
41184 ], ComponentMetadataProvider.prototype, "postConstruct", null);
41185 ComponentMetadataProvider = __decorate([
41186 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])("componentMetadataProvider")
41187 ], ComponentMetadataProvider);
41188 return ComponentMetadataProvider;
41189}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41190
41191
41192
41193/***/ }),
41194/* 180 */
41195/***/ (function(module, __webpack_exports__, __webpack_require__) {
41196
41197"use strict";
41198__webpack_require__.r(__webpack_exports__);
41199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Beans", function() { return Beans; });
41200/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41201/**
41202 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41203 * @version v25.3.0
41204 * @link http://www.ag-grid.com/
41205 * @license MIT
41206 */
41207var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41208 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41209 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41210 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
41211 return c > 3 && r && Object.defineProperty(target, key, r), r;
41212};
41213
41214/** Using the IoC has a slight performance consideration, which is no problem most of the
41215 * time, unless we are trashing objects - which is the case when scrolling and rowComp
41216 * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired
41217 * with the IoC. Instead they get passed this object which is all the beans the RowComp
41218 * and CellComp need. Not autowiring all the cells gives performance improvement. */
41219var Beans = /** @class */ (function () {
41220 function Beans() {
41221 }
41222 Beans.prototype.registerGridComp = function (gridBodyComp) {
41223 this.gridBodyComp = gridBodyComp;
41224 };
41225 Beans.prototype.postConstruct = function () {
41226 this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();
41227 if (this.gridOptionsWrapper.isRowModelDefault()) {
41228 this.clientSideRowModel = this.rowModel;
41229 }
41230 if (this.gridOptionsWrapper.isRowModelServerSide()) {
41231 this.serverSideRowModel = this.rowModel;
41232 }
41233 };
41234 __decorate([
41235 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
41236 ], Beans.prototype, "resizeObserverService", void 0);
41237 __decorate([
41238 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
41239 ], Beans.prototype, "paginationProxy", void 0);
41240 __decorate([
41241 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('context')
41242 ], Beans.prototype, "context", void 0);
41243 __decorate([
41244 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
41245 ], Beans.prototype, "columnApi", void 0);
41246 __decorate([
41247 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
41248 ], Beans.prototype, "gridApi", void 0);
41249 __decorate([
41250 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
41251 ], Beans.prototype, "gridOptionsWrapper", void 0);
41252 __decorate([
41253 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
41254 ], Beans.prototype, "expressionService", void 0);
41255 __decorate([
41256 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
41257 ], Beans.prototype, "rowRenderer", void 0);
41258 __decorate([
41259 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$compile')
41260 ], Beans.prototype, "$compile", void 0);
41261 __decorate([
41262 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('templateService')
41263 ], Beans.prototype, "templateService", void 0);
41264 __decorate([
41265 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
41266 ], Beans.prototype, "valueService", void 0);
41267 __decorate([
41268 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eventService')
41269 ], Beans.prototype, "eventService", void 0);
41270 __decorate([
41271 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
41272 ], Beans.prototype, "columnController", void 0);
41273 __decorate([
41274 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
41275 ], Beans.prototype, "headerNavigationService", void 0);
41276 __decorate([
41277 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnAnimationService')
41278 ], Beans.prototype, "columnAnimationService", void 0);
41279 __decorate([
41280 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
41281 ], Beans.prototype, "rangeController", void 0);
41282 __decorate([
41283 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
41284 ], Beans.prototype, "focusController", void 0);
41285 __decorate([
41286 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('contextMenuFactory')
41287 ], Beans.prototype, "contextMenuFactory", void 0);
41288 __decorate([
41289 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
41290 ], Beans.prototype, "popupService", void 0);
41291 __decorate([
41292 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueFormatterService')
41293 ], Beans.prototype, "valueFormatterService", void 0);
41294 __decorate([
41295 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('stylingService')
41296 ], Beans.prototype, "stylingService", void 0);
41297 __decorate([
41298 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
41299 ], Beans.prototype, "columnHoverService", void 0);
41300 __decorate([
41301 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
41302 ], Beans.prototype, "userComponentFactory", void 0);
41303 __decorate([
41304 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
41305 ], Beans.prototype, "taskQueue", void 0);
41306 __decorate([
41307 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
41308 ], Beans.prototype, "dragAndDropService", void 0);
41309 __decorate([
41310 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
41311 ], Beans.prototype, "sortController", void 0);
41312 __decorate([
41313 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
41314 ], Beans.prototype, "filterManager", void 0);
41315 __decorate([
41316 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowContainerHeightService')
41317 ], Beans.prototype, "rowContainerHeightService", void 0);
41318 __decorate([
41319 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('frameworkOverrides')
41320 ], Beans.prototype, "frameworkOverrides", void 0);
41321 __decorate([
41322 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('detailRowCompCache')
41323 ], Beans.prototype, "detailRowCompCache", void 0);
41324 __decorate([
41325 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('cellPositionUtils')
41326 ], Beans.prototype, "cellPositionUtils", void 0);
41327 __decorate([
41328 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
41329 ], Beans.prototype, "rowPositionUtils", void 0);
41330 __decorate([
41331 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
41332 ], Beans.prototype, "selectionController", void 0);
41333 __decorate([
41334 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('selectionHandleFactory')
41335 ], Beans.prototype, "selectionHandleFactory", void 0);
41336 __decorate([
41337 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowCssClassCalculator')
41338 ], Beans.prototype, "rowCssClassCalculator", void 0);
41339 __decorate([
41340 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
41341 ], Beans.prototype, "rowModel", void 0);
41342 __decorate([
41343 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
41344 ], Beans.prototype, "controllersService", void 0);
41345 __decorate([
41346 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
41347 ], Beans.prototype, "postConstruct", null);
41348 Beans = __decorate([
41349 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('beans')
41350 ], Beans);
41351 return Beans;
41352}());
41353
41354
41355
41356/***/ }),
41357/* 181 */
41358/***/ (function(module, __webpack_exports__, __webpack_require__) {
41359
41360"use strict";
41361__webpack_require__.r(__webpack_exports__);
41362/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return Environment; });
41363/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41364/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
41365/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
41366/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
41367/**
41368 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41369 * @version v25.3.0
41370 * @link http://www.ag-grid.com/
41371 * @license MIT
41372 */
41373var __extends = (undefined && undefined.__extends) || (function () {
41374 var extendStatics = function (d, b) {
41375 extendStatics = Object.setPrototypeOf ||
41376 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41377 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41378 return extendStatics(d, b);
41379 };
41380 return function (d, b) {
41381 extendStatics(d, b);
41382 function __() { this.constructor = d; }
41383 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41384 };
41385})();
41386var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41387 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41388 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41389 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
41390 return c > 3 && r && Object.defineProperty(target, key, r), r;
41391};
41392
41393
41394
41395
41396var MAT_GRID_SIZE = 8;
41397var BASE_GRID_SIZE = 4;
41398var BALHAM_GRID_SIZE = 4;
41399var ALPINE_GRID_SIZE = 6;
41400var HARD_CODED_SIZES = {
41401 // this item is required for custom themes
41402 'ag-theme-custom': {
41403 headerHeight: 25,
41404 headerCellMinWidth: 24,
41405 listItemHeight: BASE_GRID_SIZE * 5,
41406 rowHeight: 25,
41407 chartMenuPanelWidth: 220
41408 },
41409 'ag-theme-material': {
41410 headerHeight: MAT_GRID_SIZE * 7,
41411 headerCellMinWidth: 48,
41412 listItemHeight: MAT_GRID_SIZE * 4,
41413 rowHeight: MAT_GRID_SIZE * 6,
41414 chartMenuPanelWidth: 240
41415 },
41416 'ag-theme-balham': {
41417 headerHeight: BALHAM_GRID_SIZE * 8,
41418 headerCellMinWidth: 24,
41419 listItemHeight: BALHAM_GRID_SIZE * 6,
41420 rowHeight: BALHAM_GRID_SIZE * 7,
41421 chartMenuPanelWidth: 220
41422 },
41423 'ag-theme-alpine': {
41424 headerHeight: ALPINE_GRID_SIZE * 8,
41425 headerCellMinWidth: 36,
41426 listItemHeight: ALPINE_GRID_SIZE * 4,
41427 rowHeight: ALPINE_GRID_SIZE * 7,
41428 chartMenuPanelWidth: 240
41429 }
41430};
41431/**
41432 * this object contains a list of Sass variables and an array
41433 * of CSS styles required to get the correct value.
41434 * eg. $virtual-item-height requires a structure, so we can get its height.
41435 * <div class="ag-theme-balham">
41436 * <div class="ag-virtual-list-container">
41437 * <div class="ag-virtual-list-item"></div>
41438 * </div>
41439 * </div>
41440 */
41441var SASS_PROPERTY_BUILDER = {
41442 headerHeight: ['ag-header-row'],
41443 headerCellMinWidth: ['ag-header-cell'],
41444 listItemHeight: ['ag-virtual-list-item'],
41445 rowHeight: ['ag-row'],
41446 chartMenuPanelWidth: ['ag-chart-docked-container']
41447};
41448var CALCULATED_SIZES = {};
41449var Environment = /** @class */ (function (_super) {
41450 __extends(Environment, _super);
41451 function Environment() {
41452 return _super !== null && _super.apply(this, arguments) || this;
41453 }
41454 Environment.prototype.getSassVariable = function (theme, key) {
41455 var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');
41456 var defaultValue = HARD_CODED_SIZES[useTheme][key];
41457 var calculatedValue = 0;
41458 if (!CALCULATED_SIZES[theme]) {
41459 CALCULATED_SIZES[theme] = {};
41460 }
41461 var size = CALCULATED_SIZES[theme][key];
41462 if (size != null) {
41463 return size;
41464 }
41465 if (SASS_PROPERTY_BUILDER[key]) {
41466 var classList = SASS_PROPERTY_BUILDER[key];
41467 var div = document.createElement('div');
41468 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(div, theme);
41469 div.style.position = 'absolute';
41470 var el = classList.reduce(function (prevEl, currentClass) {
41471 var currentDiv = document.createElement('div');
41472 currentDiv.style.position = 'static';
41473 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(currentDiv, currentClass);
41474 prevEl.appendChild(currentDiv);
41475 return currentDiv;
41476 }, div);
41477 if (document.body) {
41478 document.body.appendChild(div);
41479 var sizeName = key.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';
41480 calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);
41481 document.body.removeChild(div);
41482 }
41483 }
41484 CALCULATED_SIZES[theme][key] = calculatedValue || defaultValue;
41485 return CALCULATED_SIZES[theme][key];
41486 };
41487 Environment.prototype.isThemeDark = function () {
41488 var theme = this.getTheme().theme;
41489 return !!theme && theme.indexOf('dark') >= 0;
41490 };
41491 Environment.prototype.chartMenuPanelWidth = function () {
41492 var theme = this.getTheme().themeFamily;
41493 return this.getSassVariable(theme, 'chartMenuPanelWidth');
41494 };
41495 Environment.prototype.getTheme = function () {
41496 var reg = /\bag-(material|(?:theme-([\w\-]*)))\b/;
41497 var el = this.eGridDiv;
41498 var themeMatch = null;
41499 while (el) {
41500 themeMatch = reg.exec(el.className);
41501 if (!themeMatch) {
41502 el = el.parentElement || undefined;
41503 }
41504 else {
41505 break;
41506 }
41507 }
41508 if (!themeMatch) {
41509 return {};
41510 }
41511 var theme = themeMatch[0];
41512 var usingOldTheme = themeMatch[2] === undefined;
41513 if (usingOldTheme) {
41514 var newTheme_1 = theme.replace('ag-', 'ag-theme-');
41515 Object(_utils_function__WEBPACK_IMPORTED_MODULE_3__["doOnce"])(function () { return console.warn("AG Grid: As of v19 old theme are no longer provided. Please replace " + theme + " with " + newTheme_1 + "."); }, 'using-old-theme');
41516 }
41517 return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, '') };
41518 };
41519 __decorate([
41520 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eGridDiv')
41521 ], Environment.prototype, "eGridDiv", void 0);
41522 Environment = __decorate([
41523 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('environment')
41524 ], Environment);
41525 return Environment;
41526}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41527
41528
41529
41530/***/ }),
41531/* 182 */
41532/***/ (function(module, __webpack_exports__, __webpack_require__) {
41533
41534"use strict";
41535__webpack_require__.r(__webpack_exports__);
41536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return AnimationFrameService; });
41537/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41538/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
41539/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
41540/**
41541 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41542 * @version v25.3.0
41543 * @link http://www.ag-grid.com/
41544 * @license MIT
41545 */
41546var __extends = (undefined && undefined.__extends) || (function () {
41547 var extendStatics = function (d, b) {
41548 extendStatics = Object.setPrototypeOf ||
41549 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41550 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41551 return extendStatics(d, b);
41552 };
41553 return function (d, b) {
41554 extendStatics(d, b);
41555 function __() { this.constructor = d; }
41556 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41557 };
41558})();
41559var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41560 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41561 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41562 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
41563 return c > 3 && r && Object.defineProperty(target, key, r), r;
41564};
41565
41566
41567
41568var AnimationFrameService = /** @class */ (function (_super) {
41569 __extends(AnimationFrameService, _super);
41570 function AnimationFrameService() {
41571 var _this = _super !== null && _super.apply(this, arguments) || this;
41572 // p1 and p2 are create tasks are to do with row and cell creation.
41573 // for them we want to execute according to row order, so we use
41574 // TaskItem so we know what index the item is for.
41575 _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows
41576 _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality
41577 // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new
41578 // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as
41579 // important.
41580 _this.destroyTasks = [];
41581 _this.ticking = false;
41582 // we need to know direction of scroll, to build up rows in the direction of
41583 // the scroll. eg if user scrolls down, we extend the rows by building down.
41584 _this.scrollGoingDown = true;
41585 _this.lastScrollTop = 0;
41586 _this.taskCount = 0;
41587 _this.cancelledTasks = new Set();
41588 return _this;
41589 }
41590 AnimationFrameService.prototype.setScrollTop = function (scrollTop) {
41591 this.scrollGoingDown = scrollTop > this.lastScrollTop;
41592 this.lastScrollTop = scrollTop;
41593 };
41594 AnimationFrameService.prototype.init = function () {
41595 this.useAnimationFrame = !this.gridOptionsWrapper.isSuppressAnimationFrame();
41596 };
41597 // this method is for our AG Grid sanity only - if animation frames are turned off,
41598 // then no place in the code should be looking to add any work to be done in animation
41599 // frames. this stops bugs - where some code is asking for a frame to be executed
41600 // when it should not.
41601 AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {
41602 if (this.useAnimationFrame === false) {
41603 console.warn("AG Grid: AnimationFrameService." + methodName + " called but animation frames are off");
41604 }
41605 };
41606 AnimationFrameService.prototype.createTask = function (task, index, list) {
41607 this.verifyAnimationFrameOn(list);
41608 var taskItem = { task: task, index: index, createOrder: ++this.taskCount };
41609 this.addTaskToList(this[list], taskItem);
41610 this.schedule();
41611 };
41612 AnimationFrameService.prototype.cancelTask = function (task) {
41613 this.cancelledTasks.add(task);
41614 };
41615 AnimationFrameService.prototype.addTaskToList = function (taskList, task) {
41616 taskList.list.push(task);
41617 taskList.sorted = false;
41618 };
41619 AnimationFrameService.prototype.sortTaskList = function (taskList) {
41620 if (taskList.sorted) {
41621 return;
41622 }
41623 var sortDirection = this.scrollGoingDown ? 1 : -1;
41624 // sort first by row index (taking into account scroll direction), then by
41625 // order of task creation (always ascending, so cells will render left-to-right)
41626 taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });
41627 taskList.sorted = true;
41628 };
41629 AnimationFrameService.prototype.addDestroyTask = function (task) {
41630 this.verifyAnimationFrameOn('createTasksP3');
41631 this.destroyTasks.push(task);
41632 this.schedule();
41633 };
41634 AnimationFrameService.prototype.executeFrame = function (millis) {
41635 this.verifyAnimationFrameOn('executeFrame');
41636 var p1TaskList = this.createTasksP1;
41637 var p1Tasks = p1TaskList.list;
41638 var p2TaskList = this.createTasksP2;
41639 var p2Tasks = p2TaskList.list;
41640 var destroyTasks = this.destroyTasks;
41641 var frameStart = new Date().getTime();
41642 var duration = (new Date().getTime()) - frameStart;
41643 // 16ms is 60 fps
41644 var noMaxMillis = millis <= 0;
41645 var gridBodyCon = this.controllersService.getGridBodyController();
41646 while (noMaxMillis || duration < millis) {
41647 var gridBodyDidSomething = gridBodyCon.getScrollFeature().executeAnimationFrameScroll();
41648 if (!gridBodyDidSomething) {
41649 var task = void 0;
41650 if (p1Tasks.length) {
41651 this.sortTaskList(p1TaskList);
41652 task = p1Tasks.pop().task;
41653 }
41654 else if (p2Tasks.length) {
41655 this.sortTaskList(p2TaskList);
41656 task = p2Tasks.pop().task;
41657 }
41658 else if (destroyTasks.length) {
41659 task = destroyTasks.pop();
41660 }
41661 else {
41662 this.cancelledTasks.clear();
41663 break;
41664 }
41665 if (!this.cancelledTasks.has(task)) {
41666 task();
41667 }
41668 }
41669 duration = (new Date().getTime()) - frameStart;
41670 }
41671 if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {
41672 this.requestFrame();
41673 }
41674 else {
41675 this.stopTicking();
41676 }
41677 };
41678 AnimationFrameService.prototype.stopTicking = function () {
41679 this.ticking = false;
41680 var event = {
41681 type: _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ANIMATION_QUEUE_EMPTY,
41682 columnApi: this.gridOptionsWrapper.getColumnApi(),
41683 api: this.gridOptionsWrapper.getApi()
41684 };
41685 this.eventService.dispatchEvent(event);
41686 };
41687 AnimationFrameService.prototype.flushAllFrames = function () {
41688 if (!this.useAnimationFrame) {
41689 return;
41690 }
41691 this.executeFrame(-1);
41692 };
41693 AnimationFrameService.prototype.schedule = function () {
41694 if (!this.useAnimationFrame) {
41695 return;
41696 }
41697 if (!this.ticking) {
41698 this.ticking = true;
41699 this.requestFrame();
41700 }
41701 };
41702 AnimationFrameService.prototype.requestFrame = function () {
41703 // check for the existence of requestAnimationFrame, and if
41704 // it's missing, then we polyfill it with setTimeout()
41705 var callback = this.executeFrame.bind(this, 60);
41706 if (window.requestAnimationFrame) {
41707 window.requestAnimationFrame(callback);
41708 }
41709 else if (window.webkitRequestAnimationFrame) {
41710 window.webkitRequestAnimationFrame(callback);
41711 }
41712 else {
41713 window.setTimeout(callback, 0);
41714 }
41715 };
41716 AnimationFrameService.prototype.isQueueEmpty = function () {
41717 return !this.ticking;
41718 };
41719 __decorate([
41720 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
41721 ], AnimationFrameService.prototype, "controllersService", void 0);
41722 __decorate([
41723 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
41724 ], AnimationFrameService.prototype, "init", null);
41725 AnimationFrameService = __decorate([
41726 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('animationFrameService')
41727 ], AnimationFrameService);
41728 return AnimationFrameService;
41729}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
41730
41731
41732
41733/***/ }),
41734/* 183 */
41735/***/ (function(module, __webpack_exports__, __webpack_require__) {
41736
41737"use strict";
41738__webpack_require__.r(__webpack_exports__);
41739/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationService", function() { return NavigationService; });
41740/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41741/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
41742/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
41743/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
41744/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60);
41745/**
41746 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41747 * @version v25.3.0
41748 * @link http://www.ag-grid.com/
41749 * @license MIT
41750 */
41751var __extends = (undefined && undefined.__extends) || (function () {
41752 var extendStatics = function (d, b) {
41753 extendStatics = Object.setPrototypeOf ||
41754 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41755 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41756 return extendStatics(d, b);
41757 };
41758 return function (d, b) {
41759 extendStatics(d, b);
41760 function __() { this.constructor = d; }
41761 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41762 };
41763})();
41764var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41765 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41766 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41767 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
41768 return c > 3 && r && Object.defineProperty(target, key, r), r;
41769};
41770
41771
41772
41773
41774
41775var NavigationService = /** @class */ (function (_super) {
41776 __extends(NavigationService, _super);
41777 function NavigationService() {
41778 var _this = _super !== null && _super.apply(this, arguments) || this;
41779 _this.timeLastPageEventProcessed = 0;
41780 return _this;
41781 }
41782 NavigationService.prototype.postConstruct = function () {
41783 var _this = this;
41784 this.controllersService.whenReady(function (p) {
41785 _this.gridBodyCon = p.gridBodyCon;
41786 });
41787 };
41788 NavigationService.prototype.handlePageScrollingKey = function (event) {
41789 var key = event.which || event.keyCode;
41790 var alt = event.altKey;
41791 var ctrl = event.ctrlKey || event.metaKey;
41792 var currentCell = this.mouseEventService.getCellPositionForEvent(event);
41793 if (!currentCell) {
41794 return false;
41795 }
41796 var processed = false;
41797 switch (key) {
41798 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_HOME:
41799 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_END:
41800 // handle home and end when ctrl & alt are NOT pressed
41801 if (!ctrl && !alt) {
41802 this.onHomeOrEndKey(key);
41803 processed = true;
41804 }
41805 break;
41806 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT:
41807 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].RIGHT:
41808 // handle left and right when ctrl is pressed only
41809 if (ctrl && !alt) {
41810 this.onCtrlLeftOrRight(key, currentCell);
41811 processed = true;
41812 }
41813 break;
41814 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP:
41815 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN:
41816 // handle up and down when ctrl is pressed only
41817 if (ctrl && !alt) {
41818 this.onCtrlUpOrDown(key, currentCell);
41819 processed = true;
41820 }
41821 break;
41822 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_DOWN:
41823 // handle page up and page down when ctrl & alt are NOT pressed
41824 if (!ctrl && !alt) {
41825 this.onPageDown(currentCell);
41826 processed = true;
41827 }
41828 break;
41829 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_UP:
41830 // handle page up and page down when ctrl & alt are NOT pressed
41831 if (!ctrl && !alt) {
41832 this.onPageUp(currentCell);
41833 processed = true;
41834 }
41835 break;
41836 }
41837 if (processed) {
41838 event.preventDefault();
41839 }
41840 return processed;
41841 };
41842 // the page up/down keys caused a problem, in that if the user
41843 // held the page up/down key down, lots of events got generated,
41844 // which clogged up the event queue (as they take time to process)
41845 // which in turn froze the grid. Logic below makes sure we wait 100ms
41846 // between processing the page up/down events, so when user has finger
41847 // held down on key, we ignore page up/down events until 100ms has passed,
41848 // which effectively empties the queue of page up/down events.
41849 NavigationService.prototype.isTimeSinceLastPageEventToRecent = function () {
41850 var now = new Date().getTime();
41851 var diff = now - this.timeLastPageEventProcessed;
41852 return (diff < 100);
41853 };
41854 NavigationService.prototype.setTimeLastPageEventProcessed = function () {
41855 this.timeLastPageEventProcessed = new Date().getTime();
41856 };
41857 NavigationService.prototype.navigateTo = function (navigateParams) {
41858 var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;
41859 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(scrollColumn)) {
41860 this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);
41861 }
41862 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(scrollIndex)) {
41863 this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);
41864 }
41865 // make sure the cell is rendered, needed if we are to focus
41866 this.animationFrameService.flushAllFrames();
41867 // if we don't do this, the range will be left on the last cell, which will leave the last focused cell
41868 // highlighted.
41869 this.focusController.setFocusedCell(focusIndex, focusColumn, null, true);
41870 if (this.rangeController) {
41871 var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };
41872 this.rangeController.setRangeToCell(cellPosition);
41873 }
41874 };
41875 NavigationService.prototype.onPageDown = function (gridCell) {
41876 if (this.isTimeSinceLastPageEventToRecent()) {
41877 return;
41878 }
41879 var gridBodyCon = this.controllersService.getGridBodyController();
41880 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
41881 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
41882 var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;
41883 if (this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing()) {
41884 pixelsInOnePage -= scrollbarWidth;
41885 }
41886 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
41887 var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;
41888 var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);
41889 var scrollIndex = currentPageBottomRow;
41890 var currentCellPixel = this.paginationProxy.getRow(gridCell.rowIndex).rowTop;
41891 var nextCellPixel = currentCellPixel + pixelsInOnePage - pagingPixelOffset;
41892 var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);
41893 var pageLastRow = this.paginationProxy.getPageLastRow();
41894 if (focusIndex > pageLastRow) {
41895 focusIndex = pageLastRow;
41896 }
41897 if (scrollIndex > pageLastRow) {
41898 scrollIndex = pageLastRow;
41899 }
41900 this.navigateTo({
41901 scrollIndex: scrollIndex,
41902 scrollType: 'top',
41903 scrollColumn: null,
41904 focusIndex: focusIndex,
41905 focusColumn: gridCell.column
41906 });
41907 this.setTimeLastPageEventProcessed();
41908 };
41909 NavigationService.prototype.onPageUp = function (gridCell) {
41910 if (this.isTimeSinceLastPageEventToRecent()) {
41911 return;
41912 }
41913 var gridBodyCon = this.controllersService.getGridBodyController();
41914 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
41915 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
41916 var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;
41917 if (this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing()) {
41918 pixelsInOnePage -= scrollbarWidth;
41919 }
41920 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
41921 var currentPageTopPixel = scrollPosition.top;
41922 var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);
41923 var scrollIndex = currentPageTopRow;
41924 var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);
41925 var nextCellPixel = currentRowNode.rowTop + currentRowNode.rowHeight - pixelsInOnePage - pagingPixelOffset;
41926 var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);
41927 var firstRow = this.paginationProxy.getPageFirstRow();
41928 if (focusIndex < firstRow) {
41929 focusIndex = firstRow;
41930 }
41931 if (scrollIndex < firstRow) {
41932 scrollIndex = firstRow;
41933 }
41934 this.navigateTo({
41935 scrollIndex: scrollIndex,
41936 scrollType: 'bottom',
41937 scrollColumn: null,
41938 focusIndex: focusIndex,
41939 focusColumn: gridCell.column
41940 });
41941 this.setTimeLastPageEventProcessed();
41942 };
41943 NavigationService.prototype.getIndexToFocus = function (indexToScrollTo, isDown) {
41944 var indexToFocus = indexToScrollTo;
41945 // for SSRM, when user hits ctrl+down, we can end up trying to focus the loading row.
41946 // instead we focus the last row with data instead.
41947 if (isDown) {
41948 var node = this.paginationProxy.getRow(indexToScrollTo);
41949 if (node && node.stub) {
41950 indexToFocus -= 1;
41951 }
41952 }
41953 return indexToFocus;
41954 };
41955 // ctrl + up/down will bring focus to same column, first/last row. no horizontal scrolling.
41956 NavigationService.prototype.onCtrlUpOrDown = function (key, gridCell) {
41957 var upKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP;
41958 var rowIndexToScrollTo = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();
41959 this.navigateTo({
41960 scrollIndex: rowIndexToScrollTo,
41961 scrollType: null,
41962 scrollColumn: gridCell.column,
41963 focusIndex: this.getIndexToFocus(rowIndexToScrollTo, !upKey),
41964 focusColumn: gridCell.column
41965 });
41966 };
41967 // ctrl + left/right will bring focus to same row, first/last cell. no vertical scrolling.
41968 NavigationService.prototype.onCtrlLeftOrRight = function (key, gridCell) {
41969 var leftKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT;
41970 var allColumns = this.columnController.getAllDisplayedColumns();
41971 var columnToSelect = leftKey ? allColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(allColumns);
41972 this.navigateTo({
41973 scrollIndex: gridCell.rowIndex,
41974 scrollType: null,
41975 scrollColumn: columnToSelect,
41976 focusIndex: gridCell.rowIndex,
41977 focusColumn: columnToSelect
41978 });
41979 };
41980 // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring
41981 // same cell into view (which means either scroll all the way up, or all the way down).
41982 NavigationService.prototype.onHomeOrEndKey = function (key) {
41983 var homeKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_HOME;
41984 var allColumns = this.columnController.getAllDisplayedColumns();
41985 var columnToSelect = homeKey ? allColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(allColumns);
41986 var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();
41987 this.navigateTo({
41988 scrollIndex: scrollIndex,
41989 scrollType: null,
41990 scrollColumn: columnToSelect,
41991 focusIndex: this.getIndexToFocus(scrollIndex, !homeKey),
41992 focusColumn: columnToSelect
41993 });
41994 };
41995 __decorate([
41996 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
41997 ], NavigationService.prototype, "mouseEventService", void 0);
41998 __decorate([
41999 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
42000 ], NavigationService.prototype, "paginationProxy", void 0);
42001 __decorate([
42002 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
42003 ], NavigationService.prototype, "focusController", void 0);
42004 __decorate([
42005 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
42006 ], NavigationService.prototype, "animationFrameService", void 0);
42007 __decorate([
42008 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
42009 ], NavigationService.prototype, "rangeController", void 0);
42010 __decorate([
42011 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
42012 ], NavigationService.prototype, "columnController", void 0);
42013 __decorate([
42014 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
42015 ], NavigationService.prototype, "controllersService", void 0);
42016 __decorate([
42017 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42018 ], NavigationService.prototype, "postConstruct", null);
42019 NavigationService = __decorate([
42020 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('navigationService')
42021 ], NavigationService);
42022 return NavigationService;
42023}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42024
42025
42026
42027/***/ }),
42028/* 184 */
42029/***/ (function(module, __webpack_exports__, __webpack_require__) {
42030
42031"use strict";
42032__webpack_require__.r(__webpack_exports__);
42033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerHeightService", function() { return RowContainerHeightService; });
42034/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
42035/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
42036/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
42037/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
42038/**
42039 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42040 * @version v25.3.0
42041 * @link http://www.ag-grid.com/
42042 * @license MIT
42043 */
42044var __extends = (undefined && undefined.__extends) || (function () {
42045 var extendStatics = function (d, b) {
42046 extendStatics = Object.setPrototypeOf ||
42047 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42048 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42049 return extendStatics(d, b);
42050 };
42051 return function (d, b) {
42052 extendStatics(d, b);
42053 function __() { this.constructor = d; }
42054 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42055 };
42056})();
42057var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42058 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42059 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42060 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42061 return c > 3 && r && Object.defineProperty(target, key, r), r;
42062};
42063var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
42064 return function (target, key) { decorator(target, key, paramIndex); }
42065};
42066
42067
42068
42069
42070/**
42071 * This class solves the 'max height' problem, where the user might want to show more data than
42072 * the max div height actually allows.
42073 */
42074var RowContainerHeightService = /** @class */ (function (_super) {
42075 __extends(RowContainerHeightService, _super);
42076 function RowContainerHeightService() {
42077 var _this = _super !== null && _super.apply(this, arguments) || this;
42078 // the scrollY position
42079 _this.scrollY = 0;
42080 // how tall the body is
42081 _this.uiBodyHeight = 0;
42082 return _this;
42083 }
42084 RowContainerHeightService.prototype.agWire = function (loggerFactory) {
42085 this.logger = loggerFactory.create("RowContainerHeightService");
42086 };
42087 RowContainerHeightService.prototype.postConstruct = function () {
42088 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));
42089 this.maxDivHeight = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["getMaxDivHeight"])();
42090 this.logger.log('maxDivHeight = ' + this.maxDivHeight);
42091 };
42092 RowContainerHeightService.prototype.isStretching = function () {
42093 return this.stretching;
42094 };
42095 RowContainerHeightService.prototype.getDivStretchOffset = function () {
42096 return this.divStretchOffset;
42097 };
42098 RowContainerHeightService.prototype.updateOffset = function () {
42099 if (!this.stretching) {
42100 return;
42101 }
42102 var gridBodyCon = this.controllersService.getGridBodyController();
42103 var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;
42104 var newBodyHeight = this.getUiBodyHeight();
42105 var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;
42106 if (atLeastOneChanged) {
42107 this.scrollY = newScrollY;
42108 this.uiBodyHeight = newBodyHeight;
42109 this.calculateOffset();
42110 }
42111 };
42112 RowContainerHeightService.prototype.calculateOffset = function () {
42113 this.setUiContainerHeight(this.maxDivHeight);
42114 this.pixelsToShave = this.modelHeight - this.uiContainerHeight;
42115 this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;
42116 var scrollPercent = this.scrollY / this.maxScrollY;
42117 var divStretchOffset = scrollPercent * this.pixelsToShave;
42118 this.logger.log("Div Stretch Offset = " + divStretchOffset + " (" + this.pixelsToShave + " * " + scrollPercent + ")");
42119 this.setDivStretchOffset(divStretchOffset);
42120 };
42121 RowContainerHeightService.prototype.setUiContainerHeight = function (height) {
42122 if (height !== this.uiContainerHeight) {
42123 this.uiContainerHeight = height;
42124 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED });
42125 }
42126 };
42127 RowContainerHeightService.prototype.clearOffset = function () {
42128 this.setUiContainerHeight(this.modelHeight);
42129 this.pixelsToShave = 0;
42130 this.setDivStretchOffset(0);
42131 };
42132 RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {
42133 // because we are talking pixels, no point in confusing things with half numbers
42134 var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;
42135 if (this.divStretchOffset === newOffsetFloor) {
42136 return;
42137 }
42138 this.divStretchOffset = newOffsetFloor;
42139 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_HEIGHT_SCALE_CHANGED });
42140 };
42141 RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {
42142 this.modelHeight = modelHeight;
42143 this.stretching = modelHeight != null // null happens when in print layout
42144 && this.maxDivHeight > 0
42145 && modelHeight > this.maxDivHeight;
42146 if (this.stretching) {
42147 this.calculateOffset();
42148 }
42149 else {
42150 this.clearOffset();
42151 }
42152 };
42153 RowContainerHeightService.prototype.getUiContainerHeight = function () {
42154 return this.uiContainerHeight;
42155 };
42156 RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {
42157 return modelPixel - this.divStretchOffset;
42158 };
42159 RowContainerHeightService.prototype.getUiBodyHeight = function () {
42160 var gridBodyCon = this.controllersService.getGridBodyController();
42161 var pos = gridBodyCon.getScrollFeature().getVScrollPosition();
42162 return pos.bottom - pos.top;
42163 };
42164 RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {
42165 if (this.pixelsToShave <= 0) {
42166 return rowTop;
42167 }
42168 var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();
42169 var scrollPercent = rowTop / modelMaxScroll;
42170 var scrollPixel = this.maxScrollY * scrollPercent;
42171 return scrollPixel;
42172 };
42173 __decorate([
42174 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
42175 ], RowContainerHeightService.prototype, "controllersService", void 0);
42176 __decorate([
42177 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])("loggerFactory"))
42178 ], RowContainerHeightService.prototype, "agWire", null);
42179 __decorate([
42180 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
42181 ], RowContainerHeightService.prototype, "postConstruct", null);
42182 RowContainerHeightService = __decorate([
42183 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowContainerHeightService')
42184 ], RowContainerHeightService);
42185 return RowContainerHeightService;
42186}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
42187
42188
42189
42190/***/ }),
42191/* 185 */
42192/***/ (function(module, __webpack_exports__, __webpack_require__) {
42193
42194"use strict";
42195__webpack_require__.r(__webpack_exports__);
42196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return SelectableService; });
42197/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42198/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
42199/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
42200/**
42201 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42202 * @version v25.3.0
42203 * @link http://www.ag-grid.com/
42204 * @license MIT
42205 */
42206var __extends = (undefined && undefined.__extends) || (function () {
42207 var extendStatics = function (d, b) {
42208 extendStatics = Object.setPrototypeOf ||
42209 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42210 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42211 return extendStatics(d, b);
42212 };
42213 return function (d, b) {
42214 extendStatics(d, b);
42215 function __() { this.constructor = d; }
42216 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42217 };
42218})();
42219var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42220 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42221 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42222 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42223 return c > 3 && r && Object.defineProperty(target, key, r), r;
42224};
42225
42226
42227
42228var SelectableService = /** @class */ (function (_super) {
42229 __extends(SelectableService, _super);
42230 function SelectableService() {
42231 return _super !== null && _super.apply(this, arguments) || this;
42232 }
42233 SelectableService.prototype.init = function () {
42234 this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
42235 this.isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();
42236 };
42237 SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {
42238 if (this.isRowSelectableFunc) {
42239 var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };
42240 this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);
42241 }
42242 };
42243 SelectableService.prototype.updateSelectableAfterFiltering = function (rowNode) {
42244 if (this.isRowSelectableFunc) {
42245 var nextChildrenFunc = function (node) { return node.childrenAfterFilter; };
42246 this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);
42247 }
42248 };
42249 SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {
42250 var _this = this;
42251 if (!children) {
42252 return;
42253 }
42254 children.forEach(function (child) {
42255 if (!child.group) {
42256 return;
42257 } // only interested in groups
42258 if (child.hasChildren()) {
42259 _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);
42260 }
42261 var rowSelectable;
42262 if (_this.groupSelectsChildren) {
42263 // have this group selectable if at least one direct child is selectable
42264 var firstSelectable = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["find"])(nextChildrenFunc(child), 'selectable', true);
42265 rowSelectable = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(firstSelectable);
42266 }
42267 else {
42268 // directly retrieve selectable value from user callback
42269 rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;
42270 }
42271 child.setRowSelectable(rowSelectable);
42272 });
42273 };
42274 __decorate([
42275 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42276 ], SelectableService.prototype, "init", null);
42277 SelectableService = __decorate([
42278 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('selectableService')
42279 ], SelectableService);
42280 return SelectableService;
42281}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42282
42283
42284
42285/***/ }),
42286/* 186 */
42287/***/ (function(module, __webpack_exports__, __webpack_require__) {
42288
42289"use strict";
42290__webpack_require__.r(__webpack_exports__);
42291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoHeightCalculator", function() { return AutoHeightCalculator; });
42292/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42293/* harmony import */ var _cellComp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(107);
42294/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
42295/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
42296/* harmony import */ var _angularRowUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(106);
42297/**
42298 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42299 * @version v25.3.0
42300 * @link http://www.ag-grid.com/
42301 * @license MIT
42302 */
42303var __extends = (undefined && undefined.__extends) || (function () {
42304 var extendStatics = function (d, b) {
42305 extendStatics = Object.setPrototypeOf ||
42306 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42307 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42308 return extendStatics(d, b);
42309 };
42310 return function (d, b) {
42311 extendStatics(d, b);
42312 function __() { this.constructor = d; }
42313 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42314 };
42315})();
42316var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42317 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42318 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42319 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42320 return c > 3 && r && Object.defineProperty(target, key, r), r;
42321};
42322
42323
42324
42325
42326
42327var AutoHeightCalculator = /** @class */ (function (_super) {
42328 __extends(AutoHeightCalculator, _super);
42329 function AutoHeightCalculator() {
42330 return _super !== null && _super.apply(this, arguments) || this;
42331 }
42332 AutoHeightCalculator.prototype.postConstruct = function () {
42333 var _this = this;
42334 this.controllersService.whenReady(function (p) {
42335 _this.centerRowContainerCon = p.centerRowContainerCon;
42336 });
42337 };
42338 AutoHeightCalculator.prototype.getPreferredHeightForRow = function (rowNode) {
42339 var _this = this;
42340 var eDummyContainer = document.createElement('div');
42341 this.addInRowCssClasses(rowNode, eDummyContainer);
42342 // we put the dummy into the body container, so it will inherit all the
42343 // css styles that the real cells are inheriting
42344 var eBodyContainer = this.centerRowContainerCon.getContainerElement();
42345 eBodyContainer.appendChild(eDummyContainer);
42346 var scopeResult = _angularRowUtils__WEBPACK_IMPORTED_MODULE_4__["AngularRowUtils"].createChildScopeOrNull(rowNode, this.$scope, this.beans.gridOptionsWrapper);
42347 var scope = scopeResult ? scopeResult.scope : undefined;
42348 var scopeDestroyFunc = scopeResult ? scopeResult.scopeDestroyFunc : undefined;
42349 var cellComps = [];
42350 var autoRowHeightCols = this.columnController.getAllAutoRowHeightCols();
42351 var displayedCols = this.columnController.getAllDisplayedColumns();
42352 var visibleAutoRowHeightCols = autoRowHeightCols.filter(function (col) { return displayedCols.indexOf(col) >= 0; });
42353 visibleAutoRowHeightCols.forEach(function (col) {
42354 var cellComp = new _cellComp__WEBPACK_IMPORTED_MODULE_1__["CellComp"](scope, _this.beans, col, rowNode, null, true, false, eDummyContainer, false);
42355 cellComps.push(cellComp);
42356 });
42357 cellComps.forEach(function (cellComp) { return eDummyContainer.appendChild(cellComp.getGui()); });
42358 if (scope) {
42359 this.$compile(eDummyContainer)(scope);
42360 }
42361 // we should be able to just take the height of the row at this point, however
42362 // the row isn't expanding to cover the cell heights, i don't know why, i couldn't
42363 // figure it out so instead looking at the individual cells instead
42364 var maxCellHeight = 0;
42365 for (var i = 0; i < eDummyContainer.children.length; i++) {
42366 var child = eDummyContainer.children[i];
42367 if (child.offsetHeight > maxCellHeight) {
42368 maxCellHeight = child.offsetHeight;
42369 }
42370 }
42371 // we are finished with the dummy container, so get rid of it
42372 eBodyContainer.removeChild(eDummyContainer);
42373 cellComps.forEach(function (cellComp) {
42374 // dunno why we need to detach first, doing it here to be consistent with code in RowComp
42375 cellComp.detach();
42376 cellComp.destroy();
42377 });
42378 if (scopeDestroyFunc) {
42379 scopeDestroyFunc();
42380 }
42381 return maxCellHeight;
42382 };
42383 AutoHeightCalculator.prototype.addInRowCssClasses = function (rowNode, eDummyContainer) {
42384 // so any styles on row also get applied in dummy, otherwise
42385 // the content in dummy may differ to the real
42386 var rowIndex = rowNode.rowIndex;
42387 var params = {
42388 rowNode: rowNode,
42389 rowIsEven: rowIndex % 2 === 0,
42390 rowLevel: this.rowCssClassCalculator.calculateRowLevel(rowNode),
42391 firstRowOnPage: rowIndex === this.beans.paginationProxy.getPageFirstRow(),
42392 lastRowOnPage: rowIndex === this.beans.paginationProxy.getPageLastRow(),
42393 printLayout: false,
42394 expandable: rowNode.isExpandable()
42395 };
42396 var classes = this.rowCssClassCalculator.getInitialRowClasses(params);
42397 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eDummyContainer, classes.join(' '));
42398 };
42399 __decorate([
42400 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
42401 ], AutoHeightCalculator.prototype, "beans", void 0);
42402 __decorate([
42403 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("$scope")
42404 ], AutoHeightCalculator.prototype, "$scope", void 0);
42405 __decorate([
42406 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("columnController")
42407 ], AutoHeightCalculator.prototype, "columnController", void 0);
42408 __decorate([
42409 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("rowCssClassCalculator")
42410 ], AutoHeightCalculator.prototype, "rowCssClassCalculator", void 0);
42411 __decorate([
42412 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$compile')
42413 ], AutoHeightCalculator.prototype, "$compile", void 0);
42414 __decorate([
42415 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
42416 ], AutoHeightCalculator.prototype, "controllersService", void 0);
42417 __decorate([
42418 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42419 ], AutoHeightCalculator.prototype, "postConstruct", null);
42420 AutoHeightCalculator = __decorate([
42421 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoHeightCalculator')
42422 ], AutoHeightCalculator);
42423 return AutoHeightCalculator;
42424}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
42425
42426
42427
42428/***/ }),
42429/* 187 */
42430/***/ (function(module, __webpack_exports__, __webpack_require__) {
42431
42432"use strict";
42433__webpack_require__.r(__webpack_exports__);
42434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationComp", function() { return PaginationComp; });
42435/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
42436/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
42437/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
42438/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
42439/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50);
42440/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
42441/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
42442/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(47);
42443/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60);
42444/**
42445 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42446 * @version v25.3.0
42447 * @link http://www.ag-grid.com/
42448 * @license MIT
42449 */
42450var __extends = (undefined && undefined.__extends) || (function () {
42451 var extendStatics = function (d, b) {
42452 extendStatics = Object.setPrototypeOf ||
42453 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42454 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42455 return extendStatics(d, b);
42456 };
42457 return function (d, b) {
42458 extendStatics(d, b);
42459 function __() { this.constructor = d; }
42460 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42461 };
42462})();
42463var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42464 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42465 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42466 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42467 return c > 3 && r && Object.defineProperty(target, key, r), r;
42468};
42469
42470
42471
42472
42473
42474
42475
42476
42477
42478var PaginationComp = /** @class */ (function (_super) {
42479 __extends(PaginationComp, _super);
42480 function PaginationComp() {
42481 var _this = _super.call(this) || this;
42482 _this.previousAndFirstButtonsDisabled = false;
42483 _this.nextButtonDisabled = false;
42484 _this.lastButtonDisabled = false;
42485 return _this;
42486 }
42487 PaginationComp.prototype.postConstruct = function () {
42488 var _this = this;
42489 var isRtl = this.gridOptionsWrapper.isEnableRtl();
42490 this.setTemplate(this.getTemplate());
42491 this.btFirst.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'last' : 'first', this.gridOptionsWrapper));
42492 this.btPrevious.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'next' : 'previous', this.gridOptionsWrapper));
42493 this.btNext.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'previous' : 'next', this.gridOptionsWrapper));
42494 this.btLast.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'first' : 'last', this.gridOptionsWrapper));
42495 var isPaging = this.gridOptionsWrapper.isPagination();
42496 var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();
42497 if (!paginationPanelEnabled) {
42498 this.setDisplayed(false);
42499 return;
42500 }
42501 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));
42502 [
42503 { el: this.btFirst, fn: this.onBtFirst.bind(this) },
42504 { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },
42505 { el: this.btNext, fn: this.onBtNext.bind(this) },
42506 { el: this.btLast, fn: this.onBtLast.bind(this) }
42507 ].forEach(function (item) {
42508 var el = item.el, fn = item.fn;
42509 _this.addManagedListener(el, 'click', fn);
42510 _this.addManagedListener(el, 'keydown', function (e) {
42511 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].ENTER || e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].SPACE) {
42512 e.preventDefault();
42513 fn();
42514 }
42515 });
42516 });
42517 this.onPaginationChanged();
42518 };
42519 PaginationComp.prototype.onPaginationChanged = function () {
42520 this.enableOrDisableButtons();
42521 this.updateRowLabels();
42522 this.setCurrentPageLabel();
42523 this.setTotalLabels();
42524 };
42525 PaginationComp.prototype.onBtFirst = function () {
42526 if (!this.previousAndFirstButtonsDisabled) {
42527 this.paginationProxy.goToFirstPage();
42528 }
42529 };
42530 PaginationComp.prototype.setCurrentPageLabel = function () {
42531 var pagesExist = this.paginationProxy.getTotalPages() > 0;
42532 var currentPage = this.paginationProxy.getCurrentPage();
42533 var toDisplay = pagesExist ? currentPage + 1 : 0;
42534 this.lbCurrent.innerHTML = this.formatNumber(toDisplay);
42535 };
42536 PaginationComp.prototype.formatNumber = function (value) {
42537 var userFunc = this.gridOptionsWrapper.getPaginationNumberFormatterFunc();
42538 if (userFunc) {
42539 return userFunc({ value: value });
42540 }
42541 return Object(_utils_number__WEBPACK_IMPORTED_MODULE_5__["formatNumberCommas"])(value);
42542 };
42543 PaginationComp.prototype.getTemplate = function () {
42544 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
42545 var strPage = localeTextFunc('page', 'Page');
42546 var strTo = localeTextFunc('to', 'to');
42547 var strOf = localeTextFunc('of', 'of');
42548 var strFirst = localeTextFunc('firstPage', 'First Page');
42549 var strPrevious = localeTextFunc('previousPage', 'Previous Page');
42550 var strNext = localeTextFunc('nextPage', 'Next Page');
42551 var strLast = localeTextFunc('lastPage', 'Last Page');
42552 var compId = this.getCompId();
42553 var summaryDescribedBy = "ag-" + compId + "-first-row ag-" + compId + "-to ag-" + compId + "-last-row ag-" + compId + "-of ag-" + compId + "-row-count";
42554 var descriptionDescribedBy = "ag-" + compId + "-start-page ag-" + compId + "-start-page-number ag-" + compId + "-of-page ag-" + compId + "-of-page-number";
42555 return /* html */ "<div class=\"ag-paging-panel ag-unselectable\" id=\"ag-" + compId + "\" aria-live=\"polite\" aria-describedby=\"" + descriptionDescribedBy + " " + summaryDescribedBy + "\">\n <span class=\"ag-paging-row-summary-panel\" aria-hidden=\"true\">\n <span id=\"ag-" + compId + "-first-row\" ref=\"lbFirstRowOnPage\" class=\"ag-paging-row-summary-panel-number\"></span>\n <span id=\"ag-" + compId + "-to\">" + strTo + "</span>\n <span id=\"ag-" + compId + "-last-row\" ref=\"lbLastRowOnPage\" class=\"ag-paging-row-summary-panel-number\"></span>\n <span id=\"ag-" + compId + "-of\">" + strOf + "</span>\n <span id=\"ag-" + compId + "-row-count\" ref=\"lbRecordCount\" class=\"ag-paging-row-summary-panel-number\"></span>\n </span>\n <span class=\"ag-paging-page-summary-panel\" role=\"presentation\">\n <div ref=\"btFirst\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strFirst + "\" tabindex=\"0\"></div>\n <div ref=\"btPrevious\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strPrevious + "\" tabindex=\"0\"></div>\n <span class=\"ag-paging-description\" aria-hidden=\"true\">\n <span id=\"ag-" + compId + "-start-page\">" + strPage + "</span>\n <span id=\"ag-" + compId + "-start-page-number\" ref=\"lbCurrent\" class=\"ag-paging-number\"></span>\n <span id=\"ag-" + compId + "-of-page\">" + strOf + "</span>\n <span id=\"ag-" + compId + "-of-page-number\" ref=\"lbTotal\" class=\"ag-paging-number\"></span>\n </span>\n <div ref=\"btNext\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strNext + "\" tabindex=\"0\"></div>\n <div ref=\"btLast\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strLast + "\" tabindex=\"0\"></div>\n </span>\n </div>";
42556 };
42557 PaginationComp.prototype.onBtNext = function () {
42558 if (!this.nextButtonDisabled) {
42559 this.paginationProxy.goToNextPage();
42560 }
42561 };
42562 PaginationComp.prototype.onBtPrevious = function () {
42563 if (!this.previousAndFirstButtonsDisabled) {
42564 this.paginationProxy.goToPreviousPage();
42565 }
42566 };
42567 PaginationComp.prototype.onBtLast = function () {
42568 if (!this.lastButtonDisabled) {
42569 this.paginationProxy.goToLastPage();
42570 }
42571 };
42572 PaginationComp.prototype.enableOrDisableButtons = function () {
42573 var currentPage = this.paginationProxy.getCurrentPage();
42574 var maxRowFound = this.paginationProxy.isLastPageFound();
42575 var totalPages = this.paginationProxy.getTotalPages();
42576 this.previousAndFirstButtonsDisabled = currentPage === 0;
42577 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btFirst, 'ag-disabled', this.previousAndFirstButtonsDisabled);
42578 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btFirst, this.previousAndFirstButtonsDisabled);
42579 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btPrevious, 'ag-disabled', this.previousAndFirstButtonsDisabled);
42580 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btPrevious, this.previousAndFirstButtonsDisabled);
42581 var zeroPagesToDisplay = this.isZeroPagesToDisplay();
42582 var onLastPage = maxRowFound && currentPage === (totalPages - 1);
42583 this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;
42584 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btNext, 'ag-disabled', this.nextButtonDisabled);
42585 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btNext, this.nextButtonDisabled);
42586 this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);
42587 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btLast, 'ag-disabled', this.lastButtonDisabled);
42588 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btLast, this.lastButtonDisabled);
42589 };
42590 PaginationComp.prototype.updateRowLabels = function () {
42591 var currentPage = this.paginationProxy.getCurrentPage();
42592 var pageSize = this.paginationProxy.getPageSize();
42593 var maxRowFound = this.paginationProxy.isLastPageFound();
42594 var rowCount = this.paginationProxy.isLastPageFound() ?
42595 this.paginationProxy.getMasterRowCount() : null;
42596 var startRow;
42597 var endRow;
42598 if (this.isZeroPagesToDisplay()) {
42599 startRow = endRow = 0;
42600 }
42601 else {
42602 startRow = (pageSize * currentPage) + 1;
42603 endRow = startRow + pageSize - 1;
42604 if (maxRowFound && endRow > rowCount) {
42605 endRow = rowCount;
42606 }
42607 }
42608 this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);
42609 if (this.rowNodeBlockLoader.isLoading()) {
42610 this.lbLastRowOnPage.innerHTML = '?';
42611 }
42612 else {
42613 this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);
42614 }
42615 };
42616 PaginationComp.prototype.isZeroPagesToDisplay = function () {
42617 var maxRowFound = this.paginationProxy.isLastPageFound();
42618 var totalPages = this.paginationProxy.getTotalPages();
42619 return maxRowFound && totalPages === 0;
42620 };
42621 PaginationComp.prototype.setTotalLabels = function () {
42622 var lastPageFound = this.paginationProxy.isLastPageFound();
42623 var totalPages = this.paginationProxy.getTotalPages();
42624 var rowCount = lastPageFound ?
42625 this.paginationProxy.getMasterRowCount() : null;
42626 if (lastPageFound) {
42627 this.lbTotal.innerHTML = this.formatNumber(totalPages);
42628 this.lbRecordCount.innerHTML = this.formatNumber(rowCount);
42629 }
42630 else {
42631 var moreText = this.gridOptionsWrapper.getLocaleTextFunc()('more', 'more');
42632 this.lbTotal.innerHTML = moreText;
42633 this.lbRecordCount.innerHTML = moreText;
42634 }
42635 };
42636 __decorate([
42637 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
42638 ], PaginationComp.prototype, "paginationProxy", void 0);
42639 __decorate([
42640 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowNodeBlockLoader')
42641 ], PaginationComp.prototype, "rowNodeBlockLoader", void 0);
42642 __decorate([
42643 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btFirst')
42644 ], PaginationComp.prototype, "btFirst", void 0);
42645 __decorate([
42646 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btPrevious')
42647 ], PaginationComp.prototype, "btPrevious", void 0);
42648 __decorate([
42649 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btNext')
42650 ], PaginationComp.prototype, "btNext", void 0);
42651 __decorate([
42652 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btLast')
42653 ], PaginationComp.prototype, "btLast", void 0);
42654 __decorate([
42655 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbRecordCount')
42656 ], PaginationComp.prototype, "lbRecordCount", void 0);
42657 __decorate([
42658 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbFirstRowOnPage')
42659 ], PaginationComp.prototype, "lbFirstRowOnPage", void 0);
42660 __decorate([
42661 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbLastRowOnPage')
42662 ], PaginationComp.prototype, "lbLastRowOnPage", void 0);
42663 __decorate([
42664 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbCurrent')
42665 ], PaginationComp.prototype, "lbCurrent", void 0);
42666 __decorate([
42667 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbTotal')
42668 ], PaginationComp.prototype, "lbTotal", void 0);
42669 __decorate([
42670 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
42671 ], PaginationComp.prototype, "postConstruct", null);
42672 return PaginationComp;
42673}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
42674
42675
42676
42677/***/ }),
42678/* 188 */
42679/***/ (function(module, __webpack_exports__, __webpack_require__) {
42680
42681"use strict";
42682__webpack_require__.r(__webpack_exports__);
42683/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return ResizeObserverService; });
42684/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42685/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
42686/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
42687/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
42688/**
42689 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42690 * @version v25.3.0
42691 * @link http://www.ag-grid.com/
42692 * @license MIT
42693 */
42694var __extends = (undefined && undefined.__extends) || (function () {
42695 var extendStatics = function (d, b) {
42696 extendStatics = Object.setPrototypeOf ||
42697 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42698 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42699 return extendStatics(d, b);
42700 };
42701 return function (d, b) {
42702 extendStatics(d, b);
42703 function __() { this.constructor = d; }
42704 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42705 };
42706})();
42707var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42708 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42709 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42710 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42711 return c > 3 && r && Object.defineProperty(target, key, r), r;
42712};
42713
42714
42715
42716
42717var ResizeObserverService = /** @class */ (function (_super) {
42718 __extends(ResizeObserverService, _super);
42719 function ResizeObserverService() {
42720 return _super !== null && _super.apply(this, arguments) || this;
42721 }
42722 ResizeObserverService.prototype.observeResize = function (element, callback, debounceDelay) {
42723 if (debounceDelay === void 0) { debounceDelay = 50; }
42724 // put in variable, so available to usePolyfill() function below
42725 var frameworkFactory = this.getFrameworkOverrides();
42726 // this gets fired too often and might cause some relayout issues
42727 // so we add a debounce to the callback here to avoid the flashing effect.
42728 var debouncedCallback = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["debounce"])(callback, debounceDelay);
42729 var useBrowserResizeObserver = function () {
42730 var resizeObserver = new window.ResizeObserver(debouncedCallback);
42731 resizeObserver.observe(element);
42732 return function () { return resizeObserver.disconnect(); };
42733 };
42734 var usePolyfill = function () {
42735 // initialise to the current width and height, so first call will have no changes
42736 var widthLastTime = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetWidth"])(element);
42737 var heightLastTime = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetHeight"])(element);
42738 // when finished, this gets turned to false.
42739 var running = true;
42740 var periodicallyCheckWidthAndHeight = function () {
42741 if (running) {
42742 var newWidth = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetWidth"])(element);
42743 var newHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetHeight"])(element);
42744 var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;
42745 if (changed) {
42746 widthLastTime = newWidth;
42747 heightLastTime = newHeight;
42748 callback();
42749 }
42750 frameworkFactory.setTimeout(periodicallyCheckWidthAndHeight, debounceDelay);
42751 }
42752 };
42753 periodicallyCheckWidthAndHeight();
42754 // the callback function we return sets running to false
42755 return function () { return running = false; };
42756 };
42757 var suppressResize = this.gridOptionsWrapper.isSuppressBrowserResizeObserver();
42758 var resizeObserverExists = !!window.ResizeObserver;
42759 if (resizeObserverExists && !suppressResize) {
42760 return useBrowserResizeObserver();
42761 }
42762 else {
42763 return usePolyfill();
42764 }
42765 };
42766 ResizeObserverService = __decorate([
42767 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('resizeObserverService')
42768 ], ResizeObserverService);
42769 return ResizeObserverService;
42770}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42771
42772
42773
42774/***/ }),
42775/* 189 */
42776/***/ (function(module, __webpack_exports__, __webpack_require__) {
42777
42778"use strict";
42779__webpack_require__.r(__webpack_exports__);
42780/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverlayWrapperComponent", function() { return OverlayWrapperComponent; });
42781/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42782/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
42783/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
42784/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
42785/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(137);
42786/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24);
42787/**
42788 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42789 * @version v25.3.0
42790 * @link http://www.ag-grid.com/
42791 * @license MIT
42792 */
42793var __extends = (undefined && undefined.__extends) || (function () {
42794 var extendStatics = function (d, b) {
42795 extendStatics = Object.setPrototypeOf ||
42796 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42797 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42798 return extendStatics(d, b);
42799 };
42800 return function (d, b) {
42801 extendStatics(d, b);
42802 function __() { this.constructor = d; }
42803 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42804 };
42805})();
42806var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42807 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42808 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42809 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42810 return c > 3 && r && Object.defineProperty(target, key, r), r;
42811};
42812
42813
42814
42815
42816
42817
42818var LoadingType;
42819(function (LoadingType) {
42820 LoadingType[LoadingType["Loading"] = 0] = "Loading";
42821 LoadingType[LoadingType["NoRows"] = 1] = "NoRows";
42822})(LoadingType || (LoadingType = {}));
42823var OverlayWrapperComponent = /** @class */ (function (_super) {
42824 __extends(OverlayWrapperComponent, _super);
42825 function OverlayWrapperComponent() {
42826 var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;
42827 _this.inProgress = false;
42828 _this.destroyRequested = false;
42829 return _this;
42830 }
42831 OverlayWrapperComponent.prototype.updateLayoutClasses = function (params) {
42832 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
42833 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].NORMAL, params.normal);
42834 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].PRINT, params.print);
42835 };
42836 OverlayWrapperComponent.prototype.postConstruct = function () {
42837 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutFeature"](this));
42838 this.setDisplayed(false);
42839 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_ROW_DATA_CHANGED, this.onRowDataChanged.bind(this));
42840 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_ROW_DATA_UPDATED, this.onRowDataChanged.bind(this));
42841 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
42842 if (this.gridOptionsWrapper.isRowModelDefault() && !this.gridOptionsWrapper.getRowData()) {
42843 this.showLoadingOverlay();
42844 }
42845 this.gridApi.registerOverlayWrapperComp(this);
42846 };
42847 OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {
42848 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, 'ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);
42849 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, 'ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);
42850 };
42851 OverlayWrapperComponent.prototype.showLoadingOverlay = function () {
42852 if (this.gridOptionsWrapper.isSuppressLoadingOverlay()) {
42853 return;
42854 }
42855 var workItem = this.userComponentFactory.newLoadingOverlayComponent({
42856 api: this.gridOptionsWrapper.getApi()
42857 });
42858 this.showOverlay(workItem, LoadingType.Loading);
42859 };
42860 OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {
42861 if (this.gridOptionsWrapper.isSuppressNoRowsOverlay()) {
42862 return;
42863 }
42864 var workItem = this.userComponentFactory.newNoRowsOverlayComponent({
42865 api: this.gridOptionsWrapper.getApi()
42866 });
42867 this.showOverlay(workItem, LoadingType.NoRows);
42868 };
42869 OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {
42870 var _this = this;
42871 if (this.inProgress) {
42872 return;
42873 }
42874 this.setWrapperTypeClass(type);
42875 this.destroyActiveOverlay();
42876 this.inProgress = true;
42877 if (workItem) {
42878 workItem.then(function (comp) {
42879 _this.inProgress = false;
42880 _this.eOverlayWrapper.appendChild(comp.getGui());
42881 _this.activeOverlay = comp;
42882 if (_this.destroyRequested) {
42883 _this.destroyRequested = false;
42884 _this.destroyActiveOverlay();
42885 }
42886 });
42887 }
42888 this.setDisplayed(true);
42889 };
42890 OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {
42891 if (this.inProgress) {
42892 this.destroyRequested = true;
42893 return;
42894 }
42895 if (!this.activeOverlay) {
42896 return;
42897 }
42898 this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);
42899 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eOverlayWrapper);
42900 };
42901 OverlayWrapperComponent.prototype.hideOverlay = function () {
42902 this.destroyActiveOverlay();
42903 this.setDisplayed(false);
42904 };
42905 OverlayWrapperComponent.prototype.destroy = function () {
42906 this.destroyActiveOverlay();
42907 _super.prototype.destroy.call(this);
42908 };
42909 OverlayWrapperComponent.prototype.showOrHideOverlay = function () {
42910 var isEmpty = this.paginationProxy.isEmpty();
42911 var isSuppressNoRowsOverlay = this.gridOptionsWrapper.isSuppressNoRowsOverlay();
42912 if (isEmpty && !isSuppressNoRowsOverlay) {
42913 this.showNoRowsOverlay();
42914 }
42915 else {
42916 this.hideOverlay();
42917 }
42918 };
42919 OverlayWrapperComponent.prototype.onRowDataChanged = function () {
42920 this.showOrHideOverlay();
42921 };
42922 OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {
42923 // hide overlay if columns and rows exist, this can happen if columns are loaded after data.
42924 // this problem exists before of the race condition between the services (column controller in this case)
42925 // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,
42926 // this race condition would not happen.
42927 if (this.columnController.isReady() && !this.paginationProxy.isEmpty()) {
42928 this.hideOverlay();
42929 }
42930 };
42931 // wrapping in outer div, and wrapper, is needed to center the loading icon
42932 // The idea for centering came from here: http://www.vanseodesign.com/css/vertical-centering/
42933 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>";
42934 __decorate([
42935 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
42936 ], OverlayWrapperComponent.prototype, "userComponentFactory", void 0);
42937 __decorate([
42938 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
42939 ], OverlayWrapperComponent.prototype, "paginationProxy", void 0);
42940 __decorate([
42941 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
42942 ], OverlayWrapperComponent.prototype, "gridApi", void 0);
42943 __decorate([
42944 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
42945 ], OverlayWrapperComponent.prototype, "columnController", void 0);
42946 __decorate([
42947 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eOverlayWrapper')
42948 ], OverlayWrapperComponent.prototype, "eOverlayWrapper", void 0);
42949 __decorate([
42950 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42951 ], OverlayWrapperComponent.prototype, "postConstruct", null);
42952 return OverlayWrapperComponent;
42953}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
42954
42955
42956
42957/***/ }),
42958/* 190 */
42959/***/ (function(module, __webpack_exports__, __webpack_require__) {
42960
42961"use strict";
42962__webpack_require__.r(__webpack_exports__);
42963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return AgGroupComponent; });
42964/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
42965/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
42966/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
42967/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50);
42968/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
42969/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
42970/**
42971 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42972 * @version v25.3.0
42973 * @link http://www.ag-grid.com/
42974 * @license MIT
42975 */
42976var __extends = (undefined && undefined.__extends) || (function () {
42977 var extendStatics = function (d, b) {
42978 extendStatics = Object.setPrototypeOf ||
42979 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42980 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42981 return extendStatics(d, b);
42982 };
42983 return function (d, b) {
42984 extendStatics(d, b);
42985 function __() { this.constructor = d; }
42986 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42987 };
42988})();
42989var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42990 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42991 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42992 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
42993 return c > 3 && r && Object.defineProperty(target, key, r), r;
42994};
42995
42996
42997
42998
42999
43000
43001var AgGroupComponent = /** @class */ (function (_super) {
43002 __extends(AgGroupComponent, _super);
43003 function AgGroupComponent(params) {
43004 if (params === void 0) { params = {}; }
43005 var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;
43006 _this.suppressEnabledCheckbox = true;
43007 _this.suppressOpenCloseIcons = false;
43008 var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;
43009 _this.title = title;
43010 _this.cssIdentifier = params.cssIdentifier || 'default';
43011 _this.enabled = enabled != null ? enabled : true;
43012 _this.items = items || [];
43013 _this.alignItems = params.alignItems || 'center';
43014 if (suppressEnabledCheckbox != null) {
43015 _this.suppressEnabledCheckbox = suppressEnabledCheckbox;
43016 }
43017 if (suppressOpenCloseIcons != null) {
43018 _this.suppressOpenCloseIcons = suppressOpenCloseIcons;
43019 }
43020 return _this;
43021 }
43022 AgGroupComponent.getTemplate = function (params) {
43023 var cssIdentifier = params.cssIdentifier || 'default';
43024 var direction = params.direction || 'vertical';
43025 return /* html */ "<div class=\"ag-group ag-" + cssIdentifier + "-group\">\n <div class=\"ag-group-title-bar ag-" + cssIdentifier + "-group-title-bar ag-unselectable\" ref=\"eTitleBar\">\n <span class=\"ag-group-title-bar-icon ag-" + cssIdentifier + "-group-title-bar-icon\" ref=\"eGroupOpenedIcon\"></span>\n <span class=\"ag-group-title-bar-icon ag-" + cssIdentifier + "-group-title-bar-icon\" ref=\"eGroupClosedIcon\"></span>\n <span ref=\"eTitle\" class=\"ag-group-title ag-" + cssIdentifier + "-group-title\"></span>\n </div>\n <div ref=\"eToolbar\" class=\"ag-group-toolbar ag-" + cssIdentifier + "-group-toolbar\">\n <ag-checkbox ref=\"cbGroupEnabled\"></ag-checkbox>\n </div>\n <div ref=\"eContainer\" class=\"ag-group-container ag-group-container-" + direction + " ag-" + cssIdentifier + "-group-container\"></div>\n </div>";
43026 };
43027 AgGroupComponent.prototype.postConstruct = function () {
43028 if (this.items.length) {
43029 var initialItems = this.items;
43030 this.items = [];
43031 this.addItems(initialItems);
43032 }
43033 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
43034 this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));
43035 if (this.title) {
43036 this.setTitle(this.title);
43037 }
43038 if (this.enabled) {
43039 this.setEnabled(this.enabled);
43040 }
43041 this.setAlignItems(this.alignItems);
43042 this.hideEnabledCheckbox(this.suppressEnabledCheckbox);
43043 this.hideOpenCloseIcons(this.suppressOpenCloseIcons);
43044 this.setupExpandContract();
43045 this.refreshChildDisplay();
43046 };
43047 AgGroupComponent.prototype.setupExpandContract = function () {
43048 var _this = this;
43049 this.eGroupClosedIcon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnSelectClosed', this.gridOptionsWrapper, null));
43050 this.eGroupOpenedIcon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnSelectOpen', this.gridOptionsWrapper, null));
43051 this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });
43052 this.addManagedListener(this.eTitleBar, 'keydown', function (e) {
43053 switch (e.keyCode) {
43054 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].ENTER:
43055 _this.toggleGroupExpand();
43056 break;
43057 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT:
43058 _this.toggleGroupExpand(true);
43059 break;
43060 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].LEFT:
43061 _this.toggleGroupExpand(false);
43062 break;
43063 }
43064 });
43065 };
43066 AgGroupComponent.prototype.refreshChildDisplay = function () {
43067 var showIcon = !this.suppressOpenCloseIcons;
43068 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);
43069 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eGroupOpenedIcon, showIcon && this.expanded);
43070 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eGroupClosedIcon, showIcon && !this.expanded);
43071 };
43072 AgGroupComponent.prototype.isExpanded = function () {
43073 return this.expanded;
43074 };
43075 AgGroupComponent.prototype.setAlignItems = function (alignment) {
43076 var eGui = this.getGui();
43077 if (this.alignItems !== alignment) {
43078 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, "ag-group-item-alignment-" + this.alignItems);
43079 }
43080 this.alignItems = alignment;
43081 var newCls = "ag-group-item-alignment-" + this.alignItems;
43082 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eGui, newCls);
43083 return this;
43084 };
43085 AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {
43086 if (this.suppressOpenCloseIcons) {
43087 this.expanded = true;
43088 this.refreshChildDisplay();
43089 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eContainer, true);
43090 return this;
43091 }
43092 expanded = expanded != null ? expanded : !this.expanded;
43093 if (this.expanded === expanded) {
43094 return this;
43095 }
43096 this.expanded = expanded;
43097 this.refreshChildDisplay();
43098 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eContainer, expanded);
43099 this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });
43100 return this;
43101 };
43102 AgGroupComponent.prototype.addItems = function (items) {
43103 var _this = this;
43104 items.forEach(function (item) { return _this.addItem(item); });
43105 };
43106 AgGroupComponent.prototype.addItem = function (item) {
43107 var container = this.eContainer;
43108 var el = item instanceof _component__WEBPACK_IMPORTED_MODULE_0__["Component"] ? item.getGui() : item;
43109 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(el, 'ag-group-item');
43110 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(el, "ag-" + this.cssIdentifier + "-group-item");
43111 container.appendChild(el);
43112 this.items.push(el);
43113 };
43114 AgGroupComponent.prototype.hideItem = function (hide, index) {
43115 var itemToHide = this.items[index];
43116 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(itemToHide, 'ag-hidden', hide);
43117 };
43118 AgGroupComponent.prototype.setTitle = function (title) {
43119 this.eTitle.innerText = title;
43120 return this;
43121 };
43122 AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {
43123 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.eTitleBar, cssClass);
43124 };
43125 AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {
43126 this.enabled = enabled;
43127 this.refreshDisabledStyles();
43128 this.toggleGroupExpand(enabled);
43129 if (!skipToggle) {
43130 this.cbGroupEnabled.setValue(enabled);
43131 }
43132 return this;
43133 };
43134 AgGroupComponent.prototype.isEnabled = function () {
43135 return this.enabled;
43136 };
43137 AgGroupComponent.prototype.onEnableChange = function (callbackFn) {
43138 var _this = this;
43139 this.cbGroupEnabled.onValueChange(function (newSelection) {
43140 _this.setEnabled(newSelection, true);
43141 callbackFn(newSelection);
43142 });
43143 return this;
43144 };
43145 AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {
43146 this.suppressEnabledCheckbox = hide;
43147 this.refreshChildDisplay();
43148 this.refreshDisabledStyles();
43149 return this;
43150 };
43151 AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {
43152 this.suppressOpenCloseIcons = hide;
43153 if (hide) {
43154 this.toggleGroupExpand(true);
43155 }
43156 return this;
43157 };
43158 AgGroupComponent.prototype.refreshDisabledStyles = function () {
43159 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(this.getGui(), 'ag-disabled', !this.enabled);
43160 if (this.suppressEnabledCheckbox && !this.enabled) {
43161 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.eTitleBar, 'ag-disabled-group-title-bar');
43162 this.eTitleBar.removeAttribute('tabindex');
43163 }
43164 else {
43165 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(this.eTitleBar, 'ag-disabled-group-title-bar');
43166 this.eTitleBar.setAttribute('tabindex', '0');
43167 }
43168 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(this.eContainer, 'ag-disabled-group-container', !this.enabled);
43169 };
43170 AgGroupComponent.EVENT_EXPANDED = 'expanded';
43171 AgGroupComponent.EVENT_COLLAPSED = 'collapsed';
43172 __decorate([
43173 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eTitleBar')
43174 ], AgGroupComponent.prototype, "eTitleBar", void 0);
43175 __decorate([
43176 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eGroupOpenedIcon')
43177 ], AgGroupComponent.prototype, "eGroupOpenedIcon", void 0);
43178 __decorate([
43179 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eGroupClosedIcon')
43180 ], AgGroupComponent.prototype, "eGroupClosedIcon", void 0);
43181 __decorate([
43182 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eToolbar')
43183 ], AgGroupComponent.prototype, "eToolbar", void 0);
43184 __decorate([
43185 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('cbGroupEnabled')
43186 ], AgGroupComponent.prototype, "cbGroupEnabled", void 0);
43187 __decorate([
43188 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eTitle')
43189 ], AgGroupComponent.prototype, "eTitle", void 0);
43190 __decorate([
43191 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
43192 ], AgGroupComponent.prototype, "eContainer", void 0);
43193 __decorate([
43194 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
43195 ], AgGroupComponent.prototype, "postConstruct", null);
43196 return AgGroupComponent;
43197}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
43198
43199
43200
43201/***/ }),
43202/* 191 */
43203/***/ (function(module, __webpack_exports__, __webpack_require__) {
43204
43205"use strict";
43206__webpack_require__.r(__webpack_exports__);
43207/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return AgDialog; });
43208/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
43209/* harmony import */ var _agPanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(192);
43210/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
43211/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
43212/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50);
43213/**
43214 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43215 * @version v25.3.0
43216 * @link http://www.ag-grid.com/
43217 * @license MIT
43218 */
43219var __extends = (undefined && undefined.__extends) || (function () {
43220 var extendStatics = function (d, b) {
43221 extendStatics = Object.setPrototypeOf ||
43222 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43223 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
43224 return extendStatics(d, b);
43225 };
43226 return function (d, b) {
43227 extendStatics(d, b);
43228 function __() { this.constructor = d; }
43229 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43230 };
43231})();
43232var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43233 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43234 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43235 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
43236 return c > 3 && r && Object.defineProperty(target, key, r), r;
43237};
43238
43239
43240
43241
43242
43243var AgDialog = /** @class */ (function (_super) {
43244 __extends(AgDialog, _super);
43245 function AgDialog(config) {
43246 var _this = _super.call(this, config) || this;
43247 _this.RESIZE_TEMPLATE = "<div class=\"ag-resizer-wrapper\">\n <div ref=\"eTopLeftResizer\" class=\"ag-resizer ag-resizer-topLeft\"></div>\n <div ref=\"eTopResizer\" class=\"ag-resizer ag-resizer-top\"></div>\n <div ref=\"eTopRightResizer\" class=\"ag-resizer ag-resizer-topRight\"></div>\n <div ref=\"eRightResizer\" class=\"ag-resizer ag-resizer-right\"></div>\n <div ref=\"eBottomRightResizer\" class=\"ag-resizer ag-resizer-bottomRight\"></div>\n <div ref=\"eBottomResizer\" class=\"ag-resizer ag-resizer-bottom\"></div>\n <div ref=\"eBottomLeftResizer\" class=\"ag-resizer ag-resizer-bottomLeft\"></div>\n <div ref=\"eLeftResizer\" class=\"ag-resizer ag-resizer-left\"></div>\n </div>";
43248 _this.resizable = {};
43249 _this.movable = false;
43250 _this.isMoving = false;
43251 _this.isMaximizable = false;
43252 _this.isMaximized = false;
43253 _this.maximizeListeners = [];
43254 _this.resizeListenerDestroy = null;
43255 _this.isResizing = false;
43256 _this.lastPosition = {
43257 x: 0,
43258 y: 0,
43259 width: 0,
43260 height: 0
43261 };
43262 return _this;
43263 }
43264 AgDialog.prototype.postConstruct = function () {
43265 var _this = this;
43266 var eGui = this.getGui();
43267 var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;
43268 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eGui, 'ag-dialog');
43269 this.moveElement = this.eTitleBar;
43270 _super.prototype.postConstruct.call(this);
43271 this.addManagedListener(eGui, 'focusin', function (e) {
43272 if (eGui.contains(e.relatedTarget)) {
43273 return;
43274 }
43275 _this.popupService.bringPopupToFront(eGui);
43276 });
43277 if (movable) {
43278 this.setMovable(movable);
43279 }
43280 if (maximizable) {
43281 this.setMaximizable(maximizable);
43282 }
43283 this.addResizers();
43284 if (resizable) {
43285 this.setResizable(resizable);
43286 }
43287 };
43288 AgDialog.prototype.renderComponent = function () {
43289 var eGui = this.getGui();
43290 var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal;
43291 var addPopupRes = this.popupService.addPopup({
43292 modal: modal,
43293 eChild: eGui,
43294 closeOnEsc: true,
43295 closedCallback: this.destroy.bind(this),
43296 alwaysOnTop: alwaysOnTop
43297 });
43298 if (addPopupRes) {
43299 this.close = addPopupRes.hideFunc;
43300 }
43301 };
43302 AgDialog.prototype.addResizers = function () {
43303 var eGui = this.getGui();
43304 if (!eGui) {
43305 return;
43306 }
43307 var parser = new DOMParser();
43308 var resizers = parser.parseFromString(this.RESIZE_TEMPLATE, 'text/html').body;
43309 eGui.appendChild(resizers.firstChild);
43310 this.createMap();
43311 };
43312 AgDialog.prototype.createMap = function () {
43313 var eGui = this.getGui();
43314 this.resizerMap = {
43315 topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },
43316 top: { element: eGui.querySelector('[ref=eTopResizer]') },
43317 topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },
43318 right: { element: eGui.querySelector('[ref=eRightResizer]') },
43319 bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },
43320 bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },
43321 bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },
43322 left: { element: eGui.querySelector('[ref=eLeftResizer]') }
43323 };
43324 };
43325 AgDialog.prototype.getResizerElement = function (side) {
43326 return this.resizerMap[side].element;
43327 };
43328 AgDialog.prototype.onResizeStart = function (e) {
43329 this.isResizing = true;
43330 this.updateDragStartPosition(e.clientX, e.clientY);
43331 };
43332 AgDialog.prototype.onResize = function (e, side) {
43333 if (!this.isResizing) {
43334 return;
43335 }
43336 var isLeft = !!side.match(/left/i);
43337 var isRight = !!side.match(/right/i);
43338 var isTop = !!side.match(/top/i);
43339 var isBottom = !!side.match(/bottom/i);
43340 var isHorizontal = isLeft || isRight;
43341 var isVertical = isTop || isBottom;
43342 var _a = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _a.movementX, movementY = _a.movementY;
43343 var offsetLeft = 0;
43344 var offsetTop = 0;
43345 if (isHorizontal && movementX) {
43346 var direction = isLeft ? -1 : 1;
43347 var oldWidth = this.getWidth();
43348 var newWidth = oldWidth + (movementX * direction);
43349 var skipWidth = false;
43350 if (isLeft) {
43351 offsetLeft = oldWidth - newWidth;
43352 if (this.position.x + offsetLeft <= 0 || newWidth <= this.minWidth) {
43353 skipWidth = true;
43354 offsetLeft = 0;
43355 }
43356 }
43357 if (!skipWidth) {
43358 this.setWidth(newWidth);
43359 }
43360 }
43361 if (isVertical && movementY) {
43362 var direction = isTop ? -1 : 1;
43363 var oldHeight = this.getHeight();
43364 var newHeight = oldHeight + (movementY * direction);
43365 var skipHeight = false;
43366 if (isTop) {
43367 offsetTop = oldHeight - newHeight;
43368 if (this.position.y + offsetTop <= 0 || newHeight <= this.minHeight) {
43369 skipHeight = true;
43370 offsetTop = 0;
43371 }
43372 }
43373 if (!skipHeight) {
43374 this.setHeight(newHeight);
43375 }
43376 }
43377 this.updateDragStartPosition(e.clientX, e.clientY);
43378 if (offsetLeft || offsetTop) {
43379 this.offsetElement(this.position.x + offsetLeft, this.position.y + offsetTop);
43380 }
43381 };
43382 AgDialog.prototype.onResizeEnd = function () {
43383 this.isResizing = false;
43384 var params = {
43385 type: 'resize',
43386 api: this.gridOptionsWrapper.getApi(),
43387 columnApi: this.gridOptionsWrapper.getColumnApi()
43388 };
43389 this.dispatchEvent(params);
43390 };
43391 AgDialog.prototype.onMoveStart = function (e) {
43392 this.isMoving = true;
43393 this.updateDragStartPosition(e.clientX, e.clientY);
43394 };
43395 AgDialog.prototype.onMove = function (e) {
43396 if (!this.isMoving) {
43397 return;
43398 }
43399 var _a = this.position, x = _a.x, y = _a.y;
43400 var _b = this.calculateMouseMovement({
43401 e: e,
43402 isTop: true,
43403 anywhereWithin: true,
43404 topBuffer: this.getHeight() - this.getBodyHeight()
43405 }), movementX = _b.movementX, movementY = _b.movementY;
43406 this.offsetElement(x + movementX, y + movementY);
43407 this.updateDragStartPosition(e.clientX, e.clientY);
43408 };
43409 AgDialog.prototype.onMoveEnd = function () {
43410 this.isMoving = false;
43411 };
43412 AgDialog.prototype.toggleMaximize = function () {
43413 if (this.isMaximized) {
43414 var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;
43415 this.setWidth(width);
43416 this.setHeight(height);
43417 this.offsetElement(x, y);
43418 }
43419 else {
43420 this.lastPosition.width = this.getWidth();
43421 this.lastPosition.height = this.getHeight();
43422 this.lastPosition.x = this.position.x;
43423 this.lastPosition.y = this.position.y;
43424 this.offsetElement(0, 0);
43425 this.setHeight('100%');
43426 this.setWidth('100%');
43427 }
43428 this.isMaximized = !this.isMaximized;
43429 this.refreshMaximizeIcon();
43430 };
43431 AgDialog.prototype.refreshMaximizeIcon = function () {
43432 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.maximizeIcon, !this.isMaximized);
43433 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.minimizeIcon, this.isMaximized);
43434 };
43435 AgDialog.prototype.clearMaximizebleListeners = function () {
43436 if (this.maximizeListeners.length) {
43437 this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });
43438 this.maximizeListeners.length = 0;
43439 }
43440 if (this.resizeListenerDestroy) {
43441 this.resizeListenerDestroy();
43442 this.resizeListenerDestroy = null;
43443 }
43444 };
43445 AgDialog.prototype.destroy = function () {
43446 this.setResizable(false);
43447 this.setMovable(false);
43448 this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);
43449 this.clearMaximizebleListeners();
43450 _super.prototype.destroy.call(this);
43451 };
43452 AgDialog.prototype.setResizable = function (resizable) {
43453 var _this = this;
43454 if (typeof resizable === 'boolean') {
43455 resizable = {
43456 topLeft: resizable,
43457 top: resizable,
43458 topRight: resizable,
43459 right: resizable,
43460 bottomRight: resizable,
43461 bottom: resizable,
43462 bottomLeft: resizable,
43463 left: resizable
43464 };
43465 }
43466 Object.keys(resizable).forEach(function (side) {
43467 var r = resizable;
43468 var s = side;
43469 var val = !!r[s];
43470 var el = _this.getResizerElement(s);
43471 var params = _this.resizerMap[s].dragSource || {
43472 eElement: el,
43473 onDragStart: _this.onResizeStart.bind(_this),
43474 onDragging: function (e) { return _this.onResize(e, s); },
43475 onDragStop: _this.onResizeEnd.bind(_this),
43476 };
43477 if (!!_this.resizable[s] !== val || (!_this.isAlive() && !val)) {
43478 if (val) {
43479 _this.dragService.addDragSource(params);
43480 el.style.pointerEvents = 'all';
43481 }
43482 else {
43483 _this.dragService.removeDragSource(params);
43484 el.style.pointerEvents = 'none';
43485 }
43486 _this.resizerMap[s].dragSource = val ? params : undefined;
43487 }
43488 });
43489 };
43490 AgDialog.prototype.setMovable = function (movable) {
43491 if (movable === this.movable) {
43492 return;
43493 }
43494 this.movable = movable;
43495 var params = this.moveElementDragListener || {
43496 eElement: this.moveElement,
43497 onDragStart: this.onMoveStart.bind(this),
43498 onDragging: this.onMove.bind(this),
43499 onDragStop: this.onMoveEnd.bind(this)
43500 };
43501 if (movable) {
43502 this.dragService.addDragSource(params);
43503 this.moveElementDragListener = params;
43504 }
43505 else {
43506 this.dragService.removeDragSource(params);
43507 this.moveElementDragListener = undefined;
43508 }
43509 };
43510 AgDialog.prototype.setMaximizable = function (maximizable) {
43511 var _this = this;
43512 if (!maximizable) {
43513 this.clearMaximizebleListeners();
43514 if (this.maximizeButtonComp) {
43515 this.destroyBean(this.maximizeButtonComp);
43516 this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;
43517 }
43518 return;
43519 }
43520 var eTitleBar = this.eTitleBar;
43521 if (!eTitleBar || maximizable === this.isMaximizable) {
43522 return;
43523 }
43524 var maximizeButtonComp = this.maximizeButtonComp =
43525 this.createBean(new _component__WEBPACK_IMPORTED_MODULE_2__["Component"](/* html */ "<div class=\"ag-dialog-button\"></span>"));
43526 var eGui = maximizeButtonComp.getGui();
43527 eGui.appendChild(this.maximizeIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('maximize', this.gridOptionsWrapper));
43528 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.maximizeIcon, 'ag-panel-title-bar-button-icon');
43529 eGui.appendChild(this.minimizeIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('minimize', this.gridOptionsWrapper));
43530 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.minimizeIcon, 'ag-panel-title-bar-button-icon');
43531 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.minimizeIcon, 'ag-hidden');
43532 maximizeButtonComp.addManagedListener(eGui, 'click', this.toggleMaximize.bind(this));
43533 this.addTitleBarButton(maximizeButtonComp, 0);
43534 this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));
43535 this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {
43536 _this.isMaximized = false;
43537 _this.refreshMaximizeIcon();
43538 });
43539 };
43540 __decorate([
43541 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragService')
43542 ], AgDialog.prototype, "dragService", void 0);
43543 return AgDialog;
43544}(_agPanel__WEBPACK_IMPORTED_MODULE_1__["AgPanel"]));
43545
43546
43547
43548/***/ }),
43549/* 192 */
43550/***/ (function(module, __webpack_exports__, __webpack_require__) {
43551
43552"use strict";
43553__webpack_require__.r(__webpack_exports__);
43554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return AgPanel; });
43555/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
43556/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
43557/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
43558/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
43559/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50);
43560/**
43561 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43562 * @version v25.3.0
43563 * @link http://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 (b.hasOwnProperty(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 __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43580 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43581 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43582 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
43583 return c > 3 && r && Object.defineProperty(target, key, r), r;
43584};
43585
43586
43587
43588
43589
43590var AgPanel = /** @class */ (function (_super) {
43591 __extends(AgPanel, _super);
43592 function AgPanel(config) {
43593 var _this = _super.call(this, AgPanel.getTemplate(config)) || this;
43594 _this.closable = true;
43595 _this.positioned = false;
43596 _this.dragStartPosition = {
43597 x: 0,
43598 y: 0
43599 };
43600 _this.position = {
43601 x: 0,
43602 y: 0
43603 };
43604 _this.size = {
43605 width: undefined,
43606 height: undefined
43607 };
43608 _this.config = config;
43609 return _this;
43610 }
43611 AgPanel.getTemplate = function (config) {
43612 var cssIdentifier = (config && config.cssIdentifier) || 'default';
43613 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>";
43614 };
43615 AgPanel.prototype.postConstruct = function () {
43616 var _this = this;
43617 var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, centered = _a.centered, x = _a.x, y = _a.y;
43618 var eGui = this.getGui();
43619 if (component) {
43620 this.setBodyComponent(component);
43621 }
43622 if (!hideTitleBar) {
43623 if (title) {
43624 this.setTitle(title);
43625 }
43626 this.setClosable(closable != null ? closable : this.closable);
43627 }
43628 else {
43629 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.eTitleBar, 'ag-hidden');
43630 }
43631 this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {
43632 if (eGui.contains(e.relatedTarget) ||
43633 eGui.contains(document.activeElement) ||
43634 _this.eTitleBarButtons.contains(e.target)) {
43635 e.preventDefault();
43636 return;
43637 }
43638 var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');
43639 if (focusEl) {
43640 focusEl.focus();
43641 }
43642 });
43643 if (this.positioned) {
43644 return;
43645 }
43646 this.minHeight = minHeight != null ? minHeight : 250;
43647 this.minWidth = minWidth != null ? minWidth : 250;
43648 this.popupParent = this.popupService.getPopupParent();
43649 if (width) {
43650 this.setWidth(width);
43651 }
43652 if (height) {
43653 this.setHeight(height);
43654 }
43655 if (this.renderComponent) {
43656 this.renderComponent();
43657 }
43658 if (!width || !height) {
43659 this.refreshSize();
43660 }
43661 if (centered) {
43662 this.center();
43663 }
43664 else if (x || y) {
43665 this.offsetElement(x, y);
43666 }
43667 this.positioned = true;
43668 this.eContentWrapper.style.height = '0';
43669 };
43670 AgPanel.prototype.renderComponent = function () {
43671 var _this = this;
43672 var eGui = this.getGui();
43673 eGui.focus();
43674 this.close = function () {
43675 eGui.parentElement.removeChild(eGui);
43676 _this.destroy();
43677 };
43678 };
43679 AgPanel.prototype.updateDragStartPosition = function (x, y) {
43680 this.dragStartPosition = { x: x, y: y };
43681 };
43682 AgPanel.prototype.calculateMouseMovement = function (params) {
43683 var parentRect = this.popupParent.getBoundingClientRect();
43684 var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;
43685 var movementX = e.clientX - this.dragStartPosition.x;
43686 var movementY = e.clientY - this.dragStartPosition.y;
43687 var width = this.getWidth();
43688 var height = this.getHeight();
43689 // skip if cursor is outside of popupParent horizontally
43690 var skipX = (parentRect.left >= e.clientX && this.position.x <= 0 ||
43691 parentRect.right <= e.clientX && parentRect.right <= this.position.x + parentRect.left + width);
43692 if (!skipX) {
43693 if (isLeft) {
43694 skipX = (
43695 // skip if we are moving to the left and the cursor
43696 // is positioned to the right of the left side anchor
43697 (movementX < 0 && e.clientX > this.position.x + parentRect.left) ||
43698 // skip if we are moving to the right and the cursor
43699 // is positioned to the left of the dialog
43700 (movementX > 0 && e.clientX < this.position.x + parentRect.left));
43701 }
43702 else {
43703 if (anywhereWithin) {
43704 // if anywhereWithin is true, we allow to move
43705 // as long as the cursor is within the dialog
43706 skipX = ((movementX < 0 && e.clientX > this.position.x + parentRect.left + width) ||
43707 (movementX > 0 && e.clientX < this.position.x + parentRect.left));
43708 }
43709 else {
43710 skipX = (
43711 // if the movement is bound to the right side of the dialog
43712 // we skip if we are moving to the left and the cursor
43713 // is to the right of the dialog
43714 (movementX < 0 && e.clientX > this.position.x + parentRect.left + width) ||
43715 // or skip if we are moving to the right and the cursor
43716 // is to the left of the right side anchor
43717 (movementX > 0 && e.clientX < this.position.x + parentRect.left + width));
43718 }
43719 }
43720 }
43721 movementX = skipX ? 0 : movementX;
43722 var skipY = (
43723 // skip if cursor is outside of popupParent vertically
43724 parentRect.top >= e.clientY && this.position.y <= 0 ||
43725 parentRect.bottom <= e.clientY && parentRect.bottom <= this.position.y + parentRect.top + height ||
43726 isTop && (
43727 // skip if we are moving to towards top and the cursor is
43728 // below the top anchor + topBuffer
43729 // note: topBuffer is used when moving the dialog using the title bar
43730 (movementY < 0 && e.clientY > this.position.y + parentRect.top + (topBuffer || 0)) ||
43731 // skip if we are moving to the bottom and the cursor is
43732 // above the top anchor
43733 (movementY > 0 && e.clientY < this.position.y + parentRect.top)) ||
43734 // we are anchored to the bottom of the dialog
43735 !isTop && (
43736 // skip if we are moving towards the top and the cursor
43737 // is below the bottom anchor
43738 (movementY < 0 && e.clientY > this.position.y + parentRect.top + height) ||
43739 // skip if we are moving towards the bottom and the cursor
43740 // is above the bottom anchor
43741 (movementY > 0 && e.clientY < this.position.y + parentRect.top + height)));
43742 movementY = skipY ? 0 : movementY;
43743 return { movementX: movementX, movementY: movementY };
43744 };
43745 AgPanel.prototype.refreshSize = function () {
43746 var _a = this.size, width = _a.width, height = _a.height;
43747 if (!width) {
43748 this.setWidth(this.getGui().offsetWidth);
43749 }
43750 if (!height) {
43751 this.setHeight(this.getGui().offsetHeight);
43752 }
43753 };
43754 AgPanel.prototype.offsetElement = function (x, y) {
43755 if (x === void 0) { x = 0; }
43756 if (y === void 0) { y = 0; }
43757 var ePopup = this.getGui();
43758 this.popupService.positionPopup({
43759 ePopup: ePopup,
43760 x: x,
43761 y: y,
43762 minWidth: this.minWidth,
43763 minHeight: this.minHeight,
43764 keepWithinBounds: true
43765 });
43766 this.position.x = parseInt(ePopup.style.left, 10);
43767 this.position.y = parseInt(ePopup.style.top, 10);
43768 };
43769 AgPanel.prototype.getHeight = function () {
43770 return this.size.height;
43771 };
43772 AgPanel.prototype.setHeight = function (height) {
43773 var eGui = this.getGui();
43774 var isPercent = false;
43775 if (typeof height === 'string' && height.indexOf('%') !== -1) {
43776 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedHeight"])(eGui, height);
43777 height = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"])(eGui);
43778 isPercent = true;
43779 }
43780 else {
43781 height = Math.max(this.minHeight, height);
43782 var offsetParent = eGui.offsetParent;
43783 if (offsetParent && offsetParent.clientHeight && (height + this.position.y > offsetParent.clientHeight)) {
43784 height = offsetParent.clientHeight - this.position.y;
43785 }
43786 }
43787 if (this.size.height === height) {
43788 return;
43789 }
43790 this.size.height = height;
43791 if (!isPercent) {
43792 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedHeight"])(eGui, height);
43793 }
43794 else {
43795 eGui.style.maxHeight = 'unset';
43796 eGui.style.minHeight = 'unset';
43797 }
43798 };
43799 AgPanel.prototype.getWidth = function () {
43800 return this.size.width;
43801 };
43802 AgPanel.prototype.setWidth = function (width) {
43803 var eGui = this.getGui();
43804 var isPercent = false;
43805 if (typeof width === 'string' && width.indexOf('%') !== -1) {
43806 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(eGui, width);
43807 width = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"])(eGui);
43808 isPercent = true;
43809 }
43810 else {
43811 width = Math.max(this.minWidth, width);
43812 var offsetParent = eGui.offsetParent;
43813 if (offsetParent && offsetParent.clientWidth && (width + this.position.x > offsetParent.clientWidth)) {
43814 width = offsetParent.clientWidth - this.position.x;
43815 }
43816 }
43817 if (this.size.width === width) {
43818 return;
43819 }
43820 this.size.width = width;
43821 if (!isPercent) {
43822 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(eGui, width);
43823 }
43824 else {
43825 eGui.style.maxWidth = 'unset';
43826 eGui.style.minWidth = 'unset';
43827 }
43828 };
43829 AgPanel.prototype.center = function () {
43830 var eGui = this.getGui();
43831 var x = (eGui.offsetParent.clientWidth / 2) - (this.getWidth() / 2);
43832 var y = (eGui.offsetParent.clientHeight / 2) - (this.getHeight() / 2);
43833 this.offsetElement(x, y);
43834 };
43835 AgPanel.prototype.setClosable = function (closable) {
43836 if (closable !== this.closable) {
43837 this.closable = closable;
43838 }
43839 if (closable) {
43840 var closeButtonComp = this.closeButtonComp = new _component__WEBPACK_IMPORTED_MODULE_2__["Component"](AgPanel.CLOSE_BTN_TEMPLATE);
43841 this.getContext().createBean(closeButtonComp);
43842 var eGui = closeButtonComp.getGui();
43843 eGui.appendChild(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('close', this.gridOptionsWrapper), 'ag-panel-title-bar-button-icon'));
43844 this.addTitleBarButton(closeButtonComp);
43845 closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));
43846 }
43847 else if (this.closeButtonComp) {
43848 var eGui = this.closeButtonComp.getGui();
43849 eGui.parentElement.removeChild(eGui);
43850 this.closeButtonComp = this.destroyBean(this.closeButtonComp);
43851 }
43852 };
43853 AgPanel.prototype.setBodyComponent = function (bodyComponent) {
43854 bodyComponent.setParentComponent(this);
43855 this.eContentWrapper.appendChild(bodyComponent.getGui());
43856 };
43857 AgPanel.prototype.addTitleBarButton = function (button, position) {
43858 var eTitleBarButtons = this.eTitleBarButtons;
43859 var buttons = eTitleBarButtons.children;
43860 var len = buttons.length;
43861 if (position == null) {
43862 position = len;
43863 }
43864 position = Math.max(0, Math.min(position, len));
43865 var eGui = button.getGui();
43866 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eGui, 'ag-panel-title-bar-button');
43867 if (position === 0) {
43868 eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);
43869 }
43870 else if (position === len) {
43871 eTitleBarButtons.insertAdjacentElement('beforeend', eGui);
43872 }
43873 else {
43874 buttons[position - 1].insertAdjacentElement('afterend', eGui);
43875 }
43876 button.setParentComponent(this);
43877 };
43878 AgPanel.prototype.getBodyHeight = function () {
43879 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerHeight"])(this.eContentWrapper);
43880 };
43881 AgPanel.prototype.getBodyWidth = function () {
43882 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerWidth"])(this.eContentWrapper);
43883 };
43884 AgPanel.prototype.setTitle = function (title) {
43885 this.eTitle.innerText = title;
43886 };
43887 // called when user hits the 'x' in the top right
43888 AgPanel.prototype.onBtClose = function () {
43889 this.close();
43890 };
43891 AgPanel.prototype.destroy = function () {
43892 if (this.closeButtonComp) {
43893 this.closeButtonComp = this.destroyBean(this.closeButtonComp);
43894 }
43895 var eGui = this.getGui();
43896 if (eGui && eGui.offsetParent) {
43897 this.close();
43898 }
43899 _super.prototype.destroy.call(this);
43900 };
43901 AgPanel.CLOSE_BTN_TEMPLATE = "<div class=\"ag-button\"></div>";
43902 __decorate([
43903 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('popupService')
43904 ], AgPanel.prototype, "popupService", void 0);
43905 __decorate([
43906 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eContentWrapper')
43907 ], AgPanel.prototype, "eContentWrapper", void 0);
43908 __decorate([
43909 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitleBar')
43910 ], AgPanel.prototype, "eTitleBar", void 0);
43911 __decorate([
43912 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitleBarButtons')
43913 ], AgPanel.prototype, "eTitleBarButtons", void 0);
43914 __decorate([
43915 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitle')
43916 ], AgPanel.prototype, "eTitle", void 0);
43917 __decorate([
43918 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
43919 ], AgPanel.prototype, "postConstruct", null);
43920 return AgPanel;
43921}(_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
43922
43923
43924
43925/***/ }),
43926/* 193 */
43927/***/ (function(module, __webpack_exports__, __webpack_require__) {
43928
43929"use strict";
43930__webpack_require__.r(__webpack_exports__);
43931/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return AgInputTextField; });
43932/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(120);
43933/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
43934/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
43935/**
43936 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43937 * @version v25.3.0
43938 * @link http://www.ag-grid.com/
43939 * @license MIT
43940 */
43941var __extends = (undefined && undefined.__extends) || (function () {
43942 var extendStatics = function (d, b) {
43943 extendStatics = Object.setPrototypeOf ||
43944 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43945 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
43946 return extendStatics(d, b);
43947 };
43948 return function (d, b) {
43949 extendStatics(d, b);
43950 function __() { this.constructor = d; }
43951 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43952 };
43953})();
43954
43955
43956
43957var AgInputTextField = /** @class */ (function (_super) {
43958 __extends(AgInputTextField, _super);
43959 function AgInputTextField(config, className, inputType) {
43960 if (className === void 0) { className = 'ag-text-field'; }
43961 if (inputType === void 0) { inputType = 'text'; }
43962 return _super.call(this, config, className, inputType) || this;
43963 }
43964 AgInputTextField.prototype.postConstruct = function () {
43965 _super.prototype.postConstruct.call(this);
43966 if (this.config.allowedCharPattern) {
43967 this.preventDisallowedCharacters();
43968 }
43969 };
43970 AgInputTextField.prototype.setValue = function (value, silent) {
43971 var ret = _super.prototype.setValue.call(this, value, silent);
43972 if (this.eInput.value !== value) {
43973 this.eInput.value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(value) ? value : '';
43974 }
43975 return ret;
43976 };
43977 AgInputTextField.prototype.preventDisallowedCharacters = function () {
43978 var pattern = new RegExp("[" + this.config.allowedCharPattern + "]");
43979 var preventDisallowedCharacters = function (event) {
43980 if (event.key && !pattern.test(event.key)) {
43981 event.preventDefault();
43982 }
43983 };
43984 this.addManagedListener(this.eInput, 'keypress', preventDisallowedCharacters);
43985 this.addManagedListener(this.eInput, 'paste', function (e) {
43986 var text = e.clipboardData.getData('text');
43987 if (Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["some"])(text, function (c) { return !pattern.test(c); })) {
43988 e.preventDefault();
43989 }
43990 });
43991 };
43992 return AgInputTextField;
43993}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
43994
43995
43996
43997/***/ }),
43998/* 194 */
43999/***/ (function(module, __webpack_exports__, __webpack_require__) {
44000
44001"use strict";
44002__webpack_require__.r(__webpack_exports__);
44003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return AgInputTextArea; });
44004/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(120);
44005/**
44006 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44007 * @version v25.3.0
44008 * @link http://www.ag-grid.com/
44009 * @license MIT
44010 */
44011var __extends = (undefined && undefined.__extends) || (function () {
44012 var extendStatics = function (d, b) {
44013 extendStatics = Object.setPrototypeOf ||
44014 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44015 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44016 return extendStatics(d, b);
44017 };
44018 return function (d, b) {
44019 extendStatics(d, b);
44020 function __() { this.constructor = d; }
44021 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44022 };
44023})();
44024
44025var AgInputTextArea = /** @class */ (function (_super) {
44026 __extends(AgInputTextArea, _super);
44027 function AgInputTextArea(config) {
44028 return _super.call(this, config, 'ag-text-area', null, 'textarea') || this;
44029 }
44030 AgInputTextArea.prototype.setValue = function (value, silent) {
44031 var ret = _super.prototype.setValue.call(this, value, silent);
44032 this.eInput.value = value;
44033 return ret;
44034 };
44035 AgInputTextArea.prototype.setCols = function (cols) {
44036 this.eInput.cols = cols;
44037 return this;
44038 };
44039 AgInputTextArea.prototype.setRows = function (rows) {
44040 this.eInput.rows = rows;
44041 return this;
44042 };
44043 return AgInputTextArea;
44044}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
44045
44046
44047
44048/***/ }),
44049/* 195 */
44050/***/ (function(module, __webpack_exports__, __webpack_require__) {
44051
44052"use strict";
44053__webpack_require__.r(__webpack_exports__);
44054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return AgSlider; });
44055/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
44056/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(122);
44057/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(121);
44058/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
44059/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
44060/**
44061 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44062 * @version v25.3.0
44063 * @link http://www.ag-grid.com/
44064 * @license MIT
44065 */
44066var __extends = (undefined && undefined.__extends) || (function () {
44067 var extendStatics = function (d, b) {
44068 extendStatics = Object.setPrototypeOf ||
44069 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44070 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44071 return extendStatics(d, b);
44072 };
44073 return function (d, b) {
44074 extendStatics(d, b);
44075 function __() { this.constructor = d; }
44076 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44077 };
44078})();
44079var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44080 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44081 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44082 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
44083 return c > 3 && r && Object.defineProperty(target, key, r), r;
44084};
44085
44086
44087
44088
44089
44090var AgSlider = /** @class */ (function (_super) {
44091 __extends(AgSlider, _super);
44092 function AgSlider(config) {
44093 var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;
44094 _this.labelAlignment = 'top';
44095 return _this;
44096 }
44097 AgSlider.prototype.init = function () {
44098 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.eSlider.getGui(), 'ag-slider-field');
44099 };
44100 AgSlider.prototype.onValueChange = function (callbackFn) {
44101 var _this = this;
44102 var eventChanged = _agAbstractField__WEBPACK_IMPORTED_MODULE_2__["AgAbstractField"].EVENT_CHANGED;
44103 this.addManagedListener(this.eText, eventChanged, function () {
44104 var textValue = parseFloat(_this.eText.getValue());
44105 _this.eSlider.setValue(textValue.toString(), true);
44106 callbackFn(textValue || 0);
44107 });
44108 this.addManagedListener(this.eSlider, eventChanged, function () {
44109 var sliderValue = _this.eSlider.getValue();
44110 _this.eText.setValue(sliderValue, true);
44111 callbackFn(parseFloat(sliderValue));
44112 });
44113 return this;
44114 };
44115 AgSlider.prototype.setSliderWidth = function (width) {
44116 this.eSlider.setWidth(width);
44117 return this;
44118 };
44119 AgSlider.prototype.setTextFieldWidth = function (width) {
44120 this.eText.setWidth(width);
44121 return this;
44122 };
44123 AgSlider.prototype.setMinValue = function (minValue) {
44124 this.eSlider.setMinValue(minValue);
44125 this.eText.setMin(minValue);
44126 return this;
44127 };
44128 AgSlider.prototype.setMaxValue = function (maxValue) {
44129 this.eSlider.setMaxValue(maxValue);
44130 this.eText.setMax(maxValue);
44131 return this;
44132 };
44133 AgSlider.prototype.getValue = function () {
44134 return this.eText.getValue();
44135 };
44136 AgSlider.prototype.setValue = function (value) {
44137 if (this.getValue() === value) {
44138 return this;
44139 }
44140 this.eText.setValue(value, true);
44141 this.eSlider.setValue(value, true);
44142 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_2__["AgAbstractField"].EVENT_CHANGED });
44143 return this;
44144 };
44145 AgSlider.prototype.setStep = function (step) {
44146 this.eSlider.setStep(step);
44147 this.eText.setStep(step);
44148 return this;
44149 };
44150 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>";
44151 __decorate([
44152 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eLabel')
44153 ], AgSlider.prototype, "eLabel", void 0);
44154 __decorate([
44155 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eSlider')
44156 ], AgSlider.prototype, "eSlider", void 0);
44157 __decorate([
44158 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eText')
44159 ], AgSlider.prototype, "eText", void 0);
44160 __decorate([
44161 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
44162 ], AgSlider.prototype, "init", null);
44163 return AgSlider;
44164}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_1__["AgAbstractLabel"]));
44165
44166
44167
44168/***/ }),
44169/* 196 */
44170/***/ (function(module, __webpack_exports__, __webpack_require__) {
44171
44172"use strict";
44173__webpack_require__.r(__webpack_exports__);
44174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgColorPicker", function() { return AgColorPicker; });
44175/* harmony import */ var _agColorPanel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(197);
44176/* harmony import */ var _agDialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(191);
44177/* harmony import */ var _agPickerField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(198);
44178/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
44179/**
44180 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44181 * @version v25.3.0
44182 * @link http://www.ag-grid.com/
44183 * @license MIT
44184 */
44185var __extends = (undefined && undefined.__extends) || (function () {
44186 var extendStatics = function (d, b) {
44187 extendStatics = Object.setPrototypeOf ||
44188 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44189 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44190 return extendStatics(d, b);
44191 };
44192 return function (d, b) {
44193 extendStatics(d, b);
44194 function __() { this.constructor = d; }
44195 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44196 };
44197})();
44198
44199
44200
44201
44202var AgColorPicker = /** @class */ (function (_super) {
44203 __extends(AgColorPicker, _super);
44204 function AgColorPicker(config) {
44205 var _this = _super.call(this, config, 'ag-color-picker', 'colorPicker') || this;
44206 if (config && config.color) {
44207 _this.value = config.color;
44208 }
44209 return _this;
44210 }
44211 AgColorPicker.prototype.postConstruct = function () {
44212 _super.prototype.postConstruct.call(this);
44213 if (this.value) {
44214 this.setValue(this.value);
44215 }
44216 };
44217 AgColorPicker.prototype.showPicker = function () {
44218 var _this = this;
44219 var eGuiRect = this.getGui().getBoundingClientRect();
44220 var colorDialog = this.createBean(new _agDialog__WEBPACK_IMPORTED_MODULE_1__["AgDialog"]({
44221 closable: false,
44222 modal: true,
44223 hideTitleBar: true,
44224 minWidth: 190,
44225 width: 190,
44226 height: 250,
44227 x: eGuiRect.right - 190,
44228 y: eGuiRect.top - 250
44229 }));
44230 this.isPickerDisplayed = true;
44231 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(colorDialog.getGui(), 'ag-color-dialog');
44232 var colorPanel = this.createBean(new _agColorPanel__WEBPACK_IMPORTED_MODULE_0__["AgColorPanel"]({ picker: this }));
44233 colorPanel.addDestroyFunc(function () {
44234 if (colorDialog.isAlive()) {
44235 _this.destroyBean(colorDialog);
44236 }
44237 });
44238 colorDialog.setParentComponent(this);
44239 colorDialog.setBodyComponent(colorPanel);
44240 colorPanel.setValue(this.getValue());
44241 colorDialog.addDestroyFunc(function () {
44242 // here we check if the picker was already being
44243 // destroyed to avoid a stack overflow
44244 if (!_this.isDestroyingPicker) {
44245 _this.isDestroyingPicker = true;
44246 if (colorPanel.isAlive()) {
44247 _this.destroyBean(colorPanel);
44248 }
44249 }
44250 else {
44251 _this.isDestroyingPicker = false;
44252 }
44253 if (_this.isAlive()) {
44254 _this.getFocusableElement().focus();
44255 }
44256 _this.isPickerDisplayed = false;
44257 });
44258 return colorDialog;
44259 };
44260 AgColorPicker.prototype.setValue = function (color) {
44261 if (this.value === color) {
44262 return this;
44263 }
44264 this.eDisplayField.style.backgroundColor = color;
44265 return _super.prototype.setValue.call(this, color);
44266 };
44267 AgColorPicker.prototype.getValue = function () {
44268 return this.value;
44269 };
44270 return AgColorPicker;
44271}(_agPickerField__WEBPACK_IMPORTED_MODULE_2__["AgPickerField"]));
44272
44273
44274
44275/***/ }),
44276/* 197 */
44277/***/ (function(module, __webpack_exports__, __webpack_require__) {
44278
44279"use strict";
44280__webpack_require__.r(__webpack_exports__);
44281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgColorPanel", function() { return AgColorPanel; });
44282/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
44283/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
44284/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
44285/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
44286/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
44287/**
44288 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44289 * @version v25.3.0
44290 * @link http://www.ag-grid.com/
44291 * @license MIT
44292 */
44293var __extends = (undefined && undefined.__extends) || (function () {
44294 var extendStatics = function (d, b) {
44295 extendStatics = Object.setPrototypeOf ||
44296 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44297 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44298 return extendStatics(d, b);
44299 };
44300 return function (d, b) {
44301 extendStatics(d, b);
44302 function __() { this.constructor = d; }
44303 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44304 };
44305})();
44306var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44307 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44308 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44309 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
44310 return c > 3 && r && Object.defineProperty(target, key, r), r;
44311};
44312
44313
44314
44315
44316
44317var AgColorPanel = /** @class */ (function (_super) {
44318 __extends(AgColorPanel, _super);
44319 function AgColorPanel(config) {
44320 var _this = _super.call(this, AgColorPanel.TEMPLATE) || this;
44321 _this.H = 1; // in the [0, 1] range
44322 _this.S = 1; // in the [0, 1] range
44323 _this.B = 1; // in the [0, 1] range
44324 _this.A = 1; // in the [0, 1] range
44325 _this.isSpectrumDragging = false;
44326 _this.isSpectrumHueDragging = false;
44327 _this.isSpectrumAlphaDragging = false;
44328 _this.colorChanged = false;
44329 _this.picker = config.picker;
44330 return _this;
44331 }
44332 AgColorPanel.prototype.postConstruct = function () {
44333 var eGui = this.getGui();
44334 this.initRecentColors();
44335 this.addManagedListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));
44336 this.addManagedListener(eGui, 'mousemove', this.onSpectrumDraggerMove.bind(this));
44337 this.addManagedListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));
44338 this.addManagedListener(eGui, 'mousemove', this.onSpectrumHueMove.bind(this));
44339 this.addManagedListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));
44340 this.addManagedListener(eGui, 'mousemove', this.onSpectrumAlphaMove.bind(this));
44341 // Listening to `mouseup` on the document on purpose. The user might release the mouse button
44342 // outside the UI control. When the mouse returns back to the control's area, the dragging
44343 // of the thumb is not expected and seen as a bug.
44344 this.addManagedListener(document, 'mouseup', this.onMouseUp.bind(this));
44345 this.addManagedListener(this.recentColors, 'click', this.onRecentColorClick.bind(this));
44346 };
44347 AgColorPanel.prototype.refreshSpectrumRect = function () {
44348 return this.spectrumValRect = this.spectrumVal.getBoundingClientRect();
44349 };
44350 AgColorPanel.prototype.refreshHueRect = function () {
44351 return this.spectrumHueRect = this.spectrumHue.getBoundingClientRect();
44352 };
44353 AgColorPanel.prototype.refreshAlphaRect = function () {
44354 return this.spectrumAlphaRect = this.spectrumAlpha.getBoundingClientRect();
44355 };
44356 AgColorPanel.prototype.onSpectrumDraggerDown = function (e) {
44357 this.refreshSpectrumRect();
44358 this.isSpectrumDragging = true;
44359 this.moveDragger(e);
44360 };
44361 AgColorPanel.prototype.onSpectrumDraggerMove = function (e) {
44362 if (this.isSpectrumDragging) {
44363 this.moveDragger(e);
44364 }
44365 };
44366 AgColorPanel.prototype.onSpectrumHueDown = function (e) {
44367 this.refreshHueRect();
44368 this.isSpectrumHueDragging = true;
44369 this.moveHueSlider(e);
44370 };
44371 AgColorPanel.prototype.onSpectrumHueMove = function (e) {
44372 if (this.isSpectrumHueDragging) {
44373 this.moveHueSlider(e);
44374 }
44375 };
44376 AgColorPanel.prototype.onSpectrumAlphaDown = function (e) {
44377 this.refreshAlphaRect();
44378 this.isSpectrumAlphaDragging = true;
44379 this.moveAlphaSlider(e);
44380 };
44381 AgColorPanel.prototype.onSpectrumAlphaMove = function (e) {
44382 if (this.isSpectrumAlphaDragging) {
44383 this.moveAlphaSlider(e);
44384 }
44385 };
44386 AgColorPanel.prototype.onMouseUp = function () {
44387 this.isSpectrumDragging = false;
44388 this.isSpectrumHueDragging = false;
44389 this.isSpectrumAlphaDragging = false;
44390 };
44391 AgColorPanel.prototype.moveDragger = function (e) {
44392 var valRect = this.spectrumValRect;
44393 if (valRect) {
44394 var x = e.clientX - valRect.left;
44395 var y = e.clientY - valRect.top;
44396 x = Math.max(x, 0);
44397 x = Math.min(x, valRect.width);
44398 y = Math.max(y, 0);
44399 y = Math.min(y, valRect.height);
44400 this.setSpectrumValue(x / valRect.width, 1 - y / valRect.height);
44401 }
44402 };
44403 AgColorPanel.prototype.moveHueSlider = function (e) {
44404 var hueRect = this.spectrumHueRect;
44405 if (hueRect) {
44406 var slider = this.spectrumHueSlider;
44407 var sliderRect = slider.getBoundingClientRect();
44408 var x = e.clientX - hueRect.left;
44409 x = Math.max(x, 0);
44410 x = Math.min(x, hueRect.width);
44411 this.H = 1 - x / hueRect.width;
44412 slider.style.left = (x + sliderRect.width / 2) + 'px';
44413 this.update();
44414 }
44415 };
44416 AgColorPanel.prototype.moveAlphaSlider = function (e) {
44417 var alphaRect = this.spectrumAlphaRect;
44418 if (alphaRect) {
44419 var slider = this.spectrumAlphaSlider;
44420 var sliderRect = slider.getBoundingClientRect();
44421 var x = e.clientX - alphaRect.left;
44422 x = Math.max(x, 0);
44423 x = Math.min(x, alphaRect.width);
44424 this.A = x / alphaRect.width;
44425 slider.style.left = (x + sliderRect.width / 2) + 'px';
44426 this.update();
44427 }
44428 };
44429 AgColorPanel.prototype.update = function () {
44430 var color = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromHSB(this.H * 360, this.S, this.B, this.A);
44431 var spectrumColor = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromHSB(this.H * 360, 1, 1);
44432 var rgbaColor = color.toRgbaString();
44433 // the recent color list needs to know color has actually changed
44434 var colorPicker = this.picker;
44435 var existingColor = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromString(colorPicker.getValue());
44436 if (existingColor.toRgbaString() !== rgbaColor) {
44437 this.colorChanged = true;
44438 }
44439 colorPicker.setValue(rgbaColor);
44440 this.spectrumColor.style.backgroundColor = spectrumColor.toRgbaString();
44441 this.spectrumDragger.style.backgroundColor = rgbaColor;
44442 };
44443 /**
44444 * @param saturation In the [0, 1] interval.
44445 * @param brightness In the [0, 1] interval.
44446 */
44447 AgColorPanel.prototype.setSpectrumValue = function (saturation, brightness) {
44448 var valRect = this.spectrumValRect || this.refreshSpectrumRect();
44449 if (valRect) {
44450 var dragger = this.spectrumDragger;
44451 var draggerRect = dragger.getBoundingClientRect();
44452 saturation = Math.max(0, saturation);
44453 saturation = Math.min(1, saturation);
44454 brightness = Math.max(0, brightness);
44455 brightness = Math.min(1, brightness);
44456 this.S = saturation;
44457 this.B = brightness;
44458 dragger.style.left = (saturation * valRect.width - draggerRect.width / 2) + 'px';
44459 dragger.style.top = ((1 - brightness) * valRect.height - draggerRect.height / 2) + 'px';
44460 this.update();
44461 }
44462 };
44463 AgColorPanel.prototype.initRecentColors = function () {
44464 var recentColors = AgColorPanel.recentColors;
44465 var innerHtml = recentColors.map(function (color, index) {
44466 return "<div class=\"ag-recent-color\" id=" + index + " style=\"background-color: " + color + "; width: 15px; height: 15px;\" recent-color=\"" + color + "\"></div>";
44467 });
44468 this.recentColors.innerHTML = innerHtml.join('');
44469 };
44470 AgColorPanel.prototype.setValue = function (val) {
44471 var color = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromString(val);
44472 var _a = color.toHSB(), h = _a[0], s = _a[1], b = _a[2];
44473 this.H = (isNaN(h) ? 0 : h) / 360;
44474 this.A = color.a;
44475 var spectrumHueRect = this.spectrumHueRect || this.refreshHueRect();
44476 var spectrumAlphaRect = this.spectrumAlphaRect || this.refreshAlphaRect();
44477 this.spectrumHueSlider.style.left = ((this.H - 1) * -spectrumHueRect.width) + "px";
44478 this.spectrumAlphaSlider.style.left = (this.A * spectrumAlphaRect.width) + "px";
44479 this.setSpectrumValue(s, b);
44480 };
44481 AgColorPanel.prototype.onRecentColorClick = function (e) {
44482 var target = e.target;
44483 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(target.id)) {
44484 return;
44485 }
44486 var id = parseInt(target.id, 10);
44487 this.setValue(AgColorPanel.recentColors[id]);
44488 this.destroy();
44489 };
44490 AgColorPanel.prototype.addRecentColor = function () {
44491 var color = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromHSB(this.H * 360, this.S, this.B, this.A);
44492 var rgbaColor = color.toRgbaString();
44493 var recentColors = AgColorPanel.recentColors;
44494 if (!this.colorChanged || recentColors[0] === rgbaColor) {
44495 return;
44496 }
44497 // remove duplicate color
44498 recentColors = recentColors.filter(function (currentColor) { return currentColor != rgbaColor; });
44499 // add color to head
44500 recentColors = [rgbaColor].concat(recentColors);
44501 // ensure we don't exceed max number of recent colors
44502 if (recentColors.length > AgColorPanel.maxRecentColors) {
44503 recentColors = recentColors.slice(0, AgColorPanel.maxRecentColors);
44504 }
44505 AgColorPanel.recentColors = recentColors;
44506 };
44507 AgColorPanel.prototype.destroy = function () {
44508 this.addRecentColor();
44509 _super.prototype.destroy.call(this);
44510 };
44511 AgColorPanel.maxRecentColors = 8;
44512 AgColorPanel.recentColors = [];
44513 AgColorPanel.TEMPLATE = "<div class=\"ag-color-panel\">\n <div ref=\"spectrumColor\" class=\"ag-spectrum-color\">\n <div class=\"ag-spectrum-sat ag-spectrum-fill\">\n <div ref=\"spectrumVal\" class=\"ag-spectrum-val ag-spectrum-fill\">\n <div ref=\"spectrumDragger\" class=\"ag-spectrum-dragger\"></div>\n </div>\n </div>\n </div>\n <div class=\"ag-spectrum-tools\">\n <div ref=\"spectrumHue\" class=\"ag-spectrum-hue ag-spectrum-tool\">\n <div class=\"ag-spectrum-hue-background\"></div>\n <div ref=\"spectrumHueSlider\" class=\"ag-spectrum-slider\"></div>\n </div>\n <div ref=\"spectrumAlpha\" class=\"ag-spectrum-alpha ag-spectrum-tool\">\n <div class=\"ag-spectrum-alpha-background\"></div>\n <div ref=\"spectrumAlphaSlider\" class=\"ag-spectrum-slider\"></div>\n </div>\n <div ref=\"recentColors\" class=\"ag-recent-colors\"></div>\n </div>\n </div>";
44514 __decorate([
44515 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumColor')
44516 ], AgColorPanel.prototype, "spectrumColor", void 0);
44517 __decorate([
44518 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumVal')
44519 ], AgColorPanel.prototype, "spectrumVal", void 0);
44520 __decorate([
44521 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumDragger')
44522 ], AgColorPanel.prototype, "spectrumDragger", void 0);
44523 __decorate([
44524 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumHue')
44525 ], AgColorPanel.prototype, "spectrumHue", void 0);
44526 __decorate([
44527 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumHueSlider')
44528 ], AgColorPanel.prototype, "spectrumHueSlider", void 0);
44529 __decorate([
44530 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumAlpha')
44531 ], AgColorPanel.prototype, "spectrumAlpha", void 0);
44532 __decorate([
44533 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumAlphaSlider')
44534 ], AgColorPanel.prototype, "spectrumAlphaSlider", void 0);
44535 __decorate([
44536 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('recentColors')
44537 ], AgColorPanel.prototype, "recentColors", void 0);
44538 __decorate([
44539 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
44540 ], AgColorPanel.prototype, "postConstruct", null);
44541 return AgColorPanel;
44542}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
44543
44544
44545
44546/***/ }),
44547/* 198 */
44548/***/ (function(module, __webpack_exports__, __webpack_require__) {
44549
44550"use strict";
44551__webpack_require__.r(__webpack_exports__);
44552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPickerField", function() { return AgPickerField; });
44553/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(121);
44554/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
44555/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47);
44556/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50);
44557/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
44558/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
44559/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
44560/**
44561 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44562 * @version v25.3.0
44563 * @link http://www.ag-grid.com/
44564 * @license MIT
44565 */
44566var __extends = (undefined && undefined.__extends) || (function () {
44567 var extendStatics = function (d, b) {
44568 extendStatics = Object.setPrototypeOf ||
44569 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44570 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44571 return extendStatics(d, b);
44572 };
44573 return function (d, b) {
44574 extendStatics(d, b);
44575 function __() { this.constructor = d; }
44576 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44577 };
44578})();
44579var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44580 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44581 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44582 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
44583 return c > 3 && r && Object.defineProperty(target, key, r), r;
44584};
44585
44586
44587
44588
44589
44590
44591
44592var AgPickerField = /** @class */ (function (_super) {
44593 __extends(AgPickerField, _super);
44594 function AgPickerField(config, className, pickerIcon, popupRole) {
44595 var _this = _super.call(this, config,
44596 /* html */ "<div class=\"ag-picker-field\" role=\"presentation\">\n <div ref=\"eLabel\"></div>\n <div ref=\"eWrapper\"\n class=\"ag-wrapper ag-picker-field-wrapper\"\n tabIndex=\"-1\"\n " + (popupRole ? "aria-haspopup=\"" + popupRole + "\"" : '') + "\n >\n <div ref=\"eDisplayField\" class=\"ag-picker-field-display\"></div>\n <div ref=\"eIcon\" class=\"ag-picker-field-icon\" aria-hidden=\"true\"></div>\n </div>\n </div>", className) || this;
44597 _this.pickerIcon = pickerIcon;
44598 _this.isPickerDisplayed = false;
44599 _this.isDestroyingPicker = false;
44600 _this.skipClick = false;
44601 return _this;
44602 }
44603 AgPickerField.prototype.postConstruct = function () {
44604 var _this = this;
44605 _super.prototype.postConstruct.call(this);
44606 var displayId = this.getCompId() + "-display";
44607 this.eDisplayField.setAttribute('id', displayId);
44608 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaDescribedBy"])(this.eWrapper, displayId);
44609 var clickHandler = function () {
44610 if (_this.skipClick) {
44611 _this.skipClick = false;
44612 return;
44613 }
44614 if (_this.isDisabled()) {
44615 return;
44616 }
44617 _this.pickerComponent = _this.showPicker();
44618 };
44619 var eGui = this.getGui();
44620 this.addManagedListener(eGui, 'mousedown', function (e) {
44621 if (!_this.skipClick &&
44622 _this.pickerComponent &&
44623 _this.pickerComponent.isAlive() &&
44624 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isVisible"])(_this.pickerComponent.getGui()) &&
44625 eGui.contains(e.target)) {
44626 _this.skipClick = true;
44627 }
44628 });
44629 this.addManagedListener(eGui, 'keydown', function (e) {
44630 switch (e.keyCode) {
44631 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
44632 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
44633 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER:
44634 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].SPACE:
44635 clickHandler();
44636 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ESCAPE:
44637 if (_this.isPickerDisplayed) {
44638 e.preventDefault();
44639 }
44640 break;
44641 }
44642 });
44643 this.addManagedListener(this.eWrapper, 'click', clickHandler);
44644 this.addManagedListener(this.eLabel, 'click', clickHandler);
44645 if (this.pickerIcon) {
44646 var icon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIconNoSpan"])(this.pickerIcon, this.gridOptionsWrapper);
44647 if (icon) {
44648 this.eIcon.appendChild(icon);
44649 }
44650 }
44651 };
44652 AgPickerField.prototype.refreshLabel = function () {
44653 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getLabel())) {
44654 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabelledBy"])(this.eWrapper, this.getLabelId());
44655 }
44656 else {
44657 this.eWrapper.removeAttribute('aria-labelledby');
44658 }
44659 _super.prototype.refreshLabel.call(this);
44660 };
44661 AgPickerField.prototype.setAriaLabel = function (label) {
44662 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabel"])(this.eWrapper, label);
44663 return this;
44664 };
44665 AgPickerField.prototype.setInputWidth = function (width) {
44666 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setElementWidth"])(this.eWrapper, width);
44667 return this;
44668 };
44669 AgPickerField.prototype.getFocusableElement = function () {
44670 return this.eWrapper;
44671 };
44672 __decorate([
44673 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLabel')
44674 ], AgPickerField.prototype, "eLabel", void 0);
44675 __decorate([
44676 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eWrapper')
44677 ], AgPickerField.prototype, "eWrapper", void 0);
44678 __decorate([
44679 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eDisplayField')
44680 ], AgPickerField.prototype, "eDisplayField", void 0);
44681 __decorate([
44682 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eIcon')
44683 ], AgPickerField.prototype, "eIcon", void 0);
44684 return AgPickerField;
44685}(_agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"]));
44686
44687
44688
44689/***/ }),
44690/* 199 */
44691/***/ (function(module, __webpack_exports__, __webpack_require__) {
44692
44693"use strict";
44694__webpack_require__.r(__webpack_exports__);
44695/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return AgInputNumberField; });
44696/* harmony import */ var _agInputTextField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193);
44697/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
44698/**
44699 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44700 * @version v25.3.0
44701 * @link http://www.ag-grid.com/
44702 * @license MIT
44703 */
44704var __extends = (undefined && undefined.__extends) || (function () {
44705 var extendStatics = function (d, b) {
44706 extendStatics = Object.setPrototypeOf ||
44707 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44708 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44709 return extendStatics(d, b);
44710 };
44711 return function (d, b) {
44712 extendStatics(d, b);
44713 function __() { this.constructor = d; }
44714 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44715 };
44716})();
44717
44718
44719var AgInputNumberField = /** @class */ (function (_super) {
44720 __extends(AgInputNumberField, _super);
44721 function AgInputNumberField(config) {
44722 return _super.call(this, config, 'ag-number-field', 'number') || this;
44723 }
44724 AgInputNumberField.prototype.postConstruct = function () {
44725 var _this = this;
44726 _super.prototype.postConstruct.call(this);
44727 this.addManagedListener(this.eInput, 'blur', function () {
44728 var floatedValue = parseFloat(_this.eInput.value);
44729 var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());
44730 if (_this.value !== value) {
44731 _this.setValue(value);
44732 }
44733 });
44734 };
44735 AgInputNumberField.prototype.normalizeValue = function (value) {
44736 if (value === '') {
44737 return '';
44738 }
44739 if (this.precision) {
44740 value = this.adjustPrecision(value);
44741 }
44742 var val = parseFloat(value);
44743 if (this.min != null && val < this.min) {
44744 value = this.min.toString();
44745 }
44746 else if (this.max != null && val > this.max) {
44747 value = this.max.toString();
44748 }
44749 return value;
44750 };
44751 AgInputNumberField.prototype.adjustPrecision = function (value) {
44752 if (this.precision) {
44753 var floatString = parseFloat(value).toFixed(this.precision);
44754 value = parseFloat(floatString).toString();
44755 }
44756 return value;
44757 };
44758 AgInputNumberField.prototype.setMin = function (min) {
44759 if (this.min === min) {
44760 return this;
44761 }
44762 this.min = min;
44763 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'min', min);
44764 return this;
44765 };
44766 AgInputNumberField.prototype.setMax = function (max) {
44767 if (this.max === max) {
44768 return this;
44769 }
44770 this.max = max;
44771 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'max', max);
44772 return this;
44773 };
44774 AgInputNumberField.prototype.setPrecision = function (precision) {
44775 this.precision = precision;
44776 return this;
44777 };
44778 AgInputNumberField.prototype.setStep = function (step) {
44779 if (this.step === step) {
44780 return this;
44781 }
44782 this.step = step;
44783 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'step', step);
44784 return this;
44785 };
44786 AgInputNumberField.prototype.setValue = function (value, silent) {
44787 value = this.adjustPrecision(value);
44788 var normalizedValue = this.normalizeValue(value);
44789 if (value != normalizedValue) {
44790 return this;
44791 }
44792 return _super.prototype.setValue.call(this, value, silent);
44793 };
44794 return AgInputNumberField;
44795}(_agInputTextField__WEBPACK_IMPORTED_MODULE_0__["AgInputTextField"]));
44796
44797
44798
44799/***/ }),
44800/* 200 */
44801/***/ (function(module, __webpack_exports__, __webpack_require__) {
44802
44803"use strict";
44804__webpack_require__.r(__webpack_exports__);
44805/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return AgInputRange; });
44806/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(120);
44807/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34);
44808/**
44809 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44810 * @version v25.3.0
44811 * @link http://www.ag-grid.com/
44812 * @license MIT
44813 */
44814var __extends = (undefined && undefined.__extends) || (function () {
44815 var extendStatics = function (d, b) {
44816 extendStatics = Object.setPrototypeOf ||
44817 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44818 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44819 return extendStatics(d, b);
44820 };
44821 return function (d, b) {
44822 extendStatics(d, b);
44823 function __() { this.constructor = d; }
44824 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44825 };
44826})();
44827
44828
44829var AgInputRange = /** @class */ (function (_super) {
44830 __extends(AgInputRange, _super);
44831 function AgInputRange(config) {
44832 return _super.call(this, config, 'ag-range-field', 'range') || this;
44833 }
44834 AgInputRange.prototype.postConstruct = function () {
44835 _super.prototype.postConstruct.call(this);
44836 var _a = this.config, min = _a.min, max = _a.max, step = _a.step;
44837 if (min != null) {
44838 this.setMinValue(min);
44839 }
44840 if (max != null) {
44841 this.setMaxValue(max);
44842 }
44843 this.setStep(step || 1);
44844 };
44845 AgInputRange.prototype.addInputListeners = function () {
44846 var _this = this;
44847 var isIE = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isBrowserIE"])();
44848 var eventName = isIE ? 'change' : 'input';
44849 this.addManagedListener(this.eInput, eventName, function (e) {
44850 var value = e.target.value;
44851 _this.setValue(value);
44852 });
44853 };
44854 AgInputRange.prototype.setMinValue = function (value) {
44855 this.min = value;
44856 this.eInput.setAttribute('min', value.toString());
44857 return this;
44858 };
44859 AgInputRange.prototype.setMaxValue = function (value) {
44860 this.max = value;
44861 this.eInput.setAttribute('max', value.toString());
44862 return this;
44863 };
44864 AgInputRange.prototype.setStep = function (value) {
44865 this.eInput.setAttribute('step', value.toString());
44866 return this;
44867 };
44868 AgInputRange.prototype.setValue = function (value, silent) {
44869 if (this.min != null) {
44870 value = Math.max(parseFloat(value), this.min).toString();
44871 }
44872 if (this.max != null) {
44873 value = Math.min(parseFloat(value), this.max).toString();
44874 }
44875 var ret = _super.prototype.setValue.call(this, value, silent);
44876 this.eInput.value = value;
44877 return ret;
44878 };
44879 return AgInputRange;
44880}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
44881
44882
44883
44884/***/ }),
44885/* 201 */
44886/***/ (function(module, __webpack_exports__, __webpack_require__) {
44887
44888"use strict";
44889__webpack_require__.r(__webpack_exports__);
44890/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return AgSelect; });
44891/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(121);
44892/* harmony import */ var _agPickerField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(198);
44893/* harmony import */ var _agList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(202);
44894/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
44895/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
44896/**
44897 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44898 * @version v25.3.0
44899 * @link http://www.ag-grid.com/
44900 * @license MIT
44901 */
44902var __extends = (undefined && undefined.__extends) || (function () {
44903 var extendStatics = function (d, b) {
44904 extendStatics = Object.setPrototypeOf ||
44905 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44906 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44907 return extendStatics(d, b);
44908 };
44909 return function (d, b) {
44910 extendStatics(d, b);
44911 function __() { this.constructor = d; }
44912 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44913 };
44914})();
44915var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44916 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44917 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44918 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
44919 return c > 3 && r && Object.defineProperty(target, key, r), r;
44920};
44921
44922
44923
44924
44925
44926var AgSelect = /** @class */ (function (_super) {
44927 __extends(AgSelect, _super);
44928 function AgSelect(config) {
44929 return _super.call(this, config, 'ag-select', 'smallDown', 'listbox') || this;
44930 }
44931 AgSelect.prototype.init = function () {
44932 var _this = this;
44933 this.listComponent = this.createBean(new _agList__WEBPACK_IMPORTED_MODULE_2__["AgList"]('select'));
44934 this.listComponent.setParentComponent(this);
44935 this.eWrapper.tabIndex = 0;
44936 this.listComponent.addManagedListener(this.listComponent, _agList__WEBPACK_IMPORTED_MODULE_2__["AgList"].EVENT_ITEM_SELECTED, function () { if (_this.hideList) {
44937 _this.hideList();
44938 } });
44939 this.listComponent.addManagedListener(this.listComponent, _agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"].EVENT_CHANGED, function () {
44940 _this.setValue(_this.listComponent.getValue(), false, true);
44941 if (_this.hideList) {
44942 _this.hideList();
44943 }
44944 });
44945 };
44946 AgSelect.prototype.showPicker = function () {
44947 var _this = this;
44948 var listGui = this.listComponent.getGui();
44949 var destroyMouseWheelFunc = this.addManagedListener(document.body, 'wheel', function (e) {
44950 if (!listGui.contains(e.target) && _this.hideList) {
44951 _this.hideList();
44952 }
44953 });
44954 var destroyFocusOutFunc = this.addManagedListener(listGui, 'focusout', function (e) {
44955 if (!listGui.contains(e.relatedTarget) && _this.hideList) {
44956 _this.hideList();
44957 }
44958 });
44959 var addPopupRes = this.popupService.addPopup({
44960 modal: true,
44961 eChild: listGui,
44962 closeOnEsc: true,
44963 closedCallback: function () {
44964 _this.hideList = null;
44965 _this.isPickerDisplayed = false;
44966 destroyFocusOutFunc();
44967 destroyMouseWheelFunc();
44968 if (_this.isAlive()) {
44969 _this.getFocusableElement().focus();
44970 }
44971 }
44972 });
44973 if (addPopupRes) {
44974 this.hideList = addPopupRes.hideFunc;
44975 }
44976 this.isPickerDisplayed = true;
44977 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setElementWidth"])(listGui, Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getAbsoluteWidth"])(this.eWrapper));
44978 listGui.style.maxHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getInnerHeight"])(this.popupService.getPopupParent()) + 'px';
44979 listGui.style.position = 'absolute';
44980 this.popupService.positionPopupUnderComponent({
44981 type: 'ag-list',
44982 eventSource: this.eWrapper,
44983 ePopup: listGui,
44984 keepWithinBounds: true
44985 });
44986 this.listComponent.refreshHighlighted();
44987 return this.listComponent;
44988 };
44989 AgSelect.prototype.addOptions = function (options) {
44990 var _this = this;
44991 options.forEach(function (option) { return _this.addOption(option); });
44992 return this;
44993 };
44994 AgSelect.prototype.addOption = function (option) {
44995 this.listComponent.addOption(option);
44996 return this;
44997 };
44998 AgSelect.prototype.setValue = function (value, silent, fromPicker) {
44999 if (this.value === value) {
45000 return this;
45001 }
45002 if (!fromPicker) {
45003 this.listComponent.setValue(value, true);
45004 }
45005 var newValue = this.listComponent.getValue();
45006 if (newValue === this.getValue()) {
45007 return this;
45008 }
45009 this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();
45010 return _super.prototype.setValue.call(this, value, silent);
45011 };
45012 AgSelect.prototype.destroy = function () {
45013 if (this.hideList) {
45014 this.hideList();
45015 }
45016 this.destroyBean(this.listComponent);
45017 _super.prototype.destroy.call(this);
45018 };
45019 __decorate([
45020 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('popupService')
45021 ], AgSelect.prototype, "popupService", void 0);
45022 __decorate([
45023 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
45024 ], AgSelect.prototype, "init", null);
45025 return AgSelect;
45026}(_agPickerField__WEBPACK_IMPORTED_MODULE_1__["AgPickerField"]));
45027
45028
45029
45030/***/ }),
45031/* 202 */
45032/***/ (function(module, __webpack_exports__, __webpack_require__) {
45033
45034"use strict";
45035__webpack_require__.r(__webpack_exports__);
45036/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgList", function() { return AgList; });
45037/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(121);
45038/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
45039/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
45040/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
45041/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
45042/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
45043/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
45044/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(47);
45045/**
45046 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45047 * @version v25.3.0
45048 * @link http://www.ag-grid.com/
45049 * @license MIT
45050 */
45051var __extends = (undefined && undefined.__extends) || (function () {
45052 var extendStatics = function (d, b) {
45053 extendStatics = Object.setPrototypeOf ||
45054 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45055 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45056 return extendStatics(d, b);
45057 };
45058 return function (d, b) {
45059 extendStatics(d, b);
45060 function __() { this.constructor = d; }
45061 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45062 };
45063})();
45064var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45065 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45066 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45067 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45068 return c > 3 && r && Object.defineProperty(target, key, r), r;
45069};
45070
45071
45072
45073
45074
45075
45076
45077
45078var AgList = /** @class */ (function (_super) {
45079 __extends(AgList, _super);
45080 function AgList(cssIdentifier) {
45081 if (cssIdentifier === void 0) { cssIdentifier = 'default'; }
45082 var _this = _super.call(this, /* html */ "<div class=\"ag-list ag-" + cssIdentifier + "-list\" role=\"listbox\"></div>") || this;
45083 _this.cssIdentifier = cssIdentifier;
45084 _this.options = [];
45085 _this.itemEls = [];
45086 return _this;
45087 }
45088 AgList.prototype.init = function () {
45089 this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));
45090 };
45091 AgList.prototype.handleKeyDown = function (e) {
45092 var key = e.keyCode;
45093 switch (key) {
45094 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER:
45095 if (!this.highlightedEl) {
45096 this.setValue(this.getValue());
45097 }
45098 else {
45099 var pos = this.itemEls.indexOf(this.highlightedEl);
45100 this.setValueByIndex(pos);
45101 }
45102 break;
45103 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
45104 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
45105 var isDown = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN;
45106 var itemToHighlight = void 0;
45107 e.preventDefault();
45108 if (!this.highlightedEl) {
45109 itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];
45110 }
45111 else {
45112 var currentIdx = this.itemEls.indexOf(this.highlightedEl);
45113 var nextPos = currentIdx + (isDown ? 1 : -1);
45114 nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);
45115 itemToHighlight = this.itemEls[nextPos];
45116 }
45117 this.highlightItem(itemToHighlight);
45118 break;
45119 }
45120 };
45121 AgList.prototype.addOptions = function (listOptions) {
45122 var _this = this;
45123 listOptions.forEach(function (listOption) { return _this.addOption(listOption); });
45124 return this;
45125 };
45126 AgList.prototype.addOption = function (listOption) {
45127 var value = listOption.value, text = listOption.text;
45128 var sanitisedText = Object(_utils_string__WEBPACK_IMPORTED_MODULE_3__["escapeString"])(text || value);
45129 this.options.push({ value: value, text: sanitisedText });
45130 this.renderOption(value, sanitisedText);
45131 return this;
45132 };
45133 AgList.prototype.renderOption = function (value, text) {
45134 var _this = this;
45135 var itemEl = document.createElement('div');
45136 itemEl.setAttribute('role', 'option');
45137 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(itemEl, 'ag-list-item');
45138 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(itemEl, "ag-" + this.cssIdentifier + "-list-item");
45139 itemEl.innerHTML = "<span>" + text + "</span>";
45140 itemEl.tabIndex = -1;
45141 this.itemEls.push(itemEl);
45142 this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });
45143 this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });
45144 this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });
45145 this.getGui().appendChild(itemEl);
45146 };
45147 AgList.prototype.setValue = function (value, silent) {
45148 if (this.value === value) {
45149 this.fireItemSelected();
45150 return this;
45151 }
45152 if (value == null) {
45153 this.reset();
45154 return this;
45155 }
45156 var idx = Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["findIndex"])(this.options, function (option) { return option.value === value; });
45157 if (idx !== -1) {
45158 var option = this.options[idx];
45159 this.value = option.value;
45160 this.displayValue = option.text != null ? option.text : option.value;
45161 this.highlightItem(this.itemEls[idx]);
45162 if (!silent) {
45163 this.fireChangeEvent();
45164 }
45165 }
45166 return this;
45167 };
45168 AgList.prototype.setValueByIndex = function (idx) {
45169 return this.setValue(this.options[idx].value);
45170 };
45171 AgList.prototype.getValue = function () {
45172 return this.value;
45173 };
45174 AgList.prototype.getDisplayValue = function () {
45175 return this.displayValue;
45176 };
45177 AgList.prototype.refreshHighlighted = function () {
45178 var _this = this;
45179 this.clearHighlighted();
45180 var idx = Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["findIndex"])(this.options, function (option) { return option.value === _this.value; });
45181 if (idx !== -1) {
45182 this.highlightItem(this.itemEls[idx]);
45183 }
45184 };
45185 AgList.prototype.reset = function () {
45186 this.value = null;
45187 this.displayValue = null;
45188 this.clearHighlighted();
45189 this.fireChangeEvent();
45190 };
45191 AgList.prototype.highlightItem = function (el) {
45192 if (!el.offsetParent) {
45193 return;
45194 }
45195 this.clearHighlighted();
45196 this.highlightedEl = el;
45197 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.highlightedEl, AgList.ACTIVE_CLASS);
45198 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaSelected"])(this.highlightedEl, true);
45199 this.highlightedEl.focus();
45200 };
45201 AgList.prototype.clearHighlighted = function () {
45202 if (!this.highlightedEl || !this.highlightedEl.offsetParent) {
45203 return;
45204 }
45205 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(this.highlightedEl, AgList.ACTIVE_CLASS);
45206 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaSelected"])(this.highlightedEl, false);
45207 this.highlightedEl = null;
45208 };
45209 AgList.prototype.fireChangeEvent = function () {
45210 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"].EVENT_CHANGED });
45211 this.fireItemSelected();
45212 };
45213 AgList.prototype.fireItemSelected = function () {
45214 this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });
45215 };
45216 AgList.EVENT_ITEM_SELECTED = 'selectedItem';
45217 AgList.ACTIVE_CLASS = 'ag-active-item';
45218 __decorate([
45219 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
45220 ], AgList.prototype, "init", null);
45221 return AgList;
45222}(_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
45223
45224
45225
45226/***/ }),
45227/* 203 */
45228/***/ (function(module, __webpack_exports__, __webpack_require__) {
45229
45230"use strict";
45231__webpack_require__.r(__webpack_exports__);
45232/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAngleSelect", function() { return AgAngleSelect; });
45233/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(122);
45234/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
45235/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
45236/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(121);
45237/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
45238/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
45239/**
45240 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45241 * @version v25.3.0
45242 * @link http://www.ag-grid.com/
45243 * @license MIT
45244 */
45245var __extends = (undefined && undefined.__extends) || (function () {
45246 var extendStatics = function (d, b) {
45247 extendStatics = Object.setPrototypeOf ||
45248 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45249 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45250 return extendStatics(d, b);
45251 };
45252 return function (d, b) {
45253 extendStatics(d, b);
45254 function __() { this.constructor = d; }
45255 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45256 };
45257})();
45258var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45259 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45260 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45261 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45262 return c > 3 && r && Object.defineProperty(target, key, r), r;
45263};
45264
45265
45266
45267
45268
45269
45270var AgAngleSelect = /** @class */ (function (_super) {
45271 __extends(AgAngleSelect, _super);
45272 function AgAngleSelect(config) {
45273 var _this = _super.call(this, config, AgAngleSelect.TEMPLATE) || this;
45274 _this.radius = 0;
45275 _this.offsetX = 0;
45276 _this.offsetY = 0;
45277 return _this;
45278 }
45279 AgAngleSelect.prototype.postConstruct = function () {
45280 var _this = this;
45281 _super.prototype.postConstruct.call(this);
45282 this.dragListener = {
45283 eElement: this.eParentCircle,
45284 dragStartPixels: 0,
45285 onDragStart: function (e) {
45286 _this.parentCircleRect = _this.eParentCircle.getBoundingClientRect();
45287 },
45288 onDragging: function (e) { return _this.calculateAngleDrag(e); },
45289 onDragStop: function () { }
45290 };
45291 this.dragService.addDragSource(this.dragListener);
45292 this.eAngleValue
45293 .setLabel('')
45294 .setLabelWidth(5)
45295 .setInputWidth(45)
45296 .setMin(0)
45297 .setMax(360)
45298 .setValue("" + this.degrees)
45299 .onValueChange(function (value) {
45300 if (value == null || value === '') {
45301 value = '0';
45302 }
45303 value = _this.eAngleValue.normalizeValue(value);
45304 var floatValue = parseFloat(value);
45305 if (floatValue > 180) {
45306 floatValue = floatValue - 360;
45307 }
45308 _this.setValue(floatValue);
45309 });
45310 this.updateNumberInput();
45311 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getValue())) {
45312 this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());
45313 }
45314 this.addManagedListener(this, _agAbstractField__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"].EVENT_CHANGED, function () {
45315 if (_this.eAngleValue.getInputElement().contains(document.activeElement)) {
45316 return;
45317 }
45318 _this.updateNumberInput();
45319 });
45320 };
45321 AgAngleSelect.prototype.updateNumberInput = function () {
45322 var normalizedValue = this.normalizeNegativeValue(this.getValue());
45323 this.eAngleValue.setValue(normalizedValue.toString());
45324 };
45325 AgAngleSelect.prototype.positionChildCircle = function (radians) {
45326 var rect = this.parentCircleRect || { width: 24, height: 24 };
45327 var eChildCircle = this.eChildCircle;
45328 var centerX = rect.width / 2;
45329 var centerY = rect.height / 2;
45330 eChildCircle.style.left = centerX + Math.cos(radians) * 8 + "px";
45331 eChildCircle.style.top = centerY + Math.sin(radians) * 8 + "px";
45332 };
45333 AgAngleSelect.prototype.calculatePolar = function () {
45334 var x = this.offsetX;
45335 var y = this.offsetY;
45336 var radians = Math.atan2(y, x);
45337 this.degrees = this.toDegrees(radians);
45338 this.radius = Math.sqrt((x * x) + (y * y));
45339 this.positionChildCircle(radians);
45340 };
45341 AgAngleSelect.prototype.calculateCartesian = function () {
45342 var radians = this.toRadians(this.getValue());
45343 var radius = this.getRadius();
45344 this
45345 .setOffsetX(Math.cos(radians) * radius)
45346 .setOffsetY(Math.sin(radians) * radius);
45347 };
45348 AgAngleSelect.prototype.setOffsetX = function (offset) {
45349 if (this.offsetX !== offset) {
45350 this.offsetX = offset;
45351 this.calculatePolar();
45352 }
45353 return this;
45354 };
45355 AgAngleSelect.prototype.setOffsetY = function (offset) {
45356 if (this.offsetY !== offset) {
45357 this.offsetY = offset;
45358 this.calculatePolar();
45359 }
45360 return this;
45361 };
45362 AgAngleSelect.prototype.calculateAngleDrag = function (e) {
45363 var rect = this.parentCircleRect;
45364 var centerX = rect.width / 2;
45365 var centerY = rect.height / 2;
45366 var x = e.clientX - rect.left;
45367 var y = e.clientY - rect.top;
45368 var dx = x - centerX;
45369 var dy = y - centerY;
45370 var radians = Math.atan2(dy, dx);
45371 this.setValue(radians, true);
45372 };
45373 AgAngleSelect.prototype.toDegrees = function (radians) {
45374 return radians / Math.PI * 180;
45375 };
45376 AgAngleSelect.prototype.toRadians = function (degrees) {
45377 return degrees / 180 * Math.PI;
45378 };
45379 AgAngleSelect.prototype.normalizeNegativeValue = function (degrees) {
45380 return degrees < 0 ? 360 + degrees : degrees;
45381 };
45382 AgAngleSelect.prototype.normalizeAngle180 = function (radians) {
45383 radians %= Math.PI * 2;
45384 if (radians < -Math.PI) {
45385 radians += Math.PI * 2;
45386 }
45387 else if (radians >= Math.PI) {
45388 radians -= Math.PI * 2;
45389 }
45390 return radians;
45391 };
45392 AgAngleSelect.prototype.getRadius = function () {
45393 return this.radius;
45394 };
45395 AgAngleSelect.prototype.setRadius = function (r) {
45396 if (this.radius === r) {
45397 return this;
45398 }
45399 this.radius = r;
45400 this.calculateCartesian();
45401 return this;
45402 };
45403 AgAngleSelect.prototype.onValueChange = function (callbackFn) {
45404 var _this = this;
45405 this.addManagedListener(this, _agAbstractField__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"].EVENT_CHANGED, function () {
45406 callbackFn(_this.degrees);
45407 });
45408 return this;
45409 };
45410 AgAngleSelect.prototype.getValue = function (radians) {
45411 return radians ? this.toRadians(this.degrees) : this.degrees;
45412 };
45413 AgAngleSelect.prototype.setValue = function (degrees, radians) {
45414 var radiansValue;
45415 if (!radians) {
45416 radiansValue = this.normalizeAngle180(this.toRadians(degrees));
45417 }
45418 else {
45419 radiansValue = degrees;
45420 }
45421 degrees = this.toDegrees(radiansValue);
45422 if (this.degrees !== degrees) {
45423 this.degrees = Math.floor(degrees);
45424 this.calculateCartesian();
45425 this.positionChildCircle(radiansValue);
45426 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"].EVENT_CHANGED });
45427 }
45428 return this;
45429 };
45430 AgAngleSelect.prototype.setWidth = function (width) {
45431 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setFixedWidth"])(this.getGui(), width);
45432 return this;
45433 };
45434 AgAngleSelect.prototype.destroy = function () {
45435 this.dragService.removeDragSource(this.dragListener);
45436 _super.prototype.destroy.call(this);
45437 };
45438 AgAngleSelect.TEMPLATE = "<div class=\"ag-angle-select\">\n <div ref=\"eLabel\"></div>\n <div class=\"ag-wrapper ag-angle-select-wrapper\">\n <div ref=\"eAngleSelectField\" class=\"ag-angle-select-field\">\n <div ref=\"eParentCircle\" class=\"ag-angle-select-parent-circle\">\n <div ref=\"eChildCircle\" class=\"ag-angle-select-child-circle\"></div>\n </div>\n </div>\n <ag-input-number-field ref=\"eAngleValue\"></ag-input-number-field>\n </div>\n </div>";
45439 __decorate([
45440 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLabel')
45441 ], AgAngleSelect.prototype, "eLabel", void 0);
45442 __decorate([
45443 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eParentCircle')
45444 ], AgAngleSelect.prototype, "eParentCircle", void 0);
45445 __decorate([
45446 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eChildCircle')
45447 ], AgAngleSelect.prototype, "eChildCircle", void 0);
45448 __decorate([
45449 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eAngleValue')
45450 ], AgAngleSelect.prototype, "eAngleValue", void 0);
45451 __decorate([
45452 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragService')
45453 ], AgAngleSelect.prototype, "dragService", void 0);
45454 return AgAngleSelect;
45455}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__["AgAbstractLabel"]));
45456
45457
45458
45459/***/ }),
45460/* 204 */
45461/***/ (function(module, __webpack_exports__, __webpack_require__) {
45462
45463"use strict";
45464__webpack_require__.r(__webpack_exports__);
45465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return AgToggleButton; });
45466/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
45467/* harmony import */ var _agCheckbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(119);
45468/**
45469 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45470 * @version v25.3.0
45471 * @link http://www.ag-grid.com/
45472 * @license MIT
45473 */
45474var __extends = (undefined && undefined.__extends) || (function () {
45475 var extendStatics = function (d, b) {
45476 extendStatics = Object.setPrototypeOf ||
45477 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45478 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45479 return extendStatics(d, b);
45480 };
45481 return function (d, b) {
45482 extendStatics(d, b);
45483 function __() { this.constructor = d; }
45484 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45485 };
45486})();
45487
45488
45489var AgToggleButton = /** @class */ (function (_super) {
45490 __extends(AgToggleButton, _super);
45491 function AgToggleButton(config) {
45492 return _super.call(this, config, 'ag-toggle-button') || this;
45493 }
45494 AgToggleButton.prototype.setValue = function (value, silent) {
45495 _super.prototype.setValue.call(this, value, silent);
45496 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["addOrRemoveCssClass"])(this.getGui(), 'ag-selected', this.getValue());
45497 return this;
45498 };
45499 return AgToggleButton;
45500}(_agCheckbox__WEBPACK_IMPORTED_MODULE_1__["AgCheckbox"]));
45501
45502
45503
45504/***/ }),
45505/* 205 */
45506/***/ (function(module, __webpack_exports__, __webpack_require__) {
45507
45508"use strict";
45509__webpack_require__.r(__webpack_exports__);
45510/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailRowCompCache", function() { return DetailRowCompCache; });
45511/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
45512/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
45513/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
45514/**
45515 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45516 * @version v25.3.0
45517 * @link http://www.ag-grid.com/
45518 * @license MIT
45519 */
45520var __extends = (undefined && undefined.__extends) || (function () {
45521 var extendStatics = function (d, b) {
45522 extendStatics = Object.setPrototypeOf ||
45523 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45524 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45525 return extendStatics(d, b);
45526 };
45527 return function (d, b) {
45528 extendStatics(d, b);
45529 function __() { this.constructor = d; }
45530 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45531 };
45532})();
45533var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45534 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45535 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45536 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45537 return c > 3 && r && Object.defineProperty(target, key, r), r;
45538};
45539
45540
45541
45542/**
45543 * For Master Detail, it is required to keep components between expanding & collapsing parents.
45544 * For example a user expands row A (and shows a detail grid for this row), then when row A
45545 * is closed, we want to keep the detail grid, so next time row A is expanded the detail grid
45546 * is showed with it's context intact, eg if user sorted in the detail grid, that sort should
45547 * still be applied after the detail grid is shown for the second time.
45548 */
45549var DetailRowCompCache = /** @class */ (function (_super) {
45550 __extends(DetailRowCompCache, _super);
45551 function DetailRowCompCache() {
45552 var _this = _super !== null && _super.apply(this, arguments) || this;
45553 _this.cacheItems = [];
45554 return _this;
45555 }
45556 DetailRowCompCache.prototype.postConstruct = function () {
45557 this.active = this.gridOptionsWrapper.isKeepDetailRows();
45558 this.maxCacheSize = this.gridOptionsWrapper.getKeepDetailRowsCount();
45559 };
45560 DetailRowCompCache.prototype.addOrDestroy = function (rowNode, pinned, comp) {
45561 // only accept detail rows
45562 var doNotUseCache = !this.active || !rowNode.detail;
45563 if (doNotUseCache) {
45564 this.destroyFullWidthRow(comp);
45565 return;
45566 }
45567 var item = this.getCacheItem(rowNode, true);
45568 // put the comp in the right location of the item.
45569 // we also destroy any previous comp - this should never happen
45570 // as the logic outside of this class shouldn't be adding same item to the
45571 // cache twice, however we cater for it in case in future releases code
45572 // outside of this class is changed and this could happen.
45573 switch (pinned) {
45574 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_LEFT:
45575 this.destroyFullWidthRow(item.left);
45576 item.left = comp;
45577 break;
45578 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_RIGHT:
45579 this.destroyFullWidthRow(item.right);
45580 item.right = comp;
45581 break;
45582 default:
45583 this.destroyFullWidthRow(item.center);
45584 item.center = comp;
45585 break;
45586 }
45587 this.cacheItems.sort(function (a, b) {
45588 return b.lastAccessedTime - a.lastAccessedTime;
45589 });
45590 this.purgeCache(this.maxCacheSize);
45591 };
45592 DetailRowCompCache.prototype.getCacheItem = function (rowNode, autoCreate) {
45593 if (autoCreate === void 0) { autoCreate = false; }
45594 var res = null;
45595 for (var i = 0; i < this.cacheItems.length; i++) {
45596 var item = this.cacheItems[i];
45597 if (item.rowNode === rowNode) {
45598 res = item;
45599 break;
45600 }
45601 }
45602 if (!res && autoCreate) {
45603 res = {
45604 rowNode: rowNode
45605 };
45606 this.cacheItems.push(res);
45607 }
45608 if (res) {
45609 this.stampCacheItem(res);
45610 }
45611 return res;
45612 };
45613 DetailRowCompCache.prototype.stampCacheItem = function (item) {
45614 item.lastAccessedTime = new Date().getTime();
45615 };
45616 DetailRowCompCache.prototype.destroyFullWidthRow = function (comp) {
45617 this.getContext().destroyBean(comp);
45618 };
45619 DetailRowCompCache.prototype.purgeCache = function (startIndex) {
45620 // delete all rows past the index of interest
45621 for (var i = startIndex; i < this.cacheItems.length; i++) {
45622 var item = this.cacheItems[i];
45623 this.destroyFullWidthRow(item.center);
45624 this.destroyFullWidthRow(item.left);
45625 this.destroyFullWidthRow(item.right);
45626 }
45627 // change the length of the array so it no longer contains the deleted items
45628 if (this.cacheItems.length > startIndex) {
45629 this.cacheItems.length = startIndex;
45630 }
45631 };
45632 DetailRowCompCache.prototype.get = function (rowNode, pinned) {
45633 if (!rowNode.detail) {
45634 return;
45635 }
45636 var item = this.getCacheItem(rowNode);
45637 var res;
45638 if (item) {
45639 switch (pinned) {
45640 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_LEFT:
45641 if (item.left) {
45642 res = item.left;
45643 item.left = undefined;
45644 }
45645 break;
45646 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_RIGHT:
45647 if (item.right) {
45648 res = item.right;
45649 item.right = undefined;
45650 }
45651 break;
45652 default:
45653 if (item.center) {
45654 res = item.center;
45655 item.center = undefined;
45656 }
45657 break;
45658 }
45659 }
45660 return res;
45661 };
45662 DetailRowCompCache.prototype.destroy = function () {
45663 _super.prototype.destroy.call(this);
45664 this.purgeCache(0);
45665 };
45666 __decorate([
45667 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
45668 ], DetailRowCompCache.prototype, "postConstruct", null);
45669 __decorate([
45670 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
45671 ], DetailRowCompCache.prototype, "destroy", null);
45672 DetailRowCompCache = __decorate([
45673 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('detailRowCompCache')
45674 ], DetailRowCompCache);
45675 return DetailRowCompCache;
45676}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
45677
45678
45679
45680/***/ }),
45681/* 206 */
45682/***/ (function(module, __webpack_exports__, __webpack_require__) {
45683
45684"use strict";
45685__webpack_require__.r(__webpack_exports__);
45686/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return RowPositionUtils; });
45687/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
45688/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
45689/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
45690/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
45691/**
45692 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45693 * @version v25.3.0
45694 * @link http://www.ag-grid.com/
45695 * @license MIT
45696 */
45697var __extends = (undefined && undefined.__extends) || (function () {
45698 var extendStatics = function (d, b) {
45699 extendStatics = Object.setPrototypeOf ||
45700 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45701 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45702 return extendStatics(d, b);
45703 };
45704 return function (d, b) {
45705 extendStatics(d, b);
45706 function __() { this.constructor = d; }
45707 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45708 };
45709})();
45710var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45711 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45712 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45713 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45714 return c > 3 && r && Object.defineProperty(target, key, r), r;
45715};
45716
45717
45718
45719
45720var RowPositionUtils = /** @class */ (function (_super) {
45721 __extends(RowPositionUtils, _super);
45722 function RowPositionUtils() {
45723 return _super !== null && _super.apply(this, arguments) || this;
45724 }
45725 RowPositionUtils.prototype.getFirstRow = function () {
45726 var rowIndex = 0;
45727 var rowPinned;
45728 if (this.pinnedRowModel.getPinnedTopRowCount()) {
45729 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP;
45730 }
45731 else if (this.rowModel.getRowCount()) {
45732 rowPinned = null;
45733 rowIndex = this.paginationProxy.getPageFirstRow();
45734 }
45735 else if (this.pinnedRowModel.getPinnedBottomRowCount()) {
45736 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM;
45737 }
45738 return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };
45739 };
45740 RowPositionUtils.prototype.getLastRow = function () {
45741 var rowIndex;
45742 var rowPinned = null;
45743 var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();
45744 var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();
45745 if (pinnedBottomCount) {
45746 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM;
45747 rowIndex = pinnedBottomCount - 1;
45748 }
45749 else if (this.rowModel.getRowCount()) {
45750 rowPinned = null;
45751 rowIndex = this.paginationProxy.getPageLastRow();
45752 }
45753 else if (pinnedTopCount) {
45754 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP;
45755 rowIndex = pinnedTopCount - 1;
45756 }
45757 return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };
45758 };
45759 RowPositionUtils.prototype.getRowNode = function (gridRow) {
45760 switch (gridRow.rowPinned) {
45761 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
45762 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
45763 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
45764 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
45765 default:
45766 return this.rowModel.getRow(gridRow.rowIndex);
45767 }
45768 };
45769 RowPositionUtils.prototype.sameRow = function (rowA, rowB) {
45770 // if both missing
45771 if (!rowA && !rowB) {
45772 return true;
45773 }
45774 // if only one missing
45775 if ((rowA && !rowB) || (!rowA && rowB)) {
45776 return false;
45777 }
45778 // otherwise compare (use == to compare rowPinned because it can be null or undefined)
45779 return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;
45780 };
45781 // tests if this row selection is before the other row selection
45782 RowPositionUtils.prototype.before = function (rowA, rowB) {
45783 switch (rowA.rowPinned) {
45784 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
45785 // we we are floating top, and other isn't, then we are always before
45786 if (rowB.rowPinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP) {
45787 return true;
45788 }
45789 break;
45790 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
45791 // if we are floating bottom, and the other isn't, then we are never before
45792 if (rowB.rowPinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM) {
45793 return false;
45794 }
45795 break;
45796 default:
45797 // if we are not floating, but the other one is floating...
45798 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(rowB.rowPinned)) {
45799 return rowB.rowPinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP;
45800 }
45801 break;
45802 }
45803 return rowA.rowIndex < rowB.rowIndex;
45804 };
45805 __decorate([
45806 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
45807 ], RowPositionUtils.prototype, "rowModel", void 0);
45808 __decorate([
45809 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
45810 ], RowPositionUtils.prototype, "pinnedRowModel", void 0);
45811 __decorate([
45812 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
45813 ], RowPositionUtils.prototype, "paginationProxy", void 0);
45814 RowPositionUtils = __decorate([
45815 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowPositionUtils')
45816 ], RowPositionUtils);
45817 return RowPositionUtils;
45818}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
45819
45820
45821
45822/***/ }),
45823/* 207 */
45824/***/ (function(module, __webpack_exports__, __webpack_require__) {
45825
45826"use strict";
45827__webpack_require__.r(__webpack_exports__);
45828/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return CellPositionUtils; });
45829/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
45830/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
45831/**
45832 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45833 * @version v25.3.0
45834 * @link http://www.ag-grid.com/
45835 * @license MIT
45836 */
45837var __extends = (undefined && undefined.__extends) || (function () {
45838 var extendStatics = function (d, b) {
45839 extendStatics = Object.setPrototypeOf ||
45840 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45841 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45842 return extendStatics(d, b);
45843 };
45844 return function (d, b) {
45845 extendStatics(d, b);
45846 function __() { this.constructor = d; }
45847 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45848 };
45849})();
45850var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45851 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45852 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45853 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45854 return c > 3 && r && Object.defineProperty(target, key, r), r;
45855};
45856
45857
45858var CellPositionUtils = /** @class */ (function (_super) {
45859 __extends(CellPositionUtils, _super);
45860 function CellPositionUtils() {
45861 return _super !== null && _super.apply(this, arguments) || this;
45862 }
45863 CellPositionUtils.prototype.createId = function (cellPosition) {
45864 var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;
45865 return this.createIdFromValues(rowIndex, column, rowPinned);
45866 };
45867 CellPositionUtils.prototype.createIdFromValues = function (rowIndex, column, rowPinned) {
45868 return rowIndex + "." + (rowPinned == null ? 'null' : rowPinned) + "." + column.getId();
45869 };
45870 CellPositionUtils.prototype.equals = function (cellA, cellB) {
45871 var colsMatch = cellA.column === cellB.column;
45872 var floatingMatch = cellA.rowPinned === cellB.rowPinned;
45873 var indexMatch = cellA.rowIndex === cellB.rowIndex;
45874 return colsMatch && floatingMatch && indexMatch;
45875 };
45876 CellPositionUtils = __decorate([
45877 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('cellPositionUtils')
45878 ], CellPositionUtils);
45879 return CellPositionUtils;
45880}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
45881
45882
45883
45884/***/ }),
45885/* 208 */
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__, "PinnedRowModel", function() { return PinnedRowModel; });
45891/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
45892/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
45893/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
45894/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
45895/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);
45896/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
45897/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
45898/**
45899 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45900 * @version v25.3.0
45901 * @link http://www.ag-grid.com/
45902 * @license MIT
45903 */
45904var __extends = (undefined && undefined.__extends) || (function () {
45905 var extendStatics = function (d, b) {
45906 extendStatics = Object.setPrototypeOf ||
45907 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45908 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45909 return extendStatics(d, b);
45910 };
45911 return function (d, b) {
45912 extendStatics(d, b);
45913 function __() { this.constructor = d; }
45914 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45915 };
45916})();
45917var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45918 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45919 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45920 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45921 return c > 3 && r && Object.defineProperty(target, key, r), r;
45922};
45923
45924
45925
45926
45927
45928
45929
45930var PinnedRowModel = /** @class */ (function (_super) {
45931 __extends(PinnedRowModel, _super);
45932 function PinnedRowModel() {
45933 return _super !== null && _super.apply(this, arguments) || this;
45934 }
45935 PinnedRowModel.prototype.init = function () {
45936 this.setPinnedTopRowData(this.gridOptionsWrapper.getPinnedTopRowData());
45937 this.setPinnedBottomRowData(this.gridOptionsWrapper.getPinnedBottomRowData());
45938 };
45939 PinnedRowModel.prototype.isEmpty = function (floating) {
45940 var rows = floating === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;
45941 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(rows);
45942 };
45943 PinnedRowModel.prototype.isRowsToRender = function (floating) {
45944 return !this.isEmpty(floating);
45945 };
45946 PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {
45947 var rows = floating === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;
45948 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(rows)) {
45949 return 0; // this should never happen, just in case, 0 is graceful failure
45950 }
45951 for (var i = 0; i < rows.length; i++) {
45952 var rowNode = rows[i];
45953 var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;
45954 // only need to range check against the top pixel, as we are going through the list
45955 // in order, first row to hit the pixel wins
45956 if (rowTopPixel >= pixel) {
45957 return i;
45958 }
45959 }
45960 return rows.length - 1;
45961 };
45962 PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {
45963 this.pinnedTopRows = this.createNodesFromData(rowData, true);
45964 var event = {
45965 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_PINNED_ROW_DATA_CHANGED,
45966 api: this.gridApi,
45967 columnApi: this.columnApi
45968 };
45969 this.eventService.dispatchEvent(event);
45970 };
45971 PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {
45972 this.pinnedBottomRows = this.createNodesFromData(rowData, false);
45973 var event = {
45974 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_PINNED_ROW_DATA_CHANGED,
45975 api: this.gridApi,
45976 columnApi: this.columnApi
45977 };
45978 this.eventService.dispatchEvent(event);
45979 };
45980 PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {
45981 var _this = this;
45982 var rowNodes = [];
45983 if (allData) {
45984 var nextRowTop_1 = 0;
45985 allData.forEach(function (dataItem, index) {
45986 var rowNode = new _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
45987 _this.context.createBean(rowNode);
45988 rowNode.data = dataItem;
45989 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;
45990 rowNode.id = idPrefix + index;
45991 rowNode.rowPinned = isTop ? _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP : _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM;
45992 rowNode.setRowTop(nextRowTop_1);
45993 rowNode.setRowHeight(_this.gridOptionsWrapper.getRowHeightForNode(rowNode).height);
45994 rowNode.setRowIndex(index);
45995 nextRowTop_1 += rowNode.rowHeight;
45996 rowNodes.push(rowNode);
45997 });
45998 }
45999 return rowNodes;
46000 };
46001 PinnedRowModel.prototype.getPinnedTopRowData = function () {
46002 return this.pinnedTopRows;
46003 };
46004 PinnedRowModel.prototype.getPinnedBottomRowData = function () {
46005 return this.pinnedBottomRows;
46006 };
46007 PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {
46008 return this.getTotalHeight(this.pinnedTopRows);
46009 };
46010 PinnedRowModel.prototype.getPinnedTopRowCount = function () {
46011 return this.pinnedTopRows ? this.pinnedTopRows.length : 0;
46012 };
46013 PinnedRowModel.prototype.getPinnedBottomRowCount = function () {
46014 return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;
46015 };
46016 PinnedRowModel.prototype.getPinnedTopRow = function (index) {
46017 return this.pinnedTopRows[index];
46018 };
46019 PinnedRowModel.prototype.getPinnedBottomRow = function (index) {
46020 return this.pinnedBottomRows[index];
46021 };
46022 PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {
46023 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(this.pinnedTopRows)) {
46024 return;
46025 }
46026 this.pinnedTopRows.forEach(callback);
46027 };
46028 PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {
46029 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(this.pinnedBottomRows)) {
46030 return;
46031 }
46032 this.pinnedBottomRows.forEach(callback);
46033 };
46034 PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {
46035 return this.getTotalHeight(this.pinnedBottomRows);
46036 };
46037 PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {
46038 if (!rowNodes || rowNodes.length === 0) {
46039 return 0;
46040 }
46041 var lastNode = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["last"])(rowNodes);
46042 return lastNode.rowTop + lastNode.rowHeight;
46043 };
46044 __decorate([
46045 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
46046 ], PinnedRowModel.prototype, "columnApi", void 0);
46047 __decorate([
46048 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
46049 ], PinnedRowModel.prototype, "gridApi", void 0);
46050 __decorate([
46051 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
46052 ], PinnedRowModel.prototype, "init", null);
46053 PinnedRowModel = __decorate([
46054 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('pinnedRowModel')
46055 ], PinnedRowModel);
46056 return PinnedRowModel;
46057}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
46058
46059
46060
46061/***/ }),
46062/* 209 */
46063/***/ (function(module, __webpack_exports__, __webpack_require__) {
46064
46065"use strict";
46066__webpack_require__.r(__webpack_exports__);
46067/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoService", function() { return UndoRedoService; });
46068/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
46069/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
46070/* harmony import */ var _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(210);
46071/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
46072/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
46073/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);
46074/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);
46075/**
46076 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46077 * @version v25.3.0
46078 * @link http://www.ag-grid.com/
46079 * @license MIT
46080 */
46081var __extends = (undefined && undefined.__extends) || (function () {
46082 var extendStatics = function (d, b) {
46083 extendStatics = Object.setPrototypeOf ||
46084 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46085 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46086 return extendStatics(d, b);
46087 };
46088 return function (d, b) {
46089 extendStatics(d, b);
46090 function __() { this.constructor = d; }
46091 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46092 };
46093})();
46094var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46095 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46096 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46097 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46098 return c > 3 && r && Object.defineProperty(target, key, r), r;
46099};
46100
46101
46102
46103
46104
46105
46106
46107var UndoRedoService = /** @class */ (function (_super) {
46108 __extends(UndoRedoService, _super);
46109 function UndoRedoService() {
46110 var _this = _super !== null && _super.apply(this, arguments) || this;
46111 _this.cellValueChanges = [];
46112 _this.isCellEditing = false;
46113 _this.isRowEditing = false;
46114 _this.isPasting = false;
46115 _this.isFilling = false;
46116 _this.onCellValueChanged = function (event) {
46117 var shouldCaptureAction = _this.isCellEditing || _this.isRowEditing || _this.isPasting || _this.isFilling;
46118 if (!shouldCaptureAction) {
46119 return;
46120 }
46121 var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;
46122 var cellValueChange = {
46123 rowPinned: rowPinned,
46124 rowIndex: rowIndex,
46125 columnId: column.getColId(),
46126 newValue: value,
46127 oldValue: oldValue
46128 };
46129 _this.cellValueChanges.push(cellValueChange);
46130 };
46131 _this.clearStacks = function () {
46132 _this.undoStack.clear();
46133 _this.redoStack.clear();
46134 };
46135 return _this;
46136 }
46137 UndoRedoService.prototype.init = function () {
46138 if (!this.gridOptionsWrapper.isUndoRedoCellEditing()) {
46139 return;
46140 }
46141 var undoRedoLimit = this.gridOptionsWrapper.getUndoRedoCellEditingLimit();
46142 if (undoRedoLimit <= 0) {
46143 return;
46144 }
46145 this.undoStack = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoStack"](undoRedoLimit);
46146 this.redoStack = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoStack"](undoRedoLimit);
46147 this.addRowEditingListeners();
46148 this.addCellEditingListeners();
46149 this.addPasteListeners();
46150 this.addFillListeners();
46151 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);
46152 // undo / redo is restricted to actual editing so we clear the stacks when other operations are
46153 // performed that change the order of the row / cols.
46154 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.clearStacks);
46155 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);
46156 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_NEW_COLUMNS_LOADED, this.clearStacks);
46157 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_GROUP_OPENED, this.clearStacks);
46158 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);
46159 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_MOVED, this.clearStacks);
46160 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PINNED, this.clearStacks);
46161 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_VISIBLE, this.clearStacks);
46162 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_DRAG_END, this.clearStacks);
46163 };
46164 UndoRedoService.prototype.getCurrentUndoStackSize = function () {
46165 return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;
46166 };
46167 UndoRedoService.prototype.getCurrentRedoStackSize = function () {
46168 return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;
46169 };
46170 UndoRedoService.prototype.undo = function () {
46171 if (!this.undoStack) {
46172 return;
46173 }
46174 var undoAction = this.undoStack.pop();
46175 if (!undoAction || !undoAction.cellValueChanges) {
46176 return;
46177 }
46178 this.processAction(undoAction, function (cellValueChange) { return cellValueChange.oldValue; });
46179 if (undoAction instanceof _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["FillUndoRedoAction"]) {
46180 this.processRangeAndCellFocus(undoAction.cellValueChanges, undoAction.initialRange);
46181 }
46182 else {
46183 this.processRangeAndCellFocus(undoAction.cellValueChanges);
46184 }
46185 this.redoStack.push(undoAction);
46186 };
46187 UndoRedoService.prototype.redo = function () {
46188 if (!this.redoStack) {
46189 return;
46190 }
46191 var redoAction = this.redoStack.pop();
46192 if (!redoAction || !redoAction.cellValueChanges) {
46193 return;
46194 }
46195 this.processAction(redoAction, function (cellValueChange) { return cellValueChange.newValue; });
46196 if (redoAction instanceof _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["FillUndoRedoAction"]) {
46197 this.processRangeAndCellFocus(redoAction.cellValueChanges, redoAction.finalRange);
46198 }
46199 else {
46200 this.processRangeAndCellFocus(redoAction.cellValueChanges);
46201 }
46202 this.undoStack.push(redoAction);
46203 };
46204 UndoRedoService.prototype.processAction = function (action, valueExtractor) {
46205 var _this = this;
46206 action.cellValueChanges.forEach(function (cellValueChange) {
46207 var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;
46208 var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };
46209 var currentRow = _this.getRowNode(rowPosition);
46210 // checks if the row has been filtered out
46211 if (!currentRow.displayed) {
46212 return;
46213 }
46214 currentRow.setDataValue(columnId, valueExtractor(cellValueChange));
46215 });
46216 };
46217 UndoRedoService.prototype.processRangeAndCellFocus = function (cellValueChanges, range) {
46218 var lastFocusedCell;
46219 if (range) {
46220 var startRow = range.startRow;
46221 var endRow = range.endRow;
46222 lastFocusedCell = {
46223 rowPinned: startRow.rowPinned,
46224 rowIndex: startRow.rowIndex,
46225 columnId: range.startColumn.getColId()
46226 };
46227 this.setLastFocusedCell(lastFocusedCell);
46228 var cellRangeParams = {
46229 rowStartIndex: startRow.rowIndex,
46230 rowStartPinned: startRow.rowPinned,
46231 rowEndIndex: endRow.rowIndex,
46232 rowEndPinned: endRow.rowPinned,
46233 columnStart: range.startColumn,
46234 columns: range.columns
46235 };
46236 this.gridApi.addCellRange(cellRangeParams);
46237 return;
46238 }
46239 var cellValueChange = cellValueChanges[0];
46240 var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;
46241 var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };
46242 var row = this.getRowNode(rowPosition);
46243 lastFocusedCell = {
46244 rowPinned: cellValueChange.rowPinned,
46245 rowIndex: row.rowIndex,
46246 columnId: cellValueChange.columnId
46247 };
46248 this.setLastFocusedCell(lastFocusedCell);
46249 };
46250 UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell) {
46251 var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;
46252 this.gridApi.ensureIndexVisible(rowIndex);
46253 this.gridApi.ensureColumnVisible(columnId);
46254 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].RangeSelectionModule)) {
46255 this.gridApi.clearRangeSelection();
46256 }
46257 this.focusController.setFocusedCell(rowIndex, columnId, rowPinned, true);
46258 };
46259 UndoRedoService.prototype.addRowEditingListeners = function () {
46260 var _this = this;
46261 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STARTED, function () {
46262 _this.isRowEditing = true;
46263 });
46264 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STOPPED, function () {
46265 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
46266 _this.pushActionsToUndoStack(action);
46267 _this.isRowEditing = false;
46268 });
46269 };
46270 UndoRedoService.prototype.addCellEditingListeners = function () {
46271 var _this = this;
46272 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STARTED, function () {
46273 _this.isCellEditing = true;
46274 });
46275 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STOPPED, function () {
46276 _this.isCellEditing = false;
46277 var shouldPushAction = !_this.isRowEditing && !_this.isPasting && !_this.isFilling;
46278 if (shouldPushAction) {
46279 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
46280 _this.pushActionsToUndoStack(action);
46281 }
46282 });
46283 };
46284 UndoRedoService.prototype.addPasteListeners = function () {
46285 var _this = this;
46286 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PASTE_START, function () {
46287 _this.isPasting = true;
46288 });
46289 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PASTE_END, function () {
46290 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
46291 _this.pushActionsToUndoStack(action);
46292 _this.isPasting = false;
46293 });
46294 };
46295 UndoRedoService.prototype.addFillListeners = function () {
46296 var _this = this;
46297 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FILL_START, function () {
46298 _this.isFilling = true;
46299 });
46300 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FILL_END, function (event) {
46301 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["FillUndoRedoAction"](_this.cellValueChanges, event.initialRange, event.finalRange);
46302 _this.pushActionsToUndoStack(action);
46303 _this.isFilling = false;
46304 });
46305 };
46306 UndoRedoService.prototype.pushActionsToUndoStack = function (action) {
46307 this.undoStack.push(action);
46308 this.cellValueChanges = [];
46309 this.redoStack.clear();
46310 };
46311 UndoRedoService.prototype.getRowNode = function (gridRow) {
46312 switch (gridRow.rowPinned) {
46313 case _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP:
46314 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
46315 case _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM:
46316 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
46317 default:
46318 return this.rowModel.getRow(gridRow.rowIndex);
46319 }
46320 };
46321 __decorate([
46322 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
46323 ], UndoRedoService.prototype, "focusController", void 0);
46324 __decorate([
46325 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
46326 ], UndoRedoService.prototype, "gridApi", void 0);
46327 __decorate([
46328 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
46329 ], UndoRedoService.prototype, "rowModel", void 0);
46330 __decorate([
46331 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
46332 ], UndoRedoService.prototype, "pinnedRowModel", void 0);
46333 __decorate([
46334 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
46335 ], UndoRedoService.prototype, "init", null);
46336 UndoRedoService = __decorate([
46337 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('undoRedoService')
46338 ], UndoRedoService);
46339 return UndoRedoService;
46340}(_context_beanStub__WEBPACK_IMPORTED_MODULE_6__["BeanStub"]));
46341
46342
46343
46344/***/ }),
46345/* 210 */
46346/***/ (function(module, __webpack_exports__, __webpack_require__) {
46347
46348"use strict";
46349__webpack_require__.r(__webpack_exports__);
46350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoAction", function() { return UndoRedoAction; });
46351/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FillUndoRedoAction", function() { return FillUndoRedoAction; });
46352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoStack", function() { return UndoRedoStack; });
46353/**
46354 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46355 * @version v25.3.0
46356 * @link http://www.ag-grid.com/
46357 * @license MIT
46358 */
46359var __extends = (undefined && undefined.__extends) || (function () {
46360 var extendStatics = function (d, b) {
46361 extendStatics = Object.setPrototypeOf ||
46362 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46363 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46364 return extendStatics(d, b);
46365 };
46366 return function (d, b) {
46367 extendStatics(d, b);
46368 function __() { this.constructor = d; }
46369 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46370 };
46371})();
46372var UndoRedoAction = /** @class */ (function () {
46373 function UndoRedoAction(cellValueChanges) {
46374 this.cellValueChanges = cellValueChanges;
46375 }
46376 return UndoRedoAction;
46377}());
46378
46379var FillUndoRedoAction = /** @class */ (function (_super) {
46380 __extends(FillUndoRedoAction, _super);
46381 function FillUndoRedoAction(cellValueChanges, initialRange, finalRange) {
46382 var _this = _super.call(this, cellValueChanges) || this;
46383 _this.initialRange = initialRange;
46384 _this.finalRange = finalRange;
46385 return _this;
46386 }
46387 return FillUndoRedoAction;
46388}(UndoRedoAction));
46389
46390var UndoRedoStack = /** @class */ (function () {
46391 function UndoRedoStack(maxStackSize) {
46392 this.actionStack = [];
46393 this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;
46394 this.actionStack = new Array(this.maxStackSize);
46395 }
46396 UndoRedoStack.prototype.pop = function () {
46397 return this.actionStack.pop();
46398 };
46399 UndoRedoStack.prototype.push = function (item) {
46400 var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;
46401 if (!shouldAddActions) {
46402 return;
46403 }
46404 if (this.actionStack.length === this.maxStackSize) {
46405 this.actionStack.shift();
46406 }
46407 this.actionStack.push(item);
46408 };
46409 UndoRedoStack.prototype.clear = function () {
46410 this.actionStack = [];
46411 };
46412 UndoRedoStack.prototype.getCurrentStackSize = function () {
46413 return this.actionStack.length;
46414 };
46415 UndoRedoStack.DEFAULT_STACK_SIZE = 10;
46416 return UndoRedoStack;
46417}());
46418
46419
46420
46421/***/ }),
46422/* 211 */
46423/***/ (function(module, __webpack_exports__, __webpack_require__) {
46424
46425"use strict";
46426__webpack_require__.r(__webpack_exports__);
46427/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgStackComponentsRegistry", function() { return AgStackComponentsRegistry; });
46428/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
46429/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
46430/**
46431 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46432 * @version v25.3.0
46433 * @link http://www.ag-grid.com/
46434 * @license MIT
46435 */
46436var __extends = (undefined && undefined.__extends) || (function () {
46437 var extendStatics = function (d, b) {
46438 extendStatics = Object.setPrototypeOf ||
46439 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46440 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46441 return extendStatics(d, b);
46442 };
46443 return function (d, b) {
46444 extendStatics(d, b);
46445 function __() { this.constructor = d; }
46446 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46447 };
46448})();
46449var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46450 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46451 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46452 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46453 return c > 3 && r && Object.defineProperty(target, key, r), r;
46454};
46455
46456
46457var AgStackComponentsRegistry = /** @class */ (function (_super) {
46458 __extends(AgStackComponentsRegistry, _super);
46459 function AgStackComponentsRegistry() {
46460 var _this = _super !== null && _super.apply(this, arguments) || this;
46461 _this.componentsMappedByName = {};
46462 return _this;
46463 }
46464 AgStackComponentsRegistry.prototype.setupComponents = function (components) {
46465 var _this = this;
46466 if (components) {
46467 components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });
46468 }
46469 };
46470 AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {
46471 // get name of the class as a string
46472 // let className = getNameOfClass(ComponentClass);
46473 // insert a dash after every capital letter
46474 // let classEscaped = className.replace(/([A-Z])/g, "-$1").toLowerCase();
46475 var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
46476 // put all to upper case
46477 var classUpperCase = classEscaped.toUpperCase();
46478 // finally store
46479 this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;
46480 };
46481 AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {
46482 return this.componentsMappedByName[htmlTag];
46483 };
46484 AgStackComponentsRegistry = __decorate([
46485 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('agStackComponentsRegistry')
46486 ], AgStackComponentsRegistry);
46487 return AgStackComponentsRegistry;
46488}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
46489
46490
46491
46492/***/ }),
46493/* 212 */
46494/***/ (function(module, __webpack_exports__, __webpack_require__) {
46495
46496"use strict";
46497__webpack_require__.r(__webpack_exports__);
46498/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return HeaderPositionUtils; });
46499/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
46500/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
46501/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
46502/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(113);
46503/**
46504 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46505 * @version v25.3.0
46506 * @link http://www.ag-grid.com/
46507 * @license MIT
46508 */
46509var __extends = (undefined && undefined.__extends) || (function () {
46510 var extendStatics = function (d, b) {
46511 extendStatics = Object.setPrototypeOf ||
46512 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46513 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46514 return extendStatics(d, b);
46515 };
46516 return function (d, b) {
46517 extendStatics(d, b);
46518 function __() { this.constructor = d; }
46519 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46520 };
46521})();
46522var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46523 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46524 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46525 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46526 return c > 3 && r && Object.defineProperty(target, key, r), r;
46527};
46528
46529
46530
46531
46532var HeaderPositionUtils = /** @class */ (function (_super) {
46533 __extends(HeaderPositionUtils, _super);
46534 function HeaderPositionUtils() {
46535 return _super !== null && _super.apply(this, arguments) || this;
46536 }
46537 HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {
46538 var nextColumn;
46539 var getGroupMethod;
46540 var getColMethod;
46541 if (focusedHeader.column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
46542 getGroupMethod = "getDisplayedGroup" + direction;
46543 nextColumn = this.columnController[getGroupMethod](focusedHeader.column);
46544 }
46545 else {
46546 getColMethod = "getDisplayedCol" + direction;
46547 nextColumn = this.columnController[getColMethod](focusedHeader.column);
46548 }
46549 if (nextColumn) {
46550 return {
46551 column: nextColumn,
46552 headerRowIndex: focusedHeader.headerRowIndex
46553 };
46554 }
46555 };
46556 HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {
46557 var displayedColumns = this.columnController.getAllDisplayedColumns();
46558 var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];
46559 if (!column) {
46560 return;
46561 }
46562 var childContainer = this.headerNavigationService.getHeaderContainer(column.getPinned());
46563 var headerRowComp = childContainer.getRowComps()[level];
46564 var type = headerRowComp && headerRowComp.getType();
46565 if (type == _headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
46566 var columnGroup = this.columnController.getColumnGroupAtLevel(column, level);
46567 return {
46568 headerRowIndex: level,
46569 column: columnGroup
46570 };
46571 }
46572 return {
46573 headerRowIndex: !headerRowComp ? -1 : level,
46574 column: column
46575 };
46576 };
46577 __decorate([
46578 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
46579 ], HeaderPositionUtils.prototype, "columnController", void 0);
46580 __decorate([
46581 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
46582 ], HeaderPositionUtils.prototype, "headerNavigationService", void 0);
46583 HeaderPositionUtils = __decorate([
46584 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('headerPositionUtils')
46585 ], HeaderPositionUtils);
46586 return HeaderPositionUtils;
46587}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
46588
46589
46590
46591/***/ }),
46592/* 213 */
46593/***/ (function(module, __webpack_exports__, __webpack_require__) {
46594
46595"use strict";
46596__webpack_require__.r(__webpack_exports__);
46597/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnDefFactory", function() { return ColumnDefFactory; });
46598/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
46599/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
46600/**
46601 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46602 * @version v25.3.0
46603 * @link http://www.ag-grid.com/
46604 * @license MIT
46605 */
46606var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46607 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46608 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46609 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46610 return c > 3 && r && Object.defineProperty(target, key, r), r;
46611};
46612
46613
46614var ColumnDefFactory = /** @class */ (function () {
46615 function ColumnDefFactory() {
46616 }
46617 ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {
46618 var _this = this;
46619 var res = [];
46620 var colGroupDefs = {};
46621 cols.forEach(function (col) {
46622 var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);
46623 var addToResult = true;
46624 var childDef = colDef;
46625 var pointer = col.getOriginalParent();
46626 while (pointer) {
46627 var parentDef = null;
46628 // we don't include padding groups, as the column groups provided
46629 // by application didn't have these. the whole point of padding groups
46630 // is to balance the column tree that the user provided.
46631 if (pointer.isPadding()) {
46632 pointer = pointer.getOriginalParent();
46633 continue;
46634 }
46635 // if colDef for this group already exists, use it
46636 var existingParentDef = colGroupDefs[pointer.getGroupId()];
46637 if (existingParentDef) {
46638 existingParentDef.children.push(childDef);
46639 // if we added to result, it would be the second time we did it
46640 addToResult = false;
46641 // we don't want to continue up the tree, as it has already been
46642 // done for this group
46643 break;
46644 }
46645 parentDef = _this.createDefFromGroup(pointer);
46646 if (parentDef) {
46647 parentDef.children = [childDef];
46648 colGroupDefs[parentDef.groupId] = parentDef;
46649 childDef = parentDef;
46650 pointer = pointer.getOriginalParent();
46651 }
46652 }
46653 if (addToResult) {
46654 res.push(childDef);
46655 }
46656 });
46657 return res;
46658 };
46659 ColumnDefFactory.prototype.createDefFromGroup = function (group) {
46660 var defCloned = Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["deepCloneDefinition"])(group.getColGroupDef(), ['children']);
46661 if (defCloned) {
46662 defCloned.groupId = group.getGroupId();
46663 }
46664 return defCloned;
46665 };
46666 ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {
46667 var colDefCloned = Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["deepCloneDefinition"])(col.getColDef());
46668 colDefCloned.colId = col.getColId();
46669 colDefCloned.width = col.getActualWidth();
46670 colDefCloned.rowGroup = col.isRowGroupActive();
46671 colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;
46672 colDefCloned.pivot = col.isPivotActive();
46673 colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;
46674 colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;
46675 colDefCloned.hide = col.isVisible() ? undefined : true;
46676 colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;
46677 colDefCloned.sort = col.getSort() ? col.getSort() : null;
46678 colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;
46679 return colDefCloned;
46680 };
46681 ColumnDefFactory = __decorate([
46682 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnDefFactory')
46683 ], ColumnDefFactory);
46684 return ColumnDefFactory;
46685}());
46686
46687
46688
46689/***/ }),
46690/* 214 */
46691/***/ (function(module, __webpack_exports__, __webpack_require__) {
46692
46693"use strict";
46694__webpack_require__.r(__webpack_exports__);
46695/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowCssClassCalculator", function() { return RowCssClassCalculator; });
46696/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
46697/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
46698/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
46699/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
46700/**
46701 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46702 * @version v25.3.0
46703 * @link http://www.ag-grid.com/
46704 * @license MIT
46705 */
46706var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46707 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46708 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46709 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46710 return c > 3 && r && Object.defineProperty(target, key, r), r;
46711};
46712
46713
46714
46715
46716/**
46717 * Common logic for RowComp and AutoHeightCalculator
46718 */
46719var RowCssClassCalculator = /** @class */ (function () {
46720 function RowCssClassCalculator() {
46721 }
46722 RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {
46723 var classes = [];
46724 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(params.extraCssClass)) {
46725 classes.push(params.extraCssClass);
46726 }
46727 classes.push('ag-row');
46728 classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');
46729 if (params.fadeRowIn) {
46730 classes.push('ag-opacity-zero');
46731 }
46732 classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');
46733 if (params.rowNode.isRowPinned()) {
46734 classes.push('ag-row-pinned');
46735 }
46736 if (params.rowNode.isSelected()) {
46737 classes.push('ag-row-selected');
46738 }
46739 if (params.rowNode.footer) {
46740 classes.push('ag-row-footer');
46741 }
46742 classes.push('ag-row-level-' + params.rowLevel);
46743 if (params.rowNode.stub) {
46744 classes.push('ag-row-loading');
46745 }
46746 if (params.fullWidthRow) {
46747 classes.push('ag-full-width-row');
46748 }
46749 if (params.expandable) {
46750 classes.push('ag-row-group');
46751 classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');
46752 }
46753 if (params.rowNode.dragging) {
46754 classes.push('ag-row-dragging');
46755 }
46756 Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["pushAll"])(classes, this.processClassesFromGridOptions(params.rowNode, params.scope));
46757 Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["pushAll"])(classes, this.preProcessRowClassRules(params.rowNode, params.scope));
46758 // we use absolute position unless we are doing print layout
46759 classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');
46760 if (params.firstRowOnPage) {
46761 classes.push('ag-row-first');
46762 }
46763 if (params.lastRowOnPage) {
46764 classes.push('ag-row-last');
46765 }
46766 if (params.fullWidthRow) {
46767 if (params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_LEFT) {
46768 classes.push('ag-cell-last-left-pinned');
46769 }
46770 if (params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_RIGHT) {
46771 classes.push('ag-cell-first-right-pinned');
46772 }
46773 }
46774 return classes;
46775 };
46776 RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode, scope) {
46777 var res = [];
46778 var process = function (rowCls) {
46779 if (typeof rowCls === 'string') {
46780 res.push(rowCls);
46781 }
46782 else if (Array.isArray(rowCls)) {
46783 rowCls.forEach(function (e) { return res.push(e); });
46784 }
46785 };
46786 // part 1 - rowClass
46787 var rowClass = this.gridOptionsWrapper.getRowClass();
46788 if (rowClass) {
46789 if (typeof rowClass === 'function') {
46790 console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');
46791 return [];
46792 }
46793 process(rowClass);
46794 }
46795 // part 2 - rowClassFunc
46796 var rowClassFunc = this.gridOptionsWrapper.getRowClassFunc();
46797 if (rowClassFunc) {
46798 var params = {
46799 data: rowNode.data,
46800 node: rowNode,
46801 rowIndex: rowNode.rowIndex,
46802 $scope: scope,
46803 api: this.gridOptionsWrapper.getApi(),
46804 columnApi: this.gridOptionsWrapper.getColumnApi(),
46805 context: this.gridOptionsWrapper.getContext()
46806 };
46807 var rowClassFuncResult = rowClassFunc(params);
46808 process(rowClassFuncResult);
46809 }
46810 return res;
46811 };
46812 RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode, scope) {
46813 var res = [];
46814 this.processRowClassRules(rowNode, scope, function (className) {
46815 res.push(className);
46816 }, function (className) {
46817 // not catered for, if creating, no need
46818 // to remove class as it was never there
46819 });
46820 return res;
46821 };
46822 RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, scope, onApplicableClass, onNotApplicableClass) {
46823 var rowClassParams = {
46824 data: rowNode.data,
46825 node: rowNode,
46826 rowIndex: rowNode.rowIndex,
46827 api: this.gridOptionsWrapper.getApi(),
46828 columnApi: this.gridOptionsWrapper.getColumnApi(),
46829 $scope: scope,
46830 context: this.gridOptionsWrapper.getContext()
46831 };
46832 this.stylingService.processClassRules(this.gridOptionsWrapper.rowClassRules(), rowClassParams, onApplicableClass, onNotApplicableClass);
46833 };
46834 RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {
46835 if (rowNode.group) {
46836 return rowNode.level;
46837 }
46838 // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item
46839 return rowNode.parent ? (rowNode.parent.level + 1) : 0;
46840 };
46841 __decorate([
46842 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('stylingService')
46843 ], RowCssClassCalculator.prototype, "stylingService", void 0);
46844 __decorate([
46845 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
46846 ], RowCssClassCalculator.prototype, "gridOptionsWrapper", void 0);
46847 RowCssClassCalculator = __decorate([
46848 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('rowCssClassCalculator')
46849 ], RowCssClassCalculator);
46850 return RowCssClassCalculator;
46851}());
46852
46853
46854
46855/***/ }),
46856/* 215 */
46857/***/ (function(module, __webpack_exports__, __webpack_require__) {
46858
46859"use strict";
46860__webpack_require__.r(__webpack_exports__);
46861/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return RowNodeBlockLoader; });
46862/* harmony import */ var _rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(216);
46863/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
46864/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
46865/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
46866/**
46867 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46868 * @version v25.3.0
46869 * @link http://www.ag-grid.com/
46870 * @license MIT
46871 */
46872var __extends = (undefined && undefined.__extends) || (function () {
46873 var extendStatics = function (d, b) {
46874 extendStatics = Object.setPrototypeOf ||
46875 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46876 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46877 return extendStatics(d, b);
46878 };
46879 return function (d, b) {
46880 extendStatics(d, b);
46881 function __() { this.constructor = d; }
46882 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46883 };
46884})();
46885var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46886 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46887 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46888 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
46889 return c > 3 && r && Object.defineProperty(target, key, r), r;
46890};
46891var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
46892 return function (target, key) { decorator(target, key, paramIndex); }
46893};
46894
46895
46896
46897
46898var RowNodeBlockLoader = /** @class */ (function (_super) {
46899 __extends(RowNodeBlockLoader, _super);
46900 function RowNodeBlockLoader() {
46901 var _this = _super !== null && _super.apply(this, arguments) || this;
46902 _this.activeBlockLoadsCount = 0;
46903 _this.blocks = [];
46904 _this.active = true;
46905 return _this;
46906 }
46907 RowNodeBlockLoader_1 = RowNodeBlockLoader;
46908 RowNodeBlockLoader.prototype.postConstruct = function () {
46909 this.maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();
46910 var blockLoadDebounceMillis = this.gridOptionsWrapper.getBlockLoadDebounceMillis();
46911 if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {
46912 this.checkBlockToLoadDebounce = _utils__WEBPACK_IMPORTED_MODULE_3__["_"].debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);
46913 }
46914 };
46915 RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {
46916 this.logger = loggerFactory.create('RowNodeBlockLoader');
46917 };
46918 RowNodeBlockLoader.prototype.addBlock = function (block) {
46919 this.blocks.push(block);
46920 // note that we do not remove this listener when removing the block. this is because the
46921 // cache can get destroyed (and containing blocks) when a block is loading. however the loading block
46922 // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.
46923 block.addEventListener(_rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"].EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));
46924 this.checkBlockToLoad();
46925 };
46926 RowNodeBlockLoader.prototype.removeBlock = function (block) {
46927 _utils__WEBPACK_IMPORTED_MODULE_3__["_"].removeFromArray(this.blocks, block);
46928 };
46929 RowNodeBlockLoader.prototype.destroy = function () {
46930 _super.prototype.destroy.call(this);
46931 this.active = false;
46932 };
46933 RowNodeBlockLoader.prototype.loadComplete = function () {
46934 this.activeBlockLoadsCount--;
46935 this.checkBlockToLoad();
46936 if (this.activeBlockLoadsCount == 0) {
46937 this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });
46938 }
46939 };
46940 RowNodeBlockLoader.prototype.checkBlockToLoad = function () {
46941 if (this.checkBlockToLoadDebounce) {
46942 this.checkBlockToLoadDebounce();
46943 }
46944 else {
46945 this.performCheckBlocksToLoad();
46946 }
46947 };
46948 RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {
46949 if (!this.active) {
46950 return;
46951 }
46952 this.printCacheStatus();
46953 if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {
46954 this.logger.log("checkBlockToLoad: max loads exceeded");
46955 return;
46956 }
46957 var blockToLoad = null;
46958 this.blocks.forEach(function (block) {
46959 if (block.getState() === _rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"].STATE_WAITING_TO_LOAD) {
46960 blockToLoad = block;
46961 }
46962 });
46963 if (blockToLoad) {
46964 blockToLoad.load();
46965 this.activeBlockLoadsCount++;
46966 this.printCacheStatus();
46967 }
46968 };
46969 RowNodeBlockLoader.prototype.getBlockState = function () {
46970 var result = {};
46971 this.blocks.forEach(function (block) {
46972 var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;
46973 result[id] = state;
46974 });
46975 return result;
46976 };
46977 RowNodeBlockLoader.prototype.printCacheStatus = function () {
46978 if (this.logger.isLogging()) {
46979 this.logger.log("printCacheStatus: activePageLoadsCount = " + this.activeBlockLoadsCount + ","
46980 + (" blocks = " + JSON.stringify(this.getBlockState())));
46981 }
46982 };
46983 RowNodeBlockLoader.prototype.isLoading = function () {
46984 return this.activeBlockLoadsCount > 0;
46985 };
46986 var RowNodeBlockLoader_1;
46987 RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';
46988 __decorate([
46989 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
46990 ], RowNodeBlockLoader.prototype, "postConstruct", null);
46991 __decorate([
46992 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('loggerFactory'))
46993 ], RowNodeBlockLoader.prototype, "setBeans", null);
46994 RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate([
46995 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowNodeBlockLoader')
46996 ], RowNodeBlockLoader);
46997 return RowNodeBlockLoader;
46998}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
46999
47000
47001
47002/***/ }),
47003/* 216 */
47004/***/ (function(module, __webpack_exports__, __webpack_require__) {
47005
47006"use strict";
47007__webpack_require__.r(__webpack_exports__);
47008/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return RowNodeBlock; });
47009/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
47010/**
47011 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47012 * @version v25.3.0
47013 * @link http://www.ag-grid.com/
47014 * @license MIT
47015 */
47016var __extends = (undefined && undefined.__extends) || (function () {
47017 var extendStatics = function (d, b) {
47018 extendStatics = Object.setPrototypeOf ||
47019 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47020 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47021 return extendStatics(d, b);
47022 };
47023 return function (d, b) {
47024 extendStatics(d, b);
47025 function __() { this.constructor = d; }
47026 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47027 };
47028})();
47029
47030var RowNodeBlock = /** @class */ (function (_super) {
47031 __extends(RowNodeBlock, _super);
47032 function RowNodeBlock(id) {
47033 var _this = _super.call(this) || this;
47034 _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;
47035 _this.version = 0;
47036 _this.id = id;
47037 return _this;
47038 }
47039 RowNodeBlock.prototype.getId = function () {
47040 return this.id;
47041 };
47042 RowNodeBlock.prototype.load = function () {
47043 this.state = RowNodeBlock.STATE_LOADING;
47044 this.loadFromDatasource();
47045 };
47046 RowNodeBlock.prototype.getVersion = function () {
47047 return this.version;
47048 };
47049 RowNodeBlock.prototype.setStateWaitingToLoad = function () {
47050 // in case any current loads in progress, this will have their results ignored
47051 this.version++;
47052 this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;
47053 };
47054 RowNodeBlock.prototype.getState = function () {
47055 return this.state;
47056 };
47057 RowNodeBlock.prototype.pageLoadFailed = function (version) {
47058 var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);
47059 if (requestMostRecentAndLive) {
47060 this.state = RowNodeBlock.STATE_FAILED;
47061 this.processServerFail();
47062 }
47063 this.dispatchLoadCompleted(false);
47064 };
47065 RowNodeBlock.prototype.success = function (version, params) {
47066 this.successCommon(version, params);
47067 };
47068 RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {
47069 this.successCommon(version, { rowData: rows, rowCount: lastRow });
47070 };
47071 RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {
47072 // thisIsMostRecentRequest - if block was refreshed, then another request
47073 // could of been sent after this one.
47074 var thisIsMostRecentRequest = version === this.version;
47075 // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed
47076 // and new blocks created. so data loads of old blocks are discarded.
47077 var weAreNotDestroyed = this.isAlive();
47078 return thisIsMostRecentRequest && weAreNotDestroyed;
47079 };
47080 RowNodeBlock.prototype.successCommon = function (version, params) {
47081 // need to dispatch load complete before processing the data, as PaginationComp checks
47082 // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to
47083 // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)
47084 this.dispatchLoadCompleted();
47085 var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);
47086 if (requestMostRecentAndLive) {
47087 this.state = RowNodeBlock.STATE_LOADED;
47088 this.processServerResult(params);
47089 }
47090 };
47091 RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {
47092 if (success === void 0) { success = true; }
47093 // we fire event regardless of processing data or now, as we want
47094 // the concurrentLoadRequests count to be reduced in BlockLoader
47095 var event = {
47096 type: RowNodeBlock.EVENT_LOAD_COMPLETE,
47097 success: success,
47098 block: this
47099 };
47100 this.dispatchEvent(event);
47101 };
47102 RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';
47103 RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';
47104 RowNodeBlock.STATE_LOADING = 'loading';
47105 RowNodeBlock.STATE_LOADED = 'loaded';
47106 RowNodeBlock.STATE_FAILED = 'failed';
47107 return RowNodeBlock;
47108}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
47109
47110
47111
47112/***/ }),
47113/* 217 */
47114/***/ (function(module, __webpack_exports__, __webpack_require__) {
47115
47116"use strict";
47117__webpack_require__.r(__webpack_exports__);
47118/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return RowNodeSorter; });
47119/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
47120/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
47121/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
47122/**
47123 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47124 * @version v25.3.0
47125 * @link http://www.ag-grid.com/
47126 * @license MIT
47127 */
47128var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47129 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47130 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47131 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
47132 return c > 3 && r && Object.defineProperty(target, key, r), r;
47133};
47134
47135
47136
47137// this logic is used by both SSRM and CSRM
47138var RowNodeSorter = /** @class */ (function () {
47139 function RowNodeSorter() {
47140 }
47141 RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {
47142 var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };
47143 var sortedRowNodes = rowNodes.map(mapper);
47144 sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));
47145 return sortedRowNodes.map(function (item) { return item.rowNode; });
47146 };
47147 RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {
47148 var nodeA = sortedNodeA.rowNode;
47149 var nodeB = sortedNodeB.rowNode;
47150 // Iterate columns, return the first that doesn't match
47151 for (var i = 0, len = sortOptions.length; i < len; i++) {
47152 var sortOption = sortOptions[i];
47153 // let compared = compare(nodeA, nodeB, sortOption.column, sortOption.inverter === -1);
47154 var isInverted = sortOption.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC;
47155 var valueA = this.getValue(nodeA, sortOption.column);
47156 var valueB = this.getValue(nodeB, sortOption.column);
47157 var comparatorResult = void 0;
47158 var providedComparator = sortOption.column.getColDef().comparator;
47159 if (providedComparator) {
47160 //if comparator provided, use it
47161 comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isInverted);
47162 }
47163 else {
47164 //otherwise do our own comparison
47165 comparatorResult = _utils__WEBPACK_IMPORTED_MODULE_1__["_"].defaultComparator(valueA, valueB, this.gridOptionsWrapper.isAccentedSort());
47166 }
47167 if (comparatorResult !== 0) {
47168 return sortOption.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC ? comparatorResult : comparatorResult * -1;
47169 }
47170 }
47171 // All matched, we make is so that the original sort order is kept:
47172 return sortedNodeA.currentPos - sortedNodeB.currentPos;
47173 };
47174 RowNodeSorter.prototype.getValue = function (nodeA, column) {
47175 return this.valueService.getValue(column, nodeA);
47176 };
47177 __decorate([
47178 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
47179 ], RowNodeSorter.prototype, "gridOptionsWrapper", void 0);
47180 __decorate([
47181 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
47182 ], RowNodeSorter.prototype, "valueService", void 0);
47183 RowNodeSorter = __decorate([
47184 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowNodeSorter')
47185 ], RowNodeSorter);
47186 return RowNodeSorter;
47187}());
47188
47189
47190
47191/***/ }),
47192/* 218 */
47193/***/ (function(module, __webpack_exports__, __webpack_require__) {
47194
47195"use strict";
47196__webpack_require__.r(__webpack_exports__);
47197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ControllersService", function() { return ControllersService; });
47198/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
47199/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
47200/**
47201 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47202 * @version v25.3.0
47203 * @link http://www.ag-grid.com/
47204 * @license MIT
47205 */
47206var __extends = (undefined && undefined.__extends) || (function () {
47207 var extendStatics = function (d, b) {
47208 extendStatics = Object.setPrototypeOf ||
47209 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47210 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47211 return extendStatics(d, b);
47212 };
47213 return function (d, b) {
47214 extendStatics(d, b);
47215 function __() { this.constructor = d; }
47216 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47217 };
47218})();
47219var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47220 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47221 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47222 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
47223 return c > 3 && r && Object.defineProperty(target, key, r), r;
47224};
47225
47226
47227var ControllersService = /** @class */ (function (_super) {
47228 __extends(ControllersService, _super);
47229 function ControllersService() {
47230 var _this = _super !== null && _super.apply(this, arguments) || this;
47231 _this.ready = false;
47232 _this.readyCallbacks = [];
47233 return _this;
47234 }
47235 ControllersService.prototype.checkReady = function () {
47236 this.ready =
47237 this.gridCompCon != null
47238 && this.gridBodyCon != null
47239 && this.centerRowContainerCon != null
47240 && this.leftRowContainerCon != null
47241 && this.rightRowContainerCon != null
47242 && this.bottomCenterRowContainerCon != null
47243 && this.bottomLeftRowContainerCon != null
47244 && this.bottomRightRowContainerCon != null
47245 && this.topCenterRowContainerCon != null
47246 && this.topLeftRowContainerCon != null
47247 && this.topRightRowContainerCon != null
47248 && this.fakeHScrollCon != null
47249 && this.headerRootComp != null;
47250 if (this.ready) {
47251 var p_1 = this.createReadyParams();
47252 this.readyCallbacks.forEach(function (c) { return c(p_1); });
47253 this.readyCallbacks.length = 0;
47254 }
47255 };
47256 ControllersService.prototype.whenReady = function (callback) {
47257 if (this.ready) {
47258 callback(this.createReadyParams());
47259 }
47260 else {
47261 this.readyCallbacks.push(callback);
47262 }
47263 };
47264 ControllersService.prototype.createReadyParams = function () {
47265 return {
47266 centerRowContainerCon: this.centerRowContainerCon,
47267 leftRowContainerCon: this.leftRowContainerCon,
47268 rightRowContainerCon: this.rightRowContainerCon,
47269 bottomCenterRowContainerCon: this.bottomCenterRowContainerCon,
47270 bottomLeftRowContainerCon: this.bottomLeftRowContainerCon,
47271 bottomRightRowContainerCon: this.bottomRightRowContainerCon,
47272 topCenterRowContainerCon: this.topCenterRowContainerCon,
47273 topLeftRowContainerCon: this.topLeftRowContainerCon,
47274 topRightRowContainerCon: this.topRightRowContainerCon,
47275 fakeHScrollCon: this.fakeHScrollCon,
47276 gridBodyCon: this.gridBodyCon,
47277 gridCompCon: this.gridCompCon,
47278 headerRootComp: this.headerRootComp,
47279 };
47280 };
47281 ControllersService.prototype.registerFakeHScrollCon = function (con) {
47282 this.fakeHScrollCon = con;
47283 this.checkReady();
47284 };
47285 ControllersService.prototype.registerHeaderRootComp = function (headerRootComp) {
47286 this.headerRootComp = headerRootComp;
47287 this.checkReady();
47288 };
47289 ControllersService.prototype.registerCenterRowContainerCon = function (con) {
47290 this.centerRowContainerCon = con;
47291 this.checkReady();
47292 };
47293 ControllersService.prototype.registerLeftRowContainerCon = function (con) {
47294 this.leftRowContainerCon = con;
47295 this.checkReady();
47296 };
47297 ControllersService.prototype.registerRightRowContainerCon = function (con) {
47298 this.rightRowContainerCon = con;
47299 this.checkReady();
47300 };
47301 ControllersService.prototype.registerTopCenterRowContainerCon = function (con) {
47302 this.topCenterRowContainerCon = con;
47303 this.checkReady();
47304 };
47305 ControllersService.prototype.registerTopLeftRowContainerCon = function (con) {
47306 this.topLeftRowContainerCon = con;
47307 this.checkReady();
47308 };
47309 ControllersService.prototype.registerTopRightRowContainerCon = function (con) {
47310 this.topRightRowContainerCon = con;
47311 this.checkReady();
47312 };
47313 ControllersService.prototype.registerBottomCenterRowContainerCon = function (con) {
47314 this.bottomCenterRowContainerCon = con;
47315 this.checkReady();
47316 };
47317 ControllersService.prototype.registerBottomLeftRowContainerCon = function (con) {
47318 this.bottomLeftRowContainerCon = con;
47319 this.checkReady();
47320 };
47321 ControllersService.prototype.registerBottomRightRowContainerCon = function (con) {
47322 this.bottomRightRowContainerCon = con;
47323 this.checkReady();
47324 };
47325 ControllersService.prototype.registerGridBodyController = function (con) {
47326 this.gridBodyCon = con;
47327 this.checkReady();
47328 };
47329 ControllersService.prototype.registerGridCompController = function (con) {
47330 this.gridCompCon = con;
47331 this.checkReady();
47332 };
47333 ControllersService.prototype.getFakeHScrollCon = function () {
47334 return this.fakeHScrollCon;
47335 };
47336 ControllersService.prototype.getHeaderRootComp = function () {
47337 return this.headerRootComp;
47338 };
47339 ControllersService.prototype.getGridCompController = function () {
47340 return this.gridCompCon;
47341 };
47342 ControllersService.prototype.getCenterRowContainerCon = function () {
47343 return this.centerRowContainerCon;
47344 };
47345 ControllersService.prototype.getTopCenterRowContainerCon = function () {
47346 return this.topCenterRowContainerCon;
47347 };
47348 ControllersService.prototype.getBottomCenterRowContainerCon = function () {
47349 return this.bottomCenterRowContainerCon;
47350 };
47351 ControllersService.prototype.getGridBodyController = function () {
47352 return this.gridBodyCon;
47353 };
47354 ControllersService = __decorate([
47355 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('controllersService')
47356 ], ControllersService);
47357 return ControllersService;
47358}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
47359
47360
47361
47362/***/ }),
47363/* 219 */
47364/***/ (function(module, __webpack_exports__, __webpack_require__) {
47365
47366"use strict";
47367__webpack_require__.r(__webpack_exports__);
47368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FakeHorizontalScrollComp", function() { return FakeHorizontalScrollComp; });
47369/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
47370/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
47371/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
47372/* harmony import */ var _fakeHorizontalScrollController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(220);
47373/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
47374/* harmony import */ var _centerWidthFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(133);
47375/**
47376 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47377 * @version v25.3.0
47378 * @link http://www.ag-grid.com/
47379 * @license MIT
47380 */
47381var __extends = (undefined && undefined.__extends) || (function () {
47382 var extendStatics = function (d, b) {
47383 extendStatics = Object.setPrototypeOf ||
47384 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47385 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47386 return extendStatics(d, b);
47387 };
47388 return function (d, b) {
47389 extendStatics(d, b);
47390 function __() { this.constructor = d; }
47391 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47392 };
47393})();
47394var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47395 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47396 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47397 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
47398 return c > 3 && r && Object.defineProperty(target, key, r), r;
47399};
47400
47401
47402
47403
47404
47405
47406var FakeHorizontalScrollComp = /** @class */ (function (_super) {
47407 __extends(FakeHorizontalScrollComp, _super);
47408 function FakeHorizontalScrollComp() {
47409 return _super.call(this, FakeHorizontalScrollComp.TEMPLATE) || this;
47410 }
47411 FakeHorizontalScrollComp.prototype.postConstruct = function () {
47412 var _this = this;
47413 var view = {
47414 setHeight: function (height) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedHeight"])(_this.getGui(), height); },
47415 setContainerHeight: function (height) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedHeight"])(_this.eContainer, height); },
47416 setViewportHeight: function (height) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedHeight"])(_this.eViewport, height); },
47417 setRightSpacerFixedWidth: function (width) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedWidth"])(_this.eRightSpacer, width); },
47418 setLeftSpacerFixedWidth: function (width) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedWidth"])(_this.eLeftSpacer, width); },
47419 setInvisibleStyles: function (isInvisible) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(_this.getGui(), 'ag-invisible-scrollbar', isInvisible); },
47420 includeLeftSpacerScrollerCss: function (cssClass, include) {
47421 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(_this.eLeftSpacer, cssClass, include);
47422 },
47423 includeRightSpacerScrollerCss: function (cssClass, include) {
47424 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(_this.eRightSpacer, cssClass, include);
47425 },
47426 };
47427 this.controller = this.createManagedBean(new _fakeHorizontalScrollController__WEBPACK_IMPORTED_MODULE_3__["FakeHorizontalScrollController"]());
47428 this.controller.setView(view, this.eViewport, this.eContainer);
47429 this.createManagedBean(new _centerWidthFeature__WEBPACK_IMPORTED_MODULE_5__["CenterWidthFeature"](function (width) { return _this.eContainer.style.width = width + "px"; }));
47430 };
47431 FakeHorizontalScrollComp.TEMPLATE = "<div class=\"ag-body-horizontal-scroll\" aria-hidden=\"true\">\n <div class=\"ag-horizontal-left-spacer\" ref=\"eLeftSpacer\"></div>\n <div class=\"ag-body-horizontal-scroll-viewport\" ref=\"eViewport\">\n <div class=\"ag-body-horizontal-scroll-container\" ref=\"eContainer\"></div>\n </div>\n <div class=\"ag-horizontal-right-spacer\" ref=\"eRightSpacer\"></div>\n </div>";
47432 __decorate([
47433 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLeftSpacer')
47434 ], FakeHorizontalScrollComp.prototype, "eLeftSpacer", void 0);
47435 __decorate([
47436 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eRightSpacer')
47437 ], FakeHorizontalScrollComp.prototype, "eRightSpacer", void 0);
47438 __decorate([
47439 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eViewport')
47440 ], FakeHorizontalScrollComp.prototype, "eViewport", void 0);
47441 __decorate([
47442 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
47443 ], FakeHorizontalScrollComp.prototype, "eContainer", void 0);
47444 __decorate([
47445 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
47446 ], FakeHorizontalScrollComp.prototype, "postConstruct", null);
47447 return FakeHorizontalScrollComp;
47448}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
47449
47450
47451
47452/***/ }),
47453/* 220 */
47454/***/ (function(module, __webpack_exports__, __webpack_require__) {
47455
47456"use strict";
47457__webpack_require__.r(__webpack_exports__);
47458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FakeHorizontalScrollController", function() { return FakeHorizontalScrollController; });
47459/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
47460/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34);
47461/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
47462/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
47463/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99);
47464/**
47465 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47466 * @version v25.3.0
47467 * @link http://www.ag-grid.com/
47468 * @license MIT
47469 */
47470var __extends = (undefined && undefined.__extends) || (function () {
47471 var extendStatics = function (d, b) {
47472 extendStatics = Object.setPrototypeOf ||
47473 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47474 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47475 return extendStatics(d, b);
47476 };
47477 return function (d, b) {
47478 extendStatics(d, b);
47479 function __() { this.constructor = d; }
47480 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47481 };
47482})();
47483var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47484 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47485 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47486 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
47487 return c > 3 && r && Object.defineProperty(target, key, r), r;
47488};
47489
47490
47491
47492
47493
47494var FakeHorizontalScrollController = /** @class */ (function (_super) {
47495 __extends(FakeHorizontalScrollController, _super);
47496 function FakeHorizontalScrollController() {
47497 return _super.call(this) || this;
47498 }
47499 FakeHorizontalScrollController.prototype.setView = function (view, eViewport, eContainer) {
47500 this.view = view;
47501 this.eViewport = eViewport;
47502 this.eContainer = eContainer;
47503 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
47504 this.onScrollVisibilityChanged();
47505 // When doing printing, this changes whether cols are pinned or not
47506 var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);
47507 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);
47508 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);
47509 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_4__["GridOptionsWrapper"].PROP_DOM_LAYOUT, spacerWidthsListener);
47510 this.setFakeHScrollSpacerWidths();
47511 this.controllersService.registerFakeHScrollCon(this);
47512 };
47513 FakeHorizontalScrollController.prototype.postConstruct = function () {
47514 this.enableRtl = this.gridOptionsWrapper.isEnableRtl();
47515 };
47516 FakeHorizontalScrollController.prototype.onScrollVisibilityChanged = function () {
47517 this.setScrollVisible();
47518 this.setFakeHScrollSpacerWidths();
47519 };
47520 FakeHorizontalScrollController.prototype.setFakeHScrollSpacerWidths = function () {
47521 var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();
47522 // we pad the right based on a) if cols are pinned to the right and
47523 // b) if v scroll is showing on the right (normal position of scroll)
47524 var rightSpacing = this.columnController.getDisplayedColumnsRightWidth();
47525 var scrollOnRight = !this.enableRtl && vScrollShowing;
47526 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
47527 if (scrollOnRight) {
47528 rightSpacing += scrollbarWidth;
47529 }
47530 this.view.setRightSpacerFixedWidth(rightSpacing);
47531 this.view.includeRightSpacerScrollerCss('ag-scroller-corner', rightSpacing <= scrollbarWidth);
47532 // we pad the left based on a) if cols are pinned to the left and
47533 // b) if v scroll is showing on the left (happens in LTR layout only)
47534 var leftSpacing = this.columnController.getDisplayedColumnsLeftWidth();
47535 var scrollOnLeft = this.enableRtl && vScrollShowing;
47536 if (scrollOnLeft) {
47537 leftSpacing += scrollbarWidth;
47538 }
47539 this.view.setLeftSpacerFixedWidth(leftSpacing);
47540 this.view.includeLeftSpacerScrollerCss('ag-scroller-corner', leftSpacing <= scrollbarWidth);
47541 };
47542 FakeHorizontalScrollController.prototype.setScrollVisible = function () {
47543 var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();
47544 var scrollbarInvisible = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isInvisibleScrollbar"])();
47545 var isSuppressHorizontalScroll = this.gridOptionsWrapper.isSuppressHorizontalScroll();
47546 var scrollbarWidth = hScrollShowing ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;
47547 var adjustedScrollbarWidth = (scrollbarWidth === 0 && scrollbarInvisible) ? 15 : scrollbarWidth;
47548 var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;
47549 var addIEPadding = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isBrowserIE"])() && hScrollShowing;
47550 this.view.setInvisibleStyles(scrollbarInvisible);
47551 this.view.setHeight(scrollContainerSize);
47552 // we have to add an extra pixel to the scroller viewport on IE because
47553 // if the container has the same size as the scrollbar, the scroll button won't work
47554 this.view.setViewportHeight(scrollContainerSize + (addIEPadding ? 1 : 0));
47555 this.view.setContainerHeight(scrollContainerSize);
47556 };
47557 FakeHorizontalScrollController.prototype.getViewport = function () {
47558 return this.eViewport;
47559 };
47560 FakeHorizontalScrollController.prototype.getContainer = function () {
47561 return this.eContainer;
47562 };
47563 __decorate([
47564 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('scrollVisibleService')
47565 ], FakeHorizontalScrollController.prototype, "scrollVisibleService", void 0);
47566 __decorate([
47567 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
47568 ], FakeHorizontalScrollController.prototype, "columnController", void 0);
47569 __decorate([
47570 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('controllersService')
47571 ], FakeHorizontalScrollController.prototype, "controllersService", void 0);
47572 __decorate([
47573 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
47574 ], FakeHorizontalScrollController.prototype, "postConstruct", null);
47575 return FakeHorizontalScrollController;
47576}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
47577
47578
47579
47580/***/ }),
47581/* 221 */
47582/***/ (function(module, __webpack_exports__, __webpack_require__) {
47583
47584"use strict";
47585__webpack_require__.r(__webpack_exports__);
47586/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedWidthService", function() { return PinnedWidthService; });
47587/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
47588/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
47589/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
47590/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
47591/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
47592/**
47593 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47594 * @version v25.3.0
47595 * @link http://www.ag-grid.com/
47596 * @license MIT
47597 */
47598var __extends = (undefined && undefined.__extends) || (function () {
47599 var extendStatics = function (d, b) {
47600 extendStatics = Object.setPrototypeOf ||
47601 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47602 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47603 return extendStatics(d, b);
47604 };
47605 return function (d, b) {
47606 extendStatics(d, b);
47607 function __() { this.constructor = d; }
47608 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47609 };
47610})();
47611var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47612 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47613 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47614 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
47615 return c > 3 && r && Object.defineProperty(target, key, r), r;
47616};
47617
47618
47619
47620
47621
47622var PinnedWidthService = /** @class */ (function (_super) {
47623 __extends(PinnedWidthService, _super);
47624 function PinnedWidthService() {
47625 return _super !== null && _super.apply(this, arguments) || this;
47626 }
47627 PinnedWidthService.prototype.postConstruct = function () {
47628 var listener = this.checkContainerWidths.bind(this);
47629 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
47630 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);
47631 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_DOM_LAYOUT, listener);
47632 };
47633 PinnedWidthService.prototype.checkContainerWidths = function () {
47634 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_PRINT;
47635 var newLeftWidth = printLayout ? 0 : this.columnController.getDisplayedColumnsLeftWidth();
47636 var newRightWidth = printLayout ? 0 : this.columnController.getDisplayedColumnsRightWidth();
47637 if (newLeftWidth != this.leftWidth) {
47638 this.leftWidth = newLeftWidth;
47639 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED });
47640 }
47641 if (newRightWidth != this.rightWidth) {
47642 this.rightWidth = newRightWidth;
47643 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED });
47644 }
47645 };
47646 PinnedWidthService.prototype.getPinnedRightWidth = function () {
47647 return this.rightWidth;
47648 };
47649 PinnedWidthService.prototype.getPinnedLeftWidth = function () {
47650 return this.leftWidth;
47651 };
47652 __decorate([
47653 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
47654 ], PinnedWidthService.prototype, "columnController", void 0);
47655 __decorate([
47656 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
47657 ], PinnedWidthService.prototype, "postConstruct", null);
47658 PinnedWidthService = __decorate([
47659 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('pinnedWidthService')
47660 ], PinnedWidthService);
47661 return PinnedWidthService;
47662}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
47663
47664
47665
47666/***/ }),
47667/* 222 */
47668/***/ (function(module, __webpack_exports__, __webpack_require__) {
47669
47670"use strict";
47671__webpack_require__.r(__webpack_exports__);
47672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerComp", function() { return RowContainerComp; });
47673/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
47674/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
47675/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
47676/* harmony import */ var _rowContainerController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(141);
47677/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
47678/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(99);
47679/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24);
47680/* harmony import */ var _rendering_row_rowComp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(223);
47681/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16);
47682/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
47683/**
47684 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47685 * @version v25.3.0
47686 * @link http://www.ag-grid.com/
47687 * @license MIT
47688 */
47689var __extends = (undefined && undefined.__extends) || (function () {
47690 var extendStatics = function (d, b) {
47691 extendStatics = Object.setPrototypeOf ||
47692 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47693 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47694 return extendStatics(d, b);
47695 };
47696 return function (d, b) {
47697 extendStatics(d, b);
47698 function __() { this.constructor = d; }
47699 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47700 };
47701})();
47702var __assign = (undefined && undefined.__assign) || function () {
47703 __assign = Object.assign || function(t) {
47704 for (var s, i = 1, n = arguments.length; i < n; i++) {
47705 s = arguments[i];
47706 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
47707 t[p] = s[p];
47708 }
47709 return t;
47710 };
47711 return __assign.apply(this, arguments);
47712};
47713var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47714 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47715 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47716 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
47717 return c > 3 && r && Object.defineProperty(target, key, r), r;
47718};
47719
47720
47721
47722
47723
47724
47725
47726
47727
47728
47729function templateFactory() {
47730 var name = _widgets_component__WEBPACK_IMPORTED_MODULE_0__["elementGettingCreated"].getAttribute('name');
47731 var containerClass = _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["ContainerCssClasses"].get(name);
47732 var viewportClass = _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["ViewportCssClasses"].get(name);
47733 var wrapperClass = _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["WrapperCssClasses"].get(name);
47734 var res;
47735 switch (name) {
47736 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].LEFT:
47737 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].RIGHT:
47738 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].FULL_WIDTH:
47739 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_LEFT:
47740 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_RIGHT:
47741 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_FULL_WITH:
47742 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_LEFT:
47743 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_RIGHT:
47744 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_FULL_WITH:
47745 res = /* html */
47746 "<div class=\"" + containerClass + "\" ref=\"eContainer\" role=\"presentation\" unselectable=\"on\"></div>";
47747 break;
47748 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].CENTER:
47749 res = /* html */
47750 "<div class=\"" + wrapperClass + "\" ref=\"eWrapper\" role=\"presentation\" unselectable=\"on\">\n <div class=\"" + viewportClass + "\" ref=\"eViewport\" role=\"presentation\">\n <div class=\"" + containerClass + "\" ref=\"eContainer\" role=\"rowgroup\" unselectable=\"on\"></div>\n </div>\n </div>";
47751 break;
47752 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_CENTER:
47753 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_CENTER:
47754 res = /* html */
47755 "<div class=\"" + viewportClass + "\" ref=\"eViewport\" role=\"presentation\" unselectable=\"on\">\n <div class=\"" + containerClass + "\" ref=\"eContainer\" role=\"presentation\" unselectable=\"on\"></div>\n </div>";
47756 break;
47757 default: return '';
47758 }
47759 return res;
47760}
47761var RowContainerComp = /** @class */ (function (_super) {
47762 __extends(RowContainerComp, _super);
47763 function RowContainerComp() {
47764 var _this = _super.call(this, templateFactory()) || this;
47765 _this.renderedRows = {};
47766 _this.name = _widgets_component__WEBPACK_IMPORTED_MODULE_0__["elementGettingCreated"].getAttribute('name');
47767 return _this;
47768 }
47769 RowContainerComp.prototype.postConstruct = function () {
47770 var _this = this;
47771 this.embedFullWidthRows = this.gridOptionsWrapper.isEmbedFullWidthRows();
47772 var view = {
47773 setViewportHeight: function (height) { return _this.eViewport.style.height = height; },
47774 };
47775 var con = this.createManagedBean(new _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerController"](this.name));
47776 con.setView(view, this.eContainer, this.eViewport, this.eWrapper);
47777 this.listenOnDomOrder();
47778 this.stopHScrollOnPinnedRows();
47779 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"].EVENT_DISPLAYED_ROWS_CHANGED, this.onDisplayedRowsChanged.bind(this));
47780 };
47781 RowContainerComp.prototype.forContainers = function (names, callback) {
47782 if (names.indexOf(this.name) >= 0) {
47783 callback();
47784 }
47785 };
47786 // when editing a pinned row, if the cell is half outside the scrollable area, the browser can
47787 // scroll the column into view. we do not want this, the pinned sections should never scroll.
47788 // so we listen to scrolls on these containers and reset the scroll if we find one.
47789 RowContainerComp.prototype.stopHScrollOnPinnedRows = function () {
47790 var _this = this;
47791 this.forContainers([_rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_CENTER, _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_CENTER], function () {
47792 var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };
47793 _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);
47794 });
47795 };
47796 RowContainerComp.prototype.listenOnDomOrder = function () {
47797 var _this = this;
47798 var listener = function () { return _this.domOrder = _this.gridOptionsWrapper.isEnsureDomOrder(); };
47799 this.gridOptionsWrapper.addEventListener(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_5__["GridOptionsWrapper"].PROP_DOM_LAYOUT, listener);
47800 listener();
47801 };
47802 // this is repeated inside the controller, need to remove where this one is called from
47803 RowContainerComp.prototype.getViewportElement = function () {
47804 return this.eViewport;
47805 };
47806 RowContainerComp.prototype.clearLastPlacedElement = function () {
47807 this.lastPlacedElement = null;
47808 };
47809 RowContainerComp.prototype.appendRow = function (element) {
47810 if (this.domOrder) {
47811 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["insertWithDomOrder"])(this.eContainer, element, this.lastPlacedElement);
47812 }
47813 else {
47814 this.eContainer.appendChild(element);
47815 }
47816 this.lastPlacedElement = element;
47817 };
47818 RowContainerComp.prototype.ensureDomOrder = function (eRow) {
47819 if (this.domOrder) {
47820 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["ensureDomOrder"])(this.eContainer, eRow, this.lastPlacedElement);
47821 this.lastPlacedElement = eRow;
47822 }
47823 };
47824 RowContainerComp.prototype.removeRow = function (eRow) {
47825 this.eContainer.removeChild(eRow);
47826 };
47827 RowContainerComp.prototype.onDisplayedRowsChanged = function () {
47828 var _this = this;
47829 var fullWithContainer = this.name === _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_FULL_WITH
47830 || this.name === _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_FULL_WITH
47831 || this.name === _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].FULL_WIDTH;
47832 var oldRows = __assign({}, this.renderedRows);
47833 this.renderedRows = {};
47834 this.clearLastPlacedElement();
47835 var processRow = function (rowCon) {
47836 var instanceId = rowCon.getInstanceId();
47837 var existingRowComp = oldRows[instanceId];
47838 if (existingRowComp) {
47839 _this.renderedRows[instanceId] = existingRowComp;
47840 delete oldRows[instanceId];
47841 _this.ensureDomOrder(existingRowComp.getGui());
47842 }
47843 else {
47844 var rowComp = _this.newRowComp(rowCon);
47845 _this.renderedRows[instanceId] = rowComp;
47846 _this.appendRow(rowComp.getGui());
47847 }
47848 };
47849 var doesRowMatch = function (rowCon) {
47850 var fullWidthController = rowCon.isFullWidth();
47851 var printLayout = _this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].DOM_LAYOUT_PRINT;
47852 var embedFW = _this.embedFullWidthRows || printLayout;
47853 var match = fullWithContainer ?
47854 !embedFW && fullWidthController
47855 : embedFW || !fullWidthController;
47856 return match;
47857 };
47858 var rowConsToRender = this.getRowCons();
47859 rowConsToRender.filter(doesRowMatch).forEach(processRow);
47860 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["getAllValuesInObject"])(oldRows).forEach(function (rowComp) { return _this.removeRow(rowComp.getGui()); });
47861 };
47862 RowContainerComp.prototype.getRowCons = function () {
47863 switch (this.name) {
47864 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_CENTER:
47865 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_LEFT:
47866 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_RIGHT:
47867 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_FULL_WITH:
47868 return this.rowRenderer.getTopRowCons();
47869 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_CENTER:
47870 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_LEFT:
47871 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_RIGHT:
47872 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_FULL_WITH:
47873 return this.rowRenderer.getBottomRowCons();
47874 default:
47875 return this.rowRenderer.getRowCons();
47876 }
47877 };
47878 RowContainerComp.prototype.newRowComp = function (rowCon) {
47879 var pinned;
47880 switch (this.name) {
47881 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_LEFT:
47882 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_LEFT:
47883 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].LEFT:
47884 pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].PINNED_LEFT;
47885 break;
47886 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_RIGHT:
47887 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_RIGHT:
47888 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].RIGHT:
47889 pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].PINNED_RIGHT;
47890 break;
47891 default:
47892 pinned = null;
47893 break;
47894 }
47895 var res = new _rendering_row_rowComp__WEBPACK_IMPORTED_MODULE_7__["RowComp"](rowCon, this, this.beans, pinned);
47896 return res;
47897 };
47898 __decorate([
47899 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowRenderer')
47900 ], RowContainerComp.prototype, "rowRenderer", void 0);
47901 __decorate([
47902 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("beans")
47903 ], RowContainerComp.prototype, "beans", void 0);
47904 __decorate([
47905 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eViewport')
47906 ], RowContainerComp.prototype, "eViewport", void 0);
47907 __decorate([
47908 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
47909 ], RowContainerComp.prototype, "eContainer", void 0);
47910 __decorate([
47911 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eWrapper')
47912 ], RowContainerComp.prototype, "eWrapper", void 0);
47913 __decorate([
47914 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
47915 ], RowContainerComp.prototype, "postConstruct", null);
47916 return RowContainerComp;
47917}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
47918
47919
47920
47921/***/ }),
47922/* 223 */
47923/***/ (function(module, __webpack_exports__, __webpack_require__) {
47924
47925"use strict";
47926__webpack_require__.r(__webpack_exports__);
47927/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowComp", function() { return RowComp; });
47928/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
47929/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
47930/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
47931/* harmony import */ var _rowController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(105);
47932/* harmony import */ var _cellComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(107);
47933/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
47934/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
47935/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18);
47936/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
47937/**
47938 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47939 * @version v25.3.0
47940 * @link http://www.ag-grid.com/
47941 * @license MIT
47942 */
47943var __extends = (undefined && undefined.__extends) || (function () {
47944 var extendStatics = function (d, b) {
47945 extendStatics = Object.setPrototypeOf ||
47946 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47947 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47948 return extendStatics(d, b);
47949 };
47950 return function (d, b) {
47951 extendStatics(d, b);
47952 function __() { this.constructor = d; }
47953 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47954 };
47955})();
47956
47957
47958
47959
47960
47961
47962
47963
47964
47965var RowComp = /** @class */ (function (_super) {
47966 __extends(RowComp, _super);
47967 function RowComp(controller, container, beans, pinned) {
47968 var _this = _super.call(this) || this;
47969 _this.cellComps = {};
47970 _this.container = container;
47971 _this.beans = beans;
47972 _this.rowNode = controller.getRowNode();
47973 _this.pinned = pinned;
47974 _this.controller = controller;
47975 var template = _this.createTemplate();
47976 _this.setTemplate(template);
47977 _this.afterRowAttached();
47978 switch (pinned) {
47979 case _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_LEFT:
47980 controller.setLeftRowComp(_this);
47981 break;
47982 case _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_RIGHT:
47983 controller.setRightRowComp(_this);
47984 break;
47985 default:
47986 if (controller.isFullWidth() && !beans.gridOptionsWrapper.isEmbedFullWidthRows()) {
47987 controller.setFullWidthRowComp(_this);
47988 }
47989 else {
47990 controller.setCenterRowComp(_this);
47991 }
47992 break;
47993 }
47994 if (controller.isFullWidth()) {
47995 _this.createFullWidthRowCell();
47996 }
47997 else {
47998 _this.onColumnChanged();
47999 _this.controller.refreshAriaLabel(_this.getGui(), !!_this.rowNode.isSelected());
48000 }
48001 return _this;
48002 }
48003 RowComp.prototype.createFullWidthRowCell = function () {
48004 var _this = this;
48005 var params = this.controller.createFullWidthParams(this.getGui(), this.pinned);
48006 var callback = function (cellRenderer) {
48007 if (_this.isAlive()) {
48008 var eGui = cellRenderer.getGui();
48009 _this.getGui().appendChild(eGui);
48010 if (_this.controller.getRowType() === _rowController__WEBPACK_IMPORTED_MODULE_3__["RowType"].FullWidthDetail) {
48011 _this.controller.setupDetailRowAutoHeight(eGui);
48012 }
48013 _this.setFullWidthRowComp(cellRenderer);
48014 }
48015 else {
48016 _this.beans.context.destroyBean(cellRenderer);
48017 }
48018 };
48019 // if doing master detail, it's possible we have a cached row comp from last time detail was displayed
48020 var cachedDetailComp = this.beans.detailRowCompCache.get(this.rowNode, this.pinned);
48021 if (cachedDetailComp) {
48022 callback(cachedDetailComp);
48023 }
48024 else {
48025 var cellRendererType = _rowController__WEBPACK_IMPORTED_MODULE_3__["FullWidthKeys"].get(this.controller.getRowType());
48026 var cellRendererName = _rowController__WEBPACK_IMPORTED_MODULE_3__["FullWidthRenderers"].get(this.controller.getRowType());
48027 var res = this.beans.userComponentFactory.newFullWidthCellRenderer(params, cellRendererType, cellRendererName);
48028 if (res) {
48029 res.then(callback);
48030 }
48031 else {
48032 var masterDetailModuleLoaded = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].MasterDetailModule);
48033 if (cellRendererName === 'agDetailCellRenderer' && !masterDetailModuleLoaded) {
48034 console.warn("AG Grid: cell renderer agDetailCellRenderer (for master detail) not found. Did you forget to include the master detail module?");
48035 }
48036 else {
48037 console.error("AG Grid: fullWidthCellRenderer " + cellRendererName + " not found");
48038 }
48039 }
48040 }
48041 // fixme - what to do here?
48042 // this.angular1Compile(eRow);
48043 };
48044 RowComp.prototype.onColumnChanged = function () {
48045 var _this = this;
48046 var cols = this.controller.getColsForRowComp(this.pinned);
48047 var cellsToRemove = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["assign"])({}, this.cellComps);
48048 cols.forEach(function (col) {
48049 var colId = col.getId();
48050 var existingCellComp = _this.cellComps[colId];
48051 // it's possible there is a Cell Comp with correct Id, but it's referring to
48052 // a different column instance. Happens a lot with pivot, as pivot col id's are
48053 // reused eg pivot_0, pivot_1 etc
48054 if (existingCellComp && existingCellComp.getColumn() !== col) {
48055 _this.destroyCells([existingCellComp]);
48056 existingCellComp = null;
48057 }
48058 if (existingCellComp == null) {
48059 _this.newCellComp(col);
48060 }
48061 else {
48062 cellsToRemove[colId] = null;
48063 }
48064 });
48065 var cellCompsToRemove = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(cellsToRemove)
48066 .filter(function (cellComp) { return cellComp ? _this.isCellEligibleToBeRemoved(cellComp) : false; });
48067 this.destroyCells(cellCompsToRemove);
48068 this.ensureDomOrder(cols);
48069 };
48070 RowComp.prototype.ensureDomOrder = function (cols) {
48071 var _this = this;
48072 if (!this.beans.gridOptionsWrapper.isEnsureDomOrder()) {
48073 return;
48074 }
48075 var elementsInOrder = [];
48076 cols.forEach(function (col) {
48077 var cellComp = _this.cellComps[col.getColId()];
48078 if (cellComp) {
48079 elementsInOrder.push(cellComp.getGui());
48080 }
48081 });
48082 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDomChildOrder"])(this.getGui(), elementsInOrder);
48083 };
48084 RowComp.prototype.isCellEligibleToBeRemoved = function (cellComp) {
48085 var REMOVE_CELL = true;
48086 var KEEP_CELL = false;
48087 // always remove the cell if it's not rendered or if it's in the wrong pinned location
48088 var column = cellComp.getColumn();
48089 if (column.getPinned() != this.pinned) {
48090 return REMOVE_CELL;
48091 }
48092 // we want to try and keep editing and focused cells
48093 var editing = cellComp.isEditing();
48094 var focused = this.beans.focusController.isCellFocused(cellComp.getCellPosition());
48095 var mightWantToKeepCell = editing || focused;
48096 if (mightWantToKeepCell) {
48097 var column_1 = cellComp.getColumn();
48098 var displayedColumns = this.beans.columnController.getAllDisplayedColumns();
48099 var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;
48100 return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;
48101 }
48102 return REMOVE_CELL;
48103 };
48104 RowComp.prototype.newCellComp = function (col) {
48105 var cellComp = new _cellComp__WEBPACK_IMPORTED_MODULE_4__["CellComp"](this.controller.getScope(), this.beans, col, this.rowNode, this.controller, false, this.controller.isPrintLayout(), this.getGui(), this.controller.isEditing());
48106 this.cellComps[col.getId()] = cellComp;
48107 this.getGui().appendChild(cellComp.getGui());
48108 };
48109 RowComp.prototype.getCellComp = function (id) {
48110 return this.cellComps[id];
48111 };
48112 RowComp.prototype.getCellCompSpanned = function (column) {
48113 var _this = this;
48114 var spanList = Object.keys(this.cellComps)
48115 .map(function (name) { return _this.cellComps[name]; })
48116 .filter(function (cmp) { return cmp && cmp.getColSpanningList().indexOf(column) !== -1; });
48117 return spanList.length ? spanList[0] : null;
48118 };
48119 RowComp.prototype.destroy = function () {
48120 _super.prototype.destroy.call(this);
48121 this.destroyAllCells();
48122 };
48123 RowComp.prototype.destroyAllCells = function () {
48124 var cellsToDestroy = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(this.cellComps).filter(function (cp) { return cp != null; });
48125 this.destroyCells(cellsToDestroy);
48126 };
48127 RowComp.prototype.getContainer = function () {
48128 return this.container;
48129 };
48130 RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {
48131 var _this = this;
48132 if (this.fullWidthRowComponent) {
48133 console.error('AG Grid - should not be setting fullWidthRowComponent twice');
48134 }
48135 this.fullWidthRowComponent = fullWidthRowComponent;
48136 this.addDestroyFunc(function () {
48137 _this.beans.detailRowCompCache.addOrDestroy(_this.rowNode, _this.pinned, fullWidthRowComponent);
48138 _this.fullWidthRowComponent = null;
48139 });
48140 };
48141 RowComp.prototype.getFullWidthRowComp = function () {
48142 return this.fullWidthRowComponent;
48143 };
48144 RowComp.prototype.createTemplate = function () {
48145 var con = this.controller;
48146 var templateParts = [];
48147 var rowHeight = this.rowNode.rowHeight;
48148 var rowClasses = con.getInitialRowClasses(this.pinned).join(' ');
48149 var rowIdSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(this.rowNode.id);
48150 var userRowStyles = con.preProcessStylesFromGridOptions();
48151 var businessKey = con.getRowBusinessKey();
48152 var businessKeySanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(businessKey);
48153 var rowTopStyle = con.getInitialRowTopStyle();
48154 var rowIdx = this.rowNode.getRowIndexString();
48155 var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();
48156 templateParts.push("<div");
48157 templateParts.push(" role=\"row\"");
48158 templateParts.push(" row-index=\"" + rowIdx + "\" aria-rowindex=\"" + (headerRowCount + this.rowNode.rowIndex + 1) + "\"");
48159 templateParts.push(rowIdSanitised ? " row-id=\"" + rowIdSanitised + "\"" : "");
48160 templateParts.push(businessKey ? " row-business-key=\"" + businessKeySanitised + "\"" : "");
48161 templateParts.push(" comp-id=\"" + this.getCompId() + "\"");
48162 templateParts.push(" class=\"" + rowClasses + "\"");
48163 if (con.isFullWidth()) {
48164 templateParts.push(" tabindex=\"-1\"");
48165 }
48166 if (this.beans.gridOptionsWrapper.isRowSelection()) {
48167 templateParts.push(" aria-selected=\"" + (this.rowNode.isSelected() ? 'true' : 'false') + "\"");
48168 }
48169 if (this.rowNode.group) {
48170 templateParts.push(" aria-expanded=" + (this.rowNode.expanded ? 'true' : 'false'));
48171 }
48172 templateParts.push(" style=\"height: " + rowHeight + "px; " + rowTopStyle + " " + userRowStyles + "\">");
48173 // add in the template for the cells
48174 templateParts.push("</div>");
48175 return templateParts.join('');
48176 };
48177 RowComp.prototype.afterRowAttached = function () {
48178 this.addDomData();
48179 var eRow = this.getGui();
48180 // adding hover functionality adds listener to this row, so we
48181 // do it lazily in an animation frame
48182 if (this.controller.isUseAnimationFrameForCreate()) {
48183 this.beans.taskQueue.createTask(this.controller.addHoverFunctionality.bind(this.controller, eRow), this.rowNode.rowIndex, 'createTasksP2');
48184 }
48185 else {
48186 this.controller.addHoverFunctionality(eRow);
48187 }
48188 this.controller.executeProcessRowPostCreateFunc();
48189 };
48190 RowComp.prototype.addDomData = function () {
48191 var _this = this;
48192 var gow = this.beans.gridOptionsWrapper;
48193 gow.setDomData(this.getGui(), _rowController__WEBPACK_IMPORTED_MODULE_3__["RowController"].DOM_DATA_KEY_RENDERED_ROW, this.controller);
48194 this.addDestroyFunc(function () { return gow.setDomData(_this.getGui(), _rowController__WEBPACK_IMPORTED_MODULE_3__["RowController"].DOM_DATA_KEY_RENDERED_ROW, null); });
48195 };
48196 RowComp.prototype.destroyCells = function (cellComps) {
48197 var _this = this;
48198 cellComps.forEach(function (cellComp) {
48199 // could be old reference, ie removed cell
48200 if (!cellComp) {
48201 return;
48202 }
48203 // check cellComp belongs in this container
48204 var id = cellComp.getColumn().getId();
48205 if (_this.cellComps[id] !== cellComp) {
48206 return;
48207 }
48208 cellComp.detach();
48209 cellComp.destroy();
48210 _this.cellComps[id] = null;
48211 });
48212 };
48213 RowComp.prototype.forEachCellComp = function (callback) {
48214 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.cellComps, function (key, cellComp) {
48215 if (!cellComp) {
48216 return;
48217 }
48218 callback(cellComp);
48219 });
48220 };
48221 return RowComp;
48222}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
48223
48224
48225
48226/***/ }),
48227/* 224 */
48228/***/ (function(module, __webpack_exports__, __webpack_require__) {
48229
48230"use strict";
48231__webpack_require__.r(__webpack_exports__);
48232/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithWebComponents", function() { return initialiseAgGridWithWebComponents; });
48233/* harmony import */ var _componentUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35);
48234/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98);
48235/**
48236 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48237 * @version v25.3.0
48238 * @link http://www.ag-grid.com/
48239 * @license MIT
48240 */
48241
48242
48243var registered = false;
48244function initialiseAgGridWithWebComponents() {
48245 console.warn('ag-grid: initialiseAgGridWithWebComponents is deprecated. Please use the ag-grid-webcomponent dependency instead. ');
48246 // only register to WebComponents once
48247 if (registered) {
48248 return;
48249 }
48250 registered = true;
48251 if (typeof document === 'undefined' || !document.registerElement) {
48252 console.error('AG Grid: unable to find document.registerElement() function, unable to initialise AG Grid as a Web Component');
48253 }
48254 // i don't think this type of extension is possible in TypeScript, so back to
48255 // plain Javascript to create this object
48256 var AgileGridProto = Object.create(HTMLElement.prototype);
48257 // wrap each property with a get and set method, so we can track when changes are done
48258 _componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].ALL_PROPERTIES.forEach(function (key) {
48259 Object.defineProperty(AgileGridProto, key, {
48260 set: function (v) {
48261 this.__agGridSetProperty(key, v);
48262 },
48263 get: function () {
48264 return this.__agGridGetProperty(key);
48265 },
48266 enumerable: true,
48267 configurable: true
48268 });
48269 });
48270 var agGridProtoNoType = AgileGridProto;
48271 agGridProtoNoType.__agGridSetProperty = function (key, value) {
48272 if (!this.__attributes) {
48273 this.__attributes = {};
48274 }
48275 this.__attributes[key] = value;
48276 // keeping this consistent with the ng2 onChange, so I can reuse the handling code
48277 var changeObject = {};
48278 changeObject[key] = { currentValue: value };
48279 this.onChange(changeObject);
48280 };
48281 agGridProtoNoType.onChange = function (changes) {
48282 if (this._initialised) {
48283 _componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].processOnChange(changes, this._gridOptions, this.api, this.columnApi);
48284 }
48285 };
48286 agGridProtoNoType.__agGridGetProperty = function (key) {
48287 if (!this.__attributes) {
48288 this.__attributes = {};
48289 }
48290 return this.__attributes[key];
48291 };
48292 agGridProtoNoType.setGridOptions = function (options) {
48293 var globalEventListener = this.globalEventListener.bind(this);
48294 this._gridOptions = _componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].copyAttributesToGridOptions(options, this);
48295 var gridParams = {
48296 globalEventListener: globalEventListener
48297 };
48298 this._agGrid = new _grid__WEBPACK_IMPORTED_MODULE_1__["Grid"](this, this._gridOptions, gridParams);
48299 this.api = options.api;
48300 this.columnApi = options.columnApi;
48301 this._initialised = true;
48302 };
48303 // copies all the attributes into this object
48304 agGridProtoNoType.createdCallback = function () {
48305 for (var i = 0; i < this.attributes.length; i++) {
48306 var attribute = this.attributes[i];
48307 this.setPropertyFromAttribute(attribute);
48308 }
48309 };
48310 agGridProtoNoType.setPropertyFromAttribute = function (attribute) {
48311 var name = toCamelCase(attribute.nodeName);
48312 var value = attribute.nodeValue;
48313 if (_componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].ALL_PROPERTIES.indexOf(name) >= 0) {
48314 this[name] = value;
48315 }
48316 };
48317 agGridProtoNoType.attachedCallback = function (params) { };
48318 agGridProtoNoType.detachedCallback = function (params) { };
48319 agGridProtoNoType.attributeChangedCallback = function (attributeName) {
48320 var attribute = this.attributes[attributeName];
48321 this.setPropertyFromAttribute(attribute);
48322 };
48323 agGridProtoNoType.globalEventListener = function (eventType, event) {
48324 var eventLowerCase = eventType.toLowerCase();
48325 var browserEvent = new Event(eventLowerCase);
48326 var browserEventNoType = browserEvent;
48327 browserEventNoType.agGridDetails = event;
48328 this.dispatchEvent(browserEvent);
48329 var callbackMethod = 'on' + eventLowerCase;
48330 if (typeof this[callbackMethod] === 'function') {
48331 this[callbackMethod](browserEvent);
48332 }
48333 };
48334 // finally, register
48335 document.registerElement('ag-grid', { prototype: AgileGridProto });
48336}
48337function toCamelCase(myString) {
48338 if (typeof myString === 'string') {
48339 var result = myString.replace(/-([a-z])/g, function (g) {
48340 return g[1].toUpperCase();
48341 });
48342 return result;
48343 }
48344 else {
48345 return myString;
48346 }
48347}
48348
48349
48350/***/ }),
48351/* 225 */
48352/***/ (function(module, __webpack_exports__, __webpack_require__) {
48353
48354"use strict";
48355__webpack_require__.r(__webpack_exports__);
48356/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return TabbedLayout; });
48357/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
48358/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67);
48359/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
48360/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47);
48361/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
48362/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
48363/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
48364/**
48365 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48366 * @version v25.3.0
48367 * @link http://www.ag-grid.com/
48368 * @license MIT
48369 */
48370var __extends = (undefined && undefined.__extends) || (function () {
48371 var extendStatics = function (d, b) {
48372 extendStatics = Object.setPrototypeOf ||
48373 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48374 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
48375 return extendStatics(d, b);
48376 };
48377 return function (d, b) {
48378 extendStatics(d, b);
48379 function __() { this.constructor = d; }
48380 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48381 };
48382})();
48383var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48384 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48385 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48386 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
48387 return c > 3 && r && Object.defineProperty(target, key, r), r;
48388};
48389
48390
48391
48392
48393
48394
48395
48396var TabbedLayout = /** @class */ (function (_super) {
48397 __extends(TabbedLayout, _super);
48398 function TabbedLayout(params) {
48399 var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;
48400 _this.items = [];
48401 _this.params = params;
48402 if (params.items) {
48403 params.items.forEach(function (item) { return _this.addItem(item); });
48404 }
48405 return _this;
48406 }
48407 TabbedLayout.getTemplate = function (cssClass) {
48408 return /* html */ "<div class=\"ag-tabs " + cssClass + "\">\n <div ref=\"eHeader\" role=\"menu\" class=\"ag-tabs-header " + (cssClass ? cssClass + "-header" : '') + "\"></div>\n <div ref=\"eBody\" role=\"presentation\" class=\"ag-tabs-body " + (cssClass ? cssClass + "-body" : '') + "\"></div>\n </div>";
48409 };
48410 TabbedLayout.prototype.handleKeyDown = function (e) {
48411 switch (e.keyCode) {
48412 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].RIGHT:
48413 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].LEFT:
48414 if (!this.eHeader.contains(document.activeElement)) {
48415 return;
48416 }
48417 var currentPosition = this.items.indexOf(this.activeItem);
48418 var nextPosition = e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].RIGHT ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);
48419 if (currentPosition === nextPosition) {
48420 return;
48421 }
48422 e.preventDefault();
48423 var nextItem = this.items[nextPosition];
48424 this.showItemWrapper(nextItem);
48425 nextItem.eHeaderButton.focus();
48426 break;
48427 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
48428 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
48429 e.stopPropagation();
48430 break;
48431 }
48432 };
48433 TabbedLayout.prototype.onTabKeyDown = function (e) {
48434 if (e.defaultPrevented) {
48435 return;
48436 }
48437 var _a = this, focusController = _a.focusController, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;
48438 var activeElement = document.activeElement;
48439 e.preventDefault();
48440 if (eHeader.contains(activeElement)) {
48441 // focus is in header, move into body of popup
48442 focusController.focusInto(eBody, e.shiftKey);
48443 }
48444 else {
48445 // focus is in body, establish if it should return to header
48446 if (focusController.isFocusUnderManagedComponent(eBody)) {
48447 // focus was in a managed focus component and has now left, so we can return to the header
48448 activeItem.eHeaderButton.focus();
48449 }
48450 else {
48451 var nextEl = focusController.findNextFocusableElement(eBody, false, e.shiftKey);
48452 if (nextEl) {
48453 // if another element exists in the body that can be focussed, go to that
48454 nextEl.focus();
48455 }
48456 else {
48457 // otherwise return to the header
48458 activeItem.eHeaderButton.focus();
48459 }
48460 }
48461 }
48462 };
48463 TabbedLayout.prototype.setAfterAttachedParams = function (params) {
48464 this.afterAttachedParams = params;
48465 };
48466 TabbedLayout.prototype.getMinDimensions = function () {
48467 var eDummyContainer = this.getGui().cloneNode(true);
48468 var eDummyBody = eDummyContainer.querySelector('[ref="eBody"]');
48469 // position fixed, so it isn't restricted to the boundaries of the parent
48470 eDummyContainer.style.position = 'fixed';
48471 // we put the dummy into the body container, so it will inherit all the
48472 // css styles that the real cells are inheriting
48473 this.getGui().appendChild(eDummyContainer);
48474 var minWidth = 0;
48475 var minHeight = 0;
48476 this.items.forEach(function (itemWrapper) {
48477 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(eDummyBody);
48478 var eClone = itemWrapper.tabbedItem.bodyPromise.resolveNow(null, function (body) { return body.cloneNode(true); });
48479 if (eClone == null) {
48480 return;
48481 }
48482 eDummyBody.appendChild(eClone);
48483 if (minWidth < eDummyContainer.offsetWidth) {
48484 minWidth = eDummyContainer.offsetWidth;
48485 }
48486 if (minHeight < eDummyContainer.offsetHeight) {
48487 minHeight = eDummyContainer.offsetHeight;
48488 }
48489 });
48490 this.getGui().removeChild(eDummyContainer);
48491 return { height: minHeight, width: minWidth };
48492 };
48493 TabbedLayout.prototype.showFirstItem = function () {
48494 if (this.items.length > 0) {
48495 this.showItemWrapper(this.items[0]);
48496 }
48497 };
48498 TabbedLayout.prototype.addItem = function (item) {
48499 var eHeaderButton = document.createElement('span');
48500 eHeaderButton.setAttribute('tabIndex', '-1');
48501 eHeaderButton.setAttribute('role', 'menuitem');
48502 eHeaderButton.appendChild(item.title);
48503 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eHeaderButton, 'ag-tab');
48504 this.eHeader.appendChild(eHeaderButton);
48505 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(eHeaderButton, item.titleLabel);
48506 var wrapper = {
48507 tabbedItem: item,
48508 eHeaderButton: eHeaderButton
48509 };
48510 this.items.push(wrapper);
48511 eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));
48512 };
48513 TabbedLayout.prototype.showItem = function (tabbedItem) {
48514 var itemWrapper = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["find"])(this.items, function (wrapper) { return wrapper.tabbedItem === tabbedItem; });
48515 if (itemWrapper) {
48516 this.showItemWrapper(itemWrapper);
48517 }
48518 };
48519 TabbedLayout.prototype.showItemWrapper = function (wrapper) {
48520 var _this = this;
48521 if (this.params.onItemClicked) {
48522 this.params.onItemClicked({ item: wrapper.tabbedItem });
48523 }
48524 if (this.activeItem === wrapper) {
48525 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["callIfPresent"])(this.params.onActiveItemClicked);
48526 return;
48527 }
48528 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eBody);
48529 wrapper.tabbedItem.bodyPromise.then(function (body) {
48530 _this.eBody.appendChild(body);
48531 var onlyUnmanaged = !_this.focusController.isKeyboardMode();
48532 _this.focusController.focusInto(_this.eBody, false, onlyUnmanaged);
48533 if (wrapper.tabbedItem.afterAttachedCallback) {
48534 wrapper.tabbedItem.afterAttachedCallback(_this.afterAttachedParams);
48535 }
48536 });
48537 if (this.activeItem) {
48538 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["removeCssClass"])(this.activeItem.eHeaderButton, 'ag-tab-selected');
48539 }
48540 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(wrapper.eHeaderButton, 'ag-tab-selected');
48541 this.activeItem = wrapper;
48542 };
48543 __decorate([
48544 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eHeader')
48545 ], TabbedLayout.prototype, "eHeader", void 0);
48546 __decorate([
48547 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eBody')
48548 ], TabbedLayout.prototype, "eBody", void 0);
48549 return TabbedLayout;
48550}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_1__["ManagedFocusComponent"]));
48551
48552
48553
48554/***/ }),
48555/* 226 */
48556/***/ (function(module, __webpack_exports__, __webpack_require__) {
48557
48558"use strict";
48559__webpack_require__.r(__webpack_exports__);
48560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return simpleHttpRequest; });
48561/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42);
48562/**
48563 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48564 * @version v25.3.0
48565 * @link http://www.ag-grid.com/
48566 * @license MIT
48567 */
48568
48569function simpleHttpRequest(params) {
48570 return new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
48571 var httpRequest = new XMLHttpRequest();
48572 httpRequest.open('GET', params.url);
48573 httpRequest.send();
48574 httpRequest.onreadystatechange = function () {
48575 if (httpRequest.readyState === 4 && httpRequest.status === 200) {
48576 resolve(JSON.parse(httpRequest.responseText));
48577 }
48578 };
48579 });
48580}
48581
48582
48583/***/ }),
48584/* 227 */
48585/***/ (function(module, __webpack_exports__, __webpack_require__) {
48586
48587"use strict";
48588__webpack_require__.r(__webpack_exports__);
48589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return ServerSideTransactionResultStatus; });
48590/**
48591 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48592 * @version v25.3.0
48593 * @link http://www.ag-grid.com/
48594 * @license MIT
48595 */
48596var ServerSideTransactionResultStatus;
48597(function (ServerSideTransactionResultStatus) {
48598 ServerSideTransactionResultStatus["StoreNotFound"] = "StoreNotFound";
48599 ServerSideTransactionResultStatus["StoreLoading"] = "StoreLoading";
48600 ServerSideTransactionResultStatus["StoreWaitingToLoad"] = "StoreWaitingToLoad";
48601 ServerSideTransactionResultStatus["StoreLoadingFailed"] = "StoreLoadingFailed";
48602 ServerSideTransactionResultStatus["StoreWrongType"] = "StoreWrongType";
48603 ServerSideTransactionResultStatus["Applied"] = "Applied";
48604 ServerSideTransactionResultStatus["Cancelled"] = "Cancelled";
48605})(ServerSideTransactionResultStatus || (ServerSideTransactionResultStatus = {}));
48606
48607
48608/***/ }),
48609/* 228 */
48610/***/ (function(module, __webpack_exports__, __webpack_require__) {
48611
48612"use strict";
48613__webpack_require__.r(__webpack_exports__);
48614/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return VirtualList; });
48615/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
48616/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
48617/* harmony import */ var _managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67);
48618/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
48619/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
48620/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
48621/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
48622/**
48623 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48624 * @version v25.3.0
48625 * @link http://www.ag-grid.com/
48626 * @license MIT
48627 */
48628var __extends = (undefined && undefined.__extends) || (function () {
48629 var extendStatics = function (d, b) {
48630 extendStatics = Object.setPrototypeOf ||
48631 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48632 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
48633 return extendStatics(d, b);
48634 };
48635 return function (d, b) {
48636 extendStatics(d, b);
48637 function __() { this.constructor = d; }
48638 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48639 };
48640})();
48641var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48642 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48643 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48644 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
48645 return c > 3 && r && Object.defineProperty(target, key, r), r;
48646};
48647
48648
48649
48650
48651
48652
48653
48654var VirtualList = /** @class */ (function (_super) {
48655 __extends(VirtualList, _super);
48656 function VirtualList(cssIdentifier, ariaRole) {
48657 if (cssIdentifier === void 0) { cssIdentifier = 'default'; }
48658 if (ariaRole === void 0) { ariaRole = 'listbox'; }
48659 var _this = _super.call(this, VirtualList.getTemplate(cssIdentifier), true) || this;
48660 _this.cssIdentifier = cssIdentifier;
48661 _this.ariaRole = ariaRole;
48662 _this.renderedRows = new Map();
48663 _this.rowHeight = 20;
48664 _this.isDestroyed = false;
48665 return _this;
48666 }
48667 VirtualList.prototype.postConstruct = function () {
48668 this.addScrollListener();
48669 this.rowHeight = this.getItemHeight();
48670 this.addResizeObserver();
48671 _super.prototype.postConstruct.call(this);
48672 };
48673 VirtualList.prototype.addResizeObserver = function () {
48674 var listener = this.drawVirtualRows.bind(this);
48675 var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);
48676 this.addDestroyFunc(destroyObserver);
48677 };
48678 VirtualList.prototype.focusInnerElement = function (fromBottom) {
48679 this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);
48680 };
48681 VirtualList.prototype.onFocusIn = function (e) {
48682 _super.prototype.onFocusIn.call(this, e);
48683 var target = e.target;
48684 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(target, 'ag-virtual-list-item')) {
48685 this.lastFocusedRowIndex = Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["getAriaPosInSet"])(target) - 1;
48686 }
48687 };
48688 VirtualList.prototype.onFocusOut = function (e) {
48689 _super.prototype.onFocusOut.call(this, e);
48690 if (!this.getFocusableElement().contains(e.relatedTarget)) {
48691 this.lastFocusedRowIndex = null;
48692 }
48693 };
48694 VirtualList.prototype.handleKeyDown = function (e) {
48695 switch (e.keyCode) {
48696 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP:
48697 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].DOWN:
48698 if (this.navigate(e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP)) {
48699 e.preventDefault();
48700 }
48701 break;
48702 }
48703 };
48704 VirtualList.prototype.onTabKeyDown = function (e) {
48705 if (this.navigate(e.shiftKey)) {
48706 e.preventDefault();
48707 }
48708 else {
48709 // focus on the first or last focusable element to ensure that any other handlers start from there
48710 this.focusController.focusInto(this.getGui(), !e.shiftKey);
48711 }
48712 };
48713 VirtualList.prototype.navigate = function (up) {
48714 if (this.lastFocusedRowIndex == null) {
48715 return false;
48716 }
48717 var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);
48718 if (nextRow < 0 || nextRow >= this.model.getRowCount()) {
48719 return false;
48720 }
48721 this.focusRow(nextRow);
48722 return true;
48723 };
48724 VirtualList.prototype.getLastFocusedRow = function () {
48725 return this.lastFocusedRowIndex;
48726 };
48727 VirtualList.prototype.focusRow = function (rowNumber) {
48728 var _this = this;
48729 this.ensureIndexVisible(rowNumber);
48730 window.setTimeout(function () {
48731 var renderedRow = _this.renderedRows.get(rowNumber);
48732 if (renderedRow) {
48733 renderedRow.eDiv.focus();
48734 }
48735 }, 10);
48736 };
48737 VirtualList.prototype.getComponentAt = function (rowIndex) {
48738 var comp = this.renderedRows.get(rowIndex);
48739 return comp && comp.rowComponent;
48740 };
48741 VirtualList.getTemplate = function (cssIdentifier) {
48742 return /* html */ "\n <div class=\"ag-virtual-list-viewport ag-" + cssIdentifier + "-virtual-list-viewport\" role=\"listbox\">\n <div class=\"ag-virtual-list-container ag-" + cssIdentifier + "-virtual-list-container\" ref=\"eContainer\"></div>\n </div>";
48743 };
48744 VirtualList.prototype.getItemHeight = function () {
48745 return this.gridOptionsWrapper.getListItemHeight();
48746 };
48747 VirtualList.prototype.ensureIndexVisible = function (index) {
48748 var lastRow = this.model.getRowCount();
48749 if (typeof index !== 'number' || index < 0 || index >= lastRow) {
48750 console.warn('invalid row index for ensureIndexVisible: ' + index);
48751 return;
48752 }
48753 var rowTopPixel = index * this.rowHeight;
48754 var rowBottomPixel = rowTopPixel + this.rowHeight;
48755 var eGui = this.getGui();
48756 var viewportTopPixel = eGui.scrollTop;
48757 var viewportHeight = eGui.offsetHeight;
48758 var viewportBottomPixel = viewportTopPixel + viewportHeight;
48759 var viewportScrolledPastRow = viewportTopPixel > rowTopPixel;
48760 var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel;
48761 if (viewportScrolledPastRow) {
48762 // if row is before, scroll up with row at top
48763 eGui.scrollTop = rowTopPixel;
48764 }
48765 else if (viewportScrolledBeforeRow) {
48766 // if row is below, scroll down with row at bottom
48767 var newScrollPosition = rowBottomPixel - viewportHeight;
48768 eGui.scrollTop = newScrollPosition;
48769 }
48770 };
48771 VirtualList.prototype.setComponentCreator = function (componentCreator) {
48772 this.componentCreator = componentCreator;
48773 };
48774 VirtualList.prototype.getRowHeight = function () {
48775 return this.rowHeight;
48776 };
48777 VirtualList.prototype.getScrollTop = function () {
48778 return this.getGui().scrollTop;
48779 };
48780 VirtualList.prototype.setRowHeight = function (rowHeight) {
48781 this.rowHeight = rowHeight;
48782 this.refresh();
48783 };
48784 VirtualList.prototype.refresh = function () {
48785 var _this = this;
48786 if (this.model == null || this.isDestroyed) {
48787 return;
48788 }
48789 var rowCount = this.model.getRowCount();
48790 this.eContainer.style.height = rowCount * this.rowHeight + "px";
48791 // ensure height is applied before attempting to redraw rows
48792 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["waitUntil"])(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {
48793 if (_this.isDestroyed) {
48794 return;
48795 }
48796 _this.clearVirtualRows();
48797 _this.drawVirtualRows();
48798 });
48799 };
48800 VirtualList.prototype.clearVirtualRows = function () {
48801 var _this = this;
48802 this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });
48803 };
48804 VirtualList.prototype.drawVirtualRows = function () {
48805 var gui = this.getGui();
48806 var topPixel = gui.scrollTop;
48807 var bottomPixel = topPixel + gui.offsetHeight;
48808 var firstRow = Math.floor(topPixel / this.rowHeight);
48809 var lastRow = Math.floor(bottomPixel / this.rowHeight);
48810 this.ensureRowsRendered(firstRow, lastRow);
48811 };
48812 VirtualList.prototype.ensureRowsRendered = function (start, finish) {
48813 var _this = this;
48814 // remove any rows that are no longer required
48815 this.renderedRows.forEach(function (_, rowIndex) {
48816 if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {
48817 _this.removeRow(rowIndex);
48818 }
48819 });
48820 // insert any required new rows
48821 for (var rowIndex = start; rowIndex <= finish; rowIndex++) {
48822 if (this.renderedRows.has(rowIndex)) {
48823 continue;
48824 }
48825 // check this row actually exists (in case overflow buffer window exceeds real data)
48826 if (rowIndex < this.model.getRowCount()) {
48827 this.insertRow(rowIndex);
48828 }
48829 }
48830 };
48831 VirtualList.prototype.insertRow = function (rowIndex) {
48832 var _this = this;
48833 var value = this.model.getRow(rowIndex);
48834 var eDiv = document.createElement('div');
48835 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eDiv, 'ag-virtual-list-item');
48836 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eDiv, "ag-" + this.cssIdentifier + "-virtual-list-item");
48837 eDiv.setAttribute('role', this.ariaRole === 'tree' ? 'treeitem' : 'option');
48838 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaSetSize"])(eDiv, this.model.getRowCount());
48839 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaPosInSet"])(eDiv, rowIndex + 1);
48840 eDiv.setAttribute('tabindex', '-1');
48841 if (typeof this.model.isRowSelected === 'function') {
48842 var isSelected = this.model.isRowSelected(rowIndex);
48843 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaSelected"])(eDiv, !!isSelected);
48844 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaChecked"])(eDiv, isSelected);
48845 }
48846 eDiv.style.height = this.rowHeight + "px";
48847 eDiv.style.top = this.rowHeight * rowIndex + "px";
48848 var rowComponent = this.componentCreator(value, eDiv);
48849 rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });
48850 eDiv.appendChild(rowComponent.getGui());
48851 // keep the DOM order consistent with the order of the rows
48852 if (this.renderedRows.has(rowIndex - 1)) {
48853 this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);
48854 }
48855 else if (this.renderedRows.has(rowIndex + 1)) {
48856 this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);
48857 }
48858 else {
48859 this.eContainer.appendChild(eDiv);
48860 }
48861 this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv });
48862 };
48863 VirtualList.prototype.removeRow = function (rowIndex) {
48864 var component = this.renderedRows.get(rowIndex);
48865 this.eContainer.removeChild(component.eDiv);
48866 this.destroyBean(component.rowComponent);
48867 this.renderedRows.delete(rowIndex);
48868 };
48869 VirtualList.prototype.addScrollListener = function () {
48870 var _this = this;
48871 this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); });
48872 };
48873 VirtualList.prototype.setModel = function (model) {
48874 this.model = model;
48875 };
48876 VirtualList.prototype.destroy = function () {
48877 if (this.isDestroyed) {
48878 return;
48879 }
48880 this.clearVirtualRows();
48881 this.isDestroyed = true;
48882 _super.prototype.destroy.call(this);
48883 };
48884 __decorate([
48885 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
48886 ], VirtualList.prototype, "resizeObserverService", void 0);
48887 __decorate([
48888 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
48889 ], VirtualList.prototype, "eContainer", void 0);
48890 return VirtualList;
48891}(_managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__["ManagedFocusComponent"]));
48892
48893
48894
48895/***/ }),
48896/* 229 */
48897/***/ (function(module, __webpack_exports__, __webpack_require__) {
48898
48899"use strict";
48900__webpack_require__.r(__webpack_exports__);
48901/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultGroupComparator", function() { return defaultGroupComparator; });
48902/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
48903/**
48904 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48905 * @version v25.3.0
48906 * @link http://www.ag-grid.com/
48907 * @license MIT
48908 */
48909
48910function defaultGroupComparator(valueA, valueB, nodeA, nodeB, accentedCompare) {
48911 if (accentedCompare === void 0) { accentedCompare = false; }
48912 console.warn('AG Grid: Since ag-grid 11.0.0 defaultGroupComparator is not necessary. You can remove this from your colDef');
48913 var nodeAIsGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(nodeA) && nodeA.group;
48914 var nodeBIsGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(nodeB) && nodeB.group;
48915 var bothAreGroups = nodeAIsGroup && nodeBIsGroup;
48916 var bothAreNormal = !nodeAIsGroup && !nodeBIsGroup;
48917 if (bothAreGroups) {
48918 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["defaultComparator"])(nodeA.key, nodeB.key, accentedCompare);
48919 }
48920 if (bothAreNormal) {
48921 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["defaultComparator"])(valueA, valueB, accentedCompare);
48922 }
48923 if (nodeAIsGroup) {
48924 return 1;
48925 }
48926 return -1;
48927}
48928
48929
48930/***/ }),
48931/* 230 */
48932/***/ (function(module, __webpack_exports__, __webpack_require__) {
48933
48934"use strict";
48935__webpack_require__.r(__webpack_exports__);
48936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerSideStoreType", function() { return ServerSideStoreType; });
48937/**
48938 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48939 * @version v25.3.0
48940 * @link http://www.ag-grid.com/
48941 * @license MIT
48942 */
48943var ServerSideStoreType;
48944(function (ServerSideStoreType) {
48945 ServerSideStoreType["Full"] = "full";
48946 ServerSideStoreType["Partial"] = "partial";
48947})(ServerSideStoreType || (ServerSideStoreType = {}));
48948
48949
48950/***/ }),
48951/* 231 */
48952/***/ (function(module, __webpack_exports__, __webpack_require__) {
48953
48954"use strict";
48955__webpack_require__.r(__webpack_exports__);
48956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return BaseComponentWrapper; });
48957/**
48958 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48959 * @version v25.3.0
48960 * @link http://www.ag-grid.com/
48961 * @license MIT
48962 */
48963var BaseComponentWrapper = /** @class */ (function () {
48964 function BaseComponentWrapper() {
48965 }
48966 BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType, componentName) {
48967 var _this = this;
48968 if (optionalMethodList === void 0) { optionalMethodList = []; }
48969 var wrapper = this.createWrapper(OriginalConstructor, componentType, componentName);
48970 mandatoryMethodList.forEach((function (methodName) {
48971 _this.createMethod(wrapper, methodName, true);
48972 }));
48973 optionalMethodList.forEach((function (methodName) {
48974 _this.createMethod(wrapper, methodName, false);
48975 }));
48976 return wrapper;
48977 };
48978 BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {
48979 wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));
48980 };
48981 BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {
48982 return function () {
48983 if (wrapper.hasMethod(methodName)) {
48984 return wrapper.callMethod(methodName, arguments);
48985 }
48986 if (mandatory) {
48987 console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');
48988 }
48989 return null;
48990 };
48991 };
48992 return BaseComponentWrapper;
48993}());
48994
48995
48996
48997/***/ }),
48998/* 232 */
48999/***/ (function(module, __webpack_exports__, __webpack_require__) {
49000
49001"use strict";
49002__webpack_require__.r(__webpack_exports__);
49003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChartType", function() { return ChartType; });
49004/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LegendPosition", function() { return LegendPosition; });
49005/**
49006 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
49007 * @version v25.3.0
49008 * @link http://www.ag-grid.com/
49009 * @license MIT
49010 */
49011var ChartType;
49012(function (ChartType) {
49013 ChartType["Column"] = "column";
49014 ChartType["GroupedColumn"] = "groupedColumn";
49015 ChartType["StackedColumn"] = "stackedColumn";
49016 ChartType["NormalizedColumn"] = "normalizedColumn";
49017 ChartType["Bar"] = "bar";
49018 ChartType["GroupedBar"] = "groupedBar";
49019 ChartType["StackedBar"] = "stackedBar";
49020 ChartType["NormalizedBar"] = "normalizedBar";
49021 ChartType["Line"] = "line";
49022 ChartType["Scatter"] = "scatter";
49023 ChartType["Bubble"] = "bubble";
49024 ChartType["Pie"] = "pie";
49025 ChartType["Doughnut"] = "doughnut";
49026 ChartType["Area"] = "area";
49027 ChartType["StackedArea"] = "stackedArea";
49028 ChartType["NormalizedArea"] = "normalizedArea";
49029 ChartType["Histogram"] = "histogram";
49030})(ChartType || (ChartType = {}));
49031var LegendPosition;
49032(function (LegendPosition) {
49033 LegendPosition["Top"] = "top";
49034 LegendPosition["Right"] = "right";
49035 LegendPosition["Bottom"] = "bottom";
49036 LegendPosition["Left"] = "left";
49037})(LegendPosition || (LegendPosition = {}));
49038
49039
49040/***/ }),
49041/* 233 */
49042/***/ (function(module, __webpack_exports__, __webpack_require__) {
49043
49044"use strict";
49045__webpack_require__.r(__webpack_exports__);
49046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModel", function() { return ClientSideRowModel; });
49047/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
49048/* harmony import */ var _clientSideNodeManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(234);
49049var __extends = (undefined && undefined.__extends) || (function () {
49050 var extendStatics = function (d, b) {
49051 extendStatics = Object.setPrototypeOf ||
49052 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49053 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
49054 return extendStatics(d, b);
49055 };
49056 return function (d, b) {
49057 extendStatics(d, b);
49058 function __() { this.constructor = d; }
49059 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49060 };
49061})();
49062var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49063 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49064 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49065 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
49066 return c > 3 && r && Object.defineProperty(target, key, r), r;
49067};
49068
49069
49070var RecursionType;
49071(function (RecursionType) {
49072 RecursionType[RecursionType["Normal"] = 0] = "Normal";
49073 RecursionType[RecursionType["AfterFilter"] = 1] = "AfterFilter";
49074 RecursionType[RecursionType["AfterFilterAndSort"] = 2] = "AfterFilterAndSort";
49075 RecursionType[RecursionType["PivotNodes"] = 3] = "PivotNodes";
49076})(RecursionType || (RecursionType = {}));
49077var ClientSideRowModel = /** @class */ (function (_super) {
49078 __extends(ClientSideRowModel, _super);
49079 function ClientSideRowModel() {
49080 var _this = _super !== null && _super.apply(this, arguments) || this;
49081 _this.onRowGroupOpenedPending = false;
49082 return _this;
49083 }
49084 ClientSideRowModel.prototype.init = function () {
49085 var refreshEverythingFunc = this.refreshModel.bind(this, { step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING });
49086 var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {
49087 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49088 afterColumnsChanged: true,
49089 keepRenderedRows: true,
49090 animate: true
49091 });
49092 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);
49093 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);
49094 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));
49095 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 }));
49096 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_GROUP_OPENED, this.onRowGroupOpened.bind(this));
49097 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
49098 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
49099 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);
49100 var refreshMapListener = this.refreshModel.bind(this, {
49101 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP,
49102 keepRenderedRows: true,
49103 animate: true
49104 });
49105 this.addManagedListener(this.gridOptionsWrapper, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_SINGLE_CHILDREN, refreshMapListener);
49106 this.addManagedListener(this.gridOptionsWrapper, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, refreshMapListener);
49107 this.rootNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
49108 this.nodeManager = new _clientSideNodeManager__WEBPACK_IMPORTED_MODULE_1__["ClientSideNodeManager"](this.rootNode, this.gridOptionsWrapper, this.getContext(), this.eventService, this.columnController, this.gridApi, this.columnApi, this.selectionController);
49109 this.createBean(this.rootNode);
49110 };
49111 ClientSideRowModel.prototype.start = function () {
49112 var rowData = this.gridOptionsWrapper.getRowData();
49113 if (rowData) {
49114 this.setRowData(rowData);
49115 }
49116 };
49117 ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
49118 var atLeastOneChange;
49119 var res = false;
49120 // we do this multiple times as changing the row heights can also change the first and last rows,
49121 // so the first pass can make lots of rows smaller, which means the second pass we end up changing
49122 // more rows.
49123 do {
49124 atLeastOneChange = false;
49125 var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);
49126 var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);
49127 // keep check to current page if doing pagination
49128 var firstRow = Math.max(rowAtStartPixel, startLimitIndex);
49129 var lastRow = Math.min(rowAtEndPixel, endLimitIndex);
49130 for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {
49131 var rowNode = this.getRow(rowIndex);
49132 if (rowNode.rowHeightEstimated) {
49133 var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode);
49134 rowNode.setRowHeight(rowHeight.height);
49135 atLeastOneChange = true;
49136 res = true;
49137 }
49138 }
49139 if (atLeastOneChange) {
49140 this.setRowTops();
49141 }
49142 } while (atLeastOneChange);
49143 return res;
49144 };
49145 ClientSideRowModel.prototype.setRowTops = function () {
49146 var nextRowTop = 0;
49147 for (var i = 0; i < this.rowsToDisplay.length; i++) {
49148 // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time
49149 // with these two layouts.
49150 var allowEstimate = this.gridOptionsWrapper.getDomLayout() === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_NORMAL;
49151 var rowNode = this.rowsToDisplay[i];
49152 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNode.rowHeight)) {
49153 var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode, allowEstimate);
49154 rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);
49155 }
49156 rowNode.setRowTop(nextRowTop);
49157 rowNode.setRowIndex(i);
49158 nextRowTop += rowNode.rowHeight;
49159 }
49160 };
49161 ClientSideRowModel.prototype.resetRowTops = function (changedPath) {
49162 var displayedRowsMapped = {};
49163 this.rowsToDisplay.forEach(function (rowNode) {
49164 if (rowNode.id != null) {
49165 displayedRowsMapped[rowNode.id] = rowNode;
49166 }
49167 });
49168 var clearIfNotDisplayed = function (rowNode) {
49169 if (rowNode && rowNode.id != null && displayedRowsMapped[rowNode.id] == null) {
49170 rowNode.clearRowTopAndRowIndex();
49171 }
49172 };
49173 var recurse = function (rowNode) {
49174 clearIfNotDisplayed(rowNode);
49175 clearIfNotDisplayed(rowNode.detailNode);
49176 clearIfNotDisplayed(rowNode.sibling);
49177 if (rowNode.hasChildren()) {
49178 if (rowNode.childrenAfterGroup) {
49179 // if a changedPath is active, it means we are here because of a transaction update or
49180 // a change detection. neither of these impacts the open/closed state of groups. so if
49181 // a group is not open this time, it was not open last time. so we know all closed groups
49182 // already have their top positions cleared. so there is no need to traverse all the way
49183 // when changedPath is active and the rowNode is not expanded.
49184 var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,
49185 // as expanded=undefined for root node
49186 var skipChildren = changedPath.isActive() && !isRootNode && !rowNode.expanded;
49187 if (!skipChildren) {
49188 rowNode.childrenAfterGroup.forEach(recurse);
49189 }
49190 }
49191 }
49192 };
49193 recurse(this.rootNode);
49194 };
49195 // returns false if row was moved, otherwise true
49196 ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {
49197 var _this = this;
49198 if (increment === void 0) { increment = 0; }
49199 var indexAtPixelNow = this.getRowIndexAtPixel(pixel);
49200 var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);
49201 if (rowNodeAtPixelNow === rowNodes[0]) {
49202 return false;
49203 }
49204 rowNodes.forEach(function (rowNode) {
49205 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].removeFromArray(_this.rootNode.allLeafChildren, rowNode);
49206 });
49207 rowNodes.forEach(function (rowNode, idx) {
49208 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);
49209 });
49210 this.refreshModel({
49211 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49212 keepRenderedRows: true,
49213 animate: true,
49214 keepEditingRows: true
49215 });
49216 return true;
49217 };
49218 ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {
49219 var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;
49220 var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;
49221 if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {
49222 if (this.lastHighlightedRow) {
49223 this.lastHighlightedRow.setHighlighted(null);
49224 this.lastHighlightedRow = null;
49225 }
49226 return;
49227 }
49228 var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);
49229 if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {
49230 this.lastHighlightedRow.setHighlighted(null);
49231 this.lastHighlightedRow = null;
49232 }
49233 rowNodeAtPixelNow.setHighlighted(highlight);
49234 this.lastHighlightedRow = rowNodeAtPixelNow;
49235 };
49236 ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {
49237 if (!rowNode) {
49238 var index = this.getRowIndexAtPixel(pixel);
49239 rowNode = this.getRow(index || 0);
49240 if (!rowNode) {
49241 return 'below';
49242 }
49243 }
49244 var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;
49245 return pixel - rowTop < rowHeight / 2 ? 'above' : 'below';
49246 };
49247 ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {
49248 return this.lastHighlightedRow;
49249 };
49250 ClientSideRowModel.prototype.isLastRowIndexKnown = function () {
49251 return true;
49252 };
49253 ClientSideRowModel.prototype.getRowCount = function () {
49254 if (this.rowsToDisplay) {
49255 return this.rowsToDisplay.length;
49256 }
49257 return 0;
49258 };
49259 ClientSideRowModel.prototype.getTopLevelRowCount = function () {
49260 var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;
49261 if (showingRootNode) {
49262 return 1;
49263 }
49264 return this.rootNode.childrenAfterFilter ? this.rootNode.childrenAfterFilter.length : 0;
49265 };
49266 ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {
49267 var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;
49268 if (showingRootNode) {
49269 return topLevelIndex;
49270 }
49271 var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];
49272 if (this.gridOptionsWrapper.isGroupHideOpenParents()) {
49273 // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is
49274 while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {
49275 rowNode = rowNode.childrenAfterSort[0];
49276 }
49277 }
49278 return rowNode.rowIndex;
49279 };
49280 ClientSideRowModel.prototype.getRowBounds = function (index) {
49281 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rowsToDisplay)) {
49282 return null;
49283 }
49284 var rowNode = this.rowsToDisplay[index];
49285 if (rowNode) {
49286 return {
49287 rowTop: rowNode.rowTop,
49288 rowHeight: rowNode.rowHeight
49289 };
49290 }
49291 return null;
49292 };
49293 ClientSideRowModel.prototype.onRowGroupOpened = function () {
49294 // because the user can call rowNode.setExpanded() many times in on VM turn,
49295 // we debounce the call using animationFrameService. we use animationFrameService
49296 // rather than _.debounce() so this will get done if anyone flushes the animationFrameService
49297 // (eg user calls api.ensureRowVisible(), which in turn flushes ).
49298 var _this = this;
49299 if (this.onRowGroupOpenedPending) {
49300 return;
49301 }
49302 this.onRowGroupOpenedPending = true;
49303 var action = function () {
49304 _this.onRowGroupOpenedPending = false;
49305 var animate = _this.gridOptionsWrapper.isAnimateRows();
49306 _this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP, keepRenderedRows: true, animate: animate });
49307 };
49308 if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {
49309 action();
49310 }
49311 else {
49312 this.animationFrameService.addDestroyTask(action);
49313 }
49314 };
49315 ClientSideRowModel.prototype.onFilterChanged = function (event) {
49316 if (event.afterDataChange) {
49317 return;
49318 }
49319 var animate = this.gridOptionsWrapper.isAnimateRows();
49320 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER, keepRenderedRows: true, animate: animate });
49321 };
49322 ClientSideRowModel.prototype.onSortChanged = function () {
49323 var animate = this.gridOptionsWrapper.isAnimateRows();
49324 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });
49325 };
49326 ClientSideRowModel.prototype.getType = function () {
49327 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
49328 };
49329 ClientSideRowModel.prototype.onValueChanged = function () {
49330 if (this.columnController.isPivotActive()) {
49331 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT });
49332 }
49333 else {
49334 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE });
49335 }
49336 };
49337 ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {
49338 // for updates, if the row is updated at all, then we re-calc all the values
49339 // in that row. we could compare each value to each old value, however if we
49340 // did this, we would be calling the valueService twice, once on the old value
49341 // and once on the new value. so it's less valueGetter calls if we just assume
49342 // each column is different. that way the changedPath is used so that only
49343 // the impacted parent rows are recalculated, parents who's children have
49344 // not changed are not impacted.
49345 var noTransactions = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(rowNodeTransactions);
49346 var changedPath = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ChangedPath"](false, this.rootNode);
49347 if (noTransactions || this.gridOptionsWrapper.isTreeData()) {
49348 changedPath.setInactive();
49349 }
49350 return changedPath;
49351 };
49352 ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {
49353 if (!this.gridOptionsWrapper.isSuppressModelUpdateAfterUpdateTransaction()) {
49354 return false;
49355 }
49356 // return true if we are only doing update transactions
49357 if (params.rowNodeTransactions == null) {
49358 return false;
49359 }
49360 var transWithAddsOrDeletes = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].filter(params.rowNodeTransactions, function (tx) {
49361 return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);
49362 });
49363 var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;
49364 return transactionsContainUpdatesOnly;
49365 };
49366 ClientSideRowModel.prototype.refreshModel = function (params) {
49367 var _this = this;
49368 if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {
49369 return;
49370 }
49371 // this goes through the pipeline of stages. what's in my head is similar
49372 // to the diagram on this page:
49373 // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html
49374 // however we want to keep the results of each stage, hence we manually call
49375 // each step rather than have them chain each other.
49376 // fallthrough in below switch is on purpose,
49377 // eg if STEP_FILTER, then all steps below this
49378 // step get done
49379 // let start: number;
49380 // console.log('======= start =======');
49381 var changedPath = this.createChangePath(params.rowNodeTransactions);
49382 switch (params.step) {
49383 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING:
49384 // start = new Date().getTime();
49385 this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);
49386 // console.log('rowGrouping = ' + (new Date().getTime() - start));
49387 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER:
49388 // start = new Date().getTime();
49389 this.doFilter(changedPath);
49390 // console.log('filter = ' + (new Date().getTime() - start));
49391 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT:
49392 this.doPivot(changedPath);
49393 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE: // depends on agg fields
49394 // start = new Date().getTime();
49395 this.doAggregate(changedPath);
49396 // console.log('aggregation = ' + (new Date().getTime() - start));
49397 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT:
49398 // start = new Date().getTime();
49399 this.doSort(params.rowNodeTransactions, changedPath);
49400 // console.log('sort = ' + (new Date().getTime() - start));
49401 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP:
49402 // start = new Date().getTime();
49403 this.doRowsToDisplay();
49404 // console.log('rowsToDisplay = ' + (new Date().getTime() - start));
49405 }
49406 // set all row tops to null, then set row tops on all visible rows. if we don't
49407 // do this, then the algorithm below only sets row tops, old row tops from old rows
49408 // will still lie around
49409 this.setRowTops();
49410 this.resetRowTops(changedPath);
49411 var event = {
49412 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MODEL_UPDATED,
49413 api: this.gridApi,
49414 columnApi: this.columnApi,
49415 animate: params.animate,
49416 keepRenderedRows: params.keepRenderedRows,
49417 newData: params.newData,
49418 newPage: false
49419 };
49420 this.eventService.dispatchEvent(event);
49421 if (this.$scope) {
49422 window.setTimeout(function () {
49423 _this.$scope.$apply();
49424 }, 0);
49425 }
49426 };
49427 ClientSideRowModel.prototype.isEmpty = function () {
49428 var rowsMissing = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;
49429 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rootNode) || rowsMissing || !this.columnController.isReady();
49430 };
49431 ClientSideRowModel.prototype.isRowsToRender = function () {
49432 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;
49433 };
49434 ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
49435 // if lastSelectedNode is missing, we start at the first row
49436 var firstRowHit = !lastInRange;
49437 var lastRowHit = false;
49438 var lastRow;
49439 var result = [];
49440 var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
49441 this.forEachNodeAfterFilterAndSort(function (rowNode) {
49442 var lookingForLastRow = firstRowHit && !lastRowHit;
49443 // check if we need to flip the select switch
49444 if (!firstRowHit) {
49445 if (rowNode === lastInRange || rowNode === firstInRange) {
49446 firstRowHit = true;
49447 }
49448 }
49449 var skipThisGroupNode = rowNode.group && groupsSelectChildren;
49450 if (!skipThisGroupNode) {
49451 var inRange = firstRowHit && !lastRowHit;
49452 var childOfLastRow = rowNode.isParentOfNode(lastRow);
49453 if (inRange || childOfLastRow) {
49454 result.push(rowNode);
49455 }
49456 }
49457 if (lookingForLastRow) {
49458 if (rowNode === lastInRange || rowNode === firstInRange) {
49459 lastRowHit = true;
49460 if (rowNode === lastInRange) {
49461 lastRow = lastInRange;
49462 }
49463 else {
49464 lastRow = firstInRange;
49465 }
49466 }
49467 }
49468 });
49469 return result;
49470 };
49471 ClientSideRowModel.prototype.setDatasource = function (datasource) {
49472 console.error('AG Grid: should never call setDatasource on clientSideRowController');
49473 };
49474 ClientSideRowModel.prototype.getTopLevelNodes = function () {
49475 return this.rootNode ? this.rootNode.childrenAfterGroup : null;
49476 };
49477 ClientSideRowModel.prototype.getRootNode = function () {
49478 return this.rootNode;
49479 };
49480 ClientSideRowModel.prototype.getRow = function (index) {
49481 return this.rowsToDisplay[index];
49482 };
49483 ClientSideRowModel.prototype.isRowPresent = function (rowNode) {
49484 return this.rowsToDisplay.indexOf(rowNode) >= 0;
49485 };
49486 ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {
49487 if (this.isEmpty()) {
49488 return -1;
49489 }
49490 // do binary search of tree
49491 // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/
49492 var bottomPointer = 0;
49493 var topPointer = this.rowsToDisplay.length - 1;
49494 // quick check, if the pixel is out of bounds, then return last row
49495 if (pixelToMatch <= 0) {
49496 // if pixel is less than or equal zero, it's always the first row
49497 return 0;
49498 }
49499 var lastNode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].last(this.rowsToDisplay);
49500 if (lastNode.rowTop <= pixelToMatch) {
49501 return this.rowsToDisplay.length - 1;
49502 }
49503 while (true) {
49504 var midPointer = Math.floor((bottomPointer + topPointer) / 2);
49505 var currentRowNode = this.rowsToDisplay[midPointer];
49506 if (this.isRowInPixel(currentRowNode, pixelToMatch)) {
49507 return midPointer;
49508 }
49509 if (currentRowNode.rowTop < pixelToMatch) {
49510 bottomPointer = midPointer + 1;
49511 }
49512 else if (currentRowNode.rowTop > pixelToMatch) {
49513 topPointer = midPointer - 1;
49514 }
49515 }
49516 };
49517 ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {
49518 var topPixel = rowNode.rowTop;
49519 var bottomPixel = rowNode.rowTop + rowNode.rowHeight;
49520 var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;
49521 return pixelInRow;
49522 };
49523 ClientSideRowModel.prototype.forEachLeafNode = function (callback) {
49524 if (this.rootNode.allLeafChildren) {
49525 this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });
49526 }
49527 };
49528 ClientSideRowModel.prototype.forEachNode = function (callback) {
49529 this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterGroup, callback, RecursionType.Normal, 0);
49530 };
49531 ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback) {
49532 this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterFilter, callback, RecursionType.AfterFilter, 0);
49533 };
49534 ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {
49535 this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterSort, callback, RecursionType.AfterFilterAndSort, 0);
49536 };
49537 ClientSideRowModel.prototype.forEachPivotNode = function (callback) {
49538 this.recursivelyWalkNodesAndCallback([this.rootNode], callback, RecursionType.PivotNodes, 0);
49539 };
49540 // iterates through each item in memory, and calls the callback function
49541 // nodes - the rowNodes to traverse
49542 // callback - the user provided callback
49543 // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc
49544 // index - works similar to the index in forEach in javascript's array function
49545 ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (nodes, callback, recursionType, index) {
49546 if (!nodes) {
49547 return index;
49548 }
49549 for (var i = 0; i < nodes.length; i++) {
49550 var node = nodes[i];
49551 callback(node, index++);
49552 // go to the next level if it is a group
49553 if (node.hasChildren()) {
49554 // depending on the recursion type, we pick a difference set of children
49555 var nodeChildren = null;
49556 switch (recursionType) {
49557 case RecursionType.Normal:
49558 nodeChildren = node.childrenAfterGroup;
49559 break;
49560 case RecursionType.AfterFilter:
49561 nodeChildren = node.childrenAfterFilter;
49562 break;
49563 case RecursionType.AfterFilterAndSort:
49564 nodeChildren = node.childrenAfterSort;
49565 break;
49566 case RecursionType.PivotNodes:
49567 // for pivot, we don't go below leafGroup levels
49568 nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;
49569 break;
49570 }
49571 if (nodeChildren) {
49572 index = this.recursivelyWalkNodesAndCallback(nodeChildren, callback, recursionType, index);
49573 }
49574 }
49575 }
49576 return index;
49577 };
49578 // it's possible to recompute the aggregate without doing the other parts
49579 // + gridApi.recomputeAggregates()
49580 ClientSideRowModel.prototype.doAggregate = function (changedPath) {
49581 if (this.aggregationStage) {
49582 this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
49583 }
49584 };
49585 // + gridApi.expandAll()
49586 // + gridApi.collapseAll()
49587 ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {
49588 var usingTreeData = this.gridOptionsWrapper.isTreeData();
49589 if (this.rootNode) {
49590 recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);
49591 }
49592 function recursiveExpandOrCollapse(rowNodes) {
49593 if (!rowNodes) {
49594 return;
49595 }
49596 rowNodes.forEach(function (rowNode) {
49597 var shouldExpandOrCollapse = usingTreeData ? _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(rowNode.childrenAfterGroup) : rowNode.group;
49598 if (shouldExpandOrCollapse) {
49599 rowNode.expanded = expand;
49600 recursiveExpandOrCollapse(rowNode.childrenAfterGroup);
49601 }
49602 });
49603 }
49604 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP });
49605 var eventSource = expand ? 'expandAll' : 'collapseAll';
49606 var event = {
49607 api: this.gridApi,
49608 columnApi: this.columnApi,
49609 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_EXPAND_COLLAPSE_ALL,
49610 source: eventSource
49611 };
49612 this.eventService.dispatchEvent(event);
49613 };
49614 ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {
49615 this.sortStage.execute({
49616 rowNode: this.rootNode,
49617 rowNodeTransactions: rowNodeTransactions,
49618 changedPath: changedPath
49619 });
49620 };
49621 ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {
49622 if (this.groupStage) {
49623 if (rowNodeTransactions) {
49624 this.groupStage.execute({
49625 rowNode: this.rootNode,
49626 rowNodeTransactions: rowNodeTransactions,
49627 rowNodeOrder: rowNodeOrder,
49628 changedPath: changedPath
49629 });
49630 }
49631 else {
49632 // groups are about to get disposed, so need to deselect any that are selected
49633 this.selectionController.removeGroupsFromSelection();
49634 this.groupStage.execute({
49635 rowNode: this.rootNode,
49636 changedPath: changedPath,
49637 afterColumnsChanged: afterColumnsChanged
49638 });
49639 // set open/closed state on groups
49640 this.restoreGroupState(groupState);
49641 }
49642 if (this.gridOptionsWrapper.isGroupSelectsChildren()) {
49643 this.selectionController.updateGroupsFromChildrenSelections(changedPath);
49644 }
49645 }
49646 else {
49647 this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;
49648 this.rootNode.updateHasChildren();
49649 }
49650 };
49651 ClientSideRowModel.prototype.restoreGroupState = function (groupState) {
49652 if (!groupState) {
49653 return;
49654 }
49655 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {
49656 // if the group was open last time, then open it this time. however
49657 // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'
49658 // setting will take effect.
49659 if (typeof groupState[key] === 'boolean') {
49660 node.expanded = groupState[key];
49661 }
49662 });
49663 };
49664 ClientSideRowModel.prototype.doFilter = function (changedPath) {
49665 this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
49666 };
49667 ClientSideRowModel.prototype.doPivot = function (changedPath) {
49668 if (this.pivotStage) {
49669 this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
49670 }
49671 };
49672 ClientSideRowModel.prototype.getGroupState = function () {
49673 if (!this.rootNode.childrenAfterGroup || !this.gridOptionsWrapper.isRememberGroupStateWhenNewData()) {
49674 return null;
49675 }
49676 var result = {};
49677 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });
49678 return result;
49679 };
49680 ClientSideRowModel.prototype.getCopyOfNodesMap = function () {
49681 return this.nodeManager.getCopyOfNodesMap();
49682 };
49683 ClientSideRowModel.prototype.getRowNode = function (id) {
49684 // although id is typed a string, this could be called by the user, and they could have passed a number
49685 var idIsGroup = typeof id == 'string' && id.indexOf(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"].ID_PREFIX_ROW_GROUP) == 0;
49686 if (idIsGroup) {
49687 // only one users complained about getRowNode not working for groups, after years of
49688 // this working for normal rows. so have done quick implementation. if users complain
49689 // about performance, then GroupStage should store / manage created groups in a map,
49690 // which is a chunk of work.
49691 var res_1 = null;
49692 this.forEachNode(function (node) {
49693 if (node.id === id) {
49694 res_1 = node;
49695 }
49696 });
49697 return res_1;
49698 }
49699 else {
49700 return this.nodeManager.getRowNode(id);
49701 }
49702 };
49703 // rows: the rows to put into the model
49704 ClientSideRowModel.prototype.setRowData = function (rowData) {
49705 // no need to invalidate cache, as the cache is stored on the rowNode,
49706 // so new rowNodes means the cache is wiped anyway.
49707 // remember group state, so we can expand groups that should be expanded
49708 var groupState = this.getGroupState();
49709 this.nodeManager.setRowData(rowData);
49710 // this event kicks off:
49711 // - clears selection
49712 // - updates filters
49713 // - shows 'no rows' overlay if needed
49714 var rowDataChangedEvent = {
49715 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_DATA_CHANGED,
49716 api: this.gridApi,
49717 columnApi: this.columnApi
49718 };
49719 this.eventService.dispatchEvent(rowDataChangedEvent);
49720 this.refreshModel({
49721 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49722 groupState: groupState,
49723 newData: true
49724 });
49725 };
49726 ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {
49727 var _this = this;
49728 if (this.applyAsyncTransactionsTimeout == null) {
49729 this.rowDataTransactionBatch = [];
49730 var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();
49731 this.applyAsyncTransactionsTimeout = window.setTimeout(function () {
49732 _this.executeBatchUpdateRowData();
49733 }, waitMillis);
49734 }
49735 this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });
49736 };
49737 ClientSideRowModel.prototype.flushAsyncTransactions = function () {
49738 if (this.applyAsyncTransactionsTimeout != null) {
49739 clearTimeout(this.applyAsyncTransactionsTimeout);
49740 this.executeBatchUpdateRowData();
49741 }
49742 };
49743 ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {
49744 var _this = this;
49745 this.valueCache.onDataChanged();
49746 var callbackFuncsBound = [];
49747 var rowNodeTrans = [];
49748 // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to
49749 // commonUpdateRowData, using addIndex would have no effect when grouping.
49750 var forceRowNodeOrder = false;
49751 if (this.rowDataTransactionBatch) {
49752 this.rowDataTransactionBatch.forEach(function (tranItem) {
49753 var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);
49754 rowNodeTrans.push(rowNodeTran);
49755 if (tranItem.callback) {
49756 callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));
49757 }
49758 if (typeof tranItem.rowDataTransaction.addIndex === 'number') {
49759 forceRowNodeOrder = true;
49760 }
49761 });
49762 }
49763 this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);
49764 // do callbacks in next VM turn so it's async
49765 if (callbackFuncsBound.length > 0) {
49766 window.setTimeout(function () {
49767 callbackFuncsBound.forEach(function (func) { return func(); });
49768 }, 0);
49769 }
49770 if (rowNodeTrans.length > 0) {
49771 var event_1 = {
49772 api: this.gridOptionsWrapper.getApi(),
49773 columnApi: this.gridOptionsWrapper.getColumnApi(),
49774 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ASYNC_TRANSACTIONS_FLUSHED,
49775 results: rowNodeTrans
49776 };
49777 this.eventService.dispatchEvent(event_1);
49778 }
49779 this.rowDataTransactionBatch = null;
49780 this.applyAsyncTransactionsTimeout = undefined;
49781 };
49782 ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {
49783 this.valueCache.onDataChanged();
49784 var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);
49785 // if doing immutableData, addIndex is never present. however if doing standard transaction, and user
49786 // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup
49787 // stage also uses the
49788 var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';
49789 this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);
49790 return rowNodeTran;
49791 };
49792 ClientSideRowModel.prototype.createRowNodeOrder = function () {
49793 var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();
49794 if (suppressSortOrder) {
49795 return;
49796 }
49797 var orderMap = {};
49798 if (this.rootNode && this.rootNode.allLeafChildren) {
49799 for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {
49800 var node = this.rootNode.allLeafChildren[index];
49801 orderMap[node.id] = index;
49802 }
49803 }
49804 return orderMap;
49805 };
49806 // common to updateRowData and batchUpdateRowData
49807 ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {
49808 if (forceRowNodeOrder) {
49809 rowNodeOrder = this.createRowNodeOrder();
49810 }
49811 this.refreshModel({
49812 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49813 rowNodeTransactions: rowNodeTrans,
49814 rowNodeOrder: rowNodeOrder,
49815 keepRenderedRows: true,
49816 animate: true,
49817 keepEditingRows: true
49818 });
49819 var event = {
49820 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_DATA_UPDATED,
49821 api: this.gridApi,
49822 columnApi: this.columnApi
49823 };
49824 this.eventService.dispatchEvent(event);
49825 };
49826 ClientSideRowModel.prototype.doRowsToDisplay = function () {
49827 this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });
49828 };
49829 ClientSideRowModel.prototype.onRowHeightChanged = function () {
49830 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP, keepRenderedRows: true, keepEditingRows: true });
49831 };
49832 ClientSideRowModel.prototype.resetRowHeights = function () {
49833 var atLeastOne = false;
49834 this.forEachNode(function (rowNode) {
49835 rowNode.setRowHeight(rowNode.rowHeight, true);
49836 // we keep the height each row is at, however we set estimated=true rather than clear the height.
49837 // this means the grid will not reset the row heights back to defaults, rather it will re-calc
49838 // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.
49839 var detailNode = rowNode.detailNode;
49840 if (detailNode) {
49841 detailNode.setRowHeight(detailNode.rowHeight, true);
49842 }
49843 atLeastOne = true;
49844 });
49845 if (atLeastOne) {
49846 this.onRowHeightChanged();
49847 }
49848 };
49849 __decorate([
49850 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
49851 ], ClientSideRowModel.prototype, "columnController", void 0);
49852 __decorate([
49853 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$scope')
49854 ], ClientSideRowModel.prototype, "$scope", void 0);
49855 __decorate([
49856 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
49857 ], ClientSideRowModel.prototype, "selectionController", void 0);
49858 __decorate([
49859 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
49860 ], ClientSideRowModel.prototype, "valueCache", void 0);
49861 __decorate([
49862 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
49863 ], ClientSideRowModel.prototype, "columnApi", void 0);
49864 __decorate([
49865 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
49866 ], ClientSideRowModel.prototype, "gridApi", void 0);
49867 __decorate([
49868 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
49869 ], ClientSideRowModel.prototype, "animationFrameService", void 0);
49870 __decorate([
49871 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterStage')
49872 ], ClientSideRowModel.prototype, "filterStage", void 0);
49873 __decorate([
49874 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortStage')
49875 ], ClientSideRowModel.prototype, "sortStage", void 0);
49876 __decorate([
49877 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('flattenStage')
49878 ], ClientSideRowModel.prototype, "flattenStage", void 0);
49879 __decorate([
49880 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('groupStage')
49881 ], ClientSideRowModel.prototype, "groupStage", void 0);
49882 __decorate([
49883 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('aggregationStage')
49884 ], ClientSideRowModel.prototype, "aggregationStage", void 0);
49885 __decorate([
49886 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('pivotStage')
49887 ], ClientSideRowModel.prototype, "pivotStage", void 0);
49888 __decorate([
49889 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
49890 ], ClientSideRowModel.prototype, "init", null);
49891 ClientSideRowModel = __decorate([
49892 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowModel')
49893 ], ClientSideRowModel);
49894 return ClientSideRowModel;
49895}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
49896
49897
49898
49899/***/ }),
49900/* 234 */
49901/***/ (function(module, __webpack_exports__, __webpack_require__) {
49902
49903"use strict";
49904__webpack_require__.r(__webpack_exports__);
49905/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideNodeManager", function() { return ClientSideNodeManager; });
49906/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
49907var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
49908 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
49909 for (var r = Array(s), k = 0, i = 0; i < il; i++)
49910 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
49911 r[k] = a[j];
49912 return r;
49913};
49914
49915var ClientSideNodeManager = /** @class */ (function () {
49916 function ClientSideNodeManager(rootNode, gridOptionsWrapper, context, eventService, columnController, gridApi, columnApi, selectionController) {
49917 this.nextId = 0;
49918 // when user is provide the id's, we also keep a map of ids to row nodes for convenience
49919 this.allNodesMap = {};
49920 this.rootNode = rootNode;
49921 this.gridOptionsWrapper = gridOptionsWrapper;
49922 this.context = context;
49923 this.eventService = eventService;
49924 this.columnController = columnController;
49925 this.gridApi = gridApi;
49926 this.columnApi = columnApi;
49927 this.selectionController = selectionController;
49928 this.rootNode.group = true;
49929 this.rootNode.level = -1;
49930 this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;
49931 this.rootNode.allLeafChildren = [];
49932 this.rootNode.childrenAfterGroup = [];
49933 this.rootNode.childrenAfterSort = [];
49934 this.rootNode.childrenAfterFilter = [];
49935 // if we make this class a bean, then can annotate postConstruct
49936 this.postConstruct();
49937 }
49938 // @PostConstruct - this is not a bean, so postConstruct called by constructor
49939 ClientSideNodeManager.prototype.postConstruct = function () {
49940 // func below doesn't have 'this' pointer, so need to pull out these bits
49941 this.suppressParentsInRowNodes = this.gridOptionsWrapper.isSuppressParentsInRowNodes();
49942 this.isRowMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();
49943 this.doingTreeData = this.gridOptionsWrapper.isTreeData();
49944 this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();
49945 };
49946 ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {
49947 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].cloneObject(this.allNodesMap);
49948 };
49949 ClientSideNodeManager.prototype.getRowNode = function (id) {
49950 return this.allNodesMap[id];
49951 };
49952 ClientSideNodeManager.prototype.setRowData = function (rowData) {
49953 this.rootNode.childrenAfterFilter = null;
49954 this.rootNode.childrenAfterGroup = null;
49955 this.rootNode.childrenAfterSort = null;
49956 this.rootNode.childrenMapped = null;
49957 this.rootNode.updateHasChildren();
49958 this.nextId = 0;
49959 this.allNodesMap = {};
49960 if (!rowData) {
49961 this.rootNode.allLeafChildren = [];
49962 this.rootNode.childrenAfterGroup = [];
49963 return;
49964 }
49965 // kick off recursion
49966 // we add rootNode as the parent, however if using ag-grid-enterprise, the grouping stage
49967 // sets the parent node on each row (even if we are not grouping). so setting parent node
49968 // here is for benefit of ag-grid-community users
49969 this.rootNode.allLeafChildren = this.recursiveFunction(rowData, this.rootNode, ClientSideNodeManager.TOP_LEVEL);
49970 };
49971 ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {
49972 var rowNodeTransaction = {
49973 remove: [],
49974 update: [],
49975 add: []
49976 };
49977 var nodesToUnselect = [];
49978 this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);
49979 this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);
49980 this.executeAdd(rowDataTran, rowNodeTransaction);
49981 this.updateSelection(nodesToUnselect);
49982 if (rowNodeOrder) {
49983 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);
49984 }
49985 return rowNodeTransaction;
49986 };
49987 ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect) {
49988 var selectionChanged = nodesToUnselect.length > 0;
49989 if (selectionChanged) {
49990 nodesToUnselect.forEach(function (rowNode) {
49991 rowNode.setSelected(false, false, true);
49992 });
49993 }
49994 // we do this regardless of nodes to unselect or not, as it's possible
49995 // a new node was inserted, so a parent that was previously selected (as all
49996 // children were selected) should not be tri-state (as new one unselected against
49997 // all other selected children).
49998 this.selectionController.updateGroupsFromChildrenSelections();
49999 if (selectionChanged) {
50000 var event_1 = {
50001 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SELECTION_CHANGED,
50002 api: this.gridApi,
50003 columnApi: this.columnApi
50004 };
50005 this.eventService.dispatchEvent(event_1);
50006 }
50007 };
50008 ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {
50009 var _this = this;
50010 var add = rowDataTran.add, addIndex = rowDataTran.addIndex;
50011 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(add)) {
50012 return;
50013 }
50014 // create new row nodes for each data item
50015 var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });
50016 // add new row nodes to the root nodes 'allLeafChildren'
50017 var useIndex = typeof addIndex === 'number' && addIndex >= 0;
50018 if (useIndex) {
50019 // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.
50020 // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.
50021 var existingLeafChildren = this.rootNode.allLeafChildren;
50022 var nodesBeforeIndex = existingLeafChildren.slice(0, addIndex);
50023 var nodesAfterIndex = existingLeafChildren.slice(addIndex, existingLeafChildren.length);
50024 this.rootNode.allLeafChildren = __spreadArrays(nodesBeforeIndex, newNodes, nodesAfterIndex);
50025 }
50026 else {
50027 this.rootNode.allLeafChildren = __spreadArrays(this.rootNode.allLeafChildren, newNodes);
50028 }
50029 // add new row nodes to the transaction add items
50030 rowNodeTransaction.add = newNodes;
50031 };
50032 ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {
50033 var _this = this;
50034 var remove = rowDataTran.remove;
50035 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(remove)) {
50036 return;
50037 }
50038 var rowIdsRemoved = {};
50039 remove.forEach(function (item) {
50040 var rowNode = _this.lookupRowNode(item);
50041 if (!rowNode) {
50042 return;
50043 }
50044 // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for
50045 // each row node updated, instead it is raised once by the calling code if any selected nodes exist.
50046 if (rowNode.isSelected()) {
50047 nodesToUnselect.push(rowNode);
50048 }
50049 // so row renderer knows to fade row out (and not reposition it)
50050 rowNode.clearRowTopAndRowIndex();
50051 // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially
50052 // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list
50053 rowIdsRemoved[rowNode.id] = true;
50054 // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);
50055 delete _this.allNodesMap[rowNode.id];
50056 rowNodeTransaction.remove.push(rowNode);
50057 });
50058 this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });
50059 };
50060 ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {
50061 var _this = this;
50062 var update = rowDataTran.update;
50063 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(update)) {
50064 return;
50065 }
50066 update.forEach(function (item) {
50067 var rowNode = _this.lookupRowNode(item);
50068 if (!rowNode) {
50069 return;
50070 }
50071 rowNode.updateData(item);
50072 if (!rowNode.selectable && rowNode.isSelected()) {
50073 nodesToUnselect.push(rowNode);
50074 }
50075 _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);
50076 rowNodeTransaction.update.push(rowNode);
50077 });
50078 };
50079 ClientSideNodeManager.prototype.lookupRowNode = function (data) {
50080 var rowNodeIdFunc = this.gridOptionsWrapper.getRowNodeIdFunc();
50081 var rowNode;
50082 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(rowNodeIdFunc)) {
50083 // find rowNode using id
50084 var id = rowNodeIdFunc(data);
50085 rowNode = this.allNodesMap[id];
50086 if (!rowNode) {
50087 console.error("AG Grid: could not find row id=" + id + ", data item was not found for this id");
50088 return null;
50089 }
50090 }
50091 else {
50092 // find rowNode using object references
50093 rowNode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].find(this.rootNode.allLeafChildren, function (node) { return node.data === data; });
50094 if (!rowNode) {
50095 console.error("AG Grid: could not find data item as object was not found", data);
50096 return null;
50097 }
50098 }
50099 return rowNode;
50100 };
50101 ClientSideNodeManager.prototype.recursiveFunction = function (rowData, parent, level) {
50102 var _this = this;
50103 // make sure the rowData is an array and not a string of json - this was a commonly reported problem on the forum
50104 if (typeof rowData === 'string') {
50105 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');
50106 return;
50107 }
50108 var rowNodes = [];
50109 rowData.forEach(function (dataItem) {
50110 var node = _this.createNode(dataItem, parent, level);
50111 rowNodes.push(node);
50112 });
50113 return rowNodes;
50114 };
50115 ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {
50116 var node = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
50117 this.context.createBean(node);
50118 node.group = false;
50119 this.setMasterForRow(node, dataItem, level, true);
50120 if (parent && !this.suppressParentsInRowNodes) {
50121 node.parent = parent;
50122 }
50123 node.level = level;
50124 node.setDataAndId(dataItem, this.nextId.toString());
50125 if (this.allNodesMap[node.id]) {
50126 console.warn("ag-grid: duplicate node id '" + node.id + "' detected from getRowNodeId callback, this could cause issues in your grid.");
50127 }
50128 this.allNodesMap[node.id] = node;
50129 this.nextId++;
50130 return node;
50131 };
50132 ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {
50133 if (this.doingTreeData) {
50134 rowNode.setMaster(false);
50135 if (setExpanded) {
50136 rowNode.expanded = false;
50137 }
50138 }
50139 else {
50140 // this is the default, for when doing grid data
50141 if (this.doingMasterDetail) {
50142 // if we are doing master detail, then the
50143 // default is that everything can be a Master Row.
50144 if (this.isRowMasterFunc) {
50145 rowNode.setMaster(this.isRowMasterFunc(data));
50146 }
50147 else {
50148 rowNode.setMaster(true);
50149 }
50150 }
50151 else {
50152 rowNode.setMaster(false);
50153 }
50154 if (setExpanded) {
50155 var rowGroupColumns = this.columnController.getRowGroupColumns();
50156 var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;
50157 // need to take row group into account when determining level
50158 var masterRowLevel = level + numRowGroupColumns;
50159 rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;
50160 }
50161 }
50162 };
50163 ClientSideNodeManager.prototype.isExpanded = function (level) {
50164 var expandByDefault = this.gridOptionsWrapper.getGroupDefaultExpanded();
50165 if (expandByDefault === -1) {
50166 return true;
50167 }
50168 return level < expandByDefault;
50169 };
50170 ClientSideNodeManager.TOP_LEVEL = 0;
50171 ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';
50172 return ClientSideNodeManager;
50173}());
50174
50175
50176
50177/***/ }),
50178/* 235 */
50179/***/ (function(module, __webpack_exports__, __webpack_require__) {
50180
50181"use strict";
50182__webpack_require__.r(__webpack_exports__);
50183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterStage", function() { return FilterStage; });
50184/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50185var __extends = (undefined && undefined.__extends) || (function () {
50186 var extendStatics = function (d, b) {
50187 extendStatics = Object.setPrototypeOf ||
50188 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50189 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50190 return extendStatics(d, b);
50191 };
50192 return function (d, b) {
50193 extendStatics(d, b);
50194 function __() { this.constructor = d; }
50195 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50196 };
50197})();
50198var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50199 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50200 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50201 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50202 return c > 3 && r && Object.defineProperty(target, key, r), r;
50203};
50204
50205var FilterStage = /** @class */ (function (_super) {
50206 __extends(FilterStage, _super);
50207 function FilterStage() {
50208 return _super !== null && _super.apply(this, arguments) || this;
50209 }
50210 FilterStage.prototype.execute = function (params) {
50211 var rowNode = params.rowNode, changedPath = params.changedPath;
50212 this.filterService.filter(changedPath);
50213 this.selectableService.updateSelectableAfterFiltering(rowNode);
50214 };
50215 __decorate([
50216 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectableService')
50217 ], FilterStage.prototype, "selectableService", void 0);
50218 __decorate([
50219 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterService')
50220 ], FilterStage.prototype, "filterService", void 0);
50221 FilterStage = __decorate([
50222 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('filterStage')
50223 ], FilterStage);
50224 return FilterStage;
50225}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50226
50227
50228
50229/***/ }),
50230/* 236 */
50231/***/ (function(module, __webpack_exports__, __webpack_require__) {
50232
50233"use strict";
50234__webpack_require__.r(__webpack_exports__);
50235/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortStage", function() { return SortStage; });
50236/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50237var __extends = (undefined && undefined.__extends) || (function () {
50238 var extendStatics = function (d, b) {
50239 extendStatics = Object.setPrototypeOf ||
50240 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50241 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50242 return extendStatics(d, b);
50243 };
50244 return function (d, b) {
50245 extendStatics(d, b);
50246 function __() { this.constructor = d; }
50247 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50248 };
50249})();
50250var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50251 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50252 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50253 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50254 return c > 3 && r && Object.defineProperty(target, key, r), r;
50255};
50256
50257var SortStage = /** @class */ (function (_super) {
50258 __extends(SortStage, _super);
50259 function SortStage() {
50260 return _super !== null && _super.apply(this, arguments) || this;
50261 }
50262 SortStage.prototype.execute = function (params) {
50263 var sortOptions = this.sortController.getSortOptions();
50264 var sortActive = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(sortOptions) && sortOptions.length > 0;
50265 var deltaSort = sortActive
50266 && _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(params.rowNodeTransactions)
50267 // in time we can remove this check, so that delta sort is always
50268 // on if transactions are present. it's off for now so that we can
50269 // selectively turn it on and test it with some select users before
50270 // rolling out to everyone.
50271 && this.gridOptionsWrapper.isDeltaSort();
50272 // we only need dirty nodes if doing delta sort
50273 var dirtyLeafNodes = deltaSort ? this.calculateDirtyNodes(params.rowNodeTransactions) : null;
50274 var valueColumns = this.columnController.getValueColumns();
50275 var noAggregations = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(valueColumns);
50276 this.sortService.sort(sortOptions, sortActive, deltaSort, dirtyLeafNodes, params.changedPath, noAggregations);
50277 };
50278 SortStage.prototype.calculateDirtyNodes = function (rowNodeTransactions) {
50279 var dirtyNodes = {};
50280 var addNodesFunc = function (rowNodes) {
50281 if (rowNodes) {
50282 rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });
50283 }
50284 };
50285 // all leaf level nodes in the transaction were impacted
50286 if (rowNodeTransactions) {
50287 rowNodeTransactions.forEach(function (tran) {
50288 addNodesFunc(tran.add);
50289 addNodesFunc(tran.update);
50290 addNodesFunc(tran.remove);
50291 });
50292 }
50293 return dirtyNodes;
50294 };
50295 __decorate([
50296 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortService')
50297 ], SortStage.prototype, "sortService", void 0);
50298 __decorate([
50299 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
50300 ], SortStage.prototype, "sortController", void 0);
50301 __decorate([
50302 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
50303 ], SortStage.prototype, "columnController", void 0);
50304 SortStage = __decorate([
50305 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortStage')
50306 ], SortStage);
50307 return SortStage;
50308}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50309
50310
50311
50312/***/ }),
50313/* 237 */
50314/***/ (function(module, __webpack_exports__, __webpack_require__) {
50315
50316"use strict";
50317__webpack_require__.r(__webpack_exports__);
50318/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FlattenStage", function() { return FlattenStage; });
50319/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
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 (b.hasOwnProperty(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
50340var FlattenStage = /** @class */ (function (_super) {
50341 __extends(FlattenStage, _super);
50342 function FlattenStage() {
50343 return _super !== null && _super.apply(this, arguments) || this;
50344 }
50345 FlattenStage.prototype.execute = function (params) {
50346 var rootNode = params.rowNode;
50347 // even if not doing grouping, we do the mapping, as the client might
50348 // of passed in data that already has a grouping in it somewhere
50349 var result = [];
50350 // putting value into a wrapper so it's passed by reference
50351 var nextRowTop = { value: 0 };
50352 var skipLeafNodes = this.columnController.isPivotMode();
50353 // if we are reducing, and not grouping, then we want to show the root node, as that
50354 // is where the pivot values are
50355 var showRootNode = skipLeafNodes && rootNode.leafGroup;
50356 var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;
50357 this.recursivelyAddToRowsToDisplay(topList, result, nextRowTop, skipLeafNodes, 0);
50358 // we do not want the footer total if the gris is empty
50359 var atLeastOneRowPresent = result.length > 0;
50360 var includeGroupTotalFooter = !showRootNode
50361 // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)
50362 && atLeastOneRowPresent
50363 && this.gridOptionsWrapper.isGroupIncludeTotalFooter();
50364 if (includeGroupTotalFooter) {
50365 this.ensureFooterNodeExists(rootNode);
50366 this.addRowNodeToRowsToDisplay(rootNode.sibling, result, nextRowTop, 0);
50367 }
50368 return result;
50369 };
50370 FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (rowsToFlatten, result, nextRowTop, skipLeafNodes, uiLevel) {
50371 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(rowsToFlatten)) {
50372 return;
50373 }
50374 var hideOpenParents = this.gridOptionsWrapper.isGroupHideOpenParents();
50375 // these two are mutually exclusive, so if first set, we don't set the second
50376 var groupRemoveSingleChildren = this.gridOptionsWrapper.isGroupRemoveSingleChildren();
50377 var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsWrapper.isGroupRemoveLowestSingleChildren();
50378 for (var i = 0; i < rowsToFlatten.length; i++) {
50379 var rowNode = rowsToFlatten[i];
50380 // check all these cases, for working out if this row should be included in the final mapped list
50381 var isParent = rowNode.hasChildren();
50382 var isSkippedLeafNode = skipLeafNodes && !isParent;
50383 var isRemovedSingleChildrenGroup = groupRemoveSingleChildren &&
50384 isParent &&
50385 rowNode.childrenAfterGroup.length === 1;
50386 var isRemovedLowestSingleChildrenGroup = groupRemoveLowestSingleChildren &&
50387 isParent &&
50388 rowNode.leafGroup &&
50389 rowNode.childrenAfterGroup.length === 1;
50390 // hide open parents means when group is open, we don't show it. we also need to make sure the
50391 // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).
50392 // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all')
50393 var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;
50394 var isHiddenOpenParent = hideOpenParents && rowNode.expanded && (!neverAllowToExpand);
50395 var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&
50396 !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;
50397 if (thisRowShouldBeRendered) {
50398 this.addRowNodeToRowsToDisplay(rowNode, result, nextRowTop, uiLevel);
50399 }
50400 // if we are pivoting, we never map below the leaf group
50401 if (skipLeafNodes && rowNode.leafGroup) {
50402 continue;
50403 }
50404 if (isParent) {
50405 var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;
50406 // we traverse the group if it is expended, however we always traverse if the parent node
50407 // was removed (as the group will never be opened if it is not displayed, we show the children instead)
50408 if (rowNode.expanded || excludedParent) {
50409 // if the parent was excluded, then ui level is that of the parent
50410 var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;
50411 this.recursivelyAddToRowsToDisplay(rowNode.childrenAfterSort, result, nextRowTop, skipLeafNodes, uiLevelForChildren);
50412 // put a footer in if user is looking for it
50413 if (this.gridOptionsWrapper.isGroupIncludeFooter()) {
50414 this.ensureFooterNodeExists(rowNode);
50415 this.addRowNodeToRowsToDisplay(rowNode.sibling, result, nextRowTop, uiLevel);
50416 }
50417 }
50418 }
50419 else if (rowNode.master && rowNode.expanded) {
50420 var detailNode = this.createDetailNode(rowNode);
50421 this.addRowNodeToRowsToDisplay(detailNode, result, nextRowTop, uiLevel);
50422 }
50423 }
50424 };
50425 // duplicated method, it's also in floatingRowModel
50426 FlattenStage.prototype.addRowNodeToRowsToDisplay = function (rowNode, result, nextRowTop, uiLevel) {
50427 var isGroupMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();
50428 result.push(rowNode);
50429 rowNode.setUiLevel(isGroupMultiAutoColumn ? 0 : uiLevel);
50430 };
50431 FlattenStage.prototype.ensureFooterNodeExists = function (groupNode) {
50432 // only create footer node once, otherwise we have daemons and
50433 // the animate screws up with the daemons hanging around
50434 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(groupNode.sibling)) {
50435 return;
50436 }
50437 var footerNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
50438 this.context.createBean(footerNode);
50439 Object.keys(groupNode).forEach(function (key) {
50440 footerNode[key] = groupNode[key];
50441 });
50442 footerNode.footer = true;
50443 footerNode.setRowTop(null);
50444 footerNode.setRowIndex(null);
50445 // manually set oldRowTop to null so we discard any
50446 // previous information about its position.
50447 footerNode.oldRowTop = null;
50448 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(footerNode.id)) {
50449 footerNode.id = 'rowGroupFooter_' + footerNode.id;
50450 }
50451 // get both header and footer to reference each other as siblings. this is never undone,
50452 // only overwritten. so if a group is expanded, then contracted, it will have a ghost
50453 // sibling - but that's fine, as we can ignore this if the header is contracted.
50454 footerNode.sibling = groupNode;
50455 groupNode.sibling = footerNode;
50456 };
50457 FlattenStage.prototype.createDetailNode = function (masterNode) {
50458 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(masterNode.detailNode)) {
50459 return masterNode.detailNode;
50460 }
50461 var detailNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
50462 this.context.createBean(detailNode);
50463 detailNode.detail = true;
50464 detailNode.selectable = false;
50465 detailNode.parent = masterNode;
50466 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(masterNode.id)) {
50467 detailNode.id = 'detail_' + masterNode.id;
50468 }
50469 detailNode.data = masterNode.data;
50470 detailNode.level = masterNode.level + 1;
50471 masterNode.detailNode = detailNode;
50472 return detailNode;
50473 };
50474 __decorate([
50475 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
50476 ], FlattenStage.prototype, "columnController", void 0);
50477 FlattenStage = __decorate([
50478 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('flattenStage')
50479 ], FlattenStage);
50480 return FlattenStage;
50481}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50482
50483
50484
50485/***/ }),
50486/* 238 */
50487/***/ (function(module, __webpack_exports__, __webpack_require__) {
50488
50489"use strict";
50490__webpack_require__.r(__webpack_exports__);
50491/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortService", function() { return SortService; });
50492/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50493var __extends = (undefined && undefined.__extends) || (function () {
50494 var extendStatics = function (d, b) {
50495 extendStatics = Object.setPrototypeOf ||
50496 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50497 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50498 return extendStatics(d, b);
50499 };
50500 return function (d, b) {
50501 extendStatics(d, b);
50502 function __() { this.constructor = d; }
50503 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50504 };
50505})();
50506var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50507 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50508 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50509 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50510 return c > 3 && r && Object.defineProperty(target, key, r), r;
50511};
50512
50513var SortService = /** @class */ (function (_super) {
50514 __extends(SortService, _super);
50515 function SortService() {
50516 return _super !== null && _super.apply(this, arguments) || this;
50517 }
50518 SortService.prototype.init = function () {
50519 this.postSortFunc = this.gridOptionsWrapper.getPostSortFunc();
50520 };
50521 SortService.prototype.sort = function (sortOptions, sortActive, deltaSort, dirtyLeafNodes, changedPath, noAggregations) {
50522 var _this = this;
50523 var callback = function (rowNode) {
50524 // we clear out the 'pull down open parents' first, as the values mix up the sorting
50525 _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterFilter, true);
50526 // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,
50527 // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we
50528 // are going to inspect the original array position. This is what sortedRowNodes is for.
50529 if (sortActive) {
50530 rowNode.childrenAfterSort = deltaSort ?
50531 _this.doDeltaSort(rowNode, sortOptions, dirtyLeafNodes, changedPath, noAggregations)
50532 : _this.rowNodeSorter.doFullSort(rowNode.childrenAfterFilter, sortOptions);
50533 }
50534 else {
50535 rowNode.childrenAfterSort = rowNode.childrenAfterFilter.slice(0);
50536 }
50537 _this.updateChildIndexes(rowNode);
50538 if (_this.postSortFunc) {
50539 _this.postSortFunc(rowNode.childrenAfterSort);
50540 }
50541 };
50542 if (changedPath) {
50543 changedPath.forEachChangedNodeDepthFirst(callback);
50544 }
50545 this.updateGroupDataForHiddenOpenParents(changedPath);
50546 };
50547 SortService.prototype.mapNodeToSortedNode = function (rowNode, pos) {
50548 return { currentPos: pos, rowNode: rowNode };
50549 };
50550 SortService.prototype.doDeltaSort = function (rowNode, sortOptions, dirtyLeafNodes, changedPath, noAggregations) {
50551 // clean nodes will be a list of all row nodes that remain in the set
50552 // and ordered. we start with the old sorted set and take out any nodes
50553 // that were removed or changed (but not added, added doesn't make sense,
50554 // if a node was added, there is no way it could be here from last time).
50555 var cleanNodes = rowNode.childrenAfterSort
50556 .filter(function (node) {
50557 // take out all nodes that were changed as part of the current transaction.
50558 // a changed node could a) be in a different sort position or b) may
50559 // no longer be in this set as the changed node may not pass filtering,
50560 // or be in a different group.
50561 var passesDirtyNodesCheck = !dirtyLeafNodes[node.id];
50562 // also remove group nodes in the changed path, as they can have different aggregate
50563 // values which could impact the sort order.
50564 // note: changed path is not active if a) no value columns or b) no transactions. it is never
50565 // (b) in deltaSort as we only do deltaSort for transactions. for (a) if no value columns, then
50566 // there is no value in the group that could of changed (ie no aggregate values)
50567 var passesChangedPathCheck = noAggregations || (changedPath && changedPath.canSkip(node));
50568 return passesDirtyNodesCheck && passesChangedPathCheck;
50569 })
50570 .map(this.mapNodeToSortedNode.bind(this));
50571 // for fast access below, we map them
50572 var cleanNodesMapped = {};
50573 cleanNodes.forEach(function (sortedRowNode) { return cleanNodesMapped[sortedRowNode.rowNode.id] = sortedRowNode.rowNode; });
50574 // these are all nodes that need to be placed
50575 var changedNodes = rowNode.childrenAfterFilter
50576 // ignore nodes in the clean list
50577 .filter(function (node) { return !cleanNodesMapped[node.id]; })
50578 .map(this.mapNodeToSortedNode.bind(this));
50579 // sort changed nodes. note that we don't need to sort cleanNodes as they are
50580 // already sorted from last time.
50581 changedNodes.sort(this.rowNodeSorter.compareRowNodes.bind(this, sortOptions));
50582 var result;
50583 if (changedNodes.length === 0) {
50584 result = cleanNodes;
50585 }
50586 else if (cleanNodes.length === 0) {
50587 result = changedNodes;
50588 }
50589 else {
50590 result = this.mergeSortedArrays(sortOptions, cleanNodes, changedNodes);
50591 }
50592 return result.map(function (item) { return item.rowNode; });
50593 };
50594 // Merge two sorted arrays into each other
50595 SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {
50596 var res = [];
50597 var i = 0;
50598 var j = 0;
50599 // Traverse both array, adding them in order
50600 while (i < arr1.length && j < arr2.length) {
50601 // Check if current element of first
50602 // array is smaller than current element
50603 // of second array. If yes, store first
50604 // array element and increment first array
50605 // index. Otherwise do same with second array
50606 var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);
50607 if (compareResult < 0) {
50608 res.push(arr1[i++]);
50609 }
50610 else {
50611 res.push(arr2[j++]);
50612 }
50613 }
50614 // add remaining from arr1
50615 while (i < arr1.length) {
50616 res.push(arr1[i++]);
50617 }
50618 // add remaining from arr2
50619 while (j < arr2.length) {
50620 res.push(arr2[j++]);
50621 }
50622 return res;
50623 };
50624 SortService.prototype.updateChildIndexes = function (rowNode) {
50625 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNode.childrenAfterSort)) {
50626 return;
50627 }
50628 var listToSort = rowNode.childrenAfterSort;
50629 for (var i = 0; i < listToSort.length; i++) {
50630 var child = listToSort[i];
50631 var firstChild = i === 0;
50632 var lastChild = i === rowNode.childrenAfterSort.length - 1;
50633 child.setFirstChild(firstChild);
50634 child.setLastChild(lastChild);
50635 child.setChildIndex(i);
50636 }
50637 };
50638 SortService.prototype.updateGroupDataForHiddenOpenParents = function (changedPath) {
50639 var _this = this;
50640 if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {
50641 return;
50642 }
50643 // recurse breadth first over group nodes after sort to 'pull down' group data to child groups
50644 var callback = function (rowNode) {
50645 _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);
50646 rowNode.childrenAfterSort.forEach(function (child) {
50647 if (child.hasChildren()) {
50648 callback(child);
50649 }
50650 });
50651 };
50652 if (changedPath) {
50653 changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });
50654 }
50655 };
50656 SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {
50657 var _this = this;
50658 if (!this.gridOptionsWrapper.isGroupHideOpenParents() || _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNodes)) {
50659 return;
50660 }
50661 rowNodes.forEach(function (childRowNode) {
50662 var groupDisplayCols = _this.columnController.getGroupDisplayColumns();
50663 groupDisplayCols.forEach(function (groupDisplayCol) {
50664 var showRowGroup = groupDisplayCol.getColDef().showRowGroup;
50665 if (typeof showRowGroup !== 'string') {
50666 console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');
50667 return;
50668 }
50669 var displayingGroupKey = showRowGroup;
50670 var rowGroupColumn = _this.columnController.getPrimaryColumn(displayingGroupKey);
50671 var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;
50672 if (thisRowNodeMatches) {
50673 return;
50674 }
50675 if (clearOperation) {
50676 // if doing a clear operation, we clear down the value for every possible group column
50677 childRowNode.setGroupValue(groupDisplayCol.getId(), null);
50678 }
50679 else {
50680 // if doing a set operation, we set only where the pull down is to occur
50681 var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);
50682 if (parentToStealFrom) {
50683 childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);
50684 }
50685 }
50686 });
50687 });
50688 };
50689 __decorate([
50690 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
50691 ], SortService.prototype, "columnController", void 0);
50692 __decorate([
50693 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeSorter')
50694 ], SortService.prototype, "rowNodeSorter", void 0);
50695 __decorate([
50696 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50697 ], SortService.prototype, "init", null);
50698 SortService = __decorate([
50699 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortService')
50700 ], SortService);
50701 return SortService;
50702}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50703
50704
50705
50706/***/ }),
50707/* 239 */
50708/***/ (function(module, __webpack_exports__, __webpack_require__) {
50709
50710"use strict";
50711__webpack_require__.r(__webpack_exports__);
50712/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterService", function() { return FilterService; });
50713/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50714var __extends = (undefined && undefined.__extends) || (function () {
50715 var extendStatics = function (d, b) {
50716 extendStatics = Object.setPrototypeOf ||
50717 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50718 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50719 return extendStatics(d, b);
50720 };
50721 return function (d, b) {
50722 extendStatics(d, b);
50723 function __() { this.constructor = d; }
50724 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50725 };
50726})();
50727var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50728 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50729 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50730 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50731 return c > 3 && r && Object.defineProperty(target, key, r), r;
50732};
50733
50734var FilterService = /** @class */ (function (_super) {
50735 __extends(FilterService, _super);
50736 function FilterService() {
50737 return _super !== null && _super.apply(this, arguments) || this;
50738 }
50739 FilterService.prototype.postConstruct = function () {
50740 this.doingTreeData = this.gridOptionsWrapper.isTreeData();
50741 };
50742 FilterService.prototype.filter = function (changedPath) {
50743 var filterActive = this.filterManager.isAnyFilterPresent();
50744 this.filterNodes(filterActive, changedPath);
50745 };
50746 FilterService.prototype.filterNodes = function (filterActive, changedPath) {
50747 var _this = this;
50748 var filterCallback = function (rowNode, includeChildNodes) {
50749 // recursively get all children that are groups to also filter
50750 if (rowNode.hasChildren()) {
50751 // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes
50752 if (filterActive && !includeChildNodes) {
50753 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {
50754 // a group is included in the result if it has any children of it's own.
50755 // by this stage, the child groups are already filtered
50756 var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;
50757 // both leaf level nodes and tree data nodes have data. these get added if
50758 // the data passes the filter
50759 var passBecauseDataPasses = childNode.data
50760 && _this.filterManager.doesRowPassFilter({ rowNode: childNode });
50761 // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass
50762 return passBecauseChildren || passBecauseDataPasses;
50763 });
50764 }
50765 else {
50766 // if not filtering, the result is the original list
50767 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
50768 }
50769 _this.setAllChildrenCount(rowNode);
50770 }
50771 else {
50772 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
50773 rowNode.setAllChildrenCount(null);
50774 }
50775 };
50776 if (this.doingTreeDataFiltering()) {
50777 var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {
50778 // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes
50779 // filter, and parent nodes will be include if any children exist.
50780 if (rowNode.childrenAfterGroup) {
50781 for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {
50782 var childNode = rowNode.childrenAfterGroup[i];
50783 // first check if current node passes filter before invoking child nodes
50784 var foundInParent = alreadyFoundInParent
50785 || _this.filterManager.doesRowPassFilter({ rowNode: childNode });
50786 if (childNode.childrenAfterGroup) {
50787 treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);
50788 }
50789 else {
50790 filterCallback(childNode, foundInParent);
50791 }
50792 }
50793 }
50794 filterCallback(rowNode, alreadyFoundInParent);
50795 };
50796 var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };
50797 changedPath.executeFromRootNode(treeDataFilterCallback);
50798 }
50799 else {
50800 var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };
50801 changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);
50802 }
50803 };
50804 FilterService.prototype.setAllChildrenCountTreeData = function (rowNode) {
50805 // for tree data, we include all children, groups and leafs
50806 var allChildrenCount = 0;
50807 rowNode.childrenAfterFilter.forEach(function (child) {
50808 // include child itself
50809 allChildrenCount++;
50810 // include children of children
50811 allChildrenCount += child.allChildrenCount;
50812 });
50813 rowNode.setAllChildrenCount(allChildrenCount);
50814 };
50815 FilterService.prototype.setAllChildrenCountGridGrouping = function (rowNode) {
50816 // for grid data, we only count the leafs
50817 var allChildrenCount = 0;
50818 rowNode.childrenAfterFilter.forEach(function (child) {
50819 if (child.group) {
50820 allChildrenCount += child.allChildrenCount;
50821 }
50822 else {
50823 allChildrenCount++;
50824 }
50825 });
50826 rowNode.setAllChildrenCount(allChildrenCount);
50827 };
50828 FilterService.prototype.setAllChildrenCount = function (rowNode) {
50829 if (this.doingTreeData) {
50830 this.setAllChildrenCountTreeData(rowNode);
50831 }
50832 else {
50833 this.setAllChildrenCountGridGrouping(rowNode);
50834 }
50835 };
50836 FilterService.prototype.doingTreeDataFiltering = function () {
50837 return this.gridOptionsWrapper.isTreeData() && !this.gridOptionsWrapper.isExcludeChildrenWhenTreeDataFiltering();
50838 };
50839 __decorate([
50840 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
50841 ], FilterService.prototype, "filterManager", void 0);
50842 __decorate([
50843 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50844 ], FilterService.prototype, "postConstruct", null);
50845 FilterService = __decorate([
50846 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])("filterService")
50847 ], FilterService);
50848 return FilterService;
50849}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50850
50851
50852
50853/***/ }),
50854/* 240 */
50855/***/ (function(module, __webpack_exports__, __webpack_require__) {
50856
50857"use strict";
50858__webpack_require__.r(__webpack_exports__);
50859/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImmutableService", function() { return ImmutableService; });
50860/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50861var __extends = (undefined && undefined.__extends) || (function () {
50862 var extendStatics = function (d, b) {
50863 extendStatics = Object.setPrototypeOf ||
50864 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50865 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50866 return extendStatics(d, b);
50867 };
50868 return function (d, b) {
50869 extendStatics(d, b);
50870 function __() { this.constructor = d; }
50871 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50872 };
50873})();
50874var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50875 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50876 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50877 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
50878 return c > 3 && r && Object.defineProperty(target, key, r), r;
50879};
50880
50881var ImmutableService = /** @class */ (function (_super) {
50882 __extends(ImmutableService, _super);
50883 function ImmutableService() {
50884 return _super !== null && _super.apply(this, arguments) || this;
50885 }
50886 ImmutableService.prototype.postConstruct = function () {
50887 if (this.rowModel.getType() === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
50888 this.clientSideRowModel = this.rowModel;
50889 }
50890 };
50891 // converts the setRowData() command to a transaction
50892 ImmutableService.prototype.createTransactionForRowData = function (data) {
50893 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.clientSideRowModel)) {
50894 console.error('AG Grid: ImmutableService only works with ClientSideRowModel');
50895 return;
50896 }
50897 var getRowNodeIdFunc = this.gridOptionsWrapper.getRowNodeIdFunc();
50898 if (!getRowNodeIdFunc || _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(getRowNodeIdFunc)) {
50899 console.error('AG Grid: ImmutableService requires getRowNodeId() callback to be implemented, your row data need IDs!');
50900 return;
50901 }
50902 // convert the data into a transaction object by working out adds, removes and updates
50903 var transaction = {
50904 remove: [],
50905 update: [],
50906 add: []
50907 };
50908 var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();
50909 var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();
50910 var orderMap = suppressSortOrder ? null : {};
50911 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(data)) {
50912 // split all the new data in the following:
50913 // if new, push to 'add'
50914 // if update, push to 'update'
50915 // if not changed, do not include in the transaction
50916 data.forEach(function (dataItem, index) {
50917 var id = getRowNodeIdFunc(dataItem);
50918 var existingNode = existingNodesMap[id];
50919 if (orderMap) {
50920 orderMap[id] = index;
50921 }
50922 if (existingNode) {
50923 var dataHasChanged = existingNode.data !== dataItem;
50924 if (dataHasChanged) {
50925 transaction.update.push(dataItem);
50926 }
50927 // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta
50928 // remove from list, so we know the item is not to be removed
50929 existingNodesMap[id] = undefined;
50930 }
50931 else {
50932 transaction.add.push(dataItem);
50933 }
50934 });
50935 }
50936 // at this point, all rows that are left, should be removed
50937 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].iterateObject(existingNodesMap, function (id, rowNode) {
50938 if (rowNode) {
50939 transaction.remove.push(rowNode.data);
50940 }
50941 });
50942 return [transaction, orderMap];
50943 };
50944 __decorate([
50945 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
50946 ], ImmutableService.prototype, "rowModel", void 0);
50947 __decorate([
50948 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50949 ], ImmutableService.prototype, "postConstruct", null);
50950 ImmutableService = __decorate([
50951 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('immutableService')
50952 ], ImmutableService);
50953 return ImmutableService;
50954}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50955
50956
50957
50958/***/ }),
50959/* 241 */
50960/***/ (function(module, __webpack_exports__, __webpack_require__) {
50961
50962"use strict";
50963__webpack_require__.r(__webpack_exports__);
50964/* harmony import */ var _csvExport_baseCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242);
50965/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return _csvExport_baseCreator__WEBPACK_IMPORTED_MODULE_0__["BaseCreator"]; });
50966
50967/* harmony import */ var _csvExport_sessions_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243);
50968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return _csvExport_sessions_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__["BaseGridSerializingSession"]; });
50969
50970/* harmony import */ var _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(244);
50971/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_2__["CsvCreator"]; });
50972
50973/* harmony import */ var _csvExportModule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(247);
50974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return _csvExportModule__WEBPACK_IMPORTED_MODULE_3__["CsvExportModule"]; });
50975
50976/* harmony import */ var _csvExport_downloader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(245);
50977/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return _csvExport_downloader__WEBPACK_IMPORTED_MODULE_4__["Downloader"]; });
50978
50979/* harmony import */ var _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(248);
50980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__["GridSerializer"]; });
50981
50982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__["RowType"]; });
50983
50984/* harmony import */ var _csvExport_xmlFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(249);
50985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return _csvExport_xmlFactory__WEBPACK_IMPORTED_MODULE_6__["XmlFactory"]; });
50986
50987/* harmony import */ var _csvExport_zipContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(250);
50988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return _csvExport_zipContainer__WEBPACK_IMPORTED_MODULE_7__["ZipContainer"]; });
50989
50990
50991
50992
50993
50994
50995
50996
50997
50998
50999
51000/***/ }),
51001/* 242 */
51002/***/ (function(module, __webpack_exports__, __webpack_require__) {
51003
51004"use strict";
51005__webpack_require__.r(__webpack_exports__);
51006/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return BaseCreator; });
51007/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51008
51009var BaseCreator = /** @class */ (function () {
51010 function BaseCreator() {
51011 }
51012 BaseCreator.prototype.setBeans = function (beans) {
51013 this.beans = beans;
51014 };
51015 BaseCreator.prototype.getFileName = function (fileName) {
51016 var extension = this.getDefaultFileExtension();
51017 if (fileName == null || !fileName.length) {
51018 fileName = this.getDefaultFileName();
51019 }
51020 return fileName.indexOf('.') === -1 ? fileName + "." + extension : fileName;
51021 };
51022 BaseCreator.prototype.getMergedParamsAndData = function (userParams) {
51023 var mergedParams = this.mergeDefaultParams(userParams);
51024 var data = this.beans.gridSerializer.serialize(this.createSerializingSession(mergedParams), mergedParams);
51025 return { mergedParams: mergedParams, data: data };
51026 };
51027 BaseCreator.prototype.mergeDefaultParams = function (userParams) {
51028 var baseParams = this.getDefaultExportParams();
51029 var params = {};
51030 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].assign(params, baseParams);
51031 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].assign(params, userParams);
51032 return params;
51033 };
51034 return BaseCreator;
51035}());
51036
51037
51038
51039/***/ }),
51040/* 243 */
51041/***/ (function(module, __webpack_exports__, __webpack_require__) {
51042
51043"use strict";
51044__webpack_require__.r(__webpack_exports__);
51045/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return BaseGridSerializingSession; });
51046/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51047
51048var BaseGridSerializingSession = /** @class */ (function () {
51049 function BaseGridSerializingSession(config) {
51050 this.groupColumns = [];
51051 var columnController = config.columnController, valueService = config.valueService, gridOptionsWrapper = config.gridOptionsWrapper, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;
51052 this.columnController = columnController;
51053 this.valueService = valueService;
51054 this.gridOptionsWrapper = gridOptionsWrapper;
51055 this.processCellCallback = processCellCallback;
51056 this.processHeaderCallback = processHeaderCallback;
51057 this.processGroupHeaderCallback = processGroupHeaderCallback;
51058 this.processRowGroupCallback = processRowGroupCallback;
51059 }
51060 BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {
51061 this.groupColumns = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].filter(columnsToExport, function (col) { return !!col.getColDef().showRowGroup; });
51062 };
51063 BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {
51064 var value = this.getHeaderName(this.processHeaderCallback, column);
51065 return value != null ? value : '';
51066 };
51067 BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {
51068 // we render the group summary text e.g. "-> Parent -> Child"...
51069 var groupIndex = this.gridOptionsWrapper.isGroupMultiAutoColumn() ? node.rowGroupIndex : 0;
51070 var renderGroupSummaryCell =
51071 // on group rows
51072 node && node.group
51073 && (
51074 // in the group column if groups appear in regular grid cells
51075 index === groupIndex && this.groupColumns.indexOf(column) !== -1
51076 // or the first cell in the row, if we're doing full width rows
51077 || (index === 0 && this.gridOptionsWrapper.isGroupUseEntireRow(this.columnController.isPivotMode())));
51078 var valueForCell;
51079 if (renderGroupSummaryCell) {
51080 valueForCell = this.createValueForGroupNode(node);
51081 }
51082 else {
51083 valueForCell = this.valueService.getValue(column, node);
51084 }
51085 var value = this.processCell(accumulatedRowIndex, node, column, valueForCell, this.processCellCallback, type);
51086 return value != null ? value : '';
51087 };
51088 BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {
51089 if (callback) {
51090 return callback({
51091 column: column,
51092 api: this.gridOptionsWrapper.getApi(),
51093 columnApi: this.gridOptionsWrapper.getColumnApi(),
51094 context: this.gridOptionsWrapper.getContext()
51095 });
51096 }
51097 return this.columnController.getDisplayNameForColumn(column, 'csv', true);
51098 };
51099 BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {
51100 if (this.processRowGroupCallback) {
51101 return this.processRowGroupCallback({
51102 node: node,
51103 api: this.gridOptionsWrapper.getApi(),
51104 columnApi: this.gridOptionsWrapper.getColumnApi(),
51105 context: this.gridOptionsWrapper.getContext(),
51106 });
51107 }
51108 var keys = [node.key];
51109 if (!this.gridOptionsWrapper.isGroupMultiAutoColumn()) {
51110 while (node.parent) {
51111 node = node.parent;
51112 keys.push(node.key);
51113 }
51114 }
51115 return keys.reverse().join(' -> ');
51116 };
51117 BaseGridSerializingSession.prototype.processCell = function (accumulatedRowIndex, rowNode, column, value, processCellCallback, type) {
51118 if (processCellCallback) {
51119 return processCellCallback({
51120 accumulatedRowIndex: accumulatedRowIndex,
51121 column: column,
51122 node: rowNode,
51123 value: value,
51124 api: this.gridOptionsWrapper.getApi(),
51125 columnApi: this.gridOptionsWrapper.getColumnApi(),
51126 context: this.gridOptionsWrapper.getContext(),
51127 type: type
51128 });
51129 }
51130 return value != null ? value : '';
51131 };
51132 return BaseGridSerializingSession;
51133}());
51134
51135
51136
51137/***/ }),
51138/* 244 */
51139/***/ (function(module, __webpack_exports__, __webpack_require__) {
51140
51141"use strict";
51142__webpack_require__.r(__webpack_exports__);
51143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return CsvCreator; });
51144/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51145/* harmony import */ var _baseCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(242);
51146/* harmony import */ var _downloader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(245);
51147/* harmony import */ var _sessions_csvSerializingSession__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(246);
51148var __extends = (undefined && undefined.__extends) || (function () {
51149 var extendStatics = function (d, b) {
51150 extendStatics = Object.setPrototypeOf ||
51151 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51152 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
51153 return extendStatics(d, b);
51154 };
51155 return function (d, b) {
51156 extendStatics(d, b);
51157 function __() { this.constructor = d; }
51158 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51159 };
51160})();
51161var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51162 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51163 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51164 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
51165 return c > 3 && r && Object.defineProperty(target, key, r), r;
51166};
51167
51168
51169
51170
51171var CsvCreator = /** @class */ (function (_super) {
51172 __extends(CsvCreator, _super);
51173 function CsvCreator() {
51174 return _super !== null && _super.apply(this, arguments) || this;
51175 }
51176 CsvCreator.prototype.postConstruct = function () {
51177 this.setBeans({
51178 gridSerializer: this.gridSerializer,
51179 gridOptionsWrapper: this.gridOptionsWrapper
51180 });
51181 };
51182 CsvCreator.prototype.getDefaultExportParams = function () {
51183 return this.gridOptionsWrapper.getDefaultExportParams('csv');
51184 };
51185 CsvCreator.prototype.export = function (userParams) {
51186 if (this.isExportSuppressed()) {
51187 console.warn("ag-grid: Export cancelled. Export is not allowed as per your configuration.");
51188 return '';
51189 }
51190 var _a = this.getMergedParamsAndData(userParams), mergedParams = _a.mergedParams, data = _a.data;
51191 var packagedFile = new Blob(["\ufeff", data], {
51192 // @ts-ignore
51193 type: window.navigator.msSaveOrOpenBlob ? this.getMimeType() : 'octet/stream'
51194 });
51195 _downloader__WEBPACK_IMPORTED_MODULE_2__["Downloader"].download(this.getFileName(mergedParams.fileName), packagedFile);
51196 return data;
51197 };
51198 CsvCreator.prototype.exportDataAsCsv = function (params) {
51199 return this.export(params);
51200 };
51201 CsvCreator.prototype.getDataAsCsv = function (params) {
51202 return this.getMergedParamsAndData(params).data;
51203 };
51204 CsvCreator.prototype.getMimeType = function () {
51205 return 'text/csv;charset=utf-8;';
51206 };
51207 CsvCreator.prototype.getDefaultFileName = function () {
51208 return 'export.csv';
51209 };
51210 CsvCreator.prototype.getDefaultFileExtension = function () {
51211 return 'csv';
51212 };
51213 CsvCreator.prototype.createSerializingSession = function (params) {
51214 var _a = this, columnController = _a.columnController, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;
51215 var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;
51216 return new _sessions_csvSerializingSession__WEBPACK_IMPORTED_MODULE_3__["CsvSerializingSession"]({
51217 columnController: columnController,
51218 valueService: valueService,
51219 gridOptionsWrapper: gridOptionsWrapper,
51220 processCellCallback: processCellCallback || undefined,
51221 processHeaderCallback: processHeaderCallback || undefined,
51222 processGroupHeaderCallback: processGroupHeaderCallback || undefined,
51223 processRowGroupCallback: processRowGroupCallback || undefined,
51224 suppressQuotes: suppressQuotes || false,
51225 columnSeparator: columnSeparator || ','
51226 });
51227 };
51228 CsvCreator.prototype.isExportSuppressed = function () {
51229 return this.gridOptionsWrapper.isSuppressCsvExport();
51230 };
51231 __decorate([
51232 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
51233 ], CsvCreator.prototype, "columnController", void 0);
51234 __decorate([
51235 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
51236 ], CsvCreator.prototype, "valueService", void 0);
51237 __decorate([
51238 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridSerializer')
51239 ], CsvCreator.prototype, "gridSerializer", void 0);
51240 __decorate([
51241 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
51242 ], CsvCreator.prototype, "gridOptionsWrapper", void 0);
51243 __decorate([
51244 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
51245 ], CsvCreator.prototype, "postConstruct", null);
51246 CsvCreator = __decorate([
51247 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('csvCreator')
51248 ], CsvCreator);
51249 return CsvCreator;
51250}(_baseCreator__WEBPACK_IMPORTED_MODULE_1__["BaseCreator"]));
51251
51252
51253
51254/***/ }),
51255/* 245 */
51256/***/ (function(module, __webpack_exports__, __webpack_require__) {
51257
51258"use strict";
51259__webpack_require__.r(__webpack_exports__);
51260/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return Downloader; });
51261var Downloader = /** @class */ (function () {
51262 function Downloader() {
51263 }
51264 Downloader.download = function (fileName, content) {
51265 var win = document.defaultView || window;
51266 if (!win) {
51267 console.warn('AG Grid: There is no `window` associated with the current `document`');
51268 return;
51269 }
51270 // Internet Explorer
51271 if (win.navigator.msSaveOrOpenBlob) {
51272 win.navigator.msSaveOrOpenBlob(content, fileName);
51273 }
51274 else {
51275 // Other Browsers
51276 var element = document.createElement('a');
51277 // @ts-ignore
51278 var url_1 = win.URL.createObjectURL(content);
51279 element.setAttribute('href', url_1);
51280 element.setAttribute('download', fileName);
51281 element.style.display = 'none';
51282 document.body.appendChild(element);
51283 element.dispatchEvent(new MouseEvent('click', {
51284 bubbles: false,
51285 cancelable: true,
51286 view: win
51287 }));
51288 document.body.removeChild(element);
51289 win.setTimeout(function () {
51290 // @ts-ignore
51291 win.URL.revokeObjectURL(url_1);
51292 }, 0);
51293 }
51294 };
51295 return Downloader;
51296}());
51297
51298
51299
51300/***/ }),
51301/* 246 */
51302/***/ (function(module, __webpack_exports__, __webpack_require__) {
51303
51304"use strict";
51305__webpack_require__.r(__webpack_exports__);
51306/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvSerializingSession", function() { return CsvSerializingSession; });
51307/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51308/* harmony import */ var _baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243);
51309var __extends = (undefined && undefined.__extends) || (function () {
51310 var extendStatics = function (d, b) {
51311 extendStatics = Object.setPrototypeOf ||
51312 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51313 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
51314 return extendStatics(d, b);
51315 };
51316 return function (d, b) {
51317 extendStatics(d, b);
51318 function __() { this.constructor = d; }
51319 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51320 };
51321})();
51322
51323
51324var LINE_SEPARATOR = '\r\n';
51325var CsvSerializingSession = /** @class */ (function (_super) {
51326 __extends(CsvSerializingSession, _super);
51327 function CsvSerializingSession(config) {
51328 var _this = _super.call(this, config) || this;
51329 _this.isFirstLine = true;
51330 _this.result = '';
51331 var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;
51332 _this.suppressQuotes = suppressQuotes;
51333 _this.columnSeparator = columnSeparator;
51334 return _this;
51335 }
51336 CsvSerializingSession.prototype.addCustomContent = function (content) {
51337 var _this = this;
51338 if (!content) {
51339 return;
51340 }
51341 if (typeof content === 'string') {
51342 if (!/^\s*\n/.test(content)) {
51343 this.beginNewLine();
51344 }
51345 // replace whatever newlines are supplied with the style we're using
51346 content = content.replace(/\r?\n/g, LINE_SEPARATOR);
51347 this.result += content;
51348 }
51349 else {
51350 content.forEach(function (row) {
51351 _this.beginNewLine();
51352 row.forEach(function (cell, index) {
51353 if (index !== 0) {
51354 _this.result += _this.columnSeparator;
51355 }
51356 _this.result += _this.putInQuotes(cell.data.value || '');
51357 if (cell.mergeAcross) {
51358 _this.appendEmptyCells(cell.mergeAcross);
51359 }
51360 });
51361 });
51362 }
51363 };
51364 CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {
51365 this.beginNewLine();
51366 return {
51367 onColumn: this.onNewHeaderGroupingRowColumn.bind(this)
51368 };
51369 };
51370 CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (header, index, span) {
51371 if (index != 0) {
51372 this.result += this.columnSeparator;
51373 }
51374 this.result += this.putInQuotes(header);
51375 this.appendEmptyCells(span);
51376 };
51377 CsvSerializingSession.prototype.appendEmptyCells = function (count) {
51378 for (var i = 1; i <= count; i++) {
51379 this.result += this.columnSeparator + this.putInQuotes("");
51380 }
51381 };
51382 CsvSerializingSession.prototype.onNewHeaderRow = function () {
51383 this.beginNewLine();
51384 return {
51385 onColumn: this.onNewHeaderRowColumn.bind(this)
51386 };
51387 };
51388 CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {
51389 if (index != 0) {
51390 this.result += this.columnSeparator;
51391 }
51392 this.result += this.putInQuotes(this.extractHeaderValue(column));
51393 };
51394 CsvSerializingSession.prototype.onNewBodyRow = function () {
51395 this.beginNewLine();
51396 return {
51397 onColumn: this.onNewBodyRowColumn.bind(this)
51398 };
51399 };
51400 CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {
51401 if (index != 0) {
51402 this.result += this.columnSeparator;
51403 }
51404 this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].EXPORT_TYPE_CSV, node));
51405 };
51406 CsvSerializingSession.prototype.putInQuotes = function (value) {
51407 if (this.suppressQuotes) {
51408 return value;
51409 }
51410 if (value === null || value === undefined) {
51411 return '""';
51412 }
51413 var stringValue;
51414 if (typeof value === 'string') {
51415 stringValue = value;
51416 }
51417 else if (typeof value.toString === 'function') {
51418 stringValue = value.toString();
51419 }
51420 else {
51421 console.warn('unknown value type during csv conversion');
51422 stringValue = '';
51423 }
51424 // replace each " with "" (ie two sets of double quotes is how to do double quotes in csv)
51425 var valueEscaped = stringValue.replace(/"/g, "\"\"");
51426 return '"' + valueEscaped + '"';
51427 };
51428 CsvSerializingSession.prototype.parse = function () {
51429 return this.result;
51430 };
51431 CsvSerializingSession.prototype.beginNewLine = function () {
51432 if (!this.isFirstLine) {
51433 this.result += LINE_SEPARATOR;
51434 }
51435 this.isFirstLine = false;
51436 };
51437 return CsvSerializingSession;
51438}(_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__["BaseGridSerializingSession"]));
51439
51440
51441
51442/***/ }),
51443/* 247 */
51444/***/ (function(module, __webpack_exports__, __webpack_require__) {
51445
51446"use strict";
51447__webpack_require__.r(__webpack_exports__);
51448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return CsvExportModule; });
51449/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51450/* harmony import */ var _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(244);
51451/* harmony import */ var _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(248);
51452
51453
51454
51455var CsvExportModule = {
51456 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].CsvExportModule,
51457 beans: [_csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_1__["CsvCreator"], _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_2__["GridSerializer"]]
51458};
51459
51460
51461/***/ }),
51462/* 248 */
51463/***/ (function(module, __webpack_exports__, __webpack_require__) {
51464
51465"use strict";
51466__webpack_require__.r(__webpack_exports__);
51467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return RowType; });
51468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return GridSerializer; });
51469/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51470var __extends = (undefined && undefined.__extends) || (function () {
51471 var extendStatics = function (d, b) {
51472 extendStatics = Object.setPrototypeOf ||
51473 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51474 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
51475 return extendStatics(d, b);
51476 };
51477 return function (d, b) {
51478 extendStatics(d, b);
51479 function __() { this.constructor = d; }
51480 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51481 };
51482})();
51483var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51484 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51485 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51486 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
51487 return c > 3 && r && Object.defineProperty(target, key, r), r;
51488};
51489
51490var RowType;
51491(function (RowType) {
51492 RowType[RowType["HEADER_GROUPING"] = 0] = "HEADER_GROUPING";
51493 RowType[RowType["HEADER"] = 1] = "HEADER";
51494 RowType[RowType["BODY"] = 2] = "BODY";
51495})(RowType || (RowType = {}));
51496var GridSerializer = /** @class */ (function (_super) {
51497 __extends(GridSerializer, _super);
51498 function GridSerializer() {
51499 return _super !== null && _super.apply(this, arguments) || this;
51500 }
51501 GridSerializer.prototype.serialize = function (gridSerializingSession, params) {
51502 if (params === void 0) { params = {}; }
51503 var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);
51504 var serializeChain = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].compose(
51505 // first pass, put in the header names of the cols
51506 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));
51507 return serializeChain(gridSerializingSession).parse();
51508 };
51509 GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {
51510 var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });
51511 var gridOptionsWrapper = this.gridOptionsWrapper;
51512 var context = gridOptionsWrapper.getContext();
51513 var api = gridOptionsWrapper.getApi();
51514 var columnApi = gridOptionsWrapper.getColumnApi();
51515 var skipSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveSingleChildren();
51516 var hideOpenParents = gridOptionsWrapper.isGroupHideOpenParents();
51517 var skipLowestSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveLowestSingleChildren();
51518 var isLeafNode = this.columnController.isPivotMode() ? node.leafGroup : !node.group;
51519 var skipRowGroups = params.skipGroups || params.skipRowGroups;
51520 var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;
51521 var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);
51522 if (skipRowGroups && params.skipGroups) {
51523 _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');
51524 }
51525 if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||
51526 (params.onlySelected && !node.isSelected()) ||
51527 (params.skipPinnedTop && node.rowPinned === 'top') ||
51528 (params.skipPinnedBottom && node.rowPinned === 'bottom')) {
51529 return;
51530 }
51531 // if we are in pivotMode, then the grid will show the root node only
51532 // if it's not a leaf group
51533 var nodeIsRootNode = node.level === -1;
51534 if (nodeIsRootNode && !node.leafGroup) {
51535 return;
51536 }
51537 var shouldRowBeSkipped = rowSkipper({ node: node, api: api, context: context });
51538 if (shouldRowBeSkipped) {
51539 return;
51540 }
51541 var rowAccumulator = gridSerializingSession.onNewBodyRow();
51542 columnsToExport.forEach(function (column, index) {
51543 rowAccumulator.onColumn(column, index, node);
51544 });
51545 if (params.getCustomContentBelowRow) {
51546 var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });
51547 if (content) {
51548 gridSerializingSession.addCustomContent(content);
51549 }
51550 }
51551 };
51552 GridSerializer.prototype.appendContent = function (params) {
51553 return function (gridSerializingSession) {
51554 var appendContent = params.customFooter || params.appendContent;
51555 if (appendContent) {
51556 if (params.customFooter) {
51557 _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');
51558 }
51559 gridSerializingSession.addCustomContent(appendContent);
51560 }
51561 return gridSerializingSession;
51562 };
51563 };
51564 GridSerializer.prototype.prependContent = function (params) {
51565 return function (gridSerializingSession) {
51566 var prependContent = params.customHeader || params.prependContent;
51567 if (prependContent) {
51568 if (params.customHeader) {
51569 _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');
51570 }
51571 gridSerializingSession.addCustomContent(prependContent);
51572 }
51573 return gridSerializingSession;
51574 };
51575 };
51576 GridSerializer.prototype.prepareSession = function (columnsToExport) {
51577 return function (gridSerializingSession) {
51578 gridSerializingSession.prepare(columnsToExport);
51579 return gridSerializingSession;
51580 };
51581 };
51582 GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {
51583 var _this = this;
51584 return function (gridSerializingSession) {
51585 if (!params.skipColumnGroupHeaders) {
51586 var groupInstanceIdCreator = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GroupInstanceIdCreator"]();
51587 var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnController.getGridBalancedTree(), groupInstanceIdCreator, null);
51588 _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);
51589 }
51590 else if (params.columnGroups) {
51591 _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');
51592 }
51593 return gridSerializingSession;
51594 };
51595 };
51596 GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {
51597 return function (gridSerializingSession) {
51598 if (!params.skipHeader && !params.skipColumnHeaders) {
51599 var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();
51600 columnsToExport.forEach(function (column, index) {
51601 gridRowIterator_1.onColumn(column, index, undefined);
51602 });
51603 }
51604 else if (params.skipHeader) {
51605 _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');
51606 }
51607 return gridSerializingSession;
51608 };
51609 };
51610 GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {
51611 var _this = this;
51612 return function (gridSerializingSession) {
51613 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
51614 _this.pinnedRowModel.forEachPinnedTopRow(processRow);
51615 return gridSerializingSession;
51616 };
51617 };
51618 GridSerializer.prototype.processRows = function (params, columnsToExport) {
51619 var _this = this;
51620 return function (gridSerializingSession) {
51621 // when in pivot mode, we always render cols on screen, never 'all columns'
51622 var rowModel = _this.rowModel;
51623 var rowModelType = rowModel.getType();
51624 var usingCsrm = rowModelType === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
51625 var usingSsrm = rowModelType === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE;
51626 var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;
51627 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
51628 if (_this.columnController.isPivotMode()) {
51629 if (usingCsrm) {
51630 rowModel.forEachPivotNode(processRow);
51631 }
51632 else {
51633 // must be enterprise, so we can just loop through all the nodes
51634 rowModel.forEachNode(processRow);
51635 }
51636 }
51637 else {
51638 // onlySelectedAllPages: user doing pagination and wants selected items from
51639 // other pages, so cannot use the standard row model as it won't have rows from
51640 // other pages.
51641 // onlySelectedNonStandardModel: if user wants selected in non standard row model
51642 // (eg viewport) then again RowModel cannot be used, so need to use selected instead.
51643 if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {
51644 var selectedNodes = _this.selectionController.getSelectedNodes();
51645 selectedNodes.forEach(processRow);
51646 }
51647 else {
51648 // here is everything else - including standard row model and selected. we don't use
51649 // the selection model even when just using selected, so that the result is the order
51650 // of the rows appearing on the screen.
51651 if (usingCsrm) {
51652 rowModel.forEachNodeAfterFilterAndSort(processRow);
51653 }
51654 else if (usingSsrm) {
51655 rowModel.forEachNodeAfterFilterAndSort(processRow);
51656 }
51657 else {
51658 rowModel.forEachNode(processRow);
51659 }
51660 }
51661 }
51662 return gridSerializingSession;
51663 };
51664 };
51665 GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {
51666 var _this = this;
51667 return function (gridSerializingSession) {
51668 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
51669 _this.pinnedRowModel.forEachPinnedBottomRow(processRow);
51670 return gridSerializingSession;
51671 };
51672 };
51673 GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {
51674 if (allColumns === void 0) { allColumns = false; }
51675 var isPivotMode = this.columnController.isPivotMode();
51676 if (columnKeys && columnKeys.length) {
51677 return this.columnController.getGridColumns(columnKeys);
51678 }
51679 if (allColumns && !isPivotMode) {
51680 // add auto group column for tree data
51681 var columns = this.gridOptionsWrapper.isTreeData()
51682 ? this.columnController.getGridColumns([_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].GROUP_AUTO_COLUMN_ID])
51683 : [];
51684 return columns.concat(this.columnController.getAllPrimaryColumns() || []);
51685 }
51686 return this.columnController.getAllDisplayedColumns();
51687 };
51688 GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {
51689 var directChildrenHeaderGroups = [];
51690 displayedGroups.forEach(function (columnGroupChild) {
51691 var columnGroup = columnGroupChild;
51692 if (!columnGroup.getChildren) {
51693 return;
51694 }
51695 columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });
51696 });
51697 if (displayedGroups.length > 0 && displayedGroups[0] instanceof _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
51698 this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);
51699 }
51700 if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {
51701 this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);
51702 }
51703 };
51704 GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {
51705 var _this = this;
51706 var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();
51707 var columnIndex = 0;
51708 displayedGroups.forEach(function (columnGroupChild) {
51709 var columnGroup = columnGroupChild;
51710 var name;
51711 if (processGroupHeaderCallback) {
51712 name = processGroupHeaderCallback({
51713 columnGroup: columnGroup,
51714 api: _this.gridOptionsWrapper.getApi(),
51715 columnApi: _this.gridOptionsWrapper.getColumnApi(),
51716 context: _this.gridOptionsWrapper.getContext()
51717 });
51718 }
51719 else {
51720 name = _this.columnController.getDisplayNameForColumnGroup(columnGroup, 'header');
51721 }
51722 gridRowIterator.onColumn(name || '', columnIndex++, columnGroup.getLeafColumns().length - 1);
51723 });
51724 };
51725 __decorate([
51726 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('displayedGroupCreator')
51727 ], GridSerializer.prototype, "displayedGroupCreator", void 0);
51728 __decorate([
51729 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
51730 ], GridSerializer.prototype, "columnController", void 0);
51731 __decorate([
51732 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
51733 ], GridSerializer.prototype, "rowModel", void 0);
51734 __decorate([
51735 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
51736 ], GridSerializer.prototype, "pinnedRowModel", void 0);
51737 __decorate([
51738 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
51739 ], GridSerializer.prototype, "selectionController", void 0);
51740 GridSerializer = __decorate([
51741 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])("gridSerializer")
51742 ], GridSerializer);
51743 return GridSerializer;
51744}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
51745
51746
51747
51748/***/ }),
51749/* 249 */
51750/***/ (function(module, __webpack_exports__, __webpack_require__) {
51751
51752"use strict";
51753__webpack_require__.r(__webpack_exports__);
51754/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return XmlFactory; });
51755var LINE_SEPARATOR = '\r\n';
51756var XmlFactory = /** @class */ (function () {
51757 function XmlFactory() {
51758 }
51759 XmlFactory.createHeader = function (headerElement) {
51760 if (headerElement === void 0) { headerElement = {}; }
51761 var headerStart = '<?';
51762 var headerEnd = '?>';
51763 var keys = ['version'];
51764 if (!headerElement.version) {
51765 headerElement.version = "1.0";
51766 }
51767 if (headerElement.encoding) {
51768 keys.push('encoding');
51769 }
51770 if (headerElement.standalone) {
51771 keys.push('standalone');
51772 }
51773 var att = keys.map(function (key) { return key + "=\"" + headerElement[key] + "\""; }).join(' ');
51774 return headerStart + "xml " + att + " " + headerEnd;
51775 };
51776 XmlFactory.createXml = function (xmlElement, booleanTransformer) {
51777 var _this = this;
51778 var props = '';
51779 if (xmlElement.properties) {
51780 if (xmlElement.properties.prefixedAttributes) {
51781 xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {
51782 Object.keys(prefixedSet.map).forEach(function (key) {
51783 props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);
51784 });
51785 });
51786 }
51787 if (xmlElement.properties.rawMap) {
51788 Object.keys(xmlElement.properties.rawMap).forEach(function (key) {
51789 props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);
51790 });
51791 }
51792 }
51793 var result = '<' + xmlElement.name + props;
51794 if (!xmlElement.children && xmlElement.textNode == null) {
51795 return result + '/>' + LINE_SEPARATOR;
51796 }
51797 if (xmlElement.textNode != null) {
51798 return result + '>' + xmlElement.textNode + '</' + xmlElement.name + '>' + LINE_SEPARATOR;
51799 }
51800 result += '>' + LINE_SEPARATOR;
51801 if (xmlElement.children) {
51802 xmlElement.children.forEach(function (it) {
51803 result += _this.createXml(it, booleanTransformer);
51804 });
51805 }
51806 return result + '</' + xmlElement.name + '>' + LINE_SEPARATOR;
51807 };
51808 XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {
51809 if (!value && value !== '' && value !== 0) {
51810 return '';
51811 }
51812 var xmlValue = value;
51813 if ((typeof (value) === 'boolean')) {
51814 if (booleanTransformer) {
51815 xmlValue = booleanTransformer(value);
51816 }
51817 }
51818 return " " + key + "=\"" + xmlValue + "\"";
51819 };
51820 return XmlFactory;
51821}());
51822
51823
51824
51825/***/ }),
51826/* 250 */
51827/***/ (function(module, __webpack_exports__, __webpack_require__) {
51828
51829"use strict";
51830__webpack_require__.r(__webpack_exports__);
51831/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return ZipContainer; });
51832/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51833
51834// table for crc calculation
51835// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references
51836var crcTable = new Uint32Array([
51837 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
51838 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
51839 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
51840 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
51841 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
51842 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
51843 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
51844 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
51845 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
51846 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
51847 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
51848 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
51849 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
51850 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
51851 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
51852 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
51853 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
51854 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
51855 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
51856 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
51857 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
51858 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
51859 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
51860 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
51861 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
51862 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
51863 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
51864 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
51865 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
51866 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
51867 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
51868 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
51869 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
51870 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
51871 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
51872 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
51873 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
51874 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
51875 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
51876 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
51877 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
51878 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
51879 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
51880]);
51881var ZipContainer = /** @class */ (function () {
51882 function ZipContainer() {
51883 }
51884 ZipContainer.addFolders = function (paths) {
51885 paths.forEach(this.addFolder.bind(this));
51886 };
51887 ZipContainer.addFolder = function (path) {
51888 this.folders.push({
51889 path: path,
51890 created: new Date(),
51891 isBase64: false
51892 });
51893 };
51894 ZipContainer.addFile = function (path, content, isBase64) {
51895 if (isBase64 === void 0) { isBase64 = false; }
51896 this.files.push({
51897 path: path,
51898 created: new Date(),
51899 content: content,
51900 isBase64: isBase64
51901 });
51902 };
51903 ZipContainer.getContent = function (mimeType) {
51904 if (mimeType === void 0) { mimeType = 'application/zip'; }
51905 var textOutput = this.buildFileStream();
51906 var uInt8Output = this.buildUint8Array(textOutput);
51907 this.clearStream();
51908 return new Blob([uInt8Output], { type: mimeType });
51909 };
51910 ZipContainer.clearStream = function () {
51911 this.folders = [];
51912 this.files = [];
51913 };
51914 ZipContainer.buildFileStream = function (fData) {
51915 if (fData === void 0) { fData = ''; }
51916 var totalFiles = this.folders.concat(this.files);
51917 var len = totalFiles.length;
51918 var foData = '';
51919 var lL = 0;
51920 var cL = 0;
51921 for (var _i = 0, totalFiles_1 = totalFiles; _i < totalFiles_1.length; _i++) {
51922 var currentFile = totalFiles_1[_i];
51923 var _a = this.getHeader(currentFile, lL), fileHeader = _a.fileHeader, folderHeader = _a.folderHeader, content = _a.content;
51924 lL += fileHeader.length + content.length;
51925 cL += folderHeader.length;
51926 fData += fileHeader + content;
51927 foData += folderHeader;
51928 }
51929 var foEnd = this.buildFolderEnd(len, cL, lL);
51930 return fData + foData + foEnd;
51931 };
51932 ZipContainer.getHeader = function (currentFile, offset) {
51933 var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;
51934 var utf8_encode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].utf8_encode, decToHex = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].decToHex;
51935 var utfPath = utf8_encode(path);
51936 var isUTF8 = utfPath !== path;
51937 var time = this.convertTime(created);
51938 var dt = this.convertDate(created);
51939 var extraFields = '';
51940 if (isUTF8) {
51941 var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;
51942 extraFields = "\x75\x70" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;
51943 }
51944 var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;
51945 var header = '\x0A\x00' +
51946 (isUTF8 ? '\x00\x08' : '\x00\x00') +
51947 '\x00\x00' +
51948 decToHex(time, 2) + // last modified time
51949 decToHex(dt, 2) + // last modified date
51950 decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +
51951 decToHex(size, 4) + // compressed size
51952 decToHex(size, 4) + // uncompressed size
51953 decToHex(utfPath.length, 2) + // file name length
51954 decToHex(extraFields.length, 2); // extra field length
51955 var fileHeader = 'PK\x03\x04' + header + utfPath + extraFields;
51956 var folderHeader = 'PK\x01\x02' + // central header
51957 '\x14\x00' +
51958 header + // file header
51959 '\x00\x00' +
51960 '\x00\x00' +
51961 '\x00\x00' +
51962 (content ? '\x00\x00\x00\x00' : '\x10\x00\x00\x00') + // external file attributes
51963 decToHex(offset, 4) + // relative offset of local header
51964 utfPath + // file name
51965 extraFields; // extra field
51966 return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };
51967 };
51968 ZipContainer.getConvertedContent = function (content, isBase64) {
51969 if (isBase64 === void 0) { isBase64 = false; }
51970 if (isBase64) {
51971 content = content.split(';base64,')[1];
51972 }
51973 content = isBase64 ? atob(content) : content;
51974 return {
51975 size: content.length,
51976 content: content
51977 };
51978 };
51979 ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {
51980 var decToHex = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].decToHex;
51981 return 'PK\x05\x06' + // central folder end
51982 '\x00\x00' +
51983 '\x00\x00' +
51984 decToHex(tLen, 2) + // total number of entries in the central folder
51985 decToHex(tLen, 2) + // total number of entries in the central folder
51986 decToHex(cLen, 4) + // size of the central folder
51987 decToHex(lLen, 4) + // central folder start offset
51988 '\x00\x00';
51989 };
51990 ZipContainer.buildUint8Array = function (content) {
51991 var uint8 = new Uint8Array(content.length);
51992 for (var i = 0; i < uint8.length; i++) {
51993 uint8[i] = content.charCodeAt(i);
51994 }
51995 return uint8;
51996 };
51997 ZipContainer.getFromCrc32Table = function (content) {
51998 if (!content.length) {
51999 return 0;
52000 }
52001 var size = content.length;
52002 var iterable = new Uint8Array(size);
52003 for (var i = 0; i < size; i++) {
52004 iterable[i] = content.charCodeAt(i);
52005 }
52006 var crc = 0 ^ (-1);
52007 var j = 0;
52008 var k = 0;
52009 var l = 0;
52010 for (var i = 0; i < size; i++) {
52011 j = iterable[i];
52012 k = (crc ^ j) & 0xFF;
52013 l = crcTable[k];
52014 crc = (crc >>> 8) ^ l;
52015 }
52016 return crc ^ (-1);
52017 };
52018 ZipContainer.convertTime = function (date) {
52019 var time = date.getHours();
52020 time <<= 6;
52021 time = time | date.getMinutes();
52022 time <<= 5;
52023 time = time | date.getSeconds() / 2;
52024 return time;
52025 };
52026 ZipContainer.convertDate = function (date) {
52027 var dt = date.getFullYear() - 1980;
52028 dt <<= 4;
52029 dt = dt | (date.getMonth() + 1);
52030 dt <<= 5;
52031 dt = dt | date.getDate();
52032 return dt;
52033 };
52034 ZipContainer.folders = [];
52035 ZipContainer.files = [];
52036 return ZipContainer;
52037}());
52038
52039
52040
52041/***/ }),
52042/* 251 */
52043/***/ (function(module, __webpack_exports__, __webpack_require__) {
52044
52045"use strict";
52046__webpack_require__.r(__webpack_exports__);
52047/* harmony import */ var _infiniteRowModelModule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(252);
52048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return _infiniteRowModelModule__WEBPACK_IMPORTED_MODULE_0__["InfiniteRowModelModule"]; });
52049
52050
52051
52052
52053/***/ }),
52054/* 252 */
52055/***/ (function(module, __webpack_exports__, __webpack_require__) {
52056
52057"use strict";
52058__webpack_require__.r(__webpack_exports__);
52059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return InfiniteRowModelModule; });
52060/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52061/* harmony import */ var _infiniteRowModel_infiniteRowModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(253);
52062
52063
52064var InfiniteRowModelModule = {
52065 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].InfiniteRowModelModule,
52066 rowModels: { infinite: _infiniteRowModel_infiniteRowModel__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModel"] }
52067};
52068
52069
52070/***/ }),
52071/* 253 */
52072/***/ (function(module, __webpack_exports__, __webpack_require__) {
52073
52074"use strict";
52075__webpack_require__.r(__webpack_exports__);
52076/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModel", function() { return InfiniteRowModel; });
52077/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52078/* harmony import */ var _infiniteCache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(254);
52079var __extends = (undefined && undefined.__extends) || (function () {
52080 var extendStatics = function (d, b) {
52081 extendStatics = Object.setPrototypeOf ||
52082 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52083 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
52084 return extendStatics(d, b);
52085 };
52086 return function (d, b) {
52087 extendStatics(d, b);
52088 function __() { this.constructor = d; }
52089 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52090 };
52091})();
52092var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52093 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52094 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52095 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
52096 return c > 3 && r && Object.defineProperty(target, key, r), r;
52097};
52098
52099
52100var InfiniteRowModel = /** @class */ (function (_super) {
52101 __extends(InfiniteRowModel, _super);
52102 function InfiniteRowModel() {
52103 return _super !== null && _super.apply(this, arguments) || this;
52104 }
52105 InfiniteRowModel.prototype.getRowBounds = function (index) {
52106 return {
52107 rowHeight: this.rowHeight,
52108 rowTop: this.rowHeight * index
52109 };
52110 };
52111 // we don't implement as lazy row heights is not supported in this row model
52112 InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
52113 return false;
52114 };
52115 InfiniteRowModel.prototype.init = function () {
52116 var _this = this;
52117 if (!this.gridOptionsWrapper.isRowModelInfinite()) {
52118 return;
52119 }
52120 this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();
52121 this.addEventListeners();
52122 this.addDestroyFunc(function () { return _this.destroyCache(); });
52123 this.verifyProps();
52124 };
52125 InfiniteRowModel.prototype.verifyProps = function () {
52126 if (this.gridOptionsWrapper.getDefaultGroupSortComparator() != null) {
52127 var message_1 = "AG Grid: defaultGroupSortComparator cannot be used with Infinite Row Model. If using Infinite Row Model, then sorting is done on the server side, nothing to do with the client.";
52128 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn(message_1); }, 'IRM.DefaultGroupSortComparator');
52129 }
52130 };
52131 InfiniteRowModel.prototype.start = function () {
52132 this.setDatasource(this.gridOptionsWrapper.getDatasource());
52133 };
52134 InfiniteRowModel.prototype.destroyDatasource = function () {
52135 if (this.datasource) {
52136 this.getContext().destroyBean(this.datasource);
52137 this.rowRenderer.datasourceChanged();
52138 this.datasource = null;
52139 }
52140 };
52141 InfiniteRowModel.prototype.addEventListeners = function () {
52142 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
52143 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
52144 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));
52145 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));
52146 };
52147 InfiniteRowModel.prototype.onFilterChanged = function () {
52148 this.reset();
52149 };
52150 InfiniteRowModel.prototype.onSortChanged = function () {
52151 this.reset();
52152 };
52153 InfiniteRowModel.prototype.onColumnEverything = function () {
52154 var resetRequired;
52155 // if cache params, we require reset only if sort model has changed. we don't need to check
52156 // for filter model, as the filter manager will fire an event when columns change that result
52157 // in the filter changing.
52158 if (this.cacheParams) {
52159 resetRequired = this.isSortModelDifferent();
52160 }
52161 else {
52162 // if no cacheParams, means first time creating the cache, so always create one
52163 resetRequired = true;
52164 }
52165 if (resetRequired) {
52166 this.reset();
52167 }
52168 };
52169 InfiniteRowModel.prototype.isSortModelDifferent = function () {
52170 return !_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());
52171 };
52172 InfiniteRowModel.prototype.getType = function () {
52173 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_INFINITE;
52174 };
52175 InfiniteRowModel.prototype.setDatasource = function (datasource) {
52176 this.destroyDatasource();
52177 this.datasource = datasource;
52178 // only reset if we have a valid datasource to working with
52179 if (datasource) {
52180 this.reset();
52181 }
52182 };
52183 InfiniteRowModel.prototype.isEmpty = function () {
52184 return !this.infiniteCache;
52185 };
52186 InfiniteRowModel.prototype.isRowsToRender = function () {
52187 return !!this.infiniteCache;
52188 };
52189 InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
52190 return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];
52191 };
52192 InfiniteRowModel.prototype.reset = function () {
52193 // important to return here, as the user could be setting filter or sort before
52194 // data-source is set
52195 if (!this.datasource) {
52196 return;
52197 }
52198 // if user is providing id's, then this means we can keep the selection between datasource hits,
52199 // as the rows will keep their unique id's even if, for example, server side sorting or filtering
52200 // is done.
52201 var userGeneratingIds = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(this.gridOptionsWrapper.getRowNodeIdFunc());
52202 if (!userGeneratingIds) {
52203 this.selectionController.reset();
52204 }
52205 this.resetCache();
52206 var event = this.createModelUpdatedEvent();
52207 this.eventService.dispatchEvent(event);
52208 };
52209 InfiniteRowModel.prototype.createModelUpdatedEvent = function () {
52210 return {
52211 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MODEL_UPDATED,
52212 api: this.gridApi,
52213 columnApi: this.columnApi,
52214 // not sure if these should all be false - noticed if after implementing,
52215 // maybe they should be true?
52216 newPage: false,
52217 newData: false,
52218 keepRenderedRows: true,
52219 animate: false
52220 };
52221 };
52222 InfiniteRowModel.prototype.resetCache = function () {
52223 // if not first time creating a cache, need to destroy the old one
52224 this.destroyCache();
52225 var maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();
52226 this.cacheParams = {
52227 // the user provided datasource
52228 datasource: this.datasource,
52229 // sort and filter model
52230 filterModel: this.filterManager.getFilterModel(),
52231 sortModel: this.sortController.getSortModel(),
52232 rowNodeBlockLoader: this.rowNodeBlockLoader,
52233 // properties - this way we take a snapshot of them, so if user changes any, they will be
52234 // used next time we create a new cache, which is generally after a filter or sort change,
52235 // or a new datasource is set
52236 maxConcurrentRequests: this.defaultIfInvalid(maxConcurrentRequests, 2),
52237 initialRowCount: this.defaultIfInvalid(this.gridOptionsWrapper.getInfiniteInitialRowCount(), 1),
52238 maxBlocksInCache: this.gridOptionsWrapper.getMaxBlocksInCache(),
52239 rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),
52240 // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past
52241 // the current page and request first row of next page
52242 overflowSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheOverflowSize(), 1),
52243 // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the
52244 // server for one page at a time. so the default if not specified is 100.
52245 blockSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheBlockSize(), 100),
52246 // the cache could create this, however it is also used by the pages, so handy to create it
52247 // here as the settings are also passed to the pages
52248 lastAccessedSequence: new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]()
52249 };
52250 this.infiniteCache = this.createBean(new _infiniteCache__WEBPACK_IMPORTED_MODULE_1__["InfiniteCache"](this.cacheParams));
52251 };
52252 InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {
52253 return value > 0 ? value : defaultValue;
52254 };
52255 InfiniteRowModel.prototype.destroyCache = function () {
52256 if (this.infiniteCache) {
52257 this.infiniteCache = this.destroyBean(this.infiniteCache);
52258 }
52259 };
52260 InfiniteRowModel.prototype.onCacheUpdated = function () {
52261 var event = this.createModelUpdatedEvent();
52262 this.eventService.dispatchEvent(event);
52263 };
52264 InfiniteRowModel.prototype.getRow = function (rowIndex) {
52265 return this.infiniteCache ? this.infiniteCache.getRow(rowIndex) : null;
52266 };
52267 InfiniteRowModel.prototype.getRowNode = function (id) {
52268 var result = null;
52269 this.forEachNode(function (rowNode) {
52270 if (rowNode.id === id) {
52271 result = rowNode;
52272 }
52273 });
52274 return result;
52275 };
52276 InfiniteRowModel.prototype.forEachNode = function (callback) {
52277 if (this.infiniteCache) {
52278 this.infiniteCache.forEachNodeDeep(callback);
52279 }
52280 };
52281 InfiniteRowModel.prototype.getTopLevelRowCount = function () {
52282 return this.getRowCount();
52283 };
52284 InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {
52285 return topLevelIndex;
52286 };
52287 InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {
52288 if (this.rowHeight !== 0) { // avoid divide by zero error
52289 var rowIndexForPixel = Math.floor(pixel / this.rowHeight);
52290 var lastRowIndex = this.getRowCount() - 1;
52291 if (rowIndexForPixel > lastRowIndex) {
52292 return lastRowIndex;
52293 }
52294 else {
52295 return rowIndexForPixel;
52296 }
52297 }
52298 else {
52299 return 0;
52300 }
52301 };
52302 InfiniteRowModel.prototype.getRowCount = function () {
52303 return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;
52304 };
52305 InfiniteRowModel.prototype.isRowPresent = function (rowNode) {
52306 var foundRowNode = this.getRowNode(rowNode.id);
52307 return !!foundRowNode;
52308 };
52309 InfiniteRowModel.prototype.refreshCache = function () {
52310 if (this.infiniteCache) {
52311 this.infiniteCache.refreshCache();
52312 }
52313 };
52314 InfiniteRowModel.prototype.purgeCache = function () {
52315 if (this.infiniteCache) {
52316 this.infiniteCache.purgeCache();
52317 }
52318 };
52319 // for iRowModel
52320 InfiniteRowModel.prototype.isLastRowIndexKnown = function () {
52321 if (this.infiniteCache) {
52322 return this.infiniteCache.isLastRowIndexKnown();
52323 }
52324 else {
52325 return false;
52326 }
52327 };
52328 InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {
52329 if (this.infiniteCache) {
52330 this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);
52331 }
52332 };
52333 __decorate([
52334 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
52335 ], InfiniteRowModel.prototype, "filterManager", void 0);
52336 __decorate([
52337 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
52338 ], InfiniteRowModel.prototype, "sortController", void 0);
52339 __decorate([
52340 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
52341 ], InfiniteRowModel.prototype, "selectionController", void 0);
52342 __decorate([
52343 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
52344 ], InfiniteRowModel.prototype, "gridApi", void 0);
52345 __decorate([
52346 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
52347 ], InfiniteRowModel.prototype, "columnApi", void 0);
52348 __decorate([
52349 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
52350 ], InfiniteRowModel.prototype, "rowRenderer", void 0);
52351 __decorate([
52352 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeBlockLoader')
52353 ], InfiniteRowModel.prototype, "rowNodeBlockLoader", void 0);
52354 __decorate([
52355 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
52356 ], InfiniteRowModel.prototype, "init", null);
52357 __decorate([
52358 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
52359 ], InfiniteRowModel.prototype, "destroyDatasource", null);
52360 InfiniteRowModel = __decorate([
52361 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowModel')
52362 ], InfiniteRowModel);
52363 return InfiniteRowModel;
52364}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52365
52366
52367
52368/***/ }),
52369/* 254 */
52370/***/ (function(module, __webpack_exports__, __webpack_require__) {
52371
52372"use strict";
52373__webpack_require__.r(__webpack_exports__);
52374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteCache", function() { return InfiniteCache; });
52375/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52376/* harmony import */ var _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(255);
52377var __extends = (undefined && undefined.__extends) || (function () {
52378 var extendStatics = function (d, b) {
52379 extendStatics = Object.setPrototypeOf ||
52380 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52381 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
52382 return extendStatics(d, b);
52383 };
52384 return function (d, b) {
52385 extendStatics(d, b);
52386 function __() { this.constructor = d; }
52387 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52388 };
52389})();
52390var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52391 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52392 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52393 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
52394 return c > 3 && r && Object.defineProperty(target, key, r), r;
52395};
52396var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
52397 return function (target, key) { decorator(target, key, paramIndex); }
52398};
52399
52400
52401var InfiniteCache = /** @class */ (function (_super) {
52402 __extends(InfiniteCache, _super);
52403 function InfiniteCache(params) {
52404 var _this = _super.call(this) || this;
52405 _this.lastRowIndexKnown = false;
52406 _this.blocks = {};
52407 _this.blockCount = 0;
52408 _this.rowCount = params.initialRowCount;
52409 _this.params = params;
52410 return _this;
52411 }
52412 InfiniteCache.prototype.setBeans = function (loggerFactory) {
52413 this.logger = loggerFactory.create('InfiniteCache');
52414 };
52415 // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,
52416 // it will want new pages in the cache as it asks for rows. only when we are inserting /
52417 // removing rows via the api is dontCreatePage set, where we move rows between the pages.
52418 InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {
52419 if (dontCreatePage === void 0) { dontCreatePage = false; }
52420 var blockId = Math.floor(rowIndex / this.params.blockSize);
52421 var block = this.blocks[blockId];
52422 if (!block) {
52423 if (dontCreatePage) {
52424 return null;
52425 }
52426 block = this.createBlock(blockId);
52427 }
52428 return block.getRow(rowIndex);
52429 };
52430 InfiniteCache.prototype.createBlock = function (blockNumber) {
52431 var newBlock = this.createBean(new _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__["InfiniteBlock"](blockNumber, this, this.params));
52432 this.blocks[newBlock.getId()] = newBlock;
52433 this.blockCount++;
52434 this.purgeBlocksIfNeeded(newBlock);
52435 this.params.rowNodeBlockLoader.addBlock(newBlock);
52436 return newBlock;
52437 };
52438 // we have this on infinite row model only, not server side row model,
52439 // because for server side, it would leave the children in inconsistent
52440 // state - eg if a node had children, but after the refresh it had data
52441 // for a different row, then the children would be with the wrong row node.
52442 InfiniteCache.prototype.refreshCache = function () {
52443 var nothingToRefresh = this.blockCount == 0;
52444 if (nothingToRefresh) {
52445 this.purgeCache();
52446 return;
52447 }
52448 this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });
52449 this.params.rowNodeBlockLoader.checkBlockToLoad();
52450 };
52451 InfiniteCache.prototype.destroyAllBlocks = function () {
52452 var _this = this;
52453 this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });
52454 };
52455 InfiniteCache.prototype.getRowCount = function () {
52456 return this.rowCount;
52457 };
52458 InfiniteCache.prototype.isLastRowIndexKnown = function () {
52459 return this.lastRowIndexKnown;
52460 };
52461 // block calls this, when page loaded
52462 InfiniteCache.prototype.pageLoaded = function (block, lastRow) {
52463 // if we are not active, then we ignore all events, otherwise we could end up getting the
52464 // grid to refresh even though we are no longer the active cache
52465 if (!this.isAlive()) {
52466 return;
52467 }
52468 this.logger.log("onPageLoaded: page = " + block.getId() + ", lastRow = " + lastRow);
52469 this.checkRowCount(block, lastRow);
52470 // we fire cacheUpdated even if the row count has not changed, as some items need updating even
52471 // if no new rows to render. for example the pagination panel has '?' as the total rows when loading
52472 // is underway, which would need to get updated when loading finishes.
52473 this.onCacheUpdated();
52474 };
52475 InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {
52476 var _this = this;
52477 // we exclude checking for the page just created, as this has yet to be accessed and hence
52478 // the lastAccessed stamp will not be updated for the first time yet
52479 var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });
52480 var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };
52481 blocksForPurging.sort(lastAccessedComparator);
52482 // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.
52483 // in other words, after the splice operation below, we have taken out the blocks
52484 // we want to keep, which means we are left with blocks that we can potentially purge
52485 var maxBlocksProvided = this.params.maxBlocksInCache > 0;
52486 var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;
52487 var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;
52488 blocksForPurging.forEach(function (block, index) {
52489 var purgeBecauseBlockEmpty = block.getState() === _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__["InfiniteBlock"].STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;
52490 var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;
52491 if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {
52492 // if the block currently has rows been displayed, then don't remove it either.
52493 // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)
52494 // but the screen is showing 20 rows, so at least 4 blocks are needed.
52495 if (_this.isBlockCurrentlyDisplayed(block)) {
52496 return;
52497 }
52498 // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.
52499 if (_this.isBlockFocused(block)) {
52500 return;
52501 }
52502 // at this point, block is not needed, so burn baby burn
52503 _this.removeBlockFromCache(block);
52504 }
52505 });
52506 };
52507 InfiniteCache.prototype.isBlockFocused = function (block) {
52508 var focusedCell = this.focusController.getFocusCellToUseAfterRefresh();
52509 if (!focusedCell) {
52510 return false;
52511 }
52512 if (focusedCell.rowPinned != null) {
52513 return false;
52514 }
52515 var blockIndexStart = block.getStartRow();
52516 var blockIndexEnd = block.getEndRow();
52517 var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;
52518 return hasFocus;
52519 };
52520 InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {
52521 var startIndex = block.getStartRow();
52522 var endIndex = block.getEndRow() - 1;
52523 return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);
52524 };
52525 InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {
52526 if (!blockToRemove) {
52527 return;
52528 }
52529 this.destroyBlock(blockToRemove);
52530 // we do not want to remove the 'loaded' event listener, as the
52531 // concurrent loads count needs to be updated when the load is complete
52532 // if the purged page is in loading state
52533 };
52534 InfiniteCache.prototype.checkRowCount = function (block, lastRow) {
52535 // if client provided a last row, we always use it, as it could change between server calls
52536 // if user deleted data and then called refresh on the grid.
52537 if (typeof lastRow === 'number' && lastRow >= 0) {
52538 this.rowCount = lastRow;
52539 this.lastRowIndexKnown = true;
52540 }
52541 else if (!this.lastRowIndexKnown) {
52542 // otherwise, see if we need to add some virtual rows
52543 var lastRowIndex = (block.getId() + 1) * this.params.blockSize;
52544 var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;
52545 if (this.rowCount < lastRowIndexPlusOverflow) {
52546 this.rowCount = lastRowIndexPlusOverflow;
52547 }
52548 }
52549 };
52550 InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {
52551 this.rowCount = rowCount;
52552 // if undefined is passed, we do not set this value, if one of {true,false}
52553 // is passed, we do set the value.
52554 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(lastRowIndexKnown)) {
52555 this.lastRowIndexKnown = lastRowIndexKnown;
52556 }
52557 // if we are still searching, then the row count must not end at the end
52558 // of a particular page, otherwise the searching will not pop into the
52559 // next page
52560 if (!this.lastRowIndexKnown) {
52561 if (this.rowCount % this.params.blockSize === 0) {
52562 this.rowCount++;
52563 }
52564 }
52565 this.onCacheUpdated();
52566 };
52567 InfiniteCache.prototype.forEachNodeDeep = function (callback) {
52568 var _this = this;
52569 var sequence = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]();
52570 this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });
52571 };
52572 InfiniteCache.prototype.getBlocksInOrder = function () {
52573 // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order
52574 var blockComparator = function (a, b) { return a.getId() - b.getId(); };
52575 var blocks = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].getAllValuesInObject(this.blocks).sort(blockComparator);
52576 return blocks;
52577 };
52578 InfiniteCache.prototype.destroyBlock = function (block) {
52579 delete this.blocks[block.getId()];
52580 this.destroyBean(block);
52581 this.blockCount--;
52582 this.params.rowNodeBlockLoader.removeBlock(block);
52583 };
52584 // gets called 1) row count changed 2) cache purged 3) items inserted
52585 InfiniteCache.prototype.onCacheUpdated = function () {
52586 if (this.isAlive()) {
52587 // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer
52588 // in the valid range. so we must remove these. this can happen if user explicitly sets
52589 // the virtual row count, or the datasource returns a result and sets lastRow to something
52590 // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).
52591 this.destroyAllBlocksPastVirtualRowCount();
52592 // this results in both row models (infinite and server side) firing ModelUpdated,
52593 // however server side row model also updates the row indexes first
52594 var event_1 = {
52595 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED
52596 };
52597 this.eventService.dispatchEvent(event_1);
52598 }
52599 };
52600 InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {
52601 var _this = this;
52602 var blocksToDestroy = [];
52603 this.getBlocksInOrder().forEach(function (block) {
52604 var startRow = block.getId() * _this.params.blockSize;
52605 if (startRow >= _this.rowCount) {
52606 blocksToDestroy.push(block);
52607 }
52608 });
52609 if (blocksToDestroy.length > 0) {
52610 blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });
52611 }
52612 };
52613 InfiniteCache.prototype.purgeCache = function () {
52614 var _this = this;
52615 this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });
52616 this.lastRowIndexKnown = false;
52617 // if zero rows in the cache, we need to get the SSRM to start asking for rows again.
52618 // otherwise if set to zero rows last time, and we don't update the row count, then after
52619 // the purge there will still be zero rows, meaning the SSRM won't request any rows.
52620 // to kick things off, at least one row needs to be asked for.
52621 if (this.rowCount === 0) {
52622 this.rowCount = this.params.initialRowCount;
52623 }
52624 this.onCacheUpdated();
52625 };
52626 InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {
52627 var _this = this;
52628 var result = [];
52629 var lastBlockId = -1;
52630 var inActiveRange = false;
52631 var numberSequence = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]();
52632 // if only one node passed, we start the selection at the top
52633 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(firstInRange)) {
52634 inActiveRange = true;
52635 }
52636 var foundGapInSelection = false;
52637 this.getBlocksInOrder().forEach(function (block) {
52638 if (foundGapInSelection) {
52639 return;
52640 }
52641 if (inActiveRange && (lastBlockId + 1 !== block.getId())) {
52642 foundGapInSelection = true;
52643 return;
52644 }
52645 lastBlockId = block.getId();
52646 block.forEachNode(function (rowNode) {
52647 var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;
52648 if (inActiveRange || hitFirstOrLast) {
52649 result.push(rowNode);
52650 }
52651 if (hitFirstOrLast) {
52652 inActiveRange = !inActiveRange;
52653 }
52654 }, numberSequence, _this.rowCount);
52655 });
52656 // inActiveRange will be still true if we never hit the second rowNode
52657 var invalidRange = foundGapInSelection || inActiveRange;
52658 return invalidRange ? [] : result;
52659 };
52660 // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10
52661 // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly
52662 // scrolled over are not needed to be loaded.
52663 InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;
52664 __decorate([
52665 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
52666 ], InfiniteCache.prototype, "rowRenderer", void 0);
52667 __decorate([
52668 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("focusController")
52669 ], InfiniteCache.prototype, "focusController", void 0);
52670 __decorate([
52671 __param(0, Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
52672 ], InfiniteCache.prototype, "setBeans", null);
52673 __decorate([
52674 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
52675 ], InfiniteCache.prototype, "destroyAllBlocks", null);
52676 return InfiniteCache;
52677}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52678
52679
52680
52681/***/ }),
52682/* 255 */
52683/***/ (function(module, __webpack_exports__, __webpack_require__) {
52684
52685"use strict";
52686__webpack_require__.r(__webpack_exports__);
52687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteBlock", function() { return InfiniteBlock; });
52688/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52689var __extends = (undefined && undefined.__extends) || (function () {
52690 var extendStatics = function (d, b) {
52691 extendStatics = Object.setPrototypeOf ||
52692 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52693 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
52694 return extendStatics(d, b);
52695 };
52696 return function (d, b) {
52697 extendStatics(d, b);
52698 function __() { this.constructor = d; }
52699 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52700 };
52701})();
52702var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52703 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52704 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52705 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
52706 return c > 3 && r && Object.defineProperty(target, key, r), r;
52707};
52708
52709var InfiniteBlock = /** @class */ (function (_super) {
52710 __extends(InfiniteBlock, _super);
52711 function InfiniteBlock(id, parentCache, params) {
52712 var _this = _super.call(this, id) || this;
52713 _this.parentCache = parentCache;
52714 _this.params = params;
52715 // we don't need to calculate these now, as the inputs don't change,
52716 // however it makes the code easier to read if we work them out up front
52717 _this.startRow = id * params.blockSize;
52718 _this.endRow = _this.startRow + params.blockSize;
52719 return _this;
52720 }
52721 InfiniteBlock.prototype.postConstruct = function () {
52722 this.createRowNodes();
52723 };
52724 InfiniteBlock.prototype.getBlockStateJson = function () {
52725 return {
52726 id: '' + this.getId(),
52727 state: {
52728 blockNumber: this.getId(),
52729 startRow: this.getStartRow(),
52730 endRow: this.getEndRow(),
52731 pageStatus: this.getState()
52732 }
52733 };
52734 };
52735 InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {
52736 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(data)) {
52737 // this means if the user is not providing id's we just use the
52738 // index for the row. this will allow selection to work (that is based
52739 // on index) as long user is not inserting or deleting rows,
52740 // or wanting to keep selection between server side sorting or filtering
52741 rowNode.setDataAndId(data, index.toString());
52742 }
52743 else {
52744 rowNode.setDataAndId(undefined, undefined);
52745 }
52746 };
52747 InfiniteBlock.prototype.loadFromDatasource = function () {
52748 var _this = this;
52749 var params = this.createLoadParams();
52750 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.params.datasource.getRows)) {
52751 console.warn("AG Grid: datasource is missing getRows method");
52752 return;
52753 }
52754 // put in timeout, to force result to be async
52755 window.setTimeout(function () {
52756 _this.params.datasource.getRows(params);
52757 }, 0);
52758 };
52759 InfiniteBlock.prototype.processServerFail = function () {
52760 // todo - this method has better handling in SSRM
52761 };
52762 InfiniteBlock.prototype.createLoadParams = function () {
52763 // PROBLEM . . . . when the user sets sort via colDef.sort, then this code
52764 // is executing before the sort is set up, so server is not getting the sort
52765 // model. need to change with regards order - so the server side request is
52766 // AFTER thus it gets the right sort model.
52767 var params = {
52768 startRow: this.getStartRow(),
52769 endRow: this.getEndRow(),
52770 successCallback: this.pageLoaded.bind(this, this.getVersion()),
52771 failCallback: this.pageLoadFailed.bind(this, this.getVersion()),
52772 sortModel: this.params.sortModel,
52773 filterModel: this.params.filterModel,
52774 context: this.gridOptionsWrapper.getContext()
52775 };
52776 return params;
52777 };
52778 InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {
52779 var _this = this;
52780 this.rowNodes.forEach(function (rowNode, index) {
52781 var rowIndex = _this.startRow + index;
52782 if (rowIndex < rowCount) {
52783 callback(rowNode, sequence.next());
52784 }
52785 });
52786 };
52787 InfiniteBlock.prototype.getLastAccessed = function () {
52788 return this.lastAccessed;
52789 };
52790 InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {
52791 if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }
52792 if (!dontTouchLastAccessed) {
52793 this.lastAccessed = this.params.lastAccessedSequence.next();
52794 }
52795 var localIndex = rowIndex - this.startRow;
52796 return this.rowNodes[localIndex];
52797 };
52798 InfiniteBlock.prototype.getStartRow = function () {
52799 return this.startRow;
52800 };
52801 InfiniteBlock.prototype.getEndRow = function () {
52802 return this.endRow;
52803 };
52804 // creates empty row nodes, data is missing as not loaded yet
52805 InfiniteBlock.prototype.createRowNodes = function () {
52806 this.rowNodes = [];
52807 for (var i = 0; i < this.params.blockSize; i++) {
52808 var rowIndex = this.startRow + i;
52809 var rowNode = this.getContext().createBean(new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]());
52810 rowNode.setRowHeight(this.params.rowHeight);
52811 rowNode.uiLevel = 0;
52812 rowNode.setRowIndex(rowIndex);
52813 rowNode.setRowTop(this.params.rowHeight * rowIndex);
52814 this.rowNodes.push(rowNode);
52815 }
52816 };
52817 InfiniteBlock.prototype.processServerResult = function (params) {
52818 var _this = this;
52819 this.rowNodes.forEach(function (rowNode, index) {
52820 var data = params.rowData ? params.rowData[index] : undefined;
52821 _this.setDataAndId(rowNode, data, _this.startRow + index);
52822 });
52823 var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;
52824 this.parentCache.pageLoaded(this, finalRowCount);
52825 };
52826 InfiniteBlock.prototype.destroyRowNodes = function () {
52827 this.rowNodes.forEach(function (rowNode) {
52828 // this is needed, so row render knows to fade out the row, otherwise it
52829 // sees row top is present, and thinks the row should be shown.
52830 rowNode.clearRowTopAndRowIndex();
52831 });
52832 };
52833 __decorate([
52834 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
52835 ], InfiniteBlock.prototype, "postConstruct", null);
52836 __decorate([
52837 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
52838 ], InfiniteBlock.prototype, "destroyRowNodes", null);
52839 return InfiniteBlock;
52840}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"]));
52841
52842
52843
52844/***/ }),
52845/* 256 */
52846/***/ (function(module, __webpack_exports__, __webpack_require__) {
52847
52848"use strict";
52849__webpack_require__.r(__webpack_exports__);
52850/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AllCommunityModules", function() { return AllCommunityModules; });
52851/* harmony import */ var _ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
52852/* harmony import */ var _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251);
52853/* harmony import */ var _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(241);
52854/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return _ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"]; });
52855
52856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["BaseCreator"]; });
52857
52858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["BaseGridSerializingSession"]; });
52859
52860/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvCreator"]; });
52861
52862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvExportModule"]; });
52863
52864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["Downloader"]; });
52865
52866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["GridSerializer"]; });
52867
52868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["RowType"]; });
52869
52870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["XmlFactory"]; });
52871
52872/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["ZipContainer"]; });
52873
52874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModelModule"]; });
52875
52876/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
52877/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnFactory"]; });
52878
52879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnController"]; });
52880
52881/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnKeyCreator"]; });
52882
52883/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnUtils"]; });
52884
52885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DisplayedGroupCreator"]; });
52886
52887/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupInstanceIdCreator"]; });
52888
52889/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeadlessService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeadlessService"]; });
52890
52891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TestHeadless", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TestHeadless"]; });
52892
52893/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ComponentUtil"]; });
52894
52895/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColDefUtil"]; });
52896
52897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["UserComponentRegistry"]; });
52898
52899/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["UserComponentFactory"]; });
52900
52901/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithAngular1", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["initialiseAgGridWithAngular1"]; });
52902
52903/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithWebComponents", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["initialiseAgGridWithWebComponents"]; });
52904
52905/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]; });
52906
52907/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Context"]; });
52908
52909/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Autowired"]; });
52910
52911/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]; });
52912
52913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PreConstruct"]; });
52914
52915/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Optional"]; });
52916
52917/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Bean"]; });
52918
52919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Qualifier"]; });
52920
52921/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PreDestroy"]; });
52922
52923/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["QuerySelector"]; });
52924
52925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GuiListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GuiListener"]; });
52926
52927/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RefSelector"]; });
52928
52929/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridListener"]; });
52930
52931/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"]; });
52932
52933/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragAndDropService"]; });
52934
52935/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragSourceType"]; });
52936
52937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HorizontalDirection"]; });
52938
52939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VerticalDirection"]; });
52940
52941/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragService"]; });
52942
52943/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Column"]; });
52944
52945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnGroup"]; });
52946
52947/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OriginalColumnGroup", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["OriginalColumnGroup"]; });
52948
52949/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNode"]; });
52950
52951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FilterManager"]; });
52952
52953/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ProvidedFilter"]; });
52954
52955/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SimpleFilter"]; });
52956
52957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"]; });
52958
52959/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NumberFilter"]; });
52960
52961/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextFilter"]; });
52962
52963/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DateFilter"]; });
52964
52965/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextFloatingFilter"]; });
52966
52967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterWrapper"]; });
52968
52969/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterMapper"]; });
52970
52971/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridBodyComp"]; });
52972
52973/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridBodyController"]; });
52974
52975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ScrollVisibleService"]; });
52976
52977/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["MouseEventService"]; });
52978
52979/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BodyDropPivotTarget"]; });
52980
52981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BodyDropTarget"]; });
52982
52983/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CssClassApplier"]; });
52984
52985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderContainer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderContainer"]; });
52986
52987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRootComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRootComp"]; });
52988
52989/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowComp"]; });
52990
52991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HorizontalResizeService"]; });
52992
52993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveColumnController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["MoveColumnController"]; });
52994
52995/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["StandardMenuFactory"]; });
52996
52997/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TabbedLayout"]; });
52998
52999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["simpleHttpRequest"]; });
53000
53001/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ResizeObserverService"]; });
53002
53003/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimationFrameService"]; });
53004
53005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LargeTextCellEditor"]; });
53006
53007/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupEditorWrapper"]; });
53008
53009/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSelectCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupSelectCellEditor"]; });
53010
53011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupTextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupTextCellEditor"]; });
53012
53013/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectCellEditor"]; });
53014
53015/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextCellEditor"]; });
53016
53017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimateShowChangeCellRenderer"]; });
53018
53019/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimateSlideCellRenderer"]; });
53020
53021/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupCellRenderer"]; });
53022
53023/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SetLeftFeature"]; });
53024
53025/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AutoWidthCalculator"]; });
53026
53027/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CheckboxSelectionComponent"]; });
53028
53029/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellComp"]; });
53030
53031/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowController"]; });
53032
53033/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowRenderer"]; });
53034
53035/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueFormatterService"]; });
53036
53037/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PinnedRowModel"]; });
53038
53039/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ServerSideTransactionResultStatus"]; });
53040
53041/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ChangedPath"]; });
53042
53043/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeBlock"]; });
53044
53045/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeBlockLoader"]; });
53046
53047/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PaginationProxy"]; });
53048
53049/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ClientSideRowModelSteps"]; });
53050
53051/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["StylingService"]; });
53052
53053/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LayoutCssClasses"]; });
53054
53055/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"]; });
53056
53057/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgCheckbox"]; });
53058
53059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgRadioButton"]; });
53060
53061/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgToggleButton"]; });
53062
53063/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputTextField"]; });
53064
53065/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputTextArea"]; });
53066
53067/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputNumberField"]; });
53068
53069/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputRange"]; });
53070
53071/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgSelect"]; });
53072
53073/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgSlider"]; });
53074
53075/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAngleSelect", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgAngleSelect"]; });
53076
53077/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgColorPicker", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgColorPicker"]; });
53078
53079/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgGroupComponent"]; });
53080
53081/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgDialog"]; });
53082
53083/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPanel"]; });
53084
53085/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Component"]; });
53086
53087/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ManagedFocusComponent"]; });
53088
53089/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupComponent"]; });
53090
53091/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupService"]; });
53092
53093/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TouchListener"]; });
53094
53095/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VirtualList"]; });
53096
53097/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellRangeType"]; });
53098
53099/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectionHandleType"]; });
53100
53101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VanillaFrameworkOverrides"]; });
53102
53103/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellNavigationService"]; });
53104
53105/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AlignedGridsService"]; });
53106
53107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Constants"]; });
53108
53109/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["KeyCode"]; });
53110
53111/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyName", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["KeyName"]; });
53112
53113/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Grid"]; });
53114
53115/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridCoreCreator"]; });
53116
53117/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridApi"]; });
53118
53119/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Events"]; });
53120
53121/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FocusController"]; });
53122
53123/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultGroupComparator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["defaultGroupComparator"]; });
53124
53125/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridOptionsWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridOptionsWrapper"]; });
53126
53127/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["EventService"]; });
53128
53129/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectableService"]; });
53130
53131/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeSorter"]; });
53132
53133/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ControllersService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ControllersService"]; });
53134
53135/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridComp"]; });
53136
53137/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCompController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridCompController"]; });
53138
53139/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Logger"]; });
53140
53141/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LoggerFactory"]; });
53142
53143/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectionController"]; });
53144
53145/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SortController"]; });
53146
53147/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TemplateService"]; });
53148
53149/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Color"]; });
53150
53151/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["stringToArray"]; });
53152
53153/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["_"]; });
53154
53155/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NumberSequence"]; });
53156
53157/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPromiseStatus"]; });
53158
53159/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPromise"]; });
53160
53161/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Timer"]; });
53162
53163/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueService"]; });
53164
53165/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueCache"]; });
53166
53167/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ExpressionService"]; });
53168
53169/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellPositionUtils"]; });
53170
53171/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowPositionUtils"]; });
53172
53173/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderPositionUtils"]; });
53174
53175/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderNavigationService"]; });
53176
53177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderNavigationDirection"]; });
53178
53179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideStoreType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ServerSideStoreType"]; });
53180
53181/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PropertyKeys"]; });
53182
53183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnApi"]; });
53184
53185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BaseComponentWrapper"]; });
53186
53187/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Environment"]; });
53188
53189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TooltipFeature"]; });
53190
53191/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChartType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ChartType"]; });
53192
53193/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LegendPosition", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LegendPosition"]; });
53194
53195/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"]; });
53196
53197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"]; });
53198
53199
53200
53201
53202var 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"]];
53203
53204
53205
53206
53207
53208
53209/***/ }),
53210/* 257 */
53211/***/ (function(module, exports, __webpack_require__) {
53212
53213var api = __webpack_require__(258);
53214 var content = __webpack_require__(259);
53215
53216 content = content.__esModule ? content.default : content;
53217
53218 if (typeof content === 'string') {
53219 content = [[module.i, content, '']];
53220 }
53221
53222var options = {};
53223
53224options.insert = "head";
53225options.singleton = false;
53226
53227var update = api(content, options);
53228
53229
53230
53231module.exports = content.locals || {};
53232
53233/***/ }),
53234/* 258 */
53235/***/ (function(module, exports, __webpack_require__) {
53236
53237"use strict";
53238
53239
53240var isOldIE = function isOldIE() {
53241 var memo;
53242 return function memorize() {
53243 if (typeof memo === 'undefined') {
53244 // Test for IE <= 9 as proposed by Browserhacks
53245 // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
53246 // Tests for existence of standard globals is to allow style-loader
53247 // to operate correctly into non-standard environments
53248 // @see https://github.com/webpack-contrib/style-loader/issues/177
53249 memo = Boolean(window && document && document.all && !window.atob);
53250 }
53251
53252 return memo;
53253 };
53254}();
53255
53256var getTarget = function getTarget() {
53257 var memo = {};
53258 return function memorize(target) {
53259 if (typeof memo[target] === 'undefined') {
53260 var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
53261
53262 if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
53263 try {
53264 // This will throw an exception if access to iframe is blocked
53265 // due to cross-origin restrictions
53266 styleTarget = styleTarget.contentDocument.head;
53267 } catch (e) {
53268 // istanbul ignore next
53269 styleTarget = null;
53270 }
53271 }
53272
53273 memo[target] = styleTarget;
53274 }
53275
53276 return memo[target];
53277 };
53278}();
53279
53280var stylesInDom = [];
53281
53282function getIndexByIdentifier(identifier) {
53283 var result = -1;
53284
53285 for (var i = 0; i < stylesInDom.length; i++) {
53286 if (stylesInDom[i].identifier === identifier) {
53287 result = i;
53288 break;
53289 }
53290 }
53291
53292 return result;
53293}
53294
53295function modulesToDom(list, options) {
53296 var idCountMap = {};
53297 var identifiers = [];
53298
53299 for (var i = 0; i < list.length; i++) {
53300 var item = list[i];
53301 var id = options.base ? item[0] + options.base : item[0];
53302 var count = idCountMap[id] || 0;
53303 var identifier = "".concat(id, " ").concat(count);
53304 idCountMap[id] = count + 1;
53305 var index = getIndexByIdentifier(identifier);
53306 var obj = {
53307 css: item[1],
53308 media: item[2],
53309 sourceMap: item[3]
53310 };
53311
53312 if (index !== -1) {
53313 stylesInDom[index].references++;
53314 stylesInDom[index].updater(obj);
53315 } else {
53316 stylesInDom.push({
53317 identifier: identifier,
53318 updater: addStyle(obj, options),
53319 references: 1
53320 });
53321 }
53322
53323 identifiers.push(identifier);
53324 }
53325
53326 return identifiers;
53327}
53328
53329function insertStyleElement(options) {
53330 var style = document.createElement('style');
53331 var attributes = options.attributes || {};
53332
53333 if (typeof attributes.nonce === 'undefined') {
53334 var nonce = true ? __webpack_require__.nc : undefined;
53335
53336 if (nonce) {
53337 attributes.nonce = nonce;
53338 }
53339 }
53340
53341 Object.keys(attributes).forEach(function (key) {
53342 style.setAttribute(key, attributes[key]);
53343 });
53344
53345 if (typeof options.insert === 'function') {
53346 options.insert(style);
53347 } else {
53348 var target = getTarget(options.insert || 'head');
53349
53350 if (!target) {
53351 throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
53352 }
53353
53354 target.appendChild(style);
53355 }
53356
53357 return style;
53358}
53359
53360function removeStyleElement(style) {
53361 // istanbul ignore if
53362 if (style.parentNode === null) {
53363 return false;
53364 }
53365
53366 style.parentNode.removeChild(style);
53367}
53368/* istanbul ignore next */
53369
53370
53371var replaceText = function replaceText() {
53372 var textStore = [];
53373 return function replace(index, replacement) {
53374 textStore[index] = replacement;
53375 return textStore.filter(Boolean).join('\n');
53376 };
53377}();
53378
53379function applyToSingletonTag(style, index, remove, obj) {
53380 var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
53381
53382 /* istanbul ignore if */
53383
53384 if (style.styleSheet) {
53385 style.styleSheet.cssText = replaceText(index, css);
53386 } else {
53387 var cssNode = document.createTextNode(css);
53388 var childNodes = style.childNodes;
53389
53390 if (childNodes[index]) {
53391 style.removeChild(childNodes[index]);
53392 }
53393
53394 if (childNodes.length) {
53395 style.insertBefore(cssNode, childNodes[index]);
53396 } else {
53397 style.appendChild(cssNode);
53398 }
53399 }
53400}
53401
53402function applyToTag(style, options, obj) {
53403 var css = obj.css;
53404 var media = obj.media;
53405 var sourceMap = obj.sourceMap;
53406
53407 if (media) {
53408 style.setAttribute('media', media);
53409 } else {
53410 style.removeAttribute('media');
53411 }
53412
53413 if (sourceMap && typeof btoa !== 'undefined') {
53414 css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
53415 } // For old IE
53416
53417 /* istanbul ignore if */
53418
53419
53420 if (style.styleSheet) {
53421 style.styleSheet.cssText = css;
53422 } else {
53423 while (style.firstChild) {
53424 style.removeChild(style.firstChild);
53425 }
53426
53427 style.appendChild(document.createTextNode(css));
53428 }
53429}
53430
53431var singleton = null;
53432var singletonCounter = 0;
53433
53434function addStyle(obj, options) {
53435 var style;
53436 var update;
53437 var remove;
53438
53439 if (options.singleton) {
53440 var styleIndex = singletonCounter++;
53441 style = singleton || (singleton = insertStyleElement(options));
53442 update = applyToSingletonTag.bind(null, style, styleIndex, false);
53443 remove = applyToSingletonTag.bind(null, style, styleIndex, true);
53444 } else {
53445 style = insertStyleElement(options);
53446 update = applyToTag.bind(null, style, options);
53447
53448 remove = function remove() {
53449 removeStyleElement(style);
53450 };
53451 }
53452
53453 update(obj);
53454 return function updateStyle(newObj) {
53455 if (newObj) {
53456 if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
53457 return;
53458 }
53459
53460 update(obj = newObj);
53461 } else {
53462 remove();
53463 }
53464 };
53465}
53466
53467module.exports = function (list, options) {
53468 options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
53469 // tags it will allow on a page
53470
53471 if (!options.singleton && typeof options.singleton !== 'boolean') {
53472 options.singleton = isOldIE();
53473 }
53474
53475 list = list || [];
53476 var lastIdentifiers = modulesToDom(list, options);
53477 return function update(newList) {
53478 newList = newList || [];
53479
53480 if (Object.prototype.toString.call(newList) !== '[object Array]') {
53481 return;
53482 }
53483
53484 for (var i = 0; i < lastIdentifiers.length; i++) {
53485 var identifier = lastIdentifiers[i];
53486 var index = getIndexByIdentifier(identifier);
53487 stylesInDom[index].references--;
53488 }
53489
53490 var newLastIdentifiers = modulesToDom(newList, options);
53491
53492 for (var _i = 0; _i < lastIdentifiers.length; _i++) {
53493 var _identifier = lastIdentifiers[_i];
53494
53495 var _index = getIndexByIdentifier(_identifier);
53496
53497 if (stylesInDom[_index].references === 0) {
53498 stylesInDom[_index].updater();
53499
53500 stylesInDom.splice(_index, 1);
53501 }
53502 }
53503
53504 lastIdentifiers = newLastIdentifiers;
53505 };
53506};
53507
53508/***/ }),
53509/* 259 */
53510/***/ (function(module, exports, __webpack_require__) {
53511
53512// Imports
53513var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53514exports = ___CSS_LOADER_API_IMPORT___(false);
53515// Module
53516exports.push([module.i, "/**\n ****************************\n * Generic Styles\n ****************************\n*/\nag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {\n display: block; }\n\n.ag-hidden {\n display: none !important; }\n\n.ag-invisible {\n visibility: hidden !important; }\n\n.ag-drag-handle {\n cursor: move;\n cursor: -webkit-grab;\n cursor: grab; }\n\n.ag-column-drop-wrapper {\n display: flex; }\n\n.ag-column-drop-horizontal-half-width {\n display: inline-block;\n width: 50% !important; }\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.ag-selectable {\n -moz-user-select: text;\n -webkit-user-select: text;\n -ms-user-select: text;\n user-select: text; }\n\n.ag-tab {\n position: relative; }\n\n.ag-tab-guard {\n position: absolute;\n width: 0;\n height: 0;\n display: block; }\n\n.ag-select-agg-func-popup {\n position: absolute; }\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.ag-shake-left-to-right {\n -webkit-animation-direction: alternate;\n animation-direction: alternate;\n -webkit-animation-duration: 0.2s;\n animation-duration: 0.2s;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-name: ag-shake-left-to-right;\n animation-name: ag-shake-left-to-right; }\n\n@-webkit-keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px; }\n to {\n padding-left: 2px;\n padding-right: 6px; } }\n\n@keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px; }\n to {\n padding-left: 2px;\n padding-right: 6px; } }\n\n.ag-root-wrapper {\n cursor: default;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden; }\n .ag-root-wrapper.ag-layout-normal {\n height: 100%; }\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 .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.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.ag-root-wrapper-body {\n display: flex;\n flex-direction: row; }\n .ag-root-wrapper-body.ag-layout-normal {\n flex: 1 1 auto;\n height: 0;\n min-height: 0; }\n\n.ag-root {\n position: relative;\n display: flex;\n flex-direction: column; }\n .ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height {\n overflow: hidden;\n flex: 1 1 auto;\n width: 0; }\n .ag-root.ag-layout-normal {\n height: 100%; }\n\n/**\n ****************************\n * Viewports\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-virtual-list-viewport {\n position: relative;\n height: 100%;\n min-width: 0px;\n overflow: hidden;\n flex: 1 1 auto; }\n\n.ag-body-viewport.ag-layout-print {\n flex: none; }\n\n@media print {\n .ag-root-wrapper.ag-layout-print,\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 .ag-root-wrapper.ag-layout-print .ag-row {\n page-break-inside: avoid; } }\n\n.ag-body-viewport {\n display: flex; }\n .ag-body-viewport.ag-layout-normal {\n overflow-y: auto;\n -webkit-overflow-scrolling: touch; }\n\n.ag-center-cols-viewport {\n width: 100%;\n overflow-x: auto; }\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: scroll; }\n\n.ag-virtual-list-viewport {\n overflow: auto;\n width: 100%; }\n\n/**\n ****************************\n * Containers\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-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-virtual-list-container {\n position: relative; }\n\n.ag-header-container, .ag-floating-top-container, .ag-floating-bottom-container {\n height: 100%;\n white-space: nowrap; }\n\n.ag-center-cols-container {\n display: block; }\n\n.ag-layout-print .ag-center-cols-clipper {\n min-width: 100%; }\n\n.ag-pinned-right-cols-container {\n display: block; }\n\n.ag-body-horizontal-scroll-container {\n height: 100%; }\n\n.ag-full-width-container,\n.ag-floating-top-full-width-container,\n.ag-floating-bottom-full-width-container {\n position: absolute;\n top: 0px;\n left: 0px;\n pointer-events: none; }\n\n.ag-full-width-container {\n width: 100%; }\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.ag-virtual-list-container {\n overflow: hidden; }\n\n/**\n ****************************\n * Scrollers\n ****************************\n*/\n.ag-center-cols-clipper {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n min-height: 100%;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n\n.ag-body-horizontal-scroll {\n min-height: 0;\n min-width: 0;\n width: 100%;\n display: flex;\n position: relative; }\n .ag-body-horizontal-scroll.ag-invisible-scrollbar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0; }\n\n.ag-layout-print .ag-body-horizontal-scroll {\n display: none; }\n\n.ag-force-vertical-scroll {\n overflow-y: scroll !important; }\n .ag-force-vertical-scroll.ag-layout-print {\n overflow-y: visible !important; }\n\n.ag-horizontal-left-spacer, .ag-horizontal-right-spacer {\n height: 100%;\n min-width: 0;\n overflow-x: scroll; }\n .ag-horizontal-left-spacer.ag-scroller-corner, .ag-horizontal-right-spacer.ag-scroller-corner {\n overflow-x: hidden; }\n\n/**\n ****************************\n * Headers\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.ag-header-cell-sortable {\n cursor: pointer; }\n\n.ag-header {\n display: flex;\n width: 100%;\n white-space: nowrap; }\n\n.ag-pinned-left-header {\n height: 100%; }\n\n.ag-pinned-right-header {\n height: 100%; }\n\n.ag-header-row {\n position: absolute;\n overflow: hidden; }\n\n.ag-header-cell {\n display: inline-flex;\n align-items: center;\n position: absolute;\n height: 100%;\n overflow: hidden; }\n\n.ag-header-cell.ag-header-active .ag-header-cell-menu-button {\n opacity: 1; }\n\n.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {\n transition: opacity 0.2s;\n opacity: 0; }\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.ag-header-cell-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.ag-right-aligned-header .ag-header-cell-label {\n flex-direction: row-reverse; }\n\n.ag-header-group-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\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 .ag-ltr .ag-header-cell-resize {\n right: -4px; }\n .ag-rtl .ag-header-cell-resize {\n left: -4px; }\n\n.ag-pinned-left-header .ag-header-cell-resize {\n right: -4px; }\n\n.ag-pinned-right-header .ag-header-cell-resize {\n left: -4px; }\n\n.ag-header-select-all {\n display: flex; }\n\n/**\n ****************************\n * Columns\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 ****************************\n * Column Panel\n ****************************\n*/\n.ag-column-panel {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto; }\n\n.ag-column-select {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex-grow: 3;\n flex-shrink: 1;\n flex-basis: 0; }\n\n.ag-column-select-header {\n position: relative;\n display: flex;\n flex: none; }\n\n.ag-column-select-header-icon {\n position: relative; }\n\n.ag-column-select-header-filter-wrapper {\n flex: 1 1 auto; }\n\n.ag-column-select-header-filter {\n width: 100%; }\n\n.ag-column-select-list {\n flex: 1 1 0px;\n overflow: hidden; }\n\n.ag-column-drop {\n display: inline-flex;\n align-items: center;\n overflow: auto;\n width: 100%; }\n\n.ag-column-drop-list {\n display: flex;\n align-items: center; }\n\n.ag-column-drop-cell {\n display: flex;\n align-items: center; }\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.ag-column-drop-vertical {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 0px;\n align-items: stretch; }\n\n.ag-column-drop-vertical-title-bar {\n display: flex;\n align-items: center;\n flex: none; }\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 .ag-column-drop-vertical-list > * {\n flex: none; }\n\n.ag-column-drop-empty .ag-column-drop-vertical-list {\n overflow: hidden; }\n\n.ag-column-drop-vertical-empty-message {\n display: block; }\n\n.ag-column-drop.ag-column-drop-horizontal {\n white-space: nowrap;\n overflow: hidden; }\n\n.ag-column-drop-cell-button {\n cursor: pointer; }\n\n.ag-filter-toolpanel {\n flex: 1 1 0px;\n min-width: 0; }\n\n.ag-filter-toolpanel-header {\n position: relative; }\n\n.ag-filter-toolpanel-header, .ag-filter-toolpanel-search {\n display: flex;\n align-items: center; }\n .ag-filter-toolpanel-header > *, .ag-filter-toolpanel-search > * {\n display: flex;\n align-items: center; }\n\n.ag-filter-apply-panel {\n display: flex;\n justify-content: flex-end;\n overflow: hidden; }\n\n/**\n ****************************\n * Rows\n ****************************\n*/\n.ag-row-animation .ag-row {\n transition: top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s, -webkit-transform 0.4s;\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s, -webkit-transform 0.4s; }\n\n.ag-row-no-animation .ag-row {\n transition: background-color 0.1s; }\n\n.ag-row {\n white-space: nowrap;\n width: 100%; }\n\n.ag-row-loading {\n display: flex;\n align-items: center; }\n\n.ag-row-position-absolute {\n position: absolute; }\n\n.ag-row-position-relative {\n position: relative; }\n\n.ag-full-width-row {\n overflow: hidden;\n pointer-events: all; }\n\n.ag-row-inline-editing {\n z-index: 1; }\n\n.ag-row-dragging {\n z-index: 2; }\n\n.ag-stub-cell {\n display: flex;\n align-items: center; }\n\n/**\n ****************************\n * Cells\n ****************************\n*/\n.ag-cell {\n display: inline-block;\n position: absolute;\n white-space: nowrap; }\n\n.ag-cell-value, .ag-group-value {\n overflow: hidden;\n text-overflow: ellipsis; }\n\n.ag-cell-wrap-text {\n white-space: normal;\n word-break: break-all; }\n\n.ag-cell-wrapper {\n display: flex;\n align-items: center;\n height: 100%; }\n .ag-cell-wrapper.ag-row-group {\n align-items: flex-start; }\n\n.ag-full-width-row .ag-cell-wrapper.ag-row-group {\n align-items: center; }\n\n.ag-cell-auto-height {\n height: 100%; }\n\n.ag-cell-inline-editing {\n z-index: 1; }\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.ag-cell .ag-icon {\n display: inline-block;\n vertical-align: middle; }\n\n/**\n ****************************\n * Filters\n ****************************\n*/\n.ag-set-filter-item {\n display: flex;\n align-items: center;\n height: 100%; }\n\n.ag-set-filter-item-value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.ag-set-filter-item-checkbox {\n display: flex; }\n\n.ag-filter-body-wrapper {\n display: flex;\n flex-direction: column; }\n\n.ag-filter-filter {\n flex: 1 1 0px; }\n\n.ag-filter-condition {\n display: flex;\n justify-content: center; }\n\n/**\n ****************************\n * Floating Filter\n ****************************\n*/\n.ag-floating-filter-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n height: 100%; }\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.ag-floating-filter-full-body > div {\n flex: 1 1 auto; }\n\n.ag-floating-filter {\n display: inline-block;\n position: absolute; }\n\n.ag-floating-filter-input {\n align-items: center;\n display: flex;\n width: 100%; }\n .ag-floating-filter-input > * {\n flex: 1 1 auto; }\n\n.ag-floating-filter-button {\n display: flex;\n flex: none; }\n\n/**\n ****************************\n * Drag & Drop\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 ****************************\n * Overlay\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.ag-overlay-panel {\n display: flex;\n height: 100%;\n width: 100%; }\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.ag-overlay-loading-wrapper {\n pointer-events: all; }\n\n/**\n ****************************\n * Popup\n ****************************\n*/\n.ag-popup-child {\n z-index: 5;\n top: 0; }\n\n.ag-popup-editor {\n position: absolute;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n z-index: 1; }\n\n.ag-large-text-input {\n display: block; }\n\n/**\n ****************************\n * Virtual Lists\n ****************************\n*/\n.ag-virtual-list-item {\n position: absolute;\n width: 100%; }\n\n/**\n ****************************\n * Floating Top and Bottom\n ****************************\n*/\n.ag-floating-top {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex; }\n\n.ag-pinned-left-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px; }\n\n.ag-pinned-right-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px; }\n\n.ag-floating-bottom {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex; }\n\n.ag-pinned-left-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px; }\n\n.ag-pinned-right-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px; }\n\n/**\n ****************************\n * Dialog\n ****************************\n*/\n.ag-dialog, .ag-panel {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden; }\n\n.ag-panel-title-bar {\n display: flex;\n flex: none;\n align-items: center;\n cursor: default; }\n\n.ag-panel-title-bar-title {\n flex: 1 1 auto; }\n\n.ag-panel-title-bar-buttons {\n display: flex; }\n\n.ag-panel-title-bar-button {\n cursor: pointer; }\n\n.ag-panel-content-wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n overflow: hidden; }\n\n.ag-dialog {\n position: absolute; }\n\n.ag-resizer {\n position: absolute;\n pointer-events: none;\n z-index: 1; }\n .ag-resizer.ag-resizer-topLeft {\n top: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize; }\n .ag-resizer.ag-resizer-top {\n top: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize; }\n .ag-resizer.ag-resizer-topRight {\n top: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize; }\n .ag-resizer.ag-resizer-right {\n top: 5px;\n right: 0;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize; }\n .ag-resizer.ag-resizer-bottomRight {\n bottom: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize; }\n .ag-resizer.ag-resizer-bottom {\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize; }\n .ag-resizer.ag-resizer-bottomLeft {\n bottom: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize; }\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 ****************************\n * Tooltip\n ****************************\n*/\n.ag-tooltip {\n position: absolute;\n pointer-events: none;\n z-index: 99999; }\n\n/**\n ****************************\n * Animations\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.ag-value-slide-out-end {\n margin-right: 10px;\n opacity: 0; }\n\n.ag-opacity-zero {\n opacity: 0 !important; }\n\n/**\n ****************************\n * Menu\n ****************************\n*/\n.ag-menu {\n max-height: 100%;\n overflow-y: auto;\n position: absolute;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n\n.ag-menu-column-select-wrapper {\n height: 265px;\n overflow: auto; }\n .ag-menu-column-select-wrapper .ag-column-select {\n height: 100%; }\n\n.ag-menu-list {\n display: table;\n width: 100%; }\n\n.ag-menu-option, .ag-menu-separator {\n display: table-row; }\n\n.ag-menu-option-part, .ag-menu-separator-part {\n display: table-cell;\n vertical-align: middle; }\n\n.ag-menu-option-text {\n white-space: nowrap; }\n\n.ag-compact-menu-option {\n width: 100%;\n display: flex;\n flex-wrap: nowrap; }\n\n.ag-compact-menu-option-text {\n white-space: nowrap;\n flex: 1 1 auto; }\n\n/**\n ****************************\n * Rich Select\n ****************************\n*/\n.ag-rich-select {\n cursor: default;\n outline: none; }\n\n.ag-rich-select-value {\n display: flex;\n align-items: center; }\n\n.ag-rich-select-value-icon {\n flex: 1 1 auto;\n order: 1; }\n .ag-ltr .ag-rich-select-value-icon {\n text-align: right; }\n .ag-rtl .ag-rich-select-value-icon {\n text-align: left; }\n\n.ag-rich-select-list {\n position: relative; }\n\n.ag-rich-select-virtual-list-item {\n display: flex; }\n\n.ag-rich-select-row {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n white-space: nowrap; }\n\n/**\n ****************************\n * Pagination\n ****************************\n*/\n.ag-paging-panel {\n align-items: center;\n display: flex;\n justify-content: flex-end; }\n\n.ag-paging-page-summary-panel {\n display: flex;\n align-items: center; }\n\n.ag-paging-button {\n position: relative; }\n\n.ag-disabled .ag-paging-page-summary-panel {\n pointer-events: none; }\n\n/**\n ****************************\n * Tool Panel\n ****************************\n*/\n.ag-tool-panel-wrapper {\n display: flex;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n width: 200px; }\n\n.ag-column-select-column,\n.ag-column-select-column-group {\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 .ag-column-select-column > *,\n .ag-column-select-column-group > * {\n flex: none; }\n\n.ag-column-select-checkbox {\n display: flex; }\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.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.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.ag-details-row {\n width: 100%; }\n\n.ag-details-row-fixed-height {\n height: 100%; }\n\n.ag-details-grid {\n width: 100%; }\n\n.ag-details-grid-fixed-height {\n height: 100%; }\n\n.ag-header-group-cell {\n display: flex;\n align-items: center;\n height: 100%;\n position: absolute; }\n\n.ag-cell-label-container {\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden; }\n\n.ag-right-aligned-header .ag-cell-label-container {\n flex-direction: row; }\n\n/**\n ****************************\n * Side Bar\n ****************************\n*/\n.ag-side-bar {\n display: flex;\n flex-direction: row-reverse; }\n\n.ag-side-bar-left {\n order: -1;\n flex-direction: row; }\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.ag-side-button-label {\n -webkit-writing-mode: vertical-lr;\n -ms-writing-mode: tb-lr;\n writing-mode: vertical-lr; }\n\n/**\n ****************************\n * Status Bar\n ****************************\n*/\n.ag-status-bar {\n display: flex;\n justify-content: space-between;\n overflow: hidden; }\n\n.ag-status-panel {\n display: inline-flex; }\n\n.ag-status-name-value {\n white-space: nowrap; }\n\n.ag-status-bar-left {\n display: inline-flex; }\n\n.ag-status-bar-center {\n display: inline-flex; }\n\n.ag-status-bar-right {\n display: inline-flex; }\n\n/**\n ****************************\n * Widgets\n ****************************\n*/\n.ag-icon {\n display: block;\n speak: none; }\n\n.ag-group {\n position: relative;\n width: 100%; }\n\n.ag-group-title-bar {\n display: flex;\n align-items: center; }\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.ag-group-title-bar\n.ag-group-title {\n cursor: default; }\n\n.ag-group-toolbar {\n display: flex;\n align-items: center; }\n\n.ag-group-container {\n display: flex; }\n\n.ag-disabled .ag-group-container {\n pointer-events: none; }\n\n.ag-group-container-horizontal {\n flex-direction: row;\n flex-wrap: wrap; }\n\n.ag-group-container-vertical {\n flex-direction: column; }\n\n.ag-charts-font-size-color {\n display: flex;\n align-self: stretch;\n justify-content: space-between; }\n\n.ag-column-group-icons {\n display: block; }\n .ag-column-group-icons > * {\n cursor: pointer; }\n\n.ag-group-item-alignment-stretch .ag-group-item {\n align-items: stretch; }\n\n.ag-group-item-alignment-start .ag-group-item {\n align-items: flex-start; }\n\n.ag-group-item-alignment-end .ag-group-item {\n align-items: flex-end; }\n\n.ag-toggle-button-icon {\n transition: right 0.3s;\n position: absolute;\n top: -1px; }\n\n.ag-input-field, .ag-select {\n display: flex;\n flex-direction: row;\n align-items: center; }\n\n.ag-input-field-input {\n flex: 1 1 auto;\n width: 100%;\n min-width: 0; }\n\n.ag-floating-filter-input .ag-input-field-input[type='date'] {\n width: 1px; }\n\n.ag-range-field {\n display: flex;\n align-items: center; }\n\n.ag-angle-select {\n display: flex;\n align-items: center; }\n\n.ag-angle-select-wrapper {\n display: flex; }\n\n.ag-angle-select-parent-circle {\n display: block;\n position: relative; }\n\n.ag-angle-select-child-circle {\n position: absolute; }\n\n.ag-slider-wrapper {\n display: flex; }\n .ag-slider-wrapper .ag-input-field {\n flex: 1 1 auto; }\n\n.ag-picker-field-display {\n flex: 1 1 auto; }\n\n.ag-picker-field {\n display: flex;\n align-items: center; }\n\n.ag-picker-field-icon {\n display: flex;\n border: 0;\n padding: 0;\n margin: 0;\n cursor: pointer; }\n\n.ag-picker-field-wrapper {\n overflow: hidden; }\n\n.ag-label-align-right .ag-label {\n order: 1; }\n\n.ag-label-align-right > * {\n flex: none; }\n\n.ag-label-align-top {\n flex-direction: column;\n align-items: flex-start; }\n .ag-label-align-top > * {\n align-self: stretch; }\n\n.ag-color-panel {\n width: 100%;\n display: flex;\n flex-direction: column;\n text-align: center; }\n\n.ag-spectrum-color {\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n cursor: default; }\n\n.ag-spectrum-fill {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0; }\n\n.ag-spectrum-val {\n cursor: pointer; }\n\n.ag-spectrum-dragger {\n position: absolute;\n pointer-events: none;\n cursor: pointer; }\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.ag-spectrum-alpha {\n cursor: default; }\n\n.ag-spectrum-hue-background {\n width: 100%;\n height: 100%; }\n\n.ag-spectrum-alpha-background {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0), black);\n width: 100%;\n height: 100%; }\n\n.ag-spectrum-tool {\n cursor: pointer; }\n\n.ag-spectrum-slider {\n position: absolute;\n pointer-events: none; }\n\n.ag-recent-colors {\n display: flex; }\n\n.ag-recent-color {\n cursor: pointer; }\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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.ag-ltr .ag-column-select-indent-10 {\n padding-left: 200px; }\n\n.ag-rtl .ag-column-select-indent-10 {\n padding-right: 200px; }\n\n.ag-ltr .ag-row-group-indent-10 {\n padding-left: 200px; }\n\n.ag-rtl .ag-row-group-indent-10 {\n padding-right: 200px; }\n\n.ag-ltr .ag-column-select-indent-11 {\n padding-left: 220px; }\n\n.ag-rtl .ag-column-select-indent-11 {\n padding-right: 220px; }\n\n.ag-ltr .ag-row-group-indent-11 {\n padding-left: 220px; }\n\n.ag-rtl .ag-row-group-indent-11 {\n padding-right: 220px; }\n\n.ag-ltr .ag-column-select-indent-12 {\n padding-left: 240px; }\n\n.ag-rtl .ag-column-select-indent-12 {\n padding-right: 240px; }\n\n.ag-ltr .ag-row-group-indent-12 {\n padding-left: 240px; }\n\n.ag-rtl .ag-row-group-indent-12 {\n padding-right: 240px; }\n\n.ag-ltr .ag-column-select-indent-13 {\n padding-left: 260px; }\n\n.ag-rtl .ag-column-select-indent-13 {\n padding-right: 260px; }\n\n.ag-ltr .ag-row-group-indent-13 {\n padding-left: 260px; }\n\n.ag-rtl .ag-row-group-indent-13 {\n padding-right: 260px; }\n\n.ag-ltr .ag-column-select-indent-14 {\n padding-left: 280px; }\n\n.ag-rtl .ag-column-select-indent-14 {\n padding-right: 280px; }\n\n.ag-ltr .ag-row-group-indent-14 {\n padding-left: 280px; }\n\n.ag-rtl .ag-row-group-indent-14 {\n padding-right: 280px; }\n\n.ag-ltr .ag-column-select-indent-15 {\n padding-left: 300px; }\n\n.ag-rtl .ag-column-select-indent-15 {\n padding-right: 300px; }\n\n.ag-ltr .ag-row-group-indent-15 {\n padding-left: 300px; }\n\n.ag-rtl .ag-row-group-indent-15 {\n padding-right: 300px; }\n\n.ag-ltr .ag-column-select-indent-16 {\n padding-left: 320px; }\n\n.ag-rtl .ag-column-select-indent-16 {\n padding-right: 320px; }\n\n.ag-ltr .ag-row-group-indent-16 {\n padding-left: 320px; }\n\n.ag-rtl .ag-row-group-indent-16 {\n padding-right: 320px; }\n\n.ag-ltr .ag-column-select-indent-17 {\n padding-left: 340px; }\n\n.ag-rtl .ag-column-select-indent-17 {\n padding-right: 340px; }\n\n.ag-ltr .ag-row-group-indent-17 {\n padding-left: 340px; }\n\n.ag-rtl .ag-row-group-indent-17 {\n padding-right: 340px; }\n\n.ag-ltr .ag-column-select-indent-18 {\n padding-left: 360px; }\n\n.ag-rtl .ag-column-select-indent-18 {\n padding-right: 360px; }\n\n.ag-ltr .ag-row-group-indent-18 {\n padding-left: 360px; }\n\n.ag-rtl .ag-row-group-indent-18 {\n padding-right: 360px; }\n\n.ag-ltr .ag-column-select-indent-19 {\n padding-left: 380px; }\n\n.ag-rtl .ag-column-select-indent-19 {\n padding-right: 380px; }\n\n.ag-ltr .ag-row-group-indent-19 {\n padding-left: 380px; }\n\n.ag-rtl .ag-row-group-indent-19 {\n padding-right: 380px; }\n\n.ag-ltr .ag-column-select-indent-20 {\n padding-left: 400px; }\n\n.ag-rtl .ag-column-select-indent-20 {\n padding-right: 400px; }\n\n.ag-ltr .ag-row-group-indent-20 {\n padding-left: 400px; }\n\n.ag-rtl .ag-row-group-indent-20 {\n padding-right: 400px; }\n\n.ag-ltr .ag-column-select-indent-21 {\n padding-left: 420px; }\n\n.ag-rtl .ag-column-select-indent-21 {\n padding-right: 420px; }\n\n.ag-ltr .ag-row-group-indent-21 {\n padding-left: 420px; }\n\n.ag-rtl .ag-row-group-indent-21 {\n padding-right: 420px; }\n\n.ag-ltr .ag-column-select-indent-22 {\n padding-left: 440px; }\n\n.ag-rtl .ag-column-select-indent-22 {\n padding-right: 440px; }\n\n.ag-ltr .ag-row-group-indent-22 {\n padding-left: 440px; }\n\n.ag-rtl .ag-row-group-indent-22 {\n padding-right: 440px; }\n\n.ag-ltr .ag-column-select-indent-23 {\n padding-left: 460px; }\n\n.ag-rtl .ag-column-select-indent-23 {\n padding-right: 460px; }\n\n.ag-ltr .ag-row-group-indent-23 {\n padding-left: 460px; }\n\n.ag-rtl .ag-row-group-indent-23 {\n padding-right: 460px; }\n\n.ag-ltr .ag-column-select-indent-24 {\n padding-left: 480px; }\n\n.ag-rtl .ag-column-select-indent-24 {\n padding-right: 480px; }\n\n.ag-ltr .ag-row-group-indent-24 {\n padding-left: 480px; }\n\n.ag-rtl .ag-row-group-indent-24 {\n padding-right: 480px; }\n\n.ag-ltr .ag-column-select-indent-25 {\n padding-left: 500px; }\n\n.ag-rtl .ag-column-select-indent-25 {\n padding-right: 500px; }\n\n.ag-ltr .ag-row-group-indent-25 {\n padding-left: 500px; }\n\n.ag-rtl .ag-row-group-indent-25 {\n padding-right: 500px; }\n\n.ag-ltr .ag-column-select-indent-26 {\n padding-left: 520px; }\n\n.ag-rtl .ag-column-select-indent-26 {\n padding-right: 520px; }\n\n.ag-ltr .ag-row-group-indent-26 {\n padding-left: 520px; }\n\n.ag-rtl .ag-row-group-indent-26 {\n padding-right: 520px; }\n\n.ag-ltr .ag-column-select-indent-27 {\n padding-left: 540px; }\n\n.ag-rtl .ag-column-select-indent-27 {\n padding-right: 540px; }\n\n.ag-ltr .ag-row-group-indent-27 {\n padding-left: 540px; }\n\n.ag-rtl .ag-row-group-indent-27 {\n padding-right: 540px; }\n\n.ag-ltr .ag-column-select-indent-28 {\n padding-left: 560px; }\n\n.ag-rtl .ag-column-select-indent-28 {\n padding-right: 560px; }\n\n.ag-ltr .ag-row-group-indent-28 {\n padding-left: 560px; }\n\n.ag-rtl .ag-row-group-indent-28 {\n padding-right: 560px; }\n\n.ag-ltr .ag-column-select-indent-29 {\n padding-left: 580px; }\n\n.ag-rtl .ag-column-select-indent-29 {\n padding-right: 580px; }\n\n.ag-ltr .ag-row-group-indent-29 {\n padding-left: 580px; }\n\n.ag-rtl .ag-row-group-indent-29 {\n padding-right: 580px; }\n\n.ag-ltr .ag-column-select-indent-30 {\n padding-left: 600px; }\n\n.ag-rtl .ag-column-select-indent-30 {\n padding-right: 600px; }\n\n.ag-ltr .ag-row-group-indent-30 {\n padding-left: 600px; }\n\n.ag-rtl .ag-row-group-indent-30 {\n padding-right: 600px; }\n\n.ag-ltr .ag-column-select-indent-31 {\n padding-left: 620px; }\n\n.ag-rtl .ag-column-select-indent-31 {\n padding-right: 620px; }\n\n.ag-ltr .ag-row-group-indent-31 {\n padding-left: 620px; }\n\n.ag-rtl .ag-row-group-indent-31 {\n padding-right: 620px; }\n\n.ag-ltr .ag-column-select-indent-32 {\n padding-left: 640px; }\n\n.ag-rtl .ag-column-select-indent-32 {\n padding-right: 640px; }\n\n.ag-ltr .ag-row-group-indent-32 {\n padding-left: 640px; }\n\n.ag-rtl .ag-row-group-indent-32 {\n padding-right: 640px; }\n\n.ag-ltr .ag-column-select-indent-33 {\n padding-left: 660px; }\n\n.ag-rtl .ag-column-select-indent-33 {\n padding-right: 660px; }\n\n.ag-ltr .ag-row-group-indent-33 {\n padding-left: 660px; }\n\n.ag-rtl .ag-row-group-indent-33 {\n padding-right: 660px; }\n\n.ag-ltr .ag-column-select-indent-34 {\n padding-left: 680px; }\n\n.ag-rtl .ag-column-select-indent-34 {\n padding-right: 680px; }\n\n.ag-ltr .ag-row-group-indent-34 {\n padding-left: 680px; }\n\n.ag-rtl .ag-row-group-indent-34 {\n padding-right: 680px; }\n\n.ag-ltr .ag-column-select-indent-35 {\n padding-left: 700px; }\n\n.ag-rtl .ag-column-select-indent-35 {\n padding-right: 700px; }\n\n.ag-ltr .ag-row-group-indent-35 {\n padding-left: 700px; }\n\n.ag-rtl .ag-row-group-indent-35 {\n padding-right: 700px; }\n\n.ag-ltr .ag-column-select-indent-36 {\n padding-left: 720px; }\n\n.ag-rtl .ag-column-select-indent-36 {\n padding-right: 720px; }\n\n.ag-ltr .ag-row-group-indent-36 {\n padding-left: 720px; }\n\n.ag-rtl .ag-row-group-indent-36 {\n padding-right: 720px; }\n\n.ag-ltr .ag-column-select-indent-37 {\n padding-left: 740px; }\n\n.ag-rtl .ag-column-select-indent-37 {\n padding-right: 740px; }\n\n.ag-ltr .ag-row-group-indent-37 {\n padding-left: 740px; }\n\n.ag-rtl .ag-row-group-indent-37 {\n padding-right: 740px; }\n\n.ag-ltr .ag-column-select-indent-38 {\n padding-left: 760px; }\n\n.ag-rtl .ag-column-select-indent-38 {\n padding-right: 760px; }\n\n.ag-ltr .ag-row-group-indent-38 {\n padding-left: 760px; }\n\n.ag-rtl .ag-row-group-indent-38 {\n padding-right: 760px; }\n\n.ag-ltr .ag-column-select-indent-39 {\n padding-left: 780px; }\n\n.ag-rtl .ag-column-select-indent-39 {\n padding-right: 780px; }\n\n.ag-ltr .ag-row-group-indent-39 {\n padding-left: 780px; }\n\n.ag-rtl .ag-row-group-indent-39 {\n padding-right: 780px; }\n\n.ag-ltr .ag-column-select-indent-40 {\n padding-left: 800px; }\n\n.ag-rtl .ag-column-select-indent-40 {\n padding-right: 800px; }\n\n.ag-ltr .ag-row-group-indent-40 {\n padding-left: 800px; }\n\n.ag-rtl .ag-row-group-indent-40 {\n padding-right: 800px; }\n\n.ag-ltr .ag-column-select-indent-41 {\n padding-left: 820px; }\n\n.ag-rtl .ag-column-select-indent-41 {\n padding-right: 820px; }\n\n.ag-ltr .ag-row-group-indent-41 {\n padding-left: 820px; }\n\n.ag-rtl .ag-row-group-indent-41 {\n padding-right: 820px; }\n\n.ag-ltr .ag-column-select-indent-42 {\n padding-left: 840px; }\n\n.ag-rtl .ag-column-select-indent-42 {\n padding-right: 840px; }\n\n.ag-ltr .ag-row-group-indent-42 {\n padding-left: 840px; }\n\n.ag-rtl .ag-row-group-indent-42 {\n padding-right: 840px; }\n\n.ag-ltr .ag-column-select-indent-43 {\n padding-left: 860px; }\n\n.ag-rtl .ag-column-select-indent-43 {\n padding-right: 860px; }\n\n.ag-ltr .ag-row-group-indent-43 {\n padding-left: 860px; }\n\n.ag-rtl .ag-row-group-indent-43 {\n padding-right: 860px; }\n\n.ag-ltr .ag-column-select-indent-44 {\n padding-left: 880px; }\n\n.ag-rtl .ag-column-select-indent-44 {\n padding-right: 880px; }\n\n.ag-ltr .ag-row-group-indent-44 {\n padding-left: 880px; }\n\n.ag-rtl .ag-row-group-indent-44 {\n padding-right: 880px; }\n\n.ag-ltr .ag-column-select-indent-45 {\n padding-left: 900px; }\n\n.ag-rtl .ag-column-select-indent-45 {\n padding-right: 900px; }\n\n.ag-ltr .ag-row-group-indent-45 {\n padding-left: 900px; }\n\n.ag-rtl .ag-row-group-indent-45 {\n padding-right: 900px; }\n\n.ag-ltr .ag-column-select-indent-46 {\n padding-left: 920px; }\n\n.ag-rtl .ag-column-select-indent-46 {\n padding-right: 920px; }\n\n.ag-ltr .ag-row-group-indent-46 {\n padding-left: 920px; }\n\n.ag-rtl .ag-row-group-indent-46 {\n padding-right: 920px; }\n\n.ag-ltr .ag-column-select-indent-47 {\n padding-left: 940px; }\n\n.ag-rtl .ag-column-select-indent-47 {\n padding-right: 940px; }\n\n.ag-ltr .ag-row-group-indent-47 {\n padding-left: 940px; }\n\n.ag-rtl .ag-row-group-indent-47 {\n padding-right: 940px; }\n\n.ag-ltr .ag-column-select-indent-48 {\n padding-left: 960px; }\n\n.ag-rtl .ag-column-select-indent-48 {\n padding-right: 960px; }\n\n.ag-ltr .ag-row-group-indent-48 {\n padding-left: 960px; }\n\n.ag-rtl .ag-row-group-indent-48 {\n padding-right: 960px; }\n\n.ag-ltr .ag-column-select-indent-49 {\n padding-left: 980px; }\n\n.ag-rtl .ag-column-select-indent-49 {\n padding-right: 980px; }\n\n.ag-ltr .ag-row-group-indent-49 {\n padding-left: 980px; }\n\n.ag-rtl .ag-row-group-indent-49 {\n padding-right: 980px; }\n\n.ag-ltr .ag-column-select-indent-50 {\n padding-left: 1000px; }\n\n.ag-rtl .ag-column-select-indent-50 {\n padding-right: 1000px; }\n\n.ag-ltr .ag-row-group-indent-50 {\n padding-left: 1000px; }\n\n.ag-rtl .ag-row-group-indent-50 {\n padding-right: 1000px; }\n\n.ag-ltr .ag-column-select-indent-51 {\n padding-left: 1020px; }\n\n.ag-rtl .ag-column-select-indent-51 {\n padding-right: 1020px; }\n\n.ag-ltr .ag-row-group-indent-51 {\n padding-left: 1020px; }\n\n.ag-rtl .ag-row-group-indent-51 {\n padding-right: 1020px; }\n\n.ag-ltr .ag-column-select-indent-52 {\n padding-left: 1040px; }\n\n.ag-rtl .ag-column-select-indent-52 {\n padding-right: 1040px; }\n\n.ag-ltr .ag-row-group-indent-52 {\n padding-left: 1040px; }\n\n.ag-rtl .ag-row-group-indent-52 {\n padding-right: 1040px; }\n\n.ag-ltr .ag-column-select-indent-53 {\n padding-left: 1060px; }\n\n.ag-rtl .ag-column-select-indent-53 {\n padding-right: 1060px; }\n\n.ag-ltr .ag-row-group-indent-53 {\n padding-left: 1060px; }\n\n.ag-rtl .ag-row-group-indent-53 {\n padding-right: 1060px; }\n\n.ag-ltr .ag-column-select-indent-54 {\n padding-left: 1080px; }\n\n.ag-rtl .ag-column-select-indent-54 {\n padding-right: 1080px; }\n\n.ag-ltr .ag-row-group-indent-54 {\n padding-left: 1080px; }\n\n.ag-rtl .ag-row-group-indent-54 {\n padding-right: 1080px; }\n\n.ag-ltr .ag-column-select-indent-55 {\n padding-left: 1100px; }\n\n.ag-rtl .ag-column-select-indent-55 {\n padding-right: 1100px; }\n\n.ag-ltr .ag-row-group-indent-55 {\n padding-left: 1100px; }\n\n.ag-rtl .ag-row-group-indent-55 {\n padding-right: 1100px; }\n\n.ag-ltr .ag-column-select-indent-56 {\n padding-left: 1120px; }\n\n.ag-rtl .ag-column-select-indent-56 {\n padding-right: 1120px; }\n\n.ag-ltr .ag-row-group-indent-56 {\n padding-left: 1120px; }\n\n.ag-rtl .ag-row-group-indent-56 {\n padding-right: 1120px; }\n\n.ag-ltr .ag-column-select-indent-57 {\n padding-left: 1140px; }\n\n.ag-rtl .ag-column-select-indent-57 {\n padding-right: 1140px; }\n\n.ag-ltr .ag-row-group-indent-57 {\n padding-left: 1140px; }\n\n.ag-rtl .ag-row-group-indent-57 {\n padding-right: 1140px; }\n\n.ag-ltr .ag-column-select-indent-58 {\n padding-left: 1160px; }\n\n.ag-rtl .ag-column-select-indent-58 {\n padding-right: 1160px; }\n\n.ag-ltr .ag-row-group-indent-58 {\n padding-left: 1160px; }\n\n.ag-rtl .ag-row-group-indent-58 {\n padding-right: 1160px; }\n\n.ag-ltr .ag-column-select-indent-59 {\n padding-left: 1180px; }\n\n.ag-rtl .ag-column-select-indent-59 {\n padding-right: 1180px; }\n\n.ag-ltr .ag-row-group-indent-59 {\n padding-left: 1180px; }\n\n.ag-rtl .ag-row-group-indent-59 {\n padding-right: 1180px; }\n\n.ag-ltr .ag-column-select-indent-60 {\n padding-left: 1200px; }\n\n.ag-rtl .ag-column-select-indent-60 {\n padding-right: 1200px; }\n\n.ag-ltr .ag-row-group-indent-60 {\n padding-left: 1200px; }\n\n.ag-rtl .ag-row-group-indent-60 {\n padding-right: 1200px; }\n\n.ag-ltr .ag-column-select-indent-61 {\n padding-left: 1220px; }\n\n.ag-rtl .ag-column-select-indent-61 {\n padding-right: 1220px; }\n\n.ag-ltr .ag-row-group-indent-61 {\n padding-left: 1220px; }\n\n.ag-rtl .ag-row-group-indent-61 {\n padding-right: 1220px; }\n\n.ag-ltr .ag-column-select-indent-62 {\n padding-left: 1240px; }\n\n.ag-rtl .ag-column-select-indent-62 {\n padding-right: 1240px; }\n\n.ag-ltr .ag-row-group-indent-62 {\n padding-left: 1240px; }\n\n.ag-rtl .ag-row-group-indent-62 {\n padding-right: 1240px; }\n\n.ag-ltr .ag-column-select-indent-63 {\n padding-left: 1260px; }\n\n.ag-rtl .ag-column-select-indent-63 {\n padding-right: 1260px; }\n\n.ag-ltr .ag-row-group-indent-63 {\n padding-left: 1260px; }\n\n.ag-rtl .ag-row-group-indent-63 {\n padding-right: 1260px; }\n\n.ag-ltr .ag-column-select-indent-64 {\n padding-left: 1280px; }\n\n.ag-rtl .ag-column-select-indent-64 {\n padding-right: 1280px; }\n\n.ag-ltr .ag-row-group-indent-64 {\n padding-left: 1280px; }\n\n.ag-rtl .ag-row-group-indent-64 {\n padding-right: 1280px; }\n\n.ag-ltr .ag-column-select-indent-65 {\n padding-left: 1300px; }\n\n.ag-rtl .ag-column-select-indent-65 {\n padding-right: 1300px; }\n\n.ag-ltr .ag-row-group-indent-65 {\n padding-left: 1300px; }\n\n.ag-rtl .ag-row-group-indent-65 {\n padding-right: 1300px; }\n\n.ag-ltr .ag-column-select-indent-66 {\n padding-left: 1320px; }\n\n.ag-rtl .ag-column-select-indent-66 {\n padding-right: 1320px; }\n\n.ag-ltr .ag-row-group-indent-66 {\n padding-left: 1320px; }\n\n.ag-rtl .ag-row-group-indent-66 {\n padding-right: 1320px; }\n\n.ag-ltr .ag-column-select-indent-67 {\n padding-left: 1340px; }\n\n.ag-rtl .ag-column-select-indent-67 {\n padding-right: 1340px; }\n\n.ag-ltr .ag-row-group-indent-67 {\n padding-left: 1340px; }\n\n.ag-rtl .ag-row-group-indent-67 {\n padding-right: 1340px; }\n\n.ag-ltr .ag-column-select-indent-68 {\n padding-left: 1360px; }\n\n.ag-rtl .ag-column-select-indent-68 {\n padding-right: 1360px; }\n\n.ag-ltr .ag-row-group-indent-68 {\n padding-left: 1360px; }\n\n.ag-rtl .ag-row-group-indent-68 {\n padding-right: 1360px; }\n\n.ag-ltr .ag-column-select-indent-69 {\n padding-left: 1380px; }\n\n.ag-rtl .ag-column-select-indent-69 {\n padding-right: 1380px; }\n\n.ag-ltr .ag-row-group-indent-69 {\n padding-left: 1380px; }\n\n.ag-rtl .ag-row-group-indent-69 {\n padding-right: 1380px; }\n\n.ag-ltr .ag-column-select-indent-70 {\n padding-left: 1400px; }\n\n.ag-rtl .ag-column-select-indent-70 {\n padding-right: 1400px; }\n\n.ag-ltr .ag-row-group-indent-70 {\n padding-left: 1400px; }\n\n.ag-rtl .ag-row-group-indent-70 {\n padding-right: 1400px; }\n\n.ag-ltr .ag-column-select-indent-71 {\n padding-left: 1420px; }\n\n.ag-rtl .ag-column-select-indent-71 {\n padding-right: 1420px; }\n\n.ag-ltr .ag-row-group-indent-71 {\n padding-left: 1420px; }\n\n.ag-rtl .ag-row-group-indent-71 {\n padding-right: 1420px; }\n\n.ag-ltr .ag-column-select-indent-72 {\n padding-left: 1440px; }\n\n.ag-rtl .ag-column-select-indent-72 {\n padding-right: 1440px; }\n\n.ag-ltr .ag-row-group-indent-72 {\n padding-left: 1440px; }\n\n.ag-rtl .ag-row-group-indent-72 {\n padding-right: 1440px; }\n\n.ag-ltr .ag-column-select-indent-73 {\n padding-left: 1460px; }\n\n.ag-rtl .ag-column-select-indent-73 {\n padding-right: 1460px; }\n\n.ag-ltr .ag-row-group-indent-73 {\n padding-left: 1460px; }\n\n.ag-rtl .ag-row-group-indent-73 {\n padding-right: 1460px; }\n\n.ag-ltr .ag-column-select-indent-74 {\n padding-left: 1480px; }\n\n.ag-rtl .ag-column-select-indent-74 {\n padding-right: 1480px; }\n\n.ag-ltr .ag-row-group-indent-74 {\n padding-left: 1480px; }\n\n.ag-rtl .ag-row-group-indent-74 {\n padding-right: 1480px; }\n\n.ag-ltr .ag-column-select-indent-75 {\n padding-left: 1500px; }\n\n.ag-rtl .ag-column-select-indent-75 {\n padding-right: 1500px; }\n\n.ag-ltr .ag-row-group-indent-75 {\n padding-left: 1500px; }\n\n.ag-rtl .ag-row-group-indent-75 {\n padding-right: 1500px; }\n\n.ag-ltr .ag-column-select-indent-76 {\n padding-left: 1520px; }\n\n.ag-rtl .ag-column-select-indent-76 {\n padding-right: 1520px; }\n\n.ag-ltr .ag-row-group-indent-76 {\n padding-left: 1520px; }\n\n.ag-rtl .ag-row-group-indent-76 {\n padding-right: 1520px; }\n\n.ag-ltr .ag-column-select-indent-77 {\n padding-left: 1540px; }\n\n.ag-rtl .ag-column-select-indent-77 {\n padding-right: 1540px; }\n\n.ag-ltr .ag-row-group-indent-77 {\n padding-left: 1540px; }\n\n.ag-rtl .ag-row-group-indent-77 {\n padding-right: 1540px; }\n\n.ag-ltr .ag-column-select-indent-78 {\n padding-left: 1560px; }\n\n.ag-rtl .ag-column-select-indent-78 {\n padding-right: 1560px; }\n\n.ag-ltr .ag-row-group-indent-78 {\n padding-left: 1560px; }\n\n.ag-rtl .ag-row-group-indent-78 {\n padding-right: 1560px; }\n\n.ag-ltr .ag-column-select-indent-79 {\n padding-left: 1580px; }\n\n.ag-rtl .ag-column-select-indent-79 {\n padding-right: 1580px; }\n\n.ag-ltr .ag-row-group-indent-79 {\n padding-left: 1580px; }\n\n.ag-rtl .ag-row-group-indent-79 {\n padding-right: 1580px; }\n\n.ag-ltr .ag-column-select-indent-80 {\n padding-left: 1600px; }\n\n.ag-rtl .ag-column-select-indent-80 {\n padding-right: 1600px; }\n\n.ag-ltr .ag-row-group-indent-80 {\n padding-left: 1600px; }\n\n.ag-rtl .ag-row-group-indent-80 {\n padding-right: 1600px; }\n\n.ag-ltr .ag-column-select-indent-81 {\n padding-left: 1620px; }\n\n.ag-rtl .ag-column-select-indent-81 {\n padding-right: 1620px; }\n\n.ag-ltr .ag-row-group-indent-81 {\n padding-left: 1620px; }\n\n.ag-rtl .ag-row-group-indent-81 {\n padding-right: 1620px; }\n\n.ag-ltr .ag-column-select-indent-82 {\n padding-left: 1640px; }\n\n.ag-rtl .ag-column-select-indent-82 {\n padding-right: 1640px; }\n\n.ag-ltr .ag-row-group-indent-82 {\n padding-left: 1640px; }\n\n.ag-rtl .ag-row-group-indent-82 {\n padding-right: 1640px; }\n\n.ag-ltr .ag-column-select-indent-83 {\n padding-left: 1660px; }\n\n.ag-rtl .ag-column-select-indent-83 {\n padding-right: 1660px; }\n\n.ag-ltr .ag-row-group-indent-83 {\n padding-left: 1660px; }\n\n.ag-rtl .ag-row-group-indent-83 {\n padding-right: 1660px; }\n\n.ag-ltr .ag-column-select-indent-84 {\n padding-left: 1680px; }\n\n.ag-rtl .ag-column-select-indent-84 {\n padding-right: 1680px; }\n\n.ag-ltr .ag-row-group-indent-84 {\n padding-left: 1680px; }\n\n.ag-rtl .ag-row-group-indent-84 {\n padding-right: 1680px; }\n\n.ag-ltr .ag-column-select-indent-85 {\n padding-left: 1700px; }\n\n.ag-rtl .ag-column-select-indent-85 {\n padding-right: 1700px; }\n\n.ag-ltr .ag-row-group-indent-85 {\n padding-left: 1700px; }\n\n.ag-rtl .ag-row-group-indent-85 {\n padding-right: 1700px; }\n\n.ag-ltr .ag-column-select-indent-86 {\n padding-left: 1720px; }\n\n.ag-rtl .ag-column-select-indent-86 {\n padding-right: 1720px; }\n\n.ag-ltr .ag-row-group-indent-86 {\n padding-left: 1720px; }\n\n.ag-rtl .ag-row-group-indent-86 {\n padding-right: 1720px; }\n\n.ag-ltr .ag-column-select-indent-87 {\n padding-left: 1740px; }\n\n.ag-rtl .ag-column-select-indent-87 {\n padding-right: 1740px; }\n\n.ag-ltr .ag-row-group-indent-87 {\n padding-left: 1740px; }\n\n.ag-rtl .ag-row-group-indent-87 {\n padding-right: 1740px; }\n\n.ag-ltr .ag-column-select-indent-88 {\n padding-left: 1760px; }\n\n.ag-rtl .ag-column-select-indent-88 {\n padding-right: 1760px; }\n\n.ag-ltr .ag-row-group-indent-88 {\n padding-left: 1760px; }\n\n.ag-rtl .ag-row-group-indent-88 {\n padding-right: 1760px; }\n\n.ag-ltr .ag-column-select-indent-89 {\n padding-left: 1780px; }\n\n.ag-rtl .ag-column-select-indent-89 {\n padding-right: 1780px; }\n\n.ag-ltr .ag-row-group-indent-89 {\n padding-left: 1780px; }\n\n.ag-rtl .ag-row-group-indent-89 {\n padding-right: 1780px; }\n\n.ag-ltr .ag-column-select-indent-90 {\n padding-left: 1800px; }\n\n.ag-rtl .ag-column-select-indent-90 {\n padding-right: 1800px; }\n\n.ag-ltr .ag-row-group-indent-90 {\n padding-left: 1800px; }\n\n.ag-rtl .ag-row-group-indent-90 {\n padding-right: 1800px; }\n\n.ag-ltr .ag-column-select-indent-91 {\n padding-left: 1820px; }\n\n.ag-rtl .ag-column-select-indent-91 {\n padding-right: 1820px; }\n\n.ag-ltr .ag-row-group-indent-91 {\n padding-left: 1820px; }\n\n.ag-rtl .ag-row-group-indent-91 {\n padding-right: 1820px; }\n\n.ag-ltr .ag-column-select-indent-92 {\n padding-left: 1840px; }\n\n.ag-rtl .ag-column-select-indent-92 {\n padding-right: 1840px; }\n\n.ag-ltr .ag-row-group-indent-92 {\n padding-left: 1840px; }\n\n.ag-rtl .ag-row-group-indent-92 {\n padding-right: 1840px; }\n\n.ag-ltr .ag-column-select-indent-93 {\n padding-left: 1860px; }\n\n.ag-rtl .ag-column-select-indent-93 {\n padding-right: 1860px; }\n\n.ag-ltr .ag-row-group-indent-93 {\n padding-left: 1860px; }\n\n.ag-rtl .ag-row-group-indent-93 {\n padding-right: 1860px; }\n\n.ag-ltr .ag-column-select-indent-94 {\n padding-left: 1880px; }\n\n.ag-rtl .ag-column-select-indent-94 {\n padding-right: 1880px; }\n\n.ag-ltr .ag-row-group-indent-94 {\n padding-left: 1880px; }\n\n.ag-rtl .ag-row-group-indent-94 {\n padding-right: 1880px; }\n\n.ag-ltr .ag-column-select-indent-95 {\n padding-left: 1900px; }\n\n.ag-rtl .ag-column-select-indent-95 {\n padding-right: 1900px; }\n\n.ag-ltr .ag-row-group-indent-95 {\n padding-left: 1900px; }\n\n.ag-rtl .ag-row-group-indent-95 {\n padding-right: 1900px; }\n\n.ag-ltr .ag-column-select-indent-96 {\n padding-left: 1920px; }\n\n.ag-rtl .ag-column-select-indent-96 {\n padding-right: 1920px; }\n\n.ag-ltr .ag-row-group-indent-96 {\n padding-left: 1920px; }\n\n.ag-rtl .ag-row-group-indent-96 {\n padding-right: 1920px; }\n\n.ag-ltr .ag-column-select-indent-97 {\n padding-left: 1940px; }\n\n.ag-rtl .ag-column-select-indent-97 {\n padding-right: 1940px; }\n\n.ag-ltr .ag-row-group-indent-97 {\n padding-left: 1940px; }\n\n.ag-rtl .ag-row-group-indent-97 {\n padding-right: 1940px; }\n\n.ag-ltr .ag-column-select-indent-98 {\n padding-left: 1960px; }\n\n.ag-rtl .ag-column-select-indent-98 {\n padding-right: 1960px; }\n\n.ag-ltr .ag-row-group-indent-98 {\n padding-left: 1960px; }\n\n.ag-rtl .ag-row-group-indent-98 {\n padding-right: 1960px; }\n\n.ag-ltr .ag-column-select-indent-99 {\n padding-left: 1980px; }\n\n.ag-rtl .ag-column-select-indent-99 {\n padding-right: 1980px; }\n\n.ag-ltr .ag-row-group-indent-99 {\n padding-left: 1980px; }\n\n.ag-rtl .ag-row-group-indent-99 {\n padding-right: 1980px; }\n\n.ag-ltr {\n direction: ltr; }\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.ag-rtl {\n direction: rtl; }\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 .ag-rtl .ag-icon-contracted,\n .ag-rtl .ag-icon-tree-closed {\n display: block;\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.ag-body .ag-body-viewport {\n -webkit-overflow-scrolling: touch; }\n\n.ag-chart {\n position: relative;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%; }\n\n.ag-chart-components-wrapper {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden; }\n\n.ag-chart-title-edit {\n position: absolute;\n display: none;\n top: 0;\n left: 0;\n text-align: center; }\n\n.ag-chart-title-edit.currently-editing {\n display: inline-block; }\n\n.ag-chart-canvas-wrapper {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden; }\n\n.ag-charts-canvas {\n display: block; }\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 .ag-ltr .ag-chart-menu {\n right: 20px; }\n .ag-rtl .ag-chart-menu {\n left: 20px; }\n\n.ag-chart-docked-container {\n position: relative;\n width: 0;\n min-width: 0;\n transition: min-width 0.4s; }\n\n.ag-chart-menu-hidden ~ .ag-chart-docked-container {\n max-width: 0;\n overflow: hidden; }\n\n.ag-chart-tabbed-menu {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden; }\n\n.ag-chart-tabbed-menu-header {\n flex: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default; }\n\n.ag-chart-tabbed-menu-body {\n display: flex;\n flex: 1 1 auto;\n align-items: stretch;\n overflow: hidden; }\n\n.ag-chart-tab {\n width: 100%;\n overflow: hidden;\n overflow-y: auto; }\n\n.ag-chart-settings {\n overflow-x: hidden; }\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.ag-chart-settings-nav-bar {\n display: flex;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 10px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\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.ag-chart-settings-card-item {\n cursor: pointer;\n width: 10px;\n height: 10px;\n background-color: #000;\n position: relative; }\n .ag-chart-settings-card-item.ag-not-selected {\n opacity: 0.2; }\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.ag-chart-settings-prev,\n.ag-chart-settings-next {\n position: relative;\n flex: none; }\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.ag-chart-settings-mini-charts-container {\n position: relative;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: auto; }\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 .ag-chart-settings-mini-wrapper.ag-animating {\n transition: left 0.3s;\n transition-timing-function: ease-in-out; }\n\n.ag-chart-mini-thumbnail {\n cursor: pointer; }\n\n.ag-chart-mini-thumbnail-canvas {\n display: block; }\n\n.ag-chart-data-wrapper,\n.ag-chart-format-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0; }\n\n.ag-charts-font-panel-controls {\n justify-content: space-between; }\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.ag-chart .ag-chart-menu {\n opacity: 0;\n pointer-events: none; }\n\n.ag-chart-menu-hidden:hover .ag-chart-menu {\n opacity: 1;\n pointer-events: all; }\n\n.ag-date-time-list-page-title-bar {\n display: flex; }\n\n.ag-date-time-list-page-column-labels-row,\n.ag-date-time-list-page-entries-row {\n display: flex; }\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.ag-date-time-list-page-entry {\n cursor: pointer; }\n\n", ""]);
53517// Exports
53518module.exports = exports;
53519
53520
53521/***/ }),
53522/* 260 */
53523/***/ (function(module, exports, __webpack_require__) {
53524
53525"use strict";
53526
53527
53528/*
53529 MIT License http://www.opensource.org/licenses/mit-license.php
53530 Author Tobias Koppers @sokra
53531*/
53532// css base code, injected by the css-loader
53533// eslint-disable-next-line func-names
53534module.exports = function (useSourceMap) {
53535 var list = []; // return the list of modules as css string
53536
53537 list.toString = function toString() {
53538 return this.map(function (item) {
53539 var content = cssWithMappingToString(item, useSourceMap);
53540
53541 if (item[2]) {
53542 return "@media ".concat(item[2], " {").concat(content, "}");
53543 }
53544
53545 return content;
53546 }).join('');
53547 }; // import a list of modules into the list
53548 // eslint-disable-next-line func-names
53549
53550
53551 list.i = function (modules, mediaQuery, dedupe) {
53552 if (typeof modules === 'string') {
53553 // eslint-disable-next-line no-param-reassign
53554 modules = [[null, modules, '']];
53555 }
53556
53557 var alreadyImportedModules = {};
53558
53559 if (dedupe) {
53560 for (var i = 0; i < this.length; i++) {
53561 // eslint-disable-next-line prefer-destructuring
53562 var id = this[i][0];
53563
53564 if (id != null) {
53565 alreadyImportedModules[id] = true;
53566 }
53567 }
53568 }
53569
53570 for (var _i = 0; _i < modules.length; _i++) {
53571 var item = [].concat(modules[_i]);
53572
53573 if (dedupe && alreadyImportedModules[item[0]]) {
53574 // eslint-disable-next-line no-continue
53575 continue;
53576 }
53577
53578 if (mediaQuery) {
53579 if (!item[2]) {
53580 item[2] = mediaQuery;
53581 } else {
53582 item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
53583 }
53584 }
53585
53586 list.push(item);
53587 }
53588 };
53589
53590 return list;
53591};
53592
53593function cssWithMappingToString(item, useSourceMap) {
53594 var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring
53595
53596 var cssMapping = item[3];
53597
53598 if (!cssMapping) {
53599 return content;
53600 }
53601
53602 if (useSourceMap && typeof btoa === 'function') {
53603 var sourceMapping = toComment(cssMapping);
53604 var sourceURLs = cssMapping.sources.map(function (source) {
53605 return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */");
53606 });
53607 return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
53608 }
53609
53610 return [content].join('\n');
53611} // Adapted from convert-source-map (MIT)
53612
53613
53614function toComment(sourceMap) {
53615 // eslint-disable-next-line no-undef
53616 var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
53617 var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
53618 return "/*# ".concat(data, " */");
53619}
53620
53621/***/ }),
53622/* 261 */
53623/***/ (function(module, exports, __webpack_require__) {
53624
53625var api = __webpack_require__(258);
53626 var content = __webpack_require__(262);
53627
53628 content = content.__esModule ? content.default : content;
53629
53630 if (typeof content === 'string') {
53631 content = [[module.i, content, '']];
53632 }
53633
53634var options = {};
53635
53636options.insert = "head";
53637options.singleton = false;
53638
53639var update = api(content, options);
53640
53641
53642
53643module.exports = content.locals || {};
53644
53645/***/ }),
53646/* 262 */
53647/***/ (function(module, exports, __webpack_require__) {
53648
53649// Imports
53650var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53651exports = ___CSS_LOADER_API_IMPORT___(false);
53652// Module
53653exports.push([module.i, ".ag-theme-alpine-dark {\n color-scheme: dark;\n -webkit-font-smoothing: antialiased;\n color: #fff;\n color: var(--ag-foreground-color, #fff);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n font-size: 13px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridAlpine\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABWoAAsAAAAAJ9AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmYAAAR2ZcBn9U9TLzIAAANwAAAAQQAAAFZWUVMIY21hcAAAA7QAAAIcAAAFnIMq5ipnbHlmAAAF0AAAC80AABVszjC1ZWhlYWQAABGgAAAANAAAADZ2zsSBaGhlYQAAEdQAAAAeAAAAJAfSBDFobXR4AAAR9AAAABcAAAE0xzj/+2xvY2EAABIMAAAAdQAAAJwYJx3EbWF4cAAAEoQAAAAfAAAAIAFjAKpuYW1lAAASpAAAATUAAAJG5xgJvXBvc3QAABPcAAAByQAAAqgIzxhUeJx9lEtyElEUhv+mm0gCJilFjRhjovEVXzF2uhuaRx4QEDJwYFkOnMSyyrKKcsQ6XIAryNAVuAAHrsAFOHDo2PK7h0ZMBuEWze3z+M9//3Mu8iTNaVNN5doHhy81PzwafVRFgcYf5/9/7w0/vD9SYfKGL7DfgrygpHnd1GuN9M2b90beca7sV/xX/jv/s//F/yWfqFU9JrqobVakmGeoRFXVlCqnGWwR+7oaRPs8m2a9oKvKm6ernpaoGZHTM8QN9XVPi+B0DKetPaISlsNs8xyw7mvhjIgUlDy+be1gDVBkBU3qKmtWz2HZhkmL/Ab+i9Tcp3ZIVgdfB3Z5LE32LV2Ck8sITNWe3ugpfndSh1LNchK+kQ7sPbS3NTSZRDXBqVHLYW/BYGKvgReTsQl6lajdTNEN3SK7Bk4btJZl1y17jcgYbgl9CeycMVxLWmf/Qm/pRREW45y2aTpW4CHsp/aO4aV6dMLaAmtA7BM4TK2uPw+oFdKVGPQlfEN90rG+6rt+6Kd+64/O6TJ1YjvDHuj7Z2pTQMHT0V28zX9Wd9YZZuB01MmIWU5eM3UifL1MQ1etyMmcOgn7EGti8XPwdPFd2KT0I6BGaHVdp/OsHd4jos9n09lglUzpHlOwYBPct1moMKNbum6I4zlM0XoZRLcb86uYbg3wrlnfnLruhi3am7sLrt8VurPCb8gJq6bTId5VLA5parlhWSnsHcYz/Cmsp9Ucq2VYhbqLz81Y325Hl0rrnGfMJNYduxl9m6/bMKhmN7VMDx37VtaxKxYXWZbHP0GY3fDEtHMz3YGbm4/BX0ArchMAAHicY2BkmsY4gYGVgYGpimkPAwNDD4RmfMBgyMgEFGVgZWbACgLSXFMYDjDofjRifgHkRjG/BZnCwAiSAwDkfwr5AAAAeJy11AdSG0EQheFfgSxwIOecEWCCySCiEHAJnCkcKJw5h8/me/QJ8Bt1+wC4ylv1qXdGq92ZWr0GaoCczEkesvVkdEYmq9lMdT5HY3U+z2+NC9ST1XmRK264s6X7e80WueSaW8tUR3+PjK4u0McEzzU6YoUDdjlmjXNWKbHBPnucsMUmp7pmh3XKnLHNIRUu9Pu0irzWWEudntuglTTpjs208JgntNJGOx100kU3PfTqWf0MMMgQw4wwyhjjevokU0wzw6x2U2SeBRb1/TOWWNYia3nYcfTA69OxcrB7vHa+WtKO9062NrXZnfXy2fZh5eIfbvYfjkL6yP2K0Tnpjbq028uwIi/CgbwMu/IqHMvrsCZvQrrn27Aq70JJrsKGXId9eR/25EM4kY9hSz6FTbkJp3Ib0j/vc9iRL2FdvoayfAtn8j1sy49wKD9DRe6CXqBlXMqLZR2p5lzKl+VdypjVuJQ9q3WkWudItd6RaoMj1UaXMmlNjlQLLr1Ja3ak2uJI9ZFTdrCgFGFBecKeOiULa3XKGNbmlDas3Sl3WIdTArFOpyxiXU6pxLqd8on1OCUV63XKLNbnlF6s3ynH2IBTorFBp+xiQ04px4ad8o6NOCUfG3XqAdiYUzfAxp36Ajbh1CGwSadegU05dQ1s2ql/YDMu9UubdSknNufUXbCiU5/B5p06DrbgqutfdOpCWFA/wgLLfwB3H6YceJztWHtwVNUZv9852b179/2+WUI22b3ZXNjshib7uEkWdkMSSMAQcVwwQDFEikONtqK0KBAR/2hNHavjDPgH6Uw7bcPUmUZaph0VKk6VEkeldqTtDOof1dKSqmlxGLGBvfQ7Z3dDAqnaPzttsnvej+98z9+3Agj4R6ZoXLAIAoR8sugLpUKaGiJTunV6Gi7qd2F5kMZz09PZ7PQ0W264evnqZfoR/Ugw4C6H4BOqBMEjyqKqGTRWRrCgMmt6VFZ+8PTTsZdfJlksYk/rg/39/e18JMYHyGOzOv0b+vv1T2evR7LYpbSDdggS3iNrroRL1iQ43DaZP5/Rj+pH4WJmUjfA5ckMrNGPCoSvP0APCF6hFreHRaNo9Mp+2d+spbV0Uq1X6z2iioQidUgfXNwxOKC1tmoDg++VGwNtBw+2HTjAS3pgzhRvFF4tz2LJrivx0Y4tkfMy4VLUhE9hNfxyePj48DDsGh6mtsJpZOgufUQo0Xmenhc8QoBxP2wHn8sbhESoOQspV7IRJNBkkOmDVz4JJoL4oWZeF6b0v/VNwFgfPY/9OZNXPgF/3ykYu3nu+fL851MU9g2nP144Q2I3nlw4c+/sMyk/0xVyReY7F8+k5uvOLQ5+/fpzi7yjD9CvoD6ZhEpBkECUJaBaDRiZ6Hxef3M6xcRGPtAH2rbqBchOTJw6YrEEHP6mFU1+RwB+DT/I4IT+MiybmMjabMGq+kC4qSkciCwMsuMr+B1x1POifByCEAm5QgbFlfAorgy4FBeNF54gO/TVXFbHhqdJYlgfYZIqSqukh+QInmFAGgmqD+yCVv0UmgWN66f0iZJ9FN/zMD2BrwkI1ZzzRh9qbUjmDa8fGZVGPtUrHqSBHNGtSlMeLg7rKUYyvIalAnoKXqMvNoULz5PuW5uUwvNsjnQrTYVtpLtkE0/SJ5muSYDsEiVQUV3gImzo1MdgY6d+WB/rhI1YkPScLmzEJbjdKAhXr9Cv0Q8FJ2pItdAjPCx8D6lF81ANswilSgrlLBtlfwY8Ea+dKOHGilQySxLNQfB5jeF6tREU3IAq0JzWstDsl712HMHhVDLdHKQJJr9GUBtJMgu4i5Q2FffUgF8OEjTFtNaEm4Pg9TnATsKNsITidj+9R7zzXoPep2qaStKqtvKo3gEjBKjBeZboA5I76HXKXqfZYKsMeeQ6j9lmqjB5HfJCq1zrNxKT3fwzd9hf7bI5JbtJNDmsLr/F7fRWudw1fnely2S2iRUGR9BttBjcbovNbV7aECWUmCwmA0kR0eywGkmCgtltIn81ffMRA2lRr/yWEzPy5pXv0Ad+H5BchSf/aK0JekzuqtqIL5yq9y5U3ZLDbPN5k821Df7KSrPD7ggs9jssEbfFbgm4rLLb7jIZRU+oMeKx+Sp9TrPF4fbYJItERdEgeqq/e+y4ZDGaRZvZIJ2RHCbJLp12SGanW/i/7P6rZTcnnoEqou9R0Xrpch7QYA3+Y0CDy7phEsMbrCn5rznyXvW5stZYmEumE83+GsgRJjq/z+sAGUVkh3D9EhCZMtSnkp8toviGmyTR4HW4PM6l7Wa70WZyeHx9eatZcnvdFf23VUguHPks5k48OGS3WfxOT+XGjQ63weC0uqrvedDhc9slybhvt9FkdDnc/ytvnBNDIui4RRljzgS0IL46Di3QmpsdQx5DPFElNArLmJ5ocpoZbQ0+ChjYMipGtDJAm5VxIIgWreFYmNmtpsppZouinNYaSRgql8V61g+sH91ZTam3Kx6PaZuHbhvdubCiwtc3GO/yLhjc33PLqkw01bAqGjK11N26Kurt6asL3LH/cfIj3Lu4a89as0XbrDTG0glYsXutxbx0m1R9a/PyrVpdW020uyHVsKXFG+3J1/VkNuHgLPrtiMHiSD9CA0YLJzWSJaWXcE8BBpxEH4OT6FJIRff+OwJ49xP7BxcgZfrJhTtHf8ppr+aNhRXw7eiqaHTVOlZAQNu6HK8slufW7ulixJpL9SjS1BPlRQm7DCHvRcGGFIk+0aWmQgbZp6U0OjR9bJo8Wxh/O3eWTE2PHof+6Vzu7bPZ0be5yHhxiUyh3LjVaqooM2xHLr30UmZ6Wk/l85A6cSLDMbNVsBbxBq4v4w2GwaqEGkERVKFBWCIImpJKyLO+kc/pI/4+nssd42XhjX/XmR4u/uVKdbZUIzmmmfdfT5MAiPoj+PXgPSn8qvhlYyLWIazpENPRwml+FF5BntUnsAW/0CfIDn6vvjqHd+X0ESQhm83OwzMP6jomFsizC5xlsCufJ0c5y3TrXL9oYphJY3BGDdHlZT/IfCIJTrYxyN82WbaRA+QkZiABtBLBgxEqAymlqEe8hdYgI8aNKD4WuuzQANjgyqb8MLxUGRtr3dLSsqV1bExZGn4G+vSfwy7eBuXaJFxUMsrNLQP3DbTcjK1ofgyrlWxoy46BFs7Xq1fpJMfE1/E1hPiSJRoGlhUhHQaWXJX6DHuSBb29I5e0S6RBu6QhOHsdkoVeVm7GPvkAZ/TXe3shWY8t/GjLent7d2KNn0u/g2QZjz9Dn0EqXBzTJnyAionAEj2lCph76CP9QDp0/V1MQDbo6PfIOznY9S4fox595B0+NuNzruksyiA1819Ex+UvtKKsh7Pl+9+kbxbvn7l2hpDczKWoQ2VKGFHFa/9QpmTGN44XfSNzcTLANzK6noFWGse6DVpKOnWOOnnuyaKnjGmCyBI5cu7ChdjJkzFekiCvvsXLmbcVc8IQ05V5s0JIsiZGERkaAQOICgwksYXz5Yh6RzzWu2ZT6/YGPR6ugzXYgLfCdWxwvpRRH9i0pjcWrwvr8Ybt+od1YXirYXsrHyvTdzfmDD4hKNQjfQqDWKIyN2EINfsZ/EqmgfE3lErQynF7+9p227M8O+jBUn/BFQiEAwFIFZ7Lw/fzdCjS2BjBPGIbX3Io3FSpVOKn4CaHuFsoyXAv3YMa28Z9W7r4L2v1WIFoRC4jn0SjA/mtsqQMWV6PbAG2CkOQ7E/4sanCLU+h+zZI1W1LtK32tupaCPraV2wHINTri8sH/xyDcx7JanKOphc1u2CBSSZgIgdMCJ/sbucZeOgpyWJxWBdZJMtg47KgT39v4TrrNqMhkGr4kmzB7eQJp9Nj94/aKa3S/2L0qpVJ98GKChBN7jOCmb9jnI6j9dUKi4TlwkrhJiEvbBIGhTvxXUEiu6mdiBWRRqIST5ZodYaQy48BVEsbvDILSCmuSqLqQ/wgKjLv+DkzIl45kVKNYiKlRQEZkUAH7UsgDlYjRkX0JbR6dDHUtWhFFJCe6IpF+vv6+9d6UA27C6f+PqUkiVQwAUkqtfCCObYuH5OiKxftlGLr1sXM7XXNC4JQeBX27gEYziVvagHYnYNf7WbrkRet0X0nWrr30Z/Me341710pvGqUcPnUGy4nXgZ7wMEPl+5d1N1ApFge7wGEqP5ocGXLQy+uTu37ZzoykNu7N4yrKcDeYXjoBlvknpiMZ/RT0JrRyccZlu226cLs3wO8wuKyVTmZttQytjmZVdEwh2ms38xmSgb16M4dnV1dnTt2grPcevSezRtTmpbauPlsuUHPswn9H3MXX9k7ZxFvlGyI0WJFG08zanggKPp79T8grev+zs77H2VF1xejkkyV1mMx/YUJviEXEGUMtuy3j7m/aPHMYLKNZQbXsGEvHeJxlSMZ5v8A93JEUvSDhffJkcJadNRZmOQD+uEcmSqcLt9JySEmPY8E58ABDnIIY19fSe6HKGVzEimOUqpf0C/MnUPsivRgwOS75z+zuKA092Pq4b+bsN8qNLgLPu0snNT/1AFVrPUbqOkorYuTTvZCD77mOA82HbfP8ClOxouxgeVL5GMeEqCVjGOMYKo5y88PCW7BLySYH/XxVNdvFOUssExWQcNOMMzsmwUSkmlNxpUyfjQgrxQxgBZdlswhAFj85byp8NwjbT1lpNDRtL7mvoGew8lCN3mFYYLYCsuyqjuWtg60jOXh7v2VX21vLYKFptWG9fnbcSV54V8PFbSvAAAAeJxjYGRgYADiJZeya+P5bb4ycDO/AApEcT7e1wCj///+/5v5LfNboEoOBiYgyQAAoN8P3nicY2BkYGB+wcAAIv///v+b+S0DIwMq8AUAntwHCgAAeJxjYGBgYH4Bwv9/Q+ihjekBAG/aMMwAeJxjYAACKYYghiyGJQz7GN4xSjA6MZYwTmNcxXiH8R/THeZdzFdY3Fh2sJxh1WEtY53Cuob1G5semxtbHNsitgfsbOwK7G7sEewl7Ec4mDjSOHk4FTjTOA9w3uL8xcXBJcalwmXE5cYVwpXBtY10CAAggCv3AAAAeJxjYGRgYPBlmMfAwwACTEDMBYQMDP/BfAYAIOsCDgB4nHWRPU7DQBCFnxMniBghJCREx1Y0SM5PQZEuFHGfIgWdE68dR7bXWm8ipeMYnIBjUHIETsEheDFTREjZ1a6/+fbNNAZwgy94OC4PV+19XB1csPrjLulW2Cc/CPcQ4Em4T/8sPKB9EQ7YWXKC51/S3ONNuINrvAt36T+EffKncA93+Bbu0/8ID7D0fOEAj95rnEU2T2ZFnVd6obNdEdtTdcpLbZvcVGocjk51pCttY6cTtTqoZp9NnEtVak2p5qZyuiiMqq3Z6rULN87V0+EwFR+uTYkYGSJY5EgwQ4GaVEFjwZNhRxPz9VzqnF/yWDSsDGuFMUKMzqYjnqrtiOH4TdixwoF3gz17JrQOKeuUGcO/ojBvJx/TBbehqdu3Lc2aPsSm7aoxxZA7/ZcPmeKkXwK+aWkAAAB4nG2SB2/bMBSE/cWS7dhp46ZtuvceapvuvXeb/geGomUiEimQlO3k15e1gwAB+gASd4eHe8cHtpZai+q3/l+bLNEmIaVDlx7L9BmwwiEOs8qQI6xxlGMcZ50TnOQUpznDWc5xngtc5BKXucJVrnGdG9zkFre5w10y7nGfB2zwkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/8ZpM/rYEoCqcKEbQ1HeGcnfq28LIjhZGqTOVYuDCUYyW3t+wsmwOVr+8L2uQqKFdpI4Ja25cbs9e5Im1pXVbrSFw3kqYyvi+tCU7IoPJE2nonlc5635Z+ksaTbSS58jJVsxigO7+zjZ6a1SLOypfVjsp8Kfy4HVFnpMs4Ph1p50NSOF2nhbNNncSGkJRqFDqlNjFHt7Qi16boVWKmK72rkkqZphdzL5hRs5AYa9TA2JCJsrRTlad1dFHtWpu01hMberVTE20bP3TRzGZbTQjWZHY0Wj0omNTpYhwSLyaq76tol+V2avbgv1iDBZy39RY4pg5xTWvBKXVwr8tzydbK9BqzeA+CAocioLEYpngkJWO22WIW/0ZORUPNDhNG7LZafwFegLa2AAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-alpine-dark .ag-icon {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-alpine-dark .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-alpine-dark .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-alpine-dark .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-alpine-dark .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-alpine-dark .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-alpine-dark .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-alpine-dark .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-alpine-dark .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-alpine-dark .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-alpine-dark .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-alpine-dark .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-alpine-dark .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-alpine-dark .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-alpine-dark .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-alpine-dark .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-alpine-dark .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-alpine-dark .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-alpine-dark .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-alpine-dark .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-alpine-dark .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-alpine-dark .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-alpine-dark .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-alpine-dark .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-alpine-dark .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-alpine-dark .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-alpine-dark .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-alpine-dark .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-alpine-dark .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-alpine-dark .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-alpine-dark .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-alpine-dark .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-alpine-dark .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-alpine-dark .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-alpine-dark .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-alpine-dark .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-alpine-dark .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-alpine-dark .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-alpine-dark .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-alpine-dark .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-alpine-dark .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-alpine-dark .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-alpine-dark .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-alpine-dark .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-alpine-dark .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-alpine-dark .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-alpine-dark .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-alpine-dark .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-alpine-dark .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-alpine-dark .ag-root-wrapper {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark [class^='ag-'], .ag-theme-alpine-dark [class^='ag-']:focus, .ag-theme-alpine-dark [class^='ag-']:after, .ag-theme-alpine-dark [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-alpine-dark [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-alpine-dark .ag-checkbox .ag-input-wrapper,\n .ag-theme-alpine-dark .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-alpine-dark .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-alpine-dark .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-alpine-dark .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 6px; }\n .ag-theme-alpine-dark input[class^='ag-'] {\n margin: 0;\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark textarea[class^='ag-'],\n .ag-theme-alpine-dark select[class^='ag-'] {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .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 font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #68686e;\n border-color: var(--ag-input-border-color, var(--ag-border-color, #68686e)); }\n .ag-theme-alpine-dark input[class^='ag-']:not([type]):disabled,\n .ag-theme-alpine-dark input[class^='ag-'][type='text']:disabled,\n .ag-theme-alpine-dark input[class^='ag-'][type='number']:disabled,\n .ag-theme-alpine-dark input[class^='ag-'][type='tel']:disabled,\n .ag-theme-alpine-dark input[class^='ag-'][type='date']:disabled,\n .ag-theme-alpine-dark input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-alpine-dark textarea[class^='ag-']:disabled {\n color: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5));\n background-color: #282c2f;\n background-color: var(--ag-input-disabled-background-color, #282c2f);\n border-color: rgba(104, 104, 110, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(104, 104, 110, 0.3)); }\n .ag-theme-alpine-dark input[class^='ag-']:not([type]):focus,\n .ag-theme-alpine-dark input[class^='ag-'][type='text']:focus,\n .ag-theme-alpine-dark input[class^='ag-'][type='number']:focus,\n .ag-theme-alpine-dark input[class^='ag-'][type='tel']:focus,\n .ag-theme-alpine-dark input[class^='ag-'][type='date']:focus,\n .ag-theme-alpine-dark input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-alpine-dark textarea[class^='ag-']:focus {\n outline: none;\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6);\n border-color: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-alpine-dark input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-alpine-dark input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-alpine-dark input[class^='ag-'][type='button']:focus, .ag-theme-alpine-dark button[class^='ag-']:focus {\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6); }\n .ag-theme-alpine-dark .ag-drag-handle {\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-list-item, .ag-theme-alpine-dark .ag-virtual-list-item {\n height: 24px; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-select-list {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-alpine-dark .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-alpine-dark .ag-list-item.ag-active-item {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine-dark .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 .ag-theme-alpine-dark .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-alpine-dark .ag-select .ag-picker-field-wrapper {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n min-height: 24px;\n cursor: default; }\n .ag-theme-alpine-dark .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-alpine-dark .ag-select:not(.ag-cell-editor) {\n height: 24px; }\n .ag-theme-alpine-dark .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-alpine-dark .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-alpine-dark .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-rich-select {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628); }\n .ag-theme-alpine-dark .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 273px; }\n .ag-theme-alpine-dark .ag-rich-select-value {\n padding: 0 6px 0 18px;\n height: 42px;\n border-bottom: solid 1px;\n border-bottom-color: rgba(88, 86, 82, 0.5);\n border-bottom-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 24px; }\n .ag-theme-alpine-dark .ag-rich-select-virtual-list-item:hover {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine-dark .ag-rich-select-row {\n padding-left: 18px; }\n .ag-theme-alpine-dark .ag-rich-select-row-selected {\n background-color: rgba(33, 150, 243, 0.3);\n background-color: var(--ag-selected-row-background-color, rgba(33, 150, 243, 0.3)); }\n .ag-theme-alpine-dark .ag-row-drag,\n .ag-theme-alpine-dark .ag-selection-checkbox,\n .ag-theme-alpine-dark .ag-group-expanded,\n .ag-theme-alpine-dark .ag-group-contracted {\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-ltr .ag-row-drag, .ag-theme-alpine-dark .ag-ltr .ag-selection-checkbox, .ag-theme-alpine-dark .ag-ltr .ag-group-expanded, .ag-theme-alpine-dark .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-drag, .ag-theme-alpine-dark .ag-rtl .ag-selection-checkbox, .ag-theme-alpine-dark .ag-rtl .ag-group-expanded, .ag-theme-alpine-dark .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 40px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-alpine-dark .ag-group-expanded,\n .ag-theme-alpine-dark .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-alpine-dark .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-alpine-dark .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-alpine-dark .ag-group-title-bar {\n background-color: #000;\n background-color: var(--ag-subheader-background-color, #000);\n padding: 6px; }\n .ag-theme-alpine-dark .ag-group-toolbar {\n padding: 6px; }\n .ag-theme-alpine-dark .ag-disabled-group-title-bar, .ag-theme-alpine-dark .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-alpine-dark .group-item {\n margin: 3px 0; }\n .ag-theme-alpine-dark .ag-label {\n white-space: nowrap; }\n .ag-theme-alpine-dark .ag-ltr .ag-label {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-label {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-label-align-top .ag-label {\n margin-bottom: 3px; }\n .ag-theme-alpine-dark .ag-ltr .ag-slider-field, .ag-theme-alpine-dark .ag-ltr .ag-angle-select-field {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-slider-field, .ag-theme-alpine-dark .ag-rtl .ag-angle-select-field {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark .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: #fff;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n border-radius: 5px; }\n .ag-theme-alpine-dark .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6); }\n .ag-theme-alpine-dark .ag-picker-field-button {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-alpine-dark .ag-color-picker .ag-picker-field-display {\n height: 16px; }\n .ag-theme-alpine-dark .ag-color-panel {\n padding: 6px; }\n .ag-theme-alpine-dark .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-alpine-dark .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-alpine-dark .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-alpine-dark .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-alpine-dark .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 .ag-theme-alpine-dark .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-alpine-dark .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-alpine-dark .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-alpine-dark .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-alpine-dark .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-alpine-dark .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-alpine-dark .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-alpine-dark.ag-dnd-ghost {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n border-radius: 3px;\n box-shadow: 0 1px 20px 1px black;\n padding: 6px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: rgba(88, 86, 82, 0.5);\n border-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5));\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff));\n height: 48px !important;\n line-height: 48px;\n margin: 0;\n padding: 0 12px;\n -webkit-transform: translateY(12px);\n transform: translateY(12px); }\n .ag-theme-alpine-dark .ag-dnd-ghost-icon {\n margin-right: 6px;\n color: #fff;\n color: var(--ag-foreground-color, #fff); }\n .ag-theme-alpine-dark .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 0 1px 20px 1px black; }\n .ag-dragging-range-handle .ag-theme-alpine-dark .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-alpine-dark .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-alpine-dark .ag-dialog {\n border-radius: 3px;\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-panel {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark .ag-panel-title-bar {\n background-color: #222628;\n background-color: var(--ag-header-background-color, #222628);\n color: #fff;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)));\n height: 48px;\n padding: 6px 18px;\n border-bottom: solid 1px;\n border-bottom-color: #68686e;\n border-bottom-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-tooltip {\n background-color: #222628;\n background-color: var(--ag-header-background-color, #222628);\n color: #fff;\n color: var(--ag-foreground-color, #fff);\n padding: 6px;\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n border-radius: 3px;\n transition: opacity 1s; }\n .ag-theme-alpine-dark .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-1 {\n padding-left: 16px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-1 {\n padding-right: 16px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-2 {\n padding-left: 32px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-2 {\n padding-right: 32px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-3 {\n padding-left: 48px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-3 {\n padding-right: 48px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-4 {\n padding-left: 64px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-4 {\n padding-right: 64px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-5 {\n padding-left: 80px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-5 {\n padding-right: 80px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-6 {\n padding-left: 96px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-6 {\n padding-right: 96px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-7 {\n padding-left: 112px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-7 {\n padding-right: 112px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-8 {\n padding-left: 128px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-8 {\n padding-right: 128px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-indent-9 {\n padding-left: 144px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-indent-9 {\n padding-right: 144px; }\n .ag-theme-alpine-dark .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-alpine-dark .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-alpine-dark .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-column-select-column-group:not(:last-child),\n .ag-theme-alpine-dark .ag-column-select-column:not(:last-child) {\n margin-bottom: 9px; }\n .ag-theme-alpine-dark .ag-column-select-column-readonly,\n .ag-theme-alpine-dark .ag-column-select-column-group-readonly {\n color: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5));\n pointer-events: none; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-column-select-virtual-list-viewport {\n padding: 6px 0px; }\n .ag-theme-alpine-dark .ag-column-select-virtual-list-item {\n margin: 0 12px; }\n .ag-theme-alpine-dark .ag-rtl {\n text-align: right; }\n .ag-theme-alpine-dark .ag-root-wrapper {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 46px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 46px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-1 {\n padding-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-1 {\n padding-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 74px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 74px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-2 {\n padding-left: 56px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-2 {\n padding-right: 56px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 102px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 102px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 130px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 130px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-4 {\n padding-left: 112px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-4 {\n padding-right: 112px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 158px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 158px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-5 {\n padding-left: 140px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-5 {\n padding-right: 140px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 186px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 186px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-6 {\n padding-left: 168px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-6 {\n padding-right: 168px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 214px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 214px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-7 {\n padding-left: 196px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-7 {\n padding-right: 196px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 242px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 242px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-8 {\n padding-left: 224px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-8 {\n padding-right: 224px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 270px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 270px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-9 {\n padding-left: 252px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-9 {\n padding-right: 252px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 298px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 298px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-10 {\n padding-left: 280px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-10 {\n padding-right: 280px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 326px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 326px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-11 {\n padding-left: 308px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-11 {\n padding-right: 308px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 354px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 354px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-12 {\n padding-left: 336px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-12 {\n padding-right: 336px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 382px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 382px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-13 {\n padding-left: 364px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-13 {\n padding-right: 364px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 410px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 410px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-14 {\n padding-left: 392px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-14 {\n padding-right: 392px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 438px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 438px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-15 {\n padding-left: 420px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-15 {\n padding-right: 420px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 466px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 466px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-16 {\n padding-left: 448px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-16 {\n padding-right: 448px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 494px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 494px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-17 {\n padding-left: 476px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-17 {\n padding-right: 476px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 522px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 522px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-18 {\n padding-left: 504px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-18 {\n padding-right: 504px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 550px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 550px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-19 {\n padding-left: 532px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-19 {\n padding-right: 532px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 578px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 578px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-20 {\n padding-left: 560px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-20 {\n padding-right: 560px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 606px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 606px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-21 {\n padding-left: 588px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-21 {\n padding-right: 588px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 634px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 634px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-22 {\n padding-left: 616px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-22 {\n padding-right: 616px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 662px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 662px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-23 {\n padding-left: 644px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-23 {\n padding-right: 644px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 690px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 690px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-24 {\n padding-left: 672px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-24 {\n padding-right: 672px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 718px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 718px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-25 {\n padding-left: 700px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-25 {\n padding-right: 700px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 746px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 746px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-26 {\n padding-left: 728px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-26 {\n padding-right: 728px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 774px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 774px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-27 {\n padding-left: 756px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-27 {\n padding-right: 756px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 802px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 802px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-28 {\n padding-left: 784px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-28 {\n padding-right: 784px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 830px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 830px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-29 {\n padding-left: 812px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-29 {\n padding-right: 812px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 858px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 858px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-30 {\n padding-left: 840px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-30 {\n padding-right: 840px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 886px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 886px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-31 {\n padding-left: 868px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-31 {\n padding-right: 868px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 914px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 914px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-32 {\n padding-left: 896px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-32 {\n padding-right: 896px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 942px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 942px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-33 {\n padding-left: 924px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-33 {\n padding-right: 924px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 970px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 970px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-34 {\n padding-left: 952px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-34 {\n padding-right: 952px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 998px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 998px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-35 {\n padding-left: 980px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-35 {\n padding-right: 980px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 1026px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 1026px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-36 {\n padding-left: 1008px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-36 {\n padding-right: 1008px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 1054px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 1054px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-37 {\n padding-left: 1036px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-37 {\n padding-right: 1036px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 1082px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 1082px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-38 {\n padding-left: 1064px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-38 {\n padding-right: 1064px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 1110px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 1110px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-39 {\n padding-left: 1092px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-39 {\n padding-right: 1092px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 1138px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 1138px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-40 {\n padding-left: 1120px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-40 {\n padding-right: 1120px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 1166px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 1166px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-41 {\n padding-left: 1148px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-41 {\n padding-right: 1148px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1194px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1194px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1176px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1176px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1222px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1222px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1204px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1204px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1250px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1250px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1232px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1232px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1278px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1278px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1260px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1260px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1306px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1306px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1288px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1288px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1334px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1334px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1316px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1316px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1362px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1362px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1344px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1344px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1390px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1390px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1372px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1372px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1418px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1418px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1400px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1400px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1446px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1446px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1428px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1428px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1474px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1474px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1456px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1456px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1502px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1502px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1484px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1484px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1530px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1530px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1512px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1512px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1558px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1558px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1540px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1540px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1586px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1586px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1568px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1568px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1614px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1614px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1596px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1596px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1642px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1642px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1624px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1624px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1670px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1670px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1652px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1652px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1698px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1698px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1680px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1680px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1726px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1726px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1708px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1708px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1754px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1754px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1736px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1736px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1782px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1782px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1764px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1764px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1810px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1810px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1792px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1792px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1838px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1838px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1820px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1820px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1866px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1866px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1848px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1848px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1894px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1894px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1876px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1876px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1922px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1922px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1904px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1904px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1950px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1950px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1932px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1932px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1978px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1978px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1960px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1960px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 2006px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 2006px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1988px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1988px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 2034px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 2034px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-72 {\n padding-left: 2016px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-72 {\n padding-right: 2016px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 2062px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 2062px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-73 {\n padding-left: 2044px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-73 {\n padding-right: 2044px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 2090px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 2090px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-74 {\n padding-left: 2072px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-74 {\n padding-right: 2072px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 2118px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 2118px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-75 {\n padding-left: 2100px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-75 {\n padding-right: 2100px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 2146px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 2146px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-76 {\n padding-left: 2128px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-76 {\n padding-right: 2128px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 2174px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 2174px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-77 {\n padding-left: 2156px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-77 {\n padding-right: 2156px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 2202px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 2202px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-78 {\n padding-left: 2184px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-78 {\n padding-right: 2184px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 2230px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 2230px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-79 {\n padding-left: 2212px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-79 {\n padding-right: 2212px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 2258px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 2258px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-80 {\n padding-left: 2240px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-80 {\n padding-right: 2240px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 2286px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 2286px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-81 {\n padding-left: 2268px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-81 {\n padding-right: 2268px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 2314px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 2314px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-82 {\n padding-left: 2296px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-82 {\n padding-right: 2296px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2342px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2342px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-83 {\n padding-left: 2324px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-83 {\n padding-right: 2324px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2370px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2370px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2352px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2352px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2398px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2398px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2380px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2380px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2426px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2426px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2408px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2408px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2454px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2454px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2436px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2436px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2482px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2482px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2464px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2464px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2510px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2510px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2492px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2492px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2538px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2538px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2520px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2520px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2566px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2566px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2548px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2548px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2594px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2594px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2576px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2576px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2622px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2622px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2604px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2604px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2650px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2650px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2632px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2632px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2678px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2678px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2660px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2660px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2706px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2706px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2688px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2688px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2734px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2734px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2716px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2716px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2762px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2762px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2744px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2744px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2790px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2790px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2772px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2772px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 28px; }\n .ag-theme-alpine-dark .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 28px; }\n .ag-theme-alpine-dark .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-alpine-dark .ag-value-change-delta-up {\n color: #43a047;\n color: var(--ag-value-change-delta-up-color, #43a047); }\n .ag-theme-alpine-dark .ag-value-change-delta-down {\n color: #e53935;\n color: var(--ag-value-change-delta-down-color, #e53935); }\n .ag-theme-alpine-dark .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 .ag-theme-alpine-dark .ag-value-change-value-highlight {\n background-color: rgba(22, 160, 133, 0.5);\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5));\n transition: background-color 0.1s; }\n .ag-theme-alpine-dark .ag-cell-data-changed {\n background-color: rgba(22, 160, 133, 0.5) !important;\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5)) !important; }\n .ag-theme-alpine-dark .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-cell-highlight {\n background-color: #2196f3 !important;\n background-color: var(--ag-range-selection-highlight-color, var(--ag-range-selection-border-color, #2196f3)) !important; }\n .ag-theme-alpine-dark .ag-row {\n height: 42px;\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n color: #fff;\n color: var(--ag-data-color, var(--ag-foreground-color, #fff));\n border-width: 1px;\n border-color: rgba(88, 86, 82, 0.5);\n border-color: var(--ag-row-border-color, var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)));\n border-bottom-style: solid; }\n .ag-theme-alpine-dark .ag-row-highlight-above::after, .ag-theme-alpine-dark .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #2196f3;\n background-color: var(--ag-range-selection-border-color, #2196f3);\n left: 1px; }\n .ag-theme-alpine-dark .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-alpine-dark .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-alpine-dark .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-alpine-dark .ag-row-odd {\n background-color: #222628;\n background-color: var(--ag-odd-row-background-color, #222628); }\n .ag-theme-alpine-dark .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-row-hover {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine-dark .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-alpine-dark .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-alpine-dark .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-alpine-dark .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-alpine-dark .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-alpine-dark .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-alpine-dark .ag-cell, .ag-theme-alpine-dark .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 40px;\n padding-left: 17px;\n padding-right: 17px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-alpine-dark .ag-row > .ag-cell-wrapper {\n padding-left: 17px;\n padding-right: 17px; }\n .ag-theme-alpine-dark .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-cell-inline-editing {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n border-radius: 3px;\n box-shadow: 0 1px 20px 1px black;\n padding: 6px;\n padding: 0;\n height: 42px;\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628); }\n .ag-theme-alpine-dark .ag-popup-editor {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n border-radius: 3px;\n box-shadow: 0 1px 20px 1px black;\n padding: 6px;\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628);\n padding: 0; }\n .ag-theme-alpine-dark .ag-large-text-input {\n height: auto;\n padding: 18px; }\n .ag-theme-alpine-dark .ag-details-row {\n padding: 30px;\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .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: 50px; }\n .ag-theme-alpine-dark .ag-overlay-loading-wrapper {\n background-color: rgba(24, 29, 31, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(24, 29, 31, 0.66)); }\n .ag-theme-alpine-dark .ag-overlay-loading-center {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n border-radius: 3px;\n box-shadow: 0 1px 20px 1px black;\n padding: 6px; }\n .ag-theme-alpine-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-alpine-dark .ag-loading {\n padding-left: 18px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-alpine-dark .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-alpine-dark .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-alpine-dark .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: #68686e;\n border-bottom-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-cell {\n border-right: solid transparent; }\n .ag-theme-alpine-dark .ag-rtl .ag-cell {\n border-left: solid transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-alpine-dark .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-alpine-dark .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-row-selected {\n background-color: rgba(33, 150, 243, 0.3);\n background-color: var(--ag-selected-row-background-color, rgba(33, 150, 243, 0.3)); }\n .ag-theme-alpine-dark .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-alpine-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(33, 150, 243, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(33, 150, 243, 0.2)); }\n .ag-theme-alpine-dark .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-alpine-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-alpine-dark .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-alpine-dark .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-alpine-dark .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(33, 150, 243, 0.2))); }\n .ag-theme-alpine-dark .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-alpine-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(33, 150, 243, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(33, 150, 243, 0.36)); }\n .ag-theme-alpine-dark .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-alpine-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(33, 150, 243, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(33, 150, 243, 0.488)); }\n .ag-theme-alpine-dark .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-alpine-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(33, 150, 243, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(33, 150, 243, 0.5904)); }\n .ag-theme-alpine-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #2196f3;\n border-top-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #2196f3;\n border-right-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #2196f3;\n border-bottom-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #2196f3;\n border-left-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine-dark .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine-dark .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-alpine-dark .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-alpine-dark .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-alpine-dark .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine-dark .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine-dark .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-alpine-dark .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-alpine-dark .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #2196f3;\n border-color: var(--ag-range-selection-border-color, #2196f3);\n outline: initial; }\n .ag-theme-alpine-dark .ag-cell.ag-selection-fill-top,\n .ag-theme-alpine-dark .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #2196f3;\n border-top-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-alpine-dark .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #2196f3;\n border-right-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-alpine-dark .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #2196f3;\n border-left-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-cell.ag-selection-fill-bottom,\n .ag-theme-alpine-dark .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #2196f3;\n border-bottom-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-alpine-dark .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #2196f3;\n border-left-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-alpine-dark .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #2196f3;\n border-right-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-fill-handle, .ag-theme-alpine-dark .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #2196f3;\n background-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine-dark .ag-ltr .ag-fill-handle, .ag-theme-alpine-dark .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-alpine-dark .ag-rtl .ag-fill-handle, .ag-theme-alpine-dark .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-alpine-dark .ag-fill-handle {\n cursor: cell; }\n .ag-theme-alpine-dark .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-alpine-dark .ag-cell-inline-editing {\n border-color: rgba(33, 150, 243, 0.4) !important;\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)) !important; }\n .ag-theme-alpine-dark .ag-menu {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n border-radius: 3px;\n box-shadow: 0 1px 20px 1px black;\n padding: 6px;\n padding: 0; }\n .ag-theme-alpine-dark .ag-menu-list {\n cursor: default;\n padding: 6px 0; }\n .ag-theme-alpine-dark .ag-menu-separator {\n height: 13px; }\n .ag-theme-alpine-dark .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-menu-option-active, .ag-theme-alpine-dark .ag-compact-menu-option-active {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine-dark .ag-menu-option-part, .ag-theme-alpine-dark .ag-compact-menu-option-part {\n line-height: 16px;\n padding: 8px 0; }\n .ag-theme-alpine-dark .ag-menu-option-disabled, .ag-theme-alpine-dark .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-menu-option-icon, .ag-theme-alpine-dark .ag-compact-menu-option-icon {\n width: 16px; }\n .ag-theme-alpine-dark .ag-ltr .ag-menu-option-icon, .ag-theme-alpine-dark .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-menu-option-icon, .ag-theme-alpine-dark .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 12px; }\n .ag-theme-alpine-dark .ag-menu-option-text, .ag-theme-alpine-dark .ag-compact-menu-option-text {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-alpine-dark .ag-ltr .ag-menu-option-shortcut, .ag-theme-alpine-dark .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-menu-option-shortcut, .ag-theme-alpine-dark .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-menu-option-popup-pointer, .ag-theme-alpine-dark .ag-compact-menu-option-popup-pointer {\n padding-right: 6px; }\n .ag-theme-alpine-dark .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-alpine-dark .ag-tab {\n border-bottom: 2px solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex: 1 1 auto;\n transition: border-bottom 0.3s; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-tab-selected {\n border-bottom-color: #2196f3;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine-dark .ag-menu-header {\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-set-filter-select-all {\n padding-top: 12px; }\n .ag-theme-alpine-dark .ag-set-filter-list, .ag-theme-alpine-dark .ag-filter-no-matches {\n height: 144px; }\n .ag-theme-alpine-dark .ag-set-filter-filter {\n margin-top: 12px;\n margin-left: 12px;\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-filter-to {\n margin-top: 9px; }\n .ag-theme-alpine-dark .ag-mini-filter {\n margin: 12px 12px; }\n .ag-theme-alpine-dark .ag-set-filter-item {\n margin: 0px 12px; }\n .ag-theme-alpine-dark .ag-ltr .ag-set-filter-item-value {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-set-filter-item-value {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-filter-apply-panel {\n padding: 12px 12px;\n border-top: solid 1px;\n border-top-color: rgba(88, 86, 82, 0.5);\n border-top-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-simple-filter-body-wrapper {\n padding: 12px 12px;\n padding-bottom: 3px; }\n .ag-theme-alpine-dark .ag-simple-filter-body-wrapper > * {\n margin-bottom: 9px; }\n .ag-theme-alpine-dark .ag-filter-no-matches {\n padding: 12px 12px; }\n .ag-theme-alpine-dark .ag-multi-filter-menu-item {\n margin: 6px 0; }\n .ag-theme-alpine-dark .ag-multi-filter-group-title-bar {\n padding: 12px 6px;\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-side-bar {\n position: relative; }\n .ag-theme-alpine-dark .ag-tool-panel-wrapper {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628); }\n .ag-theme-alpine-dark .ag-side-buttons {\n padding-top: 24px;\n width: 20px;\n position: relative;\n color: #fff;\n color: var(--ag-foreground-color, #fff);\n overflow: hidden; }\n .ag-theme-alpine-dark button.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: 12px 0 12px 0;\n width: 100%;\n margin: 0;\n min-height: 108px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none; }\n .ag-theme-alpine-dark button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-left,\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 2px solid transparent;\n transition: border-right 0.3s; }\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #2196f3;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-left,\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 2px solid transparent;\n transition: border-left 0.3s; }\n .ag-theme-alpine-dark .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-alpine-dark .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #2196f3;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine-dark .ag-filter-toolpanel-header {\n height: 36px; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-header, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-header, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 6px; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 6px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-0-header {\n height: 48px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-item {\n margin-top: 3px;\n margin-bottom: 3px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-search {\n height: 48px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 24px; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: rgba(88, 86, 82, 0.5);\n border-top-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 22px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 22px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 38px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 38px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 54px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 54px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 70px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 70px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 86px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 86px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 102px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 102px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 118px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 118px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 134px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 134px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 150px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 150px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 166px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 166px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e);\n border-bottom: solid 1px;\n border-bottom-color: #68686e;\n border-bottom-color: var(--ag-border-color, #68686e);\n margin-top: 6px; }\n .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-pivot-mode-panel {\n height: 48px;\n display: flex; }\n .ag-theme-alpine-dark .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-alpine-dark .ag-ltr .ag-pivot-mode-select {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-rtl .ag-pivot-mode-select {\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-column-select-header {\n height: 48px;\n align-items: center;\n padding: 0 12px;\n border-bottom: solid 1px;\n border-bottom-color: rgba(88, 86, 82, 0.5);\n border-bottom-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: rgba(88, 86, 82, 0.5);\n border-bottom-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5));\n border-top: solid 1px;\n border-top-color: rgba(88, 86, 82, 0.5);\n border-top-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-column-group-icons,\n .ag-theme-alpine-dark .ag-column-select-header-icon {\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-header {\n background-color: #222628;\n background-color: var(--ag-header-background-color, #222628);\n border-bottom: solid 1px;\n border-bottom-color: #68686e;\n border-bottom-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-header-row {\n color: #fff;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)));\n height: 48px; }\n .ag-theme-alpine-dark .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-header-cell,\n .ag-theme-alpine-dark .ag-header-group-cell {\n padding-left: 18px;\n padding-right: 18px; }\n .ag-theme-alpine-dark .ag-header-cell.ag-header-cell-moving,\n .ag-theme-alpine-dark .ag-header-group-cell.ag-header-cell-moving {\n background-color: #181d1f;\n background-color: var(--ag-header-cell-moving-background-color, var(--ag-background-color, #181d1f)); }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-header-icon {\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-alpine-dark .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-alpine-dark .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-alpine-dark .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-alpine-dark .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-header-cell-resize {\n display: flex;\n align-items: center; }\n .ag-theme-alpine-dark .ag-header-cell-resize::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n left: calc(50% - 1px);\n width: 2px;\n height: 30%;\n top: calc(50% - 15%);\n background-color: rgba(104, 104, 110, 0.5);\n background-color: var(--ag-header-column-resize-handle-color, rgba(104, 104, 110, 0.5)); }\n .ag-theme-alpine-dark .ag-pinned-right-header .ag-header-cell-resize::after {\n left: calc(50% - 2px); }\n .ag-theme-alpine-dark .ag-ltr .ag-header-select-all {\n margin-right: 18px; }\n .ag-theme-alpine-dark .ag-rtl .ag-header-select-all {\n margin-left: 18px; }\n .ag-theme-alpine-dark .ag-ltr .ag-floating-filter-button {\n margin-left: 18px; }\n .ag-theme-alpine-dark .ag-rtl .ag-floating-filter-button {\n margin-right: 18px; }\n .ag-theme-alpine-dark .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 16px;\n padding: 0;\n width: 16px; }\n .ag-theme-alpine-dark .ag-filter-loading {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628);\n height: 100%;\n padding: 12px 12px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-alpine-dark .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e);\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff));\n height: 48px; }\n .ag-theme-alpine-dark .ag-paging-panel > * {\n margin: 0 18px; }\n .ag-theme-alpine-dark .ag-paging-button {\n cursor: pointer; }\n .ag-theme-alpine-dark .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5)); }\n .ag-theme-alpine-dark .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-alpine-dark .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark .ag-paging-button, .ag-theme-alpine-dark .ag-paging-description {\n margin: 0 6px; }\n .ag-theme-alpine-dark .ag-status-bar {\n border-top: solid 1px;\n border-top-color: #68686e;\n border-top-color: var(--ag-border-color, #68686e);\n color: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5));\n padding-right: 24px;\n padding-left: 24px;\n line-height: 1.5; }\n .ag-theme-alpine-dark .ag-status-name-value-value {\n color: #fff;\n color: var(--ag-foreground-color, #fff); }\n .ag-theme-alpine-dark .ag-status-bar-center {\n text-align: center; }\n .ag-theme-alpine-dark .ag-status-name-value {\n margin-left: 6px;\n margin-right: 6px;\n padding-top: 12px;\n padding-bottom: 12px; }\n .ag-theme-alpine-dark .ag-column-drop-cell {\n background: rgba(255, 255, 255, 0.07);\n background: var(--ag-chip-background-color, rgba(255, 255, 255, 0.07));\n border-radius: 24px;\n height: 24px;\n padding: 0 3px; }\n .ag-theme-alpine-dark .ag-column-drop-cell-text {\n margin: 0 6px; }\n .ag-theme-alpine-dark .ag-column-drop-cell-button {\n min-width: 24px;\n margin: 0 3px;\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-column-drop-cell-drag-handle {\n margin-left: 12px; }\n .ag-theme-alpine-dark .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-column-drop-horizontal {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628);\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff));\n height: 42px;\n border-bottom: solid 1px;\n border-bottom-color: #68686e;\n border-bottom-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-column-drop-horizontal {\n padding-left: 18px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-drop-horizontal {\n padding-right: 18px; }\n .ag-theme-alpine-dark .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-column-drop-horizontal-cell-separator {\n margin: 0 6px;\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-column-drop-horizontal-empty-message {\n color: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5)); }\n .ag-theme-alpine-dark .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 18px; }\n .ag-theme-alpine-dark .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 18px; }\n .ag-theme-alpine-dark .ag-column-drop-vertical-list {\n padding-bottom: 6px;\n padding-right: 6px;\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-column-drop-vertical-cell {\n margin-top: 6px; }\n .ag-theme-alpine-dark .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: rgba(88, 86, 82, 0.5);\n border-bottom-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-alpine-dark .ag-column-drop-vertical-icon {\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-alpine-dark .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: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5));\n margin-top: 6px; }\n .ag-theme-alpine-dark .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n border-radius: 3px;\n box-shadow: 0 1px 20px 1px black;\n padding: 6px;\n background: #181d1f;\n background: var(--ag-background-color, #181d1f);\n height: 105px;\n padding: 0; }\n .ag-theme-alpine-dark .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 30px;\n padding-left: 12px; }\n .ag-theme-alpine-dark .ag-select-agg-func-virtual-list-item:hover {\n background-color: rgba(33, 150, 243, 0.3);\n background-color: var(--ag-selected-row-background-color, rgba(33, 150, 243, 0.3)); }\n .ag-theme-alpine-dark .ag-chart-menu {\n border-radius: 3px;\n background: #181d1f;\n background: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark .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: 3px;\n color: #fff;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff)); }\n .ag-theme-alpine-dark .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-alpine-dark .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: rgba(88, 86, 82, 0.5);\n border-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-alpine-dark .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-alpine-dark .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-alpine-dark .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-alpine-dark .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-alpine-dark .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-alpine-dark .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-alpine-dark .ag-chart-mini-thumbnail.ag-selected {\n border-color: #2196f3;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine-dark .ag-chart-settings-card-item {\n background: #fff;\n background: var(--ag-foreground-color, #fff);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-alpine-dark .ag-chart-settings-card-item.ag-selected {\n background-color: #2196f3;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine-dark .ag-chart-data-column-drag-handle {\n margin-left: 6px; }\n .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 border-top: solid 1px;\n border-top-color: rgba(88, 86, 82, 0.5);\n border-top-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-charts-settings-group-container {\n padding: 6px; }\n .ag-theme-alpine-dark .ag-charts-data-group-container {\n padding: 12px 12px;\n padding-bottom: 3px; }\n .ag-theme-alpine-dark .ag-charts-data-group-container > * {\n margin-bottom: 9px; }\n .ag-theme-alpine-dark .ag-charts-format-top-level-group-container {\n margin-left: 12px;\n padding: 6px; }\n .ag-theme-alpine-dark .ag-charts-format-top-level-group-item {\n margin: 6px 0; }\n .ag-theme-alpine-dark .ag-charts-format-sub-level-group-container {\n padding: 12px 12px;\n padding-bottom: 3px; }\n .ag-theme-alpine-dark .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 9px; }\n .ag-theme-alpine-dark .ag-charts-group-container.ag-group-container-horizontal {\n padding: 6px; }\n .ag-theme-alpine-dark .ag-chart-data-section,\n .ag-theme-alpine-dark .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-alpine-dark .ag-chart-menu-panel {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628); }\n .ag-theme-alpine-dark .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: #68686e;\n border-right-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-alpine-dark .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-alpine-dark .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: #181d1f;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, #181d1f));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper input, .ag-theme-alpine-dark .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper:focus-within, .ag-theme-alpine-dark .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6); }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #999;\n color: var(--ag-checkbox-unchecked-color, #999);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #2196f3;\n color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine-dark .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #999;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, #999));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 28px;\n height: 18px;\n background-color: #999;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, #999));\n border-radius: 9px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #999)); }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6); }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #2196f3;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)));\n border-color: #2196f3;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 18px;\n width: 18px;\n background-color: #181d1f;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #181d1f));\n border-radius: 9px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #999))); }\n .ag-theme-alpine-dark .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 18px);\n border-color: #2196f3;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine-dark .ag-radio-button-input-wrapper {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: #181d1f;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, #181d1f));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 16px; }\n .ag-theme-alpine-dark .ag-radio-button-input-wrapper input, .ag-theme-alpine-dark .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-alpine-dark .ag-radio-button-input-wrapper:focus-within, .ag-theme-alpine-dark .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6); }\n .ag-theme-alpine-dark .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #999;\n color: var(--ag-checkbox-unchecked-color, #999);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine-dark .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #2196f3;\n color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #68686e;\n background-color: var(--ag-border-color, #68686e);\n border-radius: 3px;\n border-radius: 3px; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #68686e;\n background-color: var(--ag-border-color, #68686e);\n border-radius: 3px;\n border-radius: 3px; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #68686e;\n background-color: var(--ag-border-color, #68686e);\n border-radius: 3px;\n border-radius: 3px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-checkbox-unchecked-color, #999);\n border-radius: 16px;\n -webkit-transform: translateY(-6.5px);\n transform: translateY(-6.5px); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-checkbox-unchecked-color, #999);\n border-radius: 16px; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-checkbox-unchecked-color, #999);\n border-radius: 16px; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6);\n border-color: #2196f3;\n border-color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:focus::-ms-thumb {\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6);\n border-color: #2196f3;\n border-color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n box-shadow: 0 0 2px 0.5px rgba(255, 255, 255, 0.5), 0 0 4px 3px rgba(33, 150, 243, 0.6);\n border-color: #2196f3;\n border-color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: rgba(33, 150, 243, 0.4);\n background-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: rgba(33, 150, 243, 0.4);\n background-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:active::-ms-track {\n background-color: rgba(33, 150, 243, 0.4);\n background-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine-dark input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\n .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: #fff;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #fff))); }\n .ag-theme-alpine-dark .ag-ltr .ag-pinned-right-header .ag-header-row::after, .ag-theme-alpine-dark .ag-rtl .ag-pinned-left-header .ag-header-row::before {\n content: '';\n position: absolute;\n height: calc(100% - 20px);\n top: 10px;\n width: 1px;\n background-color: #68686e;\n background-color: var(--ag-border-color, #68686e); }\n .ag-theme-alpine-dark .ag-ltr .ag-pinned-right-header .ag-header-row::after {\n right: 0; }\n .ag-theme-alpine-dark .ag-rtl .ag-pinned-left-header .ag-header-row::before {\n left: 0; }\n .ag-theme-alpine-dark .ag-row {\n font-size: 14px; }\n .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: 24px;\n border-radius: 3px; }\n .ag-theme-alpine-dark .ag-ltr input[class^='ag-']:not([type]),\n .ag-theme-alpine-dark .ag-ltr input[class^='ag-'][type='text'],\n .ag-theme-alpine-dark .ag-ltr input[class^='ag-'][type='number'],\n .ag-theme-alpine-dark .ag-ltr input[class^='ag-'][type='tel'],\n .ag-theme-alpine-dark .ag-ltr input[class^='ag-'][type='date'],\n .ag-theme-alpine-dark .ag-ltr input[class^='ag-'][type='datetime-local'],\n .ag-theme-alpine-dark .ag-ltr textarea[class^='ag-'] {\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-rtl input[class^='ag-']:not([type]),\n .ag-theme-alpine-dark .ag-rtl input[class^='ag-'][type='text'],\n .ag-theme-alpine-dark .ag-rtl input[class^='ag-'][type='number'],\n .ag-theme-alpine-dark .ag-rtl input[class^='ag-'][type='tel'],\n .ag-theme-alpine-dark .ag-rtl input[class^='ag-'][type='date'],\n .ag-theme-alpine-dark .ag-rtl input[class^='ag-'][type='datetime-local'],\n .ag-theme-alpine-dark .ag-rtl textarea[class^='ag-'] {\n padding-right: 6px; }\n .ag-theme-alpine-dark .ag-tab {\n padding: 9px;\n transition: color 0.4s; }\n .ag-theme-alpine-dark .ag-tab-selected {\n color: #2196f3;\n color: var(--ag-alpine-active-color, #2196f3); }\n .ag-theme-alpine-dark .ag-menu {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628); }\n .ag-theme-alpine-dark .ag-menu-header {\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628);\n padding-top: 1px;\n min-width: 240px; }\n .ag-theme-alpine-dark .ag-tabs-header {\n border-bottom: solid 1px;\n border-bottom-color: #68686e;\n border-bottom-color: var(--ag-border-color, #68686e); }\n .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: 6px 12px;\n line-height: 20px; }\n .ag-theme-alpine-dark .ag-chart-mini-thumbnail {\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark .ag-chart-settings-nav-bar {\n border-top: solid 1px;\n border-top-color: rgba(88, 86, 82, 0.5);\n border-top-color: var(--ag-secondary-border-color, rgba(88, 86, 82, 0.5)); }\n .ag-theme-alpine-dark .ag-ltr .ag-group-title-bar-icon {\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-group-title-bar-icon {\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-charts-format-top-level-group-toolbar {\n margin-top: 6px; }\n .ag-theme-alpine-dark .ag-ltr .ag-charts-format-top-level-group-toolbar {\n padding-left: 20px; }\n .ag-theme-alpine-dark .ag-rtl .ag-charts-format-top-level-group-toolbar {\n padding-right: 20px; }\n .ag-theme-alpine-dark .ag-charts-format-sub-level-group {\n border-left: dashed 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e);\n padding-left: 6px;\n margin-bottom: 12px; }\n .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 .ag-theme-alpine-dark .ag-charts-format-sub-level-group-container {\n padding-bottom: 0; }\n .ag-theme-alpine-dark .ag-charts-format-sub-level-group-item:last-child {\n margin-bottom: 0; }\n .ag-theme-alpine-dark .ag-dnd-ghost {\n font-size: 12px;\n font-weight: 700; }\n .ag-theme-alpine-dark .ag-side-buttons {\n width: 30px; }\n .ag-theme-alpine-dark .ag-standard-button {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n border-radius: 3px;\n border: 1px solid;\n border-color: #2196f3;\n border-color: var(--ag-alpine-active-color, #2196f3);\n color: #2196f3;\n color: var(--ag-alpine-active-color, #2196f3);\n background-color: #181d1f;\n background-color: var(--ag-background-color, #181d1f);\n font-weight: 600;\n padding: 6px 12px; }\n .ag-theme-alpine-dark .ag-standard-button:hover {\n border-color: #2196f3;\n border-color: var(--ag-alpine-active-color, #2196f3);\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine-dark .ag-standard-button:active {\n border-color: #2196f3;\n border-color: var(--ag-alpine-active-color, #2196f3);\n background-color: #2196f3;\n background-color: var(--ag-alpine-active-color, #2196f3);\n color: #181d1f;\n color: var(--ag-background-color, #181d1f); }\n .ag-theme-alpine-dark .ag-standard-button:disabled {\n color: rgba(255, 255, 255, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(255, 255, 255, 0.5));\n background-color: #282c2f;\n background-color: var(--ag-input-disabled-background-color, #282c2f);\n border-color: rgba(104, 104, 110, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(104, 104, 110, 0.3)); }\n .ag-theme-alpine-dark .ag-column-drop-vertical {\n min-height: 75px;\n max-height: 175px; }\n .ag-theme-alpine-dark .ag-tool-panel-wrapper {\n width: 250px; }\n .ag-theme-alpine-dark .ag-column-drop-vertical-title-bar {\n padding: 12px;\n padding-bottom: 0px; }\n .ag-theme-alpine-dark .ag-column-drop-vertical-empty-message {\n display: flex;\n align-items: center;\n border: dashed 1px;\n border-color: #68686e;\n border-color: var(--ag-border-color, #68686e);\n margin: 12px;\n padding: 12px; }\n .ag-theme-alpine-dark .ag-column-drop-empty-message {\n color: #fff;\n color: var(--ag-foreground-color, #fff);\n opacity: 0.75; }\n .ag-theme-alpine-dark .ag-status-bar {\n font-weight: normal; }\n .ag-theme-alpine-dark .ag-status-name-value-value {\n font-weight: 700; }\n .ag-theme-alpine-dark .ag-paging-number, .ag-theme-alpine-dark .ag-paging-row-summary-panel-number {\n font-weight: 700; }\n .ag-theme-alpine-dark .ag-column-drop-cell-button {\n opacity: 0.5; }\n .ag-theme-alpine-dark .ag-column-drop-cell-button:hover {\n opacity: 0.75; }\n .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-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 color: #2196f3;\n color: var(--ag-alpine-active-color, #2196f3); }\n .ag-theme-alpine-dark .ag-chart-settings-card-item.ag-not-selected:hover {\n opacity: 0.35; }\n .ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: 12px;\n margin-right: 6px; }\n .ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: 12px;\n margin-left: 6px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-group-container {\n padding-left: 6px; }\n .ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter {\n border: none;\n background-color: #222628;\n background-color: var(--ag-control-panel-background-color, #222628);\n border-left: dashed 1px;\n border-left-color: #68686e;\n border-left-color: var(--ag-border-color, #68686e);\n margin-left: 8px;\n padding-left: 8px;\n margin-right: 12px; }\n .ag-theme-alpine-dark .ag-set-filter-list {\n padding-top: 3px;\n padding-bottom: 3px; }\n .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 .ag-theme-alpine-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px; }\n .ag-theme-alpine-dark .ag-date-time-list-page-entry-is-current {\n background-color: #2196f3;\n background-color: var(--ag-alpine-active-color, #2196f3); }\n\n", ""]);
53654// Exports
53655module.exports = exports;
53656
53657
53658/***/ }),
53659/* 263 */
53660/***/ (function(module, exports, __webpack_require__) {
53661
53662var api = __webpack_require__(258);
53663 var content = __webpack_require__(264);
53664
53665 content = content.__esModule ? content.default : content;
53666
53667 if (typeof content === 'string') {
53668 content = [[module.i, content, '']];
53669 }
53670
53671var options = {};
53672
53673options.insert = "head";
53674options.singleton = false;
53675
53676var update = api(content, options);
53677
53678
53679
53680module.exports = content.locals || {};
53681
53682/***/ }),
53683/* 264 */
53684/***/ (function(module, exports, __webpack_require__) {
53685
53686// Imports
53687var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53688exports = ___CSS_LOADER_API_IMPORT___(false);
53689// Module
53690exports.push([module.i, ".ag-theme-alpine {\n -webkit-font-smoothing: antialiased;\n color: #181d1f;\n color: var(--ag-foreground-color, #181d1f);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n font-size: 13px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridAlpine\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABWoAAsAAAAAJ9AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmYAAAR2ZcBn9U9TLzIAAANwAAAAQQAAAFZWUVMIY21hcAAAA7QAAAIcAAAFnIMq5ipnbHlmAAAF0AAAC80AABVszjC1ZWhlYWQAABGgAAAANAAAADZ2zsSBaGhlYQAAEdQAAAAeAAAAJAfSBDFobXR4AAAR9AAAABcAAAE0xzj/+2xvY2EAABIMAAAAdQAAAJwYJx3EbWF4cAAAEoQAAAAfAAAAIAFjAKpuYW1lAAASpAAAATUAAAJG5xgJvXBvc3QAABPcAAAByQAAAqgIzxhUeJx9lEtyElEUhv+mm0gCJilFjRhjovEVXzF2uhuaRx4QEDJwYFkOnMSyyrKKcsQ6XIAryNAVuAAHrsAFOHDo2PK7h0ZMBuEWze3z+M9//3Mu8iTNaVNN5doHhy81PzwafVRFgcYf5/9/7w0/vD9SYfKGL7DfgrygpHnd1GuN9M2b90beca7sV/xX/jv/s//F/yWfqFU9JrqobVakmGeoRFXVlCqnGWwR+7oaRPs8m2a9oKvKm6ernpaoGZHTM8QN9XVPi+B0DKetPaISlsNs8xyw7mvhjIgUlDy+be1gDVBkBU3qKmtWz2HZhkmL/Ab+i9Tcp3ZIVgdfB3Z5LE32LV2Ck8sITNWe3ugpfndSh1LNchK+kQ7sPbS3NTSZRDXBqVHLYW/BYGKvgReTsQl6lajdTNEN3SK7Bk4btJZl1y17jcgYbgl9CeycMVxLWmf/Qm/pRREW45y2aTpW4CHsp/aO4aV6dMLaAmtA7BM4TK2uPw+oFdKVGPQlfEN90rG+6rt+6Kd+64/O6TJ1YjvDHuj7Z2pTQMHT0V28zX9Wd9YZZuB01MmIWU5eM3UifL1MQ1etyMmcOgn7EGti8XPwdPFd2KT0I6BGaHVdp/OsHd4jos9n09lglUzpHlOwYBPct1moMKNbum6I4zlM0XoZRLcb86uYbg3wrlnfnLruhi3am7sLrt8VurPCb8gJq6bTId5VLA5parlhWSnsHcYz/Cmsp9Ucq2VYhbqLz81Y325Hl0rrnGfMJNYduxl9m6/bMKhmN7VMDx37VtaxKxYXWZbHP0GY3fDEtHMz3YGbm4/BX0ArchMAAHicY2BkmsY4gYGVgYGpimkPAwNDD4RmfMBgyMgEFGVgZWbACgLSXFMYDjDofjRifgHkRjG/BZnCwAiSAwDkfwr5AAAAeJy11AdSG0EQheFfgSxwIOecEWCCySCiEHAJnCkcKJw5h8/me/QJ8Bt1+wC4ylv1qXdGq92ZWr0GaoCczEkesvVkdEYmq9lMdT5HY3U+z2+NC9ST1XmRK264s6X7e80WueSaW8tUR3+PjK4u0McEzzU6YoUDdjlmjXNWKbHBPnucsMUmp7pmh3XKnLHNIRUu9Pu0irzWWEudntuglTTpjs208JgntNJGOx100kU3PfTqWf0MMMgQw4wwyhjjevokU0wzw6x2U2SeBRb1/TOWWNYia3nYcfTA69OxcrB7vHa+WtKO9062NrXZnfXy2fZh5eIfbvYfjkL6yP2K0Tnpjbq028uwIi/CgbwMu/IqHMvrsCZvQrrn27Aq70JJrsKGXId9eR/25EM4kY9hSz6FTbkJp3Ib0j/vc9iRL2FdvoayfAtn8j1sy49wKD9DRe6CXqBlXMqLZR2p5lzKl+VdypjVuJQ9q3WkWudItd6RaoMj1UaXMmlNjlQLLr1Ja3ak2uJI9ZFTdrCgFGFBecKeOiULa3XKGNbmlDas3Sl3WIdTArFOpyxiXU6pxLqd8on1OCUV63XKLNbnlF6s3ynH2IBTorFBp+xiQ04px4ad8o6NOCUfG3XqAdiYUzfAxp36Ajbh1CGwSadegU05dQ1s2ql/YDMu9UubdSknNufUXbCiU5/B5p06DrbgqutfdOpCWFA/wgLLfwB3H6YceJztWHtwVNUZv9852b179/2+WUI22b3ZXNjshib7uEkWdkMSSMAQcVwwQDFEikONtqK0KBAR/2hNHavjDPgH6Uw7bcPUmUZaph0VKk6VEkeldqTtDOof1dKSqmlxGLGBvfQ7Z3dDAqnaPzttsnvej+98z9+3Agj4R6ZoXLAIAoR8sugLpUKaGiJTunV6Gi7qd2F5kMZz09PZ7PQ0W264evnqZfoR/Ugw4C6H4BOqBMEjyqKqGTRWRrCgMmt6VFZ+8PTTsZdfJlksYk/rg/39/e18JMYHyGOzOv0b+vv1T2evR7LYpbSDdggS3iNrroRL1iQ43DaZP5/Rj+pH4WJmUjfA5ckMrNGPCoSvP0APCF6hFreHRaNo9Mp+2d+spbV0Uq1X6z2iioQidUgfXNwxOKC1tmoDg++VGwNtBw+2HTjAS3pgzhRvFF4tz2LJrivx0Y4tkfMy4VLUhE9hNfxyePj48DDsGh6mtsJpZOgufUQo0Xmenhc8QoBxP2wHn8sbhESoOQspV7IRJNBkkOmDVz4JJoL4oWZeF6b0v/VNwFgfPY/9OZNXPgF/3ykYu3nu+fL851MU9g2nP144Q2I3nlw4c+/sMyk/0xVyReY7F8+k5uvOLQ5+/fpzi7yjD9CvoD6ZhEpBkECUJaBaDRiZ6Hxef3M6xcRGPtAH2rbqBchOTJw6YrEEHP6mFU1+RwB+DT/I4IT+MiybmMjabMGq+kC4qSkciCwMsuMr+B1x1POifByCEAm5QgbFlfAorgy4FBeNF54gO/TVXFbHhqdJYlgfYZIqSqukh+QInmFAGgmqD+yCVv0UmgWN66f0iZJ9FN/zMD2BrwkI1ZzzRh9qbUjmDa8fGZVGPtUrHqSBHNGtSlMeLg7rKUYyvIalAnoKXqMvNoULz5PuW5uUwvNsjnQrTYVtpLtkE0/SJ5muSYDsEiVQUV3gImzo1MdgY6d+WB/rhI1YkPScLmzEJbjdKAhXr9Cv0Q8FJ2pItdAjPCx8D6lF81ANswilSgrlLBtlfwY8Ea+dKOHGilQySxLNQfB5jeF6tREU3IAq0JzWstDsl712HMHhVDLdHKQJJr9GUBtJMgu4i5Q2FffUgF8OEjTFtNaEm4Pg9TnATsKNsITidj+9R7zzXoPep2qaStKqtvKo3gEjBKjBeZboA5I76HXKXqfZYKsMeeQ6j9lmqjB5HfJCq1zrNxKT3fwzd9hf7bI5JbtJNDmsLr/F7fRWudw1fnely2S2iRUGR9BttBjcbovNbV7aECWUmCwmA0kR0eywGkmCgtltIn81ffMRA2lRr/yWEzPy5pXv0Ad+H5BchSf/aK0JekzuqtqIL5yq9y5U3ZLDbPN5k821Df7KSrPD7ggs9jssEbfFbgm4rLLb7jIZRU+oMeKx+Sp9TrPF4fbYJItERdEgeqq/e+y4ZDGaRZvZIJ2RHCbJLp12SGanW/i/7P6rZTcnnoEqou9R0Xrpch7QYA3+Y0CDy7phEsMbrCn5rznyXvW5stZYmEumE83+GsgRJjq/z+sAGUVkh3D9EhCZMtSnkp8toviGmyTR4HW4PM6l7Wa70WZyeHx9eatZcnvdFf23VUguHPks5k48OGS3WfxOT+XGjQ63weC0uqrvedDhc9slybhvt9FkdDnc/ytvnBNDIui4RRljzgS0IL46Di3QmpsdQx5DPFElNArLmJ5ocpoZbQ0+ChjYMipGtDJAm5VxIIgWreFYmNmtpsppZouinNYaSRgql8V61g+sH91ZTam3Kx6PaZuHbhvdubCiwtc3GO/yLhjc33PLqkw01bAqGjK11N26Kurt6asL3LH/cfIj3Lu4a89as0XbrDTG0glYsXutxbx0m1R9a/PyrVpdW020uyHVsKXFG+3J1/VkNuHgLPrtiMHiSD9CA0YLJzWSJaWXcE8BBpxEH4OT6FJIRff+OwJ49xP7BxcgZfrJhTtHf8ppr+aNhRXw7eiqaHTVOlZAQNu6HK8slufW7ulixJpL9SjS1BPlRQm7DCHvRcGGFIk+0aWmQgbZp6U0OjR9bJo8Wxh/O3eWTE2PHof+6Vzu7bPZ0be5yHhxiUyh3LjVaqooM2xHLr30UmZ6Wk/l85A6cSLDMbNVsBbxBq4v4w2GwaqEGkERVKFBWCIImpJKyLO+kc/pI/4+nssd42XhjX/XmR4u/uVKdbZUIzmmmfdfT5MAiPoj+PXgPSn8qvhlYyLWIazpENPRwml+FF5BntUnsAW/0CfIDn6vvjqHd+X0ESQhm83OwzMP6jomFsizC5xlsCufJ0c5y3TrXL9oYphJY3BGDdHlZT/IfCIJTrYxyN82WbaRA+QkZiABtBLBgxEqAymlqEe8hdYgI8aNKD4WuuzQANjgyqb8MLxUGRtr3dLSsqV1bExZGn4G+vSfwy7eBuXaJFxUMsrNLQP3DbTcjK1ofgyrlWxoy46BFs7Xq1fpJMfE1/E1hPiSJRoGlhUhHQaWXJX6DHuSBb29I5e0S6RBu6QhOHsdkoVeVm7GPvkAZ/TXe3shWY8t/GjLent7d2KNn0u/g2QZjz9Dn0EqXBzTJnyAionAEj2lCph76CP9QDp0/V1MQDbo6PfIOznY9S4fox595B0+NuNzruksyiA1819Ex+UvtKKsh7Pl+9+kbxbvn7l2hpDczKWoQ2VKGFHFa/9QpmTGN44XfSNzcTLANzK6noFWGse6DVpKOnWOOnnuyaKnjGmCyBI5cu7ChdjJkzFekiCvvsXLmbcVc8IQ05V5s0JIsiZGERkaAQOICgwksYXz5Yh6RzzWu2ZT6/YGPR6ugzXYgLfCdWxwvpRRH9i0pjcWrwvr8Ybt+od1YXirYXsrHyvTdzfmDD4hKNQjfQqDWKIyN2EINfsZ/EqmgfE3lErQynF7+9p227M8O+jBUn/BFQiEAwFIFZ7Lw/fzdCjS2BjBPGIbX3Io3FSpVOKn4CaHuFsoyXAv3YMa28Z9W7r4L2v1WIFoRC4jn0SjA/mtsqQMWV6PbAG2CkOQ7E/4sanCLU+h+zZI1W1LtK32tupaCPraV2wHINTri8sH/xyDcx7JanKOphc1u2CBSSZgIgdMCJ/sbucZeOgpyWJxWBdZJMtg47KgT39v4TrrNqMhkGr4kmzB7eQJp9Nj94/aKa3S/2L0qpVJ98GKChBN7jOCmb9jnI6j9dUKi4TlwkrhJiEvbBIGhTvxXUEiu6mdiBWRRqIST5ZodYaQy48BVEsbvDILSCmuSqLqQ/wgKjLv+DkzIl45kVKNYiKlRQEZkUAH7UsgDlYjRkX0JbR6dDHUtWhFFJCe6IpF+vv6+9d6UA27C6f+PqUkiVQwAUkqtfCCObYuH5OiKxftlGLr1sXM7XXNC4JQeBX27gEYziVvagHYnYNf7WbrkRet0X0nWrr30Z/Me341710pvGqUcPnUGy4nXgZ7wMEPl+5d1N1ApFge7wGEqP5ocGXLQy+uTu37ZzoykNu7N4yrKcDeYXjoBlvknpiMZ/RT0JrRyccZlu226cLs3wO8wuKyVTmZttQytjmZVdEwh2ms38xmSgb16M4dnV1dnTt2grPcevSezRtTmpbauPlsuUHPswn9H3MXX9k7ZxFvlGyI0WJFG08zanggKPp79T8grev+zs77H2VF1xejkkyV1mMx/YUJviEXEGUMtuy3j7m/aPHMYLKNZQbXsGEvHeJxlSMZ5v8A93JEUvSDhffJkcJadNRZmOQD+uEcmSqcLt9JySEmPY8E58ABDnIIY19fSe6HKGVzEimOUqpf0C/MnUPsivRgwOS75z+zuKA092Pq4b+bsN8qNLgLPu0snNT/1AFVrPUbqOkorYuTTvZCD77mOA82HbfP8ClOxouxgeVL5GMeEqCVjGOMYKo5y88PCW7BLySYH/XxVNdvFOUssExWQcNOMMzsmwUSkmlNxpUyfjQgrxQxgBZdlswhAFj85byp8NwjbT1lpNDRtL7mvoGew8lCN3mFYYLYCsuyqjuWtg60jOXh7v2VX21vLYKFptWG9fnbcSV54V8PFbSvAAAAeJxjYGRgYADiJZeya+P5bb4ycDO/AApEcT7e1wCj///+/5v5LfNboEoOBiYgyQAAoN8P3nicY2BkYGB+wcAAIv///v+b+S0DIwMq8AUAntwHCgAAeJxjYGBgYH4Bwv9/Q+ihjekBAG/aMMwAeJxjYAACKYYghiyGJQz7GN4xSjA6MZYwTmNcxXiH8R/THeZdzFdY3Fh2sJxh1WEtY53Cuob1G5semxtbHNsitgfsbOwK7G7sEewl7Ec4mDjSOHk4FTjTOA9w3uL8xcXBJcalwmXE5cYVwpXBtY10CAAggCv3AAAAeJxjYGRgYPBlmMfAwwACTEDMBYQMDP/BfAYAIOsCDgB4nHWRPU7DQBCFnxMniBghJCREx1Y0SM5PQZEuFHGfIgWdE68dR7bXWm8ipeMYnIBjUHIETsEheDFTREjZ1a6/+fbNNAZwgy94OC4PV+19XB1csPrjLulW2Cc/CPcQ4Em4T/8sPKB9EQ7YWXKC51/S3ONNuINrvAt36T+EffKncA93+Bbu0/8ID7D0fOEAj95rnEU2T2ZFnVd6obNdEdtTdcpLbZvcVGocjk51pCttY6cTtTqoZp9NnEtVak2p5qZyuiiMqq3Z6rULN87V0+EwFR+uTYkYGSJY5EgwQ4GaVEFjwZNhRxPz9VzqnF/yWDSsDGuFMUKMzqYjnqrtiOH4TdixwoF3gz17JrQOKeuUGcO/ojBvJx/TBbehqdu3Lc2aPsSm7aoxxZA7/ZcPmeKkXwK+aWkAAAB4nG2SB2/bMBSE/cWS7dhp46ZtuvceapvuvXeb/geGomUiEimQlO3k15e1gwAB+gASd4eHe8cHtpZai+q3/l+bLNEmIaVDlx7L9BmwwiEOs8qQI6xxlGMcZ50TnOQUpznDWc5xngtc5BKXucJVrnGdG9zkFre5w10y7nGfB2zwkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/8ZpM/rYEoCqcKEbQ1HeGcnfq28LIjhZGqTOVYuDCUYyW3t+wsmwOVr+8L2uQqKFdpI4Ja25cbs9e5Im1pXVbrSFw3kqYyvi+tCU7IoPJE2nonlc5635Z+ksaTbSS58jJVsxigO7+zjZ6a1SLOypfVjsp8Kfy4HVFnpMs4Ph1p50NSOF2nhbNNncSGkJRqFDqlNjFHt7Qi16boVWKmK72rkkqZphdzL5hRs5AYa9TA2JCJsrRTlad1dFHtWpu01hMberVTE20bP3TRzGZbTQjWZHY0Wj0omNTpYhwSLyaq76tol+V2avbgv1iDBZy39RY4pg5xTWvBKXVwr8tzydbK9BqzeA+CAocioLEYpngkJWO22WIW/0ZORUPNDhNG7LZafwFegLa2AAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-alpine .ag-icon {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-alpine .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-alpine .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-alpine .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-alpine .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-alpine .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-alpine .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-alpine .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-alpine .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-alpine .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-alpine .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-alpine .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-alpine .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-alpine .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-alpine .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-alpine .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-alpine .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-alpine .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-alpine .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-alpine .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-alpine .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-alpine .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-alpine .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-alpine .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-alpine .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-alpine .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-alpine .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-alpine .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-alpine .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-alpine .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-alpine .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-alpine .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-alpine .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-alpine .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-alpine .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-alpine .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-alpine .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-alpine .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-alpine .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-alpine .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-alpine .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-alpine .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-alpine .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-alpine .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-alpine .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-alpine .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-alpine .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-alpine .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-alpine .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-alpine .ag-root-wrapper {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-alpine [class^='ag-'], .ag-theme-alpine [class^='ag-']:focus, .ag-theme-alpine [class^='ag-']:after, .ag-theme-alpine [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-alpine [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-alpine .ag-checkbox .ag-input-wrapper,\n .ag-theme-alpine .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-alpine .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-alpine .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-alpine .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 6px; }\n .ag-theme-alpine .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 6px; }\n .ag-theme-alpine input[class^='ag-'] {\n margin: 0;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-alpine textarea[class^='ag-'],\n .ag-theme-alpine select[class^='ag-'] {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\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-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #babfc7;\n border-color: var(--ag-input-border-color, var(--ag-border-color, #babfc7)); }\n .ag-theme-alpine input[class^='ag-']:not([type]):disabled,\n .ag-theme-alpine input[class^='ag-'][type='text']:disabled,\n .ag-theme-alpine input[class^='ag-'][type='number']:disabled,\n .ag-theme-alpine input[class^='ag-'][type='tel']:disabled,\n .ag-theme-alpine input[class^='ag-'][type='date']:disabled,\n .ag-theme-alpine input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-alpine textarea[class^='ag-']:disabled {\n color: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5));\n background-color: #f1f2f4;\n background-color: var(--ag-input-disabled-background-color, #f1f2f4);\n border-color: rgba(186, 191, 199, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(186, 191, 199, 0.3)); }\n .ag-theme-alpine input[class^='ag-']:not([type]):focus,\n .ag-theme-alpine input[class^='ag-'][type='text']:focus,\n .ag-theme-alpine input[class^='ag-'][type='number']:focus,\n .ag-theme-alpine input[class^='ag-'][type='tel']:focus,\n .ag-theme-alpine input[class^='ag-'][type='date']:focus,\n .ag-theme-alpine input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-alpine textarea[class^='ag-']:focus {\n outline: none;\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4);\n border-color: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-alpine input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-alpine input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-alpine input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-alpine input[class^='ag-'][type='button']:focus, .ag-theme-alpine button[class^='ag-']:focus {\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4); }\n .ag-theme-alpine .ag-drag-handle {\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-list-item, .ag-theme-alpine .ag-virtual-list-item {\n height: 24px; }\n .ag-theme-alpine .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-select-list {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-alpine .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-alpine .ag-list-item.ag-active-item {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine .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 .ag-theme-alpine .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-alpine .ag-select .ag-picker-field-wrapper {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n min-height: 24px;\n cursor: default; }\n .ag-theme-alpine .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-alpine .ag-select:not(.ag-cell-editor) {\n height: 24px; }\n .ag-theme-alpine .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-alpine .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-alpine .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine .ag-rich-select {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8); }\n .ag-theme-alpine .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 273px; }\n .ag-theme-alpine .ag-rich-select-value {\n padding: 0 6px 0 18px;\n height: 42px;\n border-bottom: solid 1px;\n border-bottom-color: #dde2eb;\n border-bottom-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 24px; }\n .ag-theme-alpine .ag-rich-select-virtual-list-item:hover {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine .ag-rich-select-row {\n padding-left: 18px; }\n .ag-theme-alpine .ag-rich-select-row-selected {\n background-color: rgba(33, 150, 243, 0.3);\n background-color: var(--ag-selected-row-background-color, rgba(33, 150, 243, 0.3)); }\n .ag-theme-alpine .ag-row-drag,\n .ag-theme-alpine .ag-selection-checkbox,\n .ag-theme-alpine .ag-group-expanded,\n .ag-theme-alpine .ag-group-contracted {\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-ltr .ag-row-drag, .ag-theme-alpine .ag-ltr .ag-selection-checkbox, .ag-theme-alpine .ag-ltr .ag-group-expanded, .ag-theme-alpine .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-alpine .ag-rtl .ag-row-drag, .ag-theme-alpine .ag-rtl .ag-selection-checkbox, .ag-theme-alpine .ag-rtl .ag-group-expanded, .ag-theme-alpine .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-alpine .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 40px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-alpine .ag-group-expanded,\n .ag-theme-alpine .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-alpine .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-alpine .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-alpine .ag-group-title-bar {\n background-color: #fff;\n background-color: var(--ag-subheader-background-color, #fff);\n padding: 6px; }\n .ag-theme-alpine .ag-group-toolbar {\n padding: 6px; }\n .ag-theme-alpine .ag-disabled-group-title-bar, .ag-theme-alpine .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-alpine .group-item {\n margin: 3px 0; }\n .ag-theme-alpine .ag-label {\n white-space: nowrap; }\n .ag-theme-alpine .ag-ltr .ag-label {\n margin-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-label {\n margin-left: 6px; }\n .ag-theme-alpine .ag-label-align-top .ag-label {\n margin-bottom: 3px; }\n .ag-theme-alpine .ag-ltr .ag-slider-field, .ag-theme-alpine .ag-ltr .ag-angle-select-field {\n margin-right: 12px; }\n .ag-theme-alpine .ag-rtl .ag-slider-field, .ag-theme-alpine .ag-rtl .ag-angle-select-field {\n margin-left: 12px; }\n .ag-theme-alpine .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-alpine .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: #181d1f;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n border-radius: 5px; }\n .ag-theme-alpine .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4); }\n .ag-theme-alpine .ag-picker-field-button {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-alpine .ag-color-picker .ag-picker-field-display {\n height: 16px; }\n .ag-theme-alpine .ag-color-panel {\n padding: 6px; }\n .ag-theme-alpine .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-alpine .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-alpine .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-alpine .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-alpine .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 .ag-theme-alpine .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-alpine .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-alpine .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-alpine .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-alpine .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-alpine .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-alpine .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-alpine.ag-dnd-ghost {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 3px;\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n padding: 6px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: #dde2eb;\n border-color: var(--ag-secondary-border-color, #dde2eb);\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f));\n height: 48px !important;\n line-height: 48px;\n margin: 0;\n padding: 0 12px;\n -webkit-transform: translateY(12px);\n transform: translateY(12px); }\n .ag-theme-alpine .ag-dnd-ghost-icon {\n margin-right: 6px;\n color: #181d1f;\n color: var(--ag-foreground-color, #181d1f); }\n .ag-theme-alpine .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4); }\n .ag-dragging-range-handle .ag-theme-alpine .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-alpine .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-alpine .ag-dialog {\n border-radius: 3px;\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-panel {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-alpine .ag-panel-title-bar {\n background-color: #f8f8f8;\n background-color: var(--ag-header-background-color, #f8f8f8);\n color: #181d1f;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)));\n height: 48px;\n padding: 6px 18px;\n border-bottom: solid 1px;\n border-bottom-color: #babfc7;\n border-bottom-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-panel-title-bar-button {\n margin-left: 6px; }\n .ag-theme-alpine .ag-rtl .ag-panel-title-bar-button {\n margin-right: 6px; }\n .ag-theme-alpine .ag-tooltip {\n background-color: #f8f8f8;\n background-color: var(--ag-header-background-color, #f8f8f8);\n color: #181d1f;\n color: var(--ag-foreground-color, #181d1f);\n padding: 6px;\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n border-radius: 3px;\n transition: opacity 1s; }\n .ag-theme-alpine .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-1 {\n padding-left: 16px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-1 {\n padding-right: 16px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-2 {\n padding-left: 32px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-2 {\n padding-right: 32px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-3 {\n padding-left: 48px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-3 {\n padding-right: 48px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-4 {\n padding-left: 64px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-4 {\n padding-right: 64px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-5 {\n padding-left: 80px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-5 {\n padding-right: 80px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-6 {\n padding-left: 96px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-6 {\n padding-right: 96px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-7 {\n padding-left: 112px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-7 {\n padding-right: 112px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-8 {\n padding-left: 128px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-8 {\n padding-right: 128px; }\n .ag-theme-alpine .ag-ltr .ag-column-select-indent-9 {\n padding-left: 144px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-indent-9 {\n padding-right: 144px; }\n .ag-theme-alpine .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-alpine .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-alpine .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 12px; }\n .ag-theme-alpine .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-alpine .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 12px; }\n .ag-theme-alpine .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-column-select-column-group:not(:last-child),\n .ag-theme-alpine .ag-column-select-column:not(:last-child) {\n margin-bottom: 9px; }\n .ag-theme-alpine .ag-column-select-column-readonly,\n .ag-theme-alpine .ag-column-select-column-group-readonly {\n color: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5));\n pointer-events: none; }\n .ag-theme-alpine .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 28px; }\n .ag-theme-alpine .ag-column-select-virtual-list-viewport {\n padding: 6px 0px; }\n .ag-theme-alpine .ag-column-select-virtual-list-item {\n margin: 0 12px; }\n .ag-theme-alpine .ag-rtl {\n text-align: right; }\n .ag-theme-alpine .ag-root-wrapper {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 46px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 46px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-1 {\n padding-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-1 {\n padding-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 74px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 74px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-2 {\n padding-left: 56px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-2 {\n padding-right: 56px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 102px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 102px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 130px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 130px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-4 {\n padding-left: 112px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-4 {\n padding-right: 112px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 158px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 158px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-5 {\n padding-left: 140px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-5 {\n padding-right: 140px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 186px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 186px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-6 {\n padding-left: 168px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-6 {\n padding-right: 168px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 214px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 214px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-7 {\n padding-left: 196px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-7 {\n padding-right: 196px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 242px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 242px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-8 {\n padding-left: 224px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-8 {\n padding-right: 224px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 270px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 270px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-9 {\n padding-left: 252px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-9 {\n padding-right: 252px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 298px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 298px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-10 {\n padding-left: 280px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-10 {\n padding-right: 280px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 326px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 326px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-11 {\n padding-left: 308px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-11 {\n padding-right: 308px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 354px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 354px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-12 {\n padding-left: 336px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-12 {\n padding-right: 336px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 382px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 382px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-13 {\n padding-left: 364px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-13 {\n padding-right: 364px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 410px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 410px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-14 {\n padding-left: 392px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-14 {\n padding-right: 392px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 438px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 438px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-15 {\n padding-left: 420px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-15 {\n padding-right: 420px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 466px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 466px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-16 {\n padding-left: 448px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-16 {\n padding-right: 448px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 494px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 494px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-17 {\n padding-left: 476px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-17 {\n padding-right: 476px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 522px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 522px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-18 {\n padding-left: 504px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-18 {\n padding-right: 504px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 550px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 550px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-19 {\n padding-left: 532px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-19 {\n padding-right: 532px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 578px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 578px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-20 {\n padding-left: 560px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-20 {\n padding-right: 560px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 606px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 606px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-21 {\n padding-left: 588px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-21 {\n padding-right: 588px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 634px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 634px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-22 {\n padding-left: 616px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-22 {\n padding-right: 616px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 662px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 662px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-23 {\n padding-left: 644px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-23 {\n padding-right: 644px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 690px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 690px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-24 {\n padding-left: 672px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-24 {\n padding-right: 672px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 718px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 718px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-25 {\n padding-left: 700px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-25 {\n padding-right: 700px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 746px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 746px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-26 {\n padding-left: 728px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-26 {\n padding-right: 728px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 774px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 774px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-27 {\n padding-left: 756px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-27 {\n padding-right: 756px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 802px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 802px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-28 {\n padding-left: 784px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-28 {\n padding-right: 784px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 830px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 830px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-29 {\n padding-left: 812px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-29 {\n padding-right: 812px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 858px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 858px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-30 {\n padding-left: 840px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-30 {\n padding-right: 840px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 886px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 886px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-31 {\n padding-left: 868px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-31 {\n padding-right: 868px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 914px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 914px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-32 {\n padding-left: 896px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-32 {\n padding-right: 896px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 942px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 942px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-33 {\n padding-left: 924px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-33 {\n padding-right: 924px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 970px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 970px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-34 {\n padding-left: 952px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-34 {\n padding-right: 952px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 998px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 998px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-35 {\n padding-left: 980px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-35 {\n padding-right: 980px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 1026px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 1026px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-36 {\n padding-left: 1008px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-36 {\n padding-right: 1008px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 1054px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 1054px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-37 {\n padding-left: 1036px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-37 {\n padding-right: 1036px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 1082px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 1082px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-38 {\n padding-left: 1064px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-38 {\n padding-right: 1064px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 1110px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 1110px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-39 {\n padding-left: 1092px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-39 {\n padding-right: 1092px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 1138px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 1138px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-40 {\n padding-left: 1120px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-40 {\n padding-right: 1120px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 1166px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 1166px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-41 {\n padding-left: 1148px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-41 {\n padding-right: 1148px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1194px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1194px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1176px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1176px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1222px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1222px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1204px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1204px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1250px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1250px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1232px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1232px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1278px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1278px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1260px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1260px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1306px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1306px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1288px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1288px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1334px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1334px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1316px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1316px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1362px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1362px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1344px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1344px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1390px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1390px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1372px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1372px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1418px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1418px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1400px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1400px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1446px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1446px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1428px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1428px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1474px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1474px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1456px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1456px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1502px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1502px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1484px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1484px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1530px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1530px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1512px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1512px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1558px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1558px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1540px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1540px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1586px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1586px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1568px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1568px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1614px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1614px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1596px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1596px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1642px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1642px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1624px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1624px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1670px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1670px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1652px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1652px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1698px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1698px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1680px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1680px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1726px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1726px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1708px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1708px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1754px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1754px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1736px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1736px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1782px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1782px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1764px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1764px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1810px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1810px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1792px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1792px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1838px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1838px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1820px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1820px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1866px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1866px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1848px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1848px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1894px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1894px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1876px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1876px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1922px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1922px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1904px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1904px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1950px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1950px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1932px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1932px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1978px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1978px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1960px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1960px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 2006px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 2006px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1988px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1988px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 2034px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 2034px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-72 {\n padding-left: 2016px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-72 {\n padding-right: 2016px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 2062px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 2062px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-73 {\n padding-left: 2044px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-73 {\n padding-right: 2044px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 2090px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 2090px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-74 {\n padding-left: 2072px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-74 {\n padding-right: 2072px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 2118px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 2118px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-75 {\n padding-left: 2100px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-75 {\n padding-right: 2100px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 2146px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 2146px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-76 {\n padding-left: 2128px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-76 {\n padding-right: 2128px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 2174px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 2174px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-77 {\n padding-left: 2156px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-77 {\n padding-right: 2156px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 2202px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 2202px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-78 {\n padding-left: 2184px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-78 {\n padding-right: 2184px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 2230px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 2230px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-79 {\n padding-left: 2212px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-79 {\n padding-right: 2212px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 2258px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 2258px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-80 {\n padding-left: 2240px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-80 {\n padding-right: 2240px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 2286px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 2286px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-81 {\n padding-left: 2268px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-81 {\n padding-right: 2268px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 2314px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 2314px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-82 {\n padding-left: 2296px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-82 {\n padding-right: 2296px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2342px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2342px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-83 {\n padding-left: 2324px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-83 {\n padding-right: 2324px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2370px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2370px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2352px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2352px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2398px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2398px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2380px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2380px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2426px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2426px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2408px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2408px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2454px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2454px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2436px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2436px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2482px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2482px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2464px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2464px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2510px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2510px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2492px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2492px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2538px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2538px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2520px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2520px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2566px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2566px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2548px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2548px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2594px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2594px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2576px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2576px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2622px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2622px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2604px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2604px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2650px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2650px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2632px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2632px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2678px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2678px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2660px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2660px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2706px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2706px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2688px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2688px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2734px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2734px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2716px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2716px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2762px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2762px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2744px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2744px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2790px; }\n .ag-theme-alpine .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2790px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2772px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2772px; }\n .ag-theme-alpine .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-alpine .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 28px; }\n .ag-theme-alpine .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 28px; }\n .ag-theme-alpine .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-alpine .ag-value-change-delta-up {\n color: #43a047;\n color: var(--ag-value-change-delta-up-color, #43a047); }\n .ag-theme-alpine .ag-value-change-delta-down {\n color: #e53935;\n color: var(--ag-value-change-delta-down-color, #e53935); }\n .ag-theme-alpine .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 .ag-theme-alpine .ag-value-change-value-highlight {\n background-color: rgba(22, 160, 133, 0.5);\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5));\n transition: background-color 0.1s; }\n .ag-theme-alpine .ag-cell-data-changed {\n background-color: rgba(22, 160, 133, 0.5) !important;\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5)) !important; }\n .ag-theme-alpine .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-alpine .ag-cell-highlight {\n background-color: #2196f3 !important;\n background-color: var(--ag-range-selection-highlight-color, var(--ag-range-selection-border-color, #2196f3)) !important; }\n .ag-theme-alpine .ag-row {\n height: 42px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n color: #181d1f;\n color: var(--ag-data-color, var(--ag-foreground-color, #181d1f));\n border-width: 1px;\n border-color: #dde2eb;\n border-color: var(--ag-row-border-color, var(--ag-secondary-border-color, #dde2eb));\n border-bottom-style: solid; }\n .ag-theme-alpine .ag-row-highlight-above::after, .ag-theme-alpine .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #2196f3;\n background-color: var(--ag-range-selection-border-color, #2196f3);\n left: 1px; }\n .ag-theme-alpine .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-alpine .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-alpine .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-alpine .ag-row-odd {\n background-color: #fcfcfc;\n background-color: var(--ag-odd-row-background-color, #fcfcfc); }\n .ag-theme-alpine .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-row-hover {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-alpine .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-alpine .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-alpine .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-alpine .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-alpine .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-alpine .ag-cell, .ag-theme-alpine .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 40px;\n padding-left: 17px;\n padding-right: 17px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-alpine .ag-row > .ag-cell-wrapper {\n padding-left: 17px;\n padding-right: 17px; }\n .ag-theme-alpine .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-alpine .ag-cell-inline-editing {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 3px;\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n padding: 6px;\n padding: 0;\n height: 42px;\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8); }\n .ag-theme-alpine .ag-popup-editor {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 3px;\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n padding: 6px;\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8);\n padding: 0; }\n .ag-theme-alpine .ag-large-text-input {\n height: auto;\n padding: 18px; }\n .ag-theme-alpine .ag-details-row {\n padding: 30px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\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 {\n min-height: 50px; }\n .ag-theme-alpine .ag-overlay-loading-wrapper {\n background-color: rgba(255, 255, 255, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66)); }\n .ag-theme-alpine .ag-overlay-loading-center {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 3px;\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n padding: 6px; }\n .ag-theme-alpine .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-alpine .ag-loading {\n padding-left: 18px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-alpine .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-alpine .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-alpine .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: #babfc7;\n border-bottom-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-cell {\n border-right: solid transparent; }\n .ag-theme-alpine .ag-rtl .ag-cell {\n border-left: solid transparent; }\n .ag-theme-alpine .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-alpine .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-alpine .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-row-selected {\n background-color: rgba(33, 150, 243, 0.3);\n background-color: var(--ag-selected-row-background-color, rgba(33, 150, 243, 0.3)); }\n .ag-theme-alpine .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-alpine .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(33, 150, 243, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(33, 150, 243, 0.2)); }\n .ag-theme-alpine .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-alpine .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-alpine .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-alpine .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-alpine .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(33, 150, 243, 0.2))); }\n .ag-theme-alpine .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-alpine .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(33, 150, 243, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(33, 150, 243, 0.36)); }\n .ag-theme-alpine .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-alpine .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(33, 150, 243, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(33, 150, 243, 0.488)); }\n .ag-theme-alpine .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-alpine .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(33, 150, 243, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(33, 150, 243, 0.5904)); }\n .ag-theme-alpine .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #2196f3;\n border-top-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #2196f3;\n border-right-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #2196f3;\n border-bottom-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #2196f3;\n border-left-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-alpine .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-alpine .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-alpine .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-alpine .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-alpine .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-alpine .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #2196f3;\n border-color: var(--ag-range-selection-border-color, #2196f3);\n outline: initial; }\n .ag-theme-alpine .ag-cell.ag-selection-fill-top,\n .ag-theme-alpine .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #2196f3;\n border-top-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-alpine .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #2196f3;\n border-right-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-alpine .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #2196f3;\n border-left-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-cell.ag-selection-fill-bottom,\n .ag-theme-alpine .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #2196f3;\n border-bottom-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-alpine .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #2196f3;\n border-left-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-alpine .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #2196f3;\n border-right-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-fill-handle, .ag-theme-alpine .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #2196f3;\n background-color: var(--ag-range-selection-border-color, #2196f3); }\n .ag-theme-alpine .ag-ltr .ag-fill-handle, .ag-theme-alpine .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-alpine .ag-rtl .ag-fill-handle, .ag-theme-alpine .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-alpine .ag-fill-handle {\n cursor: cell; }\n .ag-theme-alpine .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-alpine .ag-cell-inline-editing {\n border-color: rgba(33, 150, 243, 0.4) !important;\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)) !important; }\n .ag-theme-alpine .ag-menu {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 3px;\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n padding: 6px;\n padding: 0; }\n .ag-theme-alpine .ag-menu-list {\n cursor: default;\n padding: 6px 0; }\n .ag-theme-alpine .ag-menu-separator {\n height: 13px; }\n .ag-theme-alpine .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-menu-option-active, .ag-theme-alpine .ag-compact-menu-option-active {\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine .ag-menu-option-part, .ag-theme-alpine .ag-compact-menu-option-part {\n line-height: 16px;\n padding: 8px 0; }\n .ag-theme-alpine .ag-menu-option-disabled, .ag-theme-alpine .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-alpine .ag-menu-option-icon, .ag-theme-alpine .ag-compact-menu-option-icon {\n width: 16px; }\n .ag-theme-alpine .ag-ltr .ag-menu-option-icon, .ag-theme-alpine .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 12px; }\n .ag-theme-alpine .ag-rtl .ag-menu-option-icon, .ag-theme-alpine .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 12px; }\n .ag-theme-alpine .ag-menu-option-text, .ag-theme-alpine .ag-compact-menu-option-text {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-alpine .ag-ltr .ag-menu-option-shortcut, .ag-theme-alpine .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-menu-option-shortcut, .ag-theme-alpine .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 6px; }\n .ag-theme-alpine .ag-menu-option-popup-pointer, .ag-theme-alpine .ag-compact-menu-option-popup-pointer {\n padding-right: 6px; }\n .ag-theme-alpine .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-alpine .ag-tab {\n border-bottom: 2px solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex: 1 1 auto;\n transition: border-bottom 0.3s; }\n .ag-theme-alpine .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-tab-selected {\n border-bottom-color: #2196f3;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine .ag-menu-header {\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-alpine .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 12px; }\n .ag-theme-alpine .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 12px; }\n .ag-theme-alpine .ag-set-filter-select-all {\n padding-top: 12px; }\n .ag-theme-alpine .ag-set-filter-list, .ag-theme-alpine .ag-filter-no-matches {\n height: 144px; }\n .ag-theme-alpine .ag-set-filter-filter {\n margin-top: 12px;\n margin-left: 12px;\n margin-right: 12px; }\n .ag-theme-alpine .ag-filter-to {\n margin-top: 9px; }\n .ag-theme-alpine .ag-mini-filter {\n margin: 12px 12px; }\n .ag-theme-alpine .ag-set-filter-item {\n margin: 0px 12px; }\n .ag-theme-alpine .ag-ltr .ag-set-filter-item-value {\n margin-left: 12px; }\n .ag-theme-alpine .ag-rtl .ag-set-filter-item-value {\n margin-right: 12px; }\n .ag-theme-alpine .ag-filter-apply-panel {\n padding: 12px 12px;\n border-top: solid 1px;\n border-top-color: #dde2eb;\n border-top-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-alpine .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 12px; }\n .ag-theme-alpine .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 12px; }\n .ag-theme-alpine .ag-simple-filter-body-wrapper {\n padding: 12px 12px;\n padding-bottom: 3px; }\n .ag-theme-alpine .ag-simple-filter-body-wrapper > * {\n margin-bottom: 9px; }\n .ag-theme-alpine .ag-filter-no-matches {\n padding: 12px 12px; }\n .ag-theme-alpine .ag-multi-filter-menu-item {\n margin: 6px 0; }\n .ag-theme-alpine .ag-multi-filter-group-title-bar {\n padding: 12px 6px;\n background-color: transparent; }\n .ag-theme-alpine .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-side-bar {\n position: relative; }\n .ag-theme-alpine .ag-tool-panel-wrapper {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8); }\n .ag-theme-alpine .ag-side-buttons {\n padding-top: 24px;\n width: 20px;\n position: relative;\n color: #181d1f;\n color: var(--ag-foreground-color, #181d1f);\n overflow: hidden; }\n .ag-theme-alpine button.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: 12px 0 12px 0;\n width: 100%;\n margin: 0;\n min-height: 108px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none; }\n .ag-theme-alpine button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-alpine .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-alpine .ag-ltr .ag-side-bar-left,\n .ag-theme-alpine .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-alpine .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-alpine .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 2px solid transparent;\n transition: border-right 0.3s; }\n .ag-theme-alpine .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-alpine .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #2196f3;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine .ag-rtl .ag-side-bar-left,\n .ag-theme-alpine .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-alpine .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-alpine .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 2px solid transparent;\n transition: border-left 0.3s; }\n .ag-theme-alpine .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-alpine .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #2196f3;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine .ag-filter-toolpanel-header {\n height: 36px; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-header, .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 6px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-header, .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 6px; }\n .ag-theme-alpine .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 6px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 6px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-0-header {\n height: 48px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-item {\n margin-top: 3px;\n margin-bottom: 3px; }\n .ag-theme-alpine .ag-filter-toolpanel-search {\n height: 48px; }\n .ag-theme-alpine .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 24px; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 6px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: #dde2eb;\n border-top-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 6px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 22px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 22px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 38px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 38px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 54px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 54px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 70px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 70px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 86px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 86px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 102px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 102px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 118px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 118px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 134px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 134px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 150px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 150px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 166px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 166px; }\n .ag-theme-alpine .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 6px; }\n .ag-theme-alpine .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7);\n border-bottom: solid 1px;\n border-bottom-color: #babfc7;\n border-bottom-color: var(--ag-border-color, #babfc7);\n margin-top: 6px; }\n .ag-theme-alpine .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 6px; }\n .ag-theme-alpine .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 6px; }\n .ag-theme-alpine .ag-pivot-mode-panel {\n height: 48px;\n display: flex; }\n .ag-theme-alpine .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-alpine .ag-ltr .ag-pivot-mode-select {\n margin-left: 12px; }\n .ag-theme-alpine .ag-rtl .ag-pivot-mode-select {\n margin-right: 12px; }\n .ag-theme-alpine .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-column-select-header {\n height: 48px;\n align-items: center;\n padding: 0 12px;\n border-bottom: solid 1px;\n border-bottom-color: #dde2eb;\n border-bottom-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: #dde2eb;\n border-bottom-color: var(--ag-secondary-border-color, #dde2eb);\n border-top: solid 1px;\n border-top-color: #dde2eb;\n border-top-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-column-group-icons,\n .ag-theme-alpine .ag-column-select-header-icon {\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-header {\n background-color: #f8f8f8;\n background-color: var(--ag-header-background-color, #f8f8f8);\n border-bottom: solid 1px;\n border-bottom-color: #babfc7;\n border-bottom-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-header-row {\n color: #181d1f;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)));\n height: 48px; }\n .ag-theme-alpine .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 6px; }\n .ag-theme-alpine .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 6px; }\n .ag-theme-alpine .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 6px; }\n .ag-theme-alpine .ag-header-cell,\n .ag-theme-alpine .ag-header-group-cell {\n padding-left: 18px;\n padding-right: 18px; }\n .ag-theme-alpine .ag-header-cell.ag-header-cell-moving,\n .ag-theme-alpine .ag-header-group-cell.ag-header-cell-moving {\n background-color: #fff;\n background-color: var(--ag-header-cell-moving-background-color, var(--ag-background-color, #fff)); }\n .ag-theme-alpine .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-header-icon {\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-alpine .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-alpine .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-alpine .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-alpine .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-header-cell-resize {\n display: flex;\n align-items: center; }\n .ag-theme-alpine .ag-header-cell-resize::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n left: calc(50% - 1px);\n width: 2px;\n height: 30%;\n top: calc(50% - 15%);\n background-color: rgba(186, 191, 199, 0.5);\n background-color: var(--ag-header-column-resize-handle-color, rgba(186, 191, 199, 0.5)); }\n .ag-theme-alpine .ag-pinned-right-header .ag-header-cell-resize::after {\n left: calc(50% - 2px); }\n .ag-theme-alpine .ag-ltr .ag-header-select-all {\n margin-right: 18px; }\n .ag-theme-alpine .ag-rtl .ag-header-select-all {\n margin-left: 18px; }\n .ag-theme-alpine .ag-ltr .ag-floating-filter-button {\n margin-left: 18px; }\n .ag-theme-alpine .ag-rtl .ag-floating-filter-button {\n margin-right: 18px; }\n .ag-theme-alpine .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 16px;\n padding: 0;\n width: 16px; }\n .ag-theme-alpine .ag-filter-loading {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8);\n height: 100%;\n padding: 12px 12px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-alpine .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7);\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f));\n height: 48px; }\n .ag-theme-alpine .ag-paging-panel > * {\n margin: 0 18px; }\n .ag-theme-alpine .ag-paging-button {\n cursor: pointer; }\n .ag-theme-alpine .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5)); }\n .ag-theme-alpine .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-alpine .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: rgba(33, 150, 243, 0.4);\n border-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine .ag-paging-button, .ag-theme-alpine .ag-paging-description {\n margin: 0 6px; }\n .ag-theme-alpine .ag-status-bar {\n border-top: solid 1px;\n border-top-color: #babfc7;\n border-top-color: var(--ag-border-color, #babfc7);\n color: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5));\n padding-right: 24px;\n padding-left: 24px;\n line-height: 1.5; }\n .ag-theme-alpine .ag-status-name-value-value {\n color: #181d1f;\n color: var(--ag-foreground-color, #181d1f); }\n .ag-theme-alpine .ag-status-bar-center {\n text-align: center; }\n .ag-theme-alpine .ag-status-name-value {\n margin-left: 6px;\n margin-right: 6px;\n padding-top: 12px;\n padding-bottom: 12px; }\n .ag-theme-alpine .ag-column-drop-cell {\n background: rgba(24, 29, 31, 0.07);\n background: var(--ag-chip-background-color, rgba(24, 29, 31, 0.07));\n border-radius: 24px;\n height: 24px;\n padding: 0 3px; }\n .ag-theme-alpine .ag-column-drop-cell-text {\n margin: 0 6px; }\n .ag-theme-alpine .ag-column-drop-cell-button {\n min-width: 24px;\n margin: 0 3px;\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-column-drop-cell-drag-handle {\n margin-left: 12px; }\n .ag-theme-alpine .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-alpine .ag-column-drop-horizontal {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8);\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f));\n height: 42px;\n border-bottom: solid 1px;\n border-bottom-color: #babfc7;\n border-bottom-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-column-drop-horizontal {\n padding-left: 18px; }\n .ag-theme-alpine .ag-rtl .ag-column-drop-horizontal {\n padding-right: 18px; }\n .ag-theme-alpine .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-column-drop-horizontal-cell-separator {\n margin: 0 6px;\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-column-drop-horizontal-empty-message {\n color: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5)); }\n .ag-theme-alpine .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 18px; }\n .ag-theme-alpine .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 18px; }\n .ag-theme-alpine .ag-column-drop-vertical-list {\n padding-bottom: 6px;\n padding-right: 6px;\n padding-left: 6px; }\n .ag-theme-alpine .ag-column-drop-vertical-cell {\n margin-top: 6px; }\n .ag-theme-alpine .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: #dde2eb;\n border-bottom-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-alpine .ag-column-drop-vertical-icon {\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-alpine .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: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5));\n margin-top: 6px; }\n .ag-theme-alpine .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 3px;\n box-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n padding: 6px;\n background: #fff;\n background: var(--ag-background-color, #fff);\n height: 105px;\n padding: 0; }\n .ag-theme-alpine .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 30px;\n padding-left: 12px; }\n .ag-theme-alpine .ag-select-agg-func-virtual-list-item:hover {\n background-color: rgba(33, 150, 243, 0.3);\n background-color: var(--ag-selected-row-background-color, rgba(33, 150, 243, 0.3)); }\n .ag-theme-alpine .ag-chart-menu {\n border-radius: 3px;\n background: #fff;\n background: var(--ag-background-color, #fff); }\n .ag-theme-alpine .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: 3px;\n color: #181d1f;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f)); }\n .ag-theme-alpine .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-alpine .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: #dde2eb;\n border-color: var(--ag-secondary-border-color, #dde2eb);\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-alpine .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-alpine .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-alpine .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-alpine .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-alpine .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-alpine .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-alpine .ag-chart-mini-thumbnail.ag-selected {\n border-color: #2196f3;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine .ag-chart-settings-card-item {\n background: #181d1f;\n background: var(--ag-foreground-color, #181d1f);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-alpine .ag-chart-settings-card-item.ag-selected {\n background-color: #2196f3;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine .ag-chart-data-column-drag-handle {\n margin-left: 6px; }\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 {\n border-top: solid 1px;\n border-top-color: #dde2eb;\n border-top-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-charts-settings-group-container {\n padding: 6px; }\n .ag-theme-alpine .ag-charts-data-group-container {\n padding: 12px 12px;\n padding-bottom: 3px; }\n .ag-theme-alpine .ag-charts-data-group-container > * {\n margin-bottom: 9px; }\n .ag-theme-alpine .ag-charts-format-top-level-group-container {\n margin-left: 12px;\n padding: 6px; }\n .ag-theme-alpine .ag-charts-format-top-level-group-item {\n margin: 6px 0; }\n .ag-theme-alpine .ag-charts-format-sub-level-group-container {\n padding: 12px 12px;\n padding-bottom: 3px; }\n .ag-theme-alpine .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 9px; }\n .ag-theme-alpine .ag-charts-group-container.ag-group-container-horizontal {\n padding: 6px; }\n .ag-theme-alpine .ag-chart-data-section,\n .ag-theme-alpine .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-alpine .ag-chart-menu-panel {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8); }\n .ag-theme-alpine .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: #babfc7;\n border-right-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-alpine .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-alpine .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-alpine .ag-checkbox-input-wrapper {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: #fff;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, #fff));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-alpine .ag-checkbox-input-wrapper input, .ag-theme-alpine .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-alpine .ag-checkbox-input-wrapper:focus-within, .ag-theme-alpine .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4); }\n .ag-theme-alpine .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #999;\n color: var(--ag-checkbox-unchecked-color, #999);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #2196f3;\n color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #999;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, #999));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 28px;\n height: 18px;\n background-color: #999;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, #999));\n border-radius: 9px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #999)); }\n .ag-theme-alpine .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-alpine .ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4); }\n .ag-theme-alpine .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #2196f3;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)));\n border-color: #2196f3;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 18px;\n width: 18px;\n background-color: #fff;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #fff));\n border-radius: 9px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #999))); }\n .ag-theme-alpine .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 18px);\n border-color: #2196f3;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3))); }\n .ag-theme-alpine .ag-radio-button-input-wrapper {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: #fff;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, #fff));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 16px; }\n .ag-theme-alpine .ag-radio-button-input-wrapper input, .ag-theme-alpine .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-alpine .ag-radio-button-input-wrapper:focus-within, .ag-theme-alpine .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4); }\n .ag-theme-alpine .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-alpine .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #999;\n color: var(--ag-checkbox-unchecked-color, #999);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #2196f3;\n color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-alpine input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-alpine input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #babfc7;\n background-color: var(--ag-border-color, #babfc7);\n border-radius: 3px;\n border-radius: 3px; }\n .ag-theme-alpine input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #babfc7;\n background-color: var(--ag-border-color, #babfc7);\n border-radius: 3px;\n border-radius: 3px; }\n .ag-theme-alpine input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #babfc7;\n background-color: var(--ag-border-color, #babfc7);\n border-radius: 3px;\n border-radius: 3px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-alpine input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-checkbox-unchecked-color, #999);\n border-radius: 16px;\n -webkit-transform: translateY(-6.5px);\n transform: translateY(-6.5px); }\n .ag-theme-alpine input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-checkbox-unchecked-color, #999);\n border-radius: 16px; }\n .ag-theme-alpine input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #999;\n border-color: var(--ag-checkbox-unchecked-color, #999);\n border-radius: 16px; }\n .ag-theme-alpine input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-alpine input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4);\n border-color: #2196f3;\n border-color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine input[class^='ag-'][type='range']:focus::-ms-thumb {\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4);\n border-color: #2196f3;\n border-color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n box-shadow: 0 0 2px 0.1rem rgba(33, 150, 243, 0.4);\n border-color: #2196f3;\n border-color: var(--ag-checkbox-checked-color, var(--ag-alpine-active-color, #2196f3)); }\n .ag-theme-alpine input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: rgba(33, 150, 243, 0.4);\n background-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: rgba(33, 150, 243, 0.4);\n background-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine input[class^='ag-'][type='range']:active::-ms-track {\n background-color: rgba(33, 150, 243, 0.4);\n background-color: var(--ag-input-focus-border-color, rgba(33, 150, 243, 0.4)); }\n .ag-theme-alpine input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\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 {\n font-weight: 700;\n color: #181d1f;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #181d1f))); }\n .ag-theme-alpine .ag-ltr .ag-pinned-right-header .ag-header-row::after, .ag-theme-alpine .ag-rtl .ag-pinned-left-header .ag-header-row::before {\n content: '';\n position: absolute;\n height: calc(100% - 20px);\n top: 10px;\n width: 1px;\n background-color: #babfc7;\n background-color: var(--ag-border-color, #babfc7); }\n .ag-theme-alpine .ag-ltr .ag-pinned-right-header .ag-header-row::after {\n right: 0; }\n .ag-theme-alpine .ag-rtl .ag-pinned-left-header .ag-header-row::before {\n left: 0; }\n .ag-theme-alpine .ag-row {\n font-size: 14px; }\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-'] {\n min-height: 24px;\n border-radius: 3px; }\n .ag-theme-alpine .ag-ltr input[class^='ag-']:not([type]),\n .ag-theme-alpine .ag-ltr input[class^='ag-'][type='text'],\n .ag-theme-alpine .ag-ltr input[class^='ag-'][type='number'],\n .ag-theme-alpine .ag-ltr input[class^='ag-'][type='tel'],\n .ag-theme-alpine .ag-ltr input[class^='ag-'][type='date'],\n .ag-theme-alpine .ag-ltr input[class^='ag-'][type='datetime-local'],\n .ag-theme-alpine .ag-ltr textarea[class^='ag-'] {\n padding-left: 6px; }\n .ag-theme-alpine .ag-rtl input[class^='ag-']:not([type]),\n .ag-theme-alpine .ag-rtl input[class^='ag-'][type='text'],\n .ag-theme-alpine .ag-rtl input[class^='ag-'][type='number'],\n .ag-theme-alpine .ag-rtl input[class^='ag-'][type='tel'],\n .ag-theme-alpine .ag-rtl input[class^='ag-'][type='date'],\n .ag-theme-alpine .ag-rtl input[class^='ag-'][type='datetime-local'],\n .ag-theme-alpine .ag-rtl textarea[class^='ag-'] {\n padding-right: 6px; }\n .ag-theme-alpine .ag-tab {\n padding: 9px;\n transition: color 0.4s; }\n .ag-theme-alpine .ag-tab-selected {\n color: #2196f3;\n color: var(--ag-alpine-active-color, #2196f3); }\n .ag-theme-alpine .ag-menu {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8); }\n .ag-theme-alpine .ag-menu-header {\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8);\n padding-top: 1px;\n min-width: 240px; }\n .ag-theme-alpine .ag-tabs-header {\n border-bottom: solid 1px;\n border-bottom-color: #babfc7;\n border-bottom-color: var(--ag-border-color, #babfc7); }\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 {\n padding: 6px 12px;\n line-height: 20px; }\n .ag-theme-alpine .ag-chart-mini-thumbnail {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-alpine .ag-chart-settings-nav-bar {\n border-top: solid 1px;\n border-top-color: #dde2eb;\n border-top-color: var(--ag-secondary-border-color, #dde2eb); }\n .ag-theme-alpine .ag-ltr .ag-group-title-bar-icon {\n margin-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-group-title-bar-icon {\n margin-left: 6px; }\n .ag-theme-alpine .ag-charts-format-top-level-group-toolbar {\n margin-top: 6px; }\n .ag-theme-alpine .ag-ltr .ag-charts-format-top-level-group-toolbar {\n padding-left: 20px; }\n .ag-theme-alpine .ag-rtl .ag-charts-format-top-level-group-toolbar {\n padding-right: 20px; }\n .ag-theme-alpine .ag-charts-format-sub-level-group {\n border-left: dashed 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7);\n padding-left: 6px;\n margin-bottom: 12px; }\n .ag-theme-alpine .ag-charts-format-sub-level-group-title-bar {\n padding-top: 0;\n padding-bottom: 0;\n background: none;\n font-weight: 700; }\n .ag-theme-alpine .ag-charts-format-sub-level-group-container {\n padding-bottom: 0; }\n .ag-theme-alpine .ag-charts-format-sub-level-group-item:last-child {\n margin-bottom: 0; }\n .ag-theme-alpine .ag-dnd-ghost {\n font-size: 12px;\n font-weight: 700; }\n .ag-theme-alpine .ag-side-buttons {\n width: 30px; }\n .ag-theme-alpine .ag-standard-button {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n border-radius: 3px;\n border: 1px solid;\n border-color: #2196f3;\n border-color: var(--ag-alpine-active-color, #2196f3);\n color: #2196f3;\n color: var(--ag-alpine-active-color, #2196f3);\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n font-weight: 600;\n padding: 6px 12px; }\n .ag-theme-alpine .ag-standard-button:hover {\n border-color: #2196f3;\n border-color: var(--ag-alpine-active-color, #2196f3);\n background-color: rgba(33, 150, 243, 0.1);\n background-color: var(--ag-row-hover-color, rgba(33, 150, 243, 0.1)); }\n .ag-theme-alpine .ag-standard-button:active {\n border-color: #2196f3;\n border-color: var(--ag-alpine-active-color, #2196f3);\n background-color: #2196f3;\n background-color: var(--ag-alpine-active-color, #2196f3);\n color: #fff;\n color: var(--ag-background-color, #fff); }\n .ag-theme-alpine .ag-standard-button:disabled {\n color: rgba(24, 29, 31, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(24, 29, 31, 0.5));\n background-color: #f1f2f4;\n background-color: var(--ag-input-disabled-background-color, #f1f2f4);\n border-color: rgba(186, 191, 199, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(186, 191, 199, 0.3)); }\n .ag-theme-alpine .ag-column-drop-vertical {\n min-height: 75px;\n max-height: 175px; }\n .ag-theme-alpine .ag-tool-panel-wrapper {\n width: 250px; }\n .ag-theme-alpine .ag-column-drop-vertical-title-bar {\n padding: 12px;\n padding-bottom: 0px; }\n .ag-theme-alpine .ag-column-drop-vertical-empty-message {\n display: flex;\n align-items: center;\n border: dashed 1px;\n border-color: #babfc7;\n border-color: var(--ag-border-color, #babfc7);\n margin: 12px;\n padding: 12px; }\n .ag-theme-alpine .ag-column-drop-empty-message {\n color: #181d1f;\n color: var(--ag-foreground-color, #181d1f);\n opacity: 0.75; }\n .ag-theme-alpine .ag-status-bar {\n font-weight: normal; }\n .ag-theme-alpine .ag-status-name-value-value {\n font-weight: 700; }\n .ag-theme-alpine .ag-paging-number, .ag-theme-alpine .ag-paging-row-summary-panel-number {\n font-weight: 700; }\n .ag-theme-alpine .ag-column-drop-cell-button {\n opacity: 0.5; }\n .ag-theme-alpine .ag-column-drop-cell-button:hover {\n opacity: 0.75; }\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-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 color: #2196f3;\n color: var(--ag-alpine-active-color, #2196f3); }\n .ag-theme-alpine .ag-chart-settings-card-item.ag-not-selected:hover {\n opacity: 0.35; }\n .ag-theme-alpine .ag-ltr .ag-panel-title-bar-button {\n margin-left: 12px;\n margin-right: 6px; }\n .ag-theme-alpine .ag-rtl .ag-panel-title-bar-button {\n margin-right: 12px;\n margin-left: 6px; }\n .ag-theme-alpine .ag-filter-toolpanel-group-container {\n padding-left: 6px; }\n .ag-theme-alpine .ag-filter-toolpanel-instance-filter {\n border: none;\n background-color: #f8f8f8;\n background-color: var(--ag-control-panel-background-color, #f8f8f8);\n border-left: dashed 1px;\n border-left-color: #babfc7;\n border-left-color: var(--ag-border-color, #babfc7);\n margin-left: 8px;\n padding-left: 8px;\n margin-right: 12px; }\n .ag-theme-alpine .ag-set-filter-list {\n padding-top: 3px;\n padding-bottom: 3px; }\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 {\n min-height: 150px; }\n .ag-theme-alpine .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px; }\n .ag-theme-alpine .ag-date-time-list-page-entry-is-current {\n background-color: #2196f3;\n background-color: var(--ag-alpine-active-color, #2196f3); }\n\n", ""]);
53691// Exports
53692module.exports = exports;
53693
53694
53695/***/ }),
53696/* 265 */
53697/***/ (function(module, exports, __webpack_require__) {
53698
53699var api = __webpack_require__(258);
53700 var content = __webpack_require__(266);
53701
53702 content = content.__esModule ? content.default : content;
53703
53704 if (typeof content === 'string') {
53705 content = [[module.i, content, '']];
53706 }
53707
53708var options = {};
53709
53710options.insert = "head";
53711options.singleton = false;
53712
53713var update = api(content, options);
53714
53715
53716
53717module.exports = content.locals || {};
53718
53719/***/ }),
53720/* 266 */
53721/***/ (function(module, exports, __webpack_require__) {
53722
53723// Imports
53724var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53725exports = ___CSS_LOADER_API_IMPORT___(false);
53726// Module
53727exports.push([module.i, ".ag-theme-balham-dark {\n color-scheme: dark;\n -webkit-font-smoothing: antialiased;\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridBalham\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABgoAAsAAAAALEgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2YfRkQU9TLzIAAANsAAAAQQAAAFZWUFLwY21hcAAAA7AAAAIMAAAFnGSNxkJnbHlmAAAFvAAADpIAABo4y6JNTGhlYWQAABRQAAAANAAAADZ2zcSBaGhlYQAAFIQAAAAaAAAAJAfQBDFobXR4AAAUoAAAABoAAAEgs7L//WxvY2EAABS8AAAAawAAAJJHu0GKbWF4cAAAFSgAAAAfAAAAIAFeAKpuYW1lAAAVSAAAATUAAAJG0OP3eXBvc3QAABaAAAABqAAAAm9qOX49eJx9lM1SE1EQhc8wAYFEoDQqRkRQ/IvKMD8Zk/CTkJBoWS5cWJYLN1hWWVZRrngOH8AnYOkT+AAufAIfwIVL15ZfdwaDLMitTO50n+4+fW7fKJA0qw3taGJv+Pyl5g72Dz+qppJGH/Of3AcHH97va/r4DV/Jf6cVlCqa00291qG+BXPBYXA0UQ1r4avwXfg5/BL+UghqReugy1TcUKyEZ6RUmRrKNaEpbDH7x2qCDnm23HpBVzXpnp76WqRmTEzfM9b1THe0QJ6u5+loG1TKspwdnkPWXc2fgch1j/wZbDaxllBkmf2WqprRHiw7MGkT38R/kZo71I6I6uLrwm4SS4t9W5fgZBElV/Wp3ugRfuvUsmRFTMo31q6/R/5WZh2jWuRpUMty12FwbG9QNSHiIdkzUFuFonVUL+NNwUTEtl1Biy6DTOCWapWd9ZnAtaI1MC/01qvuFjEd13SkQB32Y3vX8+V0ftLaJtcQ7AM4jK12PvepFWngXS2COdAnHemrvuuHfuq3/uicLlMn8R62yb5zpjbTKHga3cPb+me1XqeYgdOo/xEzdN5wdWJ8/UJDq1amM1MnZR9hTR0/C0/D92CTcx4lakRe1056krXJewz6fDGdTVbFle4zBfM+wQOfhRoTlui6ZxzNYY7WS2S03YhfzXVrku+an5upazdswd/sLth51zj/ZX4jOsxcpyd4V7BYprHlhkflsLcc6/hzWI+rGaslWGU+0TZjA78dPSrdop8Rk0S3/WYMfL7WYJAVN7XKGRr7dnFiVxwXe1TAP0FU3PDUtbOZ7sLN5mP4F/iHapMAeJxjYGSqZ5zAwMrAwFTFtIeBgaEHQjM+YDBkZAKKMrAyM2AFAWmuKQwHGHQ/GjG/AHKjmN8wsABpRpAcANz2CuAAAAB4nLXUZ1IbQRCG4VeBKIEDOeNEVkAgssjhh0+BM4UDhTPn8Nl8jz4B/ma7fQBc5al61Duzo9FMrb4F2oCCLEkR8p3kdEUur9FcNl6gOxsv8lv9Mp3kdV3hgiturHF7q9EK51xybbms97flNLvMODOsqbdHjRab7NPglDrbrLLDFge62+SIZTZY4ZAT1tnlmDN9P+2iqD2206Hf7dJOSlqxh17u84A++hlgkCGGGWGUMf3WBJNMMa15j3jME57yTPNmmGWOeRZ0XWJRpyppzwtUtcl27tb27jg/tVprc79xWt/WibcO1po67MbK4cn67vHZPyz2H1o5fRR+Re856Ym6dNrzUJMXoSUvw6a8CvvyOjTkTTiVt6Eu78K2XIRVuQw78j5syYdwIB9D+ld9Ck25CkdyHZblc9iQL2FFvoZD+RZO5HtYlx9hV36GY7kJeoCWcykvlnekWnApX1Z0KWPW5lL2rN2Raocj1U5Hql2OVLtdyqSVHKmWXXqS1uNItdeR6j2n7GBBKcKCsoE9dEoW1ueUMazfKW3YgFPusEGnBGJDTlnEhp1SiY045RMbdUoqNuaUWWzcKb3YhFOOsUmnRGNTLjvvtFPKsaC8Y0HJx4LeAVjQ2wAL2XlnHKnOOlKdc6Q670h1wZHqosvWWXLZ3iqOdL/q0vvVai6bU3cpY7bssjUbjuofQy2jW3ic7VlrkBzVde5ze2d6et7d04+Z2Z33a3deu/OWZnd79EDL7gr0YldCBqQoEnKwVhgpwsJCC7ZwBBI4JlIBdkXxq8qmoCouJ65QlC3ZKeKCpYIWhUAShCs/sBML4mAcq1LljaaVc3t6VlqhAPa/VLLT3ff07XvPPfecc8/57l2GZfCP/Q77HUZlSsx2hoEwUUXWTbieVJFkiE8jjaQlbvWAVZbUMKg9KQ0aIluETDoRt1oStYSsqObPyhk/uVKryLFMtVFvYNt6o57O0F8txgr9a7LQ0wPZNf36T/WfXnmDkP7z1DIAtodUExCGcKJKHA6kp+5a8V/wZGsBfI5o2K04vHa/J5p2qwst/Rj0cLJ7pVu2WsORITEEcJB95nqsIWS8raqnbv/6+j/6VJe1OQzLLrRYj+hUFKdP7FuluPwht+ptzToG5aTkHHL6PEKfPylFE6upqsDQ15fZLzMRhvGpXKahcjHBKDJCzCgaMcEoVGFuPH/yZH4cXEtL/dfm+xvXr1/87jLHIy+yEmPDF3OcBLxxtPDaa4WjGjl1NP/aa/mj+jIqliHbHnYPIzEDTA3bx6k5JGqaMrVDldqBK9N3iX4x7FKnX3zIFzkj/0wDLu7eMl2uVMrTW17pErunJ8ayuVx2bOJZSkAWqelvFb797cK3jCe7Z0lzg9CWNjco/dfdHvhkFmX2s36kOMaBOq0ICXo3KnLi3OzsuwcOvHPvveQu/ZNkvP38woLR/PJlfFxg32F8TIZBNgMQL0JNqGpQiZXDIAuSG9hY3E2pMK3T6NcicID6A7ba/lzplqGhW0qkUw62Z0PlEF7kIaPs17e9UvkKfPpKi5LRg/1mqBRqH8YHXuQL+PgVtix/Be65Vqbcx5eJjeG6+CiJVrZ/TEY+Why9OG64y2X8Q1kuGLIw0B0+EVsUyXI9SapXMaeDHblGCvbC1V9pOXatBKY972N3MRb0WD/D8MCpPLCNCHRig6SU6zXqiOTf9O3NnXobtLm5l77rcAQ8SmlNSfEE4AX4xjB+0P8GRufmNJcr3JsOxEuleCDVF6bse4wxCqzb9BkPw6QSQsVn3kDv51qtH2ja6VarfVbT3iLl9vyVe3Edk5OsBeVEGanfkxP6+/mf/SwPFzulOZebcT35mAQzREfpKnB4UaksRkEkFKyp46c0jm7YXI5hPfnzi7mJXHYiT4vcRPpSul43HnrPiuxEDp7QP5mqzeI3qBgNcvpZfJByPa3/mDaFkXRddxIxN55r1VJX5H6RvEjXCixZtVctRxK9eplZGebyJfZu9heMF2cSYsaZzzF/hr3p8rd0pEcvqNfYRA2EmGpVcTK+lOQmON2eWlUjFTpZyRpPZ4pAp4tuU6axvayo1K3iWF2r1sthtkJti6mhSKgOymFidur0iYCihklDxYBT0qgCJdkDboI6HWSxu8Lu5XbfY9HXZRqNDKlnGmPf01fBMQKsxXue6Nt5MSx5Vclrt7j8MZ+a9Nldth6b5FH7nGpUsRKb2/4XYlwJCS4v77ZxNo9TUByiV+oVxIgi+gWb3cX1WDxh0eqwiKLDJdpHclnCEpvDZiE1wtk9TiupsGAXbeTnts8csZBlmUuvGsIcO3fpOHvfGwFeaD/+j85I2GcTe6MpOV5LS30ZkffYXbJULUdzit9v97g9gQHF40iJDrcjIDhV0S3YrJwvVkz5XLJf9todHtHn4h08y3EWzhf64x+c5h1WO+eyW/jXeY+Nd/PzHt7uFamp/992/3tttzR3m5igQnxm7oabOrkb5joxbYmdJz7Sxg2avKv1SlmJQItQkymy5AHEaGjXeHoQOOoE6Vr1w01T2LqW5yySR/B5R1bY3VaXzeOT10057bwoiT23bunhBaz5MKXOfXaP2+VQvD7/Jz7hES0Wr1MI7f2sRxbdPG998JDVZhU8IvN/ZI5L8gqmPo4HcgKTif4+eMk/0eziBS82sRi55Wm2iZllOXMTM81sw/b1RgXhdwdF08juhkwHOzcMlIZhXnWDBwywTV+tRkKqNkCDFhQJ9ql31juXMlZtpdwCY1Un4hwktt8l3v7M55MuQewNRtOj+Ym1z26cumFjyevjHQ6vN98ayWtDN6mQ3rh+x523K1Jfc2Jk13AeHh5aq0L4wBNfW5toTgzf2czp88HcjbnBTD6YHc8OZsivSiy77pFb++LhbF8sgIxToiSXmpt7i5JfDsujudH8U5Fba2SrNirJYau9Lze8a3iiqf9ddGuNjN89ysbjWDMy0TzfP4gcg/nMYA6LK7n+aTbB9DJFZhg1ZexQTBVZr1YP7jVUN+lqp6MRrtxxlSJgUFOpJhD3hIAGQUQ90F7Ux9q9n/r0/q0byqYuWn89Azd98e6IqYuNn09QBYw3dzSbOw7sWL58xz9kx6fGs8aDTSxOfl0y4fasaG4xJz69q6dFRmfWdCYeCt67ns42shxZdPj8PWQpkyzpFNR1TGxTwP0Yokgw5xkCrlE3J5sehZhFMvdccqPWcQ1cOgUY8K9q+G2nAQhw/vqqwADZ1z5rMyh0kc5XciEzFBoeCvLOP3xsen/TYQuURsNDyTUtgQ+WRkNDqSODU9iiWQrygikPWTD8me96tEVICOQ3plfrv6ctOraiO+Ei4+zMgby3iM98OJte3DElDGw8yDCNRK2iXnWnPuJ9wcByVxDd9V8WZjt/LbPUzBLFsS3Z59ZwzY0yK5k1Rgz6rXa8PpTGgpg9dU35O+5tT83OwkH9JViuH1uknEhd1Cfhud9tO9v+d03TWubNMB+wYQftUpRMcibi/WdN66Le9n+iBbt+uJ/tRc0J1O4IaKnpWbWRwdlieMy04Jh+sHVcPw/p+fnSLLyth2dL5HHttHYc0pDWz8+X0QLlLq99iKOzzBbDp1GtHCoYwxvVar0FtXSmhH7uBnTpMDSwRqOhzxc3WmEljXZF8wPtLeEHrC4Z697gkiB+3GvEeu32vpnQLf3JKmdVAqKTFVPePo/bm8gdXp6NzBT8ITW7K3tzaM+g2qfmwjbgUgHZIdIuuQaokggOVky4+yS7Y3UxnSVreKeld9NAOrQn5HO5RtOJsaDIJlJiUs7sHColc72qJ7qn+PBwMQJ8FLl+YXgoGuYdlsiugopcfW7P+mKoJhl9Yr7kHYXSep+364+Pso9+YI0w1KMoprfgbXgX3g3znUMaPVS7Zy4/By/k5/IQWFhozy8srEWabMNaXCnbFiJI4JUvowdswxKvuWcWrvhCm7QRWbpwtx2hzsClBgF3Eo1fsG+O7d+4H/7WLOfOs7T8aqcw90MF8mp3rw7oCd0fW2h/CaONeUOghbZvdW0fx/htjGcOZA4Lr/YYA/1JZ7z/eLMHi33wozfZsX2b9pt9n8V9XscHuwgKXbdzEALNx4pvnS8+thL+aiVSbw0+Bhseyp09m3sIzrTn4UyHphga+RxhDzIKRp8G02LWMlPIj7qaqhhul0kb3tXQiEpfOavphxh0qW9hK1qZQcTBg2KE20FATAJGp3pDNYK02kjDwh2bN+61O7Ppmyeev/WO1aMrCElF73505YbxG27j+VR607oz66azCZtt69jkU1Grdf3oqslqKQOH9F9WZgayCFHOrFrerx9NOvzBenMTr1XLsiJejrCfIdXS09vuvG3DslpKVlrLvjq1ZXLlznqL5LNf3DB98/pizpItbJ6Y3vh4rvDy6MTYbDzJWYIK3K8/5e1NpavN4VdIWNGPtk6sXD1QsGjsQP+INnzZvngGM8Pej97Xz4ygZoyDIuPwSE588KAgwZUVujmo1iGG4Euo1odBjtUoOBMkK9nndAcimyMBt3M2vjyOF1zslAtCIBAPBMChO4PJZLAFB7VgKsWGRMnvFkW3XxKxkT5pdnoOH4I/6ser/fVUAJ4LJmdnk0F9MpBajE+HDZmbKHEXIdXRCFhQY3E0QdIwg4uJ5tEIcGmcEnSs11CVioGhYOMJID0WPtQcbOx0N0NRCMsr1vwB5lBWkgvqkxge/8XHO23eU/X+sgBBm0rARp6w4VbALXpfhwdOIGLwOPsdvGNHcTQs62/3TTvvtFoCtdyQ6sDu5Eter8+tnHKzbK/+r1Yp46+KT2Iw52zi64z9qrwURe2vZMYM77yN2cHs/h9yU0xQjINVC01PEYQxndUgI9DhEp0jScVQRkpSK7WMlavUGllARVQwscoV6tEpa4KTK410Qq58WOKCQ+2XfvkeZhW+bQPMMVH4vj0/PZXns2P9B/j89HTeviJZDoah/TIcvh9gtlVdi5nuUAvOHKLtURfLsw/+aNmND35oKrvUftnKY/P3zgpeHAzuB4/BnL+n/8Yc4fNTOA7gdkvJhseWPfDDydqDv6mntrcOH47ThAdweBYeWPQJeu5Fzz/N008v9YIoVYf3mtPPuLG5oF/g4iMH9q2+4YbV+w6At0s9cnD3zubISHPn7veQGB5Ggr1AP+jvL22sLWlDiZHumurKov1W0lxzNmu0+bgiwnevc+r6seXWJ6eX9qTMrsUCFD9gwMdkpCIowGieYffp54+39INwrHW8NKuH4e3Z0vw8IorzxykaOE5hwPy8yYeeT7swEjO4z0Mcae77BEs3urP+9vO3lOJkPF7SvzfTPHeuOTOFrH4CSf0n9BQQkn0zw+fODc/AycXzeAs5aZzj0QMKtkd/34AyZDeFp0gw17YDemaGeCzfga1HOuVimxe6Z4IqttFP/CVu0VeRJ5AoPAyrFnkViESt7EMdnDaSnk9bjKV72Rm0ew7xJeOLI5BEtI6Zhm7GMLJiPvEhpgkTBDMZ7goGygBFO6qxtOk/Uzq0cW7zNCFJQv4Ulr1LLAalz71LvEU1pGz6/Z1JraAl7sr6Y5xNDmoF+MbAuhBWCYXA4GZRECJIR6JWpXfnMnYPdraQU/rcO8gQrOQUNN4l+n0IX7B9xGDk7PUW+5KTvchoMmrwUVhLOd+/Ffm0Iptv7y8N4wz/G4A9L1cAAHicY2BkYGAAYgWvvDnx/DZfGbiZXwAFojgf72uA0f/////D/IL5DVAlBwMTkGQAAHb/DvN4nGNgZGBgfsHAACL//wezGRlQgQcAdFMFCgAAeJxjYGBgYH6BDf//j8C41AwspgcAANyGMDUAAHicY2AAghkMFxieMTowRjEuYXzFpMEUxVTD1Md0g+kT8wWWdSxHWM1YV7DuYQtgO8EuwK7FXsL+iYOHw4hjD8cPTjFOA04/ziIuJq4YrgPcadxreIR4zHgSeEp42nhm8azglSEdAgCdlRu1AHicY2BkYGDwYJjHwMMAAkxAzAWEDAz/wXwGACBkAgkAeJx1jz9OwzAYxV9oWkSLEBISYsMTC1L6Z2Do2KHZO3RgcxsnbZXEkeNW6sYxOAHHYOQInIJD8BK+oUKqLTk///zeJwXALb4QoFkBrtuzWRe45O2PO6Q74ZD8KNzFAM/CPfoX4T7tTHjAZsEJQXhF84A34Qvc4F24Q/8hHJI/hbu4x7dwj/5HuI9lEAoP8BS86ix222Sm840uFibb59qdqlNeGldvbanG0ehUx6Y0TnuTqNVR1Yds4n2qUmcLNbelN3luVeXszqx9tPG+mg6HqfhobQtoZIjhsEXCP9fIseFZYAHDlz3vmq/nUuf8km2Hmt6ihMIYEUZn0zHTZdvQ8PwmbKxw5FnjwM6E1iPlPWXGsqEwbyc36Zzb0lTt245mTR9xdtOqMMWQO/2Xj5jipF9al2jJAAAAeJxtkQdv2zAQhf3Fku3YaeO6bbr3Hmrr7p3upj+DpmiZiEQKJOWRX18iLgIE6AE8vPdwvHu4a2201tFv/T/22KBNQkqHLj026TNgixOcZJshpxhxmjOcZYdznOcCF7nEZa5wlWtc5wY3ucVt7nCXe9znAQ95xGMynvCUZ4x5zgte8orXvOEt73jPBz7yic/s8oWvfOM7P/jJL36zx5/WQBSFU4UI2pqOcM4ufFt42ZHCSFWmciZcGMqZkvsTu8wOgcp3jgRtchWUq7QRQY2O5Mb8q9yStrQuq3UkrhtJUxnfl9YEJ2RQeSJtvUqls963pZ+n8WXjJFdepmoZDXQPczbuqWUt4qx8U61U5kvhZ+2IOlNdxvHpVDsfksLpOi2cbeokFoSkVNPQKbWJPrqlFbk2Ra8SS13pA5VUyjS96HvNjDVqYGzIRFnahcrTOjZQ7VqbtNZzG4YufrfZpAnBmsxOp9vHBZM6XcxC4sVc9X0Vu2S5XZjeGkZDIW5gFJxSx1fWa8zaIIIChyKgsRgWeCQlM/aZsIwnzqloqFkxZ8pBq/UXq/Gj5g==\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-balham-dark .ag-icon {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-balham-dark .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-balham-dark .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-balham-dark .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-balham-dark .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-balham-dark .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-balham-dark .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-balham-dark .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-balham-dark .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-balham-dark .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-balham-dark .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-balham-dark .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-balham-dark .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-balham-dark .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-balham-dark .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-balham-dark .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-balham-dark .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-balham-dark .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-balham-dark .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-balham-dark .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-balham-dark .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-balham-dark .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-balham-dark .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-balham-dark .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-balham-dark .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-balham-dark .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-balham-dark .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-balham-dark .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-balham-dark .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-balham-dark .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-balham-dark .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-balham-dark .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-balham-dark .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-balham-dark .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-balham-dark .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-balham-dark .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-balham-dark .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-balham-dark .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-balham-dark .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-balham-dark .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-balham-dark .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-balham-dark .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-balham-dark .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-balham-dark .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-balham-dark .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-balham-dark .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-balham-dark .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-balham-dark .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-balham-dark .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-balham-dark .ag-root-wrapper {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark [class^='ag-'], .ag-theme-balham-dark [class^='ag-']:focus, .ag-theme-balham-dark [class^='ag-']:after, .ag-theme-balham-dark [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-balham-dark [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-balham-dark .ag-checkbox .ag-input-wrapper,\n .ag-theme-balham-dark .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-balham-dark .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-balham-dark .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-balham-dark .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 4px; }\n .ag-theme-balham-dark input[class^='ag-'] {\n margin: 0;\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark textarea[class^='ag-'],\n .ag-theme-balham-dark select[class^='ag-'] {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark input[class^='ag-']:not([type]),\n .ag-theme-balham-dark input[class^='ag-'][type='text'],\n .ag-theme-balham-dark input[class^='ag-'][type='number'],\n .ag-theme-balham-dark input[class^='ag-'][type='tel'],\n .ag-theme-balham-dark input[class^='ag-'][type='date'],\n .ag-theme-balham-dark input[class^='ag-'][type='datetime-local'],\n .ag-theme-balham-dark textarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #f0f0f0;\n border-color: var(--ag-input-border-color, #f0f0f0); }\n .ag-theme-balham-dark input[class^='ag-']:not([type]):disabled,\n .ag-theme-balham-dark input[class^='ag-'][type='text']:disabled,\n .ag-theme-balham-dark input[class^='ag-'][type='number']:disabled,\n .ag-theme-balham-dark input[class^='ag-'][type='tel']:disabled,\n .ag-theme-balham-dark input[class^='ag-'][type='date']:disabled,\n .ag-theme-balham-dark input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-balham-dark textarea[class^='ag-']:disabled {\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38));\n background-color: rgba(48, 46, 46, 0.3);\n background-color: var(--ag-input-disabled-background-color, rgba(48, 46, 46, 0.3));\n border-color: rgba(240, 240, 240, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(240, 240, 240, 0.3)); }\n .ag-theme-balham-dark input[class^='ag-']:not([type]):focus,\n .ag-theme-balham-dark input[class^='ag-'][type='text']:focus,\n .ag-theme-balham-dark input[class^='ag-'][type='number']:focus,\n .ag-theme-balham-dark input[class^='ag-'][type='tel']:focus,\n .ag-theme-balham-dark input[class^='ag-'][type='date']:focus,\n .ag-theme-balham-dark input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-balham-dark textarea[class^='ag-']:focus {\n outline: none;\n box-shadow: 0 0 4px 1.5px #719ECE;\n border-color: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-balham-dark input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-balham-dark input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-balham-dark input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-balham-dark input[class^='ag-'][type='button']:focus, .ag-theme-balham-dark button[class^='ag-']:focus {\n box-shadow: 0 0 4px 1.5px #719ECE; }\n .ag-theme-balham-dark .ag-drag-handle {\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-list-item, .ag-theme-balham-dark .ag-virtual-list-item {\n height: 24px; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-select-list {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-balham-dark .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-balham-dark .ag-list-item.ag-active-item {\n background-color: #3d4749;\n background-color: var(--ag-row-hover-color, #3d4749); }\n .ag-theme-balham-dark .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 .ag-theme-balham-dark .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-balham-dark .ag-select .ag-picker-field-wrapper {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n min-height: 24px;\n cursor: default; }\n .ag-theme-balham-dark .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-balham-dark .ag-select:not(.ag-cell-editor) {\n height: 24px; }\n .ag-theme-balham-dark .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-balham-dark .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-balham-dark .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-rich-select {\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020); }\n .ag-theme-balham-dark .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 182px; }\n .ag-theme-balham-dark .ag-rich-select-value {\n padding: 0 4px 0 12px;\n height: 28px;\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 24px; }\n .ag-theme-balham-dark .ag-rich-select-virtual-list-item:hover {\n background-color: #3d4749;\n background-color: var(--ag-row-hover-color, #3d4749); }\n .ag-theme-balham-dark .ag-rich-select-row {\n padding-left: 12px; }\n .ag-theme-balham-dark .ag-rich-select-row-selected {\n background-color: #005880;\n background-color: var(--ag-selected-row-background-color, #005880); }\n .ag-theme-balham-dark .ag-row-drag,\n .ag-theme-balham-dark .ag-selection-checkbox,\n .ag-theme-balham-dark .ag-group-expanded,\n .ag-theme-balham-dark .ag-group-contracted {\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-ltr .ag-row-drag, .ag-theme-balham-dark .ag-ltr .ag-selection-checkbox, .ag-theme-balham-dark .ag-ltr .ag-group-expanded, .ag-theme-balham-dark .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-drag, .ag-theme-balham-dark .ag-rtl .ag-selection-checkbox, .ag-theme-balham-dark .ag-rtl .ag-group-expanded, .ag-theme-balham-dark .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-balham-dark .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 26px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-balham-dark .ag-group-expanded,\n .ag-theme-balham-dark .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-balham-dark .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-balham-dark .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-balham-dark .ag-group-title-bar {\n background-color: #111;\n background-color: var(--ag-subheader-background-color, #111);\n padding: 4px; }\n .ag-theme-balham-dark .ag-group-toolbar {\n padding: 4px; }\n .ag-theme-balham-dark .ag-disabled-group-title-bar, .ag-theme-balham-dark .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-balham-dark .group-item {\n margin: 2px 0; }\n .ag-theme-balham-dark .ag-label {\n white-space: nowrap; }\n .ag-theme-balham-dark .ag-ltr .ag-label {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-label {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-label-align-top .ag-label {\n margin-bottom: 2px; }\n .ag-theme-balham-dark .ag-ltr .ag-slider-field, .ag-theme-balham-dark .ag-ltr .ag-angle-select-field {\n margin-right: 8px; }\n .ag-theme-balham-dark .ag-rtl .ag-slider-field, .ag-theme-balham-dark .ag-rtl .ag-angle-select-field {\n margin-left: 8px; }\n .ag-theme-balham-dark .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark .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: #F5F5F5;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n border-radius: 5px; }\n .ag-theme-balham-dark .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 4px 1.5px #719ECE; }\n .ag-theme-balham-dark .ag-picker-field-button {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-balham-dark .ag-color-picker .ag-picker-field-display {\n height: 16px; }\n .ag-theme-balham-dark .ag-color-panel {\n padding: 4px; }\n .ag-theme-balham-dark .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-balham-dark .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-balham-dark .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-balham-dark .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-balham-dark .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 .ag-theme-balham-dark .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-balham-dark .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-balham-dark .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-balham-dark .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-balham-dark .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-balham-dark .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-balham-dark .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-balham-dark.ag-dnd-ghost {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242));\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5));\n height: 32px !important;\n line-height: 32px;\n margin: 0;\n padding: 0 8px;\n -webkit-transform: translateY(8px);\n transform: translateY(8px); }\n .ag-theme-balham-dark .ag-dnd-ghost-icon {\n margin-right: 4px;\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5); }\n .ag-theme-balham-dark .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-balham-dark .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-balham-dark .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-balham-dark .ag-dialog {\n border-radius: 2px;\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-panel {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark .ag-panel-title-bar {\n background-color: #1c1c1c;\n background-color: var(--ag-header-background-color, #1c1c1c);\n color: rgba(245, 245, 245, 0.64);\n color: var(--ag-header-foreground-color, rgba(245, 245, 245, 0.64));\n height: 32px;\n padding: 4px 12px;\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-tooltip {\n background-color: #1c1c1c;\n background-color: var(--ag-header-background-color, #1c1c1c);\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5);\n padding: 4px;\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n border-radius: 2px;\n transition: opacity 1s; }\n .ag-theme-balham-dark .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-1 {\n padding-left: 20px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-1 {\n padding-right: 20px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-2 {\n padding-left: 40px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-2 {\n padding-right: 40px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-3 {\n padding-left: 60px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-3 {\n padding-right: 60px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-4 {\n padding-left: 80px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-4 {\n padding-right: 80px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-5 {\n padding-left: 100px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-5 {\n padding-right: 100px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-6 {\n padding-left: 120px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-6 {\n padding-right: 120px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-7 {\n padding-left: 140px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-7 {\n padding-right: 140px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-8 {\n padding-left: 160px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-8 {\n padding-right: 160px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-indent-9 {\n padding-left: 180px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-indent-9 {\n padding-right: 180px; }\n .ag-theme-balham-dark .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-balham-dark .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 6px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-balham-dark .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 6px; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-column-select-column-group:not(:last-child),\n .ag-theme-balham-dark .ag-column-select-column:not(:last-child) {\n margin-bottom: 4px; }\n .ag-theme-balham-dark .ag-column-select-column-readonly,\n .ag-theme-balham-dark .ag-column-select-column-group-readonly {\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38));\n pointer-events: none; }\n .ag-theme-balham-dark .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 24px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 24px; }\n .ag-theme-balham-dark .ag-column-select-virtual-list-viewport {\n padding: 3px 0px; }\n .ag-theme-balham-dark .ag-column-select-virtual-list-item {\n margin: 0 6px; }\n .ag-theme-balham-dark .ag-rtl {\n text-align: right; }\n .ag-theme-balham-dark .ag-root-wrapper {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 40px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 40px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-1 {\n padding-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-1 {\n padding-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 68px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 68px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-2 {\n padding-left: 56px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-2 {\n padding-right: 56px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 96px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 96px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 124px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 124px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-4 {\n padding-left: 112px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-4 {\n padding-right: 112px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 152px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 152px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-5 {\n padding-left: 140px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-5 {\n padding-right: 140px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 180px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 180px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-6 {\n padding-left: 168px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-6 {\n padding-right: 168px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 208px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 208px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-7 {\n padding-left: 196px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-7 {\n padding-right: 196px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 236px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 236px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-8 {\n padding-left: 224px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-8 {\n padding-right: 224px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 264px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 264px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-9 {\n padding-left: 252px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-9 {\n padding-right: 252px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 292px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 292px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-10 {\n padding-left: 280px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-10 {\n padding-right: 280px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 320px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 320px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-11 {\n padding-left: 308px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-11 {\n padding-right: 308px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 348px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 348px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-12 {\n padding-left: 336px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-12 {\n padding-right: 336px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 376px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 376px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-13 {\n padding-left: 364px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-13 {\n padding-right: 364px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 404px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 404px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-14 {\n padding-left: 392px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-14 {\n padding-right: 392px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 432px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 432px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-15 {\n padding-left: 420px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-15 {\n padding-right: 420px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 460px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 460px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-16 {\n padding-left: 448px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-16 {\n padding-right: 448px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 488px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 488px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-17 {\n padding-left: 476px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-17 {\n padding-right: 476px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 516px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 516px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-18 {\n padding-left: 504px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-18 {\n padding-right: 504px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 544px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 544px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-19 {\n padding-left: 532px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-19 {\n padding-right: 532px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 572px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 572px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-20 {\n padding-left: 560px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-20 {\n padding-right: 560px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 600px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 600px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-21 {\n padding-left: 588px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-21 {\n padding-right: 588px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 628px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 628px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-22 {\n padding-left: 616px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-22 {\n padding-right: 616px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 656px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 656px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-23 {\n padding-left: 644px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-23 {\n padding-right: 644px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 684px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 684px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-24 {\n padding-left: 672px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-24 {\n padding-right: 672px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 712px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 712px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-25 {\n padding-left: 700px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-25 {\n padding-right: 700px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 740px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 740px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-26 {\n padding-left: 728px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-26 {\n padding-right: 728px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 768px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 768px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-27 {\n padding-left: 756px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-27 {\n padding-right: 756px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 796px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 796px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-28 {\n padding-left: 784px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-28 {\n padding-right: 784px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 824px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 824px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-29 {\n padding-left: 812px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-29 {\n padding-right: 812px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 852px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 852px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-30 {\n padding-left: 840px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-30 {\n padding-right: 840px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 880px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 880px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-31 {\n padding-left: 868px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-31 {\n padding-right: 868px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 908px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 908px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-32 {\n padding-left: 896px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-32 {\n padding-right: 896px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 936px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 936px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-33 {\n padding-left: 924px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-33 {\n padding-right: 924px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 964px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 964px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-34 {\n padding-left: 952px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-34 {\n padding-right: 952px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 992px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 992px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-35 {\n padding-left: 980px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-35 {\n padding-right: 980px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 1020px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 1020px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-36 {\n padding-left: 1008px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-36 {\n padding-right: 1008px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 1048px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 1048px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-37 {\n padding-left: 1036px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-37 {\n padding-right: 1036px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 1076px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 1076px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-38 {\n padding-left: 1064px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-38 {\n padding-right: 1064px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 1104px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 1104px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-39 {\n padding-left: 1092px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-39 {\n padding-right: 1092px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 1132px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 1132px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-40 {\n padding-left: 1120px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-40 {\n padding-right: 1120px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 1160px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 1160px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-41 {\n padding-left: 1148px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-41 {\n padding-right: 1148px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1188px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1188px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1176px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1176px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1216px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1216px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1204px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1204px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1244px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1244px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1232px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1232px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1272px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1272px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1260px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1260px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1300px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1300px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1288px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1288px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1328px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1328px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1316px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1316px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1356px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1356px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1344px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1344px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1384px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1384px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1372px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1372px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1412px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1412px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1400px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1400px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1440px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1440px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1428px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1428px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1468px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1468px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1456px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1456px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1496px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1496px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1484px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1484px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1524px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1524px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1512px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1512px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1552px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1552px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1540px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1540px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1580px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1580px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1568px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1568px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1608px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1608px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1596px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1596px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1636px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1636px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1624px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1624px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1664px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1664px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1652px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1652px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1692px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1692px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1680px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1680px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1720px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1720px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1708px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1708px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1748px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1748px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1736px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1736px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1776px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1776px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1764px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1764px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1804px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1804px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1792px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1792px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1832px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1832px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1820px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1820px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1860px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1860px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1848px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1848px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1888px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1888px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1876px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1876px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1916px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1916px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1904px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1904px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1944px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1944px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1932px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1932px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1972px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1972px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1960px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1960px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 2000px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 2000px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1988px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1988px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 2028px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 2028px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-72 {\n padding-left: 2016px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-72 {\n padding-right: 2016px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 2056px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 2056px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-73 {\n padding-left: 2044px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-73 {\n padding-right: 2044px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 2084px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 2084px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-74 {\n padding-left: 2072px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-74 {\n padding-right: 2072px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 2112px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 2112px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-75 {\n padding-left: 2100px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-75 {\n padding-right: 2100px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 2140px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 2140px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-76 {\n padding-left: 2128px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-76 {\n padding-right: 2128px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 2168px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 2168px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-77 {\n padding-left: 2156px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-77 {\n padding-right: 2156px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 2196px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 2196px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-78 {\n padding-left: 2184px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-78 {\n padding-right: 2184px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 2224px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 2224px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-79 {\n padding-left: 2212px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-79 {\n padding-right: 2212px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 2252px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 2252px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-80 {\n padding-left: 2240px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-80 {\n padding-right: 2240px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 2280px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 2280px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-81 {\n padding-left: 2268px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-81 {\n padding-right: 2268px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 2308px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 2308px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-82 {\n padding-left: 2296px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-82 {\n padding-right: 2296px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2336px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2336px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-83 {\n padding-left: 2324px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-83 {\n padding-right: 2324px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2364px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2364px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2352px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2352px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2392px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2392px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2380px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2380px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2420px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2420px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2408px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2408px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2448px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2448px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2436px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2436px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2476px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2476px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2464px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2464px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2504px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2504px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2492px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2492px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2532px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2532px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2520px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2520px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2560px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2560px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2548px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2548px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2588px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2588px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2576px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2576px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2616px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2616px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2604px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2604px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2644px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2644px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2632px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2632px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2672px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2672px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2660px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2660px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2700px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2700px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2688px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2688px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2728px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2728px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2716px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2716px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2756px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2756px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2744px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2744px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2784px; }\n .ag-theme-balham-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2784px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2772px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2772px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 28px; }\n .ag-theme-balham-dark .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 28px; }\n .ag-theme-balham-dark .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-balham-dark .ag-value-change-delta-up {\n color: #43a047;\n color: var(--ag-value-change-delta-up-color, #43a047); }\n .ag-theme-balham-dark .ag-value-change-delta-down {\n color: #e53935;\n color: var(--ag-value-change-delta-down-color, #e53935); }\n .ag-theme-balham-dark .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 .ag-theme-balham-dark .ag-value-change-value-highlight {\n background-color: rgba(22, 160, 133, 0.5);\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5));\n transition: background-color 0.1s; }\n .ag-theme-balham-dark .ag-cell-data-changed {\n background-color: rgba(22, 160, 133, 0.5) !important;\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5)) !important; }\n .ag-theme-balham-dark .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-cell-highlight {\n background-color: #00B0FF !important;\n background-color: var(--ag-range-selection-highlight-color, var(--ag-balham-active-color, #00B0FF)) !important; }\n .ag-theme-balham-dark .ag-row {\n height: 28px;\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n color: #F5F5F5;\n color: var(--ag-data-color, var(--ag-foreground-color, #F5F5F5));\n border-width: 1px;\n border-color: #5c5c5c;\n border-color: var(--ag-row-border-color, #5c5c5c);\n border-bottom-style: solid; }\n .ag-theme-balham-dark .ag-row-highlight-above::after, .ag-theme-balham-dark .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #00B0FF;\n background-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF));\n left: 1px; }\n .ag-theme-balham-dark .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-balham-dark .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-balham-dark .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-balham-dark .ag-row-odd {\n background-color: #262c2e;\n background-color: var(--ag-odd-row-background-color, #262c2e); }\n .ag-theme-balham-dark .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-row-hover {\n background-color: #3d4749;\n background-color: var(--ag-row-hover-color, #3d4749); }\n .ag-theme-balham-dark .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-balham-dark .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-balham-dark .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-balham-dark .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-balham-dark .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-balham-dark .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-balham-dark .ag-cell, .ag-theme-balham-dark .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 26px;\n padding-left: 11px;\n padding-right: 11px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-balham-dark .ag-row > .ag-cell-wrapper {\n padding-left: 11px;\n padding-right: 11px; }\n .ag-theme-balham-dark .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-cell-inline-editing {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n padding: 0;\n height: 28px;\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020); }\n .ag-theme-balham-dark .ag-popup-editor {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020);\n padding: 0; }\n .ag-theme-balham-dark .ag-large-text-input {\n height: auto;\n padding: 12px; }\n .ag-theme-balham-dark .ag-details-row {\n padding: 20px;\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-balham-dark .ag-layout-auto-height .ag-center-cols-container, .ag-theme-balham-dark .ag-layout-print .ag-center-cols-clipper, .ag-theme-balham-dark .ag-layout-print .ag-center-cols-container {\n min-height: 50px; }\n .ag-theme-balham-dark .ag-overlay-loading-wrapper {\n background-color: rgba(45, 52, 54, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(45, 52, 54, 0.66)); }\n .ag-theme-balham-dark .ag-overlay-loading-center {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px; }\n .ag-theme-balham-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-balham-dark .ag-loading {\n padding-left: 12px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-balham-dark .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-balham-dark .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-balham-dark .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-cell {\n border-right: solid transparent; }\n .ag-theme-balham-dark .ag-rtl .ag-cell {\n border-left: solid transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-balham-dark .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-balham-dark .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-row-selected {\n background-color: #005880;\n background-color: var(--ag-selected-row-background-color, #005880); }\n .ag-theme-balham-dark .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-balham-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(0, 176, 255, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(0, 176, 255, 0.2)); }\n .ag-theme-balham-dark .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-balham-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(45, 166, 255, 0.5) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(45, 166, 255, 0.5)) !important; }\n .ag-theme-balham-dark .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-balham-dark .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: rgba(26, 177, 74, 0.5) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(26, 177, 74, 0.5)) !important; }\n .ag-theme-balham-dark .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-balham-dark .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: rgba(0, 176, 255, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(0, 176, 255, 0.2))); }\n .ag-theme-balham-dark .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-balham-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(0, 176, 255, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(0, 176, 255, 0.36)); }\n .ag-theme-balham-dark .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-balham-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(0, 176, 255, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(0, 176, 255, 0.488)); }\n .ag-theme-balham-dark .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-balham-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(0, 176, 255, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(0, 176, 255, 0.5904)); }\n .ag-theme-balham-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #00B0FF;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #00B0FF;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #00B0FF;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #00B0FF;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham-dark .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham-dark .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-balham-dark .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-balham-dark .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-balham-dark .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham-dark .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham-dark .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-balham-dark .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-balham-dark .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #00B0FF;\n border-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF));\n outline: initial; }\n .ag-theme-balham-dark .ag-cell.ag-selection-fill-top,\n .ag-theme-balham-dark .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #00B0FF;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-balham-dark .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #00B0FF;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-balham-dark .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #00B0FF;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-cell.ag-selection-fill-bottom,\n .ag-theme-balham-dark .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #00B0FF;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-balham-dark .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #00B0FF;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-balham-dark .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #00B0FF;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-fill-handle, .ag-theme-balham-dark .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #00B0FF;\n background-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark .ag-ltr .ag-fill-handle, .ag-theme-balham-dark .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-balham-dark .ag-rtl .ag-fill-handle, .ag-theme-balham-dark .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-balham-dark .ag-fill-handle {\n cursor: cell; }\n .ag-theme-balham-dark .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-balham-dark .ag-cell-inline-editing {\n border-color: #719ECE !important;\n border-color: var(--ag-input-focus-border-color, #719ECE) !important; }\n .ag-theme-balham-dark .ag-menu {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n padding: 0; }\n .ag-theme-balham-dark .ag-menu-list {\n cursor: default;\n padding: 4px 0; }\n .ag-theme-balham-dark .ag-menu-separator {\n height: 9px; }\n .ag-theme-balham-dark .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-menu-option-active, .ag-theme-balham-dark .ag-compact-menu-option-active {\n background-color: #3d4749;\n background-color: var(--ag-row-hover-color, #3d4749); }\n .ag-theme-balham-dark .ag-menu-option-part, .ag-theme-balham-dark .ag-compact-menu-option-part {\n line-height: 16px;\n padding: 6px 0; }\n .ag-theme-balham-dark .ag-menu-option-disabled, .ag-theme-balham-dark .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-menu-option-icon, .ag-theme-balham-dark .ag-compact-menu-option-icon {\n width: 16px; }\n .ag-theme-balham-dark .ag-ltr .ag-menu-option-icon, .ag-theme-balham-dark .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 8px; }\n .ag-theme-balham-dark .ag-rtl .ag-menu-option-icon, .ag-theme-balham-dark .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 8px; }\n .ag-theme-balham-dark .ag-menu-option-text, .ag-theme-balham-dark .ag-compact-menu-option-text {\n padding-left: 8px;\n padding-right: 8px; }\n .ag-theme-balham-dark .ag-ltr .ag-menu-option-shortcut, .ag-theme-balham-dark .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-menu-option-shortcut, .ag-theme-balham-dark .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-menu-option-popup-pointer, .ag-theme-balham-dark .ag-compact-menu-option-popup-pointer {\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-balham-dark .ag-tab {\n border-bottom: 0 solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-tab-selected {\n border-bottom-color: #00B0FF;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-menu-header {\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 8px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 8px; }\n .ag-theme-balham-dark .ag-set-filter-select-all {\n padding-top: 6px; }\n .ag-theme-balham-dark .ag-set-filter-list, .ag-theme-balham-dark .ag-filter-no-matches {\n height: 144px; }\n .ag-theme-balham-dark .ag-set-filter-filter {\n margin-top: 6px;\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-balham-dark .ag-filter-to {\n margin-top: 4px; }\n .ag-theme-balham-dark .ag-mini-filter {\n margin: 6px 6px; }\n .ag-theme-balham-dark .ag-set-filter-item {\n margin: 0px 6px; }\n .ag-theme-balham-dark .ag-ltr .ag-set-filter-item-value {\n margin-left: 6px; }\n .ag-theme-balham-dark .ag-rtl .ag-set-filter-item-value {\n margin-right: 6px; }\n .ag-theme-balham-dark .ag-filter-apply-panel {\n padding: 6px 6px;\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 8px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 8px; }\n .ag-theme-balham-dark .ag-simple-filter-body-wrapper {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-balham-dark .ag-simple-filter-body-wrapper > * {\n margin-bottom: 4px; }\n .ag-theme-balham-dark .ag-filter-no-matches {\n padding: 6px 6px; }\n .ag-theme-balham-dark .ag-multi-filter-menu-item {\n margin: 4px 0; }\n .ag-theme-balham-dark .ag-multi-filter-group-title-bar {\n padding: 8px 4px;\n background-color: transparent; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-side-bar {\n position: relative; }\n .ag-theme-balham-dark .ag-tool-panel-wrapper {\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020); }\n .ag-theme-balham-dark .ag-side-buttons {\n padding-top: 16px;\n width: 20px;\n position: relative;\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5);\n overflow: hidden; }\n .ag-theme-balham-dark button.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: 8px 0 8px 0;\n width: calc(100% + 1px);\n margin: 0;\n min-height: 72px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242);\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-selected .ag-side-button-button {\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020);\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242);\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-left,\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 0 solid transparent;\n margin-right: -1px;\n padding-right: 1px; }\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #00B0FF;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-left,\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 0 solid transparent;\n margin-left: -1px;\n padding-left: 1px; }\n .ag-theme-balham-dark .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-balham-dark .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #00B0FF;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-filter-toolpanel-header {\n height: 24px; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-header, .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-header, .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-0-header {\n height: 32px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-item {\n margin-top: 2px;\n margin-bottom: 2px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-search {\n height: 32px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 16px; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 20px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 20px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 36px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 36px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 52px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 52px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 68px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 68px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 84px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 84px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 100px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 100px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 116px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 116px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 132px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 132px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 148px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 148px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 164px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 164px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242);\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242);\n margin-top: 4px; }\n .ag-theme-balham-dark .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-pivot-mode-panel {\n height: 32px;\n display: flex; }\n .ag-theme-balham-dark .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-balham-dark .ag-ltr .ag-pivot-mode-select {\n margin-left: 6px; }\n .ag-theme-balham-dark .ag-rtl .ag-pivot-mode-select {\n margin-right: 6px; }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-column-select-header {\n height: 32px;\n align-items: center;\n padding: 0 6px;\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242));\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-column-group-icons,\n .ag-theme-balham-dark .ag-column-select-header-icon {\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-header {\n background-color: #1c1c1c;\n background-color: var(--ag-header-background-color, #1c1c1c);\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-header-row {\n color: rgba(245, 245, 245, 0.64);\n color: var(--ag-header-foreground-color, rgba(245, 245, 245, 0.64));\n height: 32px; }\n .ag-theme-balham-dark .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-header-cell,\n .ag-theme-balham-dark .ag-header-group-cell {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-balham-dark .ag-header-cell.ag-header-cell-moving,\n .ag-theme-balham-dark .ag-header-group-cell.ag-header-cell-moving {\n background-color: #2d3436;\n background-color: var(--ag-header-cell-moving-background-color, var(--ag-background-color, #2d3436)); }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-header-icon {\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-balham-dark .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-balham-dark .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-header-cell::after,\n .ag-theme-balham-dark .ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n width: 1px;\n height: 50%;\n top: calc(50% - 25%);\n background-color: rgba(66, 66, 66, 0.5);\n background-color: var(--ag-header-column-separator-color, rgba(66, 66, 66, 0.5)); }\n .ag-theme-balham-dark .ag-ltr .ag-header-cell::after, .ag-theme-balham-dark .ag-ltr .ag-header-group-cell::after {\n right: 0; }\n .ag-theme-balham-dark .ag-rtl .ag-header-cell::after, .ag-theme-balham-dark .ag-rtl .ag-header-group-cell::after {\n left: 0; }\n .ag-theme-balham-dark .ag-ltr .ag-header-select-all {\n margin-right: 12px; }\n .ag-theme-balham-dark .ag-rtl .ag-header-select-all {\n margin-left: 12px; }\n .ag-theme-balham-dark .ag-ltr .ag-floating-filter-button {\n margin-left: 12px; }\n .ag-theme-balham-dark .ag-rtl .ag-floating-filter-button {\n margin-right: 12px; }\n .ag-theme-balham-dark .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 16px;\n padding: 0;\n width: 16px; }\n .ag-theme-balham-dark .ag-filter-loading {\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020);\n height: 100%;\n padding: 6px 6px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-balham-dark .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242);\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5));\n height: 32px; }\n .ag-theme-balham-dark .ag-paging-panel > * {\n margin: 0 12px; }\n .ag-theme-balham-dark .ag-paging-button {\n cursor: pointer; }\n .ag-theme-balham-dark .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38)); }\n .ag-theme-balham-dark .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-balham-dark .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark .ag-paging-button, .ag-theme-balham-dark .ag-paging-description {\n margin: 0 4px; }\n .ag-theme-balham-dark .ag-status-bar {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-border-color, #424242);\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38));\n padding-right: 16px;\n padding-left: 16px;\n line-height: 1.5; }\n .ag-theme-balham-dark .ag-status-name-value-value {\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5); }\n .ag-theme-balham-dark .ag-status-bar-center {\n text-align: center; }\n .ag-theme-balham-dark .ag-status-name-value {\n margin-left: 4px;\n margin-right: 4px;\n padding-top: 8px;\n padding-bottom: 8px; }\n .ag-theme-balham-dark .ag-column-drop-cell {\n background: #353535;\n background: var(--ag-chip-background-color, #353535);\n border-radius: 16px;\n height: 16px;\n padding: 0 2px; }\n .ag-theme-balham-dark .ag-column-drop-cell-text {\n margin: 0 4px; }\n .ag-theme-balham-dark .ag-column-drop-cell-button {\n min-width: 16px;\n margin: 0 2px;\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-column-drop-cell-drag-handle {\n margin-left: 8px; }\n .ag-theme-balham-dark .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-column-drop-horizontal {\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020);\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5));\n height: 28px;\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-ltr .ag-column-drop-horizontal {\n padding-left: 12px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-drop-horizontal {\n padding-right: 12px; }\n .ag-theme-balham-dark .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-column-drop-horizontal-cell-separator {\n margin: 0 4px;\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-column-drop-horizontal-empty-message {\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38)); }\n .ag-theme-balham-dark .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 12px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 12px; }\n .ag-theme-balham-dark .ag-column-drop-vertical-list {\n padding-bottom: 4px;\n padding-right: 4px;\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-column-drop-vertical-cell {\n margin-top: 4px; }\n .ag-theme-balham-dark .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-balham-dark .ag-column-drop-vertical-icon {\n margin-left: 4px;\n margin-right: 4px; }\n .ag-theme-balham-dark .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: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38));\n margin-top: 4px; }\n .ag-theme-balham-dark .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n background: #2d3436;\n background: var(--ag-background-color, #2d3436);\n height: 70px;\n padding: 0; }\n .ag-theme-balham-dark .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 20px;\n padding-left: 8px; }\n .ag-theme-balham-dark .ag-select-agg-func-virtual-list-item:hover {\n background-color: #005880;\n background-color: var(--ag-selected-row-background-color, #005880); }\n .ag-theme-balham-dark .ag-chart-menu {\n border-radius: 2px;\n background: #2d3436;\n background: var(--ag-background-color, #2d3436); }\n .ag-theme-balham-dark .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: 2px;\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-balham-dark .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: #424242;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-balham-dark .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-balham-dark .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-balham-dark .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-balham-dark .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-balham-dark .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-balham-dark .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-balham-dark .ag-chart-mini-thumbnail.ag-selected {\n border-color: #00B0FF;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-chart-settings-card-item {\n background: #F5F5F5;\n background: var(--ag-foreground-color, #F5F5F5);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-balham-dark .ag-chart-settings-card-item.ag-selected {\n background-color: #00B0FF;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-chart-data-column-drag-handle {\n margin-left: 4px; }\n .ag-theme-balham-dark .ag-charts-settings-group-title-bar,\n .ag-theme-balham-dark .ag-charts-data-group-title-bar,\n .ag-theme-balham-dark .ag-charts-format-top-level-group-title-bar {\n border-top: solid 1px;\n border-top-color: #424242;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #424242)); }\n .ag-theme-balham-dark .ag-charts-settings-group-container {\n padding: 4px; }\n .ag-theme-balham-dark .ag-charts-data-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-balham-dark .ag-charts-data-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-balham-dark .ag-charts-format-top-level-group-container {\n margin-left: 8px;\n padding: 4px; }\n .ag-theme-balham-dark .ag-charts-format-top-level-group-item {\n margin: 4px 0; }\n .ag-theme-balham-dark .ag-charts-format-sub-level-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-balham-dark .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-balham-dark .ag-charts-group-container.ag-group-container-horizontal {\n padding: 4px; }\n .ag-theme-balham-dark .ag-chart-data-section,\n .ag-theme-balham-dark .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-balham-dark .ag-chart-menu-panel {\n background-color: #202020;\n background-color: var(--ag-control-panel-background-color, #202020); }\n .ag-theme-balham-dark .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: #424242;\n border-left-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: #424242;\n border-right-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-balham-dark .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-balham-dark .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: #2d3436;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, #2d3436));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper input, .ag-theme-balham-dark .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper:focus-within, .ag-theme-balham-dark .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 4px 1.5px #719ECE; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #ecf0f1;\n color: var(--ag-checkbox-unchecked-color, #ecf0f1);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #00B0FF;\n color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham-dark .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #ecf0f1;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, #ecf0f1));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 32px;\n height: 16px;\n background-color: transparent;\n background-color: var(--ag-toggle-button-off-background-color, transparent);\n border-radius: 8px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #F5F5F5;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: 0 0 4px 1.5px #719ECE; }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #00B0FF;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF)));\n border-color: #00B0FF;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 16px;\n width: 16px;\n background-color: #2d3436;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #2d3436));\n border-radius: 8px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #F5F5F5;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-foreground-color, #F5F5F5))); }\n .ag-theme-balham-dark .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 16px);\n border-color: #00B0FF;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF))); }\n .ag-theme-balham-dark .ag-radio-button-input-wrapper {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: #2d3436;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, #2d3436));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 16px; }\n .ag-theme-balham-dark .ag-radio-button-input-wrapper input, .ag-theme-balham-dark .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-balham-dark .ag-radio-button-input-wrapper:focus-within, .ag-theme-balham-dark .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 4px 1.5px #719ECE; }\n .ag-theme-balham-dark .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham-dark .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #ecf0f1;\n color: var(--ag-checkbox-unchecked-color, #ecf0f1);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham-dark .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #00B0FF;\n color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham-dark input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-balham-dark input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #424242;\n background-color: var(--ag-border-color, #424242);\n border-radius: 2px;\n border-radius: 3px; }\n .ag-theme-balham-dark input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #424242;\n background-color: var(--ag-border-color, #424242);\n border-radius: 2px;\n border-radius: 3px; }\n .ag-theme-balham-dark input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #424242;\n background-color: var(--ag-border-color, #424242);\n border-radius: 2px;\n border-radius: 3px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n border: 1px solid;\n border-color: #ecf0f1;\n border-color: var(--ag-checkbox-unchecked-color, #ecf0f1);\n border-radius: 16px;\n -webkit-transform: translateY(-6.5px);\n transform: translateY(-6.5px); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n border: 1px solid;\n border-color: #ecf0f1;\n border-color: var(--ag-checkbox-unchecked-color, #ecf0f1);\n border-radius: 16px; }\n .ag-theme-balham-dark input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n border: 1px solid;\n border-color: #ecf0f1;\n border-color: var(--ag-checkbox-unchecked-color, #ecf0f1);\n border-radius: 16px; }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n box-shadow: 0 0 4px 1.5px #719ECE;\n border-color: #00B0FF;\n border-color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:focus::-ms-thumb {\n box-shadow: 0 0 4px 1.5px #719ECE;\n border-color: #00B0FF;\n border-color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n box-shadow: 0 0 4px 1.5px #719ECE;\n border-color: #00B0FF;\n border-color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #00B0FF)); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: #719ECE;\n background-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: #719ECE;\n background-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:active::-ms-track {\n background-color: #719ECE;\n background-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham-dark input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\n .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: rgba(245, 245, 245, 0.64);\n color: var(--ag-header-foreground-color, rgba(245, 245, 245, 0.64)); }\n .ag-theme-balham-dark .ag-ltr input[class^='ag-']:not([type]),\n .ag-theme-balham-dark .ag-ltr input[class^='ag-'][type='text'],\n .ag-theme-balham-dark .ag-ltr input[class^='ag-'][type='number'],\n .ag-theme-balham-dark .ag-ltr input[class^='ag-'][type='tel'],\n .ag-theme-balham-dark .ag-ltr input[class^='ag-'][type='date'],\n .ag-theme-balham-dark .ag-ltr input[class^='ag-'][type='datetime-local'],\n .ag-theme-balham-dark .ag-ltr textarea[class^='ag-'] {\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-rtl input[class^='ag-']:not([type]),\n .ag-theme-balham-dark .ag-rtl input[class^='ag-'][type='text'],\n .ag-theme-balham-dark .ag-rtl input[class^='ag-'][type='number'],\n .ag-theme-balham-dark .ag-rtl input[class^='ag-'][type='tel'],\n .ag-theme-balham-dark .ag-rtl input[class^='ag-'][type='date'],\n .ag-theme-balham-dark .ag-rtl input[class^='ag-'][type='datetime-local'],\n .ag-theme-balham-dark .ag-rtl textarea[class^='ag-'] {\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-status-bar {\n font-weight: 600;\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38)); }\n .ag-theme-balham-dark .ag-dnd-ghost {\n font-weight: 600; }\n .ag-theme-balham-dark .ag-tab {\n border: 1px solid transparent;\n padding: 4px 8px;\n margin: 4px;\n margin-bottom: -1px; }\n .ag-theme-balham-dark .ag-tab-selected {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n border-bottom-color: transparent; }\n .ag-theme-balham-dark .ag-tabs-header {\n border-bottom: 1px solid;\n border-bottom-color: #424242;\n border-bottom-color: var(--ag-border-color, #424242); }\n .ag-theme-balham-dark .ag-column-drop-cell {\n height: 24px; }\n .ag-theme-balham-dark .ag-column-drop-vertical-title {\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5); }\n .ag-theme-balham-dark .ag-column-drop-vertical-cell {\n margin-left: 8px;\n margin-right: 8px; }\n .ag-theme-balham-dark .ag-column-drop-vertical-cell-text {\n margin-left: 8px; }\n .ag-theme-balham-dark .ag-column-drop-vertical-icon {\n color: #F5F5F5;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #F5F5F5)); }\n .ag-theme-balham-dark .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: 24px;\n padding-right: 4px; }\n .ag-theme-balham-dark .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: 24px;\n padding-left: 4px; }\n .ag-theme-balham-dark .ag-column-drop-horizontal {\n height: 32px; }\n .ag-theme-balham-dark .ag-column-drop-empty {\n color: rgba(245, 245, 245, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(245, 245, 245, 0.38)); }\n .ag-theme-balham-dark .ag-column-drop-horizontal-cell-text {\n margin-left: 8px; }\n .ag-theme-balham-dark .ag-column-drop-vertical {\n padding-top: 8px; }\n .ag-theme-balham-dark .ag-menu-header {\n background-color: #1c1c1c;\n background-color: var(--ag-header-background-color, #1c1c1c); }\n .ag-theme-balham-dark .ag-overlay-loading-center {\n background-color: #2d3436;\n background-color: var(--ag-background-color, #2d3436);\n border: 1px solid;\n border-color: #424242;\n border-color: var(--ag-border-color, #424242);\n color: #F5F5F5;\n color: var(--ag-foreground-color, #F5F5F5);\n padding: 16px; }\n .ag-theme-balham-dark .ag-tooltip {\n border: none;\n background-color: #cbd0d3; }\n .ag-theme-balham-dark .ag-panel-title-bar-button-icon {\n font-size: 20px; }\n .ag-theme-balham-dark .ag-chart-data-section,\n .ag-theme-balham-dark .ag-chart-format-section {\n padding-bottom: 2px; }\n .ag-theme-balham-dark .ag-group-toolbar {\n background-color: rgba(17, 17, 17, 0.5);\n background-color: var(--ag-subheader-toolbar-background-color, rgba(17, 17, 17, 0.5)); }\n .ag-theme-balham-dark .ag-chart-tab {\n padding-top: 2px; }\n .ag-theme-balham-dark .ag-charts-format-sub-level-group-item {\n margin-bottom: 6px; }\n .ag-theme-balham-dark .ag-tooltip {\n background-color: #1c1f20; }\n\n", ""]);
53728// Exports
53729module.exports = exports;
53730
53731
53732/***/ }),
53733/* 267 */
53734/***/ (function(module, exports, __webpack_require__) {
53735
53736var api = __webpack_require__(258);
53737 var content = __webpack_require__(268);
53738
53739 content = content.__esModule ? content.default : content;
53740
53741 if (typeof content === 'string') {
53742 content = [[module.i, content, '']];
53743 }
53744
53745var options = {};
53746
53747options.insert = "head";
53748options.singleton = false;
53749
53750var update = api(content, options);
53751
53752
53753
53754module.exports = content.locals || {};
53755
53756/***/ }),
53757/* 268 */
53758/***/ (function(module, exports, __webpack_require__) {
53759
53760// Imports
53761var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53762exports = ___CSS_LOADER_API_IMPORT___(false);
53763// Module
53764exports.push([module.i, ".ag-theme-balham {\n -webkit-font-smoothing: antialiased;\n color: #000;\n color: var(--ag-foreground-color, #000);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridBalham\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABgoAAsAAAAALEgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2YfRkQU9TLzIAAANsAAAAQQAAAFZWUFLwY21hcAAAA7AAAAIMAAAFnGSNxkJnbHlmAAAFvAAADpIAABo4y6JNTGhlYWQAABRQAAAANAAAADZ2zcSBaGhlYQAAFIQAAAAaAAAAJAfQBDFobXR4AAAUoAAAABoAAAEgs7L//WxvY2EAABS8AAAAawAAAJJHu0GKbWF4cAAAFSgAAAAfAAAAIAFeAKpuYW1lAAAVSAAAATUAAAJG0OP3eXBvc3QAABaAAAABqAAAAm9qOX49eJx9lM1SE1EQhc8wAYFEoDQqRkRQ/IvKMD8Zk/CTkJBoWS5cWJYLN1hWWVZRrngOH8AnYOkT+AAufAIfwIVL15ZfdwaDLMitTO50n+4+fW7fKJA0qw3taGJv+Pyl5g72Dz+qppJGH/Of3AcHH97va/r4DV/Jf6cVlCqa00291qG+BXPBYXA0UQ1r4avwXfg5/BL+UghqReugy1TcUKyEZ6RUmRrKNaEpbDH7x2qCDnm23HpBVzXpnp76WqRmTEzfM9b1THe0QJ6u5+loG1TKspwdnkPWXc2fgch1j/wZbDaxllBkmf2WqprRHiw7MGkT38R/kZo71I6I6uLrwm4SS4t9W5fgZBElV/Wp3ugRfuvUsmRFTMo31q6/R/5WZh2jWuRpUMty12FwbG9QNSHiIdkzUFuFonVUL+NNwUTEtl1Biy6DTOCWapWd9ZnAtaI1MC/01qvuFjEd13SkQB32Y3vX8+V0ftLaJtcQ7AM4jK12PvepFWngXS2COdAnHemrvuuHfuq3/uicLlMn8R62yb5zpjbTKHga3cPb+me1XqeYgdOo/xEzdN5wdWJ8/UJDq1amM1MnZR9hTR0/C0/D92CTcx4lakRe1056krXJewz6fDGdTVbFle4zBfM+wQOfhRoTlui6ZxzNYY7WS2S03YhfzXVrku+an5upazdswd/sLth51zj/ZX4jOsxcpyd4V7BYprHlhkflsLcc6/hzWI+rGaslWGU+0TZjA78dPSrdop8Rk0S3/WYMfL7WYJAVN7XKGRr7dnFiVxwXe1TAP0FU3PDUtbOZ7sLN5mP4F/iHapMAeJxjYGSqZ5zAwMrAwFTFtIeBgaEHQjM+YDBkZAKKMrAyM2AFAWmuKQwHGHQ/GjG/AHKjmN8wsABpRpAcANz2CuAAAAB4nLXUZ1IbQRCG4VeBKIEDOeNEVkAgssjhh0+BM4UDhTPn8Nl8jz4B/ma7fQBc5al61Duzo9FMrb4F2oCCLEkR8p3kdEUur9FcNl6gOxsv8lv9Mp3kdV3hgiturHF7q9EK51xybbms97flNLvMODOsqbdHjRab7NPglDrbrLLDFge62+SIZTZY4ZAT1tnlmDN9P+2iqD2206Hf7dJOSlqxh17u84A++hlgkCGGGWGUMf3WBJNMMa15j3jME57yTPNmmGWOeRZ0XWJRpyppzwtUtcl27tb27jg/tVprc79xWt/WibcO1po67MbK4cn67vHZPyz2H1o5fRR+Re856Ym6dNrzUJMXoSUvw6a8CvvyOjTkTTiVt6Eu78K2XIRVuQw78j5syYdwIB9D+ld9Ck25CkdyHZblc9iQL2FFvoZD+RZO5HtYlx9hV36GY7kJeoCWcykvlnekWnApX1Z0KWPW5lL2rN2Raocj1U5Hql2OVLtdyqSVHKmWXXqS1uNItdeR6j2n7GBBKcKCsoE9dEoW1ueUMazfKW3YgFPusEGnBGJDTlnEhp1SiY045RMbdUoqNuaUWWzcKb3YhFOOsUmnRGNTLjvvtFPKsaC8Y0HJx4LeAVjQ2wAL2XlnHKnOOlKdc6Q670h1wZHqosvWWXLZ3iqOdL/q0vvVai6bU3cpY7bssjUbjuofQy2jW3ic7VlrkBzVde5ze2d6et7d04+Z2Z33a3deu/OWZnd79EDL7gr0YldCBqQoEnKwVhgpwsJCC7ZwBBI4JlIBdkXxq8qmoCouJ65QlC3ZKeKCpYIWhUAShCs/sBML4mAcq1LljaaVc3t6VlqhAPa/VLLT3ff07XvPPfecc8/57l2GZfCP/Q77HUZlSsx2hoEwUUXWTbieVJFkiE8jjaQlbvWAVZbUMKg9KQ0aIluETDoRt1oStYSsqObPyhk/uVKryLFMtVFvYNt6o57O0F8txgr9a7LQ0wPZNf36T/WfXnmDkP7z1DIAtodUExCGcKJKHA6kp+5a8V/wZGsBfI5o2K04vHa/J5p2qwst/Rj0cLJ7pVu2WsORITEEcJB95nqsIWS8raqnbv/6+j/6VJe1OQzLLrRYj+hUFKdP7FuluPwht+ptzToG5aTkHHL6PEKfPylFE6upqsDQ15fZLzMRhvGpXKahcjHBKDJCzCgaMcEoVGFuPH/yZH4cXEtL/dfm+xvXr1/87jLHIy+yEmPDF3OcBLxxtPDaa4WjGjl1NP/aa/mj+jIqliHbHnYPIzEDTA3bx6k5JGqaMrVDldqBK9N3iX4x7FKnX3zIFzkj/0wDLu7eMl2uVMrTW17pErunJ8ayuVx2bOJZSkAWqelvFb797cK3jCe7Z0lzg9CWNjco/dfdHvhkFmX2s36kOMaBOq0ICXo3KnLi3OzsuwcOvHPvveQu/ZNkvP38woLR/PJlfFxg32F8TIZBNgMQL0JNqGpQiZXDIAuSG9hY3E2pMK3T6NcicID6A7ba/lzplqGhW0qkUw62Z0PlEF7kIaPs17e9UvkKfPpKi5LRg/1mqBRqH8YHXuQL+PgVtix/Be65Vqbcx5eJjeG6+CiJVrZ/TEY+Why9OG64y2X8Q1kuGLIw0B0+EVsUyXI9SapXMaeDHblGCvbC1V9pOXatBKY972N3MRb0WD/D8MCpPLCNCHRig6SU6zXqiOTf9O3NnXobtLm5l77rcAQ8SmlNSfEE4AX4xjB+0P8GRufmNJcr3JsOxEuleCDVF6bse4wxCqzb9BkPw6QSQsVn3kDv51qtH2ja6VarfVbT3iLl9vyVe3Edk5OsBeVEGanfkxP6+/mf/SwPFzulOZebcT35mAQzREfpKnB4UaksRkEkFKyp46c0jm7YXI5hPfnzi7mJXHYiT4vcRPpSul43HnrPiuxEDp7QP5mqzeI3qBgNcvpZfJByPa3/mDaFkXRddxIxN55r1VJX5H6RvEjXCixZtVctRxK9eplZGebyJfZu9heMF2cSYsaZzzF/hr3p8rd0pEcvqNfYRA2EmGpVcTK+lOQmON2eWlUjFTpZyRpPZ4pAp4tuU6axvayo1K3iWF2r1sthtkJti6mhSKgOymFidur0iYCihklDxYBT0qgCJdkDboI6HWSxu8Lu5XbfY9HXZRqNDKlnGmPf01fBMQKsxXue6Nt5MSx5Vclrt7j8MZ+a9Nldth6b5FH7nGpUsRKb2/4XYlwJCS4v77ZxNo9TUByiV+oVxIgi+gWb3cX1WDxh0eqwiKLDJdpHclnCEpvDZiE1wtk9TiupsGAXbeTnts8csZBlmUuvGsIcO3fpOHvfGwFeaD/+j85I2GcTe6MpOV5LS30ZkffYXbJULUdzit9v97g9gQHF40iJDrcjIDhV0S3YrJwvVkz5XLJf9todHtHn4h08y3EWzhf64x+c5h1WO+eyW/jXeY+Nd/PzHt7uFamp/992/3tttzR3m5igQnxm7oabOrkb5joxbYmdJz7Sxg2avKv1SlmJQItQkymy5AHEaGjXeHoQOOoE6Vr1w01T2LqW5yySR/B5R1bY3VaXzeOT10057bwoiT23bunhBaz5MKXOfXaP2+VQvD7/Jz7hES0Wr1MI7f2sRxbdPG998JDVZhU8IvN/ZI5L8gqmPo4HcgKTif4+eMk/0eziBS82sRi55Wm2iZllOXMTM81sw/b1RgXhdwdF08juhkwHOzcMlIZhXnWDBwywTV+tRkKqNkCDFhQJ9ql31juXMlZtpdwCY1Un4hwktt8l3v7M55MuQewNRtOj+Ym1z26cumFjyevjHQ6vN98ayWtDN6mQ3rh+x523K1Jfc2Jk13AeHh5aq0L4wBNfW5toTgzf2czp88HcjbnBTD6YHc8OZsivSiy77pFb++LhbF8sgIxToiSXmpt7i5JfDsujudH8U5Fba2SrNirJYau9Lze8a3iiqf9ddGuNjN89ysbjWDMy0TzfP4gcg/nMYA6LK7n+aTbB9DJFZhg1ZexQTBVZr1YP7jVUN+lqp6MRrtxxlSJgUFOpJhD3hIAGQUQ90F7Ux9q9n/r0/q0byqYuWn89Azd98e6IqYuNn09QBYw3dzSbOw7sWL58xz9kx6fGs8aDTSxOfl0y4fasaG4xJz69q6dFRmfWdCYeCt67ns42shxZdPj8PWQpkyzpFNR1TGxTwP0Yokgw5xkCrlE3J5sehZhFMvdccqPWcQ1cOgUY8K9q+G2nAQhw/vqqwADZ1z5rMyh0kc5XciEzFBoeCvLOP3xsen/TYQuURsNDyTUtgQ+WRkNDqSODU9iiWQrygikPWTD8me96tEVICOQ3plfrv6ctOraiO+Ei4+zMgby3iM98OJte3DElDGw8yDCNRK2iXnWnPuJ9wcByVxDd9V8WZjt/LbPUzBLFsS3Z59ZwzY0yK5k1Rgz6rXa8PpTGgpg9dU35O+5tT83OwkH9JViuH1uknEhd1Cfhud9tO9v+d03TWubNMB+wYQftUpRMcibi/WdN66Le9n+iBbt+uJ/tRc0J1O4IaKnpWbWRwdlieMy04Jh+sHVcPw/p+fnSLLyth2dL5HHttHYc0pDWz8+X0QLlLq99iKOzzBbDp1GtHCoYwxvVar0FtXSmhH7uBnTpMDSwRqOhzxc3WmEljXZF8wPtLeEHrC4Z697gkiB+3GvEeu32vpnQLf3JKmdVAqKTFVPePo/bm8gdXp6NzBT8ITW7K3tzaM+g2qfmwjbgUgHZIdIuuQaokggOVky4+yS7Y3UxnSVreKeld9NAOrQn5HO5RtOJsaDIJlJiUs7sHColc72qJ7qn+PBwMQJ8FLl+YXgoGuYdlsiugopcfW7P+mKoJhl9Yr7kHYXSep+364+Pso9+YI0w1KMoprfgbXgX3g3znUMaPVS7Zy4/By/k5/IQWFhozy8srEWabMNaXCnbFiJI4JUvowdswxKvuWcWrvhCm7QRWbpwtx2hzsClBgF3Eo1fsG+O7d+4H/7WLOfOs7T8aqcw90MF8mp3rw7oCd0fW2h/CaONeUOghbZvdW0fx/htjGcOZA4Lr/YYA/1JZ7z/eLMHi33wozfZsX2b9pt9n8V9XscHuwgKXbdzEALNx4pvnS8+thL+aiVSbw0+Bhseyp09m3sIzrTn4UyHphga+RxhDzIKRp8G02LWMlPIj7qaqhhul0kb3tXQiEpfOavphxh0qW9hK1qZQcTBg2KE20FATAJGp3pDNYK02kjDwh2bN+61O7Ppmyeev/WO1aMrCElF73505YbxG27j+VR607oz66azCZtt69jkU1Grdf3oqslqKQOH9F9WZgayCFHOrFrerx9NOvzBenMTr1XLsiJejrCfIdXS09vuvG3DslpKVlrLvjq1ZXLlznqL5LNf3DB98/pizpItbJ6Y3vh4rvDy6MTYbDzJWYIK3K8/5e1NpavN4VdIWNGPtk6sXD1QsGjsQP+INnzZvngGM8Pej97Xz4ygZoyDIuPwSE588KAgwZUVujmo1iGG4Euo1odBjtUoOBMkK9nndAcimyMBt3M2vjyOF1zslAtCIBAPBMChO4PJZLAFB7VgKsWGRMnvFkW3XxKxkT5pdnoOH4I/6ser/fVUAJ4LJmdnk0F9MpBajE+HDZmbKHEXIdXRCFhQY3E0QdIwg4uJ5tEIcGmcEnSs11CVioGhYOMJID0WPtQcbOx0N0NRCMsr1vwB5lBWkgvqkxge/8XHO23eU/X+sgBBm0rARp6w4VbALXpfhwdOIGLwOPsdvGNHcTQs62/3TTvvtFoCtdyQ6sDu5Eter8+tnHKzbK/+r1Yp46+KT2Iw52zi64z9qrwURe2vZMYM77yN2cHs/h9yU0xQjINVC01PEYQxndUgI9DhEp0jScVQRkpSK7WMlavUGllARVQwscoV6tEpa4KTK410Qq58WOKCQ+2XfvkeZhW+bQPMMVH4vj0/PZXns2P9B/j89HTeviJZDoah/TIcvh9gtlVdi5nuUAvOHKLtURfLsw/+aNmND35oKrvUftnKY/P3zgpeHAzuB4/BnL+n/8Yc4fNTOA7gdkvJhseWPfDDydqDv6mntrcOH47ThAdweBYeWPQJeu5Fzz/N008v9YIoVYf3mtPPuLG5oF/g4iMH9q2+4YbV+w6At0s9cnD3zubISHPn7veQGB5Ggr1AP+jvL22sLWlDiZHumurKov1W0lxzNmu0+bgiwnevc+r6seXWJ6eX9qTMrsUCFD9gwMdkpCIowGieYffp54+39INwrHW8NKuH4e3Z0vw8IorzxykaOE5hwPy8yYeeT7swEjO4z0Mcae77BEs3urP+9vO3lOJkPF7SvzfTPHeuOTOFrH4CSf0n9BQQkn0zw+fODc/AycXzeAs5aZzj0QMKtkd/34AyZDeFp0gw17YDemaGeCzfga1HOuVimxe6Z4IqttFP/CVu0VeRJ5AoPAyrFnkViESt7EMdnDaSnk9bjKV72Rm0ew7xJeOLI5BEtI6Zhm7GMLJiPvEhpgkTBDMZ7goGygBFO6qxtOk/Uzq0cW7zNCFJQv4Ulr1LLAalz71LvEU1pGz6/Z1JraAl7sr6Y5xNDmoF+MbAuhBWCYXA4GZRECJIR6JWpXfnMnYPdraQU/rcO8gQrOQUNN4l+n0IX7B9xGDk7PUW+5KTvchoMmrwUVhLOd+/Ffm0Iptv7y8N4wz/G4A9L1cAAHicY2BkYGAAYgWvvDnx/DZfGbiZXwAFojgf72uA0f/////D/IL5DVAlBwMTkGQAAHb/DvN4nGNgZGBgfsHAACL//wezGRlQgQcAdFMFCgAAeJxjYGBgYH6BDf//j8C41AwspgcAANyGMDUAAHicY2AAghkMFxieMTowRjEuYXzFpMEUxVTD1Md0g+kT8wWWdSxHWM1YV7DuYQtgO8EuwK7FXsL+iYOHw4hjD8cPTjFOA04/ziIuJq4YrgPcadxreIR4zHgSeEp42nhm8azglSEdAgCdlRu1AHicY2BkYGDwYJjHwMMAAkxAzAWEDAz/wXwGACBkAgkAeJx1jz9OwzAYxV9oWkSLEBISYsMTC1L6Z2Do2KHZO3RgcxsnbZXEkeNW6sYxOAHHYOQInIJD8BK+oUKqLTk///zeJwXALb4QoFkBrtuzWRe45O2PO6Q74ZD8KNzFAM/CPfoX4T7tTHjAZsEJQXhF84A34Qvc4F24Q/8hHJI/hbu4x7dwj/5HuI9lEAoP8BS86ix222Sm840uFibb59qdqlNeGldvbanG0ehUx6Y0TnuTqNVR1Yds4n2qUmcLNbelN3luVeXszqx9tPG+mg6HqfhobQtoZIjhsEXCP9fIseFZYAHDlz3vmq/nUuf8km2Hmt6ihMIYEUZn0zHTZdvQ8PwmbKxw5FnjwM6E1iPlPWXGsqEwbyc36Zzb0lTt245mTR9xdtOqMMWQO/2Xj5jipF9al2jJAAAAeJxtkQdv2zAQhf3Fku3YaeO6bbr3Hmrr7p3upj+DpmiZiEQKJOWRX18iLgIE6AE8vPdwvHu4a2201tFv/T/22KBNQkqHLj026TNgixOcZJshpxhxmjOcZYdznOcCF7nEZa5wlWtc5wY3ucVt7nCXe9znAQ95xGMynvCUZ4x5zgte8orXvOEt73jPBz7yic/s8oWvfOM7P/jJL36zx5/WQBSFU4UI2pqOcM4ufFt42ZHCSFWmciZcGMqZkvsTu8wOgcp3jgRtchWUq7QRQY2O5Mb8q9yStrQuq3UkrhtJUxnfl9YEJ2RQeSJtvUqls963pZ+n8WXjJFdepmoZDXQPczbuqWUt4qx8U61U5kvhZ+2IOlNdxvHpVDsfksLpOi2cbeokFoSkVNPQKbWJPrqlFbk2Ra8SS13pA5VUyjS96HvNjDVqYGzIRFnahcrTOjZQ7VqbtNZzG4YufrfZpAnBmsxOp9vHBZM6XcxC4sVc9X0Vu2S5XZjeGkZDIW5gFJxSx1fWa8zaIIIChyKgsRgWeCQlM/aZsIwnzqloqFkxZ8pBq/UXq/Gj5g==\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-balham .ag-icon {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-balham .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-balham .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-balham .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-balham .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-balham .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-balham .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-balham .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-balham .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-balham .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-balham .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-balham .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-balham .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-balham .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-balham .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-balham .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-balham .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-balham .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-balham .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-balham .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-balham .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-balham .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-balham .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-balham .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-balham .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-balham .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-balham .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-balham .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-balham .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-balham .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-balham .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-balham .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-balham .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-balham .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-balham .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-balham .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-balham .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-balham .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-balham .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-balham .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-balham .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-balham .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-balham .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-balham .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-balham .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-balham .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-balham .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-balham .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-balham .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-balham .ag-root-wrapper {\n background-color: white;\n background-color: var(--ag-background-color, white); }\n .ag-theme-balham [class^='ag-'], .ag-theme-balham [class^='ag-']:focus, .ag-theme-balham [class^='ag-']:after, .ag-theme-balham [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-balham [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-balham .ag-checkbox .ag-input-wrapper,\n .ag-theme-balham .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-balham .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-balham .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-balham .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 4px; }\n .ag-theme-balham input[class^='ag-'] {\n margin: 0;\n background-color: white;\n background-color: var(--ag-background-color, white); }\n .ag-theme-balham textarea[class^='ag-'],\n .ag-theme-balham select[class^='ag-'] {\n background-color: white;\n background-color: var(--ag-background-color, white); }\n .ag-theme-balham input[class^='ag-']:not([type]),\n .ag-theme-balham input[class^='ag-'][type='text'],\n .ag-theme-balham input[class^='ag-'][type='number'],\n .ag-theme-balham input[class^='ag-'][type='tel'],\n .ag-theme-balham input[class^='ag-'][type='date'],\n .ag-theme-balham input[class^='ag-'][type='datetime-local'],\n .ag-theme-balham textarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #95a5a6;\n border-color: var(--ag-input-border-color, #95a5a6); }\n .ag-theme-balham input[class^='ag-']:not([type]):disabled,\n .ag-theme-balham input[class^='ag-'][type='text']:disabled,\n .ag-theme-balham input[class^='ag-'][type='number']:disabled,\n .ag-theme-balham input[class^='ag-'][type='tel']:disabled,\n .ag-theme-balham input[class^='ag-'][type='date']:disabled,\n .ag-theme-balham input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-balham textarea[class^='ag-']:disabled {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n background-color: #ebebeb;\n background-color: var(--ag-input-disabled-background-color, #ebebeb);\n border-color: rgba(149, 165, 166, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(149, 165, 166, 0.3)); }\n .ag-theme-balham input[class^='ag-']:not([type]):focus,\n .ag-theme-balham input[class^='ag-'][type='text']:focus,\n .ag-theme-balham input[class^='ag-'][type='number']:focus,\n .ag-theme-balham input[class^='ag-'][type='tel']:focus,\n .ag-theme-balham input[class^='ag-'][type='date']:focus,\n .ag-theme-balham input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-balham textarea[class^='ag-']:focus {\n outline: none;\n box-shadow: 0 0 2px 1px #719ECE;\n border-color: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-balham input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-balham input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-balham input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-balham input[class^='ag-'][type='button']:focus, .ag-theme-balham button[class^='ag-']:focus {\n box-shadow: 0 0 2px 1px #719ECE; }\n .ag-theme-balham .ag-drag-handle {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-list-item, .ag-theme-balham .ag-virtual-list-item {\n height: 24px; }\n .ag-theme-balham .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-select-list {\n background-color: white;\n background-color: var(--ag-background-color, white);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-balham .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-balham .ag-list-item.ag-active-item {\n background-color: #ecf0f1;\n background-color: var(--ag-row-hover-color, #ecf0f1); }\n .ag-theme-balham .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 .ag-theme-balham .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-balham .ag-select .ag-picker-field-wrapper {\n background-color: white;\n background-color: var(--ag-background-color, white);\n min-height: 24px;\n cursor: default; }\n .ag-theme-balham .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-balham .ag-select:not(.ag-cell-editor) {\n height: 24px; }\n .ag-theme-balham .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-balham .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-balham .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham .ag-rich-select {\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7); }\n .ag-theme-balham .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 182px; }\n .ag-theme-balham .ag-rich-select-value {\n padding: 0 4px 0 12px;\n height: 28px;\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 24px; }\n .ag-theme-balham .ag-rich-select-virtual-list-item:hover {\n background-color: #ecf0f1;\n background-color: var(--ag-row-hover-color, #ecf0f1); }\n .ag-theme-balham .ag-rich-select-row {\n padding-left: 12px; }\n .ag-theme-balham .ag-rich-select-row-selected {\n background-color: #b7e4ff;\n background-color: var(--ag-selected-row-background-color, #b7e4ff); }\n .ag-theme-balham .ag-row-drag,\n .ag-theme-balham .ag-selection-checkbox,\n .ag-theme-balham .ag-group-expanded,\n .ag-theme-balham .ag-group-contracted {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-ltr .ag-row-drag, .ag-theme-balham .ag-ltr .ag-selection-checkbox, .ag-theme-balham .ag-ltr .ag-group-expanded, .ag-theme-balham .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-balham .ag-rtl .ag-row-drag, .ag-theme-balham .ag-rtl .ag-selection-checkbox, .ag-theme-balham .ag-rtl .ag-group-expanded, .ag-theme-balham .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-balham .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 26px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-balham .ag-group-expanded,\n .ag-theme-balham .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-balham .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-balham .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-balham .ag-group-title-bar {\n background-color: #e2e9eb;\n background-color: var(--ag-subheader-background-color, #e2e9eb);\n padding: 4px; }\n .ag-theme-balham .ag-group-toolbar {\n padding: 4px; }\n .ag-theme-balham .ag-disabled-group-title-bar, .ag-theme-balham .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-balham .group-item {\n margin: 2px 0; }\n .ag-theme-balham .ag-label {\n white-space: nowrap; }\n .ag-theme-balham .ag-ltr .ag-label {\n margin-right: 4px; }\n .ag-theme-balham .ag-rtl .ag-label {\n margin-left: 4px; }\n .ag-theme-balham .ag-label-align-top .ag-label {\n margin-bottom: 2px; }\n .ag-theme-balham .ag-ltr .ag-slider-field, .ag-theme-balham .ag-ltr .ag-angle-select-field {\n margin-right: 8px; }\n .ag-theme-balham .ag-rtl .ag-slider-field, .ag-theme-balham .ag-rtl .ag-angle-select-field {\n margin-left: 8px; }\n .ag-theme-balham .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background-color: white;\n background-color: var(--ag-background-color, white); }\n .ag-theme-balham .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: rgba(0, 0, 0, 0.54);\n background-color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n border-radius: 5px; }\n .ag-theme-balham .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 2px 1px #719ECE; }\n .ag-theme-balham .ag-picker-field-button {\n background-color: white;\n background-color: var(--ag-background-color, white);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-balham .ag-color-picker .ag-picker-field-display {\n height: 16px; }\n .ag-theme-balham .ag-color-panel {\n padding: 4px; }\n .ag-theme-balham .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-balham .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-balham .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-balham .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-balham .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 .ag-theme-balham .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-balham .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-balham .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-balham .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-balham .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-balham .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-balham .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-balham.ag-dnd-ghost {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background: white;\n background: var(--ag-background-color, white);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7));\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));\n height: 32px !important;\n line-height: 32px;\n margin: 0;\n padding: 0 8px;\n -webkit-transform: translateY(8px);\n transform: translateY(8px); }\n .ag-theme-balham .ag-dnd-ghost-icon {\n margin-right: 4px;\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-balham .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-balham .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-balham .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-balham .ag-dialog {\n border-radius: 2px;\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-panel {\n background-color: white;\n background-color: var(--ag-background-color, white); }\n .ag-theme-balham .ag-panel-title-bar {\n background-color: #f5f7f7;\n background-color: var(--ag-header-background-color, #f5f7f7);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)));\n height: 32px;\n padding: 4px 12px;\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-panel-title-bar-button {\n margin-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-panel-title-bar-button {\n margin-right: 4px; }\n .ag-theme-balham .ag-tooltip {\n background-color: #f5f7f7;\n background-color: var(--ag-header-background-color, #f5f7f7);\n color: #000;\n color: var(--ag-foreground-color, #000);\n padding: 4px;\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n border-radius: 2px;\n transition: opacity 1s; }\n .ag-theme-balham .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-1 {\n padding-left: 20px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-1 {\n padding-right: 20px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-2 {\n padding-left: 40px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-2 {\n padding-right: 40px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-3 {\n padding-left: 60px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-3 {\n padding-right: 60px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-4 {\n padding-left: 80px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-4 {\n padding-right: 80px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-5 {\n padding-left: 100px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-5 {\n padding-right: 100px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-6 {\n padding-left: 120px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-6 {\n padding-right: 120px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-7 {\n padding-left: 140px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-7 {\n padding-right: 140px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-8 {\n padding-left: 160px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-8 {\n padding-right: 160px; }\n .ag-theme-balham .ag-ltr .ag-column-select-indent-9 {\n padding-left: 180px; }\n .ag-theme-balham .ag-rtl .ag-column-select-indent-9 {\n padding-right: 180px; }\n .ag-theme-balham .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-balham .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-balham .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 6px; }\n .ag-theme-balham .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-balham .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 6px; }\n .ag-theme-balham .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-column-select-column-group:not(:last-child),\n .ag-theme-balham .ag-column-select-column:not(:last-child) {\n margin-bottom: 4px; }\n .ag-theme-balham .ag-column-select-column-readonly,\n .ag-theme-balham .ag-column-select-column-group-readonly {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n pointer-events: none; }\n .ag-theme-balham .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 24px; }\n .ag-theme-balham .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 24px; }\n .ag-theme-balham .ag-column-select-virtual-list-viewport {\n padding: 3px 0px; }\n .ag-theme-balham .ag-column-select-virtual-list-item {\n margin: 0 6px; }\n .ag-theme-balham .ag-rtl {\n text-align: right; }\n .ag-theme-balham .ag-root-wrapper {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 40px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 40px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-1 {\n padding-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-1 {\n padding-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 68px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 68px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-2 {\n padding-left: 56px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-2 {\n padding-right: 56px; }\n .ag-theme-balham .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 96px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 96px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-balham .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 124px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 124px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-4 {\n padding-left: 112px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-4 {\n padding-right: 112px; }\n .ag-theme-balham .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 152px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 152px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-5 {\n padding-left: 140px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-5 {\n padding-right: 140px; }\n .ag-theme-balham .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 180px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 180px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-6 {\n padding-left: 168px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-6 {\n padding-right: 168px; }\n .ag-theme-balham .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 208px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 208px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-7 {\n padding-left: 196px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-7 {\n padding-right: 196px; }\n .ag-theme-balham .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 236px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 236px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-8 {\n padding-left: 224px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-8 {\n padding-right: 224px; }\n .ag-theme-balham .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 264px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 264px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-9 {\n padding-left: 252px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-9 {\n padding-right: 252px; }\n .ag-theme-balham .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 292px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 292px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-10 {\n padding-left: 280px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-10 {\n padding-right: 280px; }\n .ag-theme-balham .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 320px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 320px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-11 {\n padding-left: 308px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-11 {\n padding-right: 308px; }\n .ag-theme-balham .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 348px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 348px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-12 {\n padding-left: 336px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-12 {\n padding-right: 336px; }\n .ag-theme-balham .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 376px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 376px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-13 {\n padding-left: 364px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-13 {\n padding-right: 364px; }\n .ag-theme-balham .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 404px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 404px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-14 {\n padding-left: 392px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-14 {\n padding-right: 392px; }\n .ag-theme-balham .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 432px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 432px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-15 {\n padding-left: 420px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-15 {\n padding-right: 420px; }\n .ag-theme-balham .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 460px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 460px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-16 {\n padding-left: 448px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-16 {\n padding-right: 448px; }\n .ag-theme-balham .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 488px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 488px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-17 {\n padding-left: 476px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-17 {\n padding-right: 476px; }\n .ag-theme-balham .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 516px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 516px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-18 {\n padding-left: 504px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-18 {\n padding-right: 504px; }\n .ag-theme-balham .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 544px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 544px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-19 {\n padding-left: 532px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-19 {\n padding-right: 532px; }\n .ag-theme-balham .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 572px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 572px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-20 {\n padding-left: 560px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-20 {\n padding-right: 560px; }\n .ag-theme-balham .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 600px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 600px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-21 {\n padding-left: 588px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-21 {\n padding-right: 588px; }\n .ag-theme-balham .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 628px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 628px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-22 {\n padding-left: 616px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-22 {\n padding-right: 616px; }\n .ag-theme-balham .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 656px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 656px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-23 {\n padding-left: 644px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-23 {\n padding-right: 644px; }\n .ag-theme-balham .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 684px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 684px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-24 {\n padding-left: 672px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-24 {\n padding-right: 672px; }\n .ag-theme-balham .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 712px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 712px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-25 {\n padding-left: 700px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-25 {\n padding-right: 700px; }\n .ag-theme-balham .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 740px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 740px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-26 {\n padding-left: 728px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-26 {\n padding-right: 728px; }\n .ag-theme-balham .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 768px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 768px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-27 {\n padding-left: 756px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-27 {\n padding-right: 756px; }\n .ag-theme-balham .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 796px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 796px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-28 {\n padding-left: 784px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-28 {\n padding-right: 784px; }\n .ag-theme-balham .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 824px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 824px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-29 {\n padding-left: 812px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-29 {\n padding-right: 812px; }\n .ag-theme-balham .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 852px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 852px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-30 {\n padding-left: 840px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-30 {\n padding-right: 840px; }\n .ag-theme-balham .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 880px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 880px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-31 {\n padding-left: 868px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-31 {\n padding-right: 868px; }\n .ag-theme-balham .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 908px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 908px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-32 {\n padding-left: 896px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-32 {\n padding-right: 896px; }\n .ag-theme-balham .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 936px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 936px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-33 {\n padding-left: 924px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-33 {\n padding-right: 924px; }\n .ag-theme-balham .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 964px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 964px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-34 {\n padding-left: 952px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-34 {\n padding-right: 952px; }\n .ag-theme-balham .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 992px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 992px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-35 {\n padding-left: 980px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-35 {\n padding-right: 980px; }\n .ag-theme-balham .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 1020px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 1020px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-36 {\n padding-left: 1008px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-36 {\n padding-right: 1008px; }\n .ag-theme-balham .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 1048px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 1048px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-37 {\n padding-left: 1036px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-37 {\n padding-right: 1036px; }\n .ag-theme-balham .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 1076px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 1076px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-38 {\n padding-left: 1064px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-38 {\n padding-right: 1064px; }\n .ag-theme-balham .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 1104px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 1104px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-39 {\n padding-left: 1092px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-39 {\n padding-right: 1092px; }\n .ag-theme-balham .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 1132px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 1132px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-40 {\n padding-left: 1120px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-40 {\n padding-right: 1120px; }\n .ag-theme-balham .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 1160px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 1160px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-41 {\n padding-left: 1148px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-41 {\n padding-right: 1148px; }\n .ag-theme-balham .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1188px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1188px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1176px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1176px; }\n .ag-theme-balham .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1216px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1216px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1204px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1204px; }\n .ag-theme-balham .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1244px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1244px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1232px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1232px; }\n .ag-theme-balham .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1272px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1272px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1260px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1260px; }\n .ag-theme-balham .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1300px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1300px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1288px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1288px; }\n .ag-theme-balham .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1328px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1328px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1316px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1316px; }\n .ag-theme-balham .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1356px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1356px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1344px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1344px; }\n .ag-theme-balham .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1384px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1384px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1372px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1372px; }\n .ag-theme-balham .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1412px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1412px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1400px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1400px; }\n .ag-theme-balham .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1440px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1440px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1428px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1428px; }\n .ag-theme-balham .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1468px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1468px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1456px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1456px; }\n .ag-theme-balham .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1496px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1496px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1484px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1484px; }\n .ag-theme-balham .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1524px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1524px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1512px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1512px; }\n .ag-theme-balham .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1552px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1552px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1540px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1540px; }\n .ag-theme-balham .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1580px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1580px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1568px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1568px; }\n .ag-theme-balham .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1608px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1608px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1596px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1596px; }\n .ag-theme-balham .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1636px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1636px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1624px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1624px; }\n .ag-theme-balham .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1664px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1664px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1652px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1652px; }\n .ag-theme-balham .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1692px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1692px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1680px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1680px; }\n .ag-theme-balham .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1720px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1720px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1708px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1708px; }\n .ag-theme-balham .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1748px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1748px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1736px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1736px; }\n .ag-theme-balham .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1776px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1776px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1764px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1764px; }\n .ag-theme-balham .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1804px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1804px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1792px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1792px; }\n .ag-theme-balham .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1832px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1832px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1820px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1820px; }\n .ag-theme-balham .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1860px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1860px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1848px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1848px; }\n .ag-theme-balham .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1888px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1888px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1876px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1876px; }\n .ag-theme-balham .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1916px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1916px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1904px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1904px; }\n .ag-theme-balham .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1944px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1944px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1932px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1932px; }\n .ag-theme-balham .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1972px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1972px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1960px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1960px; }\n .ag-theme-balham .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 2000px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 2000px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1988px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1988px; }\n .ag-theme-balham .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 2028px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 2028px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-72 {\n padding-left: 2016px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-72 {\n padding-right: 2016px; }\n .ag-theme-balham .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 2056px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 2056px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-73 {\n padding-left: 2044px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-73 {\n padding-right: 2044px; }\n .ag-theme-balham .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 2084px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 2084px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-74 {\n padding-left: 2072px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-74 {\n padding-right: 2072px; }\n .ag-theme-balham .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 2112px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 2112px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-75 {\n padding-left: 2100px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-75 {\n padding-right: 2100px; }\n .ag-theme-balham .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 2140px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 2140px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-76 {\n padding-left: 2128px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-76 {\n padding-right: 2128px; }\n .ag-theme-balham .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 2168px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 2168px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-77 {\n padding-left: 2156px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-77 {\n padding-right: 2156px; }\n .ag-theme-balham .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 2196px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 2196px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-78 {\n padding-left: 2184px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-78 {\n padding-right: 2184px; }\n .ag-theme-balham .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 2224px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 2224px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-79 {\n padding-left: 2212px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-79 {\n padding-right: 2212px; }\n .ag-theme-balham .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 2252px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 2252px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-80 {\n padding-left: 2240px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-80 {\n padding-right: 2240px; }\n .ag-theme-balham .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 2280px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 2280px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-81 {\n padding-left: 2268px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-81 {\n padding-right: 2268px; }\n .ag-theme-balham .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 2308px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 2308px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-82 {\n padding-left: 2296px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-82 {\n padding-right: 2296px; }\n .ag-theme-balham .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2336px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2336px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-83 {\n padding-left: 2324px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-83 {\n padding-right: 2324px; }\n .ag-theme-balham .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2364px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2364px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2352px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2352px; }\n .ag-theme-balham .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2392px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2392px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2380px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2380px; }\n .ag-theme-balham .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2420px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2420px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2408px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2408px; }\n .ag-theme-balham .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2448px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2448px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2436px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2436px; }\n .ag-theme-balham .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2476px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2476px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2464px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2464px; }\n .ag-theme-balham .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2504px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2504px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2492px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2492px; }\n .ag-theme-balham .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2532px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2532px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2520px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2520px; }\n .ag-theme-balham .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2560px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2560px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2548px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2548px; }\n .ag-theme-balham .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2588px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2588px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2576px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2576px; }\n .ag-theme-balham .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2616px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2616px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2604px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2604px; }\n .ag-theme-balham .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2644px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2644px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2632px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2632px; }\n .ag-theme-balham .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2672px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2672px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2660px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2660px; }\n .ag-theme-balham .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2700px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2700px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2688px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2688px; }\n .ag-theme-balham .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2728px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2728px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2716px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2716px; }\n .ag-theme-balham .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2756px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2756px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2744px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2744px; }\n .ag-theme-balham .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2784px; }\n .ag-theme-balham .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2784px; }\n .ag-theme-balham .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2772px; }\n .ag-theme-balham .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2772px; }\n .ag-theme-balham .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 28px; }\n .ag-theme-balham .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 28px; }\n .ag-theme-balham .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 28px; }\n .ag-theme-balham .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-balham .ag-value-change-delta-up {\n color: #43a047;\n color: var(--ag-value-change-delta-up-color, #43a047); }\n .ag-theme-balham .ag-value-change-delta-down {\n color: #e53935;\n color: var(--ag-value-change-delta-down-color, #e53935); }\n .ag-theme-balham .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 .ag-theme-balham .ag-value-change-value-highlight {\n background-color: rgba(22, 160, 133, 0.5);\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5));\n transition: background-color 0.1s; }\n .ag-theme-balham .ag-cell-data-changed {\n background-color: rgba(22, 160, 133, 0.5) !important;\n background-color: var(--ag-value-change-value-highlight-background-color, rgba(22, 160, 133, 0.5)) !important; }\n .ag-theme-balham .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-balham .ag-cell-highlight {\n background-color: #0091ea !important;\n background-color: var(--ag-range-selection-highlight-color, var(--ag-balham-active-color, #0091ea)) !important; }\n .ag-theme-balham .ag-row {\n height: 28px;\n background-color: white;\n background-color: var(--ag-background-color, white);\n color: #000;\n color: var(--ag-data-color, var(--ag-foreground-color, #000));\n border-width: 1px;\n border-color: #d9dcde;\n border-color: var(--ag-row-border-color, #d9dcde);\n border-bottom-style: solid; }\n .ag-theme-balham .ag-row-highlight-above::after, .ag-theme-balham .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #0091ea;\n background-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea));\n left: 1px; }\n .ag-theme-balham .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-balham .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-balham .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-balham .ag-row-odd {\n background-color: #fcfdfe;\n background-color: var(--ag-odd-row-background-color, #fcfdfe); }\n .ag-theme-balham .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-row-hover {\n background-color: #ecf0f1;\n background-color: var(--ag-row-hover-color, #ecf0f1); }\n .ag-theme-balham .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-balham .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-balham .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-balham .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-balham .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-balham .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-balham .ag-cell, .ag-theme-balham .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 26px;\n padding-left: 11px;\n padding-right: 11px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-balham .ag-row > .ag-cell-wrapper {\n padding-left: 11px;\n padding-right: 11px; }\n .ag-theme-balham .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-balham .ag-cell-inline-editing {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background: white;\n background: var(--ag-background-color, white);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n padding: 0;\n height: 28px;\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7); }\n .ag-theme-balham .ag-popup-editor {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background: white;\n background: var(--ag-background-color, white);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7);\n padding: 0; }\n .ag-theme-balham .ag-large-text-input {\n height: auto;\n padding: 12px; }\n .ag-theme-balham .ag-details-row {\n padding: 20px;\n background-color: white;\n background-color: var(--ag-background-color, white); }\n .ag-theme-balham .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-balham .ag-layout-auto-height .ag-center-cols-container, .ag-theme-balham .ag-layout-print .ag-center-cols-clipper, .ag-theme-balham .ag-layout-print .ag-center-cols-container {\n min-height: 50px; }\n .ag-theme-balham .ag-overlay-loading-wrapper {\n background-color: rgba(255, 255, 255, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66)); }\n .ag-theme-balham .ag-overlay-loading-center {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background: white;\n background: var(--ag-background-color, white);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px; }\n .ag-theme-balham .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-balham .ag-loading {\n padding-left: 12px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-balham .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-balham .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-balham .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-cell {\n border-right: solid transparent; }\n .ag-theme-balham .ag-rtl .ag-cell {\n border-left: solid transparent; }\n .ag-theme-balham .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-balham .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-balham .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-row-selected {\n background-color: #b7e4ff;\n background-color: var(--ag-selected-row-background-color, #b7e4ff); }\n .ag-theme-balham .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-balham .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(0, 145, 234, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(0, 145, 234, 0.2)); }\n .ag-theme-balham .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-balham .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-balham .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-balham .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-balham .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-balham .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: rgba(0, 145, 234, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(0, 145, 234, 0.2))); }\n .ag-theme-balham .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-balham .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(0, 145, 234, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(0, 145, 234, 0.36)); }\n .ag-theme-balham .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-balham .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(0, 145, 234, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(0, 145, 234, 0.488)); }\n .ag-theme-balham .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-balham .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(0, 145, 234, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(0, 145, 234, 0.5904)); }\n .ag-theme-balham .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #0091ea;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #0091ea;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #0091ea;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #0091ea;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-balham .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-balham .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-balham .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-balham .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-balham .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-balham .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #0091ea;\n border-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea));\n outline: initial; }\n .ag-theme-balham .ag-cell.ag-selection-fill-top,\n .ag-theme-balham .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #0091ea;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-balham .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #0091ea;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-balham .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #0091ea;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-cell.ag-selection-fill-bottom,\n .ag-theme-balham .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #0091ea;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-balham .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #0091ea;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-balham .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #0091ea;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-fill-handle, .ag-theme-balham .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #0091ea;\n background-color: var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham .ag-ltr .ag-fill-handle, .ag-theme-balham .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-balham .ag-rtl .ag-fill-handle, .ag-theme-balham .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-balham .ag-fill-handle {\n cursor: cell; }\n .ag-theme-balham .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-balham .ag-cell-inline-editing {\n border-color: #719ECE !important;\n border-color: var(--ag-input-focus-border-color, #719ECE) !important; }\n .ag-theme-balham .ag-menu {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background: white;\n background: var(--ag-background-color, white);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n padding: 0; }\n .ag-theme-balham .ag-menu-list {\n cursor: default;\n padding: 4px 0; }\n .ag-theme-balham .ag-menu-separator {\n height: 9px; }\n .ag-theme-balham .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-menu-option-active, .ag-theme-balham .ag-compact-menu-option-active {\n background-color: #ecf0f1;\n background-color: var(--ag-row-hover-color, #ecf0f1); }\n .ag-theme-balham .ag-menu-option-part, .ag-theme-balham .ag-compact-menu-option-part {\n line-height: 16px;\n padding: 6px 0; }\n .ag-theme-balham .ag-menu-option-disabled, .ag-theme-balham .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-balham .ag-menu-option-icon, .ag-theme-balham .ag-compact-menu-option-icon {\n width: 16px; }\n .ag-theme-balham .ag-ltr .ag-menu-option-icon, .ag-theme-balham .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 8px; }\n .ag-theme-balham .ag-rtl .ag-menu-option-icon, .ag-theme-balham .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 8px; }\n .ag-theme-balham .ag-menu-option-text, .ag-theme-balham .ag-compact-menu-option-text {\n padding-left: 8px;\n padding-right: 8px; }\n .ag-theme-balham .ag-ltr .ag-menu-option-shortcut, .ag-theme-balham .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 4px; }\n .ag-theme-balham .ag-rtl .ag-menu-option-shortcut, .ag-theme-balham .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 4px; }\n .ag-theme-balham .ag-menu-option-popup-pointer, .ag-theme-balham .ag-compact-menu-option-popup-pointer {\n padding-right: 4px; }\n .ag-theme-balham .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-balham .ag-tab {\n border-bottom: 0 solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .ag-theme-balham .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-tab-selected {\n border-bottom-color: #0091ea;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-menu-header {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-balham .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 8px; }\n .ag-theme-balham .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 8px; }\n .ag-theme-balham .ag-set-filter-select-all {\n padding-top: 6px; }\n .ag-theme-balham .ag-set-filter-list, .ag-theme-balham .ag-filter-no-matches {\n height: 144px; }\n .ag-theme-balham .ag-set-filter-filter {\n margin-top: 6px;\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-balham .ag-filter-to {\n margin-top: 4px; }\n .ag-theme-balham .ag-mini-filter {\n margin: 6px 6px; }\n .ag-theme-balham .ag-set-filter-item {\n margin: 0px 6px; }\n .ag-theme-balham .ag-ltr .ag-set-filter-item-value {\n margin-left: 6px; }\n .ag-theme-balham .ag-rtl .ag-set-filter-item-value {\n margin-right: 6px; }\n .ag-theme-balham .ag-filter-apply-panel {\n padding: 6px 6px;\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-balham .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 8px; }\n .ag-theme-balham .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 8px; }\n .ag-theme-balham .ag-simple-filter-body-wrapper {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-balham .ag-simple-filter-body-wrapper > * {\n margin-bottom: 4px; }\n .ag-theme-balham .ag-filter-no-matches {\n padding: 6px 6px; }\n .ag-theme-balham .ag-multi-filter-menu-item {\n margin: 4px 0; }\n .ag-theme-balham .ag-multi-filter-group-title-bar {\n padding: 8px 4px;\n background-color: transparent; }\n .ag-theme-balham .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-side-bar {\n position: relative; }\n .ag-theme-balham .ag-tool-panel-wrapper {\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7); }\n .ag-theme-balham .ag-side-buttons {\n padding-top: 16px;\n width: 20px;\n position: relative;\n color: #000;\n color: var(--ag-foreground-color, #000);\n overflow: hidden; }\n .ag-theme-balham button.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: 8px 0 8px 0;\n width: calc(100% + 1px);\n margin: 0;\n min-height: 72px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7);\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-balham .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-selected .ag-side-button-button {\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7);\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7);\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-balham .ag-ltr .ag-side-bar-left,\n .ag-theme-balham .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-balham .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-balham .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 0 solid transparent;\n margin-right: -1px;\n padding-right: 1px; }\n .ag-theme-balham .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-balham .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #0091ea;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-rtl .ag-side-bar-left,\n .ag-theme-balham .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-balham .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-balham .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 0 solid transparent;\n margin-left: -1px;\n padding-left: 1px; }\n .ag-theme-balham .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-balham .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #0091ea;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-filter-toolpanel-header {\n height: 24px; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-header, .ag-theme-balham .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-header, .ag-theme-balham .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 4px; }\n .ag-theme-balham .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 4px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-0-header {\n height: 32px; }\n .ag-theme-balham .ag-filter-toolpanel-group-item {\n margin-top: 2px;\n margin-bottom: 2px; }\n .ag-theme-balham .ag-filter-toolpanel-search {\n height: 32px; }\n .ag-theme-balham .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 16px; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 4px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 4px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 4px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 4px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 20px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 20px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 36px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 36px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 52px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 52px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 68px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 68px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 84px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 84px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 100px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 100px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 116px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 116px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 132px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 132px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 148px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 148px; }\n .ag-theme-balham .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 164px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 164px; }\n .ag-theme-balham .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 4px; }\n .ag-theme-balham .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7);\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7);\n margin-top: 4px; }\n .ag-theme-balham .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 4px; }\n .ag-theme-balham .ag-pivot-mode-panel {\n height: 32px;\n display: flex; }\n .ag-theme-balham .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-balham .ag-ltr .ag-pivot-mode-select {\n margin-left: 6px; }\n .ag-theme-balham .ag-rtl .ag-pivot-mode-select {\n margin-right: 6px; }\n .ag-theme-balham .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-column-select-header {\n height: 32px;\n align-items: center;\n padding: 0 6px;\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7));\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-column-group-icons,\n .ag-theme-balham .ag-column-select-header-icon {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-header {\n background-color: #f5f7f7;\n background-color: var(--ag-header-background-color, #f5f7f7);\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-header-row {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)));\n height: 32px; }\n .ag-theme-balham .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-balham .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-balham .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-balham .ag-header-cell,\n .ag-theme-balham .ag-header-group-cell {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-balham .ag-header-cell.ag-header-cell-moving,\n .ag-theme-balham .ag-header-group-cell.ag-header-cell-moving {\n background-color: white;\n background-color: var(--ag-header-cell-moving-background-color, var(--ag-background-color, white)); }\n .ag-theme-balham .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-header-icon {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-balham .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-balham .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-balham .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-balham .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-header-cell::after,\n .ag-theme-balham .ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n width: 1px;\n height: 50%;\n top: calc(50% - 25%);\n background-color: rgba(189, 195, 199, 0.5);\n background-color: var(--ag-header-column-separator-color, rgba(189, 195, 199, 0.5)); }\n .ag-theme-balham .ag-ltr .ag-header-cell::after, .ag-theme-balham .ag-ltr .ag-header-group-cell::after {\n right: 0; }\n .ag-theme-balham .ag-rtl .ag-header-cell::after, .ag-theme-balham .ag-rtl .ag-header-group-cell::after {\n left: 0; }\n .ag-theme-balham .ag-ltr .ag-header-select-all {\n margin-right: 12px; }\n .ag-theme-balham .ag-rtl .ag-header-select-all {\n margin-left: 12px; }\n .ag-theme-balham .ag-ltr .ag-floating-filter-button {\n margin-left: 12px; }\n .ag-theme-balham .ag-rtl .ag-floating-filter-button {\n margin-right: 12px; }\n .ag-theme-balham .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 16px;\n padding: 0;\n width: 16px; }\n .ag-theme-balham .ag-filter-loading {\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7);\n height: 100%;\n padding: 6px 6px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-balham .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));\n height: 32px; }\n .ag-theme-balham .ag-paging-panel > * {\n margin: 0 12px; }\n .ag-theme-balham .ag-paging-button {\n cursor: pointer; }\n .ag-theme-balham .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-balham .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-balham .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: #719ECE;\n border-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham .ag-paging-button, .ag-theme-balham .ag-paging-description {\n margin: 0 4px; }\n .ag-theme-balham .ag-status-bar {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-border-color, #bdc3c7);\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n padding-right: 16px;\n padding-left: 16px;\n line-height: 1.5; }\n .ag-theme-balham .ag-status-name-value-value {\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-balham .ag-status-bar-center {\n text-align: center; }\n .ag-theme-balham .ag-status-name-value {\n margin-left: 4px;\n margin-right: 4px;\n padding-top: 8px;\n padding-bottom: 8px; }\n .ag-theme-balham .ag-column-drop-cell {\n background: #dddede;\n background: var(--ag-chip-background-color, #dddede);\n border-radius: 16px;\n height: 16px;\n padding: 0 2px; }\n .ag-theme-balham .ag-column-drop-cell-text {\n margin: 0 4px; }\n .ag-theme-balham .ag-column-drop-cell-button {\n min-width: 16px;\n margin: 0 2px;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-column-drop-cell-drag-handle {\n margin-left: 8px; }\n .ag-theme-balham .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-balham .ag-column-drop-horizontal {\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));\n height: 28px;\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-ltr .ag-column-drop-horizontal {\n padding-left: 12px; }\n .ag-theme-balham .ag-rtl .ag-column-drop-horizontal {\n padding-right: 12px; }\n .ag-theme-balham .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-column-drop-horizontal-cell-separator {\n margin: 0 4px;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-column-drop-horizontal-empty-message {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-balham .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 12px; }\n .ag-theme-balham .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 12px; }\n .ag-theme-balham .ag-column-drop-vertical-list {\n padding-bottom: 4px;\n padding-right: 4px;\n padding-left: 4px; }\n .ag-theme-balham .ag-column-drop-vertical-cell {\n margin-top: 4px; }\n .ag-theme-balham .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-balham .ag-column-drop-vertical-icon {\n margin-left: 4px;\n margin-right: 4px; }\n .ag-theme-balham .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: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n margin-top: 4px; }\n .ag-theme-balham .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n background: white;\n background: var(--ag-background-color, white);\n border-radius: 2px;\n box-shadow: none;\n padding: 4px;\n background: white;\n background: var(--ag-background-color, white);\n height: 70px;\n padding: 0; }\n .ag-theme-balham .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 20px;\n padding-left: 8px; }\n .ag-theme-balham .ag-select-agg-func-virtual-list-item:hover {\n background-color: #b7e4ff;\n background-color: var(--ag-selected-row-background-color, #b7e4ff); }\n .ag-theme-balham .ag-chart-menu {\n border-radius: 2px;\n background: white;\n background: var(--ag-background-color, white); }\n .ag-theme-balham .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: 2px;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-balham .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: #bdc3c7;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-balham .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-balham .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-balham .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-balham .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-balham .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-balham .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-balham .ag-chart-mini-thumbnail.ag-selected {\n border-color: #0091ea;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-chart-settings-card-item {\n background: #000;\n background: var(--ag-foreground-color, #000);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-balham .ag-chart-settings-card-item.ag-selected {\n background-color: #0091ea;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-chart-data-column-drag-handle {\n margin-left: 4px; }\n .ag-theme-balham .ag-charts-settings-group-title-bar,\n .ag-theme-balham .ag-charts-data-group-title-bar,\n .ag-theme-balham .ag-charts-format-top-level-group-title-bar {\n border-top: solid 1px;\n border-top-color: #bdc3c7;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #bdc3c7)); }\n .ag-theme-balham .ag-charts-settings-group-container {\n padding: 4px; }\n .ag-theme-balham .ag-charts-data-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-balham .ag-charts-data-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-balham .ag-charts-format-top-level-group-container {\n margin-left: 8px;\n padding: 4px; }\n .ag-theme-balham .ag-charts-format-top-level-group-item {\n margin: 4px 0; }\n .ag-theme-balham .ag-charts-format-sub-level-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-balham .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-balham .ag-charts-group-container.ag-group-container-horizontal {\n padding: 4px; }\n .ag-theme-balham .ag-chart-data-section,\n .ag-theme-balham .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-balham .ag-chart-menu-panel {\n background-color: #f5f7f7;\n background-color: var(--ag-control-panel-background-color, #f5f7f7); }\n .ag-theme-balham .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: #bdc3c7;\n border-left-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: #bdc3c7;\n border-right-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-balham .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-balham .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-balham .ag-checkbox-input-wrapper {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: white;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, white));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-balham .ag-checkbox-input-wrapper input, .ag-theme-balham .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-balham .ag-checkbox-input-wrapper:focus-within, .ag-theme-balham .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 2px 1px #719ECE; }\n .ag-theme-balham .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #7f8c8d;\n color: var(--ag-checkbox-unchecked-color, #7f8c8d);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #0091ea;\n color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #7f8c8d;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, #7f8c8d));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 32px;\n height: 16px;\n background-color: #7f8c8d;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, #7f8c8d));\n border-radius: 8px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #7f8c8d;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #7f8c8d)); }\n .ag-theme-balham .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-balham .ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: 0 0 2px 1px #719ECE; }\n .ag-theme-balham .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #0091ea;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea)));\n border-color: #0091ea;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 16px;\n width: 16px;\n background-color: white;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, white));\n border-radius: 8px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #7f8c8d;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #7f8c8d))); }\n .ag-theme-balham .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 16px);\n border-color: #0091ea;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea))); }\n .ag-theme-balham .ag-radio-button-input-wrapper {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 16px;\n height: 16px;\n background-color: white;\n background-color: var(--ag-checkbox-background-color, var(--ag-background-color, white));\n border-radius: 3px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 16px; }\n .ag-theme-balham .ag-radio-button-input-wrapper input, .ag-theme-balham .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-balham .ag-radio-button-input-wrapper:focus-within, .ag-theme-balham .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 2px 1px #719ECE; }\n .ag-theme-balham .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-balham .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #7f8c8d;\n color: var(--ag-checkbox-unchecked-color, #7f8c8d);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #0091ea;\n color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-balham input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-balham input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #bdc3c7;\n background-color: var(--ag-border-color, #bdc3c7);\n border-radius: 2px;\n border-radius: 3px; }\n .ag-theme-balham input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #bdc3c7;\n background-color: var(--ag-border-color, #bdc3c7);\n border-radius: 2px;\n border-radius: 3px; }\n .ag-theme-balham input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #bdc3c7;\n background-color: var(--ag-border-color, #bdc3c7);\n border-radius: 2px;\n border-radius: 3px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-balham input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: white;\n background-color: var(--ag-background-color, white);\n border: 1px solid;\n border-color: #7f8c8d;\n border-color: var(--ag-checkbox-unchecked-color, #7f8c8d);\n border-radius: 16px;\n -webkit-transform: translateY(-6.5px);\n transform: translateY(-6.5px); }\n .ag-theme-balham input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: white;\n background-color: var(--ag-background-color, white);\n border: 1px solid;\n border-color: #7f8c8d;\n border-color: var(--ag-checkbox-unchecked-color, #7f8c8d);\n border-radius: 16px; }\n .ag-theme-balham input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 16px;\n height: 16px;\n background-color: white;\n background-color: var(--ag-background-color, white);\n border: 1px solid;\n border-color: #7f8c8d;\n border-color: var(--ag-checkbox-unchecked-color, #7f8c8d);\n border-radius: 16px; }\n .ag-theme-balham input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-balham input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n box-shadow: 0 0 2px 1px #719ECE;\n border-color: #0091ea;\n border-color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham input[class^='ag-'][type='range']:focus::-ms-thumb {\n box-shadow: 0 0 2px 1px #719ECE;\n border-color: #0091ea;\n border-color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n box-shadow: 0 0 2px 1px #719ECE;\n border-color: #0091ea;\n border-color: var(--ag-checkbox-checked-color, var(--ag-balham-active-color, #0091ea)); }\n .ag-theme-balham input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: #719ECE;\n background-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: #719ECE;\n background-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham input[class^='ag-'][type='range']:active::-ms-track {\n background-color: #719ECE;\n background-color: var(--ag-input-focus-border-color, #719ECE); }\n .ag-theme-balham input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\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 {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54))); }\n .ag-theme-balham .ag-ltr input[class^='ag-']:not([type]),\n .ag-theme-balham .ag-ltr input[class^='ag-'][type='text'],\n .ag-theme-balham .ag-ltr input[class^='ag-'][type='number'],\n .ag-theme-balham .ag-ltr input[class^='ag-'][type='tel'],\n .ag-theme-balham .ag-ltr input[class^='ag-'][type='date'],\n .ag-theme-balham .ag-ltr input[class^='ag-'][type='datetime-local'],\n .ag-theme-balham .ag-ltr textarea[class^='ag-'] {\n padding-left: 4px; }\n .ag-theme-balham .ag-rtl input[class^='ag-']:not([type]),\n .ag-theme-balham .ag-rtl input[class^='ag-'][type='text'],\n .ag-theme-balham .ag-rtl input[class^='ag-'][type='number'],\n .ag-theme-balham .ag-rtl input[class^='ag-'][type='tel'],\n .ag-theme-balham .ag-rtl input[class^='ag-'][type='date'],\n .ag-theme-balham .ag-rtl input[class^='ag-'][type='datetime-local'],\n .ag-theme-balham .ag-rtl textarea[class^='ag-'] {\n padding-right: 4px; }\n .ag-theme-balham .ag-column-drop-vertical-empty-message, .ag-theme-balham .ag-status-bar {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-balham .ag-dnd-ghost {\n font-weight: 600; }\n .ag-theme-balham .ag-tab {\n border: 1px solid transparent;\n padding: 4px 8px;\n margin: 4px;\n margin-bottom: -1px; }\n .ag-theme-balham .ag-tab-selected {\n background-color: white;\n background-color: var(--ag-background-color, white);\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n border-bottom-color: transparent; }\n .ag-theme-balham .ag-tabs-header {\n border-bottom: 1px solid;\n border-bottom-color: #bdc3c7;\n border-bottom-color: var(--ag-border-color, #bdc3c7); }\n .ag-theme-balham .ag-column-drop-cell {\n height: 24px; }\n .ag-theme-balham .ag-column-drop-vertical-title {\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-balham .ag-column-drop-vertical-cell {\n margin-left: 8px;\n margin-right: 8px; }\n .ag-theme-balham .ag-column-drop-vertical-cell-text {\n margin-left: 8px; }\n .ag-theme-balham .ag-column-drop-vertical-icon {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-balham .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: 24px;\n padding-right: 4px; }\n .ag-theme-balham .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: 24px;\n padding-left: 4px; }\n .ag-theme-balham .ag-column-drop-horizontal {\n height: 32px; }\n .ag-theme-balham .ag-column-drop-empty {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-balham .ag-column-drop-horizontal-cell-text {\n margin-left: 8px; }\n .ag-theme-balham .ag-column-drop-vertical {\n padding-top: 8px; }\n .ag-theme-balham .ag-menu-header {\n background-color: #f5f7f7;\n background-color: var(--ag-header-background-color, #f5f7f7); }\n .ag-theme-balham .ag-overlay-loading-center {\n background-color: white;\n background-color: var(--ag-background-color, white);\n border: 1px solid;\n border-color: #bdc3c7;\n border-color: var(--ag-border-color, #bdc3c7);\n color: #000;\n color: var(--ag-foreground-color, #000);\n padding: 16px; }\n .ag-theme-balham .ag-tooltip {\n border: none;\n background-color: #cbd0d3; }\n .ag-theme-balham .ag-panel-title-bar-button-icon {\n font-size: 20px; }\n .ag-theme-balham .ag-chart-data-section,\n .ag-theme-balham .ag-chart-format-section {\n padding-bottom: 2px; }\n .ag-theme-balham .ag-group-toolbar {\n background-color: rgba(226, 233, 235, 0.5);\n background-color: var(--ag-subheader-toolbar-background-color, rgba(226, 233, 235, 0.5)); }\n .ag-theme-balham .ag-chart-tab {\n padding-top: 2px; }\n .ag-theme-balham .ag-charts-format-sub-level-group-item {\n margin-bottom: 6px; }\n\n", ""]);
53765// Exports
53766module.exports = exports;
53767
53768
53769/***/ }),
53770/* 269 */
53771/***/ (function(module, exports, __webpack_require__) {
53772
53773var api = __webpack_require__(258);
53774 var content = __webpack_require__(270);
53775
53776 content = content.__esModule ? content.default : content;
53777
53778 if (typeof content === 'string') {
53779 content = [[module.i, content, '']];
53780 }
53781
53782var options = {};
53783
53784options.insert = "head";
53785options.singleton = false;
53786
53787var update = api(content, options);
53788
53789
53790
53791module.exports = content.locals || {};
53792
53793/***/ }),
53794/* 270 */
53795/***/ (function(module, exports, __webpack_require__) {
53796
53797// Imports
53798var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53799exports = ___CSS_LOADER_API_IMPORT___(false);
53800// Module
53801exports.push([module.i, ".ag-theme-blue {\n -webkit-font-smoothing: antialiased;\n color: #222;\n color: var(--ag-foreground-color, #222);\n font-family: \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridClassic\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABXwAAsAAAAAKrgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2Zoxou09TLzIAAANsAAAAQQAAAFZWVlMSY21hcAAAA7AAAAIbAAAFnIlT7KJnbHlmAAAFzAAADBkAABg4HeN0mGhlYWQAABHoAAAANAAAADZ2z8SBaGhlYQAAEhwAAAAeAAAAJAfTBCxobXR4AAASPAAAABgAAAE4yyH/7GxvY2EAABJUAAAAdgAAAJ5JCULobWF4cAAAEswAAAAfAAAAIAFkAKpuYW1lAAAS7AAAATMAAAJS8kTiWnBvc3QAABQgAAABzQAAArBhTs2TeJx9lMtOU1EUhv/DaREoAlG8pCIiGi+oiMrxXHpoy6WH1tbEgTEOnGBMjAlxxHP4AD4BQ5/AB3DgE/gADhw6Nn5r9WCFAey03Xtd/vXvf62NAklTWlNTYzvF4KVm9vcOPqquioZ/5v9/H+x/eL+niaMTvor/TiioTGtGy3qtA30LZoKD4HBsPqyHr8J34efwS/hLIVFLWiW6pqesWAnfkVJlaijXmMaxxew34BOymmq59RyMqu7pqqfL1IzJ6Tniip7xmQOncJyOtolKWYbZ4XvAuqfZUyJy3Qc/g80m1gqKLKJJrnlNgp4Q01Sb/Cb+89TcoXaEv8BXwK6KpcW+rQtwsoyKq9rVGz3Bbzc1lKzMSfnE2vVz5Kc1NDmKaoHToJZhr8LgyN6gakLGY9AzorZKRVd0k+wGOB3Q2p694dnLRCZwS3WDnd0zges08Zle6K1X3S1zOq7pUIFV2I/shePlenjM2gZrQOwjOIys1p8H1IrUx1+jV4X29UmH+qrv+qGf+q0/OqOL1En8Dtug75yqzQQKnozu4m39s9pdx5mBk1HHIya5ecPVifH1Sg2tWo2bmTop+whr6vFT8LT4Lmxy+lGhRuR1rdNV1ibnmOiz5XQ2WdOudI8pmPUJ7vss1HWHvi064nAOc7S+CqLthvyuuG5N8Ba8b6auvbA5P9lbsH7XmdVr/EbcMHOdnuO9jsWQRpYlz8phbxjr+HNYj6oZqwVYresuPpuxvr+OLpVucZ8hk4QIexl9n6/bMMjKlzpPD419u+zYJY+LPSvgP0FUvvDUtbOZLuBm8zH4C3G+c6UAeJxjYGSazTiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMX9i4ALSjCA5AOaCCwgAAAB4nLXUB1IbQRCF4V+BLMA22eQcBQaTcxAiHwJnCgcKZ87hs/kefQL8Rt0+AK7yVn3bO1Or3ZlavQaqgJzMSB6ytWR0RSar2UxlPkd9ZT7Pb40L1JLVdZErbrizhft7zRa55Jpby1RGf4+M7i7QwxjLGh2yxAE7lFnlXDN7rLPPLkdsssEJK2yzxjFnbFHilAv9Pq0irzVWU6P31mklDXpiI0084jEttNJGOx100kW33tRLH/0MMMgQw4wwyjgTTDLFtHZSZJY5njHPgs7PNVrUIqt52HH4wPvTsXSwU149X97TjnePNje02e2147Ot0unFPzzsPxyFdMr9itEZ6Yu6tNvLsCQvwoG8DDvyKpTldViVN+Fc3ob0b3gX9uQqrMt12Jf3YVc+hCP5GDblU9iQm3Ait2FFPodt+RLW5Gs4lm8h7f172JIfoSQ/w6ncBX1Ay7iUF8s6Us25lC/Lu5Qxq3Ipe1btSLXGkWqtI9U6R6r1LmXSGhypFlz6ktboSLXJkWqzU3awoBRhQXnCnjglC2txyhjW6pQ2rM0pd1i7UwKxDqcsYp1OqcS6nPKJPXVKKtbtlFmsxym9WK9TjrE+p0Rj/U7ZxgacUo4NOuUdG3JKPjbs1AOwEadugI069QVszKlDYONOvQKbcKkv2qRLebApp96BTTv1FGzGqa9gRac+g806dRxszlXuCepC2LyrPHPBsfgHpKymyQB4nO1Ye2wUxxnfmfXt3t57d+92zxycvXf4FkNico+99QMMGOOzcWzTnIMJaQ04GMWYRDEESJqktAElJErSShFVqUmAqj0XmlQFI+XRBxKpGleRGqePNKnyKn+0Sdq4pHXS6uRb+s3eww8ooPSfVu3Zu/P6Zuabb34z3+9bClHwo5P0IMVRFFJkVvEpIq3QSWN4717Un7v/9dfxAfzT8fERtBftBRFT/n36faoSChqr6jKr8oqZ6ApvJjKvmAmroHNdqbGxlnWIXgdpap2RW9cCaZdhkPpUF8J0JdcFVS1dlzblu1LFOdfTj1FWKLAqBw8fRt9+th/1ob7+Z47jXc9uRX3G01ufyX1YlMcTeIKym/KgC2gD+uCJljOjqTNnUqNnWkbRqmJutOUMZaGoiwas6wNKpMKUSi2hllKURQnVII1PNKK4EgsiH+91IVoJMZCRoCYJTREU58NVcV+YhpTenhOV+lCoXsEfwUupV3Iej9/vwRd4Wc59N51GHen0SHc3DtWF8Mfwgv+cG17012U+x/N+P4//wsvGqPF2JoOOGZth2bP0WgzrKSoSnlbOMkcnFsF6RZnebioRKik1MUOdAWPi74kT59fSHxSVKCp180xdXjRsP1t1EB1dRM3VRb02XWhFU66oyO+N06jzKloYzgzZ0lnzX9vsV5r5KpOS9cKi76G3AjqslJ+iAHgyh2i9AjEs/Pm8EsySUCMq/pOxqf42I4cax8Ze/oHdXu6WomuikrscnUPHG6DBeAktHxtrdDqDgUh5KBoNlVfND5LhGXOOQ/QhmI0FvLphbTJFVfnAbPDQc1J03DhNNxmnM7OS7Aj8UEcGfqiT5KmC7h8UbLX02qyFAMe+sBbW4lqcHgwRi4Hl8hYkljMtQyxnvDJi/vIWFAoWnChYUAQJHn8E23aGqDRCUUV9mugmc5U86BPnFS0MN4XCK7Sm8HEND2cMRwZNpo1R1DFijKbxsFnOQvk4VGap0l3wAP0AOdscgu1gOQQ3go4mkbDHmDBfxsQeJMALb59VRAIU8za/OEXfSf+Z8oB1FlCt1Jepp2DoCOykZYZF6LCGQEFGlhqQWOV14XCopkxLNOI4saWXCUXUGhSGDt4giiX1RhSTZGLgEFRriWQsSMcJPmqQWoOJuWNBXOiU71OBJDmI4WZK6tFGsj9enxu5MGzPUhq6S/Qd7La7LEanqusqTqp6y6jRhB7BiLZ4foeNTZwQ9Hpkr8dmcfoVUV4o2pzWMqvXLc93yJUSg60u2ykhJC3gnR7OZWWtbgcv2QWPN8ALFZLg5602J1tmcQcFxm4RBLtTsC1bshjT2Gq3WrCGWZvbweA4jWyCFf/RuudBC65Vp141lXlkfOpR+p7flHN87mu/dVQERasQqKzyhbSId74qcG6b0+dNxCqXSH6/ze1yl1dLbnuVYHfZy3mHLLh4K8OKSk2V6PT5fR6b3S2ITs7O0SxrYcUFT/zwR5ydsbFOm4X7Nee2ci7uF27O5hGo/+/df/XeFf34QdOP83FgC+TgfufYM/3G08bT/ehe7MpNQuEo2tIPomVz9rrtqvusQ2skkYzHpAq0ApNtk3xeN5Jhe1woFFmKWAKEiJa48vZcf0s7x1q8bl70LFtpczFOq1v0dXY7bJzgFco29JRxPNRcybBj9w66nHbJI/o3bnQLFovHwS+44163T3BxHLPvi4yV4d2mTf4X1vjZeAPxelfy3k8YjquxhtFMZtr3vEzrVDkVpZbB/LqcjEuyJLvAoQM7RMkVSAuHwKerYg1WGTaIZEmXGWJp+EuCgGl1FeSRkoisaHr4vqEN1Xc0aqsqXcYva9pVW+OS2uv3/SH5+WW25kT0sc7052Jf2LhlfWPd0tjG3eiNdS0uQQoq9obraNeiG4Sym9r3L7890hxfZEf7bBilLYwrYLzN1G7QYq3Nt0l++8r5Ni5R1Rhb+9CNxuForyjLFfPi3YHptcjgQxdRSVgLWYdJRwq6JiFP6iS9qDS5ldSqyHIUJnIyiOhoiqyga8/9D371fqLkLbu+cldzYmVv3+13bV6/1lTW0XL73oGUDa1Ftq5kKlm1KBlZRvvodPuDezq6HI61keWx9gPtN5+MtW7QaxlGj20VZamyvPbWRLK3nnbOX4ys9nntXiuLqTx3M3nODuBSEGmICuJVLeqLa2mTx2ToQWC9m0ay3d0FWTwF/J02oxI+zAOhVVkZrUhjz0sv1WazeMJwoEmj+dw5KBBxR4FfnJ3FowJUxTSb14HdFB90lbwCHGgkk8ma/8BC/lUOHctkxjMm8Tp2aQIqWQrrPgtnW6GqqGrqesJ9TDIHXKtA60oPH9YUFPZBLJF/quBBx4HVgY2A4ZGUsCMz3dyNOgvTmerQg2kwXyadhSSbxqlsTkij493AndLp/xg95uxtVZiPIxKdsXgqnc5dMDc3O2Nn8z7jGL3e9BkykD0SoqJtJ/Je4iSuR8dO5OPAk4Ro4oufXvyU/hv9VypBDeZPB+MmdB08txrR4aCDc5bztS4UxFDRiIhb16IRkoUmcv+yZjORk+MS6aQm1CgRM+WDuNgM5AEa9aQawV+q83oX1R6o62y/sWOnF351rbZyAWEelzHlAa+gtbUF9s8XxADnx+XVVskmCUis67ixvbPuQO0iEBd8yCZZF/ux084FRDGwP9DWpgneQDlTBoMgodzWWkfGhZk62w/DTKSw0xyglfO4tJhVYOYFWtuSXjFwINDaGuB4T8hfbcWMh8xkqnSg9jCIC24WW6v9IQ/H2ojggYDoTba1BuYxgjWmuTxcq7mKmef2EJymCvPmZOF4wKUJcQLcnHBMYPMgWojrmhpmfTh1eM/hN96AV6aU+cajfX2P9uEfz6okmdzzfaTJ9IEzY9zoNUberBnUIx3ucFm/cuz90bup6HDtEfR26r3oU7VPXSUAzzWm3rnhCIg/8F4qCmnJh0zHaWaEhgoPfWjqJ3RT/snmIzEShxX9+2dZm25+toAlkovvymu7753UDUf0YZRIvUuUvtrasoW1PQkmOaIfKX0veRzOpIXsMDmN6FbzJKJY8YLNn8MA/SvKOf0NxuRvMhoe6EcqUvsHBvqNN403+wfwqe1QA7ntxkPboQ7athd4wEWwxYeUl1pIxQkPICfMQ5xXJXFVHvBMSQs5s/EYyZLYeik5jqZvBt5NTufkwbuHmtasaRq62/h491BTc3PT0G40nnsuuaopNbRlk14ny4vbtFWrodBbW+eXF9MfgvBu48LunUR4527kgW5rPsk9t1iW6/TevqFU08pkW76wZai1aVWyhPsmehB2252PViFEjcvkpoSoldxq27KZkbRxOo0maX+uHw+nR8j992/2RaU4GUoozMthVg3r5DrGE72nsul09lQvmgT3NzaQzQ6g2nTex5QwpgArqKVWXB5lhOSYMGsAn6pZIPIm7DL/Dc881OR0i8QBkC8nczCXu3Mfwdy+EXpl7kUc5OV/OBuGhhocZx1msmM8dx63yJegD1/I5OGHU3DBv+Dn0TLHjH5OnMp8iZfnYND09vjxORjEM/BTDVImKDwEQpUELR4CIdaElJe0hEyiTFrQ5MMlpLiL6DlogqVO37TlPAAFfr1bLo+Umwkuzvf1EuHePhDW62ZjudrkYZfDsmyqSGArmYAm34oiIuHpNShhho2XhfPDQ0WNzhd1fGT1roO7Vpuva9bS2Nxc6LJ613T8dbTgS1Wdg0fR8P7v9aMtxtH+E7mf49TJfCh2YqSE40HAsZOSCA8DWlC6oyyFT71xAPDz6WgIt4aixuiO+vHx+h3d4MDfQguNt8iXLrRw/o6G8fGGHejJaXzjYTI6sMAR/E1jFA8bp0v30DBgH5NvOzzhF2gSdeS2zW3DeepBrwLSODpnTA4RgtKRlyi0ZegUwRUHATuiM7nXjFf2nEUv4NdyryFtN+Sm9WolO0uOACiW2wbgJNUlThGmUlQP3P2Sdy6nqECkrsAokjGZlmIlpsB4obXAE0gP1qyTEcEDioTyBSmGb2LZnhn0oYcV2U6G2QBcgDjnHtbLhuDpIS4e6MEGhukEiZ4ZNKCHZbH/Opdr6luuiAtSutcVefVSmY7Zo6Dvz56k41I1pj65DkaE4WBU1QnD/xPnjHQ0AAAAeJxjYGRgYADiY81JvPH8Nl8ZuJlfAAWiOB/va4DR/7/9/8b8mfkTUCUHAxOQZAAAhKEPOXicY2BkYGB+wcAAIv9/+/+V+TMDIwMq8AMAnl4HBgAAeJxjYGBgYH5Bb/z/Gy3NZqADAAB/FDOneJxjYAACCYYghiyGFoYLjGKMYYx9jAcY3zCZMEUwVTFHsJix+LEcYDViLWK9wWbC5sWWwraB7Qu7BXsAewaHAIcTxxSODZxMnCKcZpw9nKs4T3A+4nLhCuOaw/WNm4/bgtuNO4Q7ibuAu4V7Eo8M6RAAslkbZAAAeJxjYGRgYPBjmMfAwwACTEDMBYQMDP/BfAYAIQYCDwB4nH2QvU7DMBSFT/qHaAWqBGJgMgsLUvqz0bVSs3foniZ2miqNg+NW6s5z8AQ8R5+Dp2DmxHgpErUl57vfPfcOATDECQGaE+DGvc1p4YrVL7dJ95475CfPXQwQeu7Rv3ru4wULzwPc4Y0bgs41zSPePbdwiw/PbfpPzx3yyXMXD/jy3KP/9tzHKhh6HuA5UHEWmTydF3Fd58lSZvsiNmfurFhJU+e6FJNwfOYjWUoTW5mK9VHUh2xqrRLK6J1Y6NLKotCiMnorExturK1mo5HyPkz0DjEyRDDIkWKOgnXNmyPBEpK9vXPmQu7/zoobjGONEgIT/vfxhXzEfOlmYlh+U86sceRb48CpKa2FYq2Y0diRFm53ky54NU3leluahD7Exk1VmGHEq/7kQ6a46QfFq20TAHicbZIHb9swEIX9xZKt2GmTpm269x5q6+6990h/A0PRMhGZFEjKdvLry9pBgQA9gIf3Dod37w5sLbUW0Wv9PzZZok1CSocuGcv06LPCAQ6yyhqHWOcwRzjKBsc4zglOcorTnOEs5zjPBS5yictc4SrXuM4NbnKL2+Tc4S73GHCfBzzkEY95wlOe8ZwXvOQVr3nDW97xng985BOf+cJXvvGdH/zkF5v8bvVFWTpViqCt6Qjn7NS3hZcdKYxUVSpHwoU1OVJye8vO8jlQxca/gjaFCsqNtRFBrf8rN2avc0Xayrq81pG4biTN2PietCY4IYMqEmnrnVQ6631b+kkaXz5ICuVlqmbRQHee80GmZrWIs4pltaNyXwk/akfUGeoqjk+H2vmQlE7XaelsU3fnOSrFxpBUahg6lTbRT7eyotCmzMZipsd6VyVjZZos+l8wo2YhMdaovrEhF1Vlp6pI66iiuvOcD9q1NmmtJzZktVMTbRu/5qKozbeaEKzJ7XC4ur9gUqfLUUi8mKieH0fZvLBTswf/2usv4LwtW+CmTkI823pwSu2/c9aYxTYIShyKgMZimOKRVIzYZotZ/CMFYxpqdpgwZLfV+gPpZLiDAAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-blue .ag-icon {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-blue .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-blue .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-blue .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-blue .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-blue .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-blue .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-blue .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-blue .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-blue .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-blue .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-blue .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-blue .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-blue .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-blue .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-blue .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-blue .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-blue .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-blue .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-blue .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-blue .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-blue .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-blue .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-blue .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-blue .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-blue .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-blue .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-blue .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-blue .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-blue .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-blue .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-blue .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-blue .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-blue .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-blue .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-blue .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-blue .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-blue .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-blue .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-blue .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-blue .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-blue .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-blue .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-blue .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-blue .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-blue .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-blue .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-blue .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-blue .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-blue .ag-root-wrapper {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-blue [class^='ag-'], .ag-theme-blue [class^='ag-']:focus, .ag-theme-blue [class^='ag-']:after, .ag-theme-blue [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-blue [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-blue .ag-checkbox .ag-input-wrapper,\n .ag-theme-blue .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-blue .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-blue .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-blue .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 4px; }\n .ag-theme-blue input[class^='ag-'] {\n margin: 0;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-blue textarea[class^='ag-'],\n .ag-theme-blue select[class^='ag-'] {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-blue input[class^='ag-']:not([type]),\n .ag-theme-blue input[class^='ag-'][type='text'],\n .ag-theme-blue input[class^='ag-'][type='number'],\n .ag-theme-blue input[class^='ag-'][type='tel'],\n .ag-theme-blue input[class^='ag-'][type='date'],\n .ag-theme-blue input[class^='ag-'][type='datetime-local'],\n .ag-theme-blue textarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #000;\n border-color: var(--ag-input-border-color, #000); }\n .ag-theme-blue input[class^='ag-']:not([type]):disabled,\n .ag-theme-blue input[class^='ag-'][type='text']:disabled,\n .ag-theme-blue input[class^='ag-'][type='number']:disabled,\n .ag-theme-blue input[class^='ag-'][type='tel']:disabled,\n .ag-theme-blue input[class^='ag-'][type='date']:disabled,\n .ag-theme-blue input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-blue textarea[class^='ag-']:disabled {\n color: rgba(34, 34, 34, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(34, 34, 34, 0.5));\n background-color: #dedede;\n background-color: var(--ag-input-disabled-background-color, #dedede);\n border-color: rgba(0, 0, 0, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(0, 0, 0, 0.3)); }\n .ag-theme-blue input[class^='ag-']:not([type]):focus,\n .ag-theme-blue input[class^='ag-'][type='text']:focus,\n .ag-theme-blue input[class^='ag-'][type='number']:focus,\n .ag-theme-blue input[class^='ag-'][type='tel']:focus,\n .ag-theme-blue input[class^='ag-'][type='date']:focus,\n .ag-theme-blue input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-blue textarea[class^='ag-']:focus {\n outline: none;\n border-color: var(--ag-input-focus-border-color); }\n .ag-theme-blue input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-blue input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-blue input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-blue input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-blue .ag-drag-handle {\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-list-item, .ag-theme-blue .ag-virtual-list-item {\n height: 20px; }\n .ag-theme-blue .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-select-list {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-blue .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-blue .ag-list-item.ag-active-item {\n background-color: #f0f0f0;\n background-color: var(--ag-row-hover-color, #f0f0f0); }\n .ag-theme-blue .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 .ag-theme-blue .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-blue .ag-select .ag-picker-field-wrapper {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n min-height: 20px;\n cursor: default; }\n .ag-theme-blue .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-blue .ag-select:not(.ag-cell-editor) {\n height: 20px; }\n .ag-theme-blue .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-blue .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-blue .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-blue .ag-rich-select {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-blue .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 162.5px; }\n .ag-theme-blue .ag-rich-select-value {\n padding: 0 4px 0 12px;\n height: 25px;\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 20px; }\n .ag-theme-blue .ag-rich-select-virtual-list-item:hover {\n background-color: #f0f0f0;\n background-color: var(--ag-row-hover-color, #f0f0f0); }\n .ag-theme-blue .ag-rich-select-row {\n padding-left: 12px; }\n .ag-theme-blue .ag-rich-select-row-selected {\n background-color: #c8c8c8;\n background-color: var(--ag-selected-row-background-color, #c8c8c8); }\n .ag-theme-blue .ag-row-drag,\n .ag-theme-blue .ag-selection-checkbox,\n .ag-theme-blue .ag-group-expanded,\n .ag-theme-blue .ag-group-contracted {\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-ltr .ag-row-drag, .ag-theme-blue .ag-ltr .ag-selection-checkbox, .ag-theme-blue .ag-ltr .ag-group-expanded, .ag-theme-blue .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-blue .ag-rtl .ag-row-drag, .ag-theme-blue .ag-rtl .ag-selection-checkbox, .ag-theme-blue .ag-rtl .ag-group-expanded, .ag-theme-blue .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-blue .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 23px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-blue .ag-group-expanded,\n .ag-theme-blue .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-blue .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-blue .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-blue .ag-group-title-bar {\n background-color: #ececec;\n background-color: var(--ag-subheader-background-color, #ececec);\n padding: 4px; }\n .ag-theme-blue .ag-group-toolbar {\n padding: 4px; }\n .ag-theme-blue .ag-disabled-group-title-bar, .ag-theme-blue .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-blue .group-item {\n margin: 2px 0; }\n .ag-theme-blue .ag-label {\n white-space: nowrap; }\n .ag-theme-blue .ag-ltr .ag-label {\n margin-right: 4px; }\n .ag-theme-blue .ag-rtl .ag-label {\n margin-left: 4px; }\n .ag-theme-blue .ag-label-align-top .ag-label {\n margin-bottom: 2px; }\n .ag-theme-blue .ag-ltr .ag-slider-field, .ag-theme-blue .ag-ltr .ag-angle-select-field {\n margin-right: 8px; }\n .ag-theme-blue .ag-rtl .ag-slider-field, .ag-theme-blue .ag-rtl .ag-angle-select-field {\n margin-left: 8px; }\n .ag-theme-blue .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-blue .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: #222;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n border-radius: 5px; }\n .ag-theme-blue .ag-picker-field-button {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-blue .ag-color-picker .ag-picker-field-display {\n height: 12px; }\n .ag-theme-blue .ag-color-panel {\n padding: 4px; }\n .ag-theme-blue .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-blue .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-blue .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-blue .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-blue .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 .ag-theme-blue .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-blue .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-blue .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-blue .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-blue .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-blue .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-blue .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-blue.ag-dnd-ghost {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6));\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222));\n height: 25px !important;\n line-height: 25px;\n margin: 0;\n padding: 0 8px;\n -webkit-transform: translateY(8px);\n transform: translateY(8px); }\n .ag-theme-blue .ag-dnd-ghost-icon {\n margin-right: 4px;\n color: #222;\n color: var(--ag-foreground-color, #222); }\n .ag-theme-blue .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-blue .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-blue .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-blue .ag-dialog {\n border-radius: 0px;\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-panel {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-blue .ag-panel-title-bar {\n background-color: #5e9cd3;\n background-color: var(--ag-header-background-color, #5e9cd3);\n color: #fff;\n color: var(--ag-header-foreground-color, #fff);\n height: 25px;\n padding: 4px 12px;\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-panel-title-bar-button {\n margin-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-panel-title-bar-button {\n margin-right: 4px; }\n .ag-theme-blue .ag-tooltip {\n background-color: #5e9cd3;\n background-color: var(--ag-header-background-color, #5e9cd3);\n color: #222;\n color: var(--ag-foreground-color, #222);\n padding: 4px;\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n border-radius: 0px;\n transition: opacity 1s; }\n .ag-theme-blue .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-1 {\n padding-left: 16px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-1 {\n padding-right: 16px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-2 {\n padding-left: 32px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-2 {\n padding-right: 32px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-3 {\n padding-left: 48px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-3 {\n padding-right: 48px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-4 {\n padding-left: 64px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-4 {\n padding-right: 64px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-5 {\n padding-left: 80px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-5 {\n padding-right: 80px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-6 {\n padding-left: 96px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-6 {\n padding-right: 96px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-7 {\n padding-left: 112px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-7 {\n padding-right: 112px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-8 {\n padding-left: 128px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-8 {\n padding-right: 128px; }\n .ag-theme-blue .ag-ltr .ag-column-select-indent-9 {\n padding-left: 144px; }\n .ag-theme-blue .ag-rtl .ag-column-select-indent-9 {\n padding-right: 144px; }\n .ag-theme-blue .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-blue .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-blue .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 6px; }\n .ag-theme-blue .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-blue .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 6px; }\n .ag-theme-blue .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-column-select-column-group:not(:last-child),\n .ag-theme-blue .ag-column-select-column:not(:last-child) {\n margin-bottom: 4px; }\n .ag-theme-blue .ag-column-select-column-readonly,\n .ag-theme-blue .ag-column-select-column-group-readonly {\n color: rgba(34, 34, 34, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(34, 34, 34, 0.5));\n pointer-events: none; }\n .ag-theme-blue .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 20px; }\n .ag-theme-blue .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 20px; }\n .ag-theme-blue .ag-column-select-virtual-list-viewport {\n padding: 3px 0px; }\n .ag-theme-blue .ag-column-select-virtual-list-item {\n margin: 0 6px; }\n .ag-theme-blue .ag-rtl {\n text-align: right; }\n .ag-theme-blue .ag-root-wrapper {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 36px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 36px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-1 {\n padding-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-1 {\n padding-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 60px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 60px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-2 {\n padding-left: 48px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-2 {\n padding-right: 48px; }\n .ag-theme-blue .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-3 {\n padding-left: 72px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-3 {\n padding-right: 72px; }\n .ag-theme-blue .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 108px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 108px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-4 {\n padding-left: 96px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-4 {\n padding-right: 96px; }\n .ag-theme-blue .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 132px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 132px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-5 {\n padding-left: 120px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-5 {\n padding-right: 120px; }\n .ag-theme-blue .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 156px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 156px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-6 {\n padding-left: 144px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-6 {\n padding-right: 144px; }\n .ag-theme-blue .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 180px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 180px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-7 {\n padding-left: 168px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-7 {\n padding-right: 168px; }\n .ag-theme-blue .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 204px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 204px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-8 {\n padding-left: 192px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-8 {\n padding-right: 192px; }\n .ag-theme-blue .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 228px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 228px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-9 {\n padding-left: 216px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-9 {\n padding-right: 216px; }\n .ag-theme-blue .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 252px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 252px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-10 {\n padding-left: 240px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-10 {\n padding-right: 240px; }\n .ag-theme-blue .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 276px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 276px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-11 {\n padding-left: 264px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-11 {\n padding-right: 264px; }\n .ag-theme-blue .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 300px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 300px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-12 {\n padding-left: 288px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-12 {\n padding-right: 288px; }\n .ag-theme-blue .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 324px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 324px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-13 {\n padding-left: 312px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-13 {\n padding-right: 312px; }\n .ag-theme-blue .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 348px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 348px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-14 {\n padding-left: 336px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-14 {\n padding-right: 336px; }\n .ag-theme-blue .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 372px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 372px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-15 {\n padding-left: 360px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-15 {\n padding-right: 360px; }\n .ag-theme-blue .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 396px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 396px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-16 {\n padding-left: 384px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-16 {\n padding-right: 384px; }\n .ag-theme-blue .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 420px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 420px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-17 {\n padding-left: 408px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-17 {\n padding-right: 408px; }\n .ag-theme-blue .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 444px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 444px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-18 {\n padding-left: 432px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-18 {\n padding-right: 432px; }\n .ag-theme-blue .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 468px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 468px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-19 {\n padding-left: 456px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-19 {\n padding-right: 456px; }\n .ag-theme-blue .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 492px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 492px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-20 {\n padding-left: 480px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-20 {\n padding-right: 480px; }\n .ag-theme-blue .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 516px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 516px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-21 {\n padding-left: 504px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-21 {\n padding-right: 504px; }\n .ag-theme-blue .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 540px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 540px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-22 {\n padding-left: 528px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-22 {\n padding-right: 528px; }\n .ag-theme-blue .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 564px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 564px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-23 {\n padding-left: 552px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-23 {\n padding-right: 552px; }\n .ag-theme-blue .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 588px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 588px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-24 {\n padding-left: 576px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-24 {\n padding-right: 576px; }\n .ag-theme-blue .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 612px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 612px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-25 {\n padding-left: 600px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-25 {\n padding-right: 600px; }\n .ag-theme-blue .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 636px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 636px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-26 {\n padding-left: 624px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-26 {\n padding-right: 624px; }\n .ag-theme-blue .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 660px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 660px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-27 {\n padding-left: 648px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-27 {\n padding-right: 648px; }\n .ag-theme-blue .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 684px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 684px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-28 {\n padding-left: 672px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-28 {\n padding-right: 672px; }\n .ag-theme-blue .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 708px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 708px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-29 {\n padding-left: 696px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-29 {\n padding-right: 696px; }\n .ag-theme-blue .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 732px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 732px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-30 {\n padding-left: 720px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-30 {\n padding-right: 720px; }\n .ag-theme-blue .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 756px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 756px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-31 {\n padding-left: 744px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-31 {\n padding-right: 744px; }\n .ag-theme-blue .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 780px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 780px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-32 {\n padding-left: 768px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-32 {\n padding-right: 768px; }\n .ag-theme-blue .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 804px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 804px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-33 {\n padding-left: 792px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-33 {\n padding-right: 792px; }\n .ag-theme-blue .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 828px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 828px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-34 {\n padding-left: 816px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-34 {\n padding-right: 816px; }\n .ag-theme-blue .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 852px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 852px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-35 {\n padding-left: 840px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-35 {\n padding-right: 840px; }\n .ag-theme-blue .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 876px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 876px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-36 {\n padding-left: 864px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-36 {\n padding-right: 864px; }\n .ag-theme-blue .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 900px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 900px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-37 {\n padding-left: 888px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-37 {\n padding-right: 888px; }\n .ag-theme-blue .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 924px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 924px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-38 {\n padding-left: 912px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-38 {\n padding-right: 912px; }\n .ag-theme-blue .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 948px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 948px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-39 {\n padding-left: 936px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-39 {\n padding-right: 936px; }\n .ag-theme-blue .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 972px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 972px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-40 {\n padding-left: 960px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-40 {\n padding-right: 960px; }\n .ag-theme-blue .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 996px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 996px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-41 {\n padding-left: 984px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-41 {\n padding-right: 984px; }\n .ag-theme-blue .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1020px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1020px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1008px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1008px; }\n .ag-theme-blue .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1044px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1044px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1032px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1032px; }\n .ag-theme-blue .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1068px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1068px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1056px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1056px; }\n .ag-theme-blue .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1092px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1092px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1080px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1080px; }\n .ag-theme-blue .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1116px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1116px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1104px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1104px; }\n .ag-theme-blue .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1140px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1140px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1128px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1128px; }\n .ag-theme-blue .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1164px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1164px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1152px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1152px; }\n .ag-theme-blue .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1188px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1188px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1176px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1176px; }\n .ag-theme-blue .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1212px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1212px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1200px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1200px; }\n .ag-theme-blue .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1236px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1236px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1224px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1224px; }\n .ag-theme-blue .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1260px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1260px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1248px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1248px; }\n .ag-theme-blue .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1284px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1284px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1272px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1272px; }\n .ag-theme-blue .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1308px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1308px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1296px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1296px; }\n .ag-theme-blue .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1332px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1332px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1320px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1320px; }\n .ag-theme-blue .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1356px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1356px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1344px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1344px; }\n .ag-theme-blue .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1380px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1380px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1368px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1368px; }\n .ag-theme-blue .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1404px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1404px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1392px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1392px; }\n .ag-theme-blue .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1428px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1428px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1416px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1416px; }\n .ag-theme-blue .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1452px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1452px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1440px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1440px; }\n .ag-theme-blue .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1476px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1476px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1464px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1464px; }\n .ag-theme-blue .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1500px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1500px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1488px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1488px; }\n .ag-theme-blue .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1524px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1524px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1512px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1512px; }\n .ag-theme-blue .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1548px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1548px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1536px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1536px; }\n .ag-theme-blue .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1572px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1572px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1560px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1560px; }\n .ag-theme-blue .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1596px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1596px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1584px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1584px; }\n .ag-theme-blue .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1620px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1620px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1608px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1608px; }\n .ag-theme-blue .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1644px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1644px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1632px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1632px; }\n .ag-theme-blue .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1668px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1668px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1656px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1656px; }\n .ag-theme-blue .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1692px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1692px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1680px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1680px; }\n .ag-theme-blue .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 1716px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 1716px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1704px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1704px; }\n .ag-theme-blue .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 1740px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 1740px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-72 {\n padding-left: 1728px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-72 {\n padding-right: 1728px; }\n .ag-theme-blue .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 1764px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 1764px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-73 {\n padding-left: 1752px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-73 {\n padding-right: 1752px; }\n .ag-theme-blue .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 1788px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 1788px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-74 {\n padding-left: 1776px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-74 {\n padding-right: 1776px; }\n .ag-theme-blue .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 1812px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 1812px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-75 {\n padding-left: 1800px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-75 {\n padding-right: 1800px; }\n .ag-theme-blue .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 1836px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 1836px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-76 {\n padding-left: 1824px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-76 {\n padding-right: 1824px; }\n .ag-theme-blue .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 1860px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 1860px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-77 {\n padding-left: 1848px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-77 {\n padding-right: 1848px; }\n .ag-theme-blue .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 1884px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 1884px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-78 {\n padding-left: 1872px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-78 {\n padding-right: 1872px; }\n .ag-theme-blue .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 1908px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 1908px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-79 {\n padding-left: 1896px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-79 {\n padding-right: 1896px; }\n .ag-theme-blue .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 1932px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 1932px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-80 {\n padding-left: 1920px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-80 {\n padding-right: 1920px; }\n .ag-theme-blue .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 1956px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 1956px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-81 {\n padding-left: 1944px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-81 {\n padding-right: 1944px; }\n .ag-theme-blue .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 1980px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 1980px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-82 {\n padding-left: 1968px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-82 {\n padding-right: 1968px; }\n .ag-theme-blue .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2004px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2004px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-83 {\n padding-left: 1992px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-83 {\n padding-right: 1992px; }\n .ag-theme-blue .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2028px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2028px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2016px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2016px; }\n .ag-theme-blue .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2052px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2052px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2040px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2040px; }\n .ag-theme-blue .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2076px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2076px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2064px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2064px; }\n .ag-theme-blue .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2100px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2100px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2088px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2088px; }\n .ag-theme-blue .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2124px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2124px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2112px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2112px; }\n .ag-theme-blue .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2148px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2148px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2136px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2136px; }\n .ag-theme-blue .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2172px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2172px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2160px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2160px; }\n .ag-theme-blue .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2196px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2196px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2184px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2184px; }\n .ag-theme-blue .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2220px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2220px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2208px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2208px; }\n .ag-theme-blue .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2244px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2244px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2232px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2232px; }\n .ag-theme-blue .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2268px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2268px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2256px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2256px; }\n .ag-theme-blue .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2292px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2292px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2280px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2280px; }\n .ag-theme-blue .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2316px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2316px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2304px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2304px; }\n .ag-theme-blue .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2340px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2340px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2328px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2328px; }\n .ag-theme-blue .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2364px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2364px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2352px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2352px; }\n .ag-theme-blue .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2388px; }\n .ag-theme-blue .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2388px; }\n .ag-theme-blue .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2376px; }\n .ag-theme-blue .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2376px; }\n .ag-theme-blue .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-blue .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 24px; }\n .ag-theme-blue .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 24px; }\n .ag-theme-blue .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-blue .ag-value-change-delta-up {\n color: darkgreen;\n color: var(--ag-value-change-delta-up-color, darkgreen); }\n .ag-theme-blue .ag-value-change-delta-down {\n color: darkred;\n color: var(--ag-value-change-delta-down-color, darkred); }\n .ag-theme-blue .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 .ag-theme-blue .ag-value-change-value-highlight {\n background-color: #cec;\n background-color: var(--ag-value-change-value-highlight-background-color, #cec);\n transition: background-color 0.1s; }\n .ag-theme-blue .ag-cell-data-changed {\n background-color: #cec !important;\n background-color: var(--ag-value-change-value-highlight-background-color, #cec) !important; }\n .ag-theme-blue .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-blue .ag-cell-highlight {\n background-color: rgba(136, 255, 136, 0.4) !important;\n background-color: var(--ag-range-selection-highlight-color, rgba(136, 255, 136, 0.4)) !important; }\n .ag-theme-blue .ag-row {\n height: 25px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n color: #222;\n color: var(--ag-data-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-row-highlight-above::after, .ag-theme-blue .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #222;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222));\n left: 1px; }\n .ag-theme-blue .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-blue .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-blue .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-blue .ag-row-odd {\n background-color: #deebf7;\n background-color: var(--ag-odd-row-background-color, #deebf7); }\n .ag-theme-blue .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-row-hover {\n background-color: #f0f0f0;\n background-color: var(--ag-row-hover-color, #f0f0f0); }\n .ag-theme-blue .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-blue .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-blue .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-blue .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-blue .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-blue .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-blue .ag-cell, .ag-theme-blue .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 23px;\n padding-left: 11px;\n padding-right: 11px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-blue .ag-row > .ag-cell-wrapper {\n padding-left: 11px;\n padding-right: 11px; }\n .ag-theme-blue .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-blue .ag-cell-inline-editing {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0;\n height: 25px;\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-blue .ag-popup-editor {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n padding: 0; }\n .ag-theme-blue .ag-large-text-input {\n height: auto;\n padding: 12px; }\n .ag-theme-blue .ag-details-row {\n padding: 20px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-blue .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-blue .ag-layout-auto-height .ag-center-cols-container, .ag-theme-blue .ag-layout-print .ag-center-cols-clipper, .ag-theme-blue .ag-layout-print .ag-center-cols-container {\n min-height: 50px; }\n .ag-theme-blue .ag-overlay-loading-wrapper {\n background-color: rgba(255, 255, 255, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66)); }\n .ag-theme-blue .ag-overlay-loading-center {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px; }\n .ag-theme-blue .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-blue .ag-loading {\n padding-left: 12px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-blue .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-blue .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-blue .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-cell {\n border-right: dotted #9bc2e6; }\n .ag-theme-blue .ag-rtl .ag-cell {\n border-left: dotted #9bc2e6; }\n .ag-theme-blue .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-blue .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-blue .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-row-selected {\n background-color: #c8c8c8;\n background-color: var(--ag-selected-row-background-color, #c8c8c8); }\n .ag-theme-blue .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-blue .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(34, 34, 34, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(34, 34, 34, 0.2)); }\n .ag-theme-blue .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-blue .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-blue .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-blue .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-blue .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-blue .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: rgba(34, 34, 34, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(34, 34, 34, 0.2))); }\n .ag-theme-blue .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-blue .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(34, 34, 34, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(34, 34, 34, 0.36)); }\n .ag-theme-blue .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-blue .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(34, 34, 34, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(34, 34, 34, 0.488)); }\n .ag-theme-blue .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-blue .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(34, 34, 34, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(34, 34, 34, 0.5904)); }\n .ag-theme-blue .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #222;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #222;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #222;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #222;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-blue .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-blue .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-blue .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-blue .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-blue .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-blue .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-blue .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-blue .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-blue .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #222;\n border-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222));\n outline: initial; }\n .ag-theme-blue .ag-cell.ag-selection-fill-top,\n .ag-theme-blue .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #222;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-blue .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #222;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-blue .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #222;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-cell.ag-selection-fill-bottom,\n .ag-theme-blue .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #222;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-blue .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #222;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-blue .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #222;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-fill-handle, .ag-theme-blue .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #222;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-ltr .ag-fill-handle, .ag-theme-blue .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-blue .ag-rtl .ag-fill-handle, .ag-theme-blue .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-blue .ag-fill-handle {\n cursor: cell; }\n .ag-theme-blue .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-blue .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important; }\n .ag-theme-blue .ag-menu {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0; }\n .ag-theme-blue .ag-menu-list {\n cursor: default;\n padding: 4px 0; }\n .ag-theme-blue .ag-menu-separator {\n height: 9px; }\n .ag-theme-blue .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-menu-option-active, .ag-theme-blue .ag-compact-menu-option-active {\n background-color: #f0f0f0;\n background-color: var(--ag-row-hover-color, #f0f0f0); }\n .ag-theme-blue .ag-menu-option-part, .ag-theme-blue .ag-compact-menu-option-part {\n line-height: 12px;\n padding: 6px 0; }\n .ag-theme-blue .ag-menu-option-disabled, .ag-theme-blue .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-blue .ag-menu-option-icon, .ag-theme-blue .ag-compact-menu-option-icon {\n width: 12px; }\n .ag-theme-blue .ag-ltr .ag-menu-option-icon, .ag-theme-blue .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 8px; }\n .ag-theme-blue .ag-rtl .ag-menu-option-icon, .ag-theme-blue .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 8px; }\n .ag-theme-blue .ag-menu-option-text, .ag-theme-blue .ag-compact-menu-option-text {\n padding-left: 8px;\n padding-right: 8px; }\n .ag-theme-blue .ag-ltr .ag-menu-option-shortcut, .ag-theme-blue .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 4px; }\n .ag-theme-blue .ag-rtl .ag-menu-option-shortcut, .ag-theme-blue .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 4px; }\n .ag-theme-blue .ag-menu-option-popup-pointer, .ag-theme-blue .ag-compact-menu-option-popup-pointer {\n padding-right: 4px; }\n .ag-theme-blue .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-blue .ag-tab {\n border-bottom: 0 solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .ag-theme-blue .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-tab-selected {\n border-bottom-color: #222;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-menu-header {\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-blue .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 8px; }\n .ag-theme-blue .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 8px; }\n .ag-theme-blue .ag-set-filter-select-all {\n padding-top: 6px; }\n .ag-theme-blue .ag-set-filter-list, .ag-theme-blue .ag-filter-no-matches {\n height: 120px; }\n .ag-theme-blue .ag-set-filter-filter {\n margin-top: 6px;\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-blue .ag-filter-to {\n margin-top: 4px; }\n .ag-theme-blue .ag-mini-filter {\n margin: 6px 6px; }\n .ag-theme-blue .ag-set-filter-item {\n margin: 0px 6px; }\n .ag-theme-blue .ag-ltr .ag-set-filter-item-value {\n margin-left: 6px; }\n .ag-theme-blue .ag-rtl .ag-set-filter-item-value {\n margin-right: 6px; }\n .ag-theme-blue .ag-filter-apply-panel {\n padding: 6px 6px;\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-blue .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 8px; }\n .ag-theme-blue .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 8px; }\n .ag-theme-blue .ag-simple-filter-body-wrapper {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-blue .ag-simple-filter-body-wrapper > * {\n margin-bottom: 4px; }\n .ag-theme-blue .ag-filter-no-matches {\n padding: 6px 6px; }\n .ag-theme-blue .ag-multi-filter-menu-item {\n margin: 4px 0; }\n .ag-theme-blue .ag-multi-filter-group-title-bar {\n padding: 8px 4px;\n background-color: transparent; }\n .ag-theme-blue .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-side-bar {\n position: relative; }\n .ag-theme-blue .ag-tool-panel-wrapper {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-blue .ag-side-buttons {\n padding-top: 16px;\n width: 16px;\n position: relative;\n color: #222;\n color: var(--ag-foreground-color, #222);\n overflow: hidden; }\n .ag-theme-blue button.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: 8px 0 8px 0;\n width: calc(100% + 1px);\n margin: 0;\n min-height: 72px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6);\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-blue .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-selected .ag-side-button-button {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6);\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-blue .ag-ltr .ag-side-bar-left,\n .ag-theme-blue .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-blue .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-blue .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 0 solid transparent;\n margin-right: -1px;\n padding-right: 1px; }\n .ag-theme-blue .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-blue .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #222;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-rtl .ag-side-bar-left,\n .ag-theme-blue .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-blue .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-blue .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 0 solid transparent;\n margin-left: -1px;\n padding-left: 1px; }\n .ag-theme-blue .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-blue .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #222;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-filter-toolpanel-header {\n height: 24px; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-header, .ag-theme-blue .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-header, .ag-theme-blue .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 4px; }\n .ag-theme-blue .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 4px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-0-header {\n height: 32px; }\n .ag-theme-blue .ag-filter-toolpanel-group-item {\n margin-top: 2px;\n margin-bottom: 2px; }\n .ag-theme-blue .ag-filter-toolpanel-search {\n height: 25px; }\n .ag-theme-blue .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 16px; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 4px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 4px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 4px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 4px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 20px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 20px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 36px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 36px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 52px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 52px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 68px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 68px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 84px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 84px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 100px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 100px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 116px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 116px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 132px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 132px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 148px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 148px; }\n .ag-theme-blue .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 164px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 164px; }\n .ag-theme-blue .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 4px; }\n .ag-theme-blue .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6);\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6);\n margin-top: 4px; }\n .ag-theme-blue .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 4px; }\n .ag-theme-blue .ag-pivot-mode-panel {\n height: 25px;\n display: flex; }\n .ag-theme-blue .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-blue .ag-ltr .ag-pivot-mode-select {\n margin-left: 6px; }\n .ag-theme-blue .ag-rtl .ag-pivot-mode-select {\n margin-right: 6px; }\n .ag-theme-blue .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-column-select-header {\n height: 25px;\n align-items: center;\n padding: 0 6px;\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6));\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-column-group-icons,\n .ag-theme-blue .ag-column-select-header-icon {\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-header {\n background-color: #5e9cd3;\n background-color: var(--ag-header-background-color, #5e9cd3);\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-header-row {\n color: #fff;\n color: var(--ag-header-foreground-color, #fff);\n height: 25px; }\n .ag-theme-blue .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-blue .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-blue .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-blue .ag-header-cell,\n .ag-theme-blue .ag-header-group-cell {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-blue .ag-header-cell.ag-header-cell-moving,\n .ag-theme-blue .ag-header-group-cell.ag-header-cell-moving {\n background-color: #9bc2e6;\n background-color: var(--ag-header-cell-moving-background-color, #9bc2e6); }\n .ag-theme-blue .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-header-icon {\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-blue .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-blue .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-blue .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-blue .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-header-cell::after,\n .ag-theme-blue .ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n width: 1px;\n height: 100%;\n top: calc(50% - 50%);\n background-color: rgba(155, 194, 230, 0.5);\n background-color: var(--ag-header-column-separator-color, rgba(155, 194, 230, 0.5)); }\n .ag-theme-blue .ag-ltr .ag-header-cell::after, .ag-theme-blue .ag-ltr .ag-header-group-cell::after {\n right: 0; }\n .ag-theme-blue .ag-rtl .ag-header-cell::after, .ag-theme-blue .ag-rtl .ag-header-group-cell::after {\n left: 0; }\n .ag-theme-blue .ag-ltr .ag-header-select-all {\n margin-right: 12px; }\n .ag-theme-blue .ag-rtl .ag-header-select-all {\n margin-left: 12px; }\n .ag-theme-blue .ag-ltr .ag-floating-filter-button {\n margin-left: 12px; }\n .ag-theme-blue .ag-rtl .ag-floating-filter-button {\n margin-right: 12px; }\n .ag-theme-blue .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 12px;\n padding: 0;\n width: 12px; }\n .ag-theme-blue .ag-filter-loading {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n height: 100%;\n padding: 6px 6px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-blue .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6);\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222));\n height: 25px; }\n .ag-theme-blue .ag-paging-panel > * {\n margin: 0 12px; }\n .ag-theme-blue .ag-paging-button {\n cursor: pointer; }\n .ag-theme-blue .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(34, 34, 34, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(34, 34, 34, 0.5)); }\n .ag-theme-blue .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-blue .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 .ag-theme-blue .ag-paging-button, .ag-theme-blue .ag-paging-description {\n margin: 0 4px; }\n .ag-theme-blue .ag-status-bar {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-border-color, #9bc2e6);\n color: rgba(34, 34, 34, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(34, 34, 34, 0.5));\n padding-right: 16px;\n padding-left: 16px;\n line-height: 1.5; }\n .ag-theme-blue .ag-status-name-value-value {\n color: #222;\n color: var(--ag-foreground-color, #222); }\n .ag-theme-blue .ag-status-bar-center {\n text-align: center; }\n .ag-theme-blue .ag-status-name-value {\n margin-left: 4px;\n margin-right: 4px;\n padding-top: 8px;\n padding-bottom: 8px; }\n .ag-theme-blue .ag-column-drop-cell {\n background: #ddebf7;\n background: var(--ag-chip-background-color, #ddebf7);\n border-radius: 16px;\n height: 16px;\n padding: 0 2px; }\n .ag-theme-blue .ag-column-drop-cell-text {\n margin: 0 4px; }\n .ag-theme-blue .ag-column-drop-cell-button {\n min-width: 16px;\n margin: 0 2px;\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-column-drop-cell-drag-handle {\n margin-left: 8px; }\n .ag-theme-blue .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-blue .ag-column-drop-horizontal {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222));\n height: 25px;\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-ltr .ag-column-drop-horizontal {\n padding-left: 12px; }\n .ag-theme-blue .ag-rtl .ag-column-drop-horizontal {\n padding-right: 12px; }\n .ag-theme-blue .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-column-drop-horizontal-cell-separator {\n margin: 0 4px;\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-column-drop-horizontal-empty-message {\n color: rgba(34, 34, 34, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(34, 34, 34, 0.5)); }\n .ag-theme-blue .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 12px; }\n .ag-theme-blue .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 12px; }\n .ag-theme-blue .ag-column-drop-vertical-list {\n padding-bottom: 4px;\n padding-right: 4px;\n padding-left: 4px; }\n .ag-theme-blue .ag-column-drop-vertical-cell {\n margin-top: 4px; }\n .ag-theme-blue .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-blue .ag-column-drop-vertical-icon {\n margin-left: 4px;\n margin-right: 4px; }\n .ag-theme-blue .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: rgba(34, 34, 34, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(34, 34, 34, 0.5));\n margin-top: 4px; }\n .ag-theme-blue .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background: #fff;\n background: var(--ag-background-color, #fff);\n height: 70px;\n padding: 0; }\n .ag-theme-blue .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 20px;\n padding-left: 8px; }\n .ag-theme-blue .ag-select-agg-func-virtual-list-item:hover {\n background-color: #c8c8c8;\n background-color: var(--ag-selected-row-background-color, #c8c8c8); }\n .ag-theme-blue .ag-chart-menu {\n border-radius: 0px;\n background: #fff;\n background: var(--ag-background-color, #fff); }\n .ag-theme-blue .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: 0px;\n color: #222;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-blue .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: #9bc2e6;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-blue .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-blue .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-blue .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-blue .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-blue .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-blue .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-blue .ag-chart-mini-thumbnail.ag-selected {\n border-color: #222;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-chart-settings-card-item {\n background: #222;\n background: var(--ag-foreground-color, #222);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-blue .ag-chart-settings-card-item.ag-selected {\n background-color: #222;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-chart-data-column-drag-handle {\n margin-left: 4px; }\n .ag-theme-blue .ag-charts-settings-group-title-bar,\n .ag-theme-blue .ag-charts-data-group-title-bar,\n .ag-theme-blue .ag-charts-format-top-level-group-title-bar {\n border-top: solid 1px;\n border-top-color: #9bc2e6;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, #9bc2e6)); }\n .ag-theme-blue .ag-charts-settings-group-container {\n padding: 4px; }\n .ag-theme-blue .ag-charts-data-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-blue .ag-charts-data-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-blue .ag-charts-format-top-level-group-container {\n margin-left: 8px;\n padding: 4px; }\n .ag-theme-blue .ag-charts-format-top-level-group-item {\n margin: 4px 0; }\n .ag-theme-blue .ag-charts-format-sub-level-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-blue .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-blue .ag-charts-group-container.ag-group-container-horizontal {\n padding: 4px; }\n .ag-theme-blue .ag-chart-data-section,\n .ag-theme-blue .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-blue .ag-chart-menu-panel {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-blue .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: #9bc2e6;\n border-left-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: #9bc2e6;\n border-right-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-blue .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-blue .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-blue .ag-checkbox-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-blue .ag-checkbox-input-wrapper input, .ag-theme-blue .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-blue .ag-checkbox-input-wrapper:focus-within, .ag-theme-blue .ag-checkbox-input-wrapper:active {\n outline: none; }\n .ag-theme-blue .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-blue .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #222;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-blue .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #222;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-blue .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #222;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222)));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-blue .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 24px;\n height: 12px;\n background-color: #222;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222)));\n border-radius: 6px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #222;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-blue .ag-toggle-button-input-wrapper:focus-within {\n outline: none; }\n .ag-theme-blue .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-blue .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #222;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222)));\n border-color: #222;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 12px;\n width: 12px;\n background-color: #fff;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #fff));\n border-radius: 6px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #222;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222)))); }\n .ag-theme-blue .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 12px);\n border-color: #222;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222))); }\n .ag-theme-blue .ag-radio-button-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 12px; }\n .ag-theme-blue .ag-radio-button-input-wrapper input, .ag-theme-blue .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-blue .ag-radio-button-input-wrapper:focus-within, .ag-theme-blue .ag-radio-button-input-wrapper:active {\n outline: none; }\n .ag-theme-blue .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-blue .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #222;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-blue .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #222;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-blue input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-blue input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #9bc2e6;\n background-color: var(--ag-border-color, #9bc2e6);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-blue input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #9bc2e6;\n background-color: var(--ag-border-color, #9bc2e6);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-blue input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #9bc2e6;\n background-color: var(--ag-border-color, #9bc2e6);\n border-radius: 0px;\n border-radius: 0px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-blue input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #222;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222));\n border-radius: 12px;\n -webkit-transform: translateY(-4.5px);\n transform: translateY(-4.5px); }\n .ag-theme-blue input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #222;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222));\n border-radius: 12px; }\n .ag-theme-blue input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #222;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #222));\n border-radius: 12px; }\n .ag-theme-blue input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-blue input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n border-color: #222;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue input[class^='ag-'][type='range']:focus::-ms-thumb {\n border-color: #222;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n border-color: #222;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #222)); }\n .ag-theme-blue input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-blue input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-blue input[class^='ag-'][type='range']:active::-ms-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-blue input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\n .ag-theme-blue .ag-icon {\n color: #333;\n margin: 1px 1px 2px 1px; }\n .ag-theme-blue .ag-icon-tree-closed::before {\n content: \"\\f10b\"; }\n .ag-theme-blue .ag-icon-tree-open::before {\n content: \"\\f111\"; }\n .ag-theme-blue .ag-header, .ag-theme-blue .ag-column-drop-cell {\n background-image: none; }\n .ag-theme-blue .ag-tab {\n border: 1px solid transparent;\n padding: 4px 8px;\n margin: 4px;\n margin-bottom: -1px; }\n .ag-theme-blue .ag-tabs-body {\n margin: 2px 0; }\n .ag-theme-blue .ag-tab-selected {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n border-bottom-color: transparent; }\n .ag-theme-blue .ag-tabs-header {\n background-color: #5e9cd3;\n background-color: var(--ag-header-background-color, #5e9cd3);\n border-bottom: 1px solid;\n border-bottom-color: #9bc2e6;\n border-bottom-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-filter .ag-filter-apply-panel {\n justify-content: flex-start; }\n .ag-theme-blue .ag-menu-option-active {\n background-color: #c8c8c8;\n background-color: var(--ag-selected-row-background-color, #c8c8c8); }\n .ag-theme-blue .ag-column-drop-cell {\n border: 1px solid;\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6);\n border-radius: 0; }\n .ag-theme-blue .ag-column-drop-cell-button .ag-icon {\n border: 1px solid transparent; }\n .ag-theme-blue .ag-column-drop-cell-button:hover .ag-icon {\n border-color: #9bc2e6;\n border-color: var(--ag-border-color, #9bc2e6); }\n .ag-theme-blue .ag-panel-title-bar-button-icon {\n font-size: 20px;\n line-height: 20px; }\n .ag-theme-blue .ag-menu-option-part {\n padding-top: 4px;\n padding-bottom: 4px; }\n .ag-theme-blue .ag-column-drop-vertical-title-bar {\n margin-top: 4px;\n margin-left: 4px; }\n .ag-theme-blue .ag-column-drop-vertical-title {\n margin-left: 4px; }\n .ag-theme-blue .ag-column-drop-vertical-empty-message {\n margin-left: 24px; }\n\n", ""]);
53802// Exports
53803module.exports = exports;
53804
53805
53806/***/ }),
53807/* 271 */
53808/***/ (function(module, exports, __webpack_require__) {
53809
53810var api = __webpack_require__(258);
53811 var content = __webpack_require__(272);
53812
53813 content = content.__esModule ? content.default : content;
53814
53815 if (typeof content === 'string') {
53816 content = [[module.i, content, '']];
53817 }
53818
53819var options = {};
53820
53821options.insert = "head";
53822options.singleton = false;
53823
53824var update = api(content, options);
53825
53826
53827
53828module.exports = content.locals || {};
53829
53830/***/ }),
53831/* 272 */
53832/***/ (function(module, exports, __webpack_require__) {
53833
53834// Imports
53835var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53836exports = ___CSS_LOADER_API_IMPORT___(false);
53837// Module
53838exports.push([module.i, ".ag-theme-bootstrap {\n -webkit-font-smoothing: antialiased;\n color: #000;\n color: var(--ag-foreground-color, #000);\n font-family: \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridClassic\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABXwAAsAAAAAKrgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2Zoxou09TLzIAAANsAAAAQQAAAFZWVlMSY21hcAAAA7AAAAIbAAAFnIlT7KJnbHlmAAAFzAAADBkAABg4HeN0mGhlYWQAABHoAAAANAAAADZ2z8SBaGhlYQAAEhwAAAAeAAAAJAfTBCxobXR4AAASPAAAABgAAAE4yyH/7GxvY2EAABJUAAAAdgAAAJ5JCULobWF4cAAAEswAAAAfAAAAIAFkAKpuYW1lAAAS7AAAATMAAAJS8kTiWnBvc3QAABQgAAABzQAAArBhTs2TeJx9lMtOU1EUhv/DaREoAlG8pCIiGi+oiMrxXHpoy6WH1tbEgTEOnGBMjAlxxHP4AD4BQ5/AB3DgE/gADhw6Nn5r9WCFAey03Xtd/vXvf62NAklTWlNTYzvF4KVm9vcOPqquioZ/5v9/H+x/eL+niaMTvor/TiioTGtGy3qtA30LZoKD4HBsPqyHr8J34efwS/hLIVFLWiW6pqesWAnfkVJlaijXmMaxxew34BOymmq59RyMqu7pqqfL1IzJ6Tniip7xmQOncJyOtolKWYbZ4XvAuqfZUyJy3Qc/g80m1gqKLKJJrnlNgp4Q01Sb/Cb+89TcoXaEv8BXwK6KpcW+rQtwsoyKq9rVGz3Bbzc1lKzMSfnE2vVz5Kc1NDmKaoHToJZhr8LgyN6gakLGY9AzorZKRVd0k+wGOB3Q2p694dnLRCZwS3WDnd0zges08Zle6K1X3S1zOq7pUIFV2I/shePlenjM2gZrQOwjOIys1p8H1IrUx1+jV4X29UmH+qrv+qGf+q0/OqOL1En8Dtug75yqzQQKnozu4m39s9pdx5mBk1HHIya5ecPVifH1Sg2tWo2bmTop+whr6vFT8LT4Lmxy+lGhRuR1rdNV1ibnmOiz5XQ2WdOudI8pmPUJ7vss1HWHvi064nAOc7S+CqLthvyuuG5N8Ba8b6auvbA5P9lbsH7XmdVr/EbcMHOdnuO9jsWQRpYlz8phbxjr+HNYj6oZqwVYresuPpuxvr+OLpVucZ8hk4QIexl9n6/bMMjKlzpPD419u+zYJY+LPSvgP0FUvvDUtbOZLuBm8zH4C3G+c6UAeJxjYGSazTiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMX9i4ALSjCA5AOaCCwgAAAB4nLXUB1IbQRCF4V+BLMA22eQcBQaTcxAiHwJnCgcKZ87hs/kefQL8Rt0+AK7yVn3bO1Or3ZlavQaqgJzMSB6ytWR0RSar2UxlPkd9ZT7Pb40L1JLVdZErbrizhft7zRa55Jpby1RGf4+M7i7QwxjLGh2yxAE7lFnlXDN7rLPPLkdsssEJK2yzxjFnbFHilAv9Pq0irzVWU6P31mklDXpiI0084jEttNJGOx100kW33tRLH/0MMMgQw4wwyjgTTDLFtHZSZJY5njHPgs7PNVrUIqt52HH4wPvTsXSwU149X97TjnePNje02e2147Ot0unFPzzsPxyFdMr9itEZ6Yu6tNvLsCQvwoG8DDvyKpTldViVN+Fc3ob0b3gX9uQqrMt12Jf3YVc+hCP5GDblU9iQm3Ait2FFPodt+RLW5Gs4lm8h7f172JIfoSQ/w6ncBX1Ay7iUF8s6Us25lC/Lu5Qxq3Ipe1btSLXGkWqtI9U6R6r1LmXSGhypFlz6ktboSLXJkWqzU3awoBRhQXnCnjglC2txyhjW6pQ2rM0pd1i7UwKxDqcsYp1OqcS6nPKJPXVKKtbtlFmsxym9WK9TjrE+p0Rj/U7ZxgacUo4NOuUdG3JKPjbs1AOwEadugI069QVszKlDYONOvQKbcKkv2qRLebApp96BTTv1FGzGqa9gRac+g806dRxszlXuCepC2LyrPHPBsfgHpKymyQB4nO1Ye2wUxxnfmfXt3t57d+92zxycvXf4FkNico+99QMMGOOzcWzTnIMJaQ04GMWYRDEESJqktAElJErSShFVqUmAqj0XmlQFI+XRBxKpGleRGqePNKnyKn+0Sdq4pHXS6uRb+s3eww8ooPSfVu3Zu/P6Zuabb34z3+9bClHwo5P0IMVRFFJkVvEpIq3QSWN4717Un7v/9dfxAfzT8fERtBftBRFT/n36faoSChqr6jKr8oqZ6ApvJjKvmAmroHNdqbGxlnWIXgdpap2RW9cCaZdhkPpUF8J0JdcFVS1dlzblu1LFOdfTj1FWKLAqBw8fRt9+th/1ob7+Z47jXc9uRX3G01ufyX1YlMcTeIKym/KgC2gD+uCJljOjqTNnUqNnWkbRqmJutOUMZaGoiwas6wNKpMKUSi2hllKURQnVII1PNKK4EgsiH+91IVoJMZCRoCYJTREU58NVcV+YhpTenhOV+lCoXsEfwUupV3Iej9/vwRd4Wc59N51GHen0SHc3DtWF8Mfwgv+cG17012U+x/N+P4//wsvGqPF2JoOOGZth2bP0WgzrKSoSnlbOMkcnFsF6RZnebioRKik1MUOdAWPi74kT59fSHxSVKCp180xdXjRsP1t1EB1dRM3VRb02XWhFU66oyO+N06jzKloYzgzZ0lnzX9vsV5r5KpOS9cKi76G3AjqslJ+iAHgyh2i9AjEs/Pm8EsySUCMq/pOxqf42I4cax8Ze/oHdXu6WomuikrscnUPHG6DBeAktHxtrdDqDgUh5KBoNlVfND5LhGXOOQ/QhmI0FvLphbTJFVfnAbPDQc1J03DhNNxmnM7OS7Aj8UEcGfqiT5KmC7h8UbLX02qyFAMe+sBbW4lqcHgwRi4Hl8hYkljMtQyxnvDJi/vIWFAoWnChYUAQJHn8E23aGqDRCUUV9mugmc5U86BPnFS0MN4XCK7Sm8HEND2cMRwZNpo1R1DFijKbxsFnOQvk4VGap0l3wAP0AOdscgu1gOQQ3go4mkbDHmDBfxsQeJMALb59VRAIU8za/OEXfSf+Z8oB1FlCt1Jepp2DoCOykZYZF6LCGQEFGlhqQWOV14XCopkxLNOI4saWXCUXUGhSGDt4giiX1RhSTZGLgEFRriWQsSMcJPmqQWoOJuWNBXOiU71OBJDmI4WZK6tFGsj9enxu5MGzPUhq6S/Qd7La7LEanqusqTqp6y6jRhB7BiLZ4foeNTZwQ9Hpkr8dmcfoVUV4o2pzWMqvXLc93yJUSg60u2ykhJC3gnR7OZWWtbgcv2QWPN8ALFZLg5602J1tmcQcFxm4RBLtTsC1bshjT2Gq3WrCGWZvbweA4jWyCFf/RuudBC65Vp141lXlkfOpR+p7flHN87mu/dVQERasQqKzyhbSId74qcG6b0+dNxCqXSH6/ze1yl1dLbnuVYHfZy3mHLLh4K8OKSk2V6PT5fR6b3S2ITs7O0SxrYcUFT/zwR5ydsbFOm4X7Nee2ci7uF27O5hGo/+/df/XeFf34QdOP83FgC+TgfufYM/3G08bT/ehe7MpNQuEo2tIPomVz9rrtqvusQ2skkYzHpAq0ApNtk3xeN5Jhe1woFFmKWAKEiJa48vZcf0s7x1q8bl70LFtpczFOq1v0dXY7bJzgFco29JRxPNRcybBj9w66nHbJI/o3bnQLFovHwS+44163T3BxHLPvi4yV4d2mTf4X1vjZeAPxelfy3k8YjquxhtFMZtr3vEzrVDkVpZbB/LqcjEuyJLvAoQM7RMkVSAuHwKerYg1WGTaIZEmXGWJp+EuCgGl1FeSRkoisaHr4vqEN1Xc0aqsqXcYva9pVW+OS2uv3/SH5+WW25kT0sc7052Jf2LhlfWPd0tjG3eiNdS0uQQoq9obraNeiG4Sym9r3L7890hxfZEf7bBilLYwrYLzN1G7QYq3Nt0l++8r5Ni5R1Rhb+9CNxuForyjLFfPi3YHptcjgQxdRSVgLWYdJRwq6JiFP6iS9qDS5ldSqyHIUJnIyiOhoiqyga8/9D371fqLkLbu+cldzYmVv3+13bV6/1lTW0XL73oGUDa1Ftq5kKlm1KBlZRvvodPuDezq6HI61keWx9gPtN5+MtW7QaxlGj20VZamyvPbWRLK3nnbOX4ys9nntXiuLqTx3M3nODuBSEGmICuJVLeqLa2mTx2ToQWC9m0ay3d0FWTwF/J02oxI+zAOhVVkZrUhjz0sv1WazeMJwoEmj+dw5KBBxR4FfnJ3FowJUxTSb14HdFB90lbwCHGgkk8ma/8BC/lUOHctkxjMm8Tp2aQIqWQrrPgtnW6GqqGrqesJ9TDIHXKtA60oPH9YUFPZBLJF/quBBx4HVgY2A4ZGUsCMz3dyNOgvTmerQg2kwXyadhSSbxqlsTkij493AndLp/xg95uxtVZiPIxKdsXgqnc5dMDc3O2Nn8z7jGL3e9BkykD0SoqJtJ/Je4iSuR8dO5OPAk4Ro4oufXvyU/hv9VypBDeZPB+MmdB08txrR4aCDc5bztS4UxFDRiIhb16IRkoUmcv+yZjORk+MS6aQm1CgRM+WDuNgM5AEa9aQawV+q83oX1R6o62y/sWOnF351rbZyAWEelzHlAa+gtbUF9s8XxADnx+XVVskmCUis67ixvbPuQO0iEBd8yCZZF/ux084FRDGwP9DWpgneQDlTBoMgodzWWkfGhZk62w/DTKSw0xyglfO4tJhVYOYFWtuSXjFwINDaGuB4T8hfbcWMh8xkqnSg9jCIC24WW6v9IQ/H2ojggYDoTba1BuYxgjWmuTxcq7mKmef2EJymCvPmZOF4wKUJcQLcnHBMYPMgWojrmhpmfTh1eM/hN96AV6aU+cajfX2P9uEfz6okmdzzfaTJ9IEzY9zoNUberBnUIx3ucFm/cuz90bup6HDtEfR26r3oU7VPXSUAzzWm3rnhCIg/8F4qCmnJh0zHaWaEhgoPfWjqJ3RT/snmIzEShxX9+2dZm25+toAlkovvymu7753UDUf0YZRIvUuUvtrasoW1PQkmOaIfKX0veRzOpIXsMDmN6FbzJKJY8YLNn8MA/SvKOf0NxuRvMhoe6EcqUvsHBvqNN403+wfwqe1QA7ntxkPboQ7athd4wEWwxYeUl1pIxQkPICfMQ5xXJXFVHvBMSQs5s/EYyZLYeik5jqZvBt5NTufkwbuHmtasaRq62/h491BTc3PT0G40nnsuuaopNbRlk14ny4vbtFWrodBbW+eXF9MfgvBu48LunUR4527kgW5rPsk9t1iW6/TevqFU08pkW76wZai1aVWyhPsmehB2252PViFEjcvkpoSoldxq27KZkbRxOo0maX+uHw+nR8j992/2RaU4GUoozMthVg3r5DrGE72nsul09lQvmgT3NzaQzQ6g2nTex5QwpgArqKVWXB5lhOSYMGsAn6pZIPIm7DL/Dc881OR0i8QBkC8nczCXu3Mfwdy+EXpl7kUc5OV/OBuGhhocZx1msmM8dx63yJegD1/I5OGHU3DBv+Dn0TLHjH5OnMp8iZfnYND09vjxORjEM/BTDVImKDwEQpUELR4CIdaElJe0hEyiTFrQ5MMlpLiL6DlogqVO37TlPAAFfr1bLo+Umwkuzvf1EuHePhDW62ZjudrkYZfDsmyqSGArmYAm34oiIuHpNShhho2XhfPDQ0WNzhd1fGT1roO7Vpuva9bS2Nxc6LJ613T8dbTgS1Wdg0fR8P7v9aMtxtH+E7mf49TJfCh2YqSE40HAsZOSCA8DWlC6oyyFT71xAPDz6WgIt4aixuiO+vHx+h3d4MDfQguNt8iXLrRw/o6G8fGGHejJaXzjYTI6sMAR/E1jFA8bp0v30DBgH5NvOzzhF2gSdeS2zW3DeepBrwLSODpnTA4RgtKRlyi0ZegUwRUHATuiM7nXjFf2nEUv4NdyryFtN+Sm9WolO0uOACiW2wbgJNUlThGmUlQP3P2Sdy6nqECkrsAokjGZlmIlpsB4obXAE0gP1qyTEcEDioTyBSmGb2LZnhn0oYcV2U6G2QBcgDjnHtbLhuDpIS4e6MEGhukEiZ4ZNKCHZbH/Opdr6luuiAtSutcVefVSmY7Zo6Dvz56k41I1pj65DkaE4WBU1QnD/xPnjHQ0AAAAeJxjYGRgYADiY81JvPH8Nl8ZuJlfAAWiOB/va4DR/7/9/8b8mfkTUCUHAxOQZAAAhKEPOXicY2BkYGB+wcAAIv9/+/+V+TMDIwMq8AMAnl4HBgAAeJxjYGBgYH5Bb/z/Gy3NZqADAAB/FDOneJxjYAACCYYghiyGFoYLjGKMYYx9jAcY3zCZMEUwVTFHsJix+LEcYDViLWK9wWbC5sWWwraB7Qu7BXsAewaHAIcTxxSODZxMnCKcZpw9nKs4T3A+4nLhCuOaw/WNm4/bgtuNO4Q7ibuAu4V7Eo8M6RAAslkbZAAAeJxjYGRgYPBjmMfAwwACTEDMBYQMDP/BfAYAIQYCDwB4nH2QvU7DMBSFT/qHaAWqBGJgMgsLUvqz0bVSs3foniZ2miqNg+NW6s5z8AQ8R5+Dp2DmxHgpErUl57vfPfcOATDECQGaE+DGvc1p4YrVL7dJ95475CfPXQwQeu7Rv3ru4wULzwPc4Y0bgs41zSPePbdwiw/PbfpPzx3yyXMXD/jy3KP/9tzHKhh6HuA5UHEWmTydF3Fd58lSZvsiNmfurFhJU+e6FJNwfOYjWUoTW5mK9VHUh2xqrRLK6J1Y6NLKotCiMnorExturK1mo5HyPkz0DjEyRDDIkWKOgnXNmyPBEpK9vXPmQu7/zoobjGONEgIT/vfxhXzEfOlmYlh+U86sceRb48CpKa2FYq2Y0diRFm53ky54NU3leluahD7Exk1VmGHEq/7kQ6a46QfFq20TAHicbZIHb9swEIX9xZKt2GmTpm269x5q6+6990h/A0PRMhGZFEjKdvLry9pBgQA9gIf3Dod37w5sLbUW0Wv9PzZZok1CSocuGcv06LPCAQ6yyhqHWOcwRzjKBsc4zglOcorTnOEs5zjPBS5yictc4SrXuM4NbnKL2+Tc4S73GHCfBzzkEY95wlOe8ZwXvOQVr3nDW97xng985BOf+cJXvvGdH/zkF5v8bvVFWTpViqCt6Qjn7NS3hZcdKYxUVSpHwoU1OVJye8vO8jlQxca/gjaFCsqNtRFBrf8rN2avc0Xayrq81pG4biTN2PietCY4IYMqEmnrnVQ6631b+kkaXz5ICuVlqmbRQHee80GmZrWIs4pltaNyXwk/akfUGeoqjk+H2vmQlE7XaelsU3fnOSrFxpBUahg6lTbRT7eyotCmzMZipsd6VyVjZZos+l8wo2YhMdaovrEhF1Vlp6pI66iiuvOcD9q1NmmtJzZktVMTbRu/5qKozbeaEKzJ7XC4ur9gUqfLUUi8mKieH0fZvLBTswf/2usv4LwtW+CmTkI823pwSu2/c9aYxTYIShyKgMZimOKRVIzYZotZ/CMFYxpqdpgwZLfV+gPpZLiDAAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-bootstrap .ag-icon {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-bootstrap .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-bootstrap .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-bootstrap .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-bootstrap .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-bootstrap .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-bootstrap .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-bootstrap .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-bootstrap .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-bootstrap .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-bootstrap .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-bootstrap .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-bootstrap .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-bootstrap .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-bootstrap .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-bootstrap .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-bootstrap .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-bootstrap .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-bootstrap .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-bootstrap .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-bootstrap .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-bootstrap .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-bootstrap .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-bootstrap .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-bootstrap .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-bootstrap .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-bootstrap .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-bootstrap .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-bootstrap .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-bootstrap .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-bootstrap .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-bootstrap .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-bootstrap .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-bootstrap .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-bootstrap .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-bootstrap .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-bootstrap .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-bootstrap .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-bootstrap .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-bootstrap .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-bootstrap .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-bootstrap .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-bootstrap .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-bootstrap .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-bootstrap .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-bootstrap .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-bootstrap .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-bootstrap .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-bootstrap .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-bootstrap .ag-root-wrapper {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap [class^='ag-'], .ag-theme-bootstrap [class^='ag-']:focus, .ag-theme-bootstrap [class^='ag-']:after, .ag-theme-bootstrap [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-bootstrap [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-bootstrap .ag-checkbox .ag-input-wrapper,\n .ag-theme-bootstrap .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-bootstrap .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-bootstrap .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-bootstrap .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 4px; }\n .ag-theme-bootstrap input[class^='ag-'] {\n margin: 0;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap textarea[class^='ag-'],\n .ag-theme-bootstrap select[class^='ag-'] {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap input[class^='ag-']:not([type]),\n .ag-theme-bootstrap input[class^='ag-'][type='text'],\n .ag-theme-bootstrap input[class^='ag-'][type='number'],\n .ag-theme-bootstrap input[class^='ag-'][type='tel'],\n .ag-theme-bootstrap input[class^='ag-'][type='date'],\n .ag-theme-bootstrap input[class^='ag-'][type='datetime-local'],\n .ag-theme-bootstrap textarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #000;\n border-color: var(--ag-input-border-color, #000); }\n .ag-theme-bootstrap input[class^='ag-']:not([type]):disabled,\n .ag-theme-bootstrap input[class^='ag-'][type='text']:disabled,\n .ag-theme-bootstrap input[class^='ag-'][type='number']:disabled,\n .ag-theme-bootstrap input[class^='ag-'][type='tel']:disabled,\n .ag-theme-bootstrap input[class^='ag-'][type='date']:disabled,\n .ag-theme-bootstrap input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-bootstrap textarea[class^='ag-']:disabled {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n background-color: #ebebeb;\n background-color: var(--ag-input-disabled-background-color, #ebebeb);\n border-color: rgba(0, 0, 0, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(0, 0, 0, 0.3)); }\n .ag-theme-bootstrap input[class^='ag-']:not([type]):focus,\n .ag-theme-bootstrap input[class^='ag-'][type='text']:focus,\n .ag-theme-bootstrap input[class^='ag-'][type='number']:focus,\n .ag-theme-bootstrap input[class^='ag-'][type='tel']:focus,\n .ag-theme-bootstrap input[class^='ag-'][type='date']:focus,\n .ag-theme-bootstrap input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-bootstrap textarea[class^='ag-']:focus {\n outline: none;\n border-color: var(--ag-input-focus-border-color); }\n .ag-theme-bootstrap input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-bootstrap input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-bootstrap input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-bootstrap input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-bootstrap .ag-drag-handle {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-list-item, .ag-theme-bootstrap .ag-virtual-list-item {\n height: 20px; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-select-list {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-bootstrap .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-bootstrap .ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-bootstrap .ag-select .ag-picker-field-wrapper {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n min-height: 20px;\n cursor: default; }\n .ag-theme-bootstrap .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-bootstrap .ag-select:not(.ag-cell-editor) {\n height: 20px; }\n .ag-theme-bootstrap .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-bootstrap .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-bootstrap .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-rich-select {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-bootstrap .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 162.5px; }\n .ag-theme-bootstrap .ag-rich-select-value {\n padding: 0 4px 0 12px;\n height: 25px; }\n .ag-theme-bootstrap .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 20px; }\n .ag-theme-bootstrap .ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-bootstrap .ag-rich-select-row {\n padding-left: 12px; }\n .ag-theme-bootstrap .ag-rich-select-row-selected {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-bootstrap .ag-row-drag,\n .ag-theme-bootstrap .ag-selection-checkbox,\n .ag-theme-bootstrap .ag-group-expanded,\n .ag-theme-bootstrap .ag-group-contracted {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-ltr .ag-row-drag, .ag-theme-bootstrap .ag-ltr .ag-selection-checkbox, .ag-theme-bootstrap .ag-ltr .ag-group-expanded, .ag-theme-bootstrap .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-drag, .ag-theme-bootstrap .ag-rtl .ag-selection-checkbox, .ag-theme-bootstrap .ag-rtl .ag-group-expanded, .ag-theme-bootstrap .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-bootstrap .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 23px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-bootstrap .ag-group-expanded,\n .ag-theme-bootstrap .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-bootstrap .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-bootstrap .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-bootstrap .ag-group-title-bar {\n background-color: #ececec;\n background-color: var(--ag-subheader-background-color, #ececec);\n padding: 4px; }\n .ag-theme-bootstrap .ag-group-toolbar {\n padding: 4px; }\n .ag-theme-bootstrap .ag-disabled-group-title-bar, .ag-theme-bootstrap .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-bootstrap .group-item {\n margin: 2px 0; }\n .ag-theme-bootstrap .ag-label {\n white-space: nowrap; }\n .ag-theme-bootstrap .ag-ltr .ag-label {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-label {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-label-align-top .ag-label {\n margin-bottom: 2px; }\n .ag-theme-bootstrap .ag-ltr .ag-slider-field, .ag-theme-bootstrap .ag-ltr .ag-angle-select-field {\n margin-right: 8px; }\n .ag-theme-bootstrap .ag-rtl .ag-slider-field, .ag-theme-bootstrap .ag-rtl .ag-angle-select-field {\n margin-left: 8px; }\n .ag-theme-bootstrap .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap .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: #000;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 5px; }\n .ag-theme-bootstrap .ag-picker-field-button {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-bootstrap .ag-color-picker .ag-picker-field-display {\n height: 12px; }\n .ag-theme-bootstrap .ag-color-panel {\n padding: 4px; }\n .ag-theme-bootstrap .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-bootstrap .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-bootstrap .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-bootstrap .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-bootstrap .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-bootstrap .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-bootstrap .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-bootstrap .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-bootstrap .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-bootstrap .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-bootstrap.ag-dnd-ghost {\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000));\n height: 25px !important;\n line-height: 25px;\n margin: 0;\n padding: 0 8px;\n -webkit-transform: translateY(8px);\n transform: translateY(8px); }\n .ag-theme-bootstrap .ag-dnd-ghost-icon {\n margin-right: 4px;\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-bootstrap .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-bootstrap .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-bootstrap .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-bootstrap .ag-dialog {\n border-radius: 0px; }\n .ag-theme-bootstrap .ag-panel {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap .ag-panel-title-bar {\n background-color: var(--ag-header-background-color);\n color: #000;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)));\n height: 25px;\n padding: 4px 12px; }\n .ag-theme-bootstrap .ag-ltr .ag-panel-title-bar-button {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-panel-title-bar-button {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-tooltip {\n background-color: var(--ag-header-background-color);\n color: #000;\n color: var(--ag-foreground-color, #000);\n padding: 4px;\n border-radius: 0px;\n transition: opacity 1s; }\n .ag-theme-bootstrap .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-1 {\n padding-left: 16px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-1 {\n padding-right: 16px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-2 {\n padding-left: 32px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-2 {\n padding-right: 32px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-3 {\n padding-left: 48px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-3 {\n padding-right: 48px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-4 {\n padding-left: 64px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-4 {\n padding-right: 64px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-5 {\n padding-left: 80px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-5 {\n padding-right: 80px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-6 {\n padding-left: 96px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-6 {\n padding-right: 96px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-7 {\n padding-left: 112px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-7 {\n padding-right: 112px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-8 {\n padding-left: 128px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-8 {\n padding-right: 128px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-indent-9 {\n padding-left: 144px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-indent-9 {\n padding-right: 144px; }\n .ag-theme-bootstrap .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-bootstrap .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 6px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-bootstrap .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 6px; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-column-select-column-group:not(:last-child),\n .ag-theme-bootstrap .ag-column-select-column:not(:last-child) {\n margin-bottom: 4px; }\n .ag-theme-bootstrap .ag-column-select-column-readonly,\n .ag-theme-bootstrap .ag-column-select-column-group-readonly {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n pointer-events: none; }\n .ag-theme-bootstrap .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 20px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 20px; }\n .ag-theme-bootstrap .ag-column-select-virtual-list-viewport {\n padding: 3px 0px; }\n .ag-theme-bootstrap .ag-column-select-virtual-list-item {\n margin: 0 6px; }\n .ag-theme-bootstrap .ag-rtl {\n text-align: right; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 36px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 36px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-1 {\n padding-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-1 {\n padding-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 60px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 60px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-2 {\n padding-left: 48px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-2 {\n padding-right: 48px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-3 {\n padding-left: 72px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-3 {\n padding-right: 72px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 108px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 108px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-4 {\n padding-left: 96px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-4 {\n padding-right: 96px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 132px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 132px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-5 {\n padding-left: 120px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-5 {\n padding-right: 120px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 156px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 156px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-6 {\n padding-left: 144px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-6 {\n padding-right: 144px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 180px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 180px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-7 {\n padding-left: 168px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-7 {\n padding-right: 168px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 204px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 204px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-8 {\n padding-left: 192px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-8 {\n padding-right: 192px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 228px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 228px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-9 {\n padding-left: 216px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-9 {\n padding-right: 216px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 252px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 252px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-10 {\n padding-left: 240px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-10 {\n padding-right: 240px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 276px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 276px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-11 {\n padding-left: 264px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-11 {\n padding-right: 264px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 300px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 300px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-12 {\n padding-left: 288px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-12 {\n padding-right: 288px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 324px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 324px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-13 {\n padding-left: 312px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-13 {\n padding-right: 312px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 348px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 348px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-14 {\n padding-left: 336px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-14 {\n padding-right: 336px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 372px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 372px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-15 {\n padding-left: 360px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-15 {\n padding-right: 360px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 396px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 396px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-16 {\n padding-left: 384px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-16 {\n padding-right: 384px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 420px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 420px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-17 {\n padding-left: 408px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-17 {\n padding-right: 408px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 444px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 444px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-18 {\n padding-left: 432px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-18 {\n padding-right: 432px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 468px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 468px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-19 {\n padding-left: 456px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-19 {\n padding-right: 456px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 492px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 492px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-20 {\n padding-left: 480px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-20 {\n padding-right: 480px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 516px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 516px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-21 {\n padding-left: 504px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-21 {\n padding-right: 504px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 540px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 540px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-22 {\n padding-left: 528px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-22 {\n padding-right: 528px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 564px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 564px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-23 {\n padding-left: 552px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-23 {\n padding-right: 552px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 588px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 588px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-24 {\n padding-left: 576px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-24 {\n padding-right: 576px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 612px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 612px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-25 {\n padding-left: 600px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-25 {\n padding-right: 600px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 636px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 636px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-26 {\n padding-left: 624px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-26 {\n padding-right: 624px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 660px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 660px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-27 {\n padding-left: 648px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-27 {\n padding-right: 648px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 684px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 684px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-28 {\n padding-left: 672px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-28 {\n padding-right: 672px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 708px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 708px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-29 {\n padding-left: 696px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-29 {\n padding-right: 696px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 732px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 732px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-30 {\n padding-left: 720px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-30 {\n padding-right: 720px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 756px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 756px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-31 {\n padding-left: 744px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-31 {\n padding-right: 744px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 780px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 780px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-32 {\n padding-left: 768px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-32 {\n padding-right: 768px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 804px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 804px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-33 {\n padding-left: 792px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-33 {\n padding-right: 792px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 828px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 828px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-34 {\n padding-left: 816px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-34 {\n padding-right: 816px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 852px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 852px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-35 {\n padding-left: 840px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-35 {\n padding-right: 840px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 876px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 876px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-36 {\n padding-left: 864px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-36 {\n padding-right: 864px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 900px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 900px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-37 {\n padding-left: 888px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-37 {\n padding-right: 888px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 924px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 924px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-38 {\n padding-left: 912px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-38 {\n padding-right: 912px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 948px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 948px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-39 {\n padding-left: 936px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-39 {\n padding-right: 936px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 972px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 972px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-40 {\n padding-left: 960px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-40 {\n padding-right: 960px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 996px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 996px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-41 {\n padding-left: 984px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-41 {\n padding-right: 984px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1020px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1020px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1008px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1008px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1044px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1044px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1032px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1032px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1068px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1068px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1056px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1056px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1092px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1092px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1080px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1080px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1116px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1116px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1104px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1104px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1140px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1140px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1128px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1128px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1164px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1164px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1152px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1152px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1188px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1188px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1176px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1176px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1212px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1212px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1200px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1200px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1236px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1236px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1224px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1224px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1260px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1260px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1248px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1248px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1284px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1284px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1272px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1272px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1308px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1308px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1296px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1296px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1332px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1332px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1320px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1320px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1356px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1356px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1344px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1344px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1380px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1380px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1368px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1368px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1404px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1404px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1392px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1392px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1428px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1428px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1416px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1416px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1452px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1452px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1440px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1440px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1476px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1476px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1464px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1464px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1500px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1500px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1488px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1488px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1524px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1524px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1512px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1512px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1548px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1548px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1536px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1536px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1572px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1572px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1560px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1560px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1596px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1596px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1584px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1584px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1620px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1620px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1608px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1608px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1644px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1644px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1632px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1632px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1668px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1668px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1656px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1656px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1692px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1692px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1680px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1680px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 1716px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 1716px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1704px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1704px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 1740px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 1740px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-72 {\n padding-left: 1728px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-72 {\n padding-right: 1728px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 1764px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 1764px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-73 {\n padding-left: 1752px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-73 {\n padding-right: 1752px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 1788px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 1788px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-74 {\n padding-left: 1776px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-74 {\n padding-right: 1776px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 1812px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 1812px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-75 {\n padding-left: 1800px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-75 {\n padding-right: 1800px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 1836px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 1836px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-76 {\n padding-left: 1824px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-76 {\n padding-right: 1824px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 1860px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 1860px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-77 {\n padding-left: 1848px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-77 {\n padding-right: 1848px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 1884px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 1884px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-78 {\n padding-left: 1872px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-78 {\n padding-right: 1872px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 1908px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 1908px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-79 {\n padding-left: 1896px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-79 {\n padding-right: 1896px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 1932px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 1932px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-80 {\n padding-left: 1920px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-80 {\n padding-right: 1920px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 1956px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 1956px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-81 {\n padding-left: 1944px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-81 {\n padding-right: 1944px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 1980px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 1980px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-82 {\n padding-left: 1968px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-82 {\n padding-right: 1968px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2004px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2004px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-83 {\n padding-left: 1992px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-83 {\n padding-right: 1992px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2028px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2028px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2016px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2016px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2052px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2052px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2040px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2040px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2076px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2076px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2064px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2064px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2100px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2100px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2088px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2088px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2124px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2124px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2112px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2112px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2148px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2148px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2136px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2136px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2172px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2172px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2160px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2160px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2196px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2196px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2184px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2184px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2220px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2220px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2208px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2208px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2244px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2244px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2232px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2232px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2268px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2268px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2256px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2256px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2292px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2292px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2280px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2280px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2316px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2316px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2304px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2304px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2340px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2340px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2328px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2328px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2364px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2364px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2352px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2352px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2388px; }\n .ag-theme-bootstrap .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2388px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2376px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2376px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 24px; }\n .ag-theme-bootstrap .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 24px; }\n .ag-theme-bootstrap .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-bootstrap .ag-value-change-delta-up {\n color: darkgreen;\n color: var(--ag-value-change-delta-up-color, darkgreen); }\n .ag-theme-bootstrap .ag-value-change-delta-down {\n color: darkred;\n color: var(--ag-value-change-delta-down-color, darkred); }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-value-change-value-highlight {\n background-color: #cec;\n background-color: var(--ag-value-change-value-highlight-background-color, #cec);\n transition: background-color 0.1s; }\n .ag-theme-bootstrap .ag-cell-data-changed {\n background-color: #cec !important;\n background-color: var(--ag-value-change-value-highlight-background-color, #cec) !important; }\n .ag-theme-bootstrap .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-cell-highlight {\n background-color: rgba(136, 255, 136, 0.4) !important;\n background-color: var(--ag-range-selection-highlight-color, rgba(136, 255, 136, 0.4)) !important; }\n .ag-theme-bootstrap .ag-row {\n height: 25px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n color: #000;\n color: var(--ag-data-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-row-highlight-above::after, .ag-theme-bootstrap .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #000;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000));\n left: 1px; }\n .ag-theme-bootstrap .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-bootstrap .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-bootstrap .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-bootstrap .ag-row-odd {\n background-color: #f6f6f6;\n background-color: var(--ag-odd-row-background-color, #f6f6f6); }\n .ag-theme-bootstrap .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-bootstrap .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-bootstrap .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-bootstrap .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-bootstrap .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-bootstrap .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-bootstrap .ag-cell, .ag-theme-bootstrap .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 23px;\n padding-left: 11px;\n padding-right: 11px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-bootstrap .ag-row > .ag-cell-wrapper {\n padding-left: 11px;\n padding-right: 11px; }\n .ag-theme-bootstrap .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-cell-inline-editing {\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0;\n height: 25px;\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-bootstrap .ag-popup-editor {\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n padding: 0; }\n .ag-theme-bootstrap .ag-large-text-input {\n height: auto;\n padding: 12px; }\n .ag-theme-bootstrap .ag-details-row {\n padding: 20px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-bootstrap .ag-layout-auto-height .ag-center-cols-container, .ag-theme-bootstrap .ag-layout-print .ag-center-cols-clipper, .ag-theme-bootstrap .ag-layout-print .ag-center-cols-container {\n min-height: 50px; }\n .ag-theme-bootstrap .ag-overlay-loading-wrapper {\n background-color: rgba(255, 255, 255, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66)); }\n .ag-theme-bootstrap .ag-overlay-loading-center {\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px; }\n .ag-theme-bootstrap .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-bootstrap .ag-loading {\n padding-left: 12px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-bootstrap .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-bootstrap .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-bootstrap .ag-ltr .ag-cell {\n border-right: solid transparent; }\n .ag-theme-bootstrap .ag-rtl .ag-cell {\n border-left: solid transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-bootstrap .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-bootstrap .ag-row-selected {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-bootstrap .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-bootstrap .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(0, 0, 0, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(0, 0, 0, 0.2)); }\n .ag-theme-bootstrap .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-bootstrap .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-bootstrap .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-bootstrap .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-bootstrap .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-bootstrap .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: rgba(0, 0, 0, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(0, 0, 0, 0.2))); }\n .ag-theme-bootstrap .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-bootstrap .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(0, 0, 0, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(0, 0, 0, 0.36)); }\n .ag-theme-bootstrap .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-bootstrap .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(0, 0, 0, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(0, 0, 0, 0.488)); }\n .ag-theme-bootstrap .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-bootstrap .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(0, 0, 0, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(0, 0, 0, 0.5904)); }\n .ag-theme-bootstrap .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #000;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #000;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #000;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #000;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-bootstrap .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-bootstrap .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-bootstrap .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-bootstrap .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-bootstrap .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-bootstrap .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-bootstrap .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-bootstrap .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-bootstrap .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000));\n outline: initial; }\n .ag-theme-bootstrap .ag-cell.ag-selection-fill-top,\n .ag-theme-bootstrap .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #000;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-bootstrap .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #000;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-bootstrap .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #000;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-cell.ag-selection-fill-bottom,\n .ag-theme-bootstrap .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #000;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-bootstrap .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #000;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-bootstrap .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #000;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-fill-handle, .ag-theme-bootstrap .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #000;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-ltr .ag-fill-handle, .ag-theme-bootstrap .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-bootstrap .ag-rtl .ag-fill-handle, .ag-theme-bootstrap .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-bootstrap .ag-fill-handle {\n cursor: cell; }\n .ag-theme-bootstrap .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-bootstrap .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important; }\n .ag-theme-bootstrap .ag-menu {\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0; }\n .ag-theme-bootstrap .ag-menu-list {\n cursor: default;\n padding: 4px 0; }\n .ag-theme-bootstrap .ag-menu-separator {\n height: 9px; }\n .ag-theme-bootstrap .ag-menu-separator-part::after {\n content: \"\";\n display: block; }\n .ag-theme-bootstrap .ag-menu-option-active, .ag-theme-bootstrap .ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-bootstrap .ag-menu-option-part, .ag-theme-bootstrap .ag-compact-menu-option-part {\n line-height: 12px;\n padding: 6px 0; }\n .ag-theme-bootstrap .ag-menu-option-disabled, .ag-theme-bootstrap .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-menu-option-icon, .ag-theme-bootstrap .ag-compact-menu-option-icon {\n width: 12px; }\n .ag-theme-bootstrap .ag-ltr .ag-menu-option-icon, .ag-theme-bootstrap .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 8px; }\n .ag-theme-bootstrap .ag-rtl .ag-menu-option-icon, .ag-theme-bootstrap .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 8px; }\n .ag-theme-bootstrap .ag-menu-option-text, .ag-theme-bootstrap .ag-compact-menu-option-text {\n padding-left: 8px;\n padding-right: 8px; }\n .ag-theme-bootstrap .ag-ltr .ag-menu-option-shortcut, .ag-theme-bootstrap .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-menu-option-shortcut, .ag-theme-bootstrap .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 4px; }\n .ag-theme-bootstrap .ag-menu-option-popup-pointer, .ag-theme-bootstrap .ag-compact-menu-option-popup-pointer {\n padding-right: 4px; }\n .ag-theme-bootstrap .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-bootstrap .ag-tab {\n border-bottom: 0 solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-tab-selected {\n border-bottom-color: #000;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-menu-header {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 8px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 8px; }\n .ag-theme-bootstrap .ag-set-filter-select-all {\n padding-top: 6px; }\n .ag-theme-bootstrap .ag-set-filter-list, .ag-theme-bootstrap .ag-filter-no-matches {\n height: 120px; }\n .ag-theme-bootstrap .ag-set-filter-filter {\n margin-top: 6px;\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-bootstrap .ag-filter-to {\n margin-top: 4px; }\n .ag-theme-bootstrap .ag-mini-filter {\n margin: 6px 6px; }\n .ag-theme-bootstrap .ag-set-filter-item {\n margin: 0px 6px; }\n .ag-theme-bootstrap .ag-ltr .ag-set-filter-item-value {\n margin-left: 6px; }\n .ag-theme-bootstrap .ag-rtl .ag-set-filter-item-value {\n margin-right: 6px; }\n .ag-theme-bootstrap .ag-filter-apply-panel {\n padding: 6px 6px; }\n .ag-theme-bootstrap .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 8px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 8px; }\n .ag-theme-bootstrap .ag-simple-filter-body-wrapper {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-bootstrap .ag-simple-filter-body-wrapper > * {\n margin-bottom: 4px; }\n .ag-theme-bootstrap .ag-filter-no-matches {\n padding: 6px 6px; }\n .ag-theme-bootstrap .ag-multi-filter-menu-item {\n margin: 4px 0; }\n .ag-theme-bootstrap .ag-multi-filter-group-title-bar {\n padding: 8px 4px;\n background-color: transparent; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-side-bar {\n position: relative; }\n .ag-theme-bootstrap .ag-tool-panel-wrapper {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-bootstrap .ag-side-buttons {\n padding-top: 16px;\n width: 16px;\n position: relative;\n color: #000;\n color: var(--ag-foreground-color, #000);\n overflow: hidden; }\n .ag-theme-bootstrap button.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: 8px 0 8px 0;\n width: 100%;\n margin: 0;\n min-height: 72px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none; }\n .ag-theme-bootstrap button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-bootstrap .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-bootstrap .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 0 solid transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-bootstrap .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #000;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-bootstrap .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 0 solid transparent; }\n .ag-theme-bootstrap .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-bootstrap .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #000;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-filter-toolpanel-header {\n height: 24px; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-header, .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-header, .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 4px; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 4px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-0-header {\n height: 32px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-item {\n margin-top: 2px;\n margin-bottom: 2px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-search {\n height: 25px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 16px; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 20px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 20px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 36px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 36px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 52px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 52px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 68px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 68px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 84px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 84px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 100px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 100px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 116px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 116px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 132px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 132px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 148px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 148px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 164px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 164px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 4px; }\n .ag-theme-bootstrap .ag-filter-toolpanel-instance-filter {\n margin-top: 4px; }\n .ag-theme-bootstrap .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-pivot-mode-panel {\n height: 25px;\n display: flex; }\n .ag-theme-bootstrap .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-bootstrap .ag-ltr .ag-pivot-mode-select {\n margin-left: 6px; }\n .ag-theme-bootstrap .ag-rtl .ag-pivot-mode-select {\n margin-right: 6px; }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-column-select-header {\n height: 25px;\n align-items: center;\n padding: 0 6px; }\n .ag-theme-bootstrap .ag-column-group-icons,\n .ag-theme-bootstrap .ag-column-select-header-icon {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-header {\n background-color: var(--ag-header-background-color); }\n .ag-theme-bootstrap .ag-header-row {\n color: #000;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)));\n height: 25px; }\n .ag-theme-bootstrap .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-header-cell,\n .ag-theme-bootstrap .ag-header-group-cell {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-bootstrap .ag-header-cell.ag-header-cell-moving,\n .ag-theme-bootstrap .ag-header-group-cell.ag-header-cell-moving {\n background-color: #bebebe;\n background-color: var(--ag-header-cell-moving-background-color, #bebebe); }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-header-icon {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-bootstrap .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-bootstrap .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-bootstrap .ag-ltr .ag-header-select-all {\n margin-right: 12px; }\n .ag-theme-bootstrap .ag-rtl .ag-header-select-all {\n margin-left: 12px; }\n .ag-theme-bootstrap .ag-ltr .ag-floating-filter-button {\n margin-left: 12px; }\n .ag-theme-bootstrap .ag-rtl .ag-floating-filter-button {\n margin-right: 12px; }\n .ag-theme-bootstrap .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 12px;\n padding: 0;\n width: 12px; }\n .ag-theme-bootstrap .ag-filter-loading {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n height: 100%;\n padding: 6px 6px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-bootstrap .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000));\n height: 25px; }\n .ag-theme-bootstrap .ag-paging-panel > * {\n margin: 0 12px; }\n .ag-theme-bootstrap .ag-paging-button {\n cursor: pointer; }\n .ag-theme-bootstrap .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5)); }\n .ag-theme-bootstrap .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-bootstrap .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 .ag-theme-bootstrap .ag-paging-button, .ag-theme-bootstrap .ag-paging-description {\n margin: 0 4px; }\n .ag-theme-bootstrap .ag-status-bar {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n padding-right: 16px;\n padding-left: 16px;\n line-height: 1.5; }\n .ag-theme-bootstrap .ag-status-name-value-value {\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-bootstrap .ag-status-bar-center {\n text-align: center; }\n .ag-theme-bootstrap .ag-status-name-value {\n margin-left: 4px;\n margin-right: 4px;\n padding-top: 8px;\n padding-bottom: 8px; }\n .ag-theme-bootstrap .ag-column-drop-cell {\n background: #ecf0f1;\n background: var(--ag-chip-background-color, #ecf0f1);\n border-radius: 16px;\n height: 16px;\n padding: 0 2px; }\n .ag-theme-bootstrap .ag-column-drop-cell-text {\n margin: 0 4px; }\n .ag-theme-bootstrap .ag-column-drop-cell-button {\n min-width: 16px;\n margin: 0 2px;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-column-drop-cell-drag-handle {\n margin-left: 8px; }\n .ag-theme-bootstrap .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-column-drop-horizontal {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000));\n height: 25px; }\n .ag-theme-bootstrap .ag-ltr .ag-column-drop-horizontal {\n padding-left: 12px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-drop-horizontal {\n padding-right: 12px; }\n .ag-theme-bootstrap .ag-column-drop-horizontal-cell-separator {\n margin: 0 4px;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-column-drop-horizontal-empty-message {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5)); }\n .ag-theme-bootstrap .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 12px; }\n .ag-theme-bootstrap .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 12px; }\n .ag-theme-bootstrap .ag-column-drop-vertical-list {\n padding-bottom: 4px;\n padding-right: 4px;\n padding-left: 4px; }\n .ag-theme-bootstrap .ag-column-drop-vertical-cell {\n margin-top: 4px; }\n .ag-theme-bootstrap .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px; }\n .ag-theme-bootstrap .ag-column-drop-vertical-icon {\n margin-left: 4px;\n margin-right: 4px; }\n .ag-theme-bootstrap .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: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n margin-top: 4px; }\n .ag-theme-bootstrap .ag-select-agg-func-popup {\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n height: 70px;\n padding: 0; }\n .ag-theme-bootstrap .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 20px;\n padding-left: 8px; }\n .ag-theme-bootstrap .ag-select-agg-func-virtual-list-item:hover {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-bootstrap .ag-chart-menu {\n border-radius: 0px;\n background: #FFF;\n background: var(--ag-background-color, #FFF); }\n .ag-theme-bootstrap .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: 0px;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-bootstrap .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-bootstrap .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-bootstrap .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-bootstrap .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-bootstrap .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-bootstrap .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-bootstrap .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-bootstrap .ag-chart-mini-thumbnail.ag-selected {\n border-color: #000;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-chart-settings-card-item {\n background: #000;\n background: var(--ag-foreground-color, #000);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-bootstrap .ag-chart-settings-card-item.ag-selected {\n background-color: #000;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-chart-data-column-drag-handle {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-charts-settings-group-container {\n padding: 4px; }\n .ag-theme-bootstrap .ag-charts-data-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-bootstrap .ag-charts-data-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-bootstrap .ag-charts-format-top-level-group-container {\n margin-left: 8px;\n padding: 4px; }\n .ag-theme-bootstrap .ag-charts-format-top-level-group-item {\n margin: 4px 0; }\n .ag-theme-bootstrap .ag-charts-format-sub-level-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-bootstrap .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-bootstrap .ag-charts-group-container.ag-group-container-horizontal {\n padding: 4px; }\n .ag-theme-bootstrap .ag-chart-data-section,\n .ag-theme-bootstrap .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-bootstrap .ag-chart-menu-panel {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-bootstrap .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-bootstrap .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-bootstrap .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-bootstrap .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-bootstrap .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper input, .ag-theme-bootstrap .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper:focus-within, .ag-theme-bootstrap .ag-checkbox-input-wrapper:active {\n outline: none; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #000;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #000;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-bootstrap .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #000;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000)));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 24px;\n height: 12px;\n background-color: #000;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000)));\n border-radius: 6px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper:focus-within {\n outline: none; }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #000;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)));\n border-color: #000;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 12px;\n width: 12px;\n background-color: #FFF;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #FFF));\n border-radius: 6px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000)))); }\n .ag-theme-bootstrap .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 12px);\n border-color: #000;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-bootstrap .ag-radio-button-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 12px; }\n .ag-theme-bootstrap .ag-radio-button-input-wrapper input, .ag-theme-bootstrap .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-bootstrap .ag-radio-button-input-wrapper:focus-within, .ag-theme-bootstrap .ag-radio-button-input-wrapper:active {\n outline: none; }\n .ag-theme-bootstrap .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #000;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-bootstrap .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #000;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-bootstrap input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-bootstrap input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-bootstrap input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-bootstrap input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n border-radius: 12px;\n -webkit-transform: translateY(-4.5px);\n transform: translateY(-4.5px); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n border-radius: 12px; }\n .ag-theme-bootstrap input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n border-radius: 12px; }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n border-color: #000;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:focus::-ms-thumb {\n border-color: #000;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n border-color: #000;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:active::-ms-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-bootstrap input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\n .ag-theme-bootstrap .ag-icon {\n color: #333;\n margin: 1px 1px 2px 1px; }\n .ag-theme-bootstrap .ag-icon-tree-closed::before {\n content: \"\\f10b\"; }\n .ag-theme-bootstrap .ag-icon-tree-open::before {\n content: \"\\f111\"; }\n .ag-theme-bootstrap .ag-header, .ag-theme-bootstrap .ag-column-drop-cell {\n background-image: none; }\n .ag-theme-bootstrap .ag-tab {\n border: 1px solid transparent;\n padding: 4px 8px;\n margin: 4px;\n margin-bottom: -1px; }\n .ag-theme-bootstrap .ag-tabs-body {\n margin: 2px 0; }\n .ag-theme-bootstrap .ag-tab-selected {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-bottom-color: transparent; }\n .ag-theme-bootstrap .ag-tabs-header {\n background-color: var(--ag-header-background-color);\n border-bottom: 1px solid;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-bootstrap .ag-filter .ag-filter-apply-panel {\n justify-content: flex-start; }\n .ag-theme-bootstrap .ag-menu-option-active {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-bootstrap .ag-column-drop-cell {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 0; }\n .ag-theme-bootstrap .ag-column-drop-cell-button .ag-icon {\n border: 1px solid transparent; }\n .ag-theme-bootstrap .ag-column-drop-cell-button:hover .ag-icon {\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-bootstrap .ag-panel-title-bar-button-icon {\n font-size: 20px;\n line-height: 20px; }\n .ag-theme-bootstrap .ag-menu-option-part {\n padding-top: 4px;\n padding-bottom: 4px; }\n .ag-theme-bootstrap .ag-column-drop-vertical-title-bar {\n margin-top: 4px;\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-column-drop-vertical-title {\n margin-left: 4px; }\n .ag-theme-bootstrap .ag-column-drop-vertical-empty-message {\n margin-left: 24px; }\n\n", ""]);
53839// Exports
53840module.exports = exports;
53841
53842
53843/***/ }),
53844/* 273 */
53845/***/ (function(module, exports, __webpack_require__) {
53846
53847var api = __webpack_require__(258);
53848 var content = __webpack_require__(274);
53849
53850 content = content.__esModule ? content.default : content;
53851
53852 if (typeof content === 'string') {
53853 content = [[module.i, content, '']];
53854 }
53855
53856var options = {};
53857
53858options.insert = "head";
53859options.singleton = false;
53860
53861var update = api(content, options);
53862
53863
53864
53865module.exports = content.locals || {};
53866
53867/***/ }),
53868/* 274 */
53869/***/ (function(module, exports, __webpack_require__) {
53870
53871// Imports
53872var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53873exports = ___CSS_LOADER_API_IMPORT___(false);
53874// Module
53875exports.push([module.i, ".ag-theme-dark {\n -webkit-font-smoothing: antialiased;\n color: #ccc;\n color: var(--ag-foreground-color, #ccc);\n font-family: \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridClassic\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABXwAAsAAAAAKrgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2Zoxou09TLzIAAANsAAAAQQAAAFZWVlMSY21hcAAAA7AAAAIbAAAFnIlT7KJnbHlmAAAFzAAADBkAABg4HeN0mGhlYWQAABHoAAAANAAAADZ2z8SBaGhlYQAAEhwAAAAeAAAAJAfTBCxobXR4AAASPAAAABgAAAE4yyH/7GxvY2EAABJUAAAAdgAAAJ5JCULobWF4cAAAEswAAAAfAAAAIAFkAKpuYW1lAAAS7AAAATMAAAJS8kTiWnBvc3QAABQgAAABzQAAArBhTs2TeJx9lMtOU1EUhv/DaREoAlG8pCIiGi+oiMrxXHpoy6WH1tbEgTEOnGBMjAlxxHP4AD4BQ5/AB3DgE/gADhw6Nn5r9WCFAey03Xtd/vXvf62NAklTWlNTYzvF4KVm9vcOPqquioZ/5v9/H+x/eL+niaMTvor/TiioTGtGy3qtA30LZoKD4HBsPqyHr8J34efwS/hLIVFLWiW6pqesWAnfkVJlaijXmMaxxew34BOymmq59RyMqu7pqqfL1IzJ6Tniip7xmQOncJyOtolKWYbZ4XvAuqfZUyJy3Qc/g80m1gqKLKJJrnlNgp4Q01Sb/Cb+89TcoXaEv8BXwK6KpcW+rQtwsoyKq9rVGz3Bbzc1lKzMSfnE2vVz5Kc1NDmKaoHToJZhr8LgyN6gakLGY9AzorZKRVd0k+wGOB3Q2p694dnLRCZwS3WDnd0zges08Zle6K1X3S1zOq7pUIFV2I/shePlenjM2gZrQOwjOIys1p8H1IrUx1+jV4X29UmH+qrv+qGf+q0/OqOL1En8Dtug75yqzQQKnozu4m39s9pdx5mBk1HHIya5ecPVifH1Sg2tWo2bmTop+whr6vFT8LT4Lmxy+lGhRuR1rdNV1ibnmOiz5XQ2WdOudI8pmPUJ7vss1HWHvi064nAOc7S+CqLthvyuuG5N8Ba8b6auvbA5P9lbsH7XmdVr/EbcMHOdnuO9jsWQRpYlz8phbxjr+HNYj6oZqwVYresuPpuxvr+OLpVucZ8hk4QIexl9n6/bMMjKlzpPD419u+zYJY+LPSvgP0FUvvDUtbOZLuBm8zH4C3G+c6UAeJxjYGSazTiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMX9i4ALSjCA5AOaCCwgAAAB4nLXUB1IbQRCF4V+BLMA22eQcBQaTcxAiHwJnCgcKZ87hs/kefQL8Rt0+AK7yVn3bO1Or3ZlavQaqgJzMSB6ytWR0RSar2UxlPkd9ZT7Pb40L1JLVdZErbrizhft7zRa55Jpby1RGf4+M7i7QwxjLGh2yxAE7lFnlXDN7rLPPLkdsssEJK2yzxjFnbFHilAv9Pq0irzVWU6P31mklDXpiI0084jEttNJGOx100kW33tRLH/0MMMgQw4wwyjgTTDLFtHZSZJY5njHPgs7PNVrUIqt52HH4wPvTsXSwU149X97TjnePNje02e2147Ot0unFPzzsPxyFdMr9itEZ6Yu6tNvLsCQvwoG8DDvyKpTldViVN+Fc3ob0b3gX9uQqrMt12Jf3YVc+hCP5GDblU9iQm3Ait2FFPodt+RLW5Gs4lm8h7f172JIfoSQ/w6ncBX1Ay7iUF8s6Us25lC/Lu5Qxq3Ipe1btSLXGkWqtI9U6R6r1LmXSGhypFlz6ktboSLXJkWqzU3awoBRhQXnCnjglC2txyhjW6pQ2rM0pd1i7UwKxDqcsYp1OqcS6nPKJPXVKKtbtlFmsxym9WK9TjrE+p0Rj/U7ZxgacUo4NOuUdG3JKPjbs1AOwEadugI069QVszKlDYONOvQKbcKkv2qRLebApp96BTTv1FGzGqa9gRac+g806dRxszlXuCepC2LyrPHPBsfgHpKymyQB4nO1Ye2wUxxnfmfXt3t57d+92zxycvXf4FkNico+99QMMGOOzcWzTnIMJaQ04GMWYRDEESJqktAElJErSShFVqUmAqj0XmlQFI+XRBxKpGleRGqePNKnyKn+0Sdq4pHXS6uRb+s3eww8ooPSfVu3Zu/P6Zuabb34z3+9bClHwo5P0IMVRFFJkVvEpIq3QSWN4717Un7v/9dfxAfzT8fERtBftBRFT/n36faoSChqr6jKr8oqZ6ApvJjKvmAmroHNdqbGxlnWIXgdpap2RW9cCaZdhkPpUF8J0JdcFVS1dlzblu1LFOdfTj1FWKLAqBw8fRt9+th/1ob7+Z47jXc9uRX3G01ufyX1YlMcTeIKym/KgC2gD+uCJljOjqTNnUqNnWkbRqmJutOUMZaGoiwas6wNKpMKUSi2hllKURQnVII1PNKK4EgsiH+91IVoJMZCRoCYJTREU58NVcV+YhpTenhOV+lCoXsEfwUupV3Iej9/vwRd4Wc59N51GHen0SHc3DtWF8Mfwgv+cG17012U+x/N+P4//wsvGqPF2JoOOGZth2bP0WgzrKSoSnlbOMkcnFsF6RZnebioRKik1MUOdAWPi74kT59fSHxSVKCp180xdXjRsP1t1EB1dRM3VRb02XWhFU66oyO+N06jzKloYzgzZ0lnzX9vsV5r5KpOS9cKi76G3AjqslJ+iAHgyh2i9AjEs/Pm8EsySUCMq/pOxqf42I4cax8Ze/oHdXu6WomuikrscnUPHG6DBeAktHxtrdDqDgUh5KBoNlVfND5LhGXOOQ/QhmI0FvLphbTJFVfnAbPDQc1J03DhNNxmnM7OS7Aj8UEcGfqiT5KmC7h8UbLX02qyFAMe+sBbW4lqcHgwRi4Hl8hYkljMtQyxnvDJi/vIWFAoWnChYUAQJHn8E23aGqDRCUUV9mugmc5U86BPnFS0MN4XCK7Sm8HEND2cMRwZNpo1R1DFijKbxsFnOQvk4VGap0l3wAP0AOdscgu1gOQQ3go4mkbDHmDBfxsQeJMALb59VRAIU8za/OEXfSf+Z8oB1FlCt1Jepp2DoCOykZYZF6LCGQEFGlhqQWOV14XCopkxLNOI4saWXCUXUGhSGDt4giiX1RhSTZGLgEFRriWQsSMcJPmqQWoOJuWNBXOiU71OBJDmI4WZK6tFGsj9enxu5MGzPUhq6S/Qd7La7LEanqusqTqp6y6jRhB7BiLZ4foeNTZwQ9Hpkr8dmcfoVUV4o2pzWMqvXLc93yJUSg60u2ykhJC3gnR7OZWWtbgcv2QWPN8ALFZLg5602J1tmcQcFxm4RBLtTsC1bshjT2Gq3WrCGWZvbweA4jWyCFf/RuudBC65Vp141lXlkfOpR+p7flHN87mu/dVQERasQqKzyhbSId74qcG6b0+dNxCqXSH6/ze1yl1dLbnuVYHfZy3mHLLh4K8OKSk2V6PT5fR6b3S2ITs7O0SxrYcUFT/zwR5ydsbFOm4X7Nee2ci7uF27O5hGo/+/df/XeFf34QdOP83FgC+TgfufYM/3G08bT/ehe7MpNQuEo2tIPomVz9rrtqvusQ2skkYzHpAq0ApNtk3xeN5Jhe1woFFmKWAKEiJa48vZcf0s7x1q8bl70LFtpczFOq1v0dXY7bJzgFco29JRxPNRcybBj9w66nHbJI/o3bnQLFovHwS+44163T3BxHLPvi4yV4d2mTf4X1vjZeAPxelfy3k8YjquxhtFMZtr3vEzrVDkVpZbB/LqcjEuyJLvAoQM7RMkVSAuHwKerYg1WGTaIZEmXGWJp+EuCgGl1FeSRkoisaHr4vqEN1Xc0aqsqXcYva9pVW+OS2uv3/SH5+WW25kT0sc7052Jf2LhlfWPd0tjG3eiNdS0uQQoq9obraNeiG4Sym9r3L7890hxfZEf7bBilLYwrYLzN1G7QYq3Nt0l++8r5Ni5R1Rhb+9CNxuForyjLFfPi3YHptcjgQxdRSVgLWYdJRwq6JiFP6iS9qDS5ldSqyHIUJnIyiOhoiqyga8/9D371fqLkLbu+cldzYmVv3+13bV6/1lTW0XL73oGUDa1Ftq5kKlm1KBlZRvvodPuDezq6HI61keWx9gPtN5+MtW7QaxlGj20VZamyvPbWRLK3nnbOX4ys9nntXiuLqTx3M3nODuBSEGmICuJVLeqLa2mTx2ToQWC9m0ay3d0FWTwF/J02oxI+zAOhVVkZrUhjz0sv1WazeMJwoEmj+dw5KBBxR4FfnJ3FowJUxTSb14HdFB90lbwCHGgkk8ma/8BC/lUOHctkxjMm8Tp2aQIqWQrrPgtnW6GqqGrqesJ9TDIHXKtA60oPH9YUFPZBLJF/quBBx4HVgY2A4ZGUsCMz3dyNOgvTmerQg2kwXyadhSSbxqlsTkij493AndLp/xg95uxtVZiPIxKdsXgqnc5dMDc3O2Nn8z7jGL3e9BkykD0SoqJtJ/Je4iSuR8dO5OPAk4Ro4oufXvyU/hv9VypBDeZPB+MmdB08txrR4aCDc5bztS4UxFDRiIhb16IRkoUmcv+yZjORk+MS6aQm1CgRM+WDuNgM5AEa9aQawV+q83oX1R6o62y/sWOnF351rbZyAWEelzHlAa+gtbUF9s8XxADnx+XVVskmCUis67ixvbPuQO0iEBd8yCZZF/ux084FRDGwP9DWpgneQDlTBoMgodzWWkfGhZk62w/DTKSw0xyglfO4tJhVYOYFWtuSXjFwINDaGuB4T8hfbcWMh8xkqnSg9jCIC24WW6v9IQ/H2ojggYDoTba1BuYxgjWmuTxcq7mKmef2EJymCvPmZOF4wKUJcQLcnHBMYPMgWojrmhpmfTh1eM/hN96AV6aU+cajfX2P9uEfz6okmdzzfaTJ9IEzY9zoNUberBnUIx3ucFm/cuz90bup6HDtEfR26r3oU7VPXSUAzzWm3rnhCIg/8F4qCmnJh0zHaWaEhgoPfWjqJ3RT/snmIzEShxX9+2dZm25+toAlkovvymu7753UDUf0YZRIvUuUvtrasoW1PQkmOaIfKX0veRzOpIXsMDmN6FbzJKJY8YLNn8MA/SvKOf0NxuRvMhoe6EcqUvsHBvqNN403+wfwqe1QA7ntxkPboQ7athd4wEWwxYeUl1pIxQkPICfMQ5xXJXFVHvBMSQs5s/EYyZLYeik5jqZvBt5NTufkwbuHmtasaRq62/h491BTc3PT0G40nnsuuaopNbRlk14ny4vbtFWrodBbW+eXF9MfgvBu48LunUR4527kgW5rPsk9t1iW6/TevqFU08pkW76wZai1aVWyhPsmehB2252PViFEjcvkpoSoldxq27KZkbRxOo0maX+uHw+nR8j992/2RaU4GUoozMthVg3r5DrGE72nsul09lQvmgT3NzaQzQ6g2nTex5QwpgArqKVWXB5lhOSYMGsAn6pZIPIm7DL/Dc881OR0i8QBkC8nczCXu3Mfwdy+EXpl7kUc5OV/OBuGhhocZx1msmM8dx63yJegD1/I5OGHU3DBv+Dn0TLHjH5OnMp8iZfnYND09vjxORjEM/BTDVImKDwEQpUELR4CIdaElJe0hEyiTFrQ5MMlpLiL6DlogqVO37TlPAAFfr1bLo+Umwkuzvf1EuHePhDW62ZjudrkYZfDsmyqSGArmYAm34oiIuHpNShhho2XhfPDQ0WNzhd1fGT1roO7Vpuva9bS2Nxc6LJ613T8dbTgS1Wdg0fR8P7v9aMtxtH+E7mf49TJfCh2YqSE40HAsZOSCA8DWlC6oyyFT71xAPDz6WgIt4aixuiO+vHx+h3d4MDfQguNt8iXLrRw/o6G8fGGHejJaXzjYTI6sMAR/E1jFA8bp0v30DBgH5NvOzzhF2gSdeS2zW3DeepBrwLSODpnTA4RgtKRlyi0ZegUwRUHATuiM7nXjFf2nEUv4NdyryFtN+Sm9WolO0uOACiW2wbgJNUlThGmUlQP3P2Sdy6nqECkrsAokjGZlmIlpsB4obXAE0gP1qyTEcEDioTyBSmGb2LZnhn0oYcV2U6G2QBcgDjnHtbLhuDpIS4e6MEGhukEiZ4ZNKCHZbH/Opdr6luuiAtSutcVefVSmY7Zo6Dvz56k41I1pj65DkaE4WBU1QnD/xPnjHQ0AAAAeJxjYGRgYADiY81JvPH8Nl8ZuJlfAAWiOB/va4DR/7/9/8b8mfkTUCUHAxOQZAAAhKEPOXicY2BkYGB+wcAAIv9/+/+V+TMDIwMq8AMAnl4HBgAAeJxjYGBgYH5Bb/z/Gy3NZqADAAB/FDOneJxjYAACCYYghiyGFoYLjGKMYYx9jAcY3zCZMEUwVTFHsJix+LEcYDViLWK9wWbC5sWWwraB7Qu7BXsAewaHAIcTxxSODZxMnCKcZpw9nKs4T3A+4nLhCuOaw/WNm4/bgtuNO4Q7ibuAu4V7Eo8M6RAAslkbZAAAeJxjYGRgYPBjmMfAwwACTEDMBYQMDP/BfAYAIQYCDwB4nH2QvU7DMBSFT/qHaAWqBGJgMgsLUvqz0bVSs3foniZ2miqNg+NW6s5z8AQ8R5+Dp2DmxHgpErUl57vfPfcOATDECQGaE+DGvc1p4YrVL7dJ95475CfPXQwQeu7Rv3ru4wULzwPc4Y0bgs41zSPePbdwiw/PbfpPzx3yyXMXD/jy3KP/9tzHKhh6HuA5UHEWmTydF3Fd58lSZvsiNmfurFhJU+e6FJNwfOYjWUoTW5mK9VHUh2xqrRLK6J1Y6NLKotCiMnorExturK1mo5HyPkz0DjEyRDDIkWKOgnXNmyPBEpK9vXPmQu7/zoobjGONEgIT/vfxhXzEfOlmYlh+U86sceRb48CpKa2FYq2Y0diRFm53ky54NU3leluahD7Exk1VmGHEq/7kQ6a46QfFq20TAHicbZIHb9swEIX9xZKt2GmTpm269x5q6+6990h/A0PRMhGZFEjKdvLry9pBgQA9gIf3Dod37w5sLbUW0Wv9PzZZok1CSocuGcv06LPCAQ6yyhqHWOcwRzjKBsc4zglOcorTnOEs5zjPBS5yictc4SrXuM4NbnKL2+Tc4S73GHCfBzzkEY95wlOe8ZwXvOQVr3nDW97xng985BOf+cJXvvGdH/zkF5v8bvVFWTpViqCt6Qjn7NS3hZcdKYxUVSpHwoU1OVJye8vO8jlQxca/gjaFCsqNtRFBrf8rN2avc0Xayrq81pG4biTN2PietCY4IYMqEmnrnVQ6631b+kkaXz5ICuVlqmbRQHee80GmZrWIs4pltaNyXwk/akfUGeoqjk+H2vmQlE7XaelsU3fnOSrFxpBUahg6lTbRT7eyotCmzMZipsd6VyVjZZos+l8wo2YhMdaovrEhF1Vlp6pI66iiuvOcD9q1NmmtJzZktVMTbRu/5qKozbeaEKzJ7XC4ur9gUqfLUUi8mKieH0fZvLBTswf/2usv4LwtW+CmTkI823pwSu2/c9aYxTYIShyKgMZimOKRVIzYZotZ/CMFYxpqdpgwZLfV+gPpZLiDAAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-dark .ag-icon {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-dark .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-dark .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-dark .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-dark .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-dark .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-dark .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-dark .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-dark .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-dark .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-dark .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-dark .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-dark .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-dark .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-dark .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-dark .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-dark .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-dark .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-dark .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-dark .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-dark .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-dark .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-dark .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-dark .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-dark .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-dark .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-dark .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-dark .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-dark .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-dark .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-dark .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-dark .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-dark .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-dark .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-dark .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-dark .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-dark .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-dark .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-dark .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-dark .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-dark .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-dark .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-dark .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-dark .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-dark .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-dark .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-dark .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-dark .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-dark .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-dark .ag-root-wrapper {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e); }\n .ag-theme-dark [class^='ag-'], .ag-theme-dark [class^='ag-']:focus, .ag-theme-dark [class^='ag-']:after, .ag-theme-dark [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-dark [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-dark .ag-checkbox .ag-input-wrapper,\n .ag-theme-dark .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-dark .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-dark .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-dark .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 4px; }\n .ag-theme-dark input[class^='ag-'] {\n margin: 0;\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e); }\n .ag-theme-dark textarea[class^='ag-'],\n .ag-theme-dark select[class^='ag-'] {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e); }\n .ag-theme-dark input[class^='ag-']:not([type]),\n .ag-theme-dark input[class^='ag-'][type='text'],\n .ag-theme-dark input[class^='ag-'][type='number'],\n .ag-theme-dark input[class^='ag-'][type='tel'],\n .ag-theme-dark input[class^='ag-'][type='date'],\n .ag-theme-dark input[class^='ag-'][type='datetime-local'],\n .ag-theme-dark textarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #000;\n border-color: var(--ag-input-border-color, #000); }\n .ag-theme-dark input[class^='ag-']:not([type]):disabled,\n .ag-theme-dark input[class^='ag-'][type='text']:disabled,\n .ag-theme-dark input[class^='ag-'][type='number']:disabled,\n .ag-theme-dark input[class^='ag-'][type='tel']:disabled,\n .ag-theme-dark input[class^='ag-'][type='date']:disabled,\n .ag-theme-dark input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-dark textarea[class^='ag-']:disabled {\n color: rgba(204, 204, 204, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(204, 204, 204, 0.5));\n background-color: rgba(48, 46, 46, 0.3);\n background-color: var(--ag-input-disabled-background-color, rgba(48, 46, 46, 0.3));\n border-color: rgba(0, 0, 0, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(0, 0, 0, 0.3)); }\n .ag-theme-dark input[class^='ag-']:not([type]):focus,\n .ag-theme-dark input[class^='ag-'][type='text']:focus,\n .ag-theme-dark input[class^='ag-'][type='number']:focus,\n .ag-theme-dark input[class^='ag-'][type='tel']:focus,\n .ag-theme-dark input[class^='ag-'][type='date']:focus,\n .ag-theme-dark input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-dark textarea[class^='ag-']:focus {\n outline: none;\n border-color: var(--ag-input-focus-border-color); }\n .ag-theme-dark input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-dark input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-dark input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-dark input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-dark .ag-drag-handle {\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-list-item, .ag-theme-dark .ag-virtual-list-item {\n height: 20px; }\n .ag-theme-dark .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-select-list {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-dark .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-dark .ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-dark .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 .ag-theme-dark .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-dark .ag-select .ag-picker-field-wrapper {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n min-height: 20px;\n cursor: default; }\n .ag-theme-dark .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-dark .ag-select:not(.ag-cell-editor) {\n height: 20px; }\n .ag-theme-dark .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-dark .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-dark .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-dark .ag-rich-select {\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e); }\n .ag-theme-dark .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 162.5px; }\n .ag-theme-dark .ag-rich-select-value {\n padding: 0 4px 0 12px;\n height: 25px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 20px; }\n .ag-theme-dark .ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-dark .ag-rich-select-row {\n padding-left: 12px; }\n .ag-theme-dark .ag-rich-select-row-selected {\n background-color: #4a708b;\n background-color: var(--ag-selected-row-background-color, #4a708b); }\n .ag-theme-dark .ag-row-drag,\n .ag-theme-dark .ag-selection-checkbox,\n .ag-theme-dark .ag-group-expanded,\n .ag-theme-dark .ag-group-contracted {\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-ltr .ag-row-drag, .ag-theme-dark .ag-ltr .ag-selection-checkbox, .ag-theme-dark .ag-ltr .ag-group-expanded, .ag-theme-dark .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-dark .ag-rtl .ag-row-drag, .ag-theme-dark .ag-rtl .ag-selection-checkbox, .ag-theme-dark .ag-rtl .ag-group-expanded, .ag-theme-dark .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-dark .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 23px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-dark .ag-group-expanded,\n .ag-theme-dark .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-dark .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-dark .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-dark .ag-group-title-bar {\n background-color: #201f1f;\n background-color: var(--ag-subheader-background-color, #201f1f);\n padding: 4px; }\n .ag-theme-dark .ag-group-toolbar {\n padding: 4px; }\n .ag-theme-dark .ag-disabled-group-title-bar, .ag-theme-dark .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-dark .group-item {\n margin: 2px 0; }\n .ag-theme-dark .ag-label {\n white-space: nowrap; }\n .ag-theme-dark .ag-ltr .ag-label {\n margin-right: 4px; }\n .ag-theme-dark .ag-rtl .ag-label {\n margin-left: 4px; }\n .ag-theme-dark .ag-label-align-top .ag-label {\n margin-bottom: 2px; }\n .ag-theme-dark .ag-ltr .ag-slider-field, .ag-theme-dark .ag-ltr .ag-angle-select-field {\n margin-right: 8px; }\n .ag-theme-dark .ag-rtl .ag-slider-field, .ag-theme-dark .ag-rtl .ag-angle-select-field {\n margin-left: 8px; }\n .ag-theme-dark .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e); }\n .ag-theme-dark .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: #ccc;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 5px; }\n .ag-theme-dark .ag-picker-field-button {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-dark .ag-color-picker .ag-picker-field-display {\n height: 12px; }\n .ag-theme-dark .ag-color-panel {\n padding: 4px; }\n .ag-theme-dark .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-dark .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-dark .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-dark .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-dark .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 .ag-theme-dark .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-dark .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-dark .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-dark .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-dark .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-dark .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-dark .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-dark.ag-dnd-ghost {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc));\n height: 25px !important;\n line-height: 25px;\n margin: 0;\n padding: 0 8px;\n -webkit-transform: translateY(8px);\n transform: translateY(8px); }\n .ag-theme-dark .ag-dnd-ghost-icon {\n margin-right: 4px;\n color: #ccc;\n color: var(--ag-foreground-color, #ccc); }\n .ag-theme-dark .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-dark .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-dark .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-dark .ag-dialog {\n border-radius: 0px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-panel {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e); }\n .ag-theme-dark .ag-panel-title-bar {\n background-color: #626262;\n background-color: var(--ag-header-background-color, #626262);\n color: #ccc;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)));\n height: 25px;\n padding: 4px 12px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: 4px; }\n .ag-theme-dark .ag-tooltip {\n background-color: #626262;\n background-color: var(--ag-header-background-color, #626262);\n color: #ccc;\n color: var(--ag-foreground-color, #ccc);\n padding: 4px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n transition: opacity 1s; }\n .ag-theme-dark .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-1 {\n padding-left: 16px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-1 {\n padding-right: 16px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-2 {\n padding-left: 32px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-2 {\n padding-right: 32px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-3 {\n padding-left: 48px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-3 {\n padding-right: 48px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-4 {\n padding-left: 64px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-4 {\n padding-right: 64px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-5 {\n padding-left: 80px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-5 {\n padding-right: 80px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-6 {\n padding-left: 96px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-6 {\n padding-right: 96px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-7 {\n padding-left: 112px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-7 {\n padding-right: 112px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-8 {\n padding-left: 128px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-8 {\n padding-right: 128px; }\n .ag-theme-dark .ag-ltr .ag-column-select-indent-9 {\n padding-left: 144px; }\n .ag-theme-dark .ag-rtl .ag-column-select-indent-9 {\n padding-right: 144px; }\n .ag-theme-dark .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-dark .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-dark .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 6px; }\n .ag-theme-dark .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-dark .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 6px; }\n .ag-theme-dark .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-column-select-column-group:not(:last-child),\n .ag-theme-dark .ag-column-select-column:not(:last-child) {\n margin-bottom: 4px; }\n .ag-theme-dark .ag-column-select-column-readonly,\n .ag-theme-dark .ag-column-select-column-group-readonly {\n color: rgba(204, 204, 204, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(204, 204, 204, 0.5));\n pointer-events: none; }\n .ag-theme-dark .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 20px; }\n .ag-theme-dark .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 20px; }\n .ag-theme-dark .ag-column-select-virtual-list-viewport {\n padding: 3px 0px; }\n .ag-theme-dark .ag-column-select-virtual-list-item {\n margin: 0 6px; }\n .ag-theme-dark .ag-rtl {\n text-align: right; }\n .ag-theme-dark .ag-root-wrapper {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 36px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 36px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-1 {\n padding-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-1 {\n padding-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 60px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 60px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-2 {\n padding-left: 48px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-2 {\n padding-right: 48px; }\n .ag-theme-dark .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-3 {\n padding-left: 72px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-3 {\n padding-right: 72px; }\n .ag-theme-dark .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 108px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 108px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-4 {\n padding-left: 96px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-4 {\n padding-right: 96px; }\n .ag-theme-dark .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 132px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 132px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-5 {\n padding-left: 120px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-5 {\n padding-right: 120px; }\n .ag-theme-dark .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 156px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 156px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-6 {\n padding-left: 144px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-6 {\n padding-right: 144px; }\n .ag-theme-dark .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 180px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 180px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-7 {\n padding-left: 168px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-7 {\n padding-right: 168px; }\n .ag-theme-dark .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 204px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 204px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-8 {\n padding-left: 192px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-8 {\n padding-right: 192px; }\n .ag-theme-dark .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 228px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 228px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-9 {\n padding-left: 216px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-9 {\n padding-right: 216px; }\n .ag-theme-dark .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 252px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 252px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-10 {\n padding-left: 240px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-10 {\n padding-right: 240px; }\n .ag-theme-dark .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 276px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 276px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-11 {\n padding-left: 264px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-11 {\n padding-right: 264px; }\n .ag-theme-dark .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 300px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 300px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-12 {\n padding-left: 288px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-12 {\n padding-right: 288px; }\n .ag-theme-dark .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 324px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 324px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-13 {\n padding-left: 312px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-13 {\n padding-right: 312px; }\n .ag-theme-dark .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 348px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 348px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-14 {\n padding-left: 336px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-14 {\n padding-right: 336px; }\n .ag-theme-dark .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 372px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 372px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-15 {\n padding-left: 360px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-15 {\n padding-right: 360px; }\n .ag-theme-dark .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 396px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 396px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-16 {\n padding-left: 384px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-16 {\n padding-right: 384px; }\n .ag-theme-dark .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 420px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 420px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-17 {\n padding-left: 408px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-17 {\n padding-right: 408px; }\n .ag-theme-dark .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 444px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 444px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-18 {\n padding-left: 432px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-18 {\n padding-right: 432px; }\n .ag-theme-dark .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 468px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 468px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-19 {\n padding-left: 456px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-19 {\n padding-right: 456px; }\n .ag-theme-dark .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 492px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 492px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-20 {\n padding-left: 480px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-20 {\n padding-right: 480px; }\n .ag-theme-dark .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 516px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 516px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-21 {\n padding-left: 504px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-21 {\n padding-right: 504px; }\n .ag-theme-dark .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 540px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 540px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-22 {\n padding-left: 528px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-22 {\n padding-right: 528px; }\n .ag-theme-dark .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 564px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 564px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-23 {\n padding-left: 552px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-23 {\n padding-right: 552px; }\n .ag-theme-dark .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 588px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 588px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-24 {\n padding-left: 576px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-24 {\n padding-right: 576px; }\n .ag-theme-dark .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 612px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 612px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-25 {\n padding-left: 600px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-25 {\n padding-right: 600px; }\n .ag-theme-dark .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 636px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 636px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-26 {\n padding-left: 624px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-26 {\n padding-right: 624px; }\n .ag-theme-dark .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 660px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 660px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-27 {\n padding-left: 648px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-27 {\n padding-right: 648px; }\n .ag-theme-dark .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 684px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 684px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-28 {\n padding-left: 672px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-28 {\n padding-right: 672px; }\n .ag-theme-dark .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 708px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 708px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-29 {\n padding-left: 696px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-29 {\n padding-right: 696px; }\n .ag-theme-dark .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 732px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 732px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-30 {\n padding-left: 720px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-30 {\n padding-right: 720px; }\n .ag-theme-dark .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 756px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 756px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-31 {\n padding-left: 744px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-31 {\n padding-right: 744px; }\n .ag-theme-dark .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 780px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 780px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-32 {\n padding-left: 768px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-32 {\n padding-right: 768px; }\n .ag-theme-dark .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 804px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 804px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-33 {\n padding-left: 792px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-33 {\n padding-right: 792px; }\n .ag-theme-dark .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 828px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 828px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-34 {\n padding-left: 816px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-34 {\n padding-right: 816px; }\n .ag-theme-dark .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 852px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 852px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-35 {\n padding-left: 840px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-35 {\n padding-right: 840px; }\n .ag-theme-dark .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 876px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 876px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-36 {\n padding-left: 864px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-36 {\n padding-right: 864px; }\n .ag-theme-dark .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 900px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 900px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-37 {\n padding-left: 888px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-37 {\n padding-right: 888px; }\n .ag-theme-dark .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 924px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 924px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-38 {\n padding-left: 912px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-38 {\n padding-right: 912px; }\n .ag-theme-dark .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 948px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 948px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-39 {\n padding-left: 936px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-39 {\n padding-right: 936px; }\n .ag-theme-dark .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 972px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 972px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-40 {\n padding-left: 960px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-40 {\n padding-right: 960px; }\n .ag-theme-dark .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 996px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 996px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-41 {\n padding-left: 984px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-41 {\n padding-right: 984px; }\n .ag-theme-dark .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1020px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1020px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1008px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1008px; }\n .ag-theme-dark .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1044px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1044px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1032px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1032px; }\n .ag-theme-dark .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1068px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1068px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1056px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1056px; }\n .ag-theme-dark .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1092px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1092px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1080px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1080px; }\n .ag-theme-dark .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1116px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1116px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1104px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1104px; }\n .ag-theme-dark .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1140px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1140px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1128px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1128px; }\n .ag-theme-dark .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1164px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1164px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1152px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1152px; }\n .ag-theme-dark .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1188px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1188px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1176px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1176px; }\n .ag-theme-dark .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1212px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1212px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1200px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1200px; }\n .ag-theme-dark .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1236px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1236px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1224px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1224px; }\n .ag-theme-dark .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1260px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1260px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1248px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1248px; }\n .ag-theme-dark .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1284px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1284px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1272px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1272px; }\n .ag-theme-dark .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1308px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1308px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1296px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1296px; }\n .ag-theme-dark .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1332px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1332px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1320px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1320px; }\n .ag-theme-dark .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1356px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1356px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1344px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1344px; }\n .ag-theme-dark .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1380px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1380px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1368px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1368px; }\n .ag-theme-dark .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1404px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1404px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1392px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1392px; }\n .ag-theme-dark .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1428px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1428px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1416px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1416px; }\n .ag-theme-dark .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1452px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1452px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1440px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1440px; }\n .ag-theme-dark .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1476px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1476px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1464px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1464px; }\n .ag-theme-dark .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1500px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1500px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1488px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1488px; }\n .ag-theme-dark .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1524px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1524px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1512px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1512px; }\n .ag-theme-dark .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1548px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1548px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1536px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1536px; }\n .ag-theme-dark .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1572px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1572px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1560px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1560px; }\n .ag-theme-dark .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1596px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1596px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1584px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1584px; }\n .ag-theme-dark .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1620px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1620px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1608px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1608px; }\n .ag-theme-dark .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1644px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1644px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1632px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1632px; }\n .ag-theme-dark .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1668px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1668px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1656px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1656px; }\n .ag-theme-dark .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1692px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1692px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1680px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1680px; }\n .ag-theme-dark .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 1716px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 1716px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1704px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1704px; }\n .ag-theme-dark .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 1740px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 1740px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-72 {\n padding-left: 1728px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-72 {\n padding-right: 1728px; }\n .ag-theme-dark .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 1764px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 1764px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-73 {\n padding-left: 1752px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-73 {\n padding-right: 1752px; }\n .ag-theme-dark .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 1788px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 1788px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-74 {\n padding-left: 1776px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-74 {\n padding-right: 1776px; }\n .ag-theme-dark .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 1812px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 1812px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-75 {\n padding-left: 1800px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-75 {\n padding-right: 1800px; }\n .ag-theme-dark .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 1836px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 1836px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-76 {\n padding-left: 1824px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-76 {\n padding-right: 1824px; }\n .ag-theme-dark .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 1860px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 1860px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-77 {\n padding-left: 1848px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-77 {\n padding-right: 1848px; }\n .ag-theme-dark .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 1884px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 1884px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-78 {\n padding-left: 1872px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-78 {\n padding-right: 1872px; }\n .ag-theme-dark .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 1908px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 1908px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-79 {\n padding-left: 1896px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-79 {\n padding-right: 1896px; }\n .ag-theme-dark .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 1932px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 1932px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-80 {\n padding-left: 1920px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-80 {\n padding-right: 1920px; }\n .ag-theme-dark .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 1956px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 1956px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-81 {\n padding-left: 1944px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-81 {\n padding-right: 1944px; }\n .ag-theme-dark .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 1980px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 1980px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-82 {\n padding-left: 1968px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-82 {\n padding-right: 1968px; }\n .ag-theme-dark .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2004px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2004px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-83 {\n padding-left: 1992px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-83 {\n padding-right: 1992px; }\n .ag-theme-dark .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2028px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2028px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2016px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2016px; }\n .ag-theme-dark .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2052px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2052px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2040px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2040px; }\n .ag-theme-dark .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2076px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2076px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2064px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2064px; }\n .ag-theme-dark .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2100px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2100px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2088px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2088px; }\n .ag-theme-dark .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2124px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2124px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2112px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2112px; }\n .ag-theme-dark .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2148px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2148px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2136px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2136px; }\n .ag-theme-dark .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2172px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2172px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2160px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2160px; }\n .ag-theme-dark .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2196px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2196px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2184px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2184px; }\n .ag-theme-dark .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2220px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2220px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2208px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2208px; }\n .ag-theme-dark .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2244px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2244px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2232px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2232px; }\n .ag-theme-dark .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2268px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2268px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2256px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2256px; }\n .ag-theme-dark .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2292px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2292px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2280px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2280px; }\n .ag-theme-dark .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2316px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2316px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2304px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2304px; }\n .ag-theme-dark .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2340px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2340px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2328px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2328px; }\n .ag-theme-dark .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2364px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2364px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2352px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2352px; }\n .ag-theme-dark .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2388px; }\n .ag-theme-dark .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2388px; }\n .ag-theme-dark .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2376px; }\n .ag-theme-dark .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2376px; }\n .ag-theme-dark .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-dark .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 24px; }\n .ag-theme-dark .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 24px; }\n .ag-theme-dark .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-dark .ag-value-change-delta-up {\n color: greenyellow;\n color: var(--ag-value-change-delta-up-color, greenyellow); }\n .ag-theme-dark .ag-value-change-delta-down {\n color: red;\n color: var(--ag-value-change-delta-down-color, red); }\n .ag-theme-dark .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 .ag-theme-dark .ag-value-change-value-highlight {\n background-color: chocolate;\n background-color: var(--ag-value-change-value-highlight-background-color, chocolate);\n transition: background-color 0.1s; }\n .ag-theme-dark .ag-cell-data-changed {\n background-color: chocolate !important;\n background-color: var(--ag-value-change-value-highlight-background-color, chocolate) !important; }\n .ag-theme-dark .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-dark .ag-cell-highlight {\n background-color: rgba(255, 255, 255, 0.4) !important;\n background-color: var(--ag-range-selection-highlight-color, rgba(255, 255, 255, 0.4)) !important; }\n .ag-theme-dark .ag-row {\n height: 25px;\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n color: #ccc;\n color: var(--ag-data-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-row-highlight-above::after, .ag-theme-dark .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #ccc;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc));\n left: 1px; }\n .ag-theme-dark .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-dark .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-dark .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-dark .ag-row-odd {\n background-color: #403e3e;\n background-color: var(--ag-odd-row-background-color, #403e3e); }\n .ag-theme-dark .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-dark .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-dark .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-dark .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-dark .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-dark .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-dark .ag-cell, .ag-theme-dark .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 23px;\n padding-left: 11px;\n padding-right: 11px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-dark .ag-row > .ag-cell-wrapper {\n padding-left: 11px;\n padding-right: 11px; }\n .ag-theme-dark .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-dark .ag-cell-inline-editing {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0;\n height: 25px;\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e); }\n .ag-theme-dark .ag-popup-editor {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e);\n padding: 0; }\n .ag-theme-dark .ag-large-text-input {\n height: auto;\n padding: 12px; }\n .ag-theme-dark .ag-details-row {\n padding: 20px;\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e); }\n .ag-theme-dark .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-dark .ag-layout-auto-height .ag-center-cols-container, .ag-theme-dark .ag-layout-print .ag-center-cols-clipper, .ag-theme-dark .ag-layout-print .ag-center-cols-container {\n min-height: 50px; }\n .ag-theme-dark .ag-overlay-loading-wrapper {\n background-color: rgba(48, 46, 46, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(48, 46, 46, 0.66)); }\n .ag-theme-dark .ag-overlay-loading-center {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px; }\n .ag-theme-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-dark .ag-loading {\n padding-left: 12px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-dark .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-dark .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-dark .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-cell {\n border-right: dotted grey; }\n .ag-theme-dark .ag-rtl .ag-cell {\n border-left: dotted grey; }\n .ag-theme-dark .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-dark .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-dark .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-row-selected {\n background-color: #4a708b;\n background-color: var(--ag-selected-row-background-color, #4a708b); }\n .ag-theme-dark .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(100, 160, 160, 0.4);\n background-color: var(--ag-range-selection-background-color, rgba(100, 160, 160, 0.4)); }\n .ag-theme-dark .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-dark .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-dark .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-dark .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-dark .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: rgba(100, 160, 160, 0.4);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(100, 160, 160, 0.4))); }\n .ag-theme-dark .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(100, 160, 160, 0.64);\n background-color: var(--ag-range-selection-background-color-2, rgba(100, 160, 160, 0.64)); }\n .ag-theme-dark .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(100, 160, 160, 0.784);\n background-color: var(--ag-range-selection-background-color-3, rgba(100, 160, 160, 0.784)); }\n .ag-theme-dark .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-dark .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(100, 160, 160, 0.8704);\n background-color: var(--ag-range-selection-background-color-4, rgba(100, 160, 160, 0.8704)); }\n .ag-theme-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #ccc;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #ccc;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #ccc;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #ccc;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-dark .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-dark .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-dark .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-dark .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-dark .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-dark .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-dark .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-dark .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-dark .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #ccc;\n border-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc));\n outline: initial; }\n .ag-theme-dark .ag-cell.ag-selection-fill-top,\n .ag-theme-dark .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #ccc;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-dark .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #ccc;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-dark .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #ccc;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-cell.ag-selection-fill-bottom,\n .ag-theme-dark .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #ccc;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-dark .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #ccc;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-dark .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #ccc;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-fill-handle, .ag-theme-dark .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #ccc;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-ltr .ag-fill-handle, .ag-theme-dark .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-dark .ag-rtl .ag-fill-handle, .ag-theme-dark .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-dark .ag-fill-handle {\n cursor: cell; }\n .ag-theme-dark .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-dark .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important; }\n .ag-theme-dark .ag-menu {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0; }\n .ag-theme-dark .ag-menu-list {\n cursor: default;\n padding: 4px 0; }\n .ag-theme-dark .ag-menu-separator {\n height: 9px; }\n .ag-theme-dark .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-menu-option-active, .ag-theme-dark .ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-dark .ag-menu-option-part, .ag-theme-dark .ag-compact-menu-option-part {\n line-height: 12px;\n padding: 6px 0; }\n .ag-theme-dark .ag-menu-option-disabled, .ag-theme-dark .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-dark .ag-menu-option-icon, .ag-theme-dark .ag-compact-menu-option-icon {\n width: 12px; }\n .ag-theme-dark .ag-ltr .ag-menu-option-icon, .ag-theme-dark .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 8px; }\n .ag-theme-dark .ag-rtl .ag-menu-option-icon, .ag-theme-dark .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 8px; }\n .ag-theme-dark .ag-menu-option-text, .ag-theme-dark .ag-compact-menu-option-text {\n padding-left: 8px;\n padding-right: 8px; }\n .ag-theme-dark .ag-ltr .ag-menu-option-shortcut, .ag-theme-dark .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 4px; }\n .ag-theme-dark .ag-rtl .ag-menu-option-shortcut, .ag-theme-dark .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 4px; }\n .ag-theme-dark .ag-menu-option-popup-pointer, .ag-theme-dark .ag-compact-menu-option-popup-pointer {\n padding-right: 4px; }\n .ag-theme-dark .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-dark .ag-tab {\n border-bottom: 0 solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .ag-theme-dark .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-tab-selected {\n border-bottom-color: #ccc;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-menu-header {\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-dark .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 8px; }\n .ag-theme-dark .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 8px; }\n .ag-theme-dark .ag-set-filter-select-all {\n padding-top: 6px; }\n .ag-theme-dark .ag-set-filter-list, .ag-theme-dark .ag-filter-no-matches {\n height: 120px; }\n .ag-theme-dark .ag-set-filter-filter {\n margin-top: 6px;\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-dark .ag-filter-to {\n margin-top: 4px; }\n .ag-theme-dark .ag-mini-filter {\n margin: 6px 6px; }\n .ag-theme-dark .ag-set-filter-item {\n margin: 0px 6px; }\n .ag-theme-dark .ag-ltr .ag-set-filter-item-value {\n margin-left: 6px; }\n .ag-theme-dark .ag-rtl .ag-set-filter-item-value {\n margin-right: 6px; }\n .ag-theme-dark .ag-filter-apply-panel {\n padding: 6px 6px;\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-dark .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 8px; }\n .ag-theme-dark .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 8px; }\n .ag-theme-dark .ag-simple-filter-body-wrapper {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-dark .ag-simple-filter-body-wrapper > * {\n margin-bottom: 4px; }\n .ag-theme-dark .ag-filter-no-matches {\n padding: 6px 6px; }\n .ag-theme-dark .ag-multi-filter-menu-item {\n margin: 4px 0; }\n .ag-theme-dark .ag-multi-filter-group-title-bar {\n padding: 8px 4px;\n background-color: transparent; }\n .ag-theme-dark .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-side-bar {\n position: relative; }\n .ag-theme-dark .ag-tool-panel-wrapper {\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e); }\n .ag-theme-dark .ag-side-buttons {\n padding-top: 16px;\n width: 16px;\n position: relative;\n color: #ccc;\n color: var(--ag-foreground-color, #ccc);\n overflow: hidden; }\n .ag-theme-dark button.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: 8px 0 8px 0;\n width: calc(100% + 1px);\n margin: 0;\n min-height: 72px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-dark .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-selected .ag-side-button-button {\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e);\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-dark .ag-ltr .ag-side-bar-left,\n .ag-theme-dark .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-dark .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-dark .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 0 solid transparent;\n margin-right: -1px;\n padding-right: 1px; }\n .ag-theme-dark .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-dark .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #ccc;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-rtl .ag-side-bar-left,\n .ag-theme-dark .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-dark .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-dark .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 0 solid transparent;\n margin-left: -1px;\n padding-left: 1px; }\n .ag-theme-dark .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-dark .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #ccc;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-filter-toolpanel-header {\n height: 24px; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-header, .ag-theme-dark .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-header, .ag-theme-dark .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 4px; }\n .ag-theme-dark .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 4px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-0-header {\n height: 32px; }\n .ag-theme-dark .ag-filter-toolpanel-group-item {\n margin-top: 2px;\n margin-bottom: 2px; }\n .ag-theme-dark .ag-filter-toolpanel-search {\n height: 25px; }\n .ag-theme-dark .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 16px; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 4px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 4px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 4px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 4px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 20px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 20px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 36px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 36px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 52px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 52px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 68px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 68px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 84px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 84px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 100px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 100px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 116px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 116px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 132px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 132px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 148px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 148px; }\n .ag-theme-dark .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 164px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 164px; }\n .ag-theme-dark .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 4px; }\n .ag-theme-dark .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey);\n margin-top: 4px; }\n .ag-theme-dark .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 4px; }\n .ag-theme-dark .ag-pivot-mode-panel {\n height: 25px;\n display: flex; }\n .ag-theme-dark .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-dark .ag-ltr .ag-pivot-mode-select {\n margin-left: 6px; }\n .ag-theme-dark .ag-rtl .ag-pivot-mode-select {\n margin-right: 6px; }\n .ag-theme-dark .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-column-select-header {\n height: 25px;\n align-items: center;\n padding: 0 6px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-column-group-icons,\n .ag-theme-dark .ag-column-select-header-icon {\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-header {\n background-color: #626262;\n background-color: var(--ag-header-background-color, #626262);\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-header-row {\n color: #ccc;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)));\n height: 25px; }\n .ag-theme-dark .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-dark .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-dark .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-dark .ag-header-cell,\n .ag-theme-dark .ag-header-group-cell {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-dark .ag-header-cell.ag-header-cell-moving,\n .ag-theme-dark .ag-header-group-cell.ag-header-cell-moving {\n background-color: #bebebe;\n background-color: var(--ag-header-cell-moving-background-color, #bebebe); }\n .ag-theme-dark .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-header-icon {\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-dark .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-dark .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-dark .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-dark .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-header-cell::after,\n .ag-theme-dark .ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n width: 1px;\n height: 100%;\n top: calc(50% - 50%);\n background-color: rgba(169, 169, 169, 0.5);\n background-color: var(--ag-header-column-separator-color, rgba(169, 169, 169, 0.5)); }\n .ag-theme-dark .ag-ltr .ag-header-cell::after, .ag-theme-dark .ag-ltr .ag-header-group-cell::after {\n right: 0; }\n .ag-theme-dark .ag-rtl .ag-header-cell::after, .ag-theme-dark .ag-rtl .ag-header-group-cell::after {\n left: 0; }\n .ag-theme-dark .ag-ltr .ag-header-select-all {\n margin-right: 12px; }\n .ag-theme-dark .ag-rtl .ag-header-select-all {\n margin-left: 12px; }\n .ag-theme-dark .ag-ltr .ag-floating-filter-button {\n margin-left: 12px; }\n .ag-theme-dark .ag-rtl .ag-floating-filter-button {\n margin-right: 12px; }\n .ag-theme-dark .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 12px;\n padding: 0;\n width: 12px; }\n .ag-theme-dark .ag-filter-loading {\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e);\n height: 100%;\n padding: 6px 6px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-dark .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc));\n height: 25px; }\n .ag-theme-dark .ag-paging-panel > * {\n margin: 0 12px; }\n .ag-theme-dark .ag-paging-button {\n cursor: pointer; }\n .ag-theme-dark .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(204, 204, 204, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(204, 204, 204, 0.5)); }\n .ag-theme-dark .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-dark .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 .ag-theme-dark .ag-paging-button, .ag-theme-dark .ag-paging-description {\n margin: 0 4px; }\n .ag-theme-dark .ag-status-bar {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n color: rgba(204, 204, 204, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(204, 204, 204, 0.5));\n padding-right: 16px;\n padding-left: 16px;\n line-height: 1.5; }\n .ag-theme-dark .ag-status-name-value-value {\n color: #ccc;\n color: var(--ag-foreground-color, #ccc); }\n .ag-theme-dark .ag-status-bar-center {\n text-align: center; }\n .ag-theme-dark .ag-status-name-value {\n margin-left: 4px;\n margin-right: 4px;\n padding-top: 8px;\n padding-bottom: 8px; }\n .ag-theme-dark .ag-column-drop-cell {\n background: #403e3e;\n background: var(--ag-chip-background-color, #403e3e);\n border-radius: 16px;\n height: 16px;\n padding: 0 2px; }\n .ag-theme-dark .ag-column-drop-cell-text {\n margin: 0 4px; }\n .ag-theme-dark .ag-column-drop-cell-button {\n min-width: 16px;\n margin: 0 2px;\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-column-drop-cell-drag-handle {\n margin-left: 8px; }\n .ag-theme-dark .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-dark .ag-column-drop-horizontal {\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e);\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc));\n height: 25px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-ltr .ag-column-drop-horizontal {\n padding-left: 12px; }\n .ag-theme-dark .ag-rtl .ag-column-drop-horizontal {\n padding-right: 12px; }\n .ag-theme-dark .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-column-drop-horizontal-cell-separator {\n margin: 0 4px;\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-column-drop-horizontal-empty-message {\n color: rgba(204, 204, 204, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(204, 204, 204, 0.5)); }\n .ag-theme-dark .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 12px; }\n .ag-theme-dark .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 12px; }\n .ag-theme-dark .ag-column-drop-vertical-list {\n padding-bottom: 4px;\n padding-right: 4px;\n padding-left: 4px; }\n .ag-theme-dark .ag-column-drop-vertical-cell {\n margin-top: 4px; }\n .ag-theme-dark .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-dark .ag-column-drop-vertical-icon {\n margin-left: 4px;\n margin-right: 4px; }\n .ag-theme-dark .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: rgba(204, 204, 204, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(204, 204, 204, 0.5));\n margin-top: 4px; }\n .ag-theme-dark .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background: #302e2e;\n background: var(--ag-background-color, #302e2e);\n height: 70px;\n padding: 0; }\n .ag-theme-dark .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 20px;\n padding-left: 8px; }\n .ag-theme-dark .ag-select-agg-func-virtual-list-item:hover {\n background-color: #4a708b;\n background-color: var(--ag-selected-row-background-color, #4a708b); }\n .ag-theme-dark .ag-chart-menu {\n border-radius: 0px;\n background: #302e2e;\n background: var(--ag-background-color, #302e2e); }\n .ag-theme-dark .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: 0px;\n color: #ccc;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-dark .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-dark .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-dark .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-dark .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-dark .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-dark .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-dark .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-dark .ag-chart-mini-thumbnail.ag-selected {\n border-color: #ccc;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-chart-settings-card-item {\n background: #ccc;\n background: var(--ag-foreground-color, #ccc);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-dark .ag-chart-settings-card-item.ag-selected {\n background-color: #ccc;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-chart-data-column-drag-handle {\n margin-left: 4px; }\n .ag-theme-dark .ag-charts-settings-group-title-bar,\n .ag-theme-dark .ag-charts-data-group-title-bar,\n .ag-theme-dark .ag-charts-format-top-level-group-title-bar {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-dark .ag-charts-settings-group-container {\n padding: 4px; }\n .ag-theme-dark .ag-charts-data-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-dark .ag-charts-data-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-dark .ag-charts-format-top-level-group-container {\n margin-left: 8px;\n padding: 4px; }\n .ag-theme-dark .ag-charts-format-top-level-group-item {\n margin: 4px 0; }\n .ag-theme-dark .ag-charts-format-sub-level-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-dark .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-dark .ag-charts-group-container.ag-group-container-horizontal {\n padding: 4px; }\n .ag-theme-dark .ag-chart-data-section,\n .ag-theme-dark .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-dark .ag-chart-menu-panel {\n background-color: #302e2e;\n background-color: var(--ag-control-panel-background-color, #302e2e); }\n .ag-theme-dark .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-dark .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-dark .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-dark .ag-checkbox-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-dark .ag-checkbox-input-wrapper input, .ag-theme-dark .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-dark .ag-checkbox-input-wrapper:focus-within, .ag-theme-dark .ag-checkbox-input-wrapper:active {\n outline: none; }\n .ag-theme-dark .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-dark .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #ccc;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-dark .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #ccc;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-dark .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #ccc;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc)));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-dark .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 24px;\n height: 12px;\n background-color: #ccc;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc)));\n border-radius: 6px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #ccc;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-dark .ag-toggle-button-input-wrapper:focus-within {\n outline: none; }\n .ag-theme-dark .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-dark .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #ccc;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc)));\n border-color: #ccc;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 12px;\n width: 12px;\n background-color: #302e2e;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #302e2e));\n border-radius: 6px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #ccc;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc)))); }\n .ag-theme-dark .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 12px);\n border-color: #ccc;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc))); }\n .ag-theme-dark .ag-radio-button-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 12px; }\n .ag-theme-dark .ag-radio-button-input-wrapper input, .ag-theme-dark .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-dark .ag-radio-button-input-wrapper:focus-within, .ag-theme-dark .ag-radio-button-input-wrapper:active {\n outline: none; }\n .ag-theme-dark .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-dark .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #ccc;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-dark .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #ccc;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-dark input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-dark input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-dark input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-dark input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-dark input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n border: 1px solid;\n border-color: #ccc;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc));\n border-radius: 12px;\n -webkit-transform: translateY(-4.5px);\n transform: translateY(-4.5px); }\n .ag-theme-dark input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n border: 1px solid;\n border-color: #ccc;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc));\n border-radius: 12px; }\n .ag-theme-dark input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n border: 1px solid;\n border-color: #ccc;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #ccc));\n border-radius: 12px; }\n .ag-theme-dark input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-dark input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n border-color: #ccc;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark input[class^='ag-'][type='range']:focus::-ms-thumb {\n border-color: #ccc;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n border-color: #ccc;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #ccc)); }\n .ag-theme-dark input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-dark input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-dark input[class^='ag-'][type='range']:active::-ms-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-dark input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\n .ag-theme-dark .ag-icon {\n color: #d6d5d5;\n margin: 1px 1px 2px 1px; }\n .ag-theme-dark .ag-icon-tree-closed::before {\n content: \"\\f10b\"; }\n .ag-theme-dark .ag-icon-tree-open::before {\n content: \"\\f111\"; }\n .ag-theme-dark .ag-header, .ag-theme-dark .ag-column-drop-cell {\n background-image: none; }\n .ag-theme-dark .ag-tab {\n border: 1px solid transparent;\n padding: 4px 8px;\n margin: 4px;\n margin-bottom: -1px; }\n .ag-theme-dark .ag-tabs-body {\n margin: 2px 0; }\n .ag-theme-dark .ag-tab-selected {\n background-color: #302e2e;\n background-color: var(--ag-background-color, #302e2e);\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-bottom-color: transparent; }\n .ag-theme-dark .ag-tabs-header {\n background-color: #626262;\n background-color: var(--ag-header-background-color, #626262);\n border-bottom: 1px solid;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-filter .ag-filter-apply-panel {\n justify-content: flex-start; }\n .ag-theme-dark .ag-menu-option-active {\n background-color: #4a708b;\n background-color: var(--ag-selected-row-background-color, #4a708b); }\n .ag-theme-dark .ag-column-drop-cell {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 0; }\n .ag-theme-dark .ag-column-drop-cell-button .ag-icon {\n border: 1px solid transparent; }\n .ag-theme-dark .ag-column-drop-cell-button:hover .ag-icon {\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-dark .ag-panel-title-bar-button-icon {\n font-size: 20px;\n line-height: 20px; }\n .ag-theme-dark .ag-menu-option-part {\n padding-top: 4px;\n padding-bottom: 4px; }\n .ag-theme-dark .ag-column-drop-vertical-title-bar {\n margin-top: 4px;\n margin-left: 4px; }\n .ag-theme-dark .ag-column-drop-vertical-title {\n margin-left: 4px; }\n .ag-theme-dark .ag-column-drop-vertical-empty-message {\n margin-left: 24px; }\n\n", ""]);
53876// Exports
53877module.exports = exports;
53878
53879
53880/***/ }),
53881/* 275 */
53882/***/ (function(module, exports, __webpack_require__) {
53883
53884var api = __webpack_require__(258);
53885 var content = __webpack_require__(276);
53886
53887 content = content.__esModule ? content.default : content;
53888
53889 if (typeof content === 'string') {
53890 content = [[module.i, content, '']];
53891 }
53892
53893var options = {};
53894
53895options.insert = "head";
53896options.singleton = false;
53897
53898var update = api(content, options);
53899
53900
53901
53902module.exports = content.locals || {};
53903
53904/***/ }),
53905/* 276 */
53906/***/ (function(module, exports, __webpack_require__) {
53907
53908// Imports
53909var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53910exports = ___CSS_LOADER_API_IMPORT___(false);
53911// Module
53912exports.push([module.i, ".ag-theme-fresh {\n -webkit-font-smoothing: antialiased;\n color: #000;\n color: var(--ag-foreground-color, #000);\n font-family: \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridClassic\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABXwAAsAAAAAKrgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2Zoxou09TLzIAAANsAAAAQQAAAFZWVlMSY21hcAAAA7AAAAIbAAAFnIlT7KJnbHlmAAAFzAAADBkAABg4HeN0mGhlYWQAABHoAAAANAAAADZ2z8SBaGhlYQAAEhwAAAAeAAAAJAfTBCxobXR4AAASPAAAABgAAAE4yyH/7GxvY2EAABJUAAAAdgAAAJ5JCULobWF4cAAAEswAAAAfAAAAIAFkAKpuYW1lAAAS7AAAATMAAAJS8kTiWnBvc3QAABQgAAABzQAAArBhTs2TeJx9lMtOU1EUhv/DaREoAlG8pCIiGi+oiMrxXHpoy6WH1tbEgTEOnGBMjAlxxHP4AD4BQ5/AB3DgE/gADhw6Nn5r9WCFAey03Xtd/vXvf62NAklTWlNTYzvF4KVm9vcOPqquioZ/5v9/H+x/eL+niaMTvor/TiioTGtGy3qtA30LZoKD4HBsPqyHr8J34efwS/hLIVFLWiW6pqesWAnfkVJlaijXmMaxxew34BOymmq59RyMqu7pqqfL1IzJ6Tniip7xmQOncJyOtolKWYbZ4XvAuqfZUyJy3Qc/g80m1gqKLKJJrnlNgp4Q01Sb/Cb+89TcoXaEv8BXwK6KpcW+rQtwsoyKq9rVGz3Bbzc1lKzMSfnE2vVz5Kc1NDmKaoHToJZhr8LgyN6gakLGY9AzorZKRVd0k+wGOB3Q2p694dnLRCZwS3WDnd0zges08Zle6K1X3S1zOq7pUIFV2I/shePlenjM2gZrQOwjOIys1p8H1IrUx1+jV4X29UmH+qrv+qGf+q0/OqOL1En8Dtug75yqzQQKnozu4m39s9pdx5mBk1HHIya5ecPVifH1Sg2tWo2bmTop+whr6vFT8LT4Lmxy+lGhRuR1rdNV1ibnmOiz5XQ2WdOudI8pmPUJ7vss1HWHvi064nAOc7S+CqLthvyuuG5N8Ba8b6auvbA5P9lbsH7XmdVr/EbcMHOdnuO9jsWQRpYlz8phbxjr+HNYj6oZqwVYresuPpuxvr+OLpVucZ8hk4QIexl9n6/bMMjKlzpPD419u+zYJY+LPSvgP0FUvvDUtbOZLuBm8zH4C3G+c6UAeJxjYGSazTiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMX9i4ALSjCA5AOaCCwgAAAB4nLXUB1IbQRCF4V+BLMA22eQcBQaTcxAiHwJnCgcKZ87hs/kefQL8Rt0+AK7yVn3bO1Or3ZlavQaqgJzMSB6ytWR0RSar2UxlPkd9ZT7Pb40L1JLVdZErbrizhft7zRa55Jpby1RGf4+M7i7QwxjLGh2yxAE7lFnlXDN7rLPPLkdsssEJK2yzxjFnbFHilAv9Pq0irzVWU6P31mklDXpiI0084jEttNJGOx100kW33tRLH/0MMMgQw4wwyjgTTDLFtHZSZJY5njHPgs7PNVrUIqt52HH4wPvTsXSwU149X97TjnePNje02e2147Ot0unFPzzsPxyFdMr9itEZ6Yu6tNvLsCQvwoG8DDvyKpTldViVN+Fc3ob0b3gX9uQqrMt12Jf3YVc+hCP5GDblU9iQm3Ait2FFPodt+RLW5Gs4lm8h7f172JIfoSQ/w6ncBX1Ay7iUF8s6Us25lC/Lu5Qxq3Ipe1btSLXGkWqtI9U6R6r1LmXSGhypFlz6ktboSLXJkWqzU3awoBRhQXnCnjglC2txyhjW6pQ2rM0pd1i7UwKxDqcsYp1OqcS6nPKJPXVKKtbtlFmsxym9WK9TjrE+p0Rj/U7ZxgacUo4NOuUdG3JKPjbs1AOwEadugI069QVszKlDYONOvQKbcKkv2qRLebApp96BTTv1FGzGqa9gRac+g806dRxszlXuCepC2LyrPHPBsfgHpKymyQB4nO1Ye2wUxxnfmfXt3t57d+92zxycvXf4FkNico+99QMMGOOzcWzTnIMJaQ04GMWYRDEESJqktAElJErSShFVqUmAqj0XmlQFI+XRBxKpGleRGqePNKnyKn+0Sdq4pHXS6uRb+s3eww8ooPSfVu3Zu/P6Zuabb34z3+9bClHwo5P0IMVRFFJkVvEpIq3QSWN4717Un7v/9dfxAfzT8fERtBftBRFT/n36faoSChqr6jKr8oqZ6ApvJjKvmAmroHNdqbGxlnWIXgdpap2RW9cCaZdhkPpUF8J0JdcFVS1dlzblu1LFOdfTj1FWKLAqBw8fRt9+th/1ob7+Z47jXc9uRX3G01ufyX1YlMcTeIKym/KgC2gD+uCJljOjqTNnUqNnWkbRqmJutOUMZaGoiwas6wNKpMKUSi2hllKURQnVII1PNKK4EgsiH+91IVoJMZCRoCYJTREU58NVcV+YhpTenhOV+lCoXsEfwUupV3Iej9/vwRd4Wc59N51GHen0SHc3DtWF8Mfwgv+cG17012U+x/N+P4//wsvGqPF2JoOOGZth2bP0WgzrKSoSnlbOMkcnFsF6RZnebioRKik1MUOdAWPi74kT59fSHxSVKCp180xdXjRsP1t1EB1dRM3VRb02XWhFU66oyO+N06jzKloYzgzZ0lnzX9vsV5r5KpOS9cKi76G3AjqslJ+iAHgyh2i9AjEs/Pm8EsySUCMq/pOxqf42I4cax8Ze/oHdXu6WomuikrscnUPHG6DBeAktHxtrdDqDgUh5KBoNlVfND5LhGXOOQ/QhmI0FvLphbTJFVfnAbPDQc1J03DhNNxmnM7OS7Aj8UEcGfqiT5KmC7h8UbLX02qyFAMe+sBbW4lqcHgwRi4Hl8hYkljMtQyxnvDJi/vIWFAoWnChYUAQJHn8E23aGqDRCUUV9mugmc5U86BPnFS0MN4XCK7Sm8HEND2cMRwZNpo1R1DFijKbxsFnOQvk4VGap0l3wAP0AOdscgu1gOQQ3go4mkbDHmDBfxsQeJMALb59VRAIU8za/OEXfSf+Z8oB1FlCt1Jepp2DoCOykZYZF6LCGQEFGlhqQWOV14XCopkxLNOI4saWXCUXUGhSGDt4giiX1RhSTZGLgEFRriWQsSMcJPmqQWoOJuWNBXOiU71OBJDmI4WZK6tFGsj9enxu5MGzPUhq6S/Qd7La7LEanqusqTqp6y6jRhB7BiLZ4foeNTZwQ9Hpkr8dmcfoVUV4o2pzWMqvXLc93yJUSg60u2ykhJC3gnR7OZWWtbgcv2QWPN8ALFZLg5602J1tmcQcFxm4RBLtTsC1bshjT2Gq3WrCGWZvbweA4jWyCFf/RuudBC65Vp141lXlkfOpR+p7flHN87mu/dVQERasQqKzyhbSId74qcG6b0+dNxCqXSH6/ze1yl1dLbnuVYHfZy3mHLLh4K8OKSk2V6PT5fR6b3S2ITs7O0SxrYcUFT/zwR5ydsbFOm4X7Nee2ci7uF27O5hGo/+/df/XeFf34QdOP83FgC+TgfufYM/3G08bT/ehe7MpNQuEo2tIPomVz9rrtqvusQ2skkYzHpAq0ApNtk3xeN5Jhe1woFFmKWAKEiJa48vZcf0s7x1q8bl70LFtpczFOq1v0dXY7bJzgFco29JRxPNRcybBj9w66nHbJI/o3bnQLFovHwS+44163T3BxHLPvi4yV4d2mTf4X1vjZeAPxelfy3k8YjquxhtFMZtr3vEzrVDkVpZbB/LqcjEuyJLvAoQM7RMkVSAuHwKerYg1WGTaIZEmXGWJp+EuCgGl1FeSRkoisaHr4vqEN1Xc0aqsqXcYva9pVW+OS2uv3/SH5+WW25kT0sc7052Jf2LhlfWPd0tjG3eiNdS0uQQoq9obraNeiG4Sym9r3L7890hxfZEf7bBilLYwrYLzN1G7QYq3Nt0l++8r5Ni5R1Rhb+9CNxuForyjLFfPi3YHptcjgQxdRSVgLWYdJRwq6JiFP6iS9qDS5ldSqyHIUJnIyiOhoiqyga8/9D371fqLkLbu+cldzYmVv3+13bV6/1lTW0XL73oGUDa1Ftq5kKlm1KBlZRvvodPuDezq6HI61keWx9gPtN5+MtW7QaxlGj20VZamyvPbWRLK3nnbOX4ys9nntXiuLqTx3M3nODuBSEGmICuJVLeqLa2mTx2ToQWC9m0ay3d0FWTwF/J02oxI+zAOhVVkZrUhjz0sv1WazeMJwoEmj+dw5KBBxR4FfnJ3FowJUxTSb14HdFB90lbwCHGgkk8ma/8BC/lUOHctkxjMm8Tp2aQIqWQrrPgtnW6GqqGrqesJ9TDIHXKtA60oPH9YUFPZBLJF/quBBx4HVgY2A4ZGUsCMz3dyNOgvTmerQg2kwXyadhSSbxqlsTkij493AndLp/xg95uxtVZiPIxKdsXgqnc5dMDc3O2Nn8z7jGL3e9BkykD0SoqJtJ/Je4iSuR8dO5OPAk4Ro4oufXvyU/hv9VypBDeZPB+MmdB08txrR4aCDc5bztS4UxFDRiIhb16IRkoUmcv+yZjORk+MS6aQm1CgRM+WDuNgM5AEa9aQawV+q83oX1R6o62y/sWOnF351rbZyAWEelzHlAa+gtbUF9s8XxADnx+XVVskmCUis67ixvbPuQO0iEBd8yCZZF/ux084FRDGwP9DWpgneQDlTBoMgodzWWkfGhZk62w/DTKSw0xyglfO4tJhVYOYFWtuSXjFwINDaGuB4T8hfbcWMh8xkqnSg9jCIC24WW6v9IQ/H2ojggYDoTba1BuYxgjWmuTxcq7mKmef2EJymCvPmZOF4wKUJcQLcnHBMYPMgWojrmhpmfTh1eM/hN96AV6aU+cajfX2P9uEfz6okmdzzfaTJ9IEzY9zoNUberBnUIx3ucFm/cuz90bup6HDtEfR26r3oU7VPXSUAzzWm3rnhCIg/8F4qCmnJh0zHaWaEhgoPfWjqJ3RT/snmIzEShxX9+2dZm25+toAlkovvymu7753UDUf0YZRIvUuUvtrasoW1PQkmOaIfKX0veRzOpIXsMDmN6FbzJKJY8YLNn8MA/SvKOf0NxuRvMhoe6EcqUvsHBvqNN403+wfwqe1QA7ntxkPboQ7athd4wEWwxYeUl1pIxQkPICfMQ5xXJXFVHvBMSQs5s/EYyZLYeik5jqZvBt5NTufkwbuHmtasaRq62/h491BTc3PT0G40nnsuuaopNbRlk14ny4vbtFWrodBbW+eXF9MfgvBu48LunUR4527kgW5rPsk9t1iW6/TevqFU08pkW76wZai1aVWyhPsmehB2252PViFEjcvkpoSoldxq27KZkbRxOo0maX+uHw+nR8j992/2RaU4GUoozMthVg3r5DrGE72nsul09lQvmgT3NzaQzQ6g2nTex5QwpgArqKVWXB5lhOSYMGsAn6pZIPIm7DL/Dc881OR0i8QBkC8nczCXu3Mfwdy+EXpl7kUc5OV/OBuGhhocZx1msmM8dx63yJegD1/I5OGHU3DBv+Dn0TLHjH5OnMp8iZfnYND09vjxORjEM/BTDVImKDwEQpUELR4CIdaElJe0hEyiTFrQ5MMlpLiL6DlogqVO37TlPAAFfr1bLo+Umwkuzvf1EuHePhDW62ZjudrkYZfDsmyqSGArmYAm34oiIuHpNShhho2XhfPDQ0WNzhd1fGT1roO7Vpuva9bS2Nxc6LJ613T8dbTgS1Wdg0fR8P7v9aMtxtH+E7mf49TJfCh2YqSE40HAsZOSCA8DWlC6oyyFT71xAPDz6WgIt4aixuiO+vHx+h3d4MDfQguNt8iXLrRw/o6G8fGGHejJaXzjYTI6sMAR/E1jFA8bp0v30DBgH5NvOzzhF2gSdeS2zW3DeepBrwLSODpnTA4RgtKRlyi0ZegUwRUHATuiM7nXjFf2nEUv4NdyryFtN+Sm9WolO0uOACiW2wbgJNUlThGmUlQP3P2Sdy6nqECkrsAokjGZlmIlpsB4obXAE0gP1qyTEcEDioTyBSmGb2LZnhn0oYcV2U6G2QBcgDjnHtbLhuDpIS4e6MEGhukEiZ4ZNKCHZbH/Opdr6luuiAtSutcVefVSmY7Zo6Dvz56k41I1pj65DkaE4WBU1QnD/xPnjHQ0AAAAeJxjYGRgYADiY81JvPH8Nl8ZuJlfAAWiOB/va4DR/7/9/8b8mfkTUCUHAxOQZAAAhKEPOXicY2BkYGB+wcAAIv9/+/+V+TMDIwMq8AMAnl4HBgAAeJxjYGBgYH5Bb/z/Gy3NZqADAAB/FDOneJxjYAACCYYghiyGFoYLjGKMYYx9jAcY3zCZMEUwVTFHsJix+LEcYDViLWK9wWbC5sWWwraB7Qu7BXsAewaHAIcTxxSODZxMnCKcZpw9nKs4T3A+4nLhCuOaw/WNm4/bgtuNO4Q7ibuAu4V7Eo8M6RAAslkbZAAAeJxjYGRgYPBjmMfAwwACTEDMBYQMDP/BfAYAIQYCDwB4nH2QvU7DMBSFT/qHaAWqBGJgMgsLUvqz0bVSs3foniZ2miqNg+NW6s5z8AQ8R5+Dp2DmxHgpErUl57vfPfcOATDECQGaE+DGvc1p4YrVL7dJ95475CfPXQwQeu7Rv3ru4wULzwPc4Y0bgs41zSPePbdwiw/PbfpPzx3yyXMXD/jy3KP/9tzHKhh6HuA5UHEWmTydF3Fd58lSZvsiNmfurFhJU+e6FJNwfOYjWUoTW5mK9VHUh2xqrRLK6J1Y6NLKotCiMnorExturK1mo5HyPkz0DjEyRDDIkWKOgnXNmyPBEpK9vXPmQu7/zoobjGONEgIT/vfxhXzEfOlmYlh+U86sceRb48CpKa2FYq2Y0diRFm53ky54NU3leluahD7Exk1VmGHEq/7kQ6a46QfFq20TAHicbZIHb9swEIX9xZKt2GmTpm269x5q6+6990h/A0PRMhGZFEjKdvLry9pBgQA9gIf3Dod37w5sLbUW0Wv9PzZZok1CSocuGcv06LPCAQ6yyhqHWOcwRzjKBsc4zglOcorTnOEs5zjPBS5yictc4SrXuM4NbnKL2+Tc4S73GHCfBzzkEY95wlOe8ZwXvOQVr3nDW97xng985BOf+cJXvvGdH/zkF5v8bvVFWTpViqCt6Qjn7NS3hZcdKYxUVSpHwoU1OVJye8vO8jlQxca/gjaFCsqNtRFBrf8rN2avc0Xayrq81pG4biTN2PietCY4IYMqEmnrnVQ6631b+kkaXz5ICuVlqmbRQHee80GmZrWIs4pltaNyXwk/akfUGeoqjk+H2vmQlE7XaelsU3fnOSrFxpBUahg6lTbRT7eyotCmzMZipsd6VyVjZZos+l8wo2YhMdaovrEhF1Vlp6pI66iiuvOcD9q1NmmtJzZktVMTbRu/5qKozbeaEKzJ7XC4ur9gUqfLUUi8mKieH0fZvLBTswf/2usv4LwtW+CmTkI823pwSu2/c9aYxTYIShyKgMZimOKRVIzYZotZ/CMFYxpqdpgwZLfV+gPpZLiDAAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-fresh .ag-icon {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-fresh .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-fresh .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-fresh .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-fresh .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-fresh .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-fresh .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-fresh .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-fresh .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-fresh .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-fresh .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-fresh .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-fresh .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-fresh .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-fresh .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-fresh .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-fresh .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-fresh .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-fresh .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-fresh .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-fresh .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-fresh .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-fresh .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-fresh .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-fresh .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-fresh .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-fresh .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-fresh .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-fresh .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-fresh .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-fresh .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-fresh .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-fresh .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-fresh .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-fresh .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-fresh .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-fresh .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-fresh .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-fresh .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-fresh .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-fresh .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-fresh .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-fresh .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-fresh .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-fresh .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-fresh .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-fresh .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-fresh .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-fresh .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-fresh .ag-root-wrapper {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-fresh [class^='ag-'], .ag-theme-fresh [class^='ag-']:focus, .ag-theme-fresh [class^='ag-']:after, .ag-theme-fresh [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-fresh [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-fresh .ag-checkbox .ag-input-wrapper,\n .ag-theme-fresh .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-fresh .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-fresh .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-fresh .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 4px; }\n .ag-theme-fresh input[class^='ag-'] {\n margin: 0;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-fresh textarea[class^='ag-'],\n .ag-theme-fresh select[class^='ag-'] {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-fresh input[class^='ag-']:not([type]),\n .ag-theme-fresh input[class^='ag-'][type='text'],\n .ag-theme-fresh input[class^='ag-'][type='number'],\n .ag-theme-fresh input[class^='ag-'][type='tel'],\n .ag-theme-fresh input[class^='ag-'][type='date'],\n .ag-theme-fresh input[class^='ag-'][type='datetime-local'],\n .ag-theme-fresh textarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border-width: 1px;\n border-style: solid;\n border-color: #000;\n border-color: var(--ag-input-border-color, #000); }\n .ag-theme-fresh input[class^='ag-']:not([type]):disabled,\n .ag-theme-fresh input[class^='ag-'][type='text']:disabled,\n .ag-theme-fresh input[class^='ag-'][type='number']:disabled,\n .ag-theme-fresh input[class^='ag-'][type='tel']:disabled,\n .ag-theme-fresh input[class^='ag-'][type='date']:disabled,\n .ag-theme-fresh input[class^='ag-'][type='datetime-local']:disabled,\n .ag-theme-fresh textarea[class^='ag-']:disabled {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n background-color: #ebebeb;\n background-color: var(--ag-input-disabled-background-color, #ebebeb);\n border-color: rgba(0, 0, 0, 0.3);\n border-color: var(--ag-input-disabled-border-color, rgba(0, 0, 0, 0.3)); }\n .ag-theme-fresh input[class^='ag-']:not([type]):focus,\n .ag-theme-fresh input[class^='ag-'][type='text']:focus,\n .ag-theme-fresh input[class^='ag-'][type='number']:focus,\n .ag-theme-fresh input[class^='ag-'][type='tel']:focus,\n .ag-theme-fresh input[class^='ag-'][type='date']:focus,\n .ag-theme-fresh input[class^='ag-'][type='datetime-local']:focus,\n .ag-theme-fresh textarea[class^='ag-']:focus {\n outline: none;\n border-color: var(--ag-input-focus-border-color); }\n .ag-theme-fresh input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-fresh input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-fresh input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-fresh input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-fresh .ag-drag-handle {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-list-item, .ag-theme-fresh .ag-virtual-list-item {\n height: 20px; }\n .ag-theme-fresh .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-select-list {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-fresh .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-fresh .ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-fresh .ag-select .ag-picker-field-wrapper {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n min-height: 20px;\n cursor: default; }\n .ag-theme-fresh .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-fresh .ag-select:not(.ag-cell-editor) {\n height: 20px; }\n .ag-theme-fresh .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-fresh .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-fresh .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-fresh .ag-rich-select {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-fresh .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 162.5px; }\n .ag-theme-fresh .ag-rich-select-value {\n padding: 0 4px 0 12px;\n height: 25px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 20px; }\n .ag-theme-fresh .ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-fresh .ag-rich-select-row {\n padding-left: 12px; }\n .ag-theme-fresh .ag-rich-select-row-selected {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-fresh .ag-row-drag,\n .ag-theme-fresh .ag-selection-checkbox,\n .ag-theme-fresh .ag-group-expanded,\n .ag-theme-fresh .ag-group-contracted {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-ltr .ag-row-drag, .ag-theme-fresh .ag-ltr .ag-selection-checkbox, .ag-theme-fresh .ag-ltr .ag-group-expanded, .ag-theme-fresh .ag-ltr .ag-group-contracted {\n margin-right: 12px; }\n .ag-theme-fresh .ag-rtl .ag-row-drag, .ag-theme-fresh .ag-rtl .ag-selection-checkbox, .ag-theme-fresh .ag-rtl .ag-group-expanded, .ag-theme-fresh .ag-rtl .ag-group-contracted {\n margin-left: 12px; }\n .ag-theme-fresh .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 23px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-fresh .ag-group-expanded,\n .ag-theme-fresh .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-fresh .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-fresh .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-fresh .ag-group-title-bar {\n background-color: #ececec;\n background-color: var(--ag-subheader-background-color, #ececec);\n padding: 4px; }\n .ag-theme-fresh .ag-group-toolbar {\n padding: 4px; }\n .ag-theme-fresh .ag-disabled-group-title-bar, .ag-theme-fresh .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-fresh .group-item {\n margin: 2px 0; }\n .ag-theme-fresh .ag-label {\n white-space: nowrap; }\n .ag-theme-fresh .ag-ltr .ag-label {\n margin-right: 4px; }\n .ag-theme-fresh .ag-rtl .ag-label {\n margin-left: 4px; }\n .ag-theme-fresh .ag-label-align-top .ag-label {\n margin-bottom: 2px; }\n .ag-theme-fresh .ag-ltr .ag-slider-field, .ag-theme-fresh .ag-ltr .ag-angle-select-field {\n margin-right: 8px; }\n .ag-theme-fresh .ag-rtl .ag-slider-field, .ag-theme-fresh .ag-rtl .ag-angle-select-field {\n margin-left: 8px; }\n .ag-theme-fresh .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-fresh .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: #000;\n background-color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 5px; }\n .ag-theme-fresh .ag-picker-field-button {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-fresh .ag-color-picker .ag-picker-field-display {\n height: 12px; }\n .ag-theme-fresh .ag-color-panel {\n padding: 4px; }\n .ag-theme-fresh .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-fresh .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-fresh .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-fresh .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-fresh .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-fresh .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-fresh .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-fresh .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-fresh .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-fresh .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-fresh.ag-dnd-ghost {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000));\n height: 25px !important;\n line-height: 25px;\n margin: 0;\n padding: 0 8px;\n -webkit-transform: translateY(8px);\n transform: translateY(8px); }\n .ag-theme-fresh .ag-dnd-ghost-icon {\n margin-right: 4px;\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-fresh .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-fresh .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-fresh .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-fresh .ag-dialog {\n border-radius: 0px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-panel {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-fresh .ag-panel-title-bar {\n background-color: var(--ag-header-background-color);\n color: #000;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)));\n height: 25px;\n padding: 4px 12px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-panel-title-bar-button {\n margin-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-panel-title-bar-button {\n margin-right: 4px; }\n .ag-theme-fresh .ag-tooltip {\n background-color: var(--ag-header-background-color);\n color: #000;\n color: var(--ag-foreground-color, #000);\n padding: 4px;\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n transition: opacity 1s; }\n .ag-theme-fresh .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-1 {\n padding-left: 16px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-1 {\n padding-right: 16px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-2 {\n padding-left: 32px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-2 {\n padding-right: 32px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-3 {\n padding-left: 48px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-3 {\n padding-right: 48px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-4 {\n padding-left: 64px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-4 {\n padding-right: 64px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-5 {\n padding-left: 80px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-5 {\n padding-right: 80px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-6 {\n padding-left: 96px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-6 {\n padding-right: 96px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-7 {\n padding-left: 112px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-7 {\n padding-right: 112px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-8 {\n padding-left: 128px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-8 {\n padding-right: 128px; }\n .ag-theme-fresh .ag-ltr .ag-column-select-indent-9 {\n padding-left: 144px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-indent-9 {\n padding-right: 144px; }\n .ag-theme-fresh .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-fresh .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-fresh .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 6px; }\n .ag-theme-fresh .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-fresh .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 6px; }\n .ag-theme-fresh .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-column-select-column-group:not(:last-child),\n .ag-theme-fresh .ag-column-select-column:not(:last-child) {\n margin-bottom: 4px; }\n .ag-theme-fresh .ag-column-select-column-readonly,\n .ag-theme-fresh .ag-column-select-column-group-readonly {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n pointer-events: none; }\n .ag-theme-fresh .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 20px; }\n .ag-theme-fresh .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 20px; }\n .ag-theme-fresh .ag-column-select-virtual-list-viewport {\n padding: 3px 0px; }\n .ag-theme-fresh .ag-column-select-virtual-list-item {\n margin: 0 6px; }\n .ag-theme-fresh .ag-rtl {\n text-align: right; }\n .ag-theme-fresh .ag-root-wrapper {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 36px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 36px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-1 {\n padding-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-1 {\n padding-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 60px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 60px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-2 {\n padding-left: 48px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-2 {\n padding-right: 48px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 84px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 84px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-3 {\n padding-left: 72px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-3 {\n padding-right: 72px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 108px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 108px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-4 {\n padding-left: 96px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-4 {\n padding-right: 96px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 132px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 132px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-5 {\n padding-left: 120px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-5 {\n padding-right: 120px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 156px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 156px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-6 {\n padding-left: 144px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-6 {\n padding-right: 144px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 180px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 180px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-7 {\n padding-left: 168px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-7 {\n padding-right: 168px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 204px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 204px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-8 {\n padding-left: 192px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-8 {\n padding-right: 192px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 228px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 228px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-9 {\n padding-left: 216px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-9 {\n padding-right: 216px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 252px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 252px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-10 {\n padding-left: 240px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-10 {\n padding-right: 240px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 276px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 276px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-11 {\n padding-left: 264px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-11 {\n padding-right: 264px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 300px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 300px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-12 {\n padding-left: 288px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-12 {\n padding-right: 288px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 324px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 324px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-13 {\n padding-left: 312px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-13 {\n padding-right: 312px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 348px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 348px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-14 {\n padding-left: 336px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-14 {\n padding-right: 336px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 372px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 372px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-15 {\n padding-left: 360px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-15 {\n padding-right: 360px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 396px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 396px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-16 {\n padding-left: 384px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-16 {\n padding-right: 384px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 420px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 420px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-17 {\n padding-left: 408px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-17 {\n padding-right: 408px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 444px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 444px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-18 {\n padding-left: 432px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-18 {\n padding-right: 432px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 468px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 468px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-19 {\n padding-left: 456px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-19 {\n padding-right: 456px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 492px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 492px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-20 {\n padding-left: 480px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-20 {\n padding-right: 480px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 516px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 516px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-21 {\n padding-left: 504px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-21 {\n padding-right: 504px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 540px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 540px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-22 {\n padding-left: 528px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-22 {\n padding-right: 528px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 564px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 564px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-23 {\n padding-left: 552px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-23 {\n padding-right: 552px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 588px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 588px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-24 {\n padding-left: 576px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-24 {\n padding-right: 576px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 612px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 612px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-25 {\n padding-left: 600px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-25 {\n padding-right: 600px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 636px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 636px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-26 {\n padding-left: 624px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-26 {\n padding-right: 624px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 660px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 660px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-27 {\n padding-left: 648px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-27 {\n padding-right: 648px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 684px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 684px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-28 {\n padding-left: 672px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-28 {\n padding-right: 672px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 708px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 708px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-29 {\n padding-left: 696px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-29 {\n padding-right: 696px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 732px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 732px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-30 {\n padding-left: 720px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-30 {\n padding-right: 720px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 756px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 756px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-31 {\n padding-left: 744px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-31 {\n padding-right: 744px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 780px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 780px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-32 {\n padding-left: 768px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-32 {\n padding-right: 768px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 804px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 804px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-33 {\n padding-left: 792px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-33 {\n padding-right: 792px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 828px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 828px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-34 {\n padding-left: 816px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-34 {\n padding-right: 816px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 852px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 852px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-35 {\n padding-left: 840px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-35 {\n padding-right: 840px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 876px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 876px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-36 {\n padding-left: 864px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-36 {\n padding-right: 864px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 900px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 900px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-37 {\n padding-left: 888px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-37 {\n padding-right: 888px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 924px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 924px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-38 {\n padding-left: 912px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-38 {\n padding-right: 912px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 948px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 948px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-39 {\n padding-left: 936px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-39 {\n padding-right: 936px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 972px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 972px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-40 {\n padding-left: 960px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-40 {\n padding-right: 960px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 996px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 996px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-41 {\n padding-left: 984px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-41 {\n padding-right: 984px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1020px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1020px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1008px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1008px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1044px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1044px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1032px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1032px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1068px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1068px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1056px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1056px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1092px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1092px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1080px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1080px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1116px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1116px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1104px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1104px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1140px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1140px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1128px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1128px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 1164px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 1164px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-48 {\n padding-left: 1152px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-48 {\n padding-right: 1152px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 1188px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 1188px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-49 {\n padding-left: 1176px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-49 {\n padding-right: 1176px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 1212px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 1212px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-50 {\n padding-left: 1200px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-50 {\n padding-right: 1200px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 1236px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 1236px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-51 {\n padding-left: 1224px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-51 {\n padding-right: 1224px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 1260px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 1260px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-52 {\n padding-left: 1248px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-52 {\n padding-right: 1248px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 1284px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 1284px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-53 {\n padding-left: 1272px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-53 {\n padding-right: 1272px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 1308px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 1308px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-54 {\n padding-left: 1296px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-54 {\n padding-right: 1296px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 1332px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 1332px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-55 {\n padding-left: 1320px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-55 {\n padding-right: 1320px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 1356px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 1356px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-56 {\n padding-left: 1344px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-56 {\n padding-right: 1344px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 1380px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 1380px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-57 {\n padding-left: 1368px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-57 {\n padding-right: 1368px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 1404px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 1404px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-58 {\n padding-left: 1392px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-58 {\n padding-right: 1392px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 1428px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 1428px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-59 {\n padding-left: 1416px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-59 {\n padding-right: 1416px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 1452px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 1452px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-60 {\n padding-left: 1440px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-60 {\n padding-right: 1440px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 1476px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 1476px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-61 {\n padding-left: 1464px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-61 {\n padding-right: 1464px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 1500px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 1500px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-62 {\n padding-left: 1488px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-62 {\n padding-right: 1488px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 1524px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 1524px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-63 {\n padding-left: 1512px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-63 {\n padding-right: 1512px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 1548px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 1548px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-64 {\n padding-left: 1536px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-64 {\n padding-right: 1536px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 1572px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 1572px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-65 {\n padding-left: 1560px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-65 {\n padding-right: 1560px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 1596px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 1596px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-66 {\n padding-left: 1584px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-66 {\n padding-right: 1584px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 1620px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 1620px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-67 {\n padding-left: 1608px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-67 {\n padding-right: 1608px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 1644px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 1644px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-68 {\n padding-left: 1632px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-68 {\n padding-right: 1632px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 1668px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 1668px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-69 {\n padding-left: 1656px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-69 {\n padding-right: 1656px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 1692px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 1692px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-70 {\n padding-left: 1680px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-70 {\n padding-right: 1680px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 1716px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 1716px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-71 {\n padding-left: 1704px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-71 {\n padding-right: 1704px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 1740px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 1740px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-72 {\n padding-left: 1728px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-72 {\n padding-right: 1728px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 1764px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 1764px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-73 {\n padding-left: 1752px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-73 {\n padding-right: 1752px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 1788px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 1788px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-74 {\n padding-left: 1776px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-74 {\n padding-right: 1776px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 1812px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 1812px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-75 {\n padding-left: 1800px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-75 {\n padding-right: 1800px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 1836px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 1836px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-76 {\n padding-left: 1824px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-76 {\n padding-right: 1824px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 1860px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 1860px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-77 {\n padding-left: 1848px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-77 {\n padding-right: 1848px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 1884px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 1884px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-78 {\n padding-left: 1872px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-78 {\n padding-right: 1872px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 1908px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 1908px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-79 {\n padding-left: 1896px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-79 {\n padding-right: 1896px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 1932px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 1932px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-80 {\n padding-left: 1920px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-80 {\n padding-right: 1920px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 1956px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 1956px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-81 {\n padding-left: 1944px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-81 {\n padding-right: 1944px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 1980px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 1980px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-82 {\n padding-left: 1968px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-82 {\n padding-right: 1968px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 2004px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 2004px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-83 {\n padding-left: 1992px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-83 {\n padding-right: 1992px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 2028px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 2028px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-84 {\n padding-left: 2016px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-84 {\n padding-right: 2016px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 2052px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 2052px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-85 {\n padding-left: 2040px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-85 {\n padding-right: 2040px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 2076px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 2076px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-86 {\n padding-left: 2064px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-86 {\n padding-right: 2064px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 2100px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 2100px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-87 {\n padding-left: 2088px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-87 {\n padding-right: 2088px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 2124px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 2124px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-88 {\n padding-left: 2112px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-88 {\n padding-right: 2112px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 2148px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 2148px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-89 {\n padding-left: 2136px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-89 {\n padding-right: 2136px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 2172px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 2172px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-90 {\n padding-left: 2160px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-90 {\n padding-right: 2160px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 2196px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 2196px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-91 {\n padding-left: 2184px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-91 {\n padding-right: 2184px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 2220px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 2220px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-92 {\n padding-left: 2208px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-92 {\n padding-right: 2208px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 2244px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 2244px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-93 {\n padding-left: 2232px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-93 {\n padding-right: 2232px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 2268px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 2268px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-94 {\n padding-left: 2256px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-94 {\n padding-right: 2256px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 2292px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 2292px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-95 {\n padding-left: 2280px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-95 {\n padding-right: 2280px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 2316px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 2316px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-96 {\n padding-left: 2304px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-96 {\n padding-right: 2304px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 2340px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 2340px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-97 {\n padding-left: 2328px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-97 {\n padding-right: 2328px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 2364px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 2364px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-98 {\n padding-left: 2352px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-98 {\n padding-right: 2352px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 2388px; }\n .ag-theme-fresh .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 2388px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-indent-99 {\n padding-left: 2376px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-indent-99 {\n padding-right: 2376px; }\n .ag-theme-fresh .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 24px; }\n .ag-theme-fresh .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 24px; }\n .ag-theme-fresh .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 24px; }\n .ag-theme-fresh .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-fresh .ag-value-change-delta-up {\n color: darkgreen;\n color: var(--ag-value-change-delta-up-color, darkgreen); }\n .ag-theme-fresh .ag-value-change-delta-down {\n color: darkred;\n color: var(--ag-value-change-delta-down-color, darkred); }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-value-change-value-highlight {\n background-color: #cec;\n background-color: var(--ag-value-change-value-highlight-background-color, #cec);\n transition: background-color 0.1s; }\n .ag-theme-fresh .ag-cell-data-changed {\n background-color: #cec !important;\n background-color: var(--ag-value-change-value-highlight-background-color, #cec) !important; }\n .ag-theme-fresh .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-fresh .ag-cell-highlight {\n background-color: rgba(136, 255, 136, 0.4) !important;\n background-color: var(--ag-range-selection-highlight-color, rgba(136, 255, 136, 0.4)) !important; }\n .ag-theme-fresh .ag-row {\n height: 25px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n color: #000;\n color: var(--ag-data-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-row-highlight-above::after, .ag-theme-fresh .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #000;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000));\n left: 1px; }\n .ag-theme-fresh .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-fresh .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-fresh .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-fresh .ag-row-odd {\n background-color: #f6f6f6;\n background-color: var(--ag-odd-row-background-color, #f6f6f6); }\n .ag-theme-fresh .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-fresh .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-fresh .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-fresh .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-fresh .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-fresh .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-fresh .ag-cell, .ag-theme-fresh .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 23px;\n padding-left: 11px;\n padding-right: 11px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-fresh .ag-row > .ag-cell-wrapper {\n padding-left: 11px;\n padding-right: 11px; }\n .ag-theme-fresh .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-fresh .ag-cell-inline-editing {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0;\n height: 25px;\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-fresh .ag-popup-editor {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n padding: 0; }\n .ag-theme-fresh .ag-large-text-input {\n height: auto;\n padding: 12px; }\n .ag-theme-fresh .ag-details-row {\n padding: 20px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF); }\n .ag-theme-fresh .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-fresh .ag-layout-auto-height .ag-center-cols-container, .ag-theme-fresh .ag-layout-print .ag-center-cols-clipper, .ag-theme-fresh .ag-layout-print .ag-center-cols-container {\n min-height: 50px; }\n .ag-theme-fresh .ag-overlay-loading-wrapper {\n background-color: rgba(255, 255, 255, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66)); }\n .ag-theme-fresh .ag-overlay-loading-center {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px; }\n .ag-theme-fresh .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-fresh .ag-loading {\n padding-left: 12px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-fresh .ag-loading-icon {\n padding-right: 12px; }\n .ag-theme-fresh .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-fresh .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-cell {\n border-right: dotted darkgrey; }\n .ag-theme-fresh .ag-rtl .ag-cell {\n border-left: dotted darkgrey; }\n .ag-theme-fresh .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-fresh .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-fresh .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-row-selected {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-fresh .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-fresh .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(0, 0, 0, 0.2);\n background-color: var(--ag-range-selection-background-color, rgba(0, 0, 0, 0.2)); }\n .ag-theme-fresh .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-fresh .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-fresh .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-fresh .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-fresh .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-fresh .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: rgba(0, 0, 0, 0.2);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(0, 0, 0, 0.2))); }\n .ag-theme-fresh .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-fresh .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(0, 0, 0, 0.36);\n background-color: var(--ag-range-selection-background-color-2, rgba(0, 0, 0, 0.36)); }\n .ag-theme-fresh .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-fresh .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(0, 0, 0, 0.488);\n background-color: var(--ag-range-selection-background-color-3, rgba(0, 0, 0, 0.488)); }\n .ag-theme-fresh .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-fresh .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(0, 0, 0, 0.5904);\n background-color: var(--ag-range-selection-background-color-4, rgba(0, 0, 0, 0.5904)); }\n .ag-theme-fresh .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #000;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #000;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #000;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #000;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-fresh .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-fresh .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-fresh .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-fresh .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-fresh .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-fresh .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-fresh .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-fresh .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-fresh .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000));\n outline: initial; }\n .ag-theme-fresh .ag-cell.ag-selection-fill-top,\n .ag-theme-fresh .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #000;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-fresh .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #000;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-fresh .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #000;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-cell.ag-selection-fill-bottom,\n .ag-theme-fresh .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #000;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-fresh .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #000;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-fresh .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #000;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-fill-handle, .ag-theme-fresh .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #000;\n background-color: var(--ag-range-selection-border-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-ltr .ag-fill-handle, .ag-theme-fresh .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-fresh .ag-rtl .ag-fill-handle, .ag-theme-fresh .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-fresh .ag-fill-handle {\n cursor: cell; }\n .ag-theme-fresh .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-fresh .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important; }\n .ag-theme-fresh .ag-menu {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n padding: 0; }\n .ag-theme-fresh .ag-menu-list {\n cursor: default;\n padding: 4px 0; }\n .ag-theme-fresh .ag-menu-separator {\n height: 9px; }\n .ag-theme-fresh .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-menu-option-active, .ag-theme-fresh .ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color); }\n .ag-theme-fresh .ag-menu-option-part, .ag-theme-fresh .ag-compact-menu-option-part {\n line-height: 12px;\n padding: 6px 0; }\n .ag-theme-fresh .ag-menu-option-disabled, .ag-theme-fresh .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-fresh .ag-menu-option-icon, .ag-theme-fresh .ag-compact-menu-option-icon {\n width: 12px; }\n .ag-theme-fresh .ag-ltr .ag-menu-option-icon, .ag-theme-fresh .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 8px; }\n .ag-theme-fresh .ag-rtl .ag-menu-option-icon, .ag-theme-fresh .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 8px; }\n .ag-theme-fresh .ag-menu-option-text, .ag-theme-fresh .ag-compact-menu-option-text {\n padding-left: 8px;\n padding-right: 8px; }\n .ag-theme-fresh .ag-ltr .ag-menu-option-shortcut, .ag-theme-fresh .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 4px; }\n .ag-theme-fresh .ag-rtl .ag-menu-option-shortcut, .ag-theme-fresh .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 4px; }\n .ag-theme-fresh .ag-menu-option-popup-pointer, .ag-theme-fresh .ag-compact-menu-option-popup-pointer {\n padding-right: 4px; }\n .ag-theme-fresh .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-fresh .ag-tab {\n border-bottom: 0 solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .ag-theme-fresh .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-tab-selected {\n border-bottom-color: #000;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-menu-header {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-fresh .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 8px; }\n .ag-theme-fresh .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 8px; }\n .ag-theme-fresh .ag-set-filter-select-all {\n padding-top: 6px; }\n .ag-theme-fresh .ag-set-filter-list, .ag-theme-fresh .ag-filter-no-matches {\n height: 120px; }\n .ag-theme-fresh .ag-set-filter-filter {\n margin-top: 6px;\n margin-left: 6px;\n margin-right: 6px; }\n .ag-theme-fresh .ag-filter-to {\n margin-top: 4px; }\n .ag-theme-fresh .ag-mini-filter {\n margin: 6px 6px; }\n .ag-theme-fresh .ag-set-filter-item {\n margin: 0px 6px; }\n .ag-theme-fresh .ag-ltr .ag-set-filter-item-value {\n margin-left: 6px; }\n .ag-theme-fresh .ag-rtl .ag-set-filter-item-value {\n margin-right: 6px; }\n .ag-theme-fresh .ag-filter-apply-panel {\n padding: 6px 6px;\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-fresh .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 8px; }\n .ag-theme-fresh .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 8px; }\n .ag-theme-fresh .ag-simple-filter-body-wrapper {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-fresh .ag-simple-filter-body-wrapper > * {\n margin-bottom: 4px; }\n .ag-theme-fresh .ag-filter-no-matches {\n padding: 6px 6px; }\n .ag-theme-fresh .ag-multi-filter-menu-item {\n margin: 4px 0; }\n .ag-theme-fresh .ag-multi-filter-group-title-bar {\n padding: 8px 4px;\n background-color: transparent; }\n .ag-theme-fresh .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-side-bar {\n position: relative; }\n .ag-theme-fresh .ag-tool-panel-wrapper {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-fresh .ag-side-buttons {\n padding-top: 16px;\n width: 16px;\n position: relative;\n color: #000;\n color: var(--ag-foreground-color, #000);\n overflow: hidden; }\n .ag-theme-fresh button.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: 8px 0 8px 0;\n width: calc(100% + 1px);\n margin: 0;\n min-height: 72px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-fresh .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-selected .ag-side-button-button {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-fresh .ag-ltr .ag-side-bar-left,\n .ag-theme-fresh .ag-rtl .ag-side-bar-right {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-fresh .ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-fresh .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 0 solid transparent;\n margin-right: -1px;\n padding-right: 1px; }\n .ag-theme-fresh .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-fresh .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #000;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-rtl .ag-side-bar-left,\n .ag-theme-fresh .ag-ltr .ag-side-bar-right {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n .ag-theme-fresh .ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-fresh .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 0 solid transparent;\n margin-left: -1px;\n padding-left: 1px; }\n .ag-theme-fresh .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-fresh .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #000;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-range-selection-border-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-filter-toolpanel-header {\n height: 24px; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-header, .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-header, .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 4px; }\n .ag-theme-fresh .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 4px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-0-header {\n height: 32px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-item {\n margin-top: 2px;\n margin-bottom: 2px; }\n .ag-theme-fresh .ag-filter-toolpanel-search {\n height: 25px; }\n .ag-theme-fresh .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 16px; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 4px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 4px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-0 {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 4px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 4px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 20px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 20px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 36px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 36px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 52px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 52px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 68px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 68px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 84px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 84px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 100px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 100px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 116px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 116px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 132px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 132px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 148px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 148px; }\n .ag-theme-fresh .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 164px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 164px; }\n .ag-theme-fresh .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 4px; }\n .ag-theme-fresh .ag-filter-toolpanel-instance-filter {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey);\n margin-top: 4px; }\n .ag-theme-fresh .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 4px; }\n .ag-theme-fresh .ag-pivot-mode-panel {\n height: 25px;\n display: flex; }\n .ag-theme-fresh .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-fresh .ag-ltr .ag-pivot-mode-select {\n margin-left: 6px; }\n .ag-theme-fresh .ag-rtl .ag-pivot-mode-select {\n margin-right: 6px; }\n .ag-theme-fresh .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-column-select-header {\n height: 25px;\n align-items: center;\n padding: 0 6px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-column-panel-column-select {\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-column-group-icons,\n .ag-theme-fresh .ag-column-select-header-icon {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-header {\n background-color: var(--ag-header-background-color);\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-header-row {\n color: #000;\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)));\n height: 25px; }\n .ag-theme-fresh .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-fresh .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 4px; }\n .ag-theme-fresh .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 4px; }\n .ag-theme-fresh .ag-header-cell,\n .ag-theme-fresh .ag-header-group-cell {\n padding-left: 12px;\n padding-right: 12px; }\n .ag-theme-fresh .ag-header-cell.ag-header-cell-moving,\n .ag-theme-fresh .ag-header-group-cell.ag-header-cell-moving {\n background-color: #bebebe;\n background-color: var(--ag-header-cell-moving-background-color, #bebebe); }\n .ag-theme-fresh .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-header-icon {\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-fresh .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-fresh .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-fresh .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-fresh .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-header-cell::after,\n .ag-theme-fresh .ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: block;\n width: 1px;\n height: 100%;\n top: calc(50% - 50%);\n background-color: rgba(169, 169, 169, 0.5);\n background-color: var(--ag-header-column-separator-color, rgba(169, 169, 169, 0.5)); }\n .ag-theme-fresh .ag-ltr .ag-header-cell::after, .ag-theme-fresh .ag-ltr .ag-header-group-cell::after {\n right: 0; }\n .ag-theme-fresh .ag-rtl .ag-header-cell::after, .ag-theme-fresh .ag-rtl .ag-header-group-cell::after {\n left: 0; }\n .ag-theme-fresh .ag-ltr .ag-header-select-all {\n margin-right: 12px; }\n .ag-theme-fresh .ag-rtl .ag-header-select-all {\n margin-left: 12px; }\n .ag-theme-fresh .ag-ltr .ag-floating-filter-button {\n margin-left: 12px; }\n .ag-theme-fresh .ag-rtl .ag-floating-filter-button {\n margin-right: 12px; }\n .ag-theme-fresh .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 12px;\n padding: 0;\n width: 12px; }\n .ag-theme-fresh .ag-filter-loading {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n height: 100%;\n padding: 6px 6px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-fresh .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000));\n height: 25px; }\n .ag-theme-fresh .ag-paging-panel > * {\n margin: 0 12px; }\n .ag-theme-fresh .ag-paging-button {\n cursor: pointer; }\n .ag-theme-fresh .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5)); }\n .ag-theme-fresh .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-fresh .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 .ag-theme-fresh .ag-paging-button, .ag-theme-fresh .ag-paging-description {\n margin: 0 4px; }\n .ag-theme-fresh .ag-status-bar {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-border-color, darkgrey);\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n padding-right: 16px;\n padding-left: 16px;\n line-height: 1.5; }\n .ag-theme-fresh .ag-status-name-value-value {\n color: #000;\n color: var(--ag-foreground-color, #000); }\n .ag-theme-fresh .ag-status-bar-center {\n text-align: center; }\n .ag-theme-fresh .ag-status-name-value {\n margin-left: 4px;\n margin-right: 4px;\n padding-top: 8px;\n padding-bottom: 8px; }\n .ag-theme-fresh .ag-column-drop-cell {\n background: var(--ag-chip-background-color);\n border-radius: 16px;\n height: 16px;\n padding: 0 2px; }\n .ag-theme-fresh .ag-column-drop-cell-text {\n margin: 0 4px; }\n .ag-theme-fresh .ag-column-drop-cell-button {\n min-width: 16px;\n margin: 0 2px;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-column-drop-cell-drag-handle {\n margin-left: 8px; }\n .ag-theme-fresh .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-fresh .ag-column-drop-horizontal {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6);\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000));\n height: 25px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-ltr .ag-column-drop-horizontal {\n padding-left: 12px; }\n .ag-theme-fresh .ag-rtl .ag-column-drop-horizontal {\n padding-right: 12px; }\n .ag-theme-fresh .ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-column-drop-horizontal-cell-separator {\n margin: 0 4px;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-column-drop-horizontal-empty-message {\n color: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5)); }\n .ag-theme-fresh .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 12px; }\n .ag-theme-fresh .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 12px; }\n .ag-theme-fresh .ag-column-drop-vertical-list {\n padding-bottom: 4px;\n padding-right: 4px;\n padding-left: 4px; }\n .ag-theme-fresh .ag-column-drop-vertical-cell {\n margin-top: 4px; }\n .ag-theme-fresh .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px;\n border-bottom: solid 1px;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-fresh .ag-column-drop-vertical-icon {\n margin-left: 4px;\n margin-right: 4px; }\n .ag-theme-fresh .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: rgba(0, 0, 0, 0.5);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.5));\n margin-top: 4px; }\n .ag-theme-fresh .ag-select-agg-func-popup {\n border: solid 1px;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n border-radius: 0px;\n box-shadow: none;\n padding: 4px;\n background: #FFF;\n background: var(--ag-background-color, #FFF);\n height: 70px;\n padding: 0; }\n .ag-theme-fresh .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 20px;\n padding-left: 8px; }\n .ag-theme-fresh .ag-select-agg-func-virtual-list-item:hover {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-fresh .ag-chart-menu {\n border-radius: 0px;\n background: #FFF;\n background: var(--ag-background-color, #FFF); }\n .ag-theme-fresh .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: 0px;\n color: #000;\n color: var(--ag-secondary-foreground-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-fresh .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-fresh .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-fresh .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-fresh .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-fresh .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-fresh .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-fresh .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-fresh .ag-chart-mini-thumbnail.ag-selected {\n border-color: #000;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-chart-settings-card-item {\n background: #000;\n background: var(--ag-foreground-color, #000);\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-fresh .ag-chart-settings-card-item.ag-selected {\n background-color: #000;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-chart-data-column-drag-handle {\n margin-left: 4px; }\n .ag-theme-fresh .ag-charts-settings-group-title-bar,\n .ag-theme-fresh .ag-charts-data-group-title-bar,\n .ag-theme-fresh .ag-charts-format-top-level-group-title-bar {\n border-top: solid 1px;\n border-top-color: darkgrey;\n border-top-color: var(--ag-secondary-border-color, var(--ag-border-color, darkgrey)); }\n .ag-theme-fresh .ag-charts-settings-group-container {\n padding: 4px; }\n .ag-theme-fresh .ag-charts-data-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-fresh .ag-charts-data-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-fresh .ag-charts-format-top-level-group-container {\n margin-left: 8px;\n padding: 4px; }\n .ag-theme-fresh .ag-charts-format-top-level-group-item {\n margin: 4px 0; }\n .ag-theme-fresh .ag-charts-format-sub-level-group-container {\n padding: 6px 6px;\n padding-bottom: 2px; }\n .ag-theme-fresh .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 4px; }\n .ag-theme-fresh .ag-charts-group-container.ag-group-container-horizontal {\n padding: 4px; }\n .ag-theme-fresh .ag-chart-data-section,\n .ag-theme-fresh .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-fresh .ag-chart-menu-panel {\n background-color: #f6f6f6;\n background-color: var(--ag-control-panel-background-color, #f6f6f6); }\n .ag-theme-fresh .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: darkgrey;\n border-left-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: darkgrey;\n border-right-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-fresh .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-fresh .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-fresh .ag-checkbox-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-fresh .ag-checkbox-input-wrapper input, .ag-theme-fresh .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-fresh .ag-checkbox-input-wrapper:focus-within, .ag-theme-fresh .ag-checkbox-input-wrapper:active {\n outline: none; }\n .ag-theme-fresh .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-fresh .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #000;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-fresh .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #000;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-fresh .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #000;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000)));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-fresh .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 24px;\n height: 12px;\n background-color: #000;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000)));\n border-radius: 6px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-fresh .ag-toggle-button-input-wrapper:focus-within {\n outline: none; }\n .ag-theme-fresh .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-fresh .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #000;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)));\n border-color: #000;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 12px;\n width: 12px;\n background-color: #FFF;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #FFF));\n border-radius: 6px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000)))); }\n .ag-theme-fresh .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 12px);\n border-color: #000;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000))); }\n .ag-theme-fresh .ag-radio-button-input-wrapper {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 12px;\n height: 12px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 0px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 12px; }\n .ag-theme-fresh .ag-radio-button-input-wrapper input, .ag-theme-fresh .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-fresh .ag-radio-button-input-wrapper:focus-within, .ag-theme-fresh .ag-radio-button-input-wrapper:active {\n outline: none; }\n .ag-theme-fresh .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-fresh .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #000;\n color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-fresh .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #000;\n color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-fresh input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-fresh input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-fresh input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px; }\n .ag-theme-fresh input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: darkgrey;\n background-color: var(--ag-border-color, darkgrey);\n border-radius: 0px;\n border-radius: 0px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-fresh input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n border-radius: 12px;\n -webkit-transform: translateY(-4.5px);\n transform: translateY(-4.5px); }\n .ag-theme-fresh input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n border-radius: 12px; }\n .ag-theme-fresh input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border: 1px solid;\n border-color: #000;\n border-color: var(--ag-checkbox-unchecked-color, var(--ag-foreground-color, #000));\n border-radius: 12px; }\n .ag-theme-fresh input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-fresh input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n border-color: #000;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh input[class^='ag-'][type='range']:focus::-ms-thumb {\n border-color: #000;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n border-color: #000;\n border-color: var(--ag-checkbox-checked-color, var(--ag-foreground-color, #000)); }\n .ag-theme-fresh input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-fresh input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-fresh input[class^='ag-'][type='range']:active::-ms-track {\n background-color: var(--ag-input-focus-border-color); }\n .ag-theme-fresh input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\n .ag-theme-fresh .ag-icon {\n color: #333;\n margin: 1px 1px 2px 1px; }\n .ag-theme-fresh .ag-icon-tree-closed::before {\n content: \"\\f10b\"; }\n .ag-theme-fresh .ag-icon-tree-open::before {\n content: \"\\f111\"; }\n .ag-theme-fresh .ag-header, .ag-theme-fresh .ag-column-drop-cell {\n background-image: linear-gradient(white, lightgrey); }\n .ag-theme-fresh .ag-tab {\n border: 1px solid transparent;\n padding: 4px 8px;\n margin: 4px;\n margin-bottom: -1px; }\n .ag-theme-fresh .ag-tabs-body {\n margin: 2px 0; }\n .ag-theme-fresh .ag-tab-selected {\n background-color: #FFF;\n background-color: var(--ag-background-color, #FFF);\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-bottom-color: transparent; }\n .ag-theme-fresh .ag-tabs-header {\n background-color: var(--ag-header-background-color);\n border-bottom: 1px solid;\n border-bottom-color: darkgrey;\n border-bottom-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-filter .ag-filter-apply-panel {\n justify-content: flex-start; }\n .ag-theme-fresh .ag-menu-option-active {\n background-color: #bde2e5;\n background-color: var(--ag-selected-row-background-color, #bde2e5); }\n .ag-theme-fresh .ag-column-drop-cell {\n border: 1px solid;\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey);\n border-radius: 0; }\n .ag-theme-fresh .ag-column-drop-cell-button .ag-icon {\n border: 1px solid transparent; }\n .ag-theme-fresh .ag-column-drop-cell-button:hover .ag-icon {\n border-color: darkgrey;\n border-color: var(--ag-border-color, darkgrey); }\n .ag-theme-fresh .ag-panel-title-bar-button-icon {\n font-size: 20px;\n line-height: 20px; }\n .ag-theme-fresh .ag-menu-option-part {\n padding-top: 4px;\n padding-bottom: 4px; }\n .ag-theme-fresh .ag-column-drop-vertical-title-bar {\n margin-top: 4px;\n margin-left: 4px; }\n .ag-theme-fresh .ag-column-drop-vertical-title {\n margin-left: 4px; }\n .ag-theme-fresh .ag-column-drop-vertical-empty-message {\n margin-left: 24px; }\n\n", ""]);
53913// Exports
53914module.exports = exports;
53915
53916
53917/***/ }),
53918/* 277 */
53919/***/ (function(module, exports, __webpack_require__) {
53920
53921var api = __webpack_require__(258);
53922 var content = __webpack_require__(278);
53923
53924 content = content.__esModule ? content.default : content;
53925
53926 if (typeof content === 'string') {
53927 content = [[module.i, content, '']];
53928 }
53929
53930var options = {};
53931
53932options.insert = "head";
53933options.singleton = false;
53934
53935var update = api(content, options);
53936
53937
53938
53939module.exports = content.locals || {};
53940
53941/***/ }),
53942/* 278 */
53943/***/ (function(module, exports, __webpack_require__) {
53944
53945// Imports
53946var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53947exports = ___CSS_LOADER_API_IMPORT___(false);
53948// Module
53949exports.push([module.i, ".ag-theme-material {\n -webkit-font-smoothing: antialiased;\n color: rgba(0, 0, 0, 0.87);\n color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));\n font-family: \"Roboto\", sans-serif;\n font-size: 13px;\n line-height: normal; }\n\n@font-face {\n font-family: \"agGridMaterial\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABPwAAsAAAAAJjAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2ZOVnMk9TLzIAAANsAAAAQQAAAFZWUFMDY21hcAAAA7AAAAIRAAAFnH0V34BnbHlmAAAFxAAACj0AABO8Q1oUYmhlYWQAABAEAAAAMQAAADZ2zsSBaGhlYQAAEDgAAAAWAAAAJAfRBDVobXR4AAAQUAAAABIAAAEww1AAAGxvY2EAABBkAAAAcwAAAJoHSQMCbWF4cAAAENgAAAAfAAAAIAFfAKpuYW1lAAAQ+AAAATIAAAJebBQ2inBvc3QAABIsAAABwgAAAqTvU9OHeJx9lEtyElEUhv+mm0gCklSMGjFq1PhCjZpO09DhYUIHAjpwYFkOnMSyyrKKcsQ6XIAryNAVuAAHrsAFOHDo2PK7h0ZMBuEWl3vP4z//eVzkSVrQY7WVS3vPX6o8Ohx/VEWBJh+n///sjT68P1RhekMX2G9BXlBSWTf0WmN988re2DvKrfgV/5X/zv/sf/F/ycdqXZtYF7XNilRjDxWrroYS5TSHLOK8oybWPnvLpMswypump74uETPCp2+IVQ11R0vgpIbT1S5WMcthdtmHrLtaPMUi0T3w67DpIA2oyFVq0tR5zesAll3Obfyb6M8Rc4/YIV4puhR2eSQtzm1dgJPzCKyqB3rDvmyZOpR65hPzjbRv99BuRdbUqgVOg1gO+wkMpvIGUWt4PAK9jtXTrKJV3cS7AU4XtLZ575h3Ecsa3GL6ElieNbiWtMHphd7qIRb7mU/XajqpwH3Yz+Sp4SV6cEzaBmuI7SYcZlLXnyqxQg0sq1UkI33Skb7qu37op37rj85Qpw56l8Mu6Hun1qZABU9a99C2/kldrnPMwEmr4xbzZN6w6kTo+lkNXbQimbnqxJxDpLHZL8DT2fdgk9CPgBihxXWdzrM63COsz2bT2WSVrNJ9er9oEzywWagwgVtMlUOczGFCra+A6E4Tfpetbk3w1qxvrrruhS3Zzb0F1+8KfbjGb0iGdavTM7TXkTikmWTdvBLYO4wt9AmsZ9EcqzVYbdtEuxkb2OvoEWmDfCZMarptL2Ng83ULBvXspa7oorFvZx1bNbvIvDz+CcLshcdWOzfTKdzcfAz/Au6DcHUAeJxjYGSaxDiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMb9hYAHSjCA5AOMfCvMAAAB4nLXUB1IbQRCF4V+BLMC2MDknR9kgBCIHIUDAKXCmcKBw5hw+m+/RJ8Bv1O0D4Cpv1afeGa12Z7T1GmgBcvJU8pBtJ6MzMlnNZprzOTqb83l+a1ygnazOS5xzybWVb240W+KMC64s0xz9PTK6usAo86xotM8Se2xR1+iECjussss2B6yzxhHLbFLlkGM2qNHgVL9Pq8hrja206bkdWkmX7thND3e4S5E++hlgkCGGGdGTxhhngkmmdN00M8wyp6cXecBDHvGYJ9pPiWc81/cLLFLWIlu53bF/y+vTsbS3VV85qexox9sH62va7Gb18Hij1jj9h5v9h6OQPnK/YpQWVQppt2dhSV6EPXkZtuRVqMvrkN76m3Aib0NF3oUdOQ+rchF25X3Ylg/hQD6GdfkU1uQyHMlVWJbPYVO+hKp8DYfyLRzL97AhP0JNfoaGXAf9V5ZxKS+WdaSacylflncpY9biUvas1ZFqmyPVdkeqHY5UO13KpHU5Ui249Cat25FqjyPVXqfsYEEpwoJygt1zShZWdMoY1ueUNuy+U+6wfqcEYgNOWcQGnVKJDTnlExt2Sio24pRZbNQpvdiYU46xcadEYxOuud9Jp5RjU055x6adko/NOPUAbNapG2BzrrnfeacOgQX1Ciyoa2BB/QML6iRYSL3TQsqMBfUZLKjjYKG5/gVHqouOVMuO8h8D8KVRAAAAeJztWH1sG+UZv+e92Ofz99m+O3tN7NgX+0qTGsXn88V2miZN2mSMpJ1sOvpFCqwtkNK0UAaFRTDEpDJGizTCH6BJoEmONAkGyz9lQy3qQHRC2lzRMQl13cQ/JIxFRYpAMvVtz3ux04ZmjP2JtuTe9557P557Pn73Ps9jBhj8IwvsJsbFMBAXPSDG9bihxsmC6Qaf+SksmhfPn4cOdqBUq5WmqlWGaaF72NfY1xg742FCzBrcqemaymmconOyriVVURE1UVVERTYUeKkyefbsZA/tyPDZyckZ65k8iv0MpUpnJyuTBlLI1pKH3YTyOBgmKBuCJsgGzBTmy3NFcxYWi/OmDb6YL8Ioim2tnWanUYZ23Jrg7Jw9JEuylDFyRi6rptRUkFM51VAN2ZA5WDxy+7iRzxvjt3/YJMYLzz1XmJ62enZ6xZRF1H/fnMWevs56Z5gNI8VRmwU1QaHN0ESlOjX18dGj8w88QO42D5CR+qlazTKvtWeOnWOCTIRaOeEFUQhFQYtn+kAXsmngwZBBZo9d+SyqRfFinda9vmB+PHYOKmPsHD6vmLzyGUhj70Bl60r+8ur8WXTqddyfrl8gXddzrl84fC1P1uIpxIXkanyRJ+v8Et+lwckv823Y7iH2+4wNvRtmGB44mQfWiIGduk4MSZmcTt1G/m6OF+4069B37tw7r7pcEZ/Uvblb8kXgLLxUxAnzd7Dh3Lk+jye6JhVJdHcnIsnWKGXPL+NnyT8+yyZrmBijUF/pCm0cNh2bjM0QNd3WGBewzVQqNetq3M29jSfyQqW+H+/lSmMAZ/BqYpacJAuoF4MqcYjYZwunTxdqZKF45kyxtoybx9gzluatlpfsIqI7LltESEKj5tCmKTYuxMmrplvpLsPilKlT7eBd2ps6vMue7k7UXyfDpW6l/jodJMNKd30fGV7+dig26beMuLdEkQ2VDRfn55sX+cs1D/gFM/+8wh5iP2H8aKk2ZoR5jPk57sZPR7VdIxir6IgB2S5LRQgmQ16iJNIteraPaJkoiCF7IqWmQcENCI9MzuiDjCSHvDiCw3o2l4myGvVtGtQ0yfYB7iKNTUt7YiDJUYLC5oxu3ByFkOgDL0mk4UYWt0vsvdz+wzZzTDUMleRUY8usuQmeJMDa/B8Qc5wPREN+OeR32jzheFDuCDo9jhZHyCe3uuV2yU4cXudrgYTUJnj8vNfBOXxuQXIF/KE1QiAmBcKCw+nhWmy+aMDusgUCLk/A2du5jrDE4XLYiE44p89tJxoLzoCDfOT4weM20qNe+aMlzJPVKz9hH/pThBfqz/zZHYsGHYE17UkxoadCrWqA9zk9Yiibae+UwmGnz+uL3CD5XMmAy+uKCG454BUcdi4YTyeDHjEs+p0uXyDo4V08y3E2Lth24rdv8C67k/M4bfwF3ufgvfwffLzTH6Cu/r/vvrm+WxHn8FsVFEHlgB2wAh2M0kAHX5i2eQx6NN6u8PO3/6OPDRr6sjktI8VgI6Euk8SQD2R0jRcSqRuBoyBI6dmvds36Hd/hOVvIJwT9vf1Or93j8AXFsbLbyQdCgZZbv9fCCzjyVUY9d2zC63FJ/mB4505fwGbzu4W2e4/5xICX5+2PPmx32AWfZY//BR1Xxgk8nZHRiUKtVjhNZou1WvHMMi52kDmmiA9p1MDOqagkqiV7AUlDwQFFtqNqqhLFT9igNH6LOCXbOY0ulmTyLJceUuNFeXTHgW0jW+5plW/pGUvyg5ywbmzIwcezjkFu/Wa1o314cATnJ1pT393FtzxxQ9va9ixPhOQGJSKNarHYoeENd8RHk1o4sG4zqLFUn+Lb8i06vLd/dzC0tjUV/YbKzC7LHMDcYK2VPaKsKDEmj31goGwpFk+w7NKB5gU2YafpSTYFi5ZwrfdsGXkRibY2JLZ13dTVddOttOtam89vy+fJR/SNw4disebdnGiswA5YumZbvinHBGKikU8mMQehOThgxoaZc8W8SBbqJzELd9dK8FKpZF4sL+eU5HMLSzxFk4F4AsxDyedvvolgMvVyGXSafNTo3kY+t4kcsd5DM/24jeaEA/X95PlGO1KaKTXiCq69jXUi5WQERsSsNUb3oBk6gQpn0MAR14NWFoWZv0LDAhkGCdO8GZDMj2eQMN2T9O8STQRhlHZjhw9fwvtk/cLk5GE6fJ0eQZqxqHHU41NLDXiwXCazlhqoxHXnJhYqmDmrqMbSUQmj9Ngk0fmCOWvOFuab9p0mb2ONEGa68A0oahF0BXNZDF0WlQYZTZHEkmXJ1Z2AVB9gwPtFolepVPJ7e3r25isVpTfxSxgzfw0PUlpRludgUSkqW3vG7xvv2aoUuXIF+y10ZO+R8Z5mLu1Ee8qWHbEUwWJB5rBK0rE4oQY0sGpiNUNXFU4kXfu27n/mmf1b9x1eJvbvHhjYPUAeXjFICfORATrVsMsEO0E1DqJ3pxA2AXaixKyCMQPVtf7Rh9a6pYblXblaKjXOqQXmPN1pIC8LQlULG6vyEhp4naLrmvyuwpW9pk6LM+l/U6lBlpL0IIA04AGuAk1O6MLV6jZz0/qum0d35e/qNNcnOmAUCXgv0UEHVyvjzPFdozd3re9ImOs77zI/6UjAe5135a2xpk4HMTeX0D8qyqfQ1IZTVibmSjwj0bwnm4O4oKHKGhv+lad/W7/3FSsRH7Fy9ItCJJKIRECvnyrDi2V2IplOJzFn32eteSHRHVbCeKGNXpiaamKjn+1DKXy0elCNIFiZO61ZVdj1lPrUX6ErGr3cu/3yLb3HopDDEfibeSEaPdZ7y+XtvZevqXtoTb5U7yioR5rJMDmmgGdKHDGOKvTRyi1KazgvAMId9Ygnl16FyBO1pFUsy3SKfg0GNnpAxLS2Ni1Gnrfu9X9UKujmIXjD/HDjRvXAAfV9HPhE7d+49sABM4S0dOnSpUql5+qWmMUCxAr82HzklY39uGktvD9zo9pPSXiaFlOVFXVyiLmhiRI/RUk7hYafooRNWGGfPmfoTAMgx48eGRwaGjxyFPxN6vi9e3bqhqHv3PNBk2Dn6IR5eeXiKz9cscgiGpigsrgRszkqjXVgLJ0L6n8h2tD9g4P3H6fd0NeTkiw01mNX+9oCX3c2cjJ+uRgTrv3NxMov5wsw2rA1PS88iHqrvleWsW4zLEwICPD6qdIStM3Zg4VqtXCwTH8Qgg7zolWXdrQeLFarxYPws+X85m2yh3IHLII7qlWym/5i1Jzbg+cwsWSj4+St1eYQ9D+tVule5jqeiE0cp/NX9b2TdTfzKVDh0MvFOVgsQOnlwjzemzUxiTbPxSr9XYZEy8u8F8jJpbqdJmSNWENO0Or9at0+jXaicTBDzwaxUTZxch/QqohTZI0mOuLVeIJVkyHjQhkvA8hbVrww1m3IbuzZe8fusqN+6vHCSDOmbOreHrtvfGQmWx8mb2HkULo2uzasuaM3P95TKcPBH4Xv7s9bgUXpvsm2vXwbriS/Qan+BR+vOg4AAAB4nGNgZGBgAGKpH/rO8fw2Xxm4mV8ABaI4H+9rQND//zC/YH4DVMnBwAQkGQBX3Q0FAAAAeJxjYGRgYH7BwIBEMjKgAh8ARYYDEAAAeJxjYGBgYH4xPDA9AAANeC3nAAB4nGNgAAIpBg+GOIYZDJsYHjHyMJoxZjAuYtzC+IyJgeke8x7mSywuLNtYTrAqsdawHmC9w/qFjYvNgS2CrYBtE9sTtk/sXOwS7EbsTewH2J9wuHH0cDzj+MOpxmnC6cQZwBnHWcBZxzmB8x7pEAB+RDEmAHicY2BkYGDwYZjHwMkAAkxAzAWEDAz/wXwGACCLAgoAeJx9kD1qw0AQhZ/8F2JDCIS4UrEQSBOQf0qT2oKAGxfuZWsly6y1YrU2+AY5SE6QQ6TMQXKKPK23sQvPwvC9N2+mWACP+EGApgI8uN5UC3dUZ26Tnj13yC+euxhg4rlH/91zH2/48DzAEw68EHTu6YT49Nxi/stzm/635w7513MXQ/x57iEM4LmPVRB6HuA1MEkemyJdJFaaIlFLmR9UcmVeqpU0daFLMYnGl4NYltKQU7E+ifqYT63NRGb0Xsx1aaVSWlRG7+TGRltrq9lolHk/2ug9EuSIYVAgxYLKQjqVQGFJzvkXisrcTN6arRzXVBolBP8/wvjmRkwunT77KbfWOLHXOHJvStcio86Y0diT5u56k1Z8mk7lZjs6G/oRtm6rwgwjvuwqHzHFS/808m/eAAB4nG2SB2/bMBCF/cWS7dhpk6Ztuvceauvune6Z/giGomUiEimQlO3k15e1gwABegCJ9x7uju8ObC21FtFv/T+2WKJNQkqHLj2W6TNghSMcZZU1jrHOcU5wkg1OcZoznOUc57nARS5xmStc5RrXucFNbnGbO9zlHvfJeMBDHjHkMU94yjOe84KXvOI1b3jLO96zyQc+8onPfOEr3/jOD37yi99s8ac1EEXhVCGCtqYjnLNT3xZedqQwUpWpHAsX1uRYyZ1tO8vmQOUbB4I2uQrKVdqIoNYP5MbsZ65IW1qX1ToS142kqYzvS2uCEzKoPJG23k2ls963pZ+k8WTDJFdepmoWDXTndzbsqVkt4lv5stpVmS+FHw8OUDZsR9wZ6TJaSUfa+ZAUTtdp4WxTJzElJKUahU6pTfTULa3ItSl6lZjpSu+ppFKm6cUZFsxYowbGhkyUpZ2qPK1jA9WutUlrPbFhzcVym203IViT2dFo9bBgUqeLcUi8mKi+r2KXLLdTsw//GRks4Dytt8DRZ4hLWg9OqcNbXZ5Ltlam15jFBAgKHIqAxmKY4pGUjNlhm1n8FzkVDTW7TBix12r9BZxqtRIAAA==\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n .ag-theme-material .ag-icon {\n font-family: \"agGridMaterial\";\n font-size: 18px;\n line-height: 18px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n .ag-theme-material .ag-icon-aggregation::before {\n content: \"\\f101\"; }\n .ag-theme-material .ag-icon-arrows::before {\n content: \"\\f102\"; }\n .ag-theme-material .ag-icon-asc::before {\n content: \"\\f103\"; }\n .ag-theme-material .ag-icon-cancel::before {\n content: \"\\f104\"; }\n .ag-theme-material .ag-icon-chart::before {\n content: \"\\f105\"; }\n .ag-theme-material .ag-icon-color-picker::before {\n content: \"\\f109\"; }\n .ag-theme-material .ag-icon-columns::before {\n content: \"\\f10a\"; }\n .ag-theme-material .ag-icon-contracted::before {\n content: \"\\f10b\"; }\n .ag-theme-material .ag-icon-copy::before {\n content: \"\\f10c\"; }\n .ag-theme-material .ag-icon-cross::before {\n content: \"\\f10d\"; }\n .ag-theme-material .ag-icon-csv::before {\n content: \"\\f10e\"; }\n .ag-theme-material .ag-icon-desc::before {\n content: \"\\f10f\"; }\n .ag-theme-material .ag-icon-excel::before {\n content: \"\\f110\"; }\n .ag-theme-material .ag-icon-expanded::before {\n content: \"\\f111\"; }\n .ag-theme-material .ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n .ag-theme-material .ag-icon-eye::before {\n content: \"\\f113\"; }\n .ag-theme-material .ag-icon-filter::before {\n content: \"\\f114\"; }\n .ag-theme-material .ag-icon-first::before {\n content: \"\\f115\"; }\n .ag-theme-material .ag-icon-grip::before {\n content: \"\\f116\"; }\n .ag-theme-material .ag-icon-group::before {\n content: \"\\f117\"; }\n .ag-theme-material .ag-icon-last::before {\n content: \"\\f118\"; }\n .ag-theme-material .ag-icon-left::before {\n content: \"\\f119\"; }\n .ag-theme-material .ag-icon-linked::before {\n content: \"\\f11a\"; }\n .ag-theme-material .ag-icon-loading::before {\n content: \"\\f11b\"; }\n .ag-theme-material .ag-icon-maximize::before {\n content: \"\\f11c\"; }\n .ag-theme-material .ag-icon-menu::before {\n content: \"\\f11d\"; }\n .ag-theme-material .ag-icon-minimize::before {\n content: \"\\f11e\"; }\n .ag-theme-material .ag-icon-next::before {\n content: \"\\f11f\"; }\n .ag-theme-material .ag-icon-none::before {\n content: \"\\f120\"; }\n .ag-theme-material .ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n .ag-theme-material .ag-icon-paste::before {\n content: \"\\f122\"; }\n .ag-theme-material .ag-icon-pin::before {\n content: \"\\f123\"; }\n .ag-theme-material .ag-icon-pivot::before {\n content: \"\\f124\"; }\n .ag-theme-material .ag-icon-previous::before {\n content: \"\\f125\"; }\n .ag-theme-material .ag-icon-right::before {\n content: \"\\f128\"; }\n .ag-theme-material .ag-icon-save::before {\n content: \"\\f129\"; }\n .ag-theme-material .ag-icon-small-down::before {\n content: \"\\f12a\"; }\n .ag-theme-material .ag-icon-small-left::before {\n content: \"\\f12b\"; }\n .ag-theme-material .ag-icon-small-right::before {\n content: \"\\f12c\"; }\n .ag-theme-material .ag-icon-small-up::before {\n content: \"\\f12d\"; }\n .ag-theme-material .ag-icon-tick::before {\n content: \"\\f12e\"; }\n .ag-theme-material .ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n .ag-theme-material .ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n .ag-theme-material .ag-icon-tree-open::before {\n content: \"\\f131\"; }\n .ag-theme-material .ag-icon-unlinked::before {\n content: \"\\f132\"; }\n .ag-theme-material .ag-icon-row-drag::before {\n content: \"\\f116\"; }\n .ag-theme-material .ag-left-arrow::before {\n content: \"\\f119\"; }\n .ag-theme-material .ag-right-arrow::before {\n content: \"\\f128\"; }\n .ag-theme-material .ag-root-wrapper {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-material [class^='ag-'], .ag-theme-material [class^='ag-']:focus, .ag-theme-material [class^='ag-']:after, .ag-theme-material [class^='ag-']:before {\n box-sizing: border-box;\n outline: none; }\n .ag-theme-material [class^='ag-']::-ms-clear {\n display: none; }\n .ag-theme-material .ag-checkbox .ag-input-wrapper,\n .ag-theme-material .ag-radio-button .ag-input-wrapper {\n overflow: visible; }\n .ag-theme-material .ag-range-field .ag-input-wrapper {\n height: 100%; }\n .ag-theme-material .ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset; }\n .ag-theme-material .ag-ltr .ag-label-align-right .ag-label {\n margin-left: 8px; }\n .ag-theme-material .ag-rtl .ag-label-align-right .ag-label {\n margin-right: 8px; }\n .ag-theme-material input[class^='ag-'] {\n margin: 0;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-material textarea[class^='ag-'],\n .ag-theme-material select[class^='ag-'] {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\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 font-size: inherit;\n line-height: inherit;\n color: inherit; }\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 color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color); }\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 outline: none;\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n border-color: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material input[class^='ag-'][type='number'] {\n -moz-appearance: textfield; }\n .ag-theme-material input[class^='ag-'][type='number']::-webkit-outer-spin-button, .ag-theme-material input[class^='ag-'][type='number']::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n .ag-theme-material input[class^='ag-'][type='range'] {\n padding: 0; }\n .ag-theme-material input[class^='ag-'][type='button']:focus, .ag-theme-material button[class^='ag-']:focus {\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122); }\n .ag-theme-material .ag-drag-handle {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-list-item, .ag-theme-material .ag-virtual-list-item {\n height: 32px; }\n .ag-theme-material .ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-select-list {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n overflow-y: auto;\n overflow-x: hidden; }\n .ag-theme-material .ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-material .ag-list-item.ag-active-item {\n background-color: #fafafa;\n background-color: var(--ag-row-hover-color, #fafafa); }\n .ag-theme-material .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 .ag-theme-material .ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden; }\n .ag-theme-material .ag-select .ag-picker-field-wrapper {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n min-height: 32px;\n cursor: default; }\n .ag-theme-material .ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none; }\n .ag-theme-material .ag-select:not(.ag-cell-editor) {\n height: 32px; }\n .ag-theme-material .ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ag-theme-material .ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center; }\n .ag-theme-material .ag-select.ag-disabled {\n opacity: 0.5; }\n .ag-theme-material .ag-rich-select {\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa); }\n .ag-theme-material .ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: 312px; }\n .ag-theme-material .ag-rich-select-value {\n padding: 0 8px 0 24px;\n height: 48px; }\n .ag-theme-material .ag-rich-select-virtual-list-item {\n cursor: default;\n height: 32px; }\n .ag-theme-material .ag-rich-select-virtual-list-item:hover {\n background-color: #fafafa;\n background-color: var(--ag-row-hover-color, #fafafa); }\n .ag-theme-material .ag-rich-select-row {\n padding-left: 24px; }\n .ag-theme-material .ag-rich-select-row-selected {\n background-color: #eee;\n background-color: var(--ag-selected-row-background-color, #eee); }\n .ag-theme-material .ag-row-drag,\n .ag-theme-material .ag-selection-checkbox,\n .ag-theme-material .ag-group-expanded,\n .ag-theme-material .ag-group-contracted {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-ltr .ag-row-drag, .ag-theme-material .ag-ltr .ag-selection-checkbox, .ag-theme-material .ag-ltr .ag-group-expanded, .ag-theme-material .ag-ltr .ag-group-contracted {\n margin-right: 24px; }\n .ag-theme-material .ag-rtl .ag-row-drag, .ag-theme-material .ag-rtl .ag-selection-checkbox, .ag-theme-material .ag-rtl .ag-group-expanded, .ag-theme-material .ag-rtl .ag-group-contracted {\n margin-left: 24px; }\n .ag-theme-material .ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n height: 46px;\n display: flex;\n align-items: center;\n flex: none; }\n .ag-theme-material .ag-group-expanded,\n .ag-theme-material .ag-group-contracted {\n cursor: pointer; }\n .ag-theme-material .ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-ltr .ag-group-child-count {\n margin-left: 2px; }\n .ag-theme-material .ag-rtl .ag-group-child-count {\n margin-right: 2px; }\n .ag-theme-material .ag-group-title-bar {\n background-color: #eee;\n background-color: var(--ag-subheader-background-color, #eee);\n padding: 8px; }\n .ag-theme-material .ag-group-toolbar {\n padding: 8px; }\n .ag-theme-material .ag-disabled-group-title-bar, .ag-theme-material .ag-disabled-group-container {\n opacity: 0.5; }\n .ag-theme-material .group-item {\n margin: 4px 0; }\n .ag-theme-material .ag-label {\n white-space: nowrap; }\n .ag-theme-material .ag-ltr .ag-label {\n margin-right: 8px; }\n .ag-theme-material .ag-rtl .ag-label {\n margin-left: 8px; }\n .ag-theme-material .ag-label-align-top .ag-label {\n margin-bottom: 4px; }\n .ag-theme-material .ag-ltr .ag-slider-field, .ag-theme-material .ag-ltr .ag-angle-select-field {\n margin-right: 16px; }\n .ag-theme-material .ag-rtl .ag-slider-field, .ag-theme-material .ag-rtl .ag-angle-select-field {\n margin-left: 16px; }\n .ag-theme-material .ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: #e2e2e2;\n border-color: var(--ag-border-color, #e2e2e2);\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-material .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: rgba(0, 0, 0, 0.54);\n background-color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-picker-field-wrapper {\n border: 1px solid;\n border-color: #e2e2e2;\n border-color: var(--ag-border-color, #e2e2e2);\n border-radius: 5px; }\n .ag-theme-material .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122); }\n .ag-theme-material .ag-picker-field-button {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-dialog.ag-color-dialog {\n border-radius: 5px; }\n .ag-theme-material .ag-color-picker .ag-picker-field-display {\n height: 18px; }\n .ag-theme-material .ag-color-panel {\n padding: 8px; }\n .ag-theme-material .ag-spectrum-color {\n background-color: red;\n border-radius: 2px; }\n .ag-theme-material .ag-spectrum-tools {\n padding: 10px; }\n .ag-theme-material .ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0)); }\n .ag-theme-material .ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0)); }\n .ag-theme-material .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 .ag-theme-material .ag-spectrum-hue-background {\n border-radius: 2px; }\n .ag-theme-material .ag-spectrum-alpha-background {\n border-radius: 2px; }\n .ag-theme-material .ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px; }\n .ag-theme-material .ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: #f8f8f8;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37); }\n .ag-theme-material .ag-recent-color {\n margin: 0 3px; }\n .ag-theme-material .ag-recent-color:first-child {\n margin-left: 0; }\n .ag-theme-material .ag-recent-color:last-child {\n margin-right: 0; }\n .ag-theme-material.ag-dnd-ghost {\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 2px;\n box-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 padding: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));\n height: 56px !important;\n line-height: 56px;\n margin: 0;\n padding: 0 16px;\n -webkit-transform: translateY(16px);\n transform: translateY(16px); }\n .ag-theme-material .ag-dnd-ghost-icon {\n margin-right: 8px;\n color: rgba(0, 0, 0, 0.87);\n color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87)); }\n .ag-theme-material .ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3); }\n .ag-dragging-range-handle .ag-theme-material .ag-dialog,\n .ag-dragging-fill-handle .ag-theme-material .ag-dialog {\n opacity: 0.7;\n pointer-events: none; }\n .ag-theme-material .ag-dialog {\n border-radius: 0px; }\n .ag-theme-material .ag-panel {\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\n .ag-theme-material .ag-panel-title-bar {\n background-color: #fff;\n background-color: var(--ag-header-background-color, #fff);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)));\n height: 56px;\n padding: 8px 24px; }\n .ag-theme-material .ag-ltr .ag-panel-title-bar-button {\n margin-left: 8px; }\n .ag-theme-material .ag-rtl .ag-panel-title-bar-button {\n margin-right: 8px; }\n .ag-theme-material .ag-tooltip {\n background-color: #fff;\n background-color: var(--ag-header-background-color, #fff);\n color: rgba(0, 0, 0, 0.87);\n color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));\n padding: 8px;\n border-radius: 2px;\n transition: opacity 1s; }\n .ag-theme-material .ag-tooltip.ag-tooltip-hiding {\n opacity: 0; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-1 {\n padding-left: 26px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-1 {\n padding-right: 26px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-2 {\n padding-left: 52px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-2 {\n padding-right: 52px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-3 {\n padding-left: 78px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-3 {\n padding-right: 78px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-4 {\n padding-left: 104px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-4 {\n padding-right: 104px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-5 {\n padding-left: 130px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-5 {\n padding-right: 130px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-6 {\n padding-left: 156px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-6 {\n padding-right: 156px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-7 {\n padding-left: 182px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-7 {\n padding-right: 182px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-8 {\n padding-left: 208px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-8 {\n padding-right: 208px; }\n .ag-theme-material .ag-ltr .ag-column-select-indent-9 {\n padding-left: 234px; }\n .ag-theme-material .ag-rtl .ag-column-select-indent-9 {\n padding-right: 234px; }\n .ag-theme-material .ag-column-select-header-icon {\n cursor: pointer; }\n .ag-theme-material .ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-ltr .ag-column-group-icons:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-header-icon:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-header-checkbox:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-checkbox:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-material .ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: 12px; }\n .ag-theme-material .ag-rtl .ag-column-group-icons:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-header-icon:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-header-checkbox:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-checkbox:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-column-drag-handle:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child), .ag-theme-material .ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: 12px; }\n .ag-theme-material .ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-column-select-column-group:not(:last-child),\n .ag-theme-material .ag-column-select-column:not(:last-child) {\n margin-bottom: 14px; }\n .ag-theme-material .ag-column-select-column-readonly,\n .ag-theme-material .ag-column-select-column-group-readonly {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n pointer-events: none; }\n .ag-theme-material .ag-ltr .ag-column-select-add-group-indent {\n margin-left: 34px; }\n .ag-theme-material .ag-rtl .ag-column-select-add-group-indent {\n margin-right: 34px; }\n .ag-theme-material .ag-column-select-virtual-list-viewport {\n padding: 8px 0px; }\n .ag-theme-material .ag-column-select-virtual-list-item {\n margin: 0 12px; }\n .ag-theme-material .ag-rtl {\n text-align: right; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: 66px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: 66px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-1 {\n padding-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-1 {\n padding-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: 108px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: 108px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-2 {\n padding-left: 84px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-2 {\n padding-right: 84px; }\n .ag-theme-material .ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: 150px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: 150px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-3 {\n padding-left: 126px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-3 {\n padding-right: 126px; }\n .ag-theme-material .ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: 192px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: 192px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-4 {\n padding-left: 168px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-4 {\n padding-right: 168px; }\n .ag-theme-material .ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: 234px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: 234px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-5 {\n padding-left: 210px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-5 {\n padding-right: 210px; }\n .ag-theme-material .ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: 276px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: 276px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-6 {\n padding-left: 252px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-6 {\n padding-right: 252px; }\n .ag-theme-material .ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: 318px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: 318px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-7 {\n padding-left: 294px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-7 {\n padding-right: 294px; }\n .ag-theme-material .ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: 360px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: 360px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-8 {\n padding-left: 336px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-8 {\n padding-right: 336px; }\n .ag-theme-material .ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: 402px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: 402px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-9 {\n padding-left: 378px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-9 {\n padding-right: 378px; }\n .ag-theme-material .ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: 444px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: 444px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-10 {\n padding-left: 420px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-10 {\n padding-right: 420px; }\n .ag-theme-material .ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: 486px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: 486px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-11 {\n padding-left: 462px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-11 {\n padding-right: 462px; }\n .ag-theme-material .ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: 528px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: 528px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-12 {\n padding-left: 504px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-12 {\n padding-right: 504px; }\n .ag-theme-material .ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: 570px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: 570px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-13 {\n padding-left: 546px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-13 {\n padding-right: 546px; }\n .ag-theme-material .ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: 612px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: 612px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-14 {\n padding-left: 588px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-14 {\n padding-right: 588px; }\n .ag-theme-material .ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: 654px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: 654px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-15 {\n padding-left: 630px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-15 {\n padding-right: 630px; }\n .ag-theme-material .ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: 696px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: 696px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-16 {\n padding-left: 672px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-16 {\n padding-right: 672px; }\n .ag-theme-material .ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: 738px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: 738px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-17 {\n padding-left: 714px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-17 {\n padding-right: 714px; }\n .ag-theme-material .ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: 780px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: 780px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-18 {\n padding-left: 756px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-18 {\n padding-right: 756px; }\n .ag-theme-material .ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: 822px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: 822px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-19 {\n padding-left: 798px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-19 {\n padding-right: 798px; }\n .ag-theme-material .ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: 864px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: 864px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-20 {\n padding-left: 840px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-20 {\n padding-right: 840px; }\n .ag-theme-material .ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: 906px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: 906px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-21 {\n padding-left: 882px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-21 {\n padding-right: 882px; }\n .ag-theme-material .ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: 948px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: 948px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-22 {\n padding-left: 924px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-22 {\n padding-right: 924px; }\n .ag-theme-material .ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: 990px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: 990px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-23 {\n padding-left: 966px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-23 {\n padding-right: 966px; }\n .ag-theme-material .ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: 1032px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: 1032px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-24 {\n padding-left: 1008px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-24 {\n padding-right: 1008px; }\n .ag-theme-material .ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: 1074px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: 1074px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-25 {\n padding-left: 1050px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-25 {\n padding-right: 1050px; }\n .ag-theme-material .ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: 1116px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: 1116px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-26 {\n padding-left: 1092px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-26 {\n padding-right: 1092px; }\n .ag-theme-material .ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: 1158px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: 1158px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-27 {\n padding-left: 1134px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-27 {\n padding-right: 1134px; }\n .ag-theme-material .ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: 1200px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: 1200px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-28 {\n padding-left: 1176px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-28 {\n padding-right: 1176px; }\n .ag-theme-material .ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: 1242px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: 1242px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-29 {\n padding-left: 1218px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-29 {\n padding-right: 1218px; }\n .ag-theme-material .ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: 1284px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: 1284px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-30 {\n padding-left: 1260px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-30 {\n padding-right: 1260px; }\n .ag-theme-material .ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: 1326px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: 1326px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-31 {\n padding-left: 1302px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-31 {\n padding-right: 1302px; }\n .ag-theme-material .ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: 1368px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: 1368px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-32 {\n padding-left: 1344px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-32 {\n padding-right: 1344px; }\n .ag-theme-material .ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: 1410px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: 1410px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-33 {\n padding-left: 1386px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-33 {\n padding-right: 1386px; }\n .ag-theme-material .ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: 1452px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: 1452px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-34 {\n padding-left: 1428px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-34 {\n padding-right: 1428px; }\n .ag-theme-material .ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: 1494px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: 1494px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-35 {\n padding-left: 1470px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-35 {\n padding-right: 1470px; }\n .ag-theme-material .ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: 1536px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: 1536px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-36 {\n padding-left: 1512px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-36 {\n padding-right: 1512px; }\n .ag-theme-material .ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: 1578px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: 1578px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-37 {\n padding-left: 1554px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-37 {\n padding-right: 1554px; }\n .ag-theme-material .ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: 1620px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: 1620px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-38 {\n padding-left: 1596px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-38 {\n padding-right: 1596px; }\n .ag-theme-material .ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: 1662px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: 1662px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-39 {\n padding-left: 1638px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-39 {\n padding-right: 1638px; }\n .ag-theme-material .ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: 1704px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: 1704px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-40 {\n padding-left: 1680px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-40 {\n padding-right: 1680px; }\n .ag-theme-material .ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: 1746px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: 1746px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-41 {\n padding-left: 1722px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-41 {\n padding-right: 1722px; }\n .ag-theme-material .ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: 1788px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: 1788px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-42 {\n padding-left: 1764px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-42 {\n padding-right: 1764px; }\n .ag-theme-material .ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: 1830px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: 1830px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-43 {\n padding-left: 1806px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-43 {\n padding-right: 1806px; }\n .ag-theme-material .ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: 1872px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: 1872px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-44 {\n padding-left: 1848px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-44 {\n padding-right: 1848px; }\n .ag-theme-material .ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: 1914px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: 1914px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-45 {\n padding-left: 1890px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-45 {\n padding-right: 1890px; }\n .ag-theme-material .ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: 1956px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: 1956px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-46 {\n padding-left: 1932px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-46 {\n padding-right: 1932px; }\n .ag-theme-material .ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: 1998px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: 1998px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-47 {\n padding-left: 1974px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-47 {\n padding-right: 1974px; }\n .ag-theme-material .ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: 2040px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: 2040px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-48 {\n padding-left: 2016px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-48 {\n padding-right: 2016px; }\n .ag-theme-material .ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: 2082px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: 2082px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-49 {\n padding-left: 2058px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-49 {\n padding-right: 2058px; }\n .ag-theme-material .ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: 2124px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: 2124px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-50 {\n padding-left: 2100px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-50 {\n padding-right: 2100px; }\n .ag-theme-material .ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: 2166px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: 2166px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-51 {\n padding-left: 2142px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-51 {\n padding-right: 2142px; }\n .ag-theme-material .ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: 2208px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: 2208px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-52 {\n padding-left: 2184px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-52 {\n padding-right: 2184px; }\n .ag-theme-material .ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: 2250px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: 2250px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-53 {\n padding-left: 2226px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-53 {\n padding-right: 2226px; }\n .ag-theme-material .ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: 2292px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: 2292px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-54 {\n padding-left: 2268px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-54 {\n padding-right: 2268px; }\n .ag-theme-material .ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: 2334px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: 2334px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-55 {\n padding-left: 2310px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-55 {\n padding-right: 2310px; }\n .ag-theme-material .ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: 2376px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: 2376px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-56 {\n padding-left: 2352px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-56 {\n padding-right: 2352px; }\n .ag-theme-material .ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: 2418px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: 2418px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-57 {\n padding-left: 2394px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-57 {\n padding-right: 2394px; }\n .ag-theme-material .ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: 2460px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: 2460px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-58 {\n padding-left: 2436px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-58 {\n padding-right: 2436px; }\n .ag-theme-material .ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: 2502px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: 2502px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-59 {\n padding-left: 2478px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-59 {\n padding-right: 2478px; }\n .ag-theme-material .ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: 2544px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: 2544px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-60 {\n padding-left: 2520px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-60 {\n padding-right: 2520px; }\n .ag-theme-material .ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: 2586px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: 2586px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-61 {\n padding-left: 2562px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-61 {\n padding-right: 2562px; }\n .ag-theme-material .ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: 2628px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: 2628px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-62 {\n padding-left: 2604px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-62 {\n padding-right: 2604px; }\n .ag-theme-material .ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: 2670px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: 2670px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-63 {\n padding-left: 2646px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-63 {\n padding-right: 2646px; }\n .ag-theme-material .ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: 2712px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: 2712px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-64 {\n padding-left: 2688px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-64 {\n padding-right: 2688px; }\n .ag-theme-material .ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: 2754px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: 2754px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-65 {\n padding-left: 2730px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-65 {\n padding-right: 2730px; }\n .ag-theme-material .ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: 2796px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: 2796px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-66 {\n padding-left: 2772px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-66 {\n padding-right: 2772px; }\n .ag-theme-material .ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: 2838px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: 2838px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-67 {\n padding-left: 2814px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-67 {\n padding-right: 2814px; }\n .ag-theme-material .ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: 2880px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: 2880px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-68 {\n padding-left: 2856px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-68 {\n padding-right: 2856px; }\n .ag-theme-material .ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: 2922px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: 2922px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-69 {\n padding-left: 2898px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-69 {\n padding-right: 2898px; }\n .ag-theme-material .ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: 2964px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: 2964px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-70 {\n padding-left: 2940px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-70 {\n padding-right: 2940px; }\n .ag-theme-material .ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: 3006px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: 3006px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-71 {\n padding-left: 2982px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-71 {\n padding-right: 2982px; }\n .ag-theme-material .ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: 3048px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: 3048px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-72 {\n padding-left: 3024px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-72 {\n padding-right: 3024px; }\n .ag-theme-material .ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: 3090px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: 3090px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-73 {\n padding-left: 3066px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-73 {\n padding-right: 3066px; }\n .ag-theme-material .ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: 3132px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: 3132px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-74 {\n padding-left: 3108px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-74 {\n padding-right: 3108px; }\n .ag-theme-material .ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: 3174px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: 3174px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-75 {\n padding-left: 3150px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-75 {\n padding-right: 3150px; }\n .ag-theme-material .ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: 3216px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: 3216px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-76 {\n padding-left: 3192px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-76 {\n padding-right: 3192px; }\n .ag-theme-material .ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: 3258px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: 3258px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-77 {\n padding-left: 3234px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-77 {\n padding-right: 3234px; }\n .ag-theme-material .ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: 3300px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: 3300px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-78 {\n padding-left: 3276px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-78 {\n padding-right: 3276px; }\n .ag-theme-material .ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: 3342px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: 3342px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-79 {\n padding-left: 3318px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-79 {\n padding-right: 3318px; }\n .ag-theme-material .ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: 3384px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: 3384px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-80 {\n padding-left: 3360px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-80 {\n padding-right: 3360px; }\n .ag-theme-material .ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: 3426px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: 3426px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-81 {\n padding-left: 3402px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-81 {\n padding-right: 3402px; }\n .ag-theme-material .ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: 3468px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: 3468px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-82 {\n padding-left: 3444px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-82 {\n padding-right: 3444px; }\n .ag-theme-material .ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: 3510px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: 3510px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-83 {\n padding-left: 3486px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-83 {\n padding-right: 3486px; }\n .ag-theme-material .ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: 3552px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: 3552px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-84 {\n padding-left: 3528px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-84 {\n padding-right: 3528px; }\n .ag-theme-material .ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: 3594px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: 3594px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-85 {\n padding-left: 3570px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-85 {\n padding-right: 3570px; }\n .ag-theme-material .ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: 3636px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: 3636px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-86 {\n padding-left: 3612px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-86 {\n padding-right: 3612px; }\n .ag-theme-material .ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: 3678px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: 3678px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-87 {\n padding-left: 3654px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-87 {\n padding-right: 3654px; }\n .ag-theme-material .ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: 3720px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: 3720px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-88 {\n padding-left: 3696px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-88 {\n padding-right: 3696px; }\n .ag-theme-material .ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: 3762px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: 3762px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-89 {\n padding-left: 3738px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-89 {\n padding-right: 3738px; }\n .ag-theme-material .ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: 3804px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: 3804px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-90 {\n padding-left: 3780px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-90 {\n padding-right: 3780px; }\n .ag-theme-material .ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: 3846px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: 3846px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-91 {\n padding-left: 3822px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-91 {\n padding-right: 3822px; }\n .ag-theme-material .ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: 3888px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: 3888px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-92 {\n padding-left: 3864px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-92 {\n padding-right: 3864px; }\n .ag-theme-material .ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: 3930px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: 3930px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-93 {\n padding-left: 3906px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-93 {\n padding-right: 3906px; }\n .ag-theme-material .ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: 3972px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: 3972px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-94 {\n padding-left: 3948px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-94 {\n padding-right: 3948px; }\n .ag-theme-material .ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: 4014px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: 4014px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-95 {\n padding-left: 3990px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-95 {\n padding-right: 3990px; }\n .ag-theme-material .ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: 4056px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: 4056px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-96 {\n padding-left: 4032px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-96 {\n padding-right: 4032px; }\n .ag-theme-material .ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: 4098px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: 4098px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-97 {\n padding-left: 4074px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-97 {\n padding-right: 4074px; }\n .ag-theme-material .ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: 4140px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: 4140px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-98 {\n padding-left: 4116px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-98 {\n padding-right: 4116px; }\n .ag-theme-material .ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: 4182px; }\n .ag-theme-material .ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: 4182px; }\n .ag-theme-material .ag-ltr .ag-row-group-indent-99 {\n padding-left: 4158px; }\n .ag-theme-material .ag-rtl .ag-row-group-indent-99 {\n padding-right: 4158px; }\n .ag-theme-material .ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: 42px; }\n .ag-theme-material .ag-ltr .ag-row-group-leaf-indent {\n margin-left: 42px; }\n .ag-theme-material .ag-rtl .ag-row-group-leaf-indent {\n margin-right: 42px; }\n .ag-theme-material .ag-value-change-delta {\n padding-right: 2px; }\n .ag-theme-material .ag-value-change-delta-up {\n color: #43a047;\n color: var(--ag-value-change-delta-up-color, #43a047); }\n .ag-theme-material .ag-value-change-delta-down {\n color: #e53935;\n color: var(--ag-value-change-delta-down-color, #e53935); }\n .ag-theme-material .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 .ag-theme-material .ag-value-change-value-highlight {\n background-color: #00acc1;\n background-color: var(--ag-value-change-value-highlight-background-color, #00acc1);\n transition: background-color 0.1s; }\n .ag-theme-material .ag-cell-data-changed {\n background-color: #00acc1 !important;\n background-color: var(--ag-value-change-value-highlight-background-color, #00acc1) !important; }\n .ag-theme-material .ag-cell-data-changed-animation {\n background-color: transparent; }\n .ag-theme-material .ag-cell-highlight {\n background-color: #fce4ec !important;\n background-color: var(--ag-range-selection-highlight-color, #fce4ec) !important; }\n .ag-theme-material .ag-row {\n height: 48px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n color: rgba(0, 0, 0, 0.87);\n color: var(--ag-data-color, var(--ag-foreground-color, rgba(0, 0, 0, 0.87)));\n border-width: 1px;\n border-color: #e2e2e2;\n border-color: var(--ag-row-border-color, var(--ag-secondary-border-color, var(--ag-border-color, #e2e2e2)));\n border-bottom-style: solid; }\n .ag-theme-material .ag-row-highlight-above::after, .ag-theme-material .ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: #3f51b5;\n background-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5));\n left: 1px; }\n .ag-theme-material .ag-row-highlight-above::after {\n top: -1px; }\n .ag-theme-material .ag-row-highlight-above.ag-row-first::after {\n top: 0; }\n .ag-theme-material .ag-row-highlight-below::after {\n bottom: 0px; }\n .ag-theme-material .ag-row-odd {\n background-color: var(--ag-odd-row-background-color); }\n .ag-theme-material .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: solid 1px;\n border-right-color: #e2e2e2;\n border-right-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: solid 1px;\n border-left-color: #e2e2e2;\n border-left-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-row-hover {\n background-color: #fafafa;\n background-color: var(--ag-row-hover-color, #fafafa); }\n .ag-theme-material .ag-ltr .ag-right-aligned-cell {\n text-align: right; }\n .ag-theme-material .ag-rtl .ag-right-aligned-cell {\n text-align: left; }\n .ag-theme-material .ag-ltr .ag-right-aligned-cell .ag-cell-value, .ag-theme-material .ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto; }\n .ag-theme-material .ag-rtl .ag-right-aligned-cell .ag-cell-value, .ag-theme-material .ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto; }\n .ag-theme-material .ag-cell, .ag-theme-material .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n border: 1px solid transparent;\n line-height: 46px;\n padding-left: 23px;\n padding-right: 23px;\n -webkit-font-smoothing: subpixel-antialiased; }\n .ag-theme-material .ag-row > .ag-cell-wrapper {\n padding-left: 23px;\n padding-right: 23px; }\n .ag-theme-material .ag-row-dragging {\n cursor: move;\n opacity: 0.5; }\n .ag-theme-material .ag-cell-inline-editing {\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 2px;\n box-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 padding: 8px;\n padding: 0;\n height: 48px;\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa); }\n .ag-theme-material .ag-popup-editor {\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 2px;\n box-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 padding: 8px;\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa);\n padding: 0; }\n .ag-theme-material .ag-large-text-input {\n height: auto;\n padding: 24px; }\n .ag-theme-material .ag-details-row {\n padding: 40px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff); }\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: 50px; }\n .ag-theme-material .ag-overlay-loading-wrapper {\n background-color: rgba(255, 255, 255, 0.66);\n background-color: var(--ag-modal-overlay-background-color, rgba(255, 255, 255, 0.66)); }\n .ag-theme-material .ag-overlay-loading-center {\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 2px;\n box-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 padding: 8px; }\n .ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px; }\n .ag-theme-material .ag-loading {\n padding-left: 24px;\n display: flex;\n height: 100%;\n align-items: center; }\n .ag-theme-material .ag-loading-icon {\n padding-right: 24px; }\n .ag-theme-material .ag-icon-loading {\n -webkit-animation-name: spin;\n animation-name: spin;\n -webkit-animation-duration: 1000ms;\n animation-duration: 1000ms;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n -webkit-animation-timing-function: linear;\n animation-timing-function: linear; }\n\n@-webkit-keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes spin {\n from {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n .ag-theme-material .ag-floating-top {\n border-bottom: solid 1px;\n border-bottom-color: #e2e2e2;\n border-bottom-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-floating-bottom {\n border-top: solid 1px;\n border-top-color: #e2e2e2;\n border-top-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-ltr .ag-cell {\n border-right: solid transparent; }\n .ag-theme-material .ag-rtl .ag-cell {\n border-left: solid transparent; }\n .ag-theme-material .ag-ltr .ag-cell {\n border-right-width: 1px; }\n .ag-theme-material .ag-rtl .ag-cell {\n border-left-width: 1px; }\n .ag-theme-material .ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: solid 1px;\n border-left-color: #e2e2e2;\n border-left-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: solid 1px;\n border-right-color: #e2e2e2;\n border-right-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-row-selected {\n background-color: #eee;\n background-color: var(--ag-selected-row-background-color, #eee); }\n .ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus),\n .ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: rgba(122, 134, 203, 0.1);\n background-color: var(--ag-range-selection-background-color, rgba(122, 134, 203, 0.1)); }\n .ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n .ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: rgba(0, 88, 255, 0.1) !important;\n background-color: var(--ag-range-selection-chart-background-color, rgba(0, 88, 255, 0.1)) !important; }\n .ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n .ag-theme-material .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: rgba(0, 255, 132, 0.1) !important;\n background-color: var(--ag-range-selection-chart-category-background-color, rgba(0, 255, 132, 0.1)) !important; }\n .ag-theme-material .ag-cell-range-selected-1:not(.ag-cell-focus),\n .ag-theme-material .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: rgba(122, 134, 203, 0.1);\n background-color: var(--ag-range-selection-background-color-1, var(--ag-range-selection-background-color, rgba(122, 134, 203, 0.1))); }\n .ag-theme-material .ag-cell-range-selected-2:not(.ag-cell-focus),\n .ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: rgba(122, 134, 203, 0.19);\n background-color: var(--ag-range-selection-background-color-2, rgba(122, 134, 203, 0.19)); }\n .ag-theme-material .ag-cell-range-selected-3:not(.ag-cell-focus),\n .ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: rgba(122, 134, 203, 0.271);\n background-color: var(--ag-range-selection-background-color-3, rgba(122, 134, 203, 0.271)); }\n .ag-theme-material .ag-cell-range-selected-4:not(.ag-cell-focus),\n .ag-theme-material .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: rgba(122, 134, 203, 0.3439);\n background-color: var(--ag-range-selection-background-color-4, rgba(122, 134, 203, 0.3439)); }\n .ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: #3f51b5;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: #3f51b5;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: #3f51b5;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: #3f51b5;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-ltr .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-material .ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-material .ag-ltr .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-material .ag-ltr .ag-cell-range-single-cell,\n .ag-theme-material .ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-theme-material .ag-rtl .ag-has-focus .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-material .ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n .ag-theme-material .ag-rtl .ag-has-focus .ag-full-width-row.ag-row-focus .ag-cell-wrapper.ag-row-group,\n .ag-theme-material .ag-rtl .ag-cell-range-single-cell,\n .ag-theme-material .ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: #3f51b5;\n border-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5));\n outline: initial; }\n .ag-theme-material .ag-cell.ag-selection-fill-top,\n .ag-theme-material .ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: #3f51b5;\n border-top-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-right, .ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #3f51b5;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-right, .ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #3f51b5;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-cell.ag-selection-fill-bottom,\n .ag-theme-material .ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: #3f51b5;\n border-bottom-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-left, .ag-theme-material .ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed;\n border-left-color: #3f51b5;\n border-left-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-left, .ag-theme-material .ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed;\n border-right-color: #3f51b5;\n border-right-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-fill-handle, .ag-theme-material .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: #3f51b5;\n background-color: var(--ag-range-selection-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-ltr .ag-fill-handle, .ag-theme-material .ag-ltr .ag-range-handle {\n right: -1px; }\n .ag-theme-material .ag-rtl .ag-fill-handle, .ag-theme-material .ag-rtl .ag-range-handle {\n left: -1px; }\n .ag-theme-material .ag-fill-handle {\n cursor: cell; }\n .ag-theme-material .ag-range-handle {\n cursor: nwse-resize; }\n .ag-theme-material .ag-cell-inline-editing {\n border-color: #3f51b5 !important;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)) !important; }\n .ag-theme-material .ag-menu {\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 2px;\n box-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 padding: 8px;\n padding: 0; }\n .ag-theme-material .ag-menu-list {\n cursor: default;\n padding: 8px 0; }\n .ag-theme-material .ag-menu-separator {\n height: 17px; }\n .ag-theme-material .ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: solid 1px;\n border-top-color: #e2e2e2;\n border-top-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-menu-option-active, .ag-theme-material .ag-compact-menu-option-active {\n background-color: #fafafa;\n background-color: var(--ag-row-hover-color, #fafafa); }\n .ag-theme-material .ag-menu-option-part, .ag-theme-material .ag-compact-menu-option-part {\n line-height: 18px;\n padding: 10px 0; }\n .ag-theme-material .ag-menu-option-disabled, .ag-theme-material .ag-compact-menu-option-disabled {\n opacity: 0.5; }\n .ag-theme-material .ag-menu-option-icon, .ag-theme-material .ag-compact-menu-option-icon {\n width: 18px; }\n .ag-theme-material .ag-ltr .ag-menu-option-icon, .ag-theme-material .ag-ltr .ag-compact-menu-option-icon {\n padding-left: 16px; }\n .ag-theme-material .ag-rtl .ag-menu-option-icon, .ag-theme-material .ag-rtl .ag-compact-menu-option-icon {\n padding-right: 16px; }\n .ag-theme-material .ag-menu-option-text, .ag-theme-material .ag-compact-menu-option-text {\n padding-left: 16px;\n padding-right: 16px; }\n .ag-theme-material .ag-ltr .ag-menu-option-shortcut, .ag-theme-material .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: 8px; }\n .ag-theme-material .ag-rtl .ag-menu-option-shortcut, .ag-theme-material .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: 8px; }\n .ag-theme-material .ag-menu-option-popup-pointer, .ag-theme-material .ag-compact-menu-option-popup-pointer {\n padding-right: 8px; }\n .ag-theme-material .ag-tabs-header {\n min-width: 220px;\n width: 100%;\n display: flex; }\n .ag-theme-material .ag-tab {\n border-bottom: 2px solid transparent;\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex: 1 1 auto; }\n .ag-theme-material .ag-keyboard-focus .ag-tab:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-tab-selected {\n border-bottom-color: #3f51b5;\n border-bottom-color: var(--ag-selected-tab-underline-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-menu-header {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-filter-separator {\n border-top: solid 1px;\n border-top-color: #e2e2e2;\n border-top-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-filter-condition-operator {\n height: 17px; }\n .ag-theme-material .ag-ltr .ag-filter-condition-operator-or {\n margin-left: 16px; }\n .ag-theme-material .ag-rtl .ag-filter-condition-operator-or {\n margin-right: 16px; }\n .ag-theme-material .ag-set-filter-select-all {\n padding-top: 16px; }\n .ag-theme-material .ag-set-filter-list, .ag-theme-material .ag-filter-no-matches {\n height: 192px; }\n .ag-theme-material .ag-set-filter-filter {\n margin-top: 16px;\n margin-left: 12px;\n margin-right: 12px; }\n .ag-theme-material .ag-filter-to {\n margin-top: 14px; }\n .ag-theme-material .ag-mini-filter {\n margin: 16px 12px; }\n .ag-theme-material .ag-set-filter-item {\n margin: 0px 12px; }\n .ag-theme-material .ag-ltr .ag-set-filter-item-value {\n margin-left: 12px; }\n .ag-theme-material .ag-rtl .ag-set-filter-item-value {\n margin-right: 12px; }\n .ag-theme-material .ag-filter-apply-panel {\n padding: 16px 12px; }\n .ag-theme-material .ag-filter-apply-panel-button {\n line-height: 1.5; }\n .ag-theme-material .ag-ltr .ag-filter-apply-panel-button {\n margin-left: 16px; }\n .ag-theme-material .ag-rtl .ag-filter-apply-panel-button {\n margin-right: 16px; }\n .ag-theme-material .ag-simple-filter-body-wrapper {\n padding: 16px 12px;\n padding-bottom: 2px; }\n .ag-theme-material .ag-simple-filter-body-wrapper > * {\n margin-bottom: 14px; }\n .ag-theme-material .ag-filter-no-matches {\n padding: 16px 12px; }\n .ag-theme-material .ag-multi-filter-menu-item {\n margin: 8px 0; }\n .ag-theme-material .ag-multi-filter-group-title-bar {\n padding: 16px 8px;\n background-color: transparent; }\n .ag-theme-material .ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-side-bar {\n position: relative; }\n .ag-theme-material .ag-tool-panel-wrapper {\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa); }\n .ag-theme-material .ag-side-buttons {\n padding-top: 32px;\n width: 22px;\n position: relative;\n color: rgba(0, 0, 0, 0.87);\n color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));\n overflow: hidden; }\n .ag-theme-material button.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: 16px 0 16px 0;\n width: 100%;\n margin: 0;\n min-height: 144px;\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none; }\n .ag-theme-material button.ag-side-button-button:focus {\n box-shadow: none; }\n .ag-theme-material .ag-keyboard-focus .ag-side-button-button:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-side-button-icon-wrapper {\n margin-bottom: 3px; }\n .ag-theme-material .ag-ltr .ag-side-bar-left .ag-side-button-button,\n .ag-theme-material .ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: 2px solid transparent; }\n .ag-theme-material .ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-material .ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: #3f51b5;\n border-right-color: var(--ag-selected-tab-underline-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-rtl .ag-side-bar-left .ag-side-button-button,\n .ag-theme-material .ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: 2px solid transparent; }\n .ag-theme-material .ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n .ag-theme-material .ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: #3f51b5;\n border-left-color: var(--ag-selected-tab-underline-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-filter-toolpanel-header {\n height: 48px; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-header, .ag-theme-material .ag-ltr .ag-filter-toolpanel-search {\n padding-left: 8px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-header, .ag-theme-material .ag-rtl .ag-filter-toolpanel-search {\n padding-right: 8px; }\n .ag-theme-material .ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: \"agGridMaterial\";\n font-size: 18px;\n line-height: 18px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: \"\\f114\";\n position: absolute; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: 8px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: 8px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-0-header {\n height: 64px; }\n .ag-theme-material .ag-filter-toolpanel-group-item {\n margin-top: 4px;\n margin-bottom: 4px; }\n .ag-theme-material .ag-filter-toolpanel-search {\n height: 56px; }\n .ag-theme-material .ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: 32px; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: 8px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: 8px; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-expand, .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: 8px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-expand, .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: 8px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: 24px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: 24px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: 40px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: 40px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: 56px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: 56px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: 72px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: 72px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: 88px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: 88px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: 104px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: 104px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: 120px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: 120px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: 136px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: 136px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: 152px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: 152px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: 168px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: 168px; }\n .ag-theme-material .ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: 8px; }\n .ag-theme-material .ag-filter-toolpanel-instance-filter {\n margin-top: 8px; }\n .ag-theme-material .ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: 8px; }\n .ag-theme-material .ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: 8px; }\n .ag-theme-material .ag-pivot-mode-panel {\n height: 56px;\n display: flex; }\n .ag-theme-material .ag-pivot-mode-select {\n display: flex;\n align-items: center; }\n .ag-theme-material .ag-ltr .ag-pivot-mode-select {\n margin-left: 12px; }\n .ag-theme-material .ag-rtl .ag-pivot-mode-select {\n margin-right: 12px; }\n .ag-theme-material .ag-keyboard-focus .ag-column-select-header:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-column-select-header {\n height: 56px;\n align-items: center;\n padding: 0 12px; }\n .ag-theme-material .ag-column-group-icons,\n .ag-theme-material .ag-column-select-header-icon {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-header {\n background-color: #fff;\n background-color: var(--ag-header-background-color, #fff);\n border-bottom: solid 1px;\n border-bottom-color: #e2e2e2;\n border-bottom-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-header-row {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)));\n height: 56px; }\n .ag-theme-material .ag-pinned-right-header {\n border-left: solid 1px;\n border-left-color: #e2e2e2;\n border-left-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-pinned-left-header {\n border-right: solid 1px;\n border-right-color: #e2e2e2;\n border-right-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: 8px; }\n .ag-theme-material .ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: 8px; }\n .ag-theme-material .ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: 8px; }\n .ag-theme-material .ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: 8px; }\n .ag-theme-material .ag-header-cell,\n .ag-theme-material .ag-header-group-cell {\n padding-left: 24px;\n padding-right: 24px; }\n .ag-theme-material .ag-header-cell.ag-header-cell-moving,\n .ag-theme-material .ag-header-group-cell.ag-header-cell-moving {\n background-color: #f2f2f2;\n background-color: var(--ag-header-cell-moving-background-color, var(--ag-header-cell-hover-background-color, #f2f2f2)); }\n .ag-theme-material .ag-keyboard-focus .ag-header-cell:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-header-icon {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-header-expand-icon {\n cursor: pointer; }\n .ag-theme-material .ag-ltr .ag-header-expand-icon {\n padding-left: 4px; }\n .ag-theme-material .ag-rtl .ag-header-expand-icon {\n padding-right: 4px; }\n .ag-theme-material .ag-header-row:not(:first-child) .ag-header-cell,\n .ag-theme-material .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: solid 1px;\n border-top-color: #e2e2e2;\n border-top-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-header-cell-moving):hover, .ag-theme-material .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell.ag-column-resizing,\n .ag-theme-material .ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-header-cell-moving):hover,\n .ag-theme-material .ag-header-cell:not(.ag-column-resizing) + .ag-header-cell.ag-column-resizing,\n .ag-theme-material .ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,\n .ag-theme-material .ag-header-group-cell:first-of-type.ag-column-resizing,\n .ag-theme-material .ag-header-cell:first-of-type:not(.ag-header-cell-moving):hover,\n .ag-theme-material .ag-header-cell:first-of-type.ag-column-resizing {\n background-color: #f2f2f2;\n background-color: var(--ag-header-cell-hover-background-color, #f2f2f2); }\n .ag-theme-material .ag-ltr .ag-header-select-all {\n margin-right: 24px; }\n .ag-theme-material .ag-rtl .ag-header-select-all {\n margin-left: 24px; }\n .ag-theme-material .ag-ltr .ag-floating-filter-button {\n margin-left: 24px; }\n .ag-theme-material .ag-rtl .ag-floating-filter-button {\n margin-right: 24px; }\n .ag-theme-material .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 -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: transparent;\n border: none;\n height: 18px;\n padding: 0;\n width: 18px; }\n .ag-theme-material .ag-filter-loading {\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa);\n height: 100%;\n padding: 16px 12px;\n position: absolute;\n width: 100%;\n z-index: 1; }\n .ag-theme-material .ag-paging-panel {\n border-top: 1px solid;\n border-top-color: #e2e2e2;\n border-top-color: var(--ag-border-color, #e2e2e2);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));\n height: 56px; }\n .ag-theme-material .ag-paging-panel > * {\n margin: 0 24px; }\n .ag-theme-material .ag-paging-button {\n cursor: pointer; }\n .ag-theme-material .ag-paging-button.ag-disabled {\n cursor: default;\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material .ag-keyboard-focus .ag-paging-button:focus {\n outline: none; }\n .ag-theme-material .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: #3f51b5;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material .ag-paging-button, .ag-theme-material .ag-paging-description {\n margin: 0 8px; }\n .ag-theme-material .ag-status-bar {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n padding-right: 32px;\n padding-left: 32px;\n line-height: 1.5; }\n .ag-theme-material .ag-status-name-value-value {\n color: rgba(0, 0, 0, 0.87);\n color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87)); }\n .ag-theme-material .ag-status-bar-center {\n text-align: center; }\n .ag-theme-material .ag-status-name-value {\n margin-left: 8px;\n margin-right: 8px;\n padding-top: 16px;\n padding-bottom: 16px; }\n .ag-theme-material .ag-column-drop-cell {\n background: #e2e2e2;\n background: var(--ag-chip-background-color, #e2e2e2);\n border-radius: 32px;\n height: 32px;\n padding: 0 4px; }\n .ag-theme-material .ag-column-drop-cell-text {\n margin: 0 8px; }\n .ag-theme-material .ag-column-drop-cell-button {\n min-width: 32px;\n margin: 0 4px;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-column-drop-cell-drag-handle {\n margin-left: 16px; }\n .ag-theme-material .ag-column-drop-cell-ghost {\n opacity: 0.5; }\n .ag-theme-material .ag-column-drop-horizontal {\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa);\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54));\n height: 48px; }\n .ag-theme-material .ag-ltr .ag-column-drop-horizontal {\n padding-left: 24px; }\n .ag-theme-material .ag-rtl .ag-column-drop-horizontal {\n padding-right: 24px; }\n .ag-theme-material .ag-column-drop-horizontal-cell-separator {\n margin: 0 8px;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-column-drop-horizontal-empty-message {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material .ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: 24px; }\n .ag-theme-material .ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: 24px; }\n .ag-theme-material .ag-column-drop-vertical-list {\n padding-bottom: 8px;\n padding-right: 8px;\n padding-left: 8px; }\n .ag-theme-material .ag-column-drop-vertical-cell {\n margin-top: 8px; }\n .ag-theme-material .ag-column-drop-vertical {\n min-height: 50px;\n max-height: 150px; }\n .ag-theme-material .ag-column-drop-vertical-icon {\n margin-left: 8px;\n margin-right: 8px; }\n .ag-theme-material .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: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n margin-top: 8px; }\n .ag-theme-material .ag-select-agg-func-popup {\n background: #fff;\n background: var(--ag-background-color, #fff);\n border-radius: 2px;\n box-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 padding: 8px;\n background: #fff;\n background: var(--ag-background-color, #fff);\n height: 140px;\n padding: 0; }\n .ag-theme-material .ag-select-agg-func-virtual-list-item {\n cursor: default;\n line-height: 40px;\n padding-left: 16px; }\n .ag-theme-material .ag-select-agg-func-virtual-list-item:hover {\n background-color: #eee;\n background-color: var(--ag-selected-row-background-color, #eee); }\n .ag-theme-material .ag-chart-menu {\n border-radius: 2px;\n background: #fff;\n background: var(--ag-background-color, #fff); }\n .ag-theme-material .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: 2px;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-chart-menu-icon:hover {\n opacity: 1; }\n .ag-theme-material .ag-chart-mini-thumbnail {\n border: 1px solid;\n border-color: #e2e2e2;\n border-color: var(--ag-secondary-border-color, var(--ag-border-color, #e2e2e2));\n border-radius: 5px;\n margin: 5px; }\n .ag-theme-material .ag-chart-mini-thumbnail:nth-last-child(3),\n .ag-theme-material .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto; }\n .ag-theme-material .ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0; }\n .ag-theme-material .ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0; }\n .ag-theme-material .ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0; }\n .ag-theme-material .ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0; }\n .ag-theme-material .ag-chart-mini-thumbnail.ag-selected {\n border-color: #ff4081;\n border-color: var(--ag-minichart-selected-chart-color, var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081))); }\n .ag-theme-material .ag-chart-settings-card-item {\n background: rgba(0, 0, 0, 0.87);\n background: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));\n width: 8px;\n height: 8px;\n border-radius: 4px; }\n .ag-theme-material .ag-chart-settings-card-item.ag-selected {\n background-color: #ff4081;\n background-color: var(--ag-minichart-selected-page-color, var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081))); }\n .ag-theme-material .ag-chart-data-column-drag-handle {\n margin-left: 8px; }\n .ag-theme-material .ag-charts-settings-group-container {\n padding: 8px; }\n .ag-theme-material .ag-charts-data-group-container {\n padding: 16px 12px;\n padding-bottom: 2px; }\n .ag-theme-material .ag-charts-data-group-container > * {\n margin-bottom: 14px; }\n .ag-theme-material .ag-charts-format-top-level-group-container {\n margin-left: 16px;\n padding: 8px; }\n .ag-theme-material .ag-charts-format-top-level-group-item {\n margin: 8px 0; }\n .ag-theme-material .ag-charts-format-sub-level-group-container {\n padding: 16px 12px;\n padding-bottom: 2px; }\n .ag-theme-material .ag-charts-format-sub-level-group-container > * {\n margin-bottom: 14px; }\n .ag-theme-material .ag-charts-group-container.ag-group-container-horizontal {\n padding: 8px; }\n .ag-theme-material .ag-chart-data-section,\n .ag-theme-material .ag-chart-format-section {\n display: flex;\n margin: 0; }\n .ag-theme-material .ag-chart-menu-panel {\n background-color: #fafafa;\n background-color: var(--ag-control-panel-background-color, #fafafa); }\n .ag-theme-material .ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px;\n border-left-color: #e2e2e2;\n border-left-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px;\n border-right-color: #e2e2e2;\n border-right-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center; }\n .ag-theme-material .ag-date-time-list-page-column-label {\n text-align: center; }\n .ag-theme-material .ag-date-time-list-page-entry {\n text-align: center; }\n .ag-theme-material .ag-checkbox-input-wrapper {\n font-family: \"agGridMaterial\";\n font-size: 18px;\n line-height: 18px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 18px;\n height: 18px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 2px;\n display: inline-block;\n vertical-align: middle;\n flex: none; }\n .ag-theme-material .ag-checkbox-input-wrapper input, .ag-theme-material .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-material .ag-checkbox-input-wrapper:focus-within, .ag-theme-material .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122); }\n .ag-theme-material .ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-material .ag-checkbox-input-wrapper::after {\n content: \"\\f108\";\n color: #333;\n color: var(--ag-checkbox-unchecked-color, #333);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-material .ag-checkbox-input-wrapper.ag-checked::after {\n content: \"\\f106\";\n color: #ff4081;\n color: var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-material .ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: \"\\f107\";\n color: #333;\n color: var(--ag-checkbox-indeterminate-color, var(--ag-checkbox-unchecked-color, #333));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-material .ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: 36px;\n height: 18px;\n background-color: #333;\n background-color: var(--ag-toggle-button-off-background-color, var(--ag-checkbox-unchecked-color, #333));\n border-radius: 9px;\n position: relative;\n flex: none;\n border: 1px solid;\n border-color: #333;\n border-color: var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #333)); }\n .ag-theme-material .ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%; }\n .ag-theme-material .ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122); }\n .ag-theme-material .ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-material .ag-toggle-button-input-wrapper.ag-checked {\n background-color: #ff4081;\n background-color: var(--ag-toggle-button-on-background-color, var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081)));\n border-color: #ff4081;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081))); }\n .ag-theme-material .ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: -1px;\n left: -1px;\n display: block;\n box-sizing: border-box;\n height: 18px;\n width: 18px;\n background-color: #fff;\n background-color: var(--ag-toggle-button-switch-background-color, var(--ag-background-color, #fff));\n border-radius: 9px;\n transition: left 100ms;\n border: 1px solid;\n border-color: #333;\n border-color: var(--ag-toggle-button-switch-border-color, var(--ag-toggle-button-off-border-color, var(--ag-checkbox-unchecked-color, #333))); }\n .ag-theme-material .ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - 18px);\n border-color: #ff4081;\n border-color: var(--ag-toggle-button-on-border-color, var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081))); }\n .ag-theme-material .ag-radio-button-input-wrapper {\n font-family: \"agGridMaterial\";\n font-size: 18px;\n line-height: 18px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 18px;\n height: 18px;\n background-color: var(--ag-checkbox-background-color);\n border-radius: 2px;\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: 18px; }\n .ag-theme-material .ag-radio-button-input-wrapper input, .ag-theme-material .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%; }\n .ag-theme-material .ag-radio-button-input-wrapper:focus-within, .ag-theme-material .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122); }\n .ag-theme-material .ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5; }\n .ag-theme-material .ag-radio-button-input-wrapper::after {\n content: \"\\f126\";\n color: #333;\n color: var(--ag-checkbox-unchecked-color, #333);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-material .ag-radio-button-input-wrapper.ag-checked::after {\n content: \"\\f127\";\n color: #ff4081;\n color: var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081));\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none; }\n .ag-theme-material input[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible; }\n .ag-theme-material input[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #e2e2e2;\n background-color: var(--ag-border-color, #e2e2e2);\n border-radius: 0px;\n border-radius: 2px; }\n .ag-theme-material input[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #e2e2e2;\n background-color: var(--ag-border-color, #e2e2e2);\n border-radius: 0px;\n border-radius: 2px; }\n .ag-theme-material input[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: #e2e2e2;\n background-color: var(--ag-border-color, #e2e2e2);\n border-radius: 0px;\n border-radius: 2px;\n color: transparent;\n width: calc(100% - 2px); }\n .ag-theme-material input[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #333;\n border-color: var(--ag-checkbox-unchecked-color, #333);\n border-radius: 18px;\n -webkit-transform: translateY(-7.5px);\n transform: translateY(-7.5px); }\n .ag-theme-material input[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #333;\n border-color: var(--ag-checkbox-unchecked-color, #333);\n border-radius: 18px; }\n .ag-theme-material input[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: 18px;\n height: 18px;\n background-color: #fff;\n background-color: var(--ag-background-color, #fff);\n border: 1px solid;\n border-color: #333;\n border-color: var(--ag-checkbox-unchecked-color, #333);\n border-radius: 18px; }\n .ag-theme-material input[class^='ag-'][type='range']:focus {\n outline: none; }\n .ag-theme-material input[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n border-color: #ff4081;\n border-color: var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081)); }\n .ag-theme-material input[class^='ag-'][type='range']:focus::-ms-thumb {\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n border-color: #ff4081;\n border-color: var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081)); }\n .ag-theme-material input[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n border-color: #ff4081;\n border-color: var(--ag-checkbox-checked-color, var(--ag-material-accent-color, #ff4081)); }\n .ag-theme-material input[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: #3f51b5;\n background-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material input[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: #3f51b5;\n background-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material input[class^='ag-'][type='range']:active::-ms-track {\n background-color: #3f51b5;\n background-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)); }\n .ag-theme-material input[class^='ag-'][type='range']:disabled {\n opacity: 0.5; }\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-side-button-button,\n .ag-theme-material .ag-multi-filter-group-title-bar {\n font-size: 12px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-header-foreground-color, var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54))); }\n .ag-theme-material .ag-tab {\n height: 36px; }\n .ag-theme-material .ag-tabs-header,\n .ag-theme-material .ag-column-drop-horizontal {\n background-color: #eee;\n background-color: var(--ag-subheader-background-color, #eee); }\n .ag-theme-material .ag-tabs-body {\n padding: 4px 0; }\n .ag-theme-material .ag-tabs-body .ag-menu-list {\n padding-top: 0;\n padding-bottom: 0; }\n .ag-theme-material .ag-header-cell,\n .ag-theme-material .ag-header-group-cell {\n transition: background-color 0.5s; }\n .ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing {\n bottom: 0; }\n .ag-theme-material .ag-cell-inline-editing {\n padding: 8px;\n height: 72px;\n border-color: #e2e2e2 !important;\n border-color: var(--ag-border-color, #e2e2e2) !important; }\n .ag-theme-material .ag-has-focus .ag-cell-inline-editing {\n border-color: #3f51b5 !important;\n border-color: var(--ag-input-focus-border-color, var(--ag-material-primary-color, #3f51b5)) !important; }\n .ag-theme-material .ag-side-button-button {\n color: rgba(0, 0, 0, 0.54);\n color: var(--ag-secondary-foreground-color, rgba(0, 0, 0, 0.54)); }\n .ag-theme-material .ag-column-drop-vertical {\n border-bottom: solid 1px;\n border-bottom-color: #e2e2e2;\n border-bottom-color: var(--ag-border-color, #e2e2e2);\n padding-top: 8px; }\n .ag-theme-material .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none; }\n .ag-theme-material .ag-column-drop-vertical-cell {\n margin-left: 0; }\n .ag-theme-material .ag-column-drop-vertical-empty-message {\n font-size: 12px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: 34px;\n padding-right: 8px; }\n .ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: 34px;\n padding-left: 8px; }\n .ag-theme-material .ag-status-bar {\n border: solid 1px;\n border-color: #e2e2e2;\n border-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-column-panel-column-select {\n border-top: solid 1px;\n border-top-color: #e2e2e2;\n border-top-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-column-select, .ag-theme-material .ag-column-select-header {\n border-bottom: solid 1px;\n border-bottom-color: #e2e2e2;\n border-bottom-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-column-select-header {\n height: 56px; }\n .ag-theme-material .ag-group-title-bar {\n padding: 6px 8px; }\n .ag-theme-material .ag-charts-format-sub-level-group-title-bar {\n padding: 4px 8px; }\n .ag-theme-material .ag-chart-data-section,\n .ag-theme-material .ag-chart-format-section {\n padding-bottom: 4px; }\n .ag-theme-material .ag-group-toolbar {\n background-color: rgba(238, 238, 238, 0.5); }\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: rgba(0, 0, 0, 0.87);\n color: var(--ag-foreground-color, rgba(0, 0, 0, 0.87));\n font-family: inherit;\n font-size: inherit;\n height: 40px;\n padding-bottom: 8px;\n border-width: 0;\n border-bottom: 2px solid;\n border-bottom-color: #e2e2e2;\n border-bottom-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material input:focus[class^='ag-']:not([type]),\n .ag-theme-material input:focus[class^='ag-'][type='text'],\n .ag-theme-material input:focus[class^='ag-'][type='number'],\n .ag-theme-material input:focus[class^='ag-'][type='tel'],\n .ag-theme-material input:focus[class^='ag-'][type='date'],\n .ag-theme-material input:focus[class^='ag-'][type='datetime-local'],\n .ag-theme-material textarea:focus[class^='ag-'] {\n border-bottom: 2px solid;\n border-bottom-color: #3f51b5;\n border-bottom-color: var(--ag-material-primary-color, #3f51b5);\n outline: none;\n box-shadow: none; }\n .ag-theme-material input:not([type])[class^='ag-']::-webkit-input-placeholder, .ag-theme-material input[type='text'][class^='ag-']::-webkit-input-placeholder, .ag-theme-material input[type='number'][class^='ag-']::-webkit-input-placeholder, .ag-theme-material input[type='tel'][class^='ag-']::-webkit-input-placeholder, .ag-theme-material input[type='date'][class^='ag-']::-webkit-input-placeholder, .ag-theme-material input[type='datetime-local'][class^='ag-']::-webkit-input-placeholder, .ag-theme-material textarea[class^='ag-']::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material input:not([type])[class^='ag-']::-moz-placeholder, .ag-theme-material input[type='text'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='number'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='tel'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='date'][class^='ag-']::-moz-placeholder, .ag-theme-material input[type='datetime-local'][class^='ag-']::-moz-placeholder, .ag-theme-material textarea[class^='ag-']::-moz-placeholder {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material input:not([type])[class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='text'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='number'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='tel'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='date'][class^='ag-']:-ms-input-placeholder, .ag-theme-material input[type='datetime-local'][class^='ag-']:-ms-input-placeholder, .ag-theme-material textarea[class^='ag-']:-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material input:not([type])[class^='ag-']::-ms-input-placeholder, .ag-theme-material input[type='text'][class^='ag-']::-ms-input-placeholder, .ag-theme-material input[type='number'][class^='ag-']::-ms-input-placeholder, .ag-theme-material input[type='tel'][class^='ag-']::-ms-input-placeholder, .ag-theme-material input[type='date'][class^='ag-']::-ms-input-placeholder, .ag-theme-material input[type='datetime-local'][class^='ag-']::-ms-input-placeholder, .ag-theme-material textarea[class^='ag-']::-ms-input-placeholder {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material input:not([type])[class^='ag-']::placeholder,\n .ag-theme-material input[type='text'][class^='ag-']::placeholder,\n .ag-theme-material input[type='number'][class^='ag-']::placeholder,\n .ag-theme-material input[type='tel'][class^='ag-']::placeholder,\n .ag-theme-material input[type='date'][class^='ag-']::placeholder,\n .ag-theme-material input[type='datetime-local'][class^='ag-']::placeholder,\n .ag-theme-material textarea[class^='ag-']::placeholder {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38)); }\n .ag-theme-material input:disabled[class^='ag-']:not([type]),\n .ag-theme-material input:disabled[class^='ag-'][type='text'],\n .ag-theme-material input:disabled[class^='ag-'][type='number'],\n .ag-theme-material input:disabled[class^='ag-'][type='tel'],\n .ag-theme-material input:disabled[class^='ag-'][type='date'],\n .ag-theme-material input:disabled[class^='ag-'][type='datetime-local'],\n .ag-theme-material textarea:disabled[class^='ag-'] {\n border-bottom: 1px solid;\n border-bottom-color: #e2e2e2;\n border-bottom-color: var(--ag-border-color, #e2e2e2); }\n .ag-theme-material .ag-standard-button {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: transparent;\n border: 0;\n color: #3f51b5;\n color: var(--ag-material-primary-color, #3f51b5);\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n padding: 0;\n text-transform: uppercase; }\n .ag-theme-material .ag-standard-button:disabled {\n color: rgba(0, 0, 0, 0.38);\n color: var(--ag-disabled-foreground-color, rgba(0, 0, 0, 0.38));\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color); }\n .ag-theme-material .ag-dnd-ghost {\n font-size: 12px;\n font-weight: 600; }\n .ag-theme-material .ag-filter-toolpanel-header {\n height: 32px; }\n .ag-theme-material .ag-filter-toolpanel-group-level-0-header {\n height: 56px; }\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 .ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px; }\n .ag-theme-material .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 0 1px #3f51b5; }\n\n", ""]);
53950// Exports
53951module.exports = exports;
53952
53953
53954/***/ }),
53955/* 279 */
53956/***/ (function(module, exports, __webpack_require__) {
53957
53958var api = __webpack_require__(258);
53959 var content = __webpack_require__(280);
53960
53961 content = content.__esModule ? content.default : content;
53962
53963 if (typeof content === 'string') {
53964 content = [[module.i, content, '']];
53965 }
53966
53967var options = {};
53968
53969options.insert = "head";
53970options.singleton = false;
53971
53972var update = api(content, options);
53973
53974
53975
53976module.exports = content.locals || {};
53977
53978/***/ }),
53979/* 280 */
53980/***/ (function(module, exports, __webpack_require__) {
53981
53982// Imports
53983var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
53984exports = ___CSS_LOADER_API_IMPORT___(false);
53985// Module
53986exports.push([module.i, "@font-face {\n font-family: \"agGridAlpine\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABWoAAsAAAAAJ9AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmYAAAR2ZcBn9U9TLzIAAANwAAAAQQAAAFZWUVMIY21hcAAAA7QAAAIcAAAFnIMq5ipnbHlmAAAF0AAAC80AABVszjC1ZWhlYWQAABGgAAAANAAAADZ2zsSBaGhlYQAAEdQAAAAeAAAAJAfSBDFobXR4AAAR9AAAABcAAAE0xzj/+2xvY2EAABIMAAAAdQAAAJwYJx3EbWF4cAAAEoQAAAAfAAAAIAFjAKpuYW1lAAASpAAAATUAAAJG5xgJvXBvc3QAABPcAAAByQAAAqgIzxhUeJx9lEtyElEUhv+mm0gCJilFjRhjovEVXzF2uhuaRx4QEDJwYFkOnMSyyrKKcsQ6XIAryNAVuAAHrsAFOHDo2PK7h0ZMBuEWze3z+M9//3Mu8iTNaVNN5doHhy81PzwafVRFgcYf5/9/7w0/vD9SYfKGL7DfgrygpHnd1GuN9M2b90beca7sV/xX/jv/s//F/yWfqFU9JrqobVakmGeoRFXVlCqnGWwR+7oaRPs8m2a9oKvKm6ernpaoGZHTM8QN9XVPi+B0DKetPaISlsNs8xyw7mvhjIgUlDy+be1gDVBkBU3qKmtWz2HZhkmL/Ab+i9Tcp3ZIVgdfB3Z5LE32LV2Ck8sITNWe3ugpfndSh1LNchK+kQ7sPbS3NTSZRDXBqVHLYW/BYGKvgReTsQl6lajdTNEN3SK7Bk4btJZl1y17jcgYbgl9CeycMVxLWmf/Qm/pRREW45y2aTpW4CHsp/aO4aV6dMLaAmtA7BM4TK2uPw+oFdKVGPQlfEN90rG+6rt+6Kd+64/O6TJ1YjvDHuj7Z2pTQMHT0V28zX9Wd9YZZuB01MmIWU5eM3UifL1MQ1etyMmcOgn7EGti8XPwdPFd2KT0I6BGaHVdp/OsHd4jos9n09lglUzpHlOwYBPct1moMKNbum6I4zlM0XoZRLcb86uYbg3wrlnfnLruhi3am7sLrt8VurPCb8gJq6bTId5VLA5parlhWSnsHcYz/Cmsp9Ucq2VYhbqLz81Y325Hl0rrnGfMJNYduxl9m6/bMKhmN7VMDx37VtaxKxYXWZbHP0GY3fDEtHMz3YGbm4/BX0ArchMAAHicY2BkmsY4gYGVgYGpimkPAwNDD4RmfMBgyMgEFGVgZWbACgLSXFMYDjDofjRifgHkRjG/BZnCwAiSAwDkfwr5AAAAeJy11AdSG0EQheFfgSxwIOecEWCCySCiEHAJnCkcKJw5h8/me/QJ8Bt1+wC4ylv1qXdGq92ZWr0GaoCczEkesvVkdEYmq9lMdT5HY3U+z2+NC9ST1XmRK264s6X7e80WueSaW8tUR3+PjK4u0McEzzU6YoUDdjlmjXNWKbHBPnucsMUmp7pmh3XKnLHNIRUu9Pu0irzWWEudntuglTTpjs208JgntNJGOx100kU3PfTqWf0MMMgQw4wwyhjjevokU0wzw6x2U2SeBRb1/TOWWNYia3nYcfTA69OxcrB7vHa+WtKO9062NrXZnfXy2fZh5eIfbvYfjkL6yP2K0Tnpjbq028uwIi/CgbwMu/IqHMvrsCZvQrrn27Aq70JJrsKGXId9eR/25EM4kY9hSz6FTbkJp3Ib0j/vc9iRL2FdvoayfAtn8j1sy49wKD9DRe6CXqBlXMqLZR2p5lzKl+VdypjVuJQ9q3WkWudItd6RaoMj1UaXMmlNjlQLLr1Ja3ak2uJI9ZFTdrCgFGFBecKeOiULa3XKGNbmlDas3Sl3WIdTArFOpyxiXU6pxLqd8on1OCUV63XKLNbnlF6s3ynH2IBTorFBp+xiQ04px4ad8o6NOCUfG3XqAdiYUzfAxp36Ajbh1CGwSadegU05dQ1s2ql/YDMu9UubdSknNufUXbCiU5/B5p06DrbgqutfdOpCWFA/wgLLfwB3H6YceJztWHtwVNUZv9852b179/2+WUI22b3ZXNjshib7uEkWdkMSSMAQcVwwQDFEikONtqK0KBAR/2hNHavjDPgH6Uw7bcPUmUZaph0VKk6VEkeldqTtDOof1dKSqmlxGLGBvfQ7Z3dDAqnaPzttsnvej+98z9+3Agj4R6ZoXLAIAoR8sugLpUKaGiJTunV6Gi7qd2F5kMZz09PZ7PQ0W264evnqZfoR/Ugw4C6H4BOqBMEjyqKqGTRWRrCgMmt6VFZ+8PTTsZdfJlksYk/rg/39/e18JMYHyGOzOv0b+vv1T2evR7LYpbSDdggS3iNrroRL1iQ43DaZP5/Rj+pH4WJmUjfA5ckMrNGPCoSvP0APCF6hFreHRaNo9Mp+2d+spbV0Uq1X6z2iioQidUgfXNwxOKC1tmoDg++VGwNtBw+2HTjAS3pgzhRvFF4tz2LJrivx0Y4tkfMy4VLUhE9hNfxyePj48DDsGh6mtsJpZOgufUQo0Xmenhc8QoBxP2wHn8sbhESoOQspV7IRJNBkkOmDVz4JJoL4oWZeF6b0v/VNwFgfPY/9OZNXPgF/3ykYu3nu+fL851MU9g2nP144Q2I3nlw4c+/sMyk/0xVyReY7F8+k5uvOLQ5+/fpzi7yjD9CvoD6ZhEpBkECUJaBaDRiZ6Hxef3M6xcRGPtAH2rbqBchOTJw6YrEEHP6mFU1+RwB+DT/I4IT+MiybmMjabMGq+kC4qSkciCwMsuMr+B1x1POifByCEAm5QgbFlfAorgy4FBeNF54gO/TVXFbHhqdJYlgfYZIqSqukh+QInmFAGgmqD+yCVv0UmgWN66f0iZJ9FN/zMD2BrwkI1ZzzRh9qbUjmDa8fGZVGPtUrHqSBHNGtSlMeLg7rKUYyvIalAnoKXqMvNoULz5PuW5uUwvNsjnQrTYVtpLtkE0/SJ5muSYDsEiVQUV3gImzo1MdgY6d+WB/rhI1YkPScLmzEJbjdKAhXr9Cv0Q8FJ2pItdAjPCx8D6lF81ANswilSgrlLBtlfwY8Ea+dKOHGilQySxLNQfB5jeF6tREU3IAq0JzWstDsl712HMHhVDLdHKQJJr9GUBtJMgu4i5Q2FffUgF8OEjTFtNaEm4Pg9TnATsKNsITidj+9R7zzXoPep2qaStKqtvKo3gEjBKjBeZboA5I76HXKXqfZYKsMeeQ6j9lmqjB5HfJCq1zrNxKT3fwzd9hf7bI5JbtJNDmsLr/F7fRWudw1fnely2S2iRUGR9BttBjcbovNbV7aECWUmCwmA0kR0eywGkmCgtltIn81ffMRA2lRr/yWEzPy5pXv0Ad+H5BchSf/aK0JekzuqtqIL5yq9y5U3ZLDbPN5k821Df7KSrPD7ggs9jssEbfFbgm4rLLb7jIZRU+oMeKx+Sp9TrPF4fbYJItERdEgeqq/e+y4ZDGaRZvZIJ2RHCbJLp12SGanW/i/7P6rZTcnnoEqou9R0Xrpch7QYA3+Y0CDy7phEsMbrCn5rznyXvW5stZYmEumE83+GsgRJjq/z+sAGUVkh3D9EhCZMtSnkp8toviGmyTR4HW4PM6l7Wa70WZyeHx9eatZcnvdFf23VUguHPks5k48OGS3WfxOT+XGjQ63weC0uqrvedDhc9slybhvt9FkdDnc/ytvnBNDIui4RRljzgS0IL46Di3QmpsdQx5DPFElNArLmJ5ocpoZbQ0+ChjYMipGtDJAm5VxIIgWreFYmNmtpsppZouinNYaSRgql8V61g+sH91ZTam3Kx6PaZuHbhvdubCiwtc3GO/yLhjc33PLqkw01bAqGjK11N26Kurt6asL3LH/cfIj3Lu4a89as0XbrDTG0glYsXutxbx0m1R9a/PyrVpdW020uyHVsKXFG+3J1/VkNuHgLPrtiMHiSD9CA0YLJzWSJaWXcE8BBpxEH4OT6FJIRff+OwJ49xP7BxcgZfrJhTtHf8ppr+aNhRXw7eiqaHTVOlZAQNu6HK8slufW7ulixJpL9SjS1BPlRQm7DCHvRcGGFIk+0aWmQgbZp6U0OjR9bJo8Wxh/O3eWTE2PHof+6Vzu7bPZ0be5yHhxiUyh3LjVaqooM2xHLr30UmZ6Wk/l85A6cSLDMbNVsBbxBq4v4w2GwaqEGkERVKFBWCIImpJKyLO+kc/pI/4+nssd42XhjX/XmR4u/uVKdbZUIzmmmfdfT5MAiPoj+PXgPSn8qvhlYyLWIazpENPRwml+FF5BntUnsAW/0CfIDn6vvjqHd+X0ESQhm83OwzMP6jomFsizC5xlsCufJ0c5y3TrXL9oYphJY3BGDdHlZT/IfCIJTrYxyN82WbaRA+QkZiABtBLBgxEqAymlqEe8hdYgI8aNKD4WuuzQANjgyqb8MLxUGRtr3dLSsqV1bExZGn4G+vSfwy7eBuXaJFxUMsrNLQP3DbTcjK1ofgyrlWxoy46BFs7Xq1fpJMfE1/E1hPiSJRoGlhUhHQaWXJX6DHuSBb29I5e0S6RBu6QhOHsdkoVeVm7GPvkAZ/TXe3shWY8t/GjLent7d2KNn0u/g2QZjz9Dn0EqXBzTJnyAionAEj2lCph76CP9QDp0/V1MQDbo6PfIOznY9S4fox595B0+NuNzruksyiA1819Ex+UvtKKsh7Pl+9+kbxbvn7l2hpDczKWoQ2VKGFHFa/9QpmTGN44XfSNzcTLANzK6noFWGse6DVpKOnWOOnnuyaKnjGmCyBI5cu7ChdjJkzFekiCvvsXLmbcVc8IQ05V5s0JIsiZGERkaAQOICgwksYXz5Yh6RzzWu2ZT6/YGPR6ugzXYgLfCdWxwvpRRH9i0pjcWrwvr8Ybt+od1YXirYXsrHyvTdzfmDD4hKNQjfQqDWKIyN2EINfsZ/EqmgfE3lErQynF7+9p227M8O+jBUn/BFQiEAwFIFZ7Lw/fzdCjS2BjBPGIbX3Io3FSpVOKn4CaHuFsoyXAv3YMa28Z9W7r4L2v1WIFoRC4jn0SjA/mtsqQMWV6PbAG2CkOQ7E/4sanCLU+h+zZI1W1LtK32tupaCPraV2wHINTri8sH/xyDcx7JanKOphc1u2CBSSZgIgdMCJ/sbucZeOgpyWJxWBdZJMtg47KgT39v4TrrNqMhkGr4kmzB7eQJp9Nj94/aKa3S/2L0qpVJ98GKChBN7jOCmb9jnI6j9dUKi4TlwkrhJiEvbBIGhTvxXUEiu6mdiBWRRqIST5ZodYaQy48BVEsbvDILSCmuSqLqQ/wgKjLv+DkzIl45kVKNYiKlRQEZkUAH7UsgDlYjRkX0JbR6dDHUtWhFFJCe6IpF+vv6+9d6UA27C6f+PqUkiVQwAUkqtfCCObYuH5OiKxftlGLr1sXM7XXNC4JQeBX27gEYziVvagHYnYNf7WbrkRet0X0nWrr30Z/Me341710pvGqUcPnUGy4nXgZ7wMEPl+5d1N1ApFge7wGEqP5ocGXLQy+uTu37ZzoykNu7N4yrKcDeYXjoBlvknpiMZ/RT0JrRyccZlu226cLs3wO8wuKyVTmZttQytjmZVdEwh2ms38xmSgb16M4dnV1dnTt2grPcevSezRtTmpbauPlsuUHPswn9H3MXX9k7ZxFvlGyI0WJFG08zanggKPp79T8grev+zs77H2VF1xejkkyV1mMx/YUJviEXEGUMtuy3j7m/aPHMYLKNZQbXsGEvHeJxlSMZ5v8A93JEUvSDhffJkcJadNRZmOQD+uEcmSqcLt9JySEmPY8E58ABDnIIY19fSe6HKGVzEimOUqpf0C/MnUPsivRgwOS75z+zuKA092Pq4b+bsN8qNLgLPu0snNT/1AFVrPUbqOkorYuTTvZCD77mOA82HbfP8ClOxouxgeVL5GMeEqCVjGOMYKo5y88PCW7BLySYH/XxVNdvFOUssExWQcNOMMzsmwUSkmlNxpUyfjQgrxQxgBZdlswhAFj85byp8NwjbT1lpNDRtL7mvoGew8lCN3mFYYLYCsuyqjuWtg60jOXh7v2VX21vLYKFptWG9fnbcSV54V8PFbSvAAAAeJxjYGRgYADiJZeya+P5bb4ycDO/AApEcT7e1wCj///+/5v5LfNboEoOBiYgyQAAoN8P3nicY2BkYGB+wcAAIv///v+b+S0DIwMq8AUAntwHCgAAeJxjYGBgYH4Bwv9/Q+ihjekBAG/aMMwAeJxjYAACKYYghiyGJQz7GN4xSjA6MZYwTmNcxXiH8R/THeZdzFdY3Fh2sJxh1WEtY53Cuob1G5semxtbHNsitgfsbOwK7G7sEewl7Ec4mDjSOHk4FTjTOA9w3uL8xcXBJcalwmXE5cYVwpXBtY10CAAggCv3AAAAeJxjYGRgYPBlmMfAwwACTEDMBYQMDP/BfAYAIOsCDgB4nHWRPU7DQBCFnxMniBghJCREx1Y0SM5PQZEuFHGfIgWdE68dR7bXWm8ipeMYnIBjUHIETsEheDFTREjZ1a6/+fbNNAZwgy94OC4PV+19XB1csPrjLulW2Cc/CPcQ4Em4T/8sPKB9EQ7YWXKC51/S3ONNuINrvAt36T+EffKncA93+Bbu0/8ID7D0fOEAj95rnEU2T2ZFnVd6obNdEdtTdcpLbZvcVGocjk51pCttY6cTtTqoZp9NnEtVak2p5qZyuiiMqq3Z6rULN87V0+EwFR+uTYkYGSJY5EgwQ4GaVEFjwZNhRxPz9VzqnF/yWDSsDGuFMUKMzqYjnqrtiOH4TdixwoF3gz17JrQOKeuUGcO/ojBvJx/TBbehqdu3Lc2aPsSm7aoxxZA7/ZcPmeKkXwK+aWkAAAB4nG2SB2/bMBSE/cWS7dhp46ZtuvceapvuvXeb/geGomUiEimQlO3k15e1gwAB+gASd4eHe8cHtpZai+q3/l+bLNEmIaVDlx7L9BmwwiEOs8qQI6xxlGMcZ50TnOQUpznDWc5xngtc5BKXucJVrnGdG9zkFre5w10y7nGfB2zwkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/8ZpM/rYEoCqcKEbQ1HeGcnfq28LIjhZGqTOVYuDCUYyW3t+wsmwOVr+8L2uQqKFdpI4Ja25cbs9e5Im1pXVbrSFw3kqYyvi+tCU7IoPJE2nonlc5635Z+ksaTbSS58jJVsxigO7+zjZ6a1SLOypfVjsp8Kfy4HVFnpMs4Ph1p50NSOF2nhbNNncSGkJRqFDqlNjFHt7Qi16boVWKmK72rkkqZphdzL5hRs5AYa9TA2JCJsrRTlad1dFHtWpu01hMberVTE20bP3TRzGZbTQjWZHY0Wj0omNTpYhwSLyaq76tol+V2avbgv1iDBZy39RY4pg5xTWvBKXVwr8tzydbK9BqzeA+CAocioLEYpngkJWO22WIW/0ZORUPNDhNG7LZafwFegLa2AAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n\n.ag-icon {\n font-family: \"agGridAlpine\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.ag-icon-aggregation::before {\n content: \"\\f101\"; }\n\n.ag-icon-arrows::before {\n content: \"\\f102\"; }\n\n.ag-icon-asc::before {\n content: \"\\f103\"; }\n\n.ag-icon-cancel::before {\n content: \"\\f104\"; }\n\n.ag-icon-chart::before {\n content: \"\\f105\"; }\n\n.ag-icon-color-picker::before {\n content: \"\\f109\"; }\n\n.ag-icon-columns::before {\n content: \"\\f10a\"; }\n\n.ag-icon-contracted::before {\n content: \"\\f10b\"; }\n\n.ag-icon-copy::before {\n content: \"\\f10c\"; }\n\n.ag-icon-cross::before {\n content: \"\\f10d\"; }\n\n.ag-icon-csv::before {\n content: \"\\f10e\"; }\n\n.ag-icon-desc::before {\n content: \"\\f10f\"; }\n\n.ag-icon-excel::before {\n content: \"\\f110\"; }\n\n.ag-icon-expanded::before {\n content: \"\\f111\"; }\n\n.ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n\n.ag-icon-eye::before {\n content: \"\\f113\"; }\n\n.ag-icon-filter::before {\n content: \"\\f114\"; }\n\n.ag-icon-first::before {\n content: \"\\f115\"; }\n\n.ag-icon-grip::before {\n content: \"\\f116\"; }\n\n.ag-icon-group::before {\n content: \"\\f117\"; }\n\n.ag-icon-last::before {\n content: \"\\f118\"; }\n\n.ag-icon-left::before {\n content: \"\\f119\"; }\n\n.ag-icon-linked::before {\n content: \"\\f11a\"; }\n\n.ag-icon-loading::before {\n content: \"\\f11b\"; }\n\n.ag-icon-maximize::before {\n content: \"\\f11c\"; }\n\n.ag-icon-menu::before {\n content: \"\\f11d\"; }\n\n.ag-icon-minimize::before {\n content: \"\\f11e\"; }\n\n.ag-icon-next::before {\n content: \"\\f11f\"; }\n\n.ag-icon-none::before {\n content: \"\\f120\"; }\n\n.ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n\n.ag-icon-paste::before {\n content: \"\\f122\"; }\n\n.ag-icon-pin::before {\n content: \"\\f123\"; }\n\n.ag-icon-pivot::before {\n content: \"\\f124\"; }\n\n.ag-icon-previous::before {\n content: \"\\f125\"; }\n\n.ag-icon-right::before {\n content: \"\\f128\"; }\n\n.ag-icon-save::before {\n content: \"\\f129\"; }\n\n.ag-icon-small-down::before {\n content: \"\\f12a\"; }\n\n.ag-icon-small-left::before {\n content: \"\\f12b\"; }\n\n.ag-icon-small-right::before {\n content: \"\\f12c\"; }\n\n.ag-icon-small-up::before {\n content: \"\\f12d\"; }\n\n.ag-icon-tick::before {\n content: \"\\f12e\"; }\n\n.ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n\n.ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n\n.ag-icon-tree-open::before {\n content: \"\\f131\"; }\n\n.ag-icon-unlinked::before {\n content: \"\\f132\"; }\n\n.ag-icon-row-drag::before {\n content: \"\\f116\"; }\n\n.ag-left-arrow::before {\n content: \"\\f119\"; }\n\n.ag-right-arrow::before {\n content: \"\\f128\"; }\n\n", ""]);
53987// Exports
53988module.exports = exports;
53989
53990
53991/***/ }),
53992/* 281 */
53993/***/ (function(module, exports, __webpack_require__) {
53994
53995var api = __webpack_require__(258);
53996 var content = __webpack_require__(282);
53997
53998 content = content.__esModule ? content.default : content;
53999
54000 if (typeof content === 'string') {
54001 content = [[module.i, content, '']];
54002 }
54003
54004var options = {};
54005
54006options.insert = "head";
54007options.singleton = false;
54008
54009var update = api(content, options);
54010
54011
54012
54013module.exports = content.locals || {};
54014
54015/***/ }),
54016/* 282 */
54017/***/ (function(module, exports, __webpack_require__) {
54018
54019// Imports
54020var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
54021exports = ___CSS_LOADER_API_IMPORT___(false);
54022// Module
54023exports.push([module.i, "@font-face {\n font-family: \"agGridBalham\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABgoAAsAAAAALEgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2YfRkQU9TLzIAAANsAAAAQQAAAFZWUFLwY21hcAAAA7AAAAIMAAAFnGSNxkJnbHlmAAAFvAAADpIAABo4y6JNTGhlYWQAABRQAAAANAAAADZ2zcSBaGhlYQAAFIQAAAAaAAAAJAfQBDFobXR4AAAUoAAAABoAAAEgs7L//WxvY2EAABS8AAAAawAAAJJHu0GKbWF4cAAAFSgAAAAfAAAAIAFeAKpuYW1lAAAVSAAAATUAAAJG0OP3eXBvc3QAABaAAAABqAAAAm9qOX49eJx9lM1SE1EQhc8wAYFEoDQqRkRQ/IvKMD8Zk/CTkJBoWS5cWJYLN1hWWVZRrngOH8AnYOkT+AAufAIfwIVL15ZfdwaDLMitTO50n+4+fW7fKJA0qw3taGJv+Pyl5g72Dz+qppJGH/Of3AcHH97va/r4DV/Jf6cVlCqa00291qG+BXPBYXA0UQ1r4avwXfg5/BL+UghqReugy1TcUKyEZ6RUmRrKNaEpbDH7x2qCDnm23HpBVzXpnp76WqRmTEzfM9b1THe0QJ6u5+loG1TKspwdnkPWXc2fgch1j/wZbDaxllBkmf2WqprRHiw7MGkT38R/kZo71I6I6uLrwm4SS4t9W5fgZBElV/Wp3ugRfuvUsmRFTMo31q6/R/5WZh2jWuRpUMty12FwbG9QNSHiIdkzUFuFonVUL+NNwUTEtl1Biy6DTOCWapWd9ZnAtaI1MC/01qvuFjEd13SkQB32Y3vX8+V0ftLaJtcQ7AM4jK12PvepFWngXS2COdAnHemrvuuHfuq3/uicLlMn8R62yb5zpjbTKHga3cPb+me1XqeYgdOo/xEzdN5wdWJ8/UJDq1amM1MnZR9hTR0/C0/D92CTcx4lakRe1056krXJewz6fDGdTVbFle4zBfM+wQOfhRoTlui6ZxzNYY7WS2S03YhfzXVrku+an5upazdswd/sLth51zj/ZX4jOsxcpyd4V7BYprHlhkflsLcc6/hzWI+rGaslWGU+0TZjA78dPSrdop8Rk0S3/WYMfL7WYJAVN7XKGRr7dnFiVxwXe1TAP0FU3PDUtbOZ7sLN5mP4F/iHapMAeJxjYGSqZ5zAwMrAwFTFtIeBgaEHQjM+YDBkZAKKMrAyM2AFAWmuKQwHGHQ/GjG/AHKjmN8wsABpRpAcANz2CuAAAAB4nLXUZ1IbQRCG4VeBKIEDOeNEVkAgssjhh0+BM4UDhTPn8Nl8jz4B/ma7fQBc5al61Duzo9FMrb4F2oCCLEkR8p3kdEUur9FcNl6gOxsv8lv9Mp3kdV3hgiturHF7q9EK51xybbms97flNLvMODOsqbdHjRab7NPglDrbrLLDFge62+SIZTZY4ZAT1tnlmDN9P+2iqD2206Hf7dJOSlqxh17u84A++hlgkCGGGWGUMf3WBJNMMa15j3jME57yTPNmmGWOeRZ0XWJRpyppzwtUtcl27tb27jg/tVprc79xWt/WibcO1po67MbK4cn67vHZPyz2H1o5fRR+Re856Ym6dNrzUJMXoSUvw6a8CvvyOjTkTTiVt6Eu78K2XIRVuQw78j5syYdwIB9D+ld9Ck25CkdyHZblc9iQL2FFvoZD+RZO5HtYlx9hV36GY7kJeoCWcykvlnekWnApX1Z0KWPW5lL2rN2Raocj1U5Hql2OVLtdyqSVHKmWXXqS1uNItdeR6j2n7GBBKcKCsoE9dEoW1ueUMazfKW3YgFPusEGnBGJDTlnEhp1SiY045RMbdUoqNuaUWWzcKb3YhFOOsUmnRGNTLjvvtFPKsaC8Y0HJx4LeAVjQ2wAL2XlnHKnOOlKdc6Q670h1wZHqosvWWXLZ3iqOdL/q0vvVai6bU3cpY7bssjUbjuofQy2jW3ic7VlrkBzVde5ze2d6et7d04+Z2Z33a3deu/OWZnd79EDL7gr0YldCBqQoEnKwVhgpwsJCC7ZwBBI4JlIBdkXxq8qmoCouJ65QlC3ZKeKCpYIWhUAShCs/sBML4mAcq1LljaaVc3t6VlqhAPa/VLLT3ff07XvPPfecc8/57l2GZfCP/Q77HUZlSsx2hoEwUUXWTbieVJFkiE8jjaQlbvWAVZbUMKg9KQ0aIluETDoRt1oStYSsqObPyhk/uVKryLFMtVFvYNt6o57O0F8txgr9a7LQ0wPZNf36T/WfXnmDkP7z1DIAtodUExCGcKJKHA6kp+5a8V/wZGsBfI5o2K04vHa/J5p2qwst/Rj0cLJ7pVu2WsORITEEcJB95nqsIWS8raqnbv/6+j/6VJe1OQzLLrRYj+hUFKdP7FuluPwht+ptzToG5aTkHHL6PEKfPylFE6upqsDQ15fZLzMRhvGpXKahcjHBKDJCzCgaMcEoVGFuPH/yZH4cXEtL/dfm+xvXr1/87jLHIy+yEmPDF3OcBLxxtPDaa4WjGjl1NP/aa/mj+jIqliHbHnYPIzEDTA3bx6k5JGqaMrVDldqBK9N3iX4x7FKnX3zIFzkj/0wDLu7eMl2uVMrTW17pErunJ8ayuVx2bOJZSkAWqelvFb797cK3jCe7Z0lzg9CWNjco/dfdHvhkFmX2s36kOMaBOq0ICXo3KnLi3OzsuwcOvHPvveQu/ZNkvP38woLR/PJlfFxg32F8TIZBNgMQL0JNqGpQiZXDIAuSG9hY3E2pMK3T6NcicID6A7ba/lzplqGhW0qkUw62Z0PlEF7kIaPs17e9UvkKfPpKi5LRg/1mqBRqH8YHXuQL+PgVtix/Be65Vqbcx5eJjeG6+CiJVrZ/TEY+Why9OG64y2X8Q1kuGLIw0B0+EVsUyXI9SapXMaeDHblGCvbC1V9pOXatBKY972N3MRb0WD/D8MCpPLCNCHRig6SU6zXqiOTf9O3NnXobtLm5l77rcAQ8SmlNSfEE4AX4xjB+0P8GRufmNJcr3JsOxEuleCDVF6bse4wxCqzb9BkPw6QSQsVn3kDv51qtH2ja6VarfVbT3iLl9vyVe3Edk5OsBeVEGanfkxP6+/mf/SwPFzulOZebcT35mAQzREfpKnB4UaksRkEkFKyp46c0jm7YXI5hPfnzi7mJXHYiT4vcRPpSul43HnrPiuxEDp7QP5mqzeI3qBgNcvpZfJByPa3/mDaFkXRddxIxN55r1VJX5H6RvEjXCixZtVctRxK9eplZGebyJfZu9heMF2cSYsaZzzF/hr3p8rd0pEcvqNfYRA2EmGpVcTK+lOQmON2eWlUjFTpZyRpPZ4pAp4tuU6axvayo1K3iWF2r1sthtkJti6mhSKgOymFidur0iYCihklDxYBT0qgCJdkDboI6HWSxu8Lu5XbfY9HXZRqNDKlnGmPf01fBMQKsxXue6Nt5MSx5Vclrt7j8MZ+a9Nldth6b5FH7nGpUsRKb2/4XYlwJCS4v77ZxNo9TUByiV+oVxIgi+gWb3cX1WDxh0eqwiKLDJdpHclnCEpvDZiE1wtk9TiupsGAXbeTnts8csZBlmUuvGsIcO3fpOHvfGwFeaD/+j85I2GcTe6MpOV5LS30ZkffYXbJULUdzit9v97g9gQHF40iJDrcjIDhV0S3YrJwvVkz5XLJf9todHtHn4h08y3EWzhf64x+c5h1WO+eyW/jXeY+Nd/PzHt7uFamp/992/3tttzR3m5igQnxm7oabOrkb5joxbYmdJz7Sxg2avKv1SlmJQItQkymy5AHEaGjXeHoQOOoE6Vr1w01T2LqW5yySR/B5R1bY3VaXzeOT10057bwoiT23bunhBaz5MKXOfXaP2+VQvD7/Jz7hES0Wr1MI7f2sRxbdPG998JDVZhU8IvN/ZI5L8gqmPo4HcgKTif4+eMk/0eziBS82sRi55Wm2iZllOXMTM81sw/b1RgXhdwdF08juhkwHOzcMlIZhXnWDBwywTV+tRkKqNkCDFhQJ9ql31juXMlZtpdwCY1Un4hwktt8l3v7M55MuQewNRtOj+Ym1z26cumFjyevjHQ6vN98ayWtDN6mQ3rh+x523K1Jfc2Jk13AeHh5aq0L4wBNfW5toTgzf2czp88HcjbnBTD6YHc8OZsivSiy77pFb++LhbF8sgIxToiSXmpt7i5JfDsujudH8U5Fba2SrNirJYau9Lze8a3iiqf9ddGuNjN89ysbjWDMy0TzfP4gcg/nMYA6LK7n+aTbB9DJFZhg1ZexQTBVZr1YP7jVUN+lqp6MRrtxxlSJgUFOpJhD3hIAGQUQ90F7Ux9q9n/r0/q0byqYuWn89Azd98e6IqYuNn09QBYw3dzSbOw7sWL58xz9kx6fGs8aDTSxOfl0y4fasaG4xJz69q6dFRmfWdCYeCt67ns42shxZdPj8PWQpkyzpFNR1TGxTwP0Yokgw5xkCrlE3J5sehZhFMvdccqPWcQ1cOgUY8K9q+G2nAQhw/vqqwADZ1z5rMyh0kc5XciEzFBoeCvLOP3xsen/TYQuURsNDyTUtgQ+WRkNDqSODU9iiWQrygikPWTD8me96tEVICOQ3plfrv6ctOraiO+Ei4+zMgby3iM98OJte3DElDGw8yDCNRK2iXnWnPuJ9wcByVxDd9V8WZjt/LbPUzBLFsS3Z59ZwzY0yK5k1Rgz6rXa8PpTGgpg9dU35O+5tT83OwkH9JViuH1uknEhd1Cfhud9tO9v+d03TWubNMB+wYQftUpRMcibi/WdN66Le9n+iBbt+uJ/tRc0J1O4IaKnpWbWRwdlieMy04Jh+sHVcPw/p+fnSLLyth2dL5HHttHYc0pDWz8+X0QLlLq99iKOzzBbDp1GtHCoYwxvVar0FtXSmhH7uBnTpMDSwRqOhzxc3WmEljXZF8wPtLeEHrC4Z697gkiB+3GvEeu32vpnQLf3JKmdVAqKTFVPePo/bm8gdXp6NzBT8ITW7K3tzaM+g2qfmwjbgUgHZIdIuuQaokggOVky4+yS7Y3UxnSVreKeld9NAOrQn5HO5RtOJsaDIJlJiUs7sHColc72qJ7qn+PBwMQJ8FLl+YXgoGuYdlsiugopcfW7P+mKoJhl9Yr7kHYXSep+364+Pso9+YI0w1KMoprfgbXgX3g3znUMaPVS7Zy4/By/k5/IQWFhozy8srEWabMNaXCnbFiJI4JUvowdswxKvuWcWrvhCm7QRWbpwtx2hzsClBgF3Eo1fsG+O7d+4H/7WLOfOs7T8aqcw90MF8mp3rw7oCd0fW2h/CaONeUOghbZvdW0fx/htjGcOZA4Lr/YYA/1JZ7z/eLMHi33wozfZsX2b9pt9n8V9XscHuwgKXbdzEALNx4pvnS8+thL+aiVSbw0+Bhseyp09m3sIzrTn4UyHphga+RxhDzIKRp8G02LWMlPIj7qaqhhul0kb3tXQiEpfOavphxh0qW9hK1qZQcTBg2KE20FATAJGp3pDNYK02kjDwh2bN+61O7Ppmyeev/WO1aMrCElF73505YbxG27j+VR607oz66azCZtt69jkU1Grdf3oqslqKQOH9F9WZgayCFHOrFrerx9NOvzBenMTr1XLsiJejrCfIdXS09vuvG3DslpKVlrLvjq1ZXLlznqL5LNf3DB98/pizpItbJ6Y3vh4rvDy6MTYbDzJWYIK3K8/5e1NpavN4VdIWNGPtk6sXD1QsGjsQP+INnzZvngGM8Pej97Xz4ygZoyDIuPwSE588KAgwZUVujmo1iGG4Euo1odBjtUoOBMkK9nndAcimyMBt3M2vjyOF1zslAtCIBAPBMChO4PJZLAFB7VgKsWGRMnvFkW3XxKxkT5pdnoOH4I/6ser/fVUAJ4LJmdnk0F9MpBajE+HDZmbKHEXIdXRCFhQY3E0QdIwg4uJ5tEIcGmcEnSs11CVioGhYOMJID0WPtQcbOx0N0NRCMsr1vwB5lBWkgvqkxge/8XHO23eU/X+sgBBm0rARp6w4VbALXpfhwdOIGLwOPsdvGNHcTQs62/3TTvvtFoCtdyQ6sDu5Eter8+tnHKzbK/+r1Yp46+KT2Iw52zi64z9qrwURe2vZMYM77yN2cHs/h9yU0xQjINVC01PEYQxndUgI9DhEp0jScVQRkpSK7WMlavUGllARVQwscoV6tEpa4KTK410Qq58WOKCQ+2XfvkeZhW+bQPMMVH4vj0/PZXns2P9B/j89HTeviJZDoah/TIcvh9gtlVdi5nuUAvOHKLtURfLsw/+aNmND35oKrvUftnKY/P3zgpeHAzuB4/BnL+n/8Yc4fNTOA7gdkvJhseWPfDDydqDv6mntrcOH47ThAdweBYeWPQJeu5Fzz/N008v9YIoVYf3mtPPuLG5oF/g4iMH9q2+4YbV+w6At0s9cnD3zubISHPn7veQGB5Ggr1AP+jvL22sLWlDiZHumurKov1W0lxzNmu0+bgiwnevc+r6seXWJ6eX9qTMrsUCFD9gwMdkpCIowGieYffp54+39INwrHW8NKuH4e3Z0vw8IorzxykaOE5hwPy8yYeeT7swEjO4z0Mcae77BEs3urP+9vO3lOJkPF7SvzfTPHeuOTOFrH4CSf0n9BQQkn0zw+fODc/AycXzeAs5aZzj0QMKtkd/34AyZDeFp0gw17YDemaGeCzfga1HOuVimxe6Z4IqttFP/CVu0VeRJ5AoPAyrFnkViESt7EMdnDaSnk9bjKV72Rm0ew7xJeOLI5BEtI6Zhm7GMLJiPvEhpgkTBDMZ7goGygBFO6qxtOk/Uzq0cW7zNCFJQv4Ulr1LLAalz71LvEU1pGz6/Z1JraAl7sr6Y5xNDmoF+MbAuhBWCYXA4GZRECJIR6JWpXfnMnYPdraQU/rcO8gQrOQUNN4l+n0IX7B9xGDk7PUW+5KTvchoMmrwUVhLOd+/Ffm0Iptv7y8N4wz/G4A9L1cAAHicY2BkYGAAYgWvvDnx/DZfGbiZXwAFojgf72uA0f/////D/IL5DVAlBwMTkGQAAHb/DvN4nGNgZGBgfsHAACL//wezGRlQgQcAdFMFCgAAeJxjYGBgYH6BDf//j8C41AwspgcAANyGMDUAAHicY2AAghkMFxieMTowRjEuYXzFpMEUxVTD1Md0g+kT8wWWdSxHWM1YV7DuYQtgO8EuwK7FXsL+iYOHw4hjD8cPTjFOA04/ziIuJq4YrgPcadxreIR4zHgSeEp42nhm8azglSEdAgCdlRu1AHicY2BkYGDwYJjHwMMAAkxAzAWEDAz/wXwGACBkAgkAeJx1jz9OwzAYxV9oWkSLEBISYsMTC1L6Z2Do2KHZO3RgcxsnbZXEkeNW6sYxOAHHYOQInIJD8BK+oUKqLTk///zeJwXALb4QoFkBrtuzWRe45O2PO6Q74ZD8KNzFAM/CPfoX4T7tTHjAZsEJQXhF84A34Qvc4F24Q/8hHJI/hbu4x7dwj/5HuI9lEAoP8BS86ix222Sm840uFibb59qdqlNeGldvbanG0ehUx6Y0TnuTqNVR1Yds4n2qUmcLNbelN3luVeXszqx9tPG+mg6HqfhobQtoZIjhsEXCP9fIseFZYAHDlz3vmq/nUuf8km2Hmt6ihMIYEUZn0zHTZdvQ8PwmbKxw5FnjwM6E1iPlPWXGsqEwbyc36Zzb0lTt245mTR9xdtOqMMWQO/2Xj5jipF9al2jJAAAAeJxtkQdv2zAQhf3Fku3YaeO6bbr3Hmrr7p3upj+DpmiZiEQKJOWRX18iLgIE6AE8vPdwvHu4a2201tFv/T/22KBNQkqHLj026TNgixOcZJshpxhxmjOcZYdznOcCF7nEZa5wlWtc5wY3ucVt7nCXe9znAQ95xGMynvCUZ4x5zgte8orXvOEt73jPBz7yic/s8oWvfOM7P/jJL36zx5/WQBSFU4UI2pqOcM4ufFt42ZHCSFWmciZcGMqZkvsTu8wOgcp3jgRtchWUq7QRQY2O5Mb8q9yStrQuq3UkrhtJUxnfl9YEJ2RQeSJtvUqls963pZ+n8WXjJFdepmoZDXQPczbuqWUt4qx8U61U5kvhZ+2IOlNdxvHpVDsfksLpOi2cbeokFoSkVNPQKbWJPrqlFbk2Ra8SS13pA5VUyjS96HvNjDVqYGzIRFnahcrTOjZQ7VqbtNZzG4YufrfZpAnBmsxOp9vHBZM6XcxC4sVc9X0Vu2S5XZjeGkZDIW5gFJxSx1fWa8zaIIIChyKgsRgWeCQlM/aZsIwnzqloqFkxZ8pBq/UXq/Gj5g==\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n\n.ag-icon {\n font-family: \"agGridBalham\";\n font-size: 16px;\n line-height: 16px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.ag-icon-aggregation::before {\n content: \"\\f101\"; }\n\n.ag-icon-arrows::before {\n content: \"\\f102\"; }\n\n.ag-icon-asc::before {\n content: \"\\f103\"; }\n\n.ag-icon-cancel::before {\n content: \"\\f104\"; }\n\n.ag-icon-chart::before {\n content: \"\\f105\"; }\n\n.ag-icon-color-picker::before {\n content: \"\\f109\"; }\n\n.ag-icon-columns::before {\n content: \"\\f10a\"; }\n\n.ag-icon-contracted::before {\n content: \"\\f10b\"; }\n\n.ag-icon-copy::before {\n content: \"\\f10c\"; }\n\n.ag-icon-cross::before {\n content: \"\\f10d\"; }\n\n.ag-icon-csv::before {\n content: \"\\f10e\"; }\n\n.ag-icon-desc::before {\n content: \"\\f10f\"; }\n\n.ag-icon-excel::before {\n content: \"\\f110\"; }\n\n.ag-icon-expanded::before {\n content: \"\\f111\"; }\n\n.ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n\n.ag-icon-eye::before {\n content: \"\\f113\"; }\n\n.ag-icon-filter::before {\n content: \"\\f114\"; }\n\n.ag-icon-first::before {\n content: \"\\f115\"; }\n\n.ag-icon-grip::before {\n content: \"\\f116\"; }\n\n.ag-icon-group::before {\n content: \"\\f117\"; }\n\n.ag-icon-last::before {\n content: \"\\f118\"; }\n\n.ag-icon-left::before {\n content: \"\\f119\"; }\n\n.ag-icon-linked::before {\n content: \"\\f11a\"; }\n\n.ag-icon-loading::before {\n content: \"\\f11b\"; }\n\n.ag-icon-maximize::before {\n content: \"\\f11c\"; }\n\n.ag-icon-menu::before {\n content: \"\\f11d\"; }\n\n.ag-icon-minimize::before {\n content: \"\\f11e\"; }\n\n.ag-icon-next::before {\n content: \"\\f11f\"; }\n\n.ag-icon-none::before {\n content: \"\\f120\"; }\n\n.ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n\n.ag-icon-paste::before {\n content: \"\\f122\"; }\n\n.ag-icon-pin::before {\n content: \"\\f123\"; }\n\n.ag-icon-pivot::before {\n content: \"\\f124\"; }\n\n.ag-icon-previous::before {\n content: \"\\f125\"; }\n\n.ag-icon-right::before {\n content: \"\\f128\"; }\n\n.ag-icon-save::before {\n content: \"\\f129\"; }\n\n.ag-icon-small-down::before {\n content: \"\\f12a\"; }\n\n.ag-icon-small-left::before {\n content: \"\\f12b\"; }\n\n.ag-icon-small-right::before {\n content: \"\\f12c\"; }\n\n.ag-icon-small-up::before {\n content: \"\\f12d\"; }\n\n.ag-icon-tick::before {\n content: \"\\f12e\"; }\n\n.ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n\n.ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n\n.ag-icon-tree-open::before {\n content: \"\\f131\"; }\n\n.ag-icon-unlinked::before {\n content: \"\\f132\"; }\n\n.ag-icon-row-drag::before {\n content: \"\\f116\"; }\n\n.ag-left-arrow::before {\n content: \"\\f119\"; }\n\n.ag-right-arrow::before {\n content: \"\\f128\"; }\n\n", ""]);
54024// Exports
54025module.exports = exports;
54026
54027
54028/***/ }),
54029/* 283 */
54030/***/ (function(module, exports, __webpack_require__) {
54031
54032var api = __webpack_require__(258);
54033 var content = __webpack_require__(284);
54034
54035 content = content.__esModule ? content.default : content;
54036
54037 if (typeof content === 'string') {
54038 content = [[module.i, content, '']];
54039 }
54040
54041var options = {};
54042
54043options.insert = "head";
54044options.singleton = false;
54045
54046var update = api(content, options);
54047
54048
54049
54050module.exports = content.locals || {};
54051
54052/***/ }),
54053/* 284 */
54054/***/ (function(module, exports, __webpack_require__) {
54055
54056// Imports
54057var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
54058exports = ___CSS_LOADER_API_IMPORT___(false);
54059// Module
54060exports.push([module.i, "@font-face {\n font-family: \"agGridClassic\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABXwAAsAAAAAKrgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2Zoxou09TLzIAAANsAAAAQQAAAFZWVlMSY21hcAAAA7AAAAIbAAAFnIlT7KJnbHlmAAAFzAAADBkAABg4HeN0mGhlYWQAABHoAAAANAAAADZ2z8SBaGhlYQAAEhwAAAAeAAAAJAfTBCxobXR4AAASPAAAABgAAAE4yyH/7GxvY2EAABJUAAAAdgAAAJ5JCULobWF4cAAAEswAAAAfAAAAIAFkAKpuYW1lAAAS7AAAATMAAAJS8kTiWnBvc3QAABQgAAABzQAAArBhTs2TeJx9lMtOU1EUhv/DaREoAlG8pCIiGi+oiMrxXHpoy6WH1tbEgTEOnGBMjAlxxHP4AD4BQ5/AB3DgE/gADhw6Nn5r9WCFAey03Xtd/vXvf62NAklTWlNTYzvF4KVm9vcOPqquioZ/5v9/H+x/eL+niaMTvor/TiioTGtGy3qtA30LZoKD4HBsPqyHr8J34efwS/hLIVFLWiW6pqesWAnfkVJlaijXmMaxxew34BOymmq59RyMqu7pqqfL1IzJ6Tniip7xmQOncJyOtolKWYbZ4XvAuqfZUyJy3Qc/g80m1gqKLKJJrnlNgp4Q01Sb/Cb+89TcoXaEv8BXwK6KpcW+rQtwsoyKq9rVGz3Bbzc1lKzMSfnE2vVz5Kc1NDmKaoHToJZhr8LgyN6gakLGY9AzorZKRVd0k+wGOB3Q2p694dnLRCZwS3WDnd0zges08Zle6K1X3S1zOq7pUIFV2I/shePlenjM2gZrQOwjOIys1p8H1IrUx1+jV4X29UmH+qrv+qGf+q0/OqOL1En8Dtug75yqzQQKnozu4m39s9pdx5mBk1HHIya5ecPVifH1Sg2tWo2bmTop+whr6vFT8LT4Lmxy+lGhRuR1rdNV1ibnmOiz5XQ2WdOudI8pmPUJ7vss1HWHvi064nAOc7S+CqLthvyuuG5N8Ba8b6auvbA5P9lbsH7XmdVr/EbcMHOdnuO9jsWQRpYlz8phbxjr+HNYj6oZqwVYresuPpuxvr+OLpVucZ8hk4QIexl9n6/bMMjKlzpPD419u+zYJY+LPSvgP0FUvvDUtbOZLuBm8zH4C3G+c6UAeJxjYGSazTiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMX9i4ALSjCA5AOaCCwgAAAB4nLXUB1IbQRCF4V+BLMA22eQcBQaTcxAiHwJnCgcKZ87hs/kefQL8Rt0+AK7yVn3bO1Or3ZlavQaqgJzMSB6ytWR0RSar2UxlPkd9ZT7Pb40L1JLVdZErbrizhft7zRa55Jpby1RGf4+M7i7QwxjLGh2yxAE7lFnlXDN7rLPPLkdsssEJK2yzxjFnbFHilAv9Pq0irzVWU6P31mklDXpiI0084jEttNJGOx100kW33tRLH/0MMMgQw4wwyjgTTDLFtHZSZJY5njHPgs7PNVrUIqt52HH4wPvTsXSwU149X97TjnePNje02e2147Ot0unFPzzsPxyFdMr9itEZ6Yu6tNvLsCQvwoG8DDvyKpTldViVN+Fc3ob0b3gX9uQqrMt12Jf3YVc+hCP5GDblU9iQm3Ait2FFPodt+RLW5Gs4lm8h7f172JIfoSQ/w6ncBX1Ay7iUF8s6Us25lC/Lu5Qxq3Ipe1btSLXGkWqtI9U6R6r1LmXSGhypFlz6ktboSLXJkWqzU3awoBRhQXnCnjglC2txyhjW6pQ2rM0pd1i7UwKxDqcsYp1OqcS6nPKJPXVKKtbtlFmsxym9WK9TjrE+p0Rj/U7ZxgacUo4NOuUdG3JKPjbs1AOwEadugI069QVszKlDYONOvQKbcKkv2qRLebApp96BTTv1FGzGqa9gRac+g806dRxszlXuCepC2LyrPHPBsfgHpKymyQB4nO1Ye2wUxxnfmfXt3t57d+92zxycvXf4FkNico+99QMMGOOzcWzTnIMJaQ04GMWYRDEESJqktAElJErSShFVqUmAqj0XmlQFI+XRBxKpGleRGqePNKnyKn+0Sdq4pHXS6uRb+s3eww8ooPSfVu3Zu/P6Zuabb34z3+9bClHwo5P0IMVRFFJkVvEpIq3QSWN4717Un7v/9dfxAfzT8fERtBftBRFT/n36faoSChqr6jKr8oqZ6ApvJjKvmAmroHNdqbGxlnWIXgdpap2RW9cCaZdhkPpUF8J0JdcFVS1dlzblu1LFOdfTj1FWKLAqBw8fRt9+th/1ob7+Z47jXc9uRX3G01ufyX1YlMcTeIKym/KgC2gD+uCJljOjqTNnUqNnWkbRqmJutOUMZaGoiwas6wNKpMKUSi2hllKURQnVII1PNKK4EgsiH+91IVoJMZCRoCYJTREU58NVcV+YhpTenhOV+lCoXsEfwUupV3Iej9/vwRd4Wc59N51GHen0SHc3DtWF8Mfwgv+cG17012U+x/N+P4//wsvGqPF2JoOOGZth2bP0WgzrKSoSnlbOMkcnFsF6RZnebioRKik1MUOdAWPi74kT59fSHxSVKCp180xdXjRsP1t1EB1dRM3VRb02XWhFU66oyO+N06jzKloYzgzZ0lnzX9vsV5r5KpOS9cKi76G3AjqslJ+iAHgyh2i9AjEs/Pm8EsySUCMq/pOxqf42I4cax8Ze/oHdXu6WomuikrscnUPHG6DBeAktHxtrdDqDgUh5KBoNlVfND5LhGXOOQ/QhmI0FvLphbTJFVfnAbPDQc1J03DhNNxmnM7OS7Aj8UEcGfqiT5KmC7h8UbLX02qyFAMe+sBbW4lqcHgwRi4Hl8hYkljMtQyxnvDJi/vIWFAoWnChYUAQJHn8E23aGqDRCUUV9mugmc5U86BPnFS0MN4XCK7Sm8HEND2cMRwZNpo1R1DFijKbxsFnOQvk4VGap0l3wAP0AOdscgu1gOQQ3go4mkbDHmDBfxsQeJMALb59VRAIU8za/OEXfSf+Z8oB1FlCt1Jepp2DoCOykZYZF6LCGQEFGlhqQWOV14XCopkxLNOI4saWXCUXUGhSGDt4giiX1RhSTZGLgEFRriWQsSMcJPmqQWoOJuWNBXOiU71OBJDmI4WZK6tFGsj9enxu5MGzPUhq6S/Qd7La7LEanqusqTqp6y6jRhB7BiLZ4foeNTZwQ9Hpkr8dmcfoVUV4o2pzWMqvXLc93yJUSg60u2ykhJC3gnR7OZWWtbgcv2QWPN8ALFZLg5602J1tmcQcFxm4RBLtTsC1bshjT2Gq3WrCGWZvbweA4jWyCFf/RuudBC65Vp141lXlkfOpR+p7flHN87mu/dVQERasQqKzyhbSId74qcG6b0+dNxCqXSH6/ze1yl1dLbnuVYHfZy3mHLLh4K8OKSk2V6PT5fR6b3S2ITs7O0SxrYcUFT/zwR5ydsbFOm4X7Nee2ci7uF27O5hGo/+/df/XeFf34QdOP83FgC+TgfufYM/3G08bT/ehe7MpNQuEo2tIPomVz9rrtqvusQ2skkYzHpAq0ApNtk3xeN5Jhe1woFFmKWAKEiJa48vZcf0s7x1q8bl70LFtpczFOq1v0dXY7bJzgFco29JRxPNRcybBj9w66nHbJI/o3bnQLFovHwS+44163T3BxHLPvi4yV4d2mTf4X1vjZeAPxelfy3k8YjquxhtFMZtr3vEzrVDkVpZbB/LqcjEuyJLvAoQM7RMkVSAuHwKerYg1WGTaIZEmXGWJp+EuCgGl1FeSRkoisaHr4vqEN1Xc0aqsqXcYva9pVW+OS2uv3/SH5+WW25kT0sc7052Jf2LhlfWPd0tjG3eiNdS0uQQoq9obraNeiG4Sym9r3L7890hxfZEf7bBilLYwrYLzN1G7QYq3Nt0l++8r5Ni5R1Rhb+9CNxuForyjLFfPi3YHptcjgQxdRSVgLWYdJRwq6JiFP6iS9qDS5ldSqyHIUJnIyiOhoiqyga8/9D371fqLkLbu+cldzYmVv3+13bV6/1lTW0XL73oGUDa1Ftq5kKlm1KBlZRvvodPuDezq6HI61keWx9gPtN5+MtW7QaxlGj20VZamyvPbWRLK3nnbOX4ys9nntXiuLqTx3M3nODuBSEGmICuJVLeqLa2mTx2ToQWC9m0ay3d0FWTwF/J02oxI+zAOhVVkZrUhjz0sv1WazeMJwoEmj+dw5KBBxR4FfnJ3FowJUxTSb14HdFB90lbwCHGgkk8ma/8BC/lUOHctkxjMm8Tp2aQIqWQrrPgtnW6GqqGrqesJ9TDIHXKtA60oPH9YUFPZBLJF/quBBx4HVgY2A4ZGUsCMz3dyNOgvTmerQg2kwXyadhSSbxqlsTkij493AndLp/xg95uxtVZiPIxKdsXgqnc5dMDc3O2Nn8z7jGL3e9BkykD0SoqJtJ/Je4iSuR8dO5OPAk4Ro4oufXvyU/hv9VypBDeZPB+MmdB08txrR4aCDc5bztS4UxFDRiIhb16IRkoUmcv+yZjORk+MS6aQm1CgRM+WDuNgM5AEa9aQawV+q83oX1R6o62y/sWOnF351rbZyAWEelzHlAa+gtbUF9s8XxADnx+XVVskmCUis67ixvbPuQO0iEBd8yCZZF/ux084FRDGwP9DWpgneQDlTBoMgodzWWkfGhZk62w/DTKSw0xyglfO4tJhVYOYFWtuSXjFwINDaGuB4T8hfbcWMh8xkqnSg9jCIC24WW6v9IQ/H2ojggYDoTba1BuYxgjWmuTxcq7mKmef2EJymCvPmZOF4wKUJcQLcnHBMYPMgWojrmhpmfTh1eM/hN96AV6aU+cajfX2P9uEfz6okmdzzfaTJ9IEzY9zoNUberBnUIx3ucFm/cuz90bup6HDtEfR26r3oU7VPXSUAzzWm3rnhCIg/8F4qCmnJh0zHaWaEhgoPfWjqJ3RT/snmIzEShxX9+2dZm25+toAlkovvymu7753UDUf0YZRIvUuUvtrasoW1PQkmOaIfKX0veRzOpIXsMDmN6FbzJKJY8YLNn8MA/SvKOf0NxuRvMhoe6EcqUvsHBvqNN403+wfwqe1QA7ntxkPboQ7athd4wEWwxYeUl1pIxQkPICfMQ5xXJXFVHvBMSQs5s/EYyZLYeik5jqZvBt5NTufkwbuHmtasaRq62/h491BTc3PT0G40nnsuuaopNbRlk14ny4vbtFWrodBbW+eXF9MfgvBu48LunUR4527kgW5rPsk9t1iW6/TevqFU08pkW76wZai1aVWyhPsmehB2252PViFEjcvkpoSoldxq27KZkbRxOo0maX+uHw+nR8j992/2RaU4GUoozMthVg3r5DrGE72nsul09lQvmgT3NzaQzQ6g2nTex5QwpgArqKVWXB5lhOSYMGsAn6pZIPIm7DL/Dc881OR0i8QBkC8nczCXu3Mfwdy+EXpl7kUc5OV/OBuGhhocZx1msmM8dx63yJegD1/I5OGHU3DBv+Dn0TLHjH5OnMp8iZfnYND09vjxORjEM/BTDVImKDwEQpUELR4CIdaElJe0hEyiTFrQ5MMlpLiL6DlogqVO37TlPAAFfr1bLo+Umwkuzvf1EuHePhDW62ZjudrkYZfDsmyqSGArmYAm34oiIuHpNShhho2XhfPDQ0WNzhd1fGT1roO7Vpuva9bS2Nxc6LJ613T8dbTgS1Wdg0fR8P7v9aMtxtH+E7mf49TJfCh2YqSE40HAsZOSCA8DWlC6oyyFT71xAPDz6WgIt4aixuiO+vHx+h3d4MDfQguNt8iXLrRw/o6G8fGGHejJaXzjYTI6sMAR/E1jFA8bp0v30DBgH5NvOzzhF2gSdeS2zW3DeepBrwLSODpnTA4RgtKRlyi0ZegUwRUHATuiM7nXjFf2nEUv4NdyryFtN+Sm9WolO0uOACiW2wbgJNUlThGmUlQP3P2Sdy6nqECkrsAokjGZlmIlpsB4obXAE0gP1qyTEcEDioTyBSmGb2LZnhn0oYcV2U6G2QBcgDjnHtbLhuDpIS4e6MEGhukEiZ4ZNKCHZbH/Opdr6luuiAtSutcVefVSmY7Zo6Dvz56k41I1pj65DkaE4WBU1QnD/xPnjHQ0AAAAeJxjYGRgYADiY81JvPH8Nl8ZuJlfAAWiOB/va4DR/7/9/8b8mfkTUCUHAxOQZAAAhKEPOXicY2BkYGB+wcAAIv9/+/+V+TMDIwMq8AMAnl4HBgAAeJxjYGBgYH5Bb/z/Gy3NZqADAAB/FDOneJxjYAACCYYghiyGFoYLjGKMYYx9jAcY3zCZMEUwVTFHsJix+LEcYDViLWK9wWbC5sWWwraB7Qu7BXsAewaHAIcTxxSODZxMnCKcZpw9nKs4T3A+4nLhCuOaw/WNm4/bgtuNO4Q7ibuAu4V7Eo8M6RAAslkbZAAAeJxjYGRgYPBjmMfAwwACTEDMBYQMDP/BfAYAIQYCDwB4nH2QvU7DMBSFT/qHaAWqBGJgMgsLUvqz0bVSs3foniZ2miqNg+NW6s5z8AQ8R5+Dp2DmxHgpErUl57vfPfcOATDECQGaE+DGvc1p4YrVL7dJ95475CfPXQwQeu7Rv3ru4wULzwPc4Y0bgs41zSPePbdwiw/PbfpPzx3yyXMXD/jy3KP/9tzHKhh6HuA5UHEWmTydF3Fd58lSZvsiNmfurFhJU+e6FJNwfOYjWUoTW5mK9VHUh2xqrRLK6J1Y6NLKotCiMnorExturK1mo5HyPkz0DjEyRDDIkWKOgnXNmyPBEpK9vXPmQu7/zoobjGONEgIT/vfxhXzEfOlmYlh+U86sceRb48CpKa2FYq2Y0diRFm53ky54NU3leluahD7Exk1VmGHEq/7kQ6a46QfFq20TAHicbZIHb9swEIX9xZKt2GmTpm269x5q6+6990h/A0PRMhGZFEjKdvLry9pBgQA9gIf3Dod37w5sLbUW0Wv9PzZZok1CSocuGcv06LPCAQ6yyhqHWOcwRzjKBsc4zglOcorTnOEs5zjPBS5yictc4SrXuM4NbnKL2+Tc4S73GHCfBzzkEY95wlOe8ZwXvOQVr3nDW97xng985BOf+cJXvvGdH/zkF5v8bvVFWTpViqCt6Qjn7NS3hZcdKYxUVSpHwoU1OVJye8vO8jlQxca/gjaFCsqNtRFBrf8rN2avc0Xayrq81pG4biTN2PietCY4IYMqEmnrnVQ6631b+kkaXz5ICuVlqmbRQHee80GmZrWIs4pltaNyXwk/akfUGeoqjk+H2vmQlE7XaelsU3fnOSrFxpBUahg6lTbRT7eyotCmzMZipsd6VyVjZZos+l8wo2YhMdaovrEhF1Vlp6pI66iiuvOcD9q1NmmtJzZktVMTbRu/5qKozbeaEKzJ7XC4ur9gUqfLUUi8mKieH0fZvLBTswf/2usv4LwtW+CmTkI823pwSu2/c9aYxTYIShyKgMZimOKRVIzYZotZ/CMFYxpqdpgwZLfV+gPpZLiDAAAA\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n\n.ag-icon {\n font-family: \"agGridClassic\";\n font-size: 12px;\n line-height: 12px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.ag-icon-aggregation::before {\n content: \"\\f101\"; }\n\n.ag-icon-arrows::before {\n content: \"\\f102\"; }\n\n.ag-icon-asc::before {\n content: \"\\f103\"; }\n\n.ag-icon-cancel::before {\n content: \"\\f104\"; }\n\n.ag-icon-chart::before {\n content: \"\\f105\"; }\n\n.ag-icon-color-picker::before {\n content: \"\\f109\"; }\n\n.ag-icon-columns::before {\n content: \"\\f10a\"; }\n\n.ag-icon-contracted::before {\n content: \"\\f10b\"; }\n\n.ag-icon-copy::before {\n content: \"\\f10c\"; }\n\n.ag-icon-cross::before {\n content: \"\\f10d\"; }\n\n.ag-icon-csv::before {\n content: \"\\f10e\"; }\n\n.ag-icon-desc::before {\n content: \"\\f10f\"; }\n\n.ag-icon-excel::before {\n content: \"\\f110\"; }\n\n.ag-icon-expanded::before {\n content: \"\\f111\"; }\n\n.ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n\n.ag-icon-eye::before {\n content: \"\\f113\"; }\n\n.ag-icon-filter::before {\n content: \"\\f114\"; }\n\n.ag-icon-first::before {\n content: \"\\f115\"; }\n\n.ag-icon-grip::before {\n content: \"\\f116\"; }\n\n.ag-icon-group::before {\n content: \"\\f117\"; }\n\n.ag-icon-last::before {\n content: \"\\f118\"; }\n\n.ag-icon-left::before {\n content: \"\\f119\"; }\n\n.ag-icon-linked::before {\n content: \"\\f11a\"; }\n\n.ag-icon-loading::before {\n content: \"\\f11b\"; }\n\n.ag-icon-maximize::before {\n content: \"\\f11c\"; }\n\n.ag-icon-menu::before {\n content: \"\\f11d\"; }\n\n.ag-icon-minimize::before {\n content: \"\\f11e\"; }\n\n.ag-icon-next::before {\n content: \"\\f11f\"; }\n\n.ag-icon-none::before {\n content: \"\\f120\"; }\n\n.ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n\n.ag-icon-paste::before {\n content: \"\\f122\"; }\n\n.ag-icon-pin::before {\n content: \"\\f123\"; }\n\n.ag-icon-pivot::before {\n content: \"\\f124\"; }\n\n.ag-icon-previous::before {\n content: \"\\f125\"; }\n\n.ag-icon-right::before {\n content: \"\\f128\"; }\n\n.ag-icon-save::before {\n content: \"\\f129\"; }\n\n.ag-icon-small-down::before {\n content: \"\\f12a\"; }\n\n.ag-icon-small-left::before {\n content: \"\\f12b\"; }\n\n.ag-icon-small-right::before {\n content: \"\\f12c\"; }\n\n.ag-icon-small-up::before {\n content: \"\\f12d\"; }\n\n.ag-icon-tick::before {\n content: \"\\f12e\"; }\n\n.ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n\n.ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n\n.ag-icon-tree-open::before {\n content: \"\\f131\"; }\n\n.ag-icon-unlinked::before {\n content: \"\\f132\"; }\n\n.ag-icon-row-drag::before {\n content: \"\\f116\"; }\n\n.ag-left-arrow::before {\n content: \"\\f119\"; }\n\n.ag-right-arrow::before {\n content: \"\\f128\"; }\n\n", ""]);
54061// Exports
54062module.exports = exports;
54063
54064
54065/***/ }),
54066/* 285 */
54067/***/ (function(module, exports, __webpack_require__) {
54068
54069var api = __webpack_require__(258);
54070 var content = __webpack_require__(286);
54071
54072 content = content.__esModule ? content.default : content;
54073
54074 if (typeof content === 'string') {
54075 content = [[module.i, content, '']];
54076 }
54077
54078var options = {};
54079
54080options.insert = "head";
54081options.singleton = false;
54082
54083var update = api(content, options);
54084
54085
54086
54087module.exports = content.locals || {};
54088
54089/***/ }),
54090/* 286 */
54091/***/ (function(module, exports, __webpack_require__) {
54092
54093// Imports
54094var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(260);
54095exports = ___CSS_LOADER_API_IMPORT___(false);
54096// Module
54097exports.push([module.i, "@font-face {\n font-family: \"agGridMaterial\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABPwAAsAAAAAJjAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAmMAAAR2ZOVnMk9TLzIAAANsAAAAQQAAAFZWUFMDY21hcAAAA7AAAAIRAAAFnH0V34BnbHlmAAAFxAAACj0AABO8Q1oUYmhlYWQAABAEAAAAMQAAADZ2zsSBaGhlYQAAEDgAAAAWAAAAJAfRBDVobXR4AAAQUAAAABIAAAEww1AAAGxvY2EAABBkAAAAcwAAAJoHSQMCbWF4cAAAENgAAAAfAAAAIAFfAKpuYW1lAAAQ+AAAATIAAAJebBQ2inBvc3QAABIsAAABwgAAAqTvU9OHeJx9lEtyElEUhv+mm0gCklSMGjFq1PhCjZpO09DhYUIHAjpwYFkOnMSyyrKKcsQ6XIAryNAVuAAHrsAFOHDo2PK7h0ZMBuEWl3vP4z//eVzkSVrQY7WVS3vPX6o8Ohx/VEWBJh+n///sjT68P1RhekMX2G9BXlBSWTf0WmN988re2DvKrfgV/5X/zv/sf/F/ycdqXZtYF7XNilRjDxWrroYS5TSHLOK8oybWPnvLpMswypump74uETPCp2+IVQ11R0vgpIbT1S5WMcthdtmHrLtaPMUi0T3w67DpIA2oyFVq0tR5zesAll3Obfyb6M8Rc4/YIV4puhR2eSQtzm1dgJPzCKyqB3rDvmyZOpR65hPzjbRv99BuRdbUqgVOg1gO+wkMpvIGUWt4PAK9jtXTrKJV3cS7AU4XtLZ575h3Ecsa3GL6ElieNbiWtMHphd7qIRb7mU/XajqpwH3Yz+Sp4SV6cEzaBmuI7SYcZlLXnyqxQg0sq1UkI33Skb7qu37op37rj85Qpw56l8Mu6Hun1qZABU9a99C2/kldrnPMwEmr4xbzZN6w6kTo+lkNXbQimbnqxJxDpLHZL8DT2fdgk9CPgBihxXWdzrM63COsz2bT2WSVrNJ9er9oEzywWagwgVtMlUOczGFCra+A6E4Tfpetbk3w1qxvrrruhS3Zzb0F1+8KfbjGb0iGdavTM7TXkTikmWTdvBLYO4wt9AmsZ9EcqzVYbdtEuxkb2OvoEWmDfCZMarptL2Ng83ULBvXspa7oorFvZx1bNbvIvDz+CcLshcdWOzfTKdzcfAz/Au6DcHUAeJxjYGSaxDiBgZWBgamKaQ8DA0MPhGZ8wGDIyAQUZWBlZsAKAtJcUxgOMOh+NGJ+AeRGMb9hYAHSjCA5AOMfCvMAAAB4nLXUB1IbQRCF4V+BLMC2MDknR9kgBCIHIUDAKXCmcKBw5hw+m+/RJ8Bv1O0D4Cpv1afeGa12Z7T1GmgBcvJU8pBtJ6MzMlnNZprzOTqb83l+a1ygnazOS5xzybWVb240W+KMC64s0xz9PTK6usAo86xotM8Se2xR1+iECjussss2B6yzxhHLbFLlkGM2qNHgVL9Pq8hrja206bkdWkmX7thND3e4S5E++hlgkCGGGdGTxhhngkmmdN00M8wyp6cXecBDHvGYJ9pPiWc81/cLLFLWIlu53bF/y+vTsbS3VV85qexox9sH62va7Gb18Hij1jj9h5v9h6OQPnK/YpQWVQppt2dhSV6EPXkZtuRVqMvrkN76m3Aib0NF3oUdOQ+rchF25X3Ylg/hQD6GdfkU1uQyHMlVWJbPYVO+hKp8DYfyLRzL97AhP0JNfoaGXAf9V5ZxKS+WdaSacylflncpY9biUvas1ZFqmyPVdkeqHY5UO13KpHU5Ui249Cat25FqjyPVXqfsYEEpwoJygt1zShZWdMoY1ueUNuy+U+6wfqcEYgNOWcQGnVKJDTnlExt2Sio24pRZbNQpvdiYU46xcadEYxOuud9Jp5RjU055x6adko/NOPUAbNapG2BzrrnfeacOgQX1Ciyoa2BB/QML6iRYSL3TQsqMBfUZLKjjYKG5/gVHqouOVMuO8h8D8KVRAAAAeJztWH1sG+UZv+e92Ofz99m+O3tN7NgX+0qTGsXn88V2miZN2mSMpJ1sOvpFCqwtkNK0UAaFRTDEpDJGizTCH6BJoEmONAkGyz9lQy3qQHRC2lzRMQl13cQ/JIxFRYpAMvVtz3ux04ZmjP2JtuTe9557P557Pn73Ps9jBhj8IwvsJsbFMBAXPSDG9bihxsmC6Qaf+SksmhfPn4cOdqBUq5WmqlWGaaF72NfY1xg742FCzBrcqemaymmconOyriVVURE1UVVERTYUeKkyefbsZA/tyPDZyckZ65k8iv0MpUpnJyuTBlLI1pKH3YTyOBgmKBuCJsgGzBTmy3NFcxYWi/OmDb6YL8Ioim2tnWanUYZ23Jrg7Jw9JEuylDFyRi6rptRUkFM51VAN2ZA5WDxy+7iRzxvjt3/YJMYLzz1XmJ62enZ6xZRF1H/fnMWevs56Z5gNI8VRmwU1QaHN0ESlOjX18dGj8w88QO42D5CR+qlazTKvtWeOnWOCTIRaOeEFUQhFQYtn+kAXsmngwZBBZo9d+SyqRfFinda9vmB+PHYOKmPsHD6vmLzyGUhj70Bl60r+8ur8WXTqddyfrl8gXddzrl84fC1P1uIpxIXkanyRJ+v8Et+lwckv823Y7iH2+4wNvRtmGB44mQfWiIGduk4MSZmcTt1G/m6OF+4069B37tw7r7pcEZ/Uvblb8kXgLLxUxAnzd7Dh3Lk+jye6JhVJdHcnIsnWKGXPL+NnyT8+yyZrmBijUF/pCm0cNh2bjM0QNd3WGBewzVQqNetq3M29jSfyQqW+H+/lSmMAZ/BqYpacJAuoF4MqcYjYZwunTxdqZKF45kyxtoybx9gzluatlpfsIqI7LltESEKj5tCmKTYuxMmrplvpLsPilKlT7eBd2ps6vMue7k7UXyfDpW6l/jodJMNKd30fGV7+dig26beMuLdEkQ2VDRfn55sX+cs1D/gFM/+8wh5iP2H8aKk2ZoR5jPk57sZPR7VdIxir6IgB2S5LRQgmQ16iJNIteraPaJkoiCF7IqWmQcENCI9MzuiDjCSHvDiCw3o2l4myGvVtGtQ0yfYB7iKNTUt7YiDJUYLC5oxu3ByFkOgDL0mk4UYWt0vsvdz+wzZzTDUMleRUY8usuQmeJMDa/B8Qc5wPREN+OeR32jzheFDuCDo9jhZHyCe3uuV2yU4cXudrgYTUJnj8vNfBOXxuQXIF/KE1QiAmBcKCw+nhWmy+aMDusgUCLk/A2du5jrDE4XLYiE44p89tJxoLzoCDfOT4weM20qNe+aMlzJPVKz9hH/pThBfqz/zZHYsGHYE17UkxoadCrWqA9zk9Yiibae+UwmGnz+uL3CD5XMmAy+uKCG454BUcdi4YTyeDHjEs+p0uXyDo4V08y3E2Lth24rdv8C67k/M4bfwF3ufgvfwffLzTH6Cu/r/vvrm+WxHn8FsVFEHlgB2wAh2M0kAHX5i2eQx6NN6u8PO3/6OPDRr6sjktI8VgI6Euk8SQD2R0jRcSqRuBoyBI6dmvds36Hd/hOVvIJwT9vf1Or93j8AXFsbLbyQdCgZZbv9fCCzjyVUY9d2zC63FJ/mB4505fwGbzu4W2e4/5xICX5+2PPmx32AWfZY//BR1Xxgk8nZHRiUKtVjhNZou1WvHMMi52kDmmiA9p1MDOqagkqiV7AUlDwQFFtqNqqhLFT9igNH6LOCXbOY0ulmTyLJceUuNFeXTHgW0jW+5plW/pGUvyg5ywbmzIwcezjkFu/Wa1o314cATnJ1pT393FtzxxQ9va9ixPhOQGJSKNarHYoeENd8RHk1o4sG4zqLFUn+Lb8i06vLd/dzC0tjUV/YbKzC7LHMDcYK2VPaKsKDEmj31goGwpFk+w7NKB5gU2YafpSTYFi5ZwrfdsGXkRibY2JLZ13dTVddOttOtam89vy+fJR/SNw4disebdnGiswA5YumZbvinHBGKikU8mMQehOThgxoaZc8W8SBbqJzELd9dK8FKpZF4sL+eU5HMLSzxFk4F4AsxDyedvvolgMvVyGXSafNTo3kY+t4kcsd5DM/24jeaEA/X95PlGO1KaKTXiCq69jXUi5WQERsSsNUb3oBk6gQpn0MAR14NWFoWZv0LDAhkGCdO8GZDMj2eQMN2T9O8STQRhlHZjhw9fwvtk/cLk5GE6fJ0eQZqxqHHU41NLDXiwXCazlhqoxHXnJhYqmDmrqMbSUQmj9Ngk0fmCOWvOFuab9p0mb2ONEGa68A0oahF0BXNZDF0WlQYZTZHEkmXJ1Z2AVB9gwPtFolepVPJ7e3r25isVpTfxSxgzfw0PUlpRludgUSkqW3vG7xvv2aoUuXIF+y10ZO+R8Z5mLu1Ee8qWHbEUwWJB5rBK0rE4oQY0sGpiNUNXFU4kXfu27n/mmf1b9x1eJvbvHhjYPUAeXjFICfORATrVsMsEO0E1DqJ3pxA2AXaixKyCMQPVtf7Rh9a6pYblXblaKjXOqQXmPN1pIC8LQlULG6vyEhp4naLrmvyuwpW9pk6LM+l/U6lBlpL0IIA04AGuAk1O6MLV6jZz0/qum0d35e/qNNcnOmAUCXgv0UEHVyvjzPFdozd3re9ImOs77zI/6UjAe5135a2xpk4HMTeX0D8qyqfQ1IZTVibmSjwj0bwnm4O4oKHKGhv+lad/W7/3FSsRH7Fy9ItCJJKIRECvnyrDi2V2IplOJzFn32eteSHRHVbCeKGNXpiaamKjn+1DKXy0elCNIFiZO61ZVdj1lPrUX6ErGr3cu/3yLb3HopDDEfibeSEaPdZ7y+XtvZevqXtoTb5U7yioR5rJMDmmgGdKHDGOKvTRyi1KazgvAMId9Ygnl16FyBO1pFUsy3SKfg0GNnpAxLS2Ni1Gnrfu9X9UKujmIXjD/HDjRvXAAfV9HPhE7d+49sABM4S0dOnSpUql5+qWmMUCxAr82HzklY39uGktvD9zo9pPSXiaFlOVFXVyiLmhiRI/RUk7hYafooRNWGGfPmfoTAMgx48eGRwaGjxyFPxN6vi9e3bqhqHv3PNBk2Dn6IR5eeXiKz9cscgiGpigsrgRszkqjXVgLJ0L6n8h2tD9g4P3H6fd0NeTkiw01mNX+9oCX3c2cjJ+uRgTrv3NxMov5wsw2rA1PS88iHqrvleWsW4zLEwICPD6qdIStM3Zg4VqtXCwTH8Qgg7zolWXdrQeLFarxYPws+X85m2yh3IHLII7qlWym/5i1Jzbg+cwsWSj4+St1eYQ9D+tVule5jqeiE0cp/NX9b2TdTfzKVDh0MvFOVgsQOnlwjzemzUxiTbPxSr9XYZEy8u8F8jJpbqdJmSNWENO0Or9at0+jXaicTBDzwaxUTZxch/QqohTZI0mOuLVeIJVkyHjQhkvA8hbVrww1m3IbuzZe8fusqN+6vHCSDOmbOreHrtvfGQmWx8mb2HkULo2uzasuaM3P95TKcPBH4Xv7s9bgUXpvsm2vXwbriS/Qan+BR+vOg4AAAB4nGNgZGBgAGKpH/rO8fw2Xxm4mV8ABaI4H+9rQND//zC/YH4DVMnBwAQkGQBX3Q0FAAAAeJxjYGRgYH7BwIBEMjKgAh8ARYYDEAAAeJxjYGBgYH4xPDA9AAANeC3nAAB4nGNgAAIpBg+GOIYZDJsYHjHyMJoxZjAuYtzC+IyJgeke8x7mSywuLNtYTrAqsdawHmC9w/qFjYvNgS2CrYBtE9sTtk/sXOwS7EbsTewH2J9wuHH0cDzj+MOpxmnC6cQZwBnHWcBZxzmB8x7pEAB+RDEmAHicY2BkYGDwYZjHwMkAAkxAzAWEDAz/wXwGACCLAgoAeJx9kD1qw0AQhZ/8F2JDCIS4UrEQSBOQf0qT2oKAGxfuZWsly6y1YrU2+AY5SE6QQ6TMQXKKPK23sQvPwvC9N2+mWACP+EGApgI8uN5UC3dUZ26Tnj13yC+euxhg4rlH/91zH2/48DzAEw68EHTu6YT49Nxi/stzm/635w7513MXQ/x57iEM4LmPVRB6HuA1MEkemyJdJFaaIlFLmR9UcmVeqpU0daFLMYnGl4NYltKQU7E+ifqYT63NRGb0Xsx1aaVSWlRG7+TGRltrq9lolHk/2ug9EuSIYVAgxYLKQjqVQGFJzvkXisrcTN6arRzXVBolBP8/wvjmRkwunT77KbfWOLHXOHJvStcio86Y0diT5u56k1Z8mk7lZjs6G/oRtm6rwgwjvuwqHzHFS/808m/eAAB4nG2SB2/bMBCF/cWS7dhpk6Ztuvceauvune6Z/giGomUiEimQlO3k15e1gwABegCJ9x7uju8ObC21FtFv/T+2WKJNQkqHLj2W6TNghSMcZZU1jrHOcU5wkg1OcZoznOUc57nARS5xmStc5RrXucFNbnGbO9zlHvfJeMBDHjHkMU94yjOe84KXvOI1b3jLO96zyQc+8onPfOEr3/jOD37yi99s8ac1EEXhVCGCtqYjnLNT3xZedqQwUpWpHAsX1uRYyZ1tO8vmQOUbB4I2uQrKVdqIoNYP5MbsZ65IW1qX1ToS142kqYzvS2uCEzKoPJG23k2ls963pZ+k8WTDJFdepmoWDXTndzbsqVkt4lv5stpVmS+FHw8OUDZsR9wZ6TJaSUfa+ZAUTtdp4WxTJzElJKUahU6pTfTULa3ItSl6lZjpSu+ppFKm6cUZFsxYowbGhkyUpZ2qPK1jA9WutUlrPbFhzcVym203IViT2dFo9bBgUqeLcUi8mKi+r2KXLLdTsw//GRks4Dytt8DRZ4hLWg9OqcNbXZ5Ltlam15jFBAgKHIqAxmKY4pGUjNlhm1n8FzkVDTW7TBix12r9BZxqtRIAAA==\") format(\"woff\");\n font-weight: normal;\n font-style: normal; }\n\n.ag-icon {\n font-family: \"agGridMaterial\";\n font-size: 18px;\n line-height: 18px;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n.ag-icon-aggregation::before {\n content: \"\\f101\"; }\n\n.ag-icon-arrows::before {\n content: \"\\f102\"; }\n\n.ag-icon-asc::before {\n content: \"\\f103\"; }\n\n.ag-icon-cancel::before {\n content: \"\\f104\"; }\n\n.ag-icon-chart::before {\n content: \"\\f105\"; }\n\n.ag-icon-color-picker::before {\n content: \"\\f109\"; }\n\n.ag-icon-columns::before {\n content: \"\\f10a\"; }\n\n.ag-icon-contracted::before {\n content: \"\\f10b\"; }\n\n.ag-icon-copy::before {\n content: \"\\f10c\"; }\n\n.ag-icon-cross::before {\n content: \"\\f10d\"; }\n\n.ag-icon-csv::before {\n content: \"\\f10e\"; }\n\n.ag-icon-desc::before {\n content: \"\\f10f\"; }\n\n.ag-icon-excel::before {\n content: \"\\f110\"; }\n\n.ag-icon-expanded::before {\n content: \"\\f111\"; }\n\n.ag-icon-eye-slash::before {\n content: \"\\f112\"; }\n\n.ag-icon-eye::before {\n content: \"\\f113\"; }\n\n.ag-icon-filter::before {\n content: \"\\f114\"; }\n\n.ag-icon-first::before {\n content: \"\\f115\"; }\n\n.ag-icon-grip::before {\n content: \"\\f116\"; }\n\n.ag-icon-group::before {\n content: \"\\f117\"; }\n\n.ag-icon-last::before {\n content: \"\\f118\"; }\n\n.ag-icon-left::before {\n content: \"\\f119\"; }\n\n.ag-icon-linked::before {\n content: \"\\f11a\"; }\n\n.ag-icon-loading::before {\n content: \"\\f11b\"; }\n\n.ag-icon-maximize::before {\n content: \"\\f11c\"; }\n\n.ag-icon-menu::before {\n content: \"\\f11d\"; }\n\n.ag-icon-minimize::before {\n content: \"\\f11e\"; }\n\n.ag-icon-next::before {\n content: \"\\f11f\"; }\n\n.ag-icon-none::before {\n content: \"\\f120\"; }\n\n.ag-icon-not-allowed::before {\n content: \"\\f121\"; }\n\n.ag-icon-paste::before {\n content: \"\\f122\"; }\n\n.ag-icon-pin::before {\n content: \"\\f123\"; }\n\n.ag-icon-pivot::before {\n content: \"\\f124\"; }\n\n.ag-icon-previous::before {\n content: \"\\f125\"; }\n\n.ag-icon-right::before {\n content: \"\\f128\"; }\n\n.ag-icon-save::before {\n content: \"\\f129\"; }\n\n.ag-icon-small-down::before {\n content: \"\\f12a\"; }\n\n.ag-icon-small-left::before {\n content: \"\\f12b\"; }\n\n.ag-icon-small-right::before {\n content: \"\\f12c\"; }\n\n.ag-icon-small-up::before {\n content: \"\\f12d\"; }\n\n.ag-icon-tick::before {\n content: \"\\f12e\"; }\n\n.ag-icon-tree-closed::before {\n content: \"\\f12f\"; }\n\n.ag-icon-tree-indeterminate::before {\n content: \"\\f130\"; }\n\n.ag-icon-tree-open::before {\n content: \"\\f131\"; }\n\n.ag-icon-unlinked::before {\n content: \"\\f132\"; }\n\n.ag-icon-row-drag::before {\n content: \"\\f116\"; }\n\n.ag-left-arrow::before {\n content: \"\\f119\"; }\n\n.ag-right-arrow::before {\n content: \"\\f128\"; }\n\n", ""]);
54098// Exports
54099module.exports = exports;
54100
54101
54102/***/ })
54103/******/ ]);
54104});
\No newline at end of file