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

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 (129) hide show
  1. package/CHANGELOG.md +14 -65
  2. package/README.md +15 -7
  3. package/esm2020/public_api.mjs +2 -0
  4. package/esm2020/src/index.mjs +9 -0
  5. package/esm2020/src/treegrid/aggregate-columns.directive.mjs +72 -0
  6. package/esm2020/src/treegrid/aggregates.directive.mjs +69 -0
  7. package/esm2020/src/treegrid/columns.directive.mjs +100 -0
  8. package/esm2020/src/treegrid/stacked-column.directive.mjs +100 -0
  9. package/esm2020/src/treegrid/treegrid-all.module.mjs +89 -0
  10. package/esm2020/src/treegrid/treegrid.component.mjs +271 -0
  11. package/esm2020/src/treegrid/treegrid.module.mjs +61 -0
  12. package/esm2020/syncfusion-ej2-angular-treegrid.mjs +5 -0
  13. package/fesm2015/syncfusion-ej2-angular-treegrid.mjs +734 -0
  14. package/fesm2015/syncfusion-ej2-angular-treegrid.mjs.map +1 -0
  15. package/fesm2020/syncfusion-ej2-angular-treegrid.mjs +734 -0
  16. package/fesm2020/syncfusion-ej2-angular-treegrid.mjs.map +1 -0
  17. package/package.json +44 -47
  18. package/src/treegrid/aggregate-columns.directive.d.ts +31 -28
  19. package/src/treegrid/aggregates.directive.d.ts +7 -2
  20. package/src/treegrid/columns.directive.d.ts +70 -77
  21. package/src/treegrid/stacked-column.directive.d.ts +70 -77
  22. package/src/treegrid/treegrid-all.module.d.ts +6 -0
  23. package/src/treegrid/treegrid.component.d.ts +23 -1
  24. package/src/treegrid/treegrid.module.d.ts +10 -0
  25. package/styles/bds-lite.css +1 -0
  26. package/styles/bds-lite.scss +1 -0
  27. package/styles/bds.css +1 -0
  28. package/styles/bds.scss +1 -0
  29. package/styles/bootstrap-dark-lite.css +1 -0
  30. package/styles/bootstrap-dark-lite.scss +1 -0
  31. package/styles/bootstrap-dark.scss +1 -1
  32. package/styles/bootstrap-lite.css +1 -0
  33. package/styles/bootstrap-lite.scss +1 -0
  34. package/styles/bootstrap.scss +1 -1
  35. package/styles/bootstrap4-lite.css +1 -0
  36. package/styles/bootstrap4-lite.scss +1 -0
  37. package/styles/bootstrap4.scss +1 -1
  38. package/styles/bootstrap5-dark-lite.css +1 -0
  39. package/styles/bootstrap5-dark-lite.scss +1 -0
  40. package/styles/bootstrap5-dark.scss +1 -1
  41. package/styles/bootstrap5-lite.css +1 -0
  42. package/styles/bootstrap5-lite.scss +1 -0
  43. package/styles/bootstrap5.3-lite.css +1 -0
  44. package/styles/bootstrap5.3-lite.scss +1 -0
  45. package/styles/bootstrap5.3.css +1 -0
  46. package/styles/bootstrap5.3.scss +1 -0
  47. package/styles/bootstrap5.scss +1 -1
  48. package/styles/fabric-dark-lite.css +1 -0
  49. package/styles/fabric-dark-lite.scss +1 -0
  50. package/styles/fabric-dark.scss +1 -1
  51. package/styles/fabric-lite.css +1 -0
  52. package/styles/fabric-lite.scss +1 -0
  53. package/styles/fabric.scss +1 -1
  54. package/styles/fluent-dark-lite.css +1 -0
  55. package/styles/fluent-dark-lite.scss +1 -0
  56. package/styles/fluent-dark.scss +1 -1
  57. package/styles/fluent-lite.css +1 -0
  58. package/styles/fluent-lite.scss +1 -0
  59. package/styles/fluent.scss +1 -1
  60. package/styles/fluent2-lite.css +1 -0
  61. package/styles/fluent2-lite.scss +1 -0
  62. package/styles/fluent2.css +1 -0
  63. package/styles/fluent2.scss +1 -0
  64. package/styles/highcontrast-light-lite.css +1 -0
  65. package/styles/highcontrast-light-lite.scss +1 -0
  66. package/styles/highcontrast-light.scss +1 -1
  67. package/styles/highcontrast-lite.css +1 -0
  68. package/styles/highcontrast-lite.scss +1 -0
  69. package/styles/highcontrast.scss +1 -1
  70. package/styles/material-dark-lite.css +1 -0
  71. package/styles/material-dark-lite.scss +1 -0
  72. package/styles/material-dark.scss +1 -1
  73. package/styles/material-lite.css +1 -0
  74. package/styles/material-lite.scss +1 -0
  75. package/styles/material.scss +1 -1
  76. package/styles/material3-dark-lite.css +1 -0
  77. package/styles/material3-dark-lite.scss +1 -0
  78. package/styles/material3-dark.scss +1 -2
  79. package/styles/material3-lite.css +1 -0
  80. package/styles/material3-lite.scss +1 -0
  81. package/styles/material3.scss +1 -2
  82. package/styles/tailwind-dark-lite.css +1 -0
  83. package/styles/tailwind-dark-lite.scss +1 -0
  84. package/styles/tailwind-dark.scss +1 -1
  85. package/styles/tailwind-lite.css +1 -0
  86. package/styles/tailwind-lite.scss +1 -0
  87. package/styles/tailwind.scss +1 -1
  88. package/styles/tailwind3-lite.css +1 -0
  89. package/styles/tailwind3-lite.scss +1 -0
  90. package/styles/tailwind3.css +1 -0
  91. package/styles/tailwind3.scss +1 -0
  92. package/styles/treegrid/bds.css +1 -0
  93. package/styles/treegrid/bds.scss +1 -0
  94. package/styles/treegrid/bootstrap-dark.scss +1 -1
  95. package/styles/treegrid/bootstrap.scss +1 -1
  96. package/styles/treegrid/bootstrap4.scss +1 -1
  97. package/styles/treegrid/bootstrap5-dark.scss +1 -1
  98. package/styles/treegrid/bootstrap5.3.css +1 -0
  99. package/styles/treegrid/bootstrap5.3.scss +1 -0
  100. package/styles/treegrid/bootstrap5.scss +1 -1
  101. package/styles/treegrid/fabric-dark.scss +1 -1
  102. package/styles/treegrid/fabric.scss +1 -1
  103. package/styles/treegrid/fluent-dark.scss +1 -1
  104. package/styles/treegrid/fluent.scss +1 -1
  105. package/styles/treegrid/fluent2.css +1 -0
  106. package/styles/treegrid/fluent2.scss +1 -0
  107. package/styles/treegrid/highcontrast-light.scss +1 -1
  108. package/styles/treegrid/highcontrast.scss +1 -1
  109. package/styles/treegrid/material-dark.scss +1 -1
  110. package/styles/treegrid/material.scss +1 -1
  111. package/styles/treegrid/material3-dark.scss +1 -2
  112. package/styles/treegrid/material3.scss +1 -2
  113. package/styles/treegrid/tailwind-dark.scss +1 -1
  114. package/styles/treegrid/tailwind.scss +1 -1
  115. package/styles/treegrid/tailwind3.css +1 -0
  116. package/styles/treegrid/tailwind3.scss +1 -0
  117. package/syncfusion-ej2-angular-treegrid.d.ts +5 -0
  118. package/@syncfusion/ej2-angular-treegrid.es5.js +0 -798
  119. package/@syncfusion/ej2-angular-treegrid.es5.js.map +0 -1
  120. package/@syncfusion/ej2-angular-treegrid.js +0 -748
  121. package/@syncfusion/ej2-angular-treegrid.js.map +0 -1
  122. package/dist/ej2-angular-treegrid.umd.js +0 -979
  123. package/dist/ej2-angular-treegrid.umd.js.map +0 -1
  124. package/dist/ej2-angular-treegrid.umd.min.js +0 -11
  125. package/dist/ej2-angular-treegrid.umd.min.js.map +0 -1
  126. package/ej2-angular-treegrid.d.ts +0 -5
  127. package/ej2-angular-treegrid.metadata.json +0 -1
  128. package/license +0 -10
  129. package/postinstall/tagchange.js +0 -18
