@syncfusion/ej2-angular-treegrid 26.2.14-ngcc → 26.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +314 -0
  2. package/esm2020/public_api.mjs +2 -0
  3. package/esm2020/src/index.mjs +9 -0
  4. package/esm2020/src/treegrid/aggregate-columns.directive.mjs +72 -0
  5. package/esm2020/src/treegrid/aggregates.directive.mjs +69 -0
  6. package/esm2020/src/treegrid/columns.directive.mjs +100 -0
  7. package/esm2020/src/treegrid/stacked-column.directive.mjs +100 -0
  8. package/esm2020/src/treegrid/treegrid-all.module.mjs +89 -0
  9. package/esm2020/src/treegrid/treegrid.component.mjs +247 -0
  10. package/esm2020/src/treegrid/treegrid.module.mjs +61 -0
  11. package/esm2020/syncfusion-ej2-angular-treegrid.mjs +5 -0
  12. package/fesm2015/syncfusion-ej2-angular-treegrid.mjs +710 -0
  13. package/fesm2015/syncfusion-ej2-angular-treegrid.mjs.map +1 -0
  14. package/fesm2020/syncfusion-ej2-angular-treegrid.mjs +710 -0
  15. package/fesm2020/syncfusion-ej2-angular-treegrid.mjs.map +1 -0
  16. package/package.json +26 -12
  17. package/src/treegrid/aggregate-columns.directive.d.ts +5 -0
  18. package/src/treegrid/aggregates.directive.d.ts +5 -0
  19. package/src/treegrid/columns.directive.d.ts +5 -0
  20. package/src/treegrid/stacked-column.directive.d.ts +5 -0
  21. package/src/treegrid/treegrid-all.module.d.ts +6 -0
  22. package/src/treegrid/treegrid.component.d.ts +3 -0
  23. package/src/treegrid/treegrid.module.d.ts +10 -0
  24. package/syncfusion-ej2-angular-treegrid.d.ts +5 -0
  25. package/@syncfusion/ej2-angular-treegrid.es5.js +0 -798
  26. package/@syncfusion/ej2-angular-treegrid.es5.js.map +0 -1
  27. package/@syncfusion/ej2-angular-treegrid.js +0 -748
  28. package/@syncfusion/ej2-angular-treegrid.js.map +0 -1
  29. package/dist/ej2-angular-treegrid.umd.js +0 -980
  30. package/dist/ej2-angular-treegrid.umd.js.map +0 -1
  31. package/dist/ej2-angular-treegrid.umd.min.js +0 -11
  32. package/dist/ej2-angular-treegrid.umd.min.js.map +0 -1
  33. package/ej2-angular-treegrid.d.ts +0 -5
  34. package/ej2-angular-treegrid.metadata.json +0 -1
  35. package/license +0 -10
package/CHANGELOG.md ADDED
@@ -0,0 +1,314 @@
1
+ # Changelog
2
+
3
+ ## [Unreleased]
4
+
5
+ ### Tree Grid
6
+
7
+ #### Bug Fixes
8
+
9
+ - `#F60772` - Resolved the unwanted `actionFailure` event triggered when height and width were given in pixels.
10
+ - `#F60579` - Added an interface or type for the column template event handler.
11
+
12
+ ## 26.2.12 (2024-09-03)
13
+
14
+ ### Tree Grid
15
+
16
+ #### Bug Fixes
17
+
18
+ - `#F60489` - Fixed the issue where the `hasChildRecords` property value was not being updated correctly.
19
+ - `#F60854` - Fixed an issue where an exception was thrown when clicking on a row while using the `filterTemplate`.
20
+
21
+ - `#F60489` - Fixed the issue where the `hasChildRecords` property value was not being updated correctly.
22
+
23
+ ## 26.2.11 (2024-08-27)
24
+
25
+ ### Tree Grid
26
+
27
+ #### Bug Fixes
28
+
29
+ - `#F60202` - Fixed an issue where the filter menu `dialog` would not close after performing a filter or cancel action when utilizing the `filterTemplate` property.
30
+
31
+ ## 26.2.10 (2024-08-20)
32
+
33
+ ### Tree Grid
34
+
35
+ #### Bug Fixes
36
+
37
+ - `#I609686` - Fixed an issue where the `Rowdraganddrop` action would drop the previously selected record when virtualization is enabled.
38
+ - `#I620787` - Resolved a white space issue that occurred while scrolling with `persistSelection` and virtualization.
39
+
40
+ ## 26.2.9 (2024-08-13)
41
+
42
+ ### Tree Grid
43
+
44
+ #### Bug Fixes
45
+
46
+ - `#I609686` - Fixed an issue where the `Rowdraganddrop` action would drop the previously selected record when virtualization is enabled.
47
+ - `#I609686` - Fixed a console error that occurred when performing row selection followed by the `collapseAll` and `expandAll` actions with virtualization.
48
+
49
+ ## 26.2.8 (2024-08-06)
50
+
51
+ ### Tree Grid
52
+
53
+ #### Bug Fixes
54
+
55
+ - `#I609686` - Fixed an issue where row selection was incorrect when virtualization was enabled.
56
+
57
+ ## 26.2.4 (2024-07-24)
58
+
59
+ ### Tree Grid
60
+
61
+ #### Bug Fixes
62
+
63
+ - `#F59092` - Fixed issue where wrong data was returning in `rowDeselected` event when both `persistSelection` and `filterSettings` were enabled with remote data.
64
+
65
+ ## 26.1.42 (2024-07-16)
66
+
67
+ ### Tree Grid
68
+
69
+ #### Bug Fixes
70
+
71
+ - `#I607837` - Resolved an issue where an action failure logged an error while rendering the Tree Grid with both `idMapping` and `parentIdMapping` properties.
72
+
73
+ ## 26.1.41 (2024-07-09)
74
+
75
+ ### Tree Grid
76
+
77
+ #### Bug Fixes
78
+
79
+ - `#F58804` - Fixed an issue where an exception was being thrown when dragging and dropping between the tree grid and detail template.
80
+ - `#F603044` - Resolved a console error that occurred when clicking the checkbox of child records.
81
+
82
+ - `#F603044` - Resolved a console error that occurred when clicking the checkbox of child records.
83
+
84
+ ## 26.1.40 (2024-07-02)
85
+
86
+ ### Tree Grid
87
+
88
+ #### Bug Fixes
89
+
90
+ - `F58902` - Fixed an issue where the `CollapseAll` / `ExpandAll` button in the toolbar was not working properly when virtualization was enabled.
91
+
92
+ ## 26.1.39 (2024-06-25)
93
+
94
+ ### Tree Grid
95
+
96
+ #### Bug Fixes
97
+
98
+ - `#F58392` - Fixed issue where exporting remained empty when using remote data by returning data in the form of result and count.
99
+ - `#F58393` - Fixed issue where exporting remote data with `exportType` as `AllPages` was sending improper requests to the server.
100
+ - `#596141` - Fixed issue where alphanumeric values were not properly sent in the request during the expand action for remote data.
101
+ - `F58576` - Fixed issue where updating a variable through `useState()` did not reflect in the edit template in tree grid.
102
+
103
+ ## 26.1.35 (2024-06-11)
104
+
105
+ ### Tree Grid
106
+
107
+ #### Features
108
+
109
+ - `#I341079` - Provided support for exporting data to PDF, CSV, and Excel formats using server-side functionality. Please find the demo [here](https://ej2.syncfusion.com/aspnetcore/TreeGrid/ServerSideExporting#/material3).
110
+
111
+ - Added support for the new `fixed` mode within the `freeze` property of column settings. When a column is set as `fixed`, it will stay within the viewport during horizontal scrolling, enhancing the user experience with improved visibility and efficiency.
112
+
113
+ - Provided support for inline editing with virtualization enabled. Please find the demo [here](https://ej2.syncfusion.com/angular/demos/#/bootstrap5/treegrid/virtual-scrolling).
114
+ - `#I323425`, `#I332700`, `#I344742`, `#I375307` - Provided support for frozen column with virtualization enabled.
115
+ - `#F166825` - Provided support for infinite scrolling with observable binding.
116
+
117
+ #### Breaking Changes
118
+
119
+ - Optimized the frozen columns feature in Tree Grid and thus changed the dom structure of tree grid from two table to single table architecture. Also, the following methods have been removed, and it's recommended to use the following alternatives instead.
120
+
121
+ | Removed methods | Suggested to use alternative methods |
122
+ |----------|----------|
123
+ | `getMoavableRows`, `getFrozenRightRows` | `getRows` |
124
+ | `getMovableRowByIndex`, `getFrozenRowByIndex`, `getFrozenRightRowByIndex` | `getRowByIndex` |
125
+ | `getMovableCellFromIndex`, `getFrozenRightCellFromIndex` | `getCellFromIndex` |
126
+ | `getMovableDataRows`, `getFrozenRightDataRows`, `getFrozenDataRows` | `getDataRows` |
127
+ | `getAllMovableDataRows`, `getAllFrozenDataRows`, `getAllFrozenRightDataRows` | `getAllDataRows` |
128
+ | `getMovableColumnHeaderByIndex`, `getFrozenRightColumnHeaderByIndex`, `getFrozenLeftColumnHeaderByIndex` | `getColumnHeaderByIndex` |
129
+ | `getFrozenRightHeader`, `getMovableHeader` | `getHeaderContent` |
130
+ | `getFrozenRightRowsObject`, `getMovableRwsObject` | `getRowsObject` |
131
+ | `getFrozenRightHeaderTbody`, `getMovableHeaderTbody`, `getFrozenHeaderTbody` | `getContent().querySelector(‘tbody’)` |
132
+ | `getFrozenLeftContentTbody`, `getFrozenRightContentTbody`, `getMovableContentTbody` | `getHeaderContent().querySelector(‘tbody’)` |
133
+ | `getFrozenRightContent`, `getMovableContent` | `getContent` |
134
+
135
+ ## 20.2.36 (2022-06-30)
136
+
137
+ ### Tree Grid
138
+
139
+ #### Features
140
+
141
+ - Provided support for inline editing with virtualization enabled. Please find the demo [here](https://ej2.syncfusion.com/demos/#/bootstrap5/tree-grid/virtual-scrolling.html).
142
+ - `#I323425`, `#I332700`, `#I344742`, `#I375307` - Provided support for frozen column with virtualization enabled.
143
+
144
+ - `#I334966`, `#I373929`, `#I332693`, `#I342835`, `#F172606`, `#F171250`, `#F171248` - Provided row drag and drop support with virtualization feature enabled.
145
+ - `#I367483` - Provided support for row indent and outdent functionality. Please find the demo link [here](https://ej2.syncfusion.com/angular/demos/#/bootstrap5/treegrid/inlineediting).
146
+
147
+ ## 19.2.44 (2021-06-30)
148
+
149
+ ### Tree Grid
150
+
151
+ #### Bug Fixes
152
+
153
+ - `#332604` - Resolved white space issue while using less number of records with Virtualization.
154
+
155
+ - `#I329350` - Immutable mode works fine for date values and row reordering.
156
+ - `#I329988`, `#I331155` - Editing a newly added child record works fine with self referential data.
157
+
158
+ ## 18.4.30 (2020-12-17)
159
+
160
+ ### Tree Grid
161
+
162
+ #### New Features
163
+
164
+ - `#294082` - Provided Immutable Support to refresh specific rows while perform Tree Grid actions.
165
+ - `#283491` - Provided error handling support to easily rectify errors in sample side.
166
+ - `#298682`, `#299561` - Added getVisibleRecords API to get the visible records based on collapsed rows state.
167
+
168
+ #### Bug Fixes
169
+
170
+ - `#F157882`- After editing the row using `updateRow` method, `getCurrentViewRecords` method updated properly.
171
+ - `#F157882`- When editing with a double click, it works fine when we only have one record.
172
+ - `#289600` - Records get expanded properly after collapsing all records using `collapseAtLevel` method in observable binding.
173
+ - `#F157099` - Virtualization with Aggregates works fine with large number of records.
174
+ - `#296233` - Row Drag and Drop within treegrid works fine.
175
+ - `#297986` - Row Drag and drop within treegrid works fine with checkbox enabled.
176
+ - `#F158886` - Cell editing with frozen columns works fine.
177
+ - `#299761` - Treegrid column width renders fine in Internet Explorer when Virtualization is enabled.
178
+ - `#301861` - Tree Grid dataSource updated properly while using setCellValue method.
179
+ - `#F159697` - Order of child records are displayed correctly after editing in remote data binding.
180
+ - `292453` - Treegrid refresh method works fine after updating the data.
181
+
182
+ - `#289600` - Records get expanded properly after collapsing all records using `collapseAtLevel` method in observable binding.
183
+ - `#F157099` - Virtualization with Aggregates works fine with large number of records.
184
+ - `#297986` - Row Drag and drop within treegrid works fine with checkbox enabled.
185
+ - `#F158886` - Cell editing with frozen columns works fine.
186
+ - `#F159697` - Order of child records are displayed correctly after editing in remote data binding.
187
+
188
+ ## 18.3.35 (2020-10-01)
189
+
190
+ ### TreeGrid
191
+
192
+ #### Bug Fixes
193
+
194
+ - `#F157258` - `updateRow` method works fine for updating collapsed data.
195
+ - `#292933` - checkbox rendered properly while using the template column.
196
+ - `#289685` - Aggregate Column Formatting is working fine
197
+ - `#288542` - The Expand / Collapse icon has been rendered properly while enabling expand state mapping and adding a new record.
198
+ - `#287235` - While enabling expand state mapping the Expand / Collapse icon works fine at nested child levels.
199
+ - `#285434`- Column SortComparer function works fine with null values for RemoteSaveAdaptor datasource.
200
+ - `#284987`- Records rendered properly while using remote save adaptor in created event.
201
+ - `#285434`- Column SortComparer function works fine with null values in datasource.
202
+ - `#F155077`- Records rendered properly while using remote data with jQuery unobtrusive library.
203
+
204
+ - `#F157258` - `updateRow` method works fine for updating collapsed data.
205
+
206
+ ## 18.2.44 (2020-07-07)
207
+
208
+ ### TreeGrid
209
+
210
+ #### Bug Fixes
211
+
212
+ - `#279109` - Checkbox checked properly for child records in remote data.
213
+ - `#277364`, `#279732` - Checkbox with `allowRowDragAndDrop` property rendered properly after editing and cancelling in cell edit mode.
214
+ - `#277364` - Checkbox with `autoCheckHierarchy` property rendered properly after editing and cancelling in cell edit mode.
215
+ - `#278266` - Edit type `dropdownedit` is working properly in cell edit mode when enter key is pressed.
216
+ - `#272026` - `updateRow` method works fine for updating treegrid data source.
217
+ - `#273309` - Editing the zeroth level added record works fine in Batch mode.
218
+ - `#277361` - Auto generated columns work fine when two treegrids are rendered on the same page.
219
+
220
+ - `F153495` - Sorting after editing is working fine with cell edit mode.
221
+ - `#266963`- Drag and drop works fine in unordered list of data.
222
+ - `#F151795` - Localization support works fine in Add row, Above, Below Context Menu Items.
223
+ - `#F151795`- In Drag and drop, while dropping at first row, its border color is changed properly.
224
+
225
+ #### New Features
226
+
227
+ - `#258863`, `#271677` - Expand & Collapse child rows support has been provided in Excel Export.
228
+ - Columnchooser support has been provided that allows user to show or hide columns dynamically.
229
+ - Provided support for Editing with Virtualization feature.
230
+
231
+ #### Breaking Changes
232
+
233
+ - Now `data`, `row` these Tree Grid selection event arguments are get array values only when we perform multi selection. Please find modified event arguments and it types from the below table,
234
+
235
+ `Properties` |`Type`
236
+ -----|-----
237
+ `data` | `Object or Object[]`
238
+ `rowIndex` | `number`
239
+ `rowIndexes` | `number[]`
240
+ `row` | `Element or Element[]`
241
+
242
+ ## 17.4.39 (2019-12-17)
243
+
244
+ ### TreeGrid
245
+
246
+ #### New Features
247
+
248
+ - AutoFill support has been provided that allows users to copy the data of selected cells and paste it to another cells by dragging.
249
+
250
+ #### Breaking Changes
251
+
252
+ - Default value of column's `disableHtmlEncode` is set to true, so the HTML tags can be displayed in the Grid header and content by default. To display it as html content `disableHtmlEncode` need to be set as false.
253
+
254
+ #### Bug Fixes
255
+
256
+ - `#148913` - Expand icon displays properly for the nested records in Custom Data Binding.
257
+
258
+ ## 17.2.48-beta (2019-08-28)
259
+
260
+ ### TreeGrid
261
+
262
+ #### New Features
263
+
264
+ - Checkbox selection support has been provided that allows users to select rows using checkbox.
265
+ - Checkbox Column support has been provided that allows users to check rows using checkbox in treegrid column.
266
+
267
+ #### Bug Fixes
268
+
269
+ - Change detection for properties `dataSource` and `query` were handled for remote data.
270
+ - Edited records can be searched/filtered.
271
+ - Inner level records will be collapsed/expanded after filtering/searching actions.
272
+
273
+ ## 17.1.1-beta (2019-01-29)
274
+
275
+ ### TreeGrid
276
+
277
+ #### Bug Fixes
278
+
279
+ - `Query` maintenance support provided for `refresh` method after expanding any child rows.
280
+ - Property change support for `height` property has been provided.
281
+ - Expand icon is prevented from displaying for the root/zeroth level record which has `hasChildMapping` field as false.
282
+ - Child records of third level or its successor displays properly based on their hierarchy relation in self reference data binding.
283
+
284
+ - Expand icon is prevented from displaying for the root/zeroth level record which has `hasChildMapping` field as false.
285
+
286
+ #### New Features
287
+
288
+ - `Excel-Like Filtering` support is provided that allows users to create complex filter criteria for a column by allowing users to select possible filter values from a checkbox list. The advanced filter can be used to build complex filter criteria.
289
+
290
+ ## 16.4.45 (2019-01-02)
291
+
292
+ ### TreeGrid
293
+
294
+ #### Bug Fixes
295
+
296
+ - Added events for the column menu feature and added `columnMenuItems` API to modify the column menu items in column menu.
297
+ - Added `sortComparer` API to perform custom sorting in TreeGrid.
298
+
299
+ ## 16.4.44 (2018-12-24)
300
+
301
+ ### TreeGrid
302
+
303
+ #### Bug Fixes
304
+
305
+ - Expanding and Collapsing records is working fine when `pageSizeMode` is set as `All`.
306
+ - `expandAtLevel`, `collapseAtLevel`, `expandAll` and `collapseAll` methods are working fine when `pageSizeMode` is set as `All`.- `actionBegin`, `actionComplete` and `actionFailure` events are triggered properly.
307
+ - Additional parameters that are added using the `query` property of TreeGrid are passed to the server side when a parent record is expanded.## 19.1.54 (2021-03-30)
308
+
309
+ ### Tree Grid
310
+
311
+ #### Bug Fixes
312
+
313
+ - `#332604` - Resolved white space issue while using less number of records with Virtualization.
314
+
@@ -0,0 +1,2 @@
1
+ export * from './src/index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9pbmRleCc7Il19
@@ -0,0 +1,9 @@
1
+ export { StackedColumnDirective, StackedColumnsDirective } from './treegrid/stacked-column.directive';
2
+ export { ColumnDirective, ColumnsDirective } from './treegrid/columns.directive';
3
+ export { AggregateColumnDirective, AggregateColumnsDirective } from './treegrid/aggregate-columns.directive';
4
+ export { AggregateDirective, AggregatesDirective } from './treegrid/aggregates.directive';
5
+ export { TreeGridComponent } from './treegrid/treegrid.component';
6
+ export { TreeGridModule } from './treegrid/treegrid.module';
7
+ export { TreeGridAllModule, FilterService, PageService, SortService, ReorderService, ToolbarService, AggregateService, ResizeService, ColumnMenuService, ExcelExportService, PdfExportService, CommandColumnService, ContextMenuService, EditService, SelectionService, VirtualScrollService, DetailRowService, RowDDService, FreezeService, ColumnChooserService, LoggerService, InfiniteScrollService } from './treegrid/treegrid-all.module';
8
+ export * from '@syncfusion/ej2-treegrid';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHNCQUFzQixFQUFDLHVCQUF1QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbkcsT0FBTyxFQUFDLGVBQWUsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaGIsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7U3RhY2tlZENvbHVtbkRpcmVjdGl2ZSxTdGFja2VkQ29sdW1uc0RpcmVjdGl2ZX0gZnJvbSAnLi90cmVlZ3JpZC9zdGFja2VkLWNvbHVtbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtDb2x1bW5EaXJlY3RpdmUsQ29sdW1uc0RpcmVjdGl2ZX0gZnJvbSAnLi90cmVlZ3JpZC9jb2x1bW5zLmRpcmVjdGl2ZSc7XG5leHBvcnQge0FnZ3JlZ2F0ZUNvbHVtbkRpcmVjdGl2ZSxBZ2dyZWdhdGVDb2x1bW5zRGlyZWN0aXZlfSBmcm9tICcuL3RyZWVncmlkL2FnZ3JlZ2F0ZS1jb2x1bW5zLmRpcmVjdGl2ZSc7XG5leHBvcnQge0FnZ3JlZ2F0ZURpcmVjdGl2ZSxBZ2dyZWdhdGVzRGlyZWN0aXZlfSBmcm9tICcuL3RyZWVncmlkL2FnZ3JlZ2F0ZXMuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFRyZWVHcmlkQ29tcG9uZW50fSBmcm9tICcuL3RyZWVncmlkL3RyZWVncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUcmVlR3JpZE1vZHVsZSB9IGZyb20gJy4vdHJlZWdyaWQvdHJlZWdyaWQubW9kdWxlJztcbmV4cG9ydCB7IFRyZWVHcmlkQWxsTW9kdWxlLCBGaWx0ZXJTZXJ2aWNlLCBQYWdlU2VydmljZSwgU29ydFNlcnZpY2UsIFJlb3JkZXJTZXJ2aWNlLCBUb29sYmFyU2VydmljZSwgQWdncmVnYXRlU2VydmljZSwgUmVzaXplU2VydmljZSwgQ29sdW1uTWVudVNlcnZpY2UsIEV4Y2VsRXhwb3J0U2VydmljZSwgUGRmRXhwb3J0U2VydmljZSwgQ29tbWFuZENvbHVtblNlcnZpY2UsIENvbnRleHRNZW51U2VydmljZSwgRWRpdFNlcnZpY2UsIFNlbGVjdGlvblNlcnZpY2UsIFZpcnR1YWxTY3JvbGxTZXJ2aWNlLCBEZXRhaWxSb3dTZXJ2aWNlLCBSb3dERFNlcnZpY2UsIEZyZWV6ZVNlcnZpY2UsIENvbHVtbkNob29zZXJTZXJ2aWNlLCBMb2dnZXJTZXJ2aWNlLCBJbmZpbml0ZVNjcm9sbFNlcnZpY2UgfSBmcm9tICcuL3RyZWVncmlkL3RyZWVncmlkLWFsbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnQHN5bmNmdXNpb24vZWoyLXRyZWVncmlkJzsiXX0=
@@ -0,0 +1,72 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ContentChildren, ContentChild } from '@angular/core';
3
+ import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
4
+ import { Template } from '@syncfusion/ej2-angular-base';
5
+ import * as i0 from "@angular/core";
6
+ let input = ['columnName', 'customAggregate', 'field', 'footerTemplate', 'format', 'type'];
7
+ let outputs = [];
8
+ /**
9
+ * `e-aggregate->e-column` directive represent a aggregate column of the Angular TreeGrid.
10
+ * ```html
11
+ * <ejs-treegrid [dataSource]='data' allowPaging='true' allowSorting='true'>
12
+ * <e-columns>
13
+ * <e-column field='ID' width='100'></e-column>
14
+ * <e-column field='name' headerText='Name' width='100'></e-column>
15
+ * </e-columns>
16
+ * <e-aggregates>
17
+ * <e-aggregate>
18
+ * <e-columns>
19
+ * <e-column field='ID' type='Min'></e-column>
20
+ * </e-columns>
21
+ * </e-aggregate>
22
+ * </e-aggregates>
23
+ * </ejs-treegrid>
24
+ * ```
25
+ */
26
+ export class AggregateColumnDirective extends ComplexBase {
27
+ constructor(viewContainerRef) {
28
+ super();
29
+ this.viewContainerRef = viewContainerRef;
30
+ setValue('currentInstance', this, this.viewContainerRef);
31
+ this.registerEvents(outputs);
32
+ this.directivePropList = input;
33
+ }
34
+ }
35
+ AggregateColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregateColumnDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
36
+ AggregateColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AggregateColumnDirective, selector: "ejs-treegrid>e-aggregates>e-aggregate>e-columns>e-column", inputs: { columnName: "columnName", customAggregate: "customAggregate", field: "field", footerTemplate: "footerTemplate", format: "format", type: "type" }, queries: [{ propertyName: "footerTemplate", first: true, predicate: ["footerTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
37
+ __decorate([
38
+ Template()
39
+ ], AggregateColumnDirective.prototype, "footerTemplate", void 0);
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregateColumnDirective, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: 'ejs-treegrid>e-aggregates>e-aggregate>e-columns>e-column',
44
+ inputs: input,
45
+ outputs: outputs,
46
+ queries: {}
47
+ }]
48
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { footerTemplate: [{
49
+ type: ContentChild,
50
+ args: ['footerTemplate']
51
+ }] } });
52
+ /**
53
+ * AggregateColumn Array Directive
54
+ * @private
55
+ */
56
+ export class AggregateColumnsDirective extends ArrayBase {
57
+ constructor() {
58
+ super('columns');
59
+ }
60
+ }
61
+ AggregateColumnsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregateColumnsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
62
+ AggregateColumnsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AggregateColumnsDirective, selector: "ejs-treegrid>e-aggregates>e-aggregate>e-columns", queries: [{ propertyName: "children", predicate: AggregateColumnDirective }], usesInheritance: true, ngImport: i0 });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregateColumnsDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ selector: 'ejs-treegrid>e-aggregates>e-aggregate>e-columns',
67
+ queries: {
68
+ children: new ContentChildren(AggregateColumnDirective)
69
+ },
70
+ }]
71
+ }], ctorParameters: function () { return []; } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLWNvbHVtbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyZWVncmlkL2FnZ3JlZ2F0ZS1jb2x1bW5zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckcsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQVNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxXQUFxQztJQWdFL0UsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOztxSEFyRVEsd0JBQXdCO3lHQUF4Qix3QkFBd0I7QUE4RGpDO0lBREMsUUFBUSxFQUFFO2dFQUNnQjsyRkE5RGxCLHdCQUF3QjtrQkFScEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMERBQTBEO29CQUNwRSxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7dUdBK0RVLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCOztBQVlsQzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsU0FBb0M7SUFDL0U7UUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7c0hBSFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsZ0hBSEEsd0JBQXdCOzJGQUdqRCx5QkFBeUI7a0JBTnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlEQUFpRDtvQkFDM0QsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDMUQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydjb2x1bW5OYW1lJywgJ2N1c3RvbUFnZ3JlZ2F0ZScsICdmaWVsZCcsICdmb290ZXJUZW1wbGF0ZScsICdmb3JtYXQnLCAndHlwZSddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWFnZ3JlZ2F0ZS0+ZS1jb2x1bW5gIGRpcmVjdGl2ZSByZXByZXNlbnQgYSBhZ2dyZWdhdGUgY29sdW1uIG9mIHRoZSBBbmd1bGFyIFRyZWVHcmlkLiBcbiAqIGBgYGh0bWxcbiAqIDxlanMtdHJlZWdyaWQgW2RhdGFTb3VyY2VdPSdkYXRhJyBhbGxvd1BhZ2luZz0ndHJ1ZScgYWxsb3dTb3J0aW5nPSd0cnVlJz4gXG4gKiAgIDxlLWNvbHVtbnM+XG4gKiAgICAgPGUtY29sdW1uIGZpZWxkPSdJRCcgd2lkdGg9JzEwMCc+PC9lLWNvbHVtbj5cbiAqICAgICA8ZS1jb2x1bW4gZmllbGQ9J25hbWUnIGhlYWRlclRleHQ9J05hbWUnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogICA8ZS1hZ2dyZWdhdGVzPlxuICogICAgIDxlLWFnZ3JlZ2F0ZT5cbiAqICAgICAgIDxlLWNvbHVtbnM+XG4gKiAgICAgICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHR5cGU9J01pbic+PC9lLWNvbHVtbj5cbiAqICAgICAgIDwvZS1jb2x1bW5zPlxuICogICAgICA8L2UtYWdncmVnYXRlPlxuICogICAgPC9lLWFnZ3JlZ2F0ZXM+XG4gKiA8L2Vqcy10cmVlZ3JpZD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWFnZ3JlZ2F0ZXM+ZS1hZ2dyZWdhdGU+ZS1jb2x1bW5zPmUtY29sdW1uJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlQ29sdW1uRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8QWdncmVnYXRlQ29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYWdncmVnYXRlIHR5cGUgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogVG8gdXNlIG11bHRpcGxlIGFnZ3JlZ2F0ZXMgZm9yIHNpbmdsZSBjb2x1bW4sIHNwZWNpZnkgdGhlIGB0eXBlYCBhcyBhcnJheS4gXG4gICAgICogVHlwZXMgb2YgYWdncmVnYXRlIGFyZSwgXG4gICAgICogKiBzdW0gXG4gICAgICogKiBhdmVyYWdlIFxuICAgICAqICogbWF4IFxuICAgICAqICogbWluIFxuICAgICAqICogY291bnQgXG4gICAgICogKiBmYWxzZWNvdW50IFxuICAgICAqICogdHJ1ZWNvdW50IFxuICAgICAqICogY3VzdG9tIFxuICAgICAqID4gU3BlY2lmeSB0aGUgYHR5cGVgIHZhbHVlIGFzIGBjdXN0b21gIHRvIHVzZSBjdXN0b20gYWdncmVnYXRpb24uXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbHVtbiBuYW1lIHRvIGRpc3BsYXkgdGhlIGFnZ3JlZ2F0ZSB2YWx1ZS4gSWYgYGNvbHVtbk5hbWVgIGlzIG5vdCBkZWZpbmVkLCBcbiAgICAgKiB0aGVuIGBmaWVsZGAgbmFtZSB2YWx1ZSB3aWxsIGJlIGFzc2lnbmVkIHRvIHRoZSBgY29sdW1uTmFtZWAgcHJvcGVydHkuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5OYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgYSBmdW5jdGlvbiB0byBjYWxjdWxhdGUgY3VzdG9tIGFnZ3JlZ2F0ZSB2YWx1ZS4gVGhlIGB0eXBlYCB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIGBjdXN0b21gLiBcbiAgICAgKiBUbyB1c2UgY3VzdG9tIGFnZ3JlZ2F0ZSB2YWx1ZSBpbiB0aGUgdGVtcGxhdGUsIHVzZSB0aGUga2V5IGFzIGAke2N1c3RvbX1gLiBcbiAgICAgKiAqKlRvdGFsIGFnZ3JlZ2F0aW9uKio6IFRoZSBjdXN0b20gZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgd2hvbGUgZGF0YSBhbmQgdGhlIGN1cnJlbnQgYEFnZ3JlZ2F0ZUNvbHVtbmAgb2JqZWN0LiBcbiAgICAgKiAqKkdyb3VwIGFnZ3JlZ2F0aW9uKio6IFRoaXMgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCBncm91cCBkZXRhaWxzIGFuZCB0aGUgYEFnZ3JlZ2F0ZUNvbHVtbmAgb2JqZWN0LlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VzdG9tQWdncmVnYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbHVtbiBuYW1lIHRvIHBlcmZvcm0gYWdncmVnYXRpb24uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWVsZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBGb3JtYXQgaXMgYXBwbGllZCB0byBhIGNhbGN1bGF0ZWQgdmFsdWUgYmVmb3JlIGl0IGlzIGRpc3BsYXllZC4gXG4gICAgICogR2V0cyB0aGUgZm9ybWF0IGZyb20gdGhlIHVzZXIsIHdoaWNoIGNhbiBiZSBzdGFuZGFyZCBvciBjdXN0b20gXG4gICAgICogW2BudW1iZXJgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmcpIFxuICAgICAqIGFuZCBbYGRhdGVgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmctMSkgZm9ybWF0cy5cbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBmb290ZXIgY2VsbCB0ZW1wbGF0ZSBhcyBhIHN0cmluZyBmb3IgdGhlIGFnZ3JlZ2F0ZSBjb2x1bW4uIFxuICAgICAqIFRoZSBgdHlwZWAgbmFtZSBzaG91bGQgYmUgdXNlZCB0byBhY2Nlc3MgYWdncmVnYXRlIHZhbHVlcyBpbnNpZGUgdGhlIHRlbXBsYXRlLlxuICAgICAqIFxuICAgICAqIHslIGNvZGVCbG9jayBzcmM9XCJncmlkL2Zvb3Rlci10ZW1wbGF0ZS1hcGkvaW5kZXgudHNcIiAlfXslIGVuZGNvZGVCbG9jayAlfVxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdmb290ZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEFnZ3JlZ2F0ZUNvbHVtbiBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXRyZWVncmlkPmUtYWdncmVnYXRlcz5lLWFnZ3JlZ2F0ZT5lLWNvbHVtbnMnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oQWdncmVnYXRlQ29sdW1uRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0ZUNvbHVtbnNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8QWdncmVnYXRlQ29sdW1uc0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignY29sdW1ucycpO1xuICAgIH1cbn0iXX0=
@@ -0,0 +1,69 @@
1
+ import { Directive, ContentChildren, ContentChild } from '@angular/core';
2
+ import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
3
+ import { AggregateColumnsDirective } from './aggregate-columns.directive';
4
+ import * as i0 from "@angular/core";
5
+ let input = ['columns', 'showChildSummary'];
6
+ let outputs = [];
7
+ /**
8
+ * `e-aggregate` directive represent a aggregate row of the Angular TreeGrid.
9
+ * It must be contained in a TreeGrid component(`ejs-treegrid`).
10
+ * ```html
11
+ * <ejs-treegrid [dataSource]='data' allowPaging='true' allowSorting='true'>
12
+ * <e-columns>
13
+ * <e-column field='ID' width='100'></e-column>
14
+ * <e-column field='name' headerText='Name' width='100'></e-column>
15
+ * </e-columns>
16
+ * <e-aggregates>
17
+ * <e-aggregate>
18
+ * <e-columns>
19
+ * <e-column field='ID' type='Min'></e-column>
20
+ * </e-columns>
21
+ * </e-aggregate>
22
+ * </e-aggregates>
23
+ * </ejs-treegrid>
24
+ * ```
25
+ */
26
+ export class AggregateDirective extends ComplexBase {
27
+ constructor(viewContainerRef) {
28
+ super();
29
+ this.viewContainerRef = viewContainerRef;
30
+ this.tags = ['columns'];
31
+ setValue('currentInstance', this, this.viewContainerRef);
32
+ this.registerEvents(outputs);
33
+ this.directivePropList = input;
34
+ }
35
+ }
36
+ AggregateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregateDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
37
+ AggregateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AggregateDirective, selector: "ejs-treegrid>e-aggregates>e-aggregate", inputs: { columns: "columns", showChildSummary: "showChildSummary" }, queries: [{ propertyName: "childColumns", first: true, predicate: AggregateColumnsDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregateDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: 'ejs-treegrid>e-aggregates>e-aggregate',
42
+ inputs: input,
43
+ outputs: outputs,
44
+ queries: {
45
+ childColumns: new ContentChild(AggregateColumnsDirective)
46
+ }
47
+ }]
48
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
49
+ /**
50
+ * Aggregate Array Directive
51
+ * @private
52
+ */
53
+ export class AggregatesDirective extends ArrayBase {
54
+ constructor() {
55
+ super('aggregates');
56
+ }
57
+ }
58
+ AggregatesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregatesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
+ AggregatesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AggregatesDirective, selector: "ejs-treegrid>e-aggregates", queries: [{ propertyName: "children", predicate: AggregateDirective }], usesInheritance: true, ngImport: i0 });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AggregatesDirective, decorators: [{
61
+ type: Directive,
62
+ args: [{
63
+ selector: 'ejs-treegrid>e-aggregates',
64
+ queries: {
65
+ children: new ContentChildren(AggregateDirective)
66
+ },
67
+ }]
68
+ }], ctorParameters: function () { return []; } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJlZWdyaWQvYWdncmVnYXRlcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFMUUsSUFBSSxLQUFLLEdBQWEsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUN0RCxJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQVNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUErQjtJQWVuRSxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBWDlDLFNBQUksR0FBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBYWhDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OytHQXBCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2TEFIUSx5QkFBeUI7MkZBR25ELGtCQUFrQjtrQkFSOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUNBQXVDO29CQUNqRCxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLFlBQVksRUFBRSxJQUFJLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztxQkFDNUQ7aUJBQ0o7O0FBd0JEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUE4QjtJQUNuRTtRQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QixDQUFDOztnSEFIUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwwRkFITSxrQkFBa0I7MkZBRzNDLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxPQUFPLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDLGtCQUFrQixDQUFDO3FCQUNwRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cbmltcG9ydCB7IEFnZ3JlZ2F0ZUNvbHVtbnNEaXJlY3RpdmUgfSBmcm9tICcuL2FnZ3JlZ2F0ZS1jb2x1bW5zLmRpcmVjdGl2ZSc7XG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2NvbHVtbnMnLCAnc2hvd0NoaWxkU3VtbWFyeSddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWFnZ3JlZ2F0ZWAgZGlyZWN0aXZlIHJlcHJlc2VudCBhIGFnZ3JlZ2F0ZSByb3cgb2YgdGhlIEFuZ3VsYXIgVHJlZUdyaWQuIFxuICogSXQgbXVzdCBiZSBjb250YWluZWQgaW4gYSBUcmVlR3JpZCBjb21wb25lbnQoYGVqcy10cmVlZ3JpZGApLiBcbiAqIGBgYGh0bWxcbiAqIDxlanMtdHJlZWdyaWQgW2RhdGFTb3VyY2VdPSdkYXRhJyBhbGxvd1BhZ2luZz0ndHJ1ZScgYWxsb3dTb3J0aW5nPSd0cnVlJz4gXG4gKiAgIDxlLWNvbHVtbnM+XG4gKiAgICAgPGUtY29sdW1uIGZpZWxkPSdJRCcgd2lkdGg9JzEwMCc+PC9lLWNvbHVtbj5cbiAqICAgICA8ZS1jb2x1bW4gZmllbGQ9J25hbWUnIGhlYWRlclRleHQ9J05hbWUnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogICA8ZS1hZ2dyZWdhdGVzPlxuICogICAgIDxlLWFnZ3JlZ2F0ZT5cbiAqICAgICAgIDxlLWNvbHVtbnM+XG4gKiAgICAgICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHR5cGU9J01pbic+PC9lLWNvbHVtbj5cbiAqICAgICAgIDwvZS1jb2x1bW5zPlxuICogICAgICA8L2UtYWdncmVnYXRlPlxuICogICAgPC9lLWFnZ3JlZ2F0ZXM+XG4gKiA8L2Vqcy10cmVlZ3JpZD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWFnZ3JlZ2F0ZXM+ZS1hZ2dyZWdhdGUnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZENvbHVtbnM6IG5ldyBDb250ZW50Q2hpbGQoQWdncmVnYXRlQ29sdW1uc0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0ZURpcmVjdGl2ZSBleHRlbmRzIENvbXBsZXhCYXNlPEFnZ3JlZ2F0ZURpcmVjdGl2ZT4ge1xuICAgIHB1YmxpYyBkaXJlY3RpdmVQcm9wTGlzdDogYW55O1xuXHRcbiAgICBwdWJsaWMgY2hpbGRDb2x1bW5zOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWydjb2x1bW5zJ107XG4gICAgLyoqIFxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGFnZ3JlZ2F0ZSBjb2x1bW5zLlxuICAgICAqIEBkZWZhdWx0IFtdXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtbnM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGlzcGxheSB0aGUgY2hpbGRTdW1tYXJ5IGZvciBlYWNoIHBhcmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NoaWxkU3VtbWFyeTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQWdncmVnYXRlIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1hZ2dyZWdhdGVzJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKEFnZ3JlZ2F0ZURpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGVzRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPEFnZ3JlZ2F0ZXNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2FnZ3JlZ2F0ZXMnKTtcbiAgICB9XG59Il19
@@ -0,0 +1,100 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ContentChildren, ContentChild } from '@angular/core';
3
+ import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
4
+ import { Template } from '@syncfusion/ej2-angular-base';
5
+ import { StackedColumnsDirective } from './stacked-column.directive';
6
+ import * as i0 from "@angular/core";
7
+ let input = ['allowEditing', 'allowFiltering', 'allowReordering', 'allowResizing', 'allowSorting', 'clipMode', 'columns', 'commands', 'customAttributes', 'defaultValue', 'disableHtmlEncode', 'displayAsCheckBox', 'edit', 'editTemplate', 'editType', 'field', 'filter', 'filterBarTemplate', 'filterTemplate', 'format', 'formatter', 'freeze', 'headerTemplate', 'headerText', 'headerTextAlign', 'hideAtMedia', 'isFrozen', 'isIdentity', 'isPrimaryKey', 'lockColumn', 'maxWidth', 'minWidth', 'showCheckbox', 'showColumnMenu', 'showInColumnChooser', 'sortComparer', 'template', 'textAlign', 'type', 'uid', 'validationRules', 'valueAccessor', 'visible', 'width'];
8
+ let outputs = [];
9
+ /**
10
+ * `e-column` directive represent a column of the Angular TreeGrid.
11
+ * It must be contained in a TreeGrid component(`ejs-treegrid`).
12
+ * ```html
13
+ * <ejs-treegrid [dataSource]='data' allowPaging='true' allowSorting='true'>
14
+ * <e-columns>
15
+ * <e-column field='ID' width='100'></e-column>
16
+ * <e-column field='name' headerText='Name' width='100'></e-column>
17
+ * </e-columns>
18
+ * </ejs-treegrid>
19
+ * ```
20
+ */
21
+ export class ColumnDirective extends ComplexBase {
22
+ constructor(viewContainerRef) {
23
+ super();
24
+ this.viewContainerRef = viewContainerRef;
25
+ this.tags = ['columns'];
26
+ setValue('currentInstance', this, this.viewContainerRef);
27
+ this.registerEvents(outputs);
28
+ this.directivePropList = input;
29
+ }
30
+ }
31
+ ColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
32
+ ColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ColumnDirective, selector: "ejs-treegrid>e-columns>e-column", inputs: { allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowReordering: "allowReordering", allowResizing: "allowResizing", allowSorting: "allowSorting", clipMode: "clipMode", columns: "columns", commands: "commands", customAttributes: "customAttributes", defaultValue: "defaultValue", disableHtmlEncode: "disableHtmlEncode", displayAsCheckBox: "displayAsCheckBox", edit: "edit", editTemplate: "editTemplate", editType: "editType", field: "field", filter: "filter", filterBarTemplate: "filterBarTemplate", filterTemplate: "filterTemplate", format: "format", formatter: "formatter", freeze: "freeze", headerTemplate: "headerTemplate", headerText: "headerText", headerTextAlign: "headerTextAlign", hideAtMedia: "hideAtMedia", isFrozen: "isFrozen", isIdentity: "isIdentity", isPrimaryKey: "isPrimaryKey", lockColumn: "lockColumn", maxWidth: "maxWidth", minWidth: "minWidth", showCheckbox: "showCheckbox", showColumnMenu: "showColumnMenu", showInColumnChooser: "showInColumnChooser", sortComparer: "sortComparer", template: "template", textAlign: "textAlign", type: "type", uid: "uid", validationRules: "validationRules", valueAccessor: "valueAccessor", visible: "visible", width: "width" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "filter_itemTemplate", first: true, predicate: ["filterItemTemplate"], descendants: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true }, { propertyName: "commandsTemplate", first: true, predicate: ["commandsTemplate"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }, { propertyName: "childColumns", first: true, predicate: StackedColumnsDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
33
+ __decorate([
34
+ Template()
35
+ ], ColumnDirective.prototype, "template", void 0);
36
+ __decorate([
37
+ Template()
38
+ ], ColumnDirective.prototype, "headerTemplate", void 0);
39
+ __decorate([
40
+ Template()
41
+ ], ColumnDirective.prototype, "filter_itemTemplate", void 0);
42
+ __decorate([
43
+ Template()
44
+ ], ColumnDirective.prototype, "filterTemplate", void 0);
45
+ __decorate([
46
+ Template()
47
+ ], ColumnDirective.prototype, "commandsTemplate", void 0);
48
+ __decorate([
49
+ Template()
50
+ ], ColumnDirective.prototype, "editTemplate", void 0);
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnDirective, decorators: [{
52
+ type: Directive,
53
+ args: [{
54
+ selector: 'ejs-treegrid>e-columns>e-column',
55
+ inputs: input,
56
+ outputs: outputs,
57
+ queries: {
58
+ childColumns: new ContentChild(StackedColumnsDirective)
59
+ }
60
+ }]
61
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
62
+ type: ContentChild,
63
+ args: ['template']
64
+ }], headerTemplate: [{
65
+ type: ContentChild,
66
+ args: ['headerTemplate']
67
+ }], filter_itemTemplate: [{
68
+ type: ContentChild,
69
+ args: ['filterItemTemplate']
70
+ }], filterTemplate: [{
71
+ type: ContentChild,
72
+ args: ['filterTemplate']
73
+ }], commandsTemplate: [{
74
+ type: ContentChild,
75
+ args: ['commandsTemplate']
76
+ }], editTemplate: [{
77
+ type: ContentChild,
78
+ args: ['editTemplate']
79
+ }] } });
80
+ /**
81
+ * Column Array Directive
82
+ * @private
83
+ */
84
+ export class ColumnsDirective extends ArrayBase {
85
+ constructor() {
86
+ super('columns');
87
+ }
88
+ }
89
+ ColumnsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
90
+ ColumnsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ColumnsDirective, selector: "ejs-treegrid>e-columns", queries: [{ propertyName: "children", predicate: ColumnDirective }], usesInheritance: true, ngImport: i0 });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnsDirective, decorators: [{
92
+ type: Directive,
93
+ args: [{
94
+ selector: 'ejs-treegrid>e-columns',
95
+ queries: {
96
+ children: new ContentChildren(ColumnDirective)
97
+ },
98
+ }]
99
+ }], ctorParameters: function () { return []; } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJlZWdyaWQvY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVyRSxJQUFJLEtBQUssR0FBYSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4cEIsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7OztHQVdHO0FBU0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBNEI7SUE2VTdELFlBQW9CLGdCQUFpQztRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQURRLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUF6VTlDLFNBQUksR0FBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBMlVoQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs0R0FsVlEsZUFBZTtnR0FBZixlQUFlLHMzREFIVyx1QkFBdUI7QUFnVDFEO0lBREMsUUFBUSxFQUFFO2lEQUNVO0FBUXJCO0lBREMsUUFBUSxFQUFFO3VEQUNnQjtBQUczQjtJQURDLFFBQVEsRUFBRTs0REFDcUI7QUFRaEM7SUFEQyxRQUFRLEVBQUU7dURBQ2dCO0FBRzNCO0lBREMsUUFBUSxFQUFFO3lEQUNrQjtBQVE3QjtJQURDLFFBQVEsRUFBRTtxREFDYzsyRkEzVWhCLGVBQWU7a0JBUjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZLEVBQUUsSUFBSSxZQUFZLENBQUMsdUJBQXVCLENBQUM7cUJBQzFEO2lCQUNKO3VHQThTVSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsVUFBVTtnQkFVakIsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBS3ZCLG1CQUFtQjtzQkFGekIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBVTNCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixnQkFBZ0I7c0JBRnRCLFlBQVk7dUJBQUMsa0JBQWtCO2dCQVV6QixZQUFZO3NCQUZsQixZQUFZO3VCQUFDLGNBQWM7O0FBWWhDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUEyQjtJQUM3RDtRQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixDQUFDOzs2R0FIUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQix1RkFIUyxlQUFlOzJGQUd4QyxnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUM7cUJBQ2pEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBTdGFja2VkQ29sdW1uc0RpcmVjdGl2ZSB9IGZyb20gJy4vc3RhY2tlZC1jb2x1bW4uZGlyZWN0aXZlJztcblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnYWxsb3dFZGl0aW5nJywgJ2FsbG93RmlsdGVyaW5nJywgJ2FsbG93UmVvcmRlcmluZycsICdhbGxvd1Jlc2l6aW5nJywgJ2FsbG93U29ydGluZycsICdjbGlwTW9kZScsICdjb2x1bW5zJywgJ2NvbW1hbmRzJywgJ2N1c3RvbUF0dHJpYnV0ZXMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc2FibGVIdG1sRW5jb2RlJywgJ2Rpc3BsYXlBc0NoZWNrQm94JywgJ2VkaXQnLCAnZWRpdFRlbXBsYXRlJywgJ2VkaXRUeXBlJywgJ2ZpZWxkJywgJ2ZpbHRlcicsICdmaWx0ZXJCYXJUZW1wbGF0ZScsICdmaWx0ZXJUZW1wbGF0ZScsICdmb3JtYXQnLCAnZm9ybWF0dGVyJywgJ2ZyZWV6ZScsICdoZWFkZXJUZW1wbGF0ZScsICdoZWFkZXJUZXh0JywgJ2hlYWRlclRleHRBbGlnbicsICdoaWRlQXRNZWRpYScsICdpc0Zyb3plbicsICdpc0lkZW50aXR5JywgJ2lzUHJpbWFyeUtleScsICdsb2NrQ29sdW1uJywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3Nob3dDaGVja2JveCcsICdzaG93Q29sdW1uTWVudScsICdzaG93SW5Db2x1bW5DaG9vc2VyJywgJ3NvcnRDb21wYXJlcicsICd0ZW1wbGF0ZScsICd0ZXh0QWxpZ24nLCAndHlwZScsICd1aWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlQWNjZXNzb3InLCAndmlzaWJsZScsICd3aWR0aCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWNvbHVtbmAgZGlyZWN0aXZlIHJlcHJlc2VudCBhIGNvbHVtbiBvZiB0aGUgQW5ndWxhciBUcmVlR3JpZC4gXG4gKiBJdCBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIFRyZWVHcmlkIGNvbXBvbmVudChgZWpzLXRyZWVncmlkYCkuIFxuICogYGBgaHRtbFxuICogPGVqcy10cmVlZ3JpZCBbZGF0YVNvdXJjZV09J2RhdGEnIGFsbG93UGFnaW5nPSd0cnVlJyBhbGxvd1NvcnRpbmc9J3RydWUnPiBcbiAqICAgPGUtY29sdW1ucz5cbiAqICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgICA8ZS1jb2x1bW4gZmllbGQ9J25hbWUnIGhlYWRlclRleHQ9J05hbWUnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogPC9lanMtdHJlZWdyaWQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1jb2x1bW5zPmUtY29sdW1uJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRDb2x1bW5zOiBuZXcgQ29udGVudENoaWxkKFN0YWNrZWRDb2x1bW5zRGlyZWN0aXZlKVxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8Q29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZENvbHVtbnM6IGFueTtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ2NvbHVtbnMnXTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dFZGl0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBmaWx0ZXJhYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dGaWx0ZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVvcmRlcmluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgYWxsb3dSZXNpemluZ2Agc2V0IHRvIGZhbHNlLCBpdCBkaXNhYmxlcyByZXNpemUgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlc2l6aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93U29ydGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZSBcbiAgICAgKiAgXG4gICAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xpcE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVXNlZCB0byByZW5kZXIgbXVsdGlwbGUgaGVhZGVyIHJvd3Moc3RhY2tlZCBoZWFkZXJzKSBvbiBUcmVlR3JpZCBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIGBjb21tYW5kc2AgcHJvdmlkZXMgYW4gb3B0aW9uIHRvIGRpc3BsYXkgY29tbWFuZCBidXR0b25zIGluIGV2ZXJ5IGNlbGwuIFxuICAgICAqIFRoZSBhdmFpbGFibGUgYnVpbHQtaW4gY29tbWFuZCBidXR0b25zIGFyZSBcbiAgICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuIFxuICAgICAqICogRGVsZXRlIC0gRGVsZXRlIHRoZSByZWNvcmQuIFxuICAgICAqICogU2F2ZSAtIFNhdmUgdGhlIHJlY29yZC4gXG4gICAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXG4gICAgICogXG4gICAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgICAqYGBgaHRtbFxuICAgICAqPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiIGNsYXNzPVwiY3NzU3R5bGVzXCI+XG4gICAgICouZGV0YWlscy1pY29uOmJlZm9yZVxuICAgICAqe1xuICAgICAqICAgY29udGVudDpcIlxcZTc0ZFwiO1xuICAgICAqfVxuICAgICAqPC9zdHlsZT5cbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICp2YXIgZ3JpZE9iaiA9IG5ldyBUcmVlR3JpZCh7XG4gICAgICpkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXG4gICAgICpjb2x1bW5zIDogW1xuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lcklEJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIElEJyB9LFxuICAgICAqIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcbiAgICAgKiB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAgICpdXG4gICAgICpncmlkT2JqLmFwcGVuZFRvKFwiI1RyZWVHcmlkXCIpO1xuICAgICAqYGBgXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tbWFuZHM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIENTUyBzdHlsZXMgYW5kIGF0dHJpYnV0ZXMgb2YgdGhlIGNvbnRlbnQgY2VsbHMgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbiBjYW4gYmUgY3VzdG9taXplZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUF0dHJpYnV0ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIFRyZWVHcmlkLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNhYmxlSHRtbEVuY29kZWAgaXMgc2V0IHRvIHRydWUsIGl0IGVuY29kZXMgdGhlIEhUTUwgb2YgdGhlIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVIdG1sRW5jb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGRpc3BsYXlBc0NoZWNrQm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGBJRWRpdENlbGxgIG9iamVjdCB0byBjdXN0b21pemUgZGVmYXVsdCBlZGl0IGNlbGwuXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGNvbXBvbmVudCBmb3IgZWRpdGluZy5cbiAgICAgKiBAZGVmYXVsdCAnc3RyaW5nZWRpdCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdFR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuIFxuICAgICAqIFRoZSBib3VuZGVkIGNvbHVtbnMgY2FuIGJlIHNvcnQsIGZpbHRlciBldGMuLCBcbiAgICAgKiBUaGUgYGZpZWxkYCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIFxuICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhbiBhbHBoYWJldCBhbmQgc2hvdWxkIG5vdCBjb250YWluIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqICBEZWZpbmVzIHRoZSBmaWx0ZXIgb3B0aW9ucyB0byBjdXN0b21pemUgZmlsdGVyaW5nIGZvciB0aGUgcGFydGljdWxhciBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBmaWx0ZXJCYXJUZW1wbGF0ZWAgaXMgdXNlZCB0byBhZGQgYSBjdXN0b20gY29tcG9uZW50IGluc3RlYWQgb2YgZGVmYXVsdCBpbnB1dCBjb21wb25lbnQgZm9yIGZpbHRlciBiYXIuIFxuICAgICAqIEl0IGhhdmUgY3JlYXRlIGFuZCByZWFkIGZ1bmN0aW9ucy4gXG4gICAgICogKiBjcmVhdGU6IEl0IGlzIHVzZWQgZm9yIGNyZWF0aW5nIGN1c3RvbSBjb21wb25lbnRzLiBcbiAgICAgKiAqIHJlYWQ6IEl0IGlzIHVzZWQgdG8gcGVyZm9ybSBjdXN0b20gZmlsdGVyIGFjdGlvbi5cbiAgICAgKiBcbiAgICAgKiBgYGBodG1sXG4gICAgICo8ZGl2IGlkPVwiVHJlZUdyaWRcIj48L2Rpdj5cbiAgICAgKmBgYFxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqbGV0IGdyaWRPYmo6IFRyZWVHcmlkID0gbmV3IFRyZWVHcmlkKHtcbiAgICAgKmRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXG4gICAgICpjb2x1bW5zOiBbXG4gICAgICogIHsgZmllbGQ6ICdPcmRlcklEJywgaGVhZGVyVGV4dDogJ09yZGVyIElEJyB9LFxuICAgICAqICB7XG4gICAgICogICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XG4gICAgICogICAgICAgIGNyZWF0ZTogKGFyZ3M6IHsgZWxlbWVudDogRWxlbWVudCwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xuICAgICAqICAgICAgICAgICAgIGxldCBpbnB1dDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICogICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XG4gICAgICogICAgICAgICAgICAgaW5wdXQudHlwZSA9ICd0ZXh0JztcbiAgICAgKiAgICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICogICAgICAgIH0sXG4gICAgICogICAgICAgIHdyaXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICBhcmdzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBhcmdzLmNvbHVtbi5maWx0ZXJCYXJUZW1wbGF0ZS5yZWFkIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAqICAgICAgICB9LFxuICAgICAqICAgICAgICByZWFkOiAoYXJnczogeyBlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBjb2x1bW5JbmRleDogbnVtYmVyLCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICBncmlkT2JqLmZpbHRlckJ5Q29sdW1uKGFyZ3MuZWxlbWVudC5pZCwgJ2VxdWFsJywgYXJncy5lbGVtZW50LnZhbHVlKTtcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgfVxuICAgICAqIH1dLFxuICAgICAqICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxuICAgICAqfSk7XG4gICAgICpncmlkT2JqLmFwcGVuZFRvKCcjVHJlZUdyaWQnKTtcbiAgICAgKmBgYFxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlckJhclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuIFxuICAgICAqIEdldHMgdGhlIGZvcm1hdCBmcm9tIHRoZSB1c2VyIHdoaWNoIGNhbiBiZSBzdGFuZGFyZCBvciBjdXN0b20gXG4gICAgICogW2BudW1iZXJgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmcpIFxuICAgICAqIGFuZCBbYGRhdGVgXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbi8jc3VwcG9ydGVkLWZvcm1hdC1zdHJpbmctMSkgZm9ybWF0cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgcHVibGljIGZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtZXRob2Qgd2hpY2ggaXMgdXNlZCB0byBhY2hpZXZlIGN1c3RvbSBmb3JtYXR0aW5nIGZyb20gYW4gZXh0ZXJuYWwgZnVuY3Rpb24uIFxuICAgICAqIFRoaXMgZnVuY3Rpb24gdHJpZ2dlcnMgYmVmb3JlIHJlbmRlcmluZyBvZiBlYWNoIGNlbGwuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcbiAgICAgKiBAZGVmYXVsdCBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb24uTm9uZVxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5GcmVlemVEaXJlY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgZnJlZXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGhlYWRlciB0ZXh0IG9mIGNvbHVtbiB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgaW4gY29sdW1uIGhlYWRlci4gXG4gICAgICogSWYgYGhlYWRlclRleHRgIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGZpZWxkIG5hbWUgdmFsdWUgd2lsbCBiZSBhc3NpZ25lZCB0byBoZWFkZXIgdGV4dC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZSB0aGUgYWxpZ25tZW50IG9mIGNvbHVtbiBoZWFkZXIgd2hpY2ggaXMgdXNlZCB0byBhbGlnbiB0aGUgdGV4dCBvZiBjb2x1bW4gaGVhZGVyLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBpc2VudW1lcmF0aW9uIHRydWVcbiAgICAgKiBAYXNwdHlwZSBTeW5jZnVzaW9uLkVKMi5Hcmlkcy5UZXh0QWxpZ25cbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyVGV4dEFsaWduOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIENvbHVtbiB2aXNpYmlsaXR5IGNhbiBjaGFuZ2UgYmFzZWQgb24gW2BNZWRpYSBRdWVyaWVzYF0oaHR0cDovL2Nzc21lZGlhcXVlcmllcy5jb20vd2hhdC1hcmUtY3NzLW1lZGlhLXF1ZXJpZXMuaHRtbCkuIFxuICAgICAqIGBoaWRlQXRNZWRpYWAgYWNjZXB0cyBvbmx5IHZhbGlkIE1lZGlhIFF1ZXJpZXMuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZUF0TWVkaWE6IGFueTtcbiAgICAvKiogXG4gICAgICogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBmcmVlemUgc2VsZWN0ZWQgY29sdW1ucyBpbiBncmlkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzRnJvemVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc0lkZW50aXR5YCBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiB0aGlzIGNvbHVtbiBpcyBjb25zaWRlcmVkIGFzIGlkZW50aXR5IGNvbHVtbi5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc0lkZW50aXR5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBpc1ByaW1hcnlLZXlgIGlzIHNldCB0byB0cnVlLCBjb25zaWRlcnMgdGhpcyBjb2x1bW4gYXMgdGhlIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5S2V5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBsb2NrQ29sdW1uYCBzZXQgdG8gdHJ1ZSwgdGhlbiBpdCBkaXNhYmxlcyBSZW9yZGVyaW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIFRoZSBsb2NrZWQgY29sdW1uIHdpbGwgYmUgbW92ZWQgdG8gZmlyc3QgcG9zaXRpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9ja0NvbHVtbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UsIHdoaWNoIHdpbGwgcmVzdHJpY3QgcmVzaXppbmcgYmV5b25kIHRoaXMgcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF4V2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIG1pbldpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93Q2hlY2tib3hgIHNldCB0byB0cnVlLCB0aGVuIHRoZSBjaGVja2JveGVzIHdpbGwgYmUgZGlzcGxheWVkIGluIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDaGVja2JveDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBgc2hvd0NvbHVtbk1lbnVgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlIHRoZSBjb2x1bW4gbWVudSBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLiBcbiAgICAgKiBCeSBkZWZhdWx0IGNvbHVtbiBtZW51IHdpbGwgc2hvdyBmb3IgYWxsIGNvbHVtbnNcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDb2x1bW5NZW51OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGBzaG93SW5Db2x1bW5DaG9vc2VyYCBzZXQgdG8gZmFsc2UsIHRoZW4gaGlkZSB0aGUgcGFydGljdWxhciBjb2x1bW4gaW4gY29sdW1uIGNob29zZXIuIFxuICAgICAqICBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQgaW4gY29sdW1uIENob29zZXIuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93SW5Db2x1bW5DaG9vc2VyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNvcnQgY29tcGFyZXIgcHJvcGVydHkuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydENvbXBhcmVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGFsaWdubWVudCBvZiB0aGUgY29sdW1uIGluIGJvdGggaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxuICAgICAqIEBkZWZhdWx0IFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnbi5MZWZ0XG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyB0ZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyB1aWQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBydWxlcyB0byB2YWxpZGF0ZSBkYXRhIGJlZm9yZSBjcmVhdGluZyBhbmQgdXBkYXRpbmcuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0aW9uUnVsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbWV0aG9kIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGNlbGwgdmFsdWVzIGZyb20gZXh0ZXJuYWwgZnVuY3Rpb24gYW5kIGRpc3BsYXkgdGhpcyBvbiBlYWNoIGNlbGwgcmVuZGVyZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWx1ZUFjY2Vzc29yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIGB2aXNpYmxlYCBpcyBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi4gQnkgZGVmYXVsdCwgY29sdW1ucyBhcmUgZGlzcGxheWVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIHdpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbHVtbiB0ZW1wbGF0ZSB0aGF0IHJlbmRlcnMgY3VzdG9taXplZCBlbGVtZW50IGluIGVhY2ggY2VsbCBvZiB0aGUgY29sdW1uLiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciBbdGVtcGxhdGUgc3RyaW5nXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi90ZW1wbGF0ZS1lbmdpbmUvKSBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBoZWFkZXIgdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZCBjdXN0b21pemVkIGVsZW1lbnQgaW4gdGhlIGNvbHVtbiBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlckl0ZW1UZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZmlsdGVyX2l0ZW1UZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBmaWx0ZXIgdGVtcGxhdGUvVUkgdGhhdCBpcyB1c2VkIGFzIGZpbHRlciBmb3IgYSBwYXJ0aWN1bGFyIGNvbHVtbi4gXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2NvbW1hbmRzVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGNvbW1hbmRzVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY2VsbCBlZGl0IHRlbXBsYXRlIHRoYXQgdXNlZCBhcyBlZGl0b3IgZm9yIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRlbXBsYXRlIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogQGFzcGlnbm9yZSBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdlZGl0VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGVkaXRUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29sdW1uIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1jb2x1bW5zJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKENvbHVtbkRpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5zRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPENvbHVtbnNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2NvbHVtbnMnKTtcbiAgICB9XG59Il19