package/CHANGELOG.md CHANGED
@@ -6,66 +6,21 @@
6
6
 
7
7
  #### Bug Fixes
8
8
 
9
- - `#I558418` - Resolved data re-rendering on scrolling up in virtualization.
10
- - `#F187000` - Nested parent remains the expanded property when its root parent is collapsed in remote data with loadChildOnDemand.
11
- - `#I572093` - `onclick` event of button bound properly while creating a button component in treegrid with HtmlEncode enabled.
9
+ - `#F71755` - Fixed an error that occurred when binding the action failure event with frozen columns in the Tree Grid.
12
10
 
13
- ## 25.1.38 (2024-04-02)
14
-
15
- ### Tree Grid
16
-
17
- #### Bug Fixes
18
-
19
- - `#I560767` - Resolved exception on initial rendering with column template in remote data.
20
-
21
- ## 25.1.37 (2024-03-26)
22
-
23
- ### Tree Grid
24
-
25
- #### Bug Fixes
26
-
27
- - `#F187000` - Resolved exception when the dataSource and the columns were not defined.
28
- - `#I560889` - Added dropPosition in `RowDragEventArgs` of `rowDrop` event.
29
- - `#I567688` - Resolved exception on refreshing the browser when persistence enabled.
30
-
31
- ## 25.1.35 (2024-03-15)
32
-
33
- ### Tree Grid
34
-
35
- #### Bug Fixes
36
-
37
- - `#F50891` - Fixed issue where react template disappears in tree grid column while using `useState()`.
38
-
39
- ## 23.1.36 (2022-09-15)
11
+ ## 32.1.19 (2025-12-16)
40
12
 
41
13
  ### Tree Grid
42
14
 
43
15
  #### Features
44
16
 
45
- - `#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).
46
- - 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.
17
+ - Introduced sticky header support in the Tree Grid, allowing column headers to stay fixed during scrolling. This improves navigation and readability in large hierarchical data views. Explore the demo [here](https://ej2.syncfusion.com/demos/#/tailwind3/tree-grid/sticky-header.html).
47
18
 
48
- - Provided support for inline editing with virtualization enabled. Please find the demo [here](https://ej2.syncfusion.com/angular/demos/#/bootstrap5/treegrid/virtual-scrolling).
49
- - `#I323425`, `#I332700`, `#I344742`, `#I375307` - Provided support for frozen column with virtualization enabled.
50
- - `#F166825` - Provided support for infinite scrolling with observable binding.
19
+ - Enhanced support for `LoadChildOnDemand` in the Tree Grid with remote data binding and virtual scrolling. This improvement enables efficient, on-demand retrieval of child records, ensuring smoother performance when working with large hierarchical datasets.
51
20
 
52
- #### Breaking Changes
21
+ - Introduced sticky header support in the Tree Grid, allowing column headers to stay fixed during scrolling. This improves navigation and readability in large hierarchical data views. Explore the demo [here](https://ej2.syncfusion.com/angular/demos/#/tailwind3/treegrid/stickyheader).
53
22
 
54
- - 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.
55
-
56
- | Removed methods | Suggested to use alternative methods |
57
- |---|---|
58
- | `getMoavableRows`, `getFrozenRightRows` | `getRows` |
59
- | `getMovableRowByIndex`, `getFrozenRowByIndex`, `getFrozenRightRowByIndex` | `getRowByIndex` |
60
- | `getMovableCellFromIndex`, `getFrozenRightCellFromIndex` | `getCellFromIndex` |
61
- | `getMovableDataRows`, `getFrozenRightDataRows`, `getFrozenDataRows` | `getDataRows` |
62
- | `getAllMovableDataRows`, `getAllFrozenDataRows`, `getAllFrozenRightDataRows` | `getAllDataRows` |
63
- | `getMovableColumnHeaderByIndex`, `getFrozenRightColumnHeaderByIndex`, `getFrozenLeftColumnHeaderByIndex` | `getColumnHeaderByIndex` |
64
- | `getFrozenRightHeader`, `getMovableHeader` | `getHeaderContent` |
65
- | `getFrozenRightRowsObject`, `getMovableRwsObject` | `getRowsObject` |
66
- | `getFrozenRightHeaderTbody`, `getMovableHeaderTbody`, `getFrozenHeaderTbody` | `getContent().querySelector(‘tbody’)` |
67
- | `getFrozenLeftContentTbody`, `getFrozenRightContentTbody`, `getMovableContentTbody` | `getHeaderContent().querySelector(‘tbody’)` |
68
- | `getFrozenRightContent`, `getMovableContent` | `getContent` |
23
+ - Enhanced support for `LoadChildOnDemand` in the Tree Grid with remote data binding and virtual scrolling. This improvement enables efficient, on-demand retrieval of child records, ensuring smoother performance when working with large hierarchical datasets.
69
24
 
70
25
  ## 20.2.36 (2022-06-30)
71
26
 
@@ -167,12 +122,12 @@
167
122
 
168
123
  - 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,
169
124
 
170
- | `Properties` | `Type` |
171
- |---|---|
172
- | `data` | `Object or Object[]` |
173
- | `rowIndex` | `number` |
174
- | `rowIndexes` | `number[]` |
175
- | `row` | `Element or Element[]` |
125
+ `Properties` |`Type`
126
+ -----|-----
127
+ `data` | `Object or Object[]`
128
+ `rowIndex` | `number`
129
+ `rowIndexes` | `number[]`
130
+ `row` | `Element or Element[]`
176
131
 
177
132
  ## 17.4.39 (2019-12-17)
178
133
 
@@ -238,14 +193,8 @@
238
193
  #### Bug Fixes
239
194
 
240
195
  - Expanding and Collapsing records is working fine when `pageSizeMode` is set as `All`.
241
- - `expandAtLevel`, `collapseAtLevel`, `expandAll` and `collapseAll` methods are working fine when `pageSizeMode` is set as `All`.
242
-
243
-
244
- - `actionBegin`, `actionComplete` and `actionFailure` events are triggered properly.
245
- - Additional parameters that are added using the `query` property of TreeGrid are passed to the server side when a parent record is expanded.
246
-
247
-
248
- ## 19.1.54 (2021-03-30)
196
+ - `expandAtLevel`, `collapseAtLevel`, `expandAll` and `collapseAll` methods are working fine when `pageSizeMode` is set as `All`.- `actionBegin`, `actionComplete` and `actionFailure` events are triggered properly.
197
+ - 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)
249
198
 
250
199
  ### Tree Grid
251
200
 
package/README.md CHANGED
@@ -14,7 +14,7 @@ The [Angular TreeGrid](https://www.syncfusion.com/angular-components/angular-tre
14
14
  <p align="center">
15
15
  Trusted by the world's leading companies
16
16
  <a href="https://www.syncfusion.com">
17
- <img src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/syncfusion/syncfusion-trusted-companies.webp" alt="Bootstrap logo">
17
+ <img src="https://ej2.syncfusion.com/home/images/trusted_companies.png" alt="Bootstrap logo">
18
18
  </a>
19
19
  </p>
20
20
 
@@ -35,9 +35,9 @@ ng new my-app
35
35
  cd my-app
36
36
  ```
37
37
 
38
- ### Adding Syncfusion Tree Grid package
38
+ ### Adding Syncfusion<sup>®</sup> Tree Grid package
39
39
 
40
- All Syncfusion angular packages are published in [npmjs.com](https://www.npmjs.com/~syncfusionorg) registry. To install angular tree grid package, use the following command.
40
+ All Syncfusion<sup>®</sup> angular packages are published in [npmjs.com](https://www.npmjs.com/~syncfusionorg) registry. To install angular tree grid package, use the following command.
41
41
 
42
42
  ```bash
43
43
  ng add @syncfusion/ej2-angular-treegrid
@@ -47,13 +47,13 @@ The above command does the below configuration to your Angular app.
47
47
 
48
48
  * Adds `@syncfusion/ej2-angular-treegrid` package and its peer dependencies to your `package.json` file.
49
49
  * Imports the `TreeGridModule` in your application module `app.module.ts`.
50
- * Registers the Syncfusion UI default theme (material) in the `angular.json` file.
50
+ * Registers the Syncfusion<sup>®</sup> UI default theme (material) in the `angular.json` file.
51
51
 
52
- This makes it easy to add the Syncfusion Angular TreeGrid module to your project and start using it in your application.
52
+ This makes it easy to add the Syncfusion<sup>®</sup> Angular TreeGrid module to your project and start using it in your application.
53
53
 
54
54
  ### Add Tree Grid Component
55
55
 
56
- In **src/app/app.component.ts**, use `<ejs-treegrid>` selector in `template` attribute of `@Component` directive to render the Syncfusion Angular TreeGrid component.
56
+ In **src/app/app.component.ts**, use `<ejs-treegrid>` selector in `template` attribute of `@Component` directive to render the Syncfusion<sup>®</sup> Angular TreeGrid component.
57
57
 
58
58
  ```typescript
59
59
  import { Component, OnInit } from '@angular/core';
@@ -124,6 +124,14 @@ TreeGrid component is also offered in the following list of frameworks.
124
124
  * [RTL support](https://ej2.syncfusion.com/angular/documentation/treegrid/global-local/#right-to-left-rtl): Provides the right-to-left mode which aligns content in the TreeGrid component from right to left. This improves user experience and accessibility for those who work with RTL languages like Hebrew and Arabic.
125
125
  * [Localization](https://ej2.syncfusion.com/angular/documentation/treegrid/global-local/#localization): Provides inherent support to localize the UI.
126
126
 
127
+ ## Resources
128
+
129
+ * [Documentation](https://ej2.syncfusion.com/angular/documentation/treegrid/overview)
130
+ * [Theme Studio](https://ej2.syncfusion.com/themestudio/)
131
+ * [What's New](https://www.syncfusion.com/products/whatsnew/angular?utm_medium=listing&utm_source=github)
132
+ * [Road Map](https://www.syncfusion.com/products/roadmap/angular)
133
+ * [E-Books](https://www.syncfusion.com/succinctly-free-ebooks?searchkey=angular&type=all)
134
+
127
135
  ## Support
128
136
 
129
137
  Product support is available through the following mediums.
@@ -140,7 +148,7 @@ Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-componen
140
148
 
141
149
  ## License and copyright
142
150
 
143
- > This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for 80+ [Angular UI components](https://www.syncfusion.com/angular-components), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).
151
+ > This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for 140+ [Angular UI components](https://www.syncfusion.com/angular-components), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).
144
152
 
145
153
  > A free community [license](https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
146
154
 
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLWNvbHVtbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyZWVncmlkL2FnZ3JlZ2F0ZS1jb2x1bW5zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckcsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQVNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxXQUFxQztJQThEL0UsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOztxSEFuRVEsd0JBQXdCO3lHQUF4Qix3QkFBd0I7QUE0RGpDO0lBREMsUUFBUSxFQUFFO2dFQUNnQjsyRkE1RGxCLHdCQUF3QjtrQkFScEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMERBQTBEO29CQUNwRSxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7dUdBNkRVLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCOztBQVlsQzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsU0FBb0M7SUFDL0U7UUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7c0hBSFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsZ0hBSEEsd0JBQXdCOzJGQUdqRCx5QkFBeUI7a0JBTnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlEQUFpRDtvQkFDM0QsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDMUQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydjb2x1bW5OYW1lJywgJ2N1c3RvbUFnZ3JlZ2F0ZScsICdmaWVsZCcsICdmb290ZXJUZW1wbGF0ZScsICdmb3JtYXQnLCAndHlwZSddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG4vKipcbiAqIGBlLWFnZ3JlZ2F0ZS0+ZS1jb2x1bW5gIGRpcmVjdGl2ZSByZXByZXNlbnQgYSBhZ2dyZWdhdGUgY29sdW1uIG9mIHRoZSBBbmd1bGFyIFRyZWVHcmlkLiBcbiAqIGBgYGh0bWxcbiAqIDxlanMtdHJlZWdyaWQgW2RhdGFTb3VyY2VdPSdkYXRhJyBhbGxvd1BhZ2luZz0ndHJ1ZScgYWxsb3dTb3J0aW5nPSd0cnVlJz4gXG4gKiAgIDxlLWNvbHVtbnM+XG4gKiAgICAgPGUtY29sdW1uIGZpZWxkPSdJRCcgd2lkdGg9JzEwMCc+PC9lLWNvbHVtbj5cbiAqICAgICA8ZS1jb2x1bW4gZmllbGQ9J25hbWUnIGhlYWRlclRleHQ9J05hbWUnIHdpZHRoPScxMDAnPjwvZS1jb2x1bW4+XG4gKiAgIDwvZS1jb2x1bW5zPlxuICogICA8ZS1hZ2dyZWdhdGVzPlxuICogICAgIDxlLWFnZ3JlZ2F0ZT5cbiAqICAgICAgIDxlLWNvbHVtbnM+XG4gKiAgICAgICAgIDxlLWNvbHVtbiBmaWVsZD0nSUQnIHR5cGU9J01pbic+PC9lLWNvbHVtbj5cbiAqICAgICAgIDwvZS1jb2x1bW5zPlxuICogICAgICA8L2UtYWdncmVnYXRlPlxuICogICAgPC9lLWFnZ3JlZ2F0ZXM+XG4gKiA8L2Vqcy10cmVlZ3JpZD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWFnZ3JlZ2F0ZXM+ZS1hZ2dyZWdhdGU+ZS1jb2x1bW5zPmUtY29sdW1uJyxcbiAgICBpbnB1dHM6IGlucHV0LFxuICAgIG91dHB1dHM6IG91dHB1dHMsICAgIFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlQ29sdW1uRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8QWdncmVnYXRlQ29sdW1uRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYWdncmVnYXRlIHR5cGUocykgZm9yIGEgcGFydGljdWxhciBjb2x1bW4uIFxuICAgICAqIFRvIGFwcGx5IG11bHRpcGxlIGFnZ3JlZ2F0ZXMgdG8gYSBzaW5nbGUgY29sdW1uLCBzcGVjaWZ5IHRoZSBgdHlwZWAgYXMgYW4gYXJyYXkuIFxuICAgICAqIEF2YWlsYWJsZSBhZ2dyZWdhdGUgdHlwZXMgaW5jbHVkZTogXG4gICAgICogKiBgc3VtYDogQ2FsY3VsYXRlcyB0aGUgc3VtIG9mIGFsbCB2YWx1ZXMgaW4gYSBjb2x1bW4uIFxuICAgICAqICogYGF2ZXJhZ2VgOiBDb21wdXRlcyB0aGUgYXZlcmFnZSBvZiB0aGUgY29sdW1uIHZhbHVlcy4gXG4gICAgICogKiBgbWF4YDogRmluZHMgdGhlIG1heGltdW0gdmFsdWUgaW4gYSBjb2x1bW4uIFxuICAgICAqICogYG1pbmA6IEZpbmRzIHRoZSBtaW5pbXVtIHZhbHVlIGluIGEgY29sdW1uLiBcbiAgICAgKiAqIGBjb3VudGA6IENvdW50cyB0aGUgbnVtYmVyIG9mIHJlY29yZHMuIFxuICAgICAqICogYGZhbHNlY291bnRgOiBDb3VudHMgdGhlIG51bWJlciBvZiBmYWxzZSB2YWx1ZXMuIFxuICAgICAqICogYHRydWVjb3VudGA6IENvdW50cyB0aGUgbnVtYmVyIG9mIHRydWUgdmFsdWVzLiBcbiAgICAgKiAqIGBjdXN0b21gOiBBbGxvd3MgZm9yIGEgY3VzdG9tIGFnZ3JlZ2F0ZSBmdW5jdGlvbi5cbiAgICAgKiBcbiAgICAgKiBVc2UgYGN1c3RvbWAgdG8gc3BlY2lmeSBhIGN1c3RvbSBhZ2dyZWdhdGlvbi5cbiAgICAgKiAgICAgXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgY29sdW1uIG5hbWUgdG8gZGlzcGxheSB0aGUgYWdncmVnYXRlIHZhbHVlLiBJZiBub3QgZGVmaW5lZCwgdGhlIGBmaWVsZGAgbmFtZSBpcyB1c2VkIGJ5IGRlZmF1bHQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5OYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgYSBjdXN0b20gZnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSBhZ2dyZWdhdGUgdmFsdWUuIFRoZSBgdHlwZWAgbXVzdCBiZSBzZXQgdG8gYGN1c3RvbWAuIFxuICAgICAqIFVzZSB0aGUgY3VzdG9tIHZhbHVlIGFzIGAke2N1c3RvbX1gIGluIHRlbXBsYXRlcy4gXG4gICAgICogKiBgVG90YWwgYWdncmVnYXRpb25gOiBUaGUgY3VzdG9tIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSBlbnRpcmUgZGF0YXNldCBhbmQgdGhlIGN1cnJlbnQgYEFnZ3JlZ2F0ZUNvbHVtbmAgb2JqZWN0LiBcbiAgICAgKiAqIGBHcm91cCBhZ2dyZWdhdGlvbmA6IEl0IGlzIGNhbGxlZCB3aXRoIHRoZSBjdXJyZW50IGdyb3VwIGRldGFpbHMgYW5kIHRoZSBgQWdncmVnYXRlQ29sdW1uYCBvYmplY3QuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjdXN0b21BZ2dyZWdhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBjb2x1bW4gbmFtZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBhZ2dyZWdhdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpZWxkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgZm9ybWF0IHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNhbGN1bGF0ZWQgYWdncmVnYXRlIHZhbHVlIGJlZm9yZSBkaXNwbGF5LiBcbiAgICAgKiBTdXBwb3J0cyBib3RoIHN0YW5kYXJkIGFuZCBjdXN0b20gZm9ybWF0cyBmb3IgbnVtYmVycyBhbmQgZGF0ZXMuIFxuICAgICAqIFJlZmVyIHRvIHRoZSBTeW5jZnVzaW9uIGRvY3VtZW50YXRpb24gZm9yIFtudW1iZXJdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNzdXBwb3J0ZWQtZm9ybWF0LXN0cmluZykgXG4gICAgICogYW5kIFtkYXRlXShodHRwczovL2VqMi5zeW5jZnVzaW9uLmNvbS9kb2N1bWVudGF0aW9uL2NvbW1vbi9pbnRlcm5hdGlvbmFsaXphdGlvbiNkYXRlLWZvcm1hdHRpbmcpIGZvcm1hdHMuXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBhIHRlbXBsYXRlIGZvciB0aGUgZm9vdGVyIGNlbGwgb2YgdGhlIGFnZ3JlZ2F0ZSBjb2x1bW4uIFxuICAgICAqIFVzZSB0aGUgYWdncmVnYXRlIGB0eXBlYCBuYW1lcyB3aXRoaW4gdGhlIHRlbXBsYXRlIHRvIGFjY2VzcyBhZ2dyZWdhdGUgdmFsdWVzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcblxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQWdncmVnYXRlQ29sdW1uIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+ZS1hZ2dyZWdhdGVzPmUtYWdncmVnYXRlPmUtY29sdW1ucycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihBZ2dyZWdhdGVDb2x1bW5EaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlQ29sdW1uc0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxBZ2dyZWdhdGVDb2x1bW5zRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdjb2x1bW5zJyk7XG4gICAgfVxufSJdfQ==
@@ -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+ZS1hZ2dyZWdhdGUnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZENvbHVtbnM6IG5ldyBDb250ZW50Q2hpbGQoQWdncmVnYXRlQ29sdW1uc0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0ZURpcmVjdGl2ZSBleHRlbmRzIENvbXBsZXhCYXNlPEFnZ3JlZ2F0ZURpcmVjdGl2ZT4ge1xuICAgIHB1YmxpYyBkaXJlY3RpdmVQcm9wTGlzdDogYW55O1xuXHRcbiAgICBwdWJsaWMgY2hpbGRDb2x1bW5zOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWydjb2x1bW5zJ107XG4gICAgLyoqIFxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGNvbGxlY3Rpb24gb2YgYWdncmVnYXRlIGNvbHVtbnMuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBwdWJsaWMgY29sdW1uczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZGlzcGxheSBjaGlsZCBzdW1tYXJpZXMgZm9yIGVhY2ggcGFyZW50IHJvdy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NoaWxkU3VtbWFyeTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQWdncmVnYXRlIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlanMtdHJlZWdyaWQ+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', 'enableColumnSpan', 'enableRowSpan', '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", enableColumnSpan: "enableColumnSpan", enableRowSpan: "enableRowSpan", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJlZWdyaWQvY29sdW1ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVyRSxJQUFJLEtBQUssR0FBYSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN3JCLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7Ozs7Ozs7R0FXRztBQVNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQTRCO0lBbVU3RCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBL1Q5QyxTQUFJLEdBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQWlVaEMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7NEdBeFVRLGVBQWU7Z0dBQWYsZUFBZSw0N0RBSFcsdUJBQXVCO0FBd1MxRDtJQURDLFFBQVEsRUFBRTtpREFDVTtBQVFyQjtJQURDLFFBQVEsRUFBRTt1REFDZ0I7QUFHM0I7SUFEQyxRQUFRLEVBQUU7NERBQ3FCO0FBT2hDO0lBREMsUUFBUSxFQUFFO3VEQUNnQjtBQUczQjtJQURDLFFBQVEsRUFBRTt5REFDa0I7QUFPN0I7SUFEQyxRQUFRLEVBQUU7cURBQ2M7MkZBalVoQixlQUFlO2tCQVIzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLElBQUksWUFBWSxDQUFDLHVCQUF1QixDQUFDO3FCQUMxRDtpQkFDSjt1R0FzU1UsUUFBUTtzQkFGZCxZQUFZO3VCQUFDLFVBQVU7Z0JBVWpCLGNBQWM7c0JBRnBCLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUt2QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVMzQixjQUFjO3NCQUZwQixZQUFZO3VCQUFDLGdCQUFnQjtnQkFLdkIsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFTekIsWUFBWTtzQkFGbEIsWUFBWTt1QkFBQyxjQUFjOztBQVloQzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBMkI7SUFDN0Q7UUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7NkdBSFEsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsdUZBSFMsZUFBZTsyRkFHeEMsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDO3FCQUNqRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgU3RhY2tlZENvbHVtbnNEaXJlY3RpdmUgfSBmcm9tICcuL3N0YWNrZWQtY29sdW1uLmRpcmVjdGl2ZSc7XG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2FsbG93RWRpdGluZycsICdhbGxvd0ZpbHRlcmluZycsICdhbGxvd1Jlb3JkZXJpbmcnLCAnYWxsb3dSZXNpemluZycsICdhbGxvd1NvcnRpbmcnLCAnY2xpcE1vZGUnLCAnY29sdW1ucycsICdjb21tYW5kcycsICdjdXN0b21BdHRyaWJ1dGVzJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlSHRtbEVuY29kZScsICdkaXNwbGF5QXNDaGVja0JveCcsICdlZGl0JywgJ2VkaXRUZW1wbGF0ZScsICdlZGl0VHlwZScsICdlbmFibGVDb2x1bW5TcGFuJywgJ2VuYWJsZVJvd1NwYW4nLCAnZmllbGQnLCAnZmlsdGVyJywgJ2ZpbHRlckJhclRlbXBsYXRlJywgJ2ZpbHRlclRlbXBsYXRlJywgJ2Zvcm1hdCcsICdmb3JtYXR0ZXInLCAnZnJlZXplJywgJ2hlYWRlclRlbXBsYXRlJywgJ2hlYWRlclRleHQnLCAnaGVhZGVyVGV4dEFsaWduJywgJ2hpZGVBdE1lZGlhJywgJ2lzRnJvemVuJywgJ2lzSWRlbnRpdHknLCAnaXNQcmltYXJ5S2V5JywgJ2xvY2tDb2x1bW4nLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAnc2hvd0NoZWNrYm94JywgJ3Nob3dDb2x1bW5NZW51JywgJ3Nob3dJbkNvbHVtbkNob29zZXInLCAnc29ydENvbXBhcmVyJywgJ3RlbXBsYXRlJywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3VpZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWVBY2Nlc3NvcicsICd2aXNpYmxlJywgJ3dpZHRoJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtY29sdW1uYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgY29sdW1uIG9mIHRoZSBBbmd1bGFyIFRyZWVHcmlkLiBcbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgVHJlZUdyaWQgY29tcG9uZW50KGBlanMtdHJlZWdyaWRgKS4gXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXRyZWVncmlkIFtkYXRhU291cmNlXT0nZGF0YScgYWxsb3dQYWdpbmc9J3RydWUnIGFsbG93U29ydGluZz0ndHJ1ZSc+IFxuICogICA8ZS1jb2x1bW5zPlxuICogICAgPGUtY29sdW1uIGZpZWxkPSdJRCcgd2lkdGg9JzEwMCc+PC9lLWNvbHVtbj5cbiAqICAgIDxlLWNvbHVtbiBmaWVsZD0nbmFtZScgaGVhZGVyVGV4dD0nTmFtZScgd2lkdGg9JzEwMCc+PC9lLWNvbHVtbj5cbiAqICAgPC9lLWNvbHVtbnM+XG4gKiA8L2Vqcy10cmVlZ3JpZD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWNvbHVtbnM+ZS1jb2x1bW4nLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZENvbHVtbnM6IG5ldyBDb250ZW50Q2hpbGQoU3RhY2tlZENvbHVtbnNEaXJlY3RpdmUpXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5EaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxDb2x1bW5EaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG4gICAgcHVibGljIGNoaWxkQ29sdW1uczogYW55O1xuICAgIHB1YmxpYyB0YWdzOiBzdHJpbmdbXSA9IFsnY29sdW1ucyddO1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGRhdGEgc3RvcmVkIGluIHRoZSBjb2x1bW4sIHdoaWNoIG1heSBiZSBzdHJpbmcsIG51bWJlciwgZGF0ZSwgb3Igb3RoZXIgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIENvbnRyb2xzIHdoZXRoZXIgZWRpdGluZyBpcyBwZXJtaXR0ZWQgZm9yIHRoZSBjb2x1bW4uIEJ5IGRlZmF1bHQsIGFsbCBjb2x1bW5zIGFyZSBlZGl0YWJsZS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93RWRpdGluZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSBjb2x1bW4gc3VwcG9ydHMgZmlsdGVyaW5nLiBJZiBzZXQgdG8gZmFsc2UsIHVzZXJzIGNhbm5vdCBmaWx0ZXIgZGF0YSBieSB0aGlzIGNvbHVtbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93RmlsdGVyaW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHJlb3JkZXJpbmcgb2YgdGhpcyBjb2x1bW4gdmlhIGRyYWctYW5kLWRyb3AuIEFsbG93cyBmb3IgZHluYW1pYyBjb2x1bW4gYWRqdXN0bWVudHMuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1Jlb3JkZXJpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGNvbHVtbiBjYW4gYmUgcmVzaXplZC4gSWYgZmFsc2UsIHRoZSBjb2x1bW4gc2l6ZSBpcyBmaXhlZC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGFsbG93UmVzaXppbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHdoZXRoZXIgc29ydGluZyBpcyBlbmFibGVkIGZvciB0aGlzIGNvbHVtbi4gU2V0IHRvIGZhbHNlIHRvIHByZXZlbnQgc29ydCBhY3Rpb25zLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWxsb3dTb3J0aW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERldGVybWluZXMgaG93IG92ZXJmbG93IGNvbnRlbnQgaXMgaGFuZGxlZCB3aXRoaW4gYSBjZWxsLiBPcHRpb25zIGluY2x1ZGU6IFxuICAgICAqICogYENsaXBgOiBUcnVuY2F0ZXMgdGhlIGNvbnRlbnQuIFxuICAgICAqICogYEVsbGlwc2lzYDogU2hvd3MgZWxsaXBzaXMgZm9yIG92ZXJmbG93LiBcbiAgICAgKiAqIGBFbGxpcHNpc1dpdGhUb29sdGlwYDogU2hvd3MgZWxsaXBzaXMgYW5kIHRvb2x0aXAgb24gaG92ZXIuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGUuRWxsaXBzaXNcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuQ2xpcE1vZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xpcE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIGZvciB0aGUgY3JlYXRpb24gb2Ygc3RhY2tlZCBoZWFkZXJzIGJ5IHVzaW5nIG11bHRpcGxlIHJvd3MgaW4gdGhlIGdyaWQncyBoZWFkZXIuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFByb3ZpZGVzIGJ1aWx0LWluIGNvbW1hbmQgYnV0dG9uIG9wdGlvbnMgZm9yIGNlbGxzLiBPcHRpb25zIGluY2x1ZGUgRWRpdCwgRGVsZXRlLCBTYXZlLCBhbmQgQ2FuY2VsLiBcbiAgICAgKiBDdXN0b20gY29tbWFuZCBidXR0b24gaW1wbGVtZW50YXRpb25zIGFyZSBwb3NzaWJsZS5cbiAgICAgKiBcbiAgICAgKiBUaGUgZm9sbG93aW5nIGNvZGUgZXhhbXBsZSBpbXBsZW1lbnRzIHRoZSBjdXN0b20gY29tbWFuZCBjb2x1bW4uXG4gICAgICpgYGBodG1sXG4gICAgICo8c3R5bGUgdHlwZT1cInRleHQvY3NzXCIgY2xhc3M9XCJjc3NTdHlsZXNcIj5cbiAgICAgKi5kZXRhaWxzLWljb246YmVmb3JlXG4gICAgICp7XG4gICAgICogICBjb250ZW50OlwiXFxlNzRkXCI7XG4gICAgICp9XG4gICAgICo8L3N0eWxlPlxuICAgICAqPGRpdiBpZD1cIlRyZWVHcmlkXCI+PC9kaXY+XG4gICAgICpgYGBcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKnZhciBncmlkT2JqID0gbmV3IFRyZWVHcmlkKHtcbiAgICAgKmRhdGFzb3VyY2U6IHdpbmRvdy5ncmlkRGF0YSxcbiAgICAgKmNvbHVtbnMgOiBbXG4gICAgICogeyBmaWVsZDogJ0N1c3RvbWVySUQnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgSUQnIH0sXG4gICAgICogeyBmaWVsZDogJ0N1c3RvbWVyTmFtZScsIGhlYWRlclRleHQ6ICdDdXN0b21lciBOYW1lJyB9LFxuICAgICAqIHtjb21tYW5kczogW3tidXR0b25PcHRpb246e2NvbnRlbnQ6ICdEZXRhaWxzJywgY2xpY2s6IG9uQ2xpY2ssIGNzc0NsYXNzOiBkZXRhaWxzLWljb259fV0sIGhlYWRlclRleHQ6ICdDdXN0b21lciBEZXRhaWxzJ31cbiAgICAgKl1cbiAgICAgKmdyaWRPYmouYXBwZW5kVG8oXCIjVHJlZUdyaWRcIik7XG4gICAgICpgYGBcbiAgICAgKiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21tYW5kczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBFbmFibGVzIHRoZSBhZGRpdGlvbiBvZiBDU1Mgc3R5bGVzIGFuZCBhdHRyaWJ1dGVzIGZvciB0aGUgY29udGVudCBjZWxscyBpbiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VzdG9tQXR0cmlidXRlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIGRlZmF1bHQgdmFsdWVzIHdoZW4gbmV3IHJlY29yZHMgYXJlIGFkZGVkIHRvIHRoZSBUcmVlR3JpZCBpbnZvbHZpbmcgdGhpcyBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBkZWZhdWx0VmFsdWU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIEhUTUwgY29udGVudCB3aXRoaW4gaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzIGlzIGVuY29kZWQgdG8gcHJldmVudCBpbmplY3Rpb24gYXR0YWNrcy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVIdG1sRW5jb2RlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVja2JveCBpbnN0ZWFkIG9mIGEgQm9vbGVhbiB2YWx1ZSB3aGVuIHNldCB0byBgdHJ1ZWAuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGxheUFzQ2hlY2tCb3g6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIGN1c3RvbWl6aW5nIHRoZSBkZWZhdWx0IGVkaXQgY2VsbCB0aHJvdWdoIHRoZSBgSUVkaXRDZWxsYCBvYmplY3QgZm9yIG1vcmUgY29udHJvbCBvdmVyIGVkaXRpbmcuXG4gICAgICogQGRlZmF1bHQge31cbiAgICAgKi9cbiAgICBwdWJsaWMgZWRpdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbXBvbmVudCB0eXBlIHVzZWQgZm9yIGVkaXRpbmcgY2VsbHMgd2l0aGluIHRoaXMgY29sdW1uLlxuICAgICAqIEBkZWZhdWx0ICdzdHJpbmdlZGl0J1xuICAgICAqL1xuICAgIHB1YmxpYyBlZGl0VHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBbGxvd3MgdHJlZWdyaWQgdG8gcGVyZm9ybSBjb2x1bW4gc3Bhbm5pbmcgb24gdGhlIHNwZWNpZmllZCBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVDb2x1bW5TcGFuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsbG93cyB0cmVlZ3JpZCB0byBwZXJmb3JtIHJvdyBzcGFubmluZyBvbiB0aGUgc3BlY2lmaWVkIGNvbHVtbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGVuYWJsZVJvd1NwYW46IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBmaWVsZCBuYW1lIGluIHRoZSBkYXRhIHNvdXJjZSB0byB3aGljaCB0aGUgY29sdW1uIGlzIGJvdW5kLiBUaGlzIGZpZWxkIGlzIHVzZWQgZm9yIG9wZXJhdGlvbnMgbGlrZSBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcuIFxuICAgICAqIFRoZSBmaWVsZCBuYW1lIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIGJlZ2lubmluZyB3aXRoIGEgbGV0dGVyIGFuZCBhdm9pZGluZyBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBmaWVsZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBDdXN0b21pemVzIGZpbHRlciBvcHRpb25zIGZvciB0aGUgY29sdW1uLCBlbmFibGluZyBzcGVjaWFsaXplZCBmaWx0ZXJpbmcgZnVuY3Rpb25hbGl0eS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBbGxvd3MgZm9yIGEgY3VzdG9tIGNvbXBvbmVudCB3aXRoaW4gdGhlIGZpbHRlciBiYXIsIGZhY2lsaXRhdGluZyBhZHZhbmNlZCBmaWx0ZXIgaW50ZXJmYWNlcy4gXG4gICAgICogSW5jbHVkZXMgY3JlYXRlIGFuZCByZWFkIGZ1bmN0aW9ucyBmb3IgY3VzdG9tIGNvbXBvbmVudCBtYW5hZ2VtZW50LlxuICAgICAqIFxuICAgICAqIGBgYGh0bWxcbiAgICAgKjxkaXYgaWQ9XCJUcmVlR3JpZFwiPjwvZGl2PlxuICAgICAqYGBgXG4gICAgICpgYGB0eXBlc2NyaXB0XG4gICAgICpsZXQgZ3JpZE9iajogVHJlZUdyaWQgPSBuZXcgVHJlZUdyaWQoe1xuICAgICAqZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcbiAgICAgKmNvbHVtbnM6IFtcbiAgICAgKiAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAgICogIHtcbiAgICAgKiAgICAgZmllbGQ6ICdFbXBsb3llZUlEJywgZmlsdGVyQmFyVGVtcGxhdGU6IHtcbiAgICAgKiAgICAgICAgY3JlYXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAgICogICAgICAgICAgICAgbGV0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgKiAgICAgICAgICAgICBpbnB1dC5pZCA9ICdFbXBsb3llZUlEJztcbiAgICAgKiAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgKiAgICAgICAgfSxcbiAgICAgKiAgICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICAgKiAgICAgICAgICAgIGFyZ3MuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGFyZ3MuY29sdW1uLmZpbHRlckJhclRlbXBsYXRlLnJlYWQgYXMgRXZlbnRMaXN0ZW5lcik7XG4gICAgICogICAgICAgIH0sXG4gICAgICogICAgICAgIHJlYWQ6IChhcmdzOiB7IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIGNvbHVtbkluZGV4OiBudW1iZXIsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICAgKiAgICAgICAgICAgIGdyaWRPYmouZmlsdGVyQnlDb2x1bW4oYXJncy5lbGVtZW50LmlkLCAnZXF1YWwnLCBhcmdzLmVsZW1lbnQudmFsdWUpO1xuICAgICAqICAgICAgIH1cbiAgICAgKiAgICB9XG4gICAgICp9XSxcbiAgICAgKiAgYWxsb3dGaWx0ZXJpbmc6IHRydWVcbiAgICAgKn0pO1xuICAgICAqZ3JpZE9iai5hcHBlbmRUbygnI1RyZWVHcmlkJyk7XG4gICAgICpgYGBcbiAgICAgKiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXJCYXJUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBGb3JtYXRzIHRoZSBkaXNwbGF5ZWQgdmFsdWUgb2YgdGhlIGNvbHVtbiB3aXRob3V0IGFmZmVjdGluZyB0aGUgdW5kZXJseWluZyBkYXRhLiBTdXBwb3J0cyBzdGFuZGFyZCBhbmQgY3VzdG9tIGZvcm1hdHMgZm9yIG51bWJlcnMgYW5kIGRhdGVzLlxuICAgICAqIFxuICAgICAqIFJlZmVyZW5jZXMgZm9yIFtudW1iZXJdKGh0dHBzOi8vZWoyLnN5bmNmdXNpb24uY29tL2RvY3VtZW50YXRpb24vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNzdXBwb3J0ZWQtZm9ybWF0LXN0cmluZylcbiAgICAgKmFuZCBbZGF0ZV0oaHR0cHM6Ly9lajIuc3luY2Z1c2lvbi5jb20vZG9jdW1lbnRhdGlvbi9jb21tb24vaW50ZXJuYXRpb25hbGl6YXRpb24jZGF0ZS1mb3JtYXR0aW5nKSBmb3JtYXRzLiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIGZvciBjdXN0b20gY2VsbCBjb250ZW50IGZvcm1hdHRpbmcgdXNpbmcgYW4gZXh0ZXJuYWwgbWV0aG9kLCBleGVjdXRlZCBwcmlvciB0byByZW5kZXJpbmcuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogRGV0ZXJtaW5lcyB3aGljaCBzaWRlIChsZWZ0LCByaWdodCwgb3IgY2VudGVyKSB0aGUgY29sdW1uIHNob3VsZCBiZSBmcm96ZW4gb24uXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuRnJlZXplRGlyZWN0aW9uLk5vbmVcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuRnJlZXplRGlyZWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGZyZWV6ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHRleHQgZGlzcGxheWVkIGluIHRoZSBjb2x1bW4gaGVhZGVyLiBJZiBvbWl0dGVkLCB0aGUgYGZpZWxkYCB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBoZWFkZXIgdGV4dC5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEFsaWducyB0aGUgdGV4dCBpbiB0aGUgY29sdW1uIGhlYWRlci4gQnkgZGVmYXVsdCwgdGhlIGFsaWdubWVudCBjb3JyZXNwb25kcyB0byBvdGhlciBjb250ZW50IGFsaWdubWVudHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmUgXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLkdyaWRzLlRleHRBbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJUZXh0QWxpZ246IGFueTtcbiAgICAvKiogXG4gICAgICogQWRqdXN0cyBjb2x1bW4gdmlzaWJpbGl0eSBiYXNlZCBvbiBbTWVkaWEgUXVlcmllc10oaHR0cDovL2Nzc21lZGlhcXVlcmllcy5jb20vd2hhdC1hcmUtY3NzLW1lZGlhLXF1ZXJpZXMuaHRtbCkuIEFjY2VwdHMgdmFsaWQgQ1NTIG1lZGlhIHF1ZXJ5IHN0cmluZ3MgZm9yIHJlc3BvbnNpdmUgYWRqdXN0bWVudHMuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZUF0TWVkaWE6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIHRoZSBjb2x1bW4gdG8gYmUgZnJvemVuLCBrZWVwaW5nIGl0IHN0YXRpb25hcnkgd2hpbGUgc2Nyb2xsaW5nIGhvcml6b250YWxseSB0aHJvdWdoIHRoZSBncmlkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGlzRnJvemVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElkZW50aWZpZXMgdGhlIGNvbHVtbiBhcyBhbiBpZGVudGl0eSBjb2x1bW4gaW4gZGF0YWJhc2UgdGVybXMsIGlmIHNldCB0byBgdHJ1ZWAuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNJZGVudGl0eTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZGVudGlmaWVzIHRoZSBjb2x1bW4gYXMgYSBwcmltYXJ5IGtleSBpZiBzZXQgdG8gYHRydWVgLCBlbmZvcmNpbmcgdW5pcXVlbmVzcy5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1ByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogXG4gICAgICogUHJldmVudHMgY29sdW1uIHJlb3JkZXJpbmcgd2hlbiBzZXQgdG8gdHJ1ZSwgbG9ja2luZyB0aGUgY29sdW1uIGludG8gYSBzZXQgcG9zaXRpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9ja0NvbHVtbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIGFsbG93YWJsZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBhcyBhIHBlcmNlbnRhZ2UsIHByZXZlbnRpbmcgcmVzaXppbmcgYmV5b25kIHRoaXMgbGltaXQuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgbWF4V2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLiBUaGlzIGVuc3VyZXMgdGhlIGNvbHVtbiBkb2VzIG5vdCBzaHJpbmsgYmVsb3cgdGhpcyBzaXplLlxuICAgICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAgICovXG4gICAgcHVibGljIG1pbldpZHRoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERpc3BsYXlzIGNoZWNrYm94ZXMgaW4gdGhlIGNvbHVtbiB3aGVuIGVuYWJsZWQsIGFsbG93aW5nIGZvciBzZWxlY3Rpb25zIGFuZCBjZXJ0YWluIG9wZXJhdGlvbnMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0NoZWNrYm94OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlY2lkZXMgaWYgdGhlIGNvbHVtbiBtZW51IHNob3VsZCBiZSBhdmFpbGFibGUsIHByb3ZpZGluZyBvcHRpb25zIGZvciBjb2x1bW4gY3VzdG9taXphdGlvbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dDb2x1bW5NZW51OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY29sdW1uIHNob3VsZCBhcHBlYXIgaW4gdGhlIENvbHVtbiBDaG9vc2VyLiBTZXQgdG8gZmFsc2UgdG8gZXhjbHVkZSBpdC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dJbkNvbHVtbkNob29zZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogUHJvdmlkZXMgYSBjdXN0b20gc29ydCBjb21wYXJlciBwcm9wZXJ0eSB0byBjb250cm9sIGhvdyBzb3J0aW5nIGlzIGhhbmRsZWQgZm9yIHRoaXMgY29sdW1uJ3MgZGF0YS5cbiAgICAgKiBAZGVmYXVsdCAndW5kZWZpbmVkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzb3J0Q29tcGFyZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBob3Jpem9udGFsIGFsaWdubWVudCBmb3IgdGhlIGNvbHVtbiBjb250ZW50IGFuZCBoZWFkZXIuIE9wdGlvbnMgaW5jbHVkZSBhbGlnbm1lbnQgdG8gdGhlIGxlZnQsIGNlbnRlciwgb3IgcmlnaHQuXG4gICAgICogQGRlZmF1bHQgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduLkxlZnRcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuR3JpZHMuVGV4dEFsaWduXG4gICAgICovXG4gICAgcHVibGljIHRleHRBbGlnbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29sdW1uLiBUaGlzIFVJRCBpcyB1c2VkIGludGVybmFsbHkgdG8gcmVmZXJlbmNlIGFuZCBtYW5pcHVsYXRlIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgdWlkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEVzdGFibGlzaGVzIHZhbGlkYXRpb24gcnVsZXMgdG8gZW5zdXJlIGRhdGEgaW50ZWdyaXR5IGR1cmluZyBjcmVhdGlvbiBhbmQgdXBkYXRlcy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRpb25SdWxlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBBcHBsaWVzIGN1c3RvbSBjZWxsIHZhbHVlcyB1c2luZyBhbiBleHRlcm5hbCBmdW5jdGlvbiwgYWxsb3dpbmcgZm9yIGR5bmFtaWMgZGlzcGxheSBhZGp1c3RtZW50cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHZhbHVlQWNjZXNzb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogVG9nZ2xlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY29sdW1uLiBTZXQgdG8gZmFsc2UgdG8gaGlkZSB0aGUgY29sdW1uIGZyb20gdmlldy4gQ29sdW1ucyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0LlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTZXRzIHRoZSBjb2x1bW4ncyB3aWR0aCBpbiBwaXhlbHMgb3IgYXMgYSBwZXJjZW50YWdlLiBUaGlzIGRlZmluZXMgaG93IHRoZSBjb2x1bW4gd2lsbCBvY2N1cHkgc3BhY2UgaW4gdGhlIGdyaWQuXG4gICAgICogQGRlZmF1bHQgJ3VuZGVmaW5lZCdcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9taXplcyB0aGUgcmVuZGVyaW5nIG9mIGNlbGwgY29udGVudCB1c2luZyBlaXRoZXIgYSB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0ZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9taXplcyB0aGUgaGVhZGVyIGNvbnRlbnQgd2l0aCBhIHRlbXBsYXRlLCBkZWZpbmVkIGFzIGEgc3RyaW5nIG9yIGFuIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVySXRlbVRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJfaXRlbVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyBhIGN1c3RvbSB0ZW1wbGF0ZSBvciBVSSBmb3IgZmlsdGVyaW5nIHdpdGhpbiB0aGlzIGNvbHVtbiwgdXRpbGl6aW5nIGVpdGhlciBzdHJpbmcgdGVtcGxhdGVzIG9yIEhUTUwgZWxlbWVudCBJRHMuXG4gICAgICogQGFzcGlnbm9yZSBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdmaWx0ZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZmlsdGVyVGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCdjb21tYW5kc1RlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBjb21tYW5kc1RlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFByb3ZpZGVzIGEgdGVtcGxhdGUgZm9yIGVkaXRpbmcgY2VsbHMgaW4gdGhpcyBjb2x1bW4sIHN1cHBvcnRpbmcgZWl0aGVyIGEgdGVtcGxhdGUgc3RyaW5nIG9yIGFuIEhUTUwgZWxlbWVudCBJRC5cbiAgICAgKiBAYXNwaWdub3JlIFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2VkaXRUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgZWRpdFRlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5kaXJlY3RpdmVQcm9wTGlzdCA9IGlucHV0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb2x1bW4gQXJyYXkgRGlyZWN0aXZlXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy10cmVlZ3JpZD5lLWNvbHVtbnMnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oQ29sdW1uRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvbHVtbnNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8Q29sdW1uc0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignY29sdW1ucycpO1xuICAgIH1cbn0iXX0=