@acorex/data-grid 3.0.25 → 3.0.26

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 (68) hide show
  1. package/README.md +2 -2
  2. package/acorex-data-grid.d.ts +4 -4
  3. package/acorex-data-grid.metadata.json +1 -1
  4. package/bundles/acorex-data-grid.umd.js +1933 -1933
  5. package/bundles/acorex-data-grid.umd.js.map +1 -1
  6. package/bundles/acorex-data-grid.umd.min.js +1 -1
  7. package/bundles/acorex-data-grid.umd.min.js.map +1 -1
  8. package/esm2015/acorex-data-grid.js +4 -4
  9. package/esm2015/lib/data-grid/columns/check-column.component.js +104 -104
  10. package/esm2015/lib/data-grid/columns/column.component.js +204 -204
  11. package/esm2015/lib/data-grid/columns/command-column.component.js +103 -103
  12. package/esm2015/lib/data-grid/columns/date-column.component.js +114 -114
  13. package/esm2015/lib/data-grid/columns/row-number-column.component.js +39 -39
  14. package/esm2015/lib/data-grid/columns/selection-column.component.js +42 -42
  15. package/esm2015/lib/data-grid/columns/text-column.component.js +81 -81
  16. package/esm2015/lib/data-grid/datagrid.component.js +709 -709
  17. package/esm2015/lib/data-grid/datagrid.events.js +1 -1
  18. package/esm2015/lib/data-grid/datagrid.module.js +98 -98
  19. package/esm2015/lib/data-grid/filters/filter.component.js +25 -25
  20. package/esm2015/lib/data-grid/templates/cell-template.component.js +47 -47
  21. package/esm2015/lib/data-grid/templates/detail-template.component.js +45 -45
  22. package/esm2015/lib/data-grid/templates/row-template.component.js +40 -40
  23. package/esm2015/lib/data-lov/data-lov-popup/data-lov-popup.component.js +121 -121
  24. package/esm2015/lib/data-lov/data-lov.component.js +206 -206
  25. package/esm2015/lib/data-lov/data-lov.module.js +21 -21
  26. package/esm2015/public-api.js +17 -17
  27. package/esm5/acorex-data-grid.js +4 -4
  28. package/esm5/lib/data-grid/columns/check-column.component.js +102 -102
  29. package/esm5/lib/data-grid/columns/column.component.js +206 -206
  30. package/esm5/lib/data-grid/columns/command-column.component.js +98 -98
  31. package/esm5/lib/data-grid/columns/date-column.component.js +119 -119
  32. package/esm5/lib/data-grid/columns/row-number-column.component.js +42 -42
  33. package/esm5/lib/data-grid/columns/selection-column.component.js +46 -46
  34. package/esm5/lib/data-grid/columns/text-column.component.js +81 -81
  35. package/esm5/lib/data-grid/datagrid.component.js +767 -767
  36. package/esm5/lib/data-grid/datagrid.events.js +1 -1
  37. package/esm5/lib/data-grid/datagrid.module.js +101 -101
  38. package/esm5/lib/data-grid/filters/filter.component.js +16 -16
  39. package/esm5/lib/data-grid/templates/cell-template.component.js +46 -46
  40. package/esm5/lib/data-grid/templates/detail-template.component.js +49 -49
  41. package/esm5/lib/data-grid/templates/row-template.component.js +44 -44
  42. package/esm5/lib/data-lov/data-lov-popup/data-lov-popup.component.js +127 -127
  43. package/esm5/lib/data-lov/data-lov.component.js +216 -216
  44. package/esm5/lib/data-lov/data-lov.module.js +24 -24
  45. package/esm5/public-api.js +17 -17
  46. package/fesm2015/acorex-data-grid.js +1856 -1856
  47. package/fesm2015/acorex-data-grid.js.map +1 -1
  48. package/fesm5/acorex-data-grid.js +1935 -1935
  49. package/fesm5/acorex-data-grid.js.map +1 -1
  50. package/lib/data-grid/columns/check-column.component.d.ts +30 -30
  51. package/lib/data-grid/columns/column.component.d.ts +29 -29
  52. package/lib/data-grid/columns/command-column.component.d.ts +22 -22
  53. package/lib/data-grid/columns/date-column.component.d.ts +27 -27
  54. package/lib/data-grid/columns/row-number-column.component.d.ts +7 -7
  55. package/lib/data-grid/columns/selection-column.component.d.ts +8 -8
  56. package/lib/data-grid/columns/text-column.component.d.ts +20 -20
  57. package/lib/data-grid/datagrid.component.d.ts +129 -129
  58. package/lib/data-grid/datagrid.events.d.ts +20 -20
  59. package/lib/data-grid/datagrid.module.d.ts +3 -3
  60. package/lib/data-grid/filters/filter.component.d.ts +2 -2
  61. package/lib/data-grid/templates/cell-template.component.d.ts +17 -17
  62. package/lib/data-grid/templates/detail-template.component.d.ts +16 -16
  63. package/lib/data-grid/templates/row-template.component.d.ts +15 -15
  64. package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +29 -29
  65. package/lib/data-lov/data-lov.component.d.ts +39 -39
  66. package/lib/data-lov/data-lov.module.d.ts +2 -2
  67. package/package.json +26 -26
  68. package/public-api.d.ts +17 -17
@@ -1,204 +1,204 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { AXConfig } from '@acorex/core';
3
- import { Input, ContentChild } from '@angular/core';
4
- import { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';
5
- export class AXGridDataColumn {
6
- constructor() {
7
- this.width = 100;
8
- this.pinned = null;
9
- this.allowSorting = true;
10
- this.allowFiltering = AXConfig.get('datagrid.allowFiltering') || false;
11
- this.sort = null;
12
- this.field = '';
13
- this.caption = '';
14
- this.checkbox = false;
15
- this.headerCheckbox = false;
16
- this.groupIndex = -1;
17
- this.treeIndex = -1;
18
- this.enableRowGroup = false;
19
- this.hide = false;
20
- this.floatingFilter = AXConfig.get('datagrid.floatingFilter') || false;
21
- this.disableMenu = false;
22
- this.resizable = true;
23
- this.menuColumnDisable = false;
24
- this.menuItemDisable = false;
25
- }
26
- ;
27
- render() {
28
- const col = {
29
- field: this.field,
30
- width: this.width,
31
- };
32
- col.resizable = this.resizable;
33
- col.suppressMenu = this.disableMenu;
34
- col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab'];
35
- col.floatingFilter = this.floatingFilter;
36
- if (!this.allowFiltering) {
37
- col.filter = false;
38
- col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');
39
- col.floatingFilter = false;
40
- }
41
- if (this.menuColumnDisable == true) {
42
- col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');
43
- }
44
- if (this.menuItemDisable == true) {
45
- col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');
46
- }
47
- if (this.caption) {
48
- col.headerName = this.caption;
49
- }
50
- if (this.minWidth) {
51
- col.minWidth = this.minWidth;
52
- }
53
- if (this.maxWidth) {
54
- col.maxWidth = this.maxWidth;
55
- }
56
- if (this.pinned) {
57
- col.pinned = this.pinned === 'start' ? 'right' : 'left';
58
- // TODO: Change based on layout
59
- }
60
- if (this.allowSorting) {
61
- col.sortable = this.allowSorting;
62
- }
63
- if (this.sort) {
64
- col.sort = this.sort;
65
- }
66
- if (this.groupIndex >= 0) {
67
- col.rowGroupIndex = this.groupIndex;
68
- col.rowGroup = true;
69
- this.enableRowGroup = true;
70
- }
71
- if (this.treeIndex >= 0) {
72
- col.rowGroupIndex = this.treeIndex;
73
- col.rowGroup = false;
74
- }
75
- if (this.hide) {
76
- col.hide = true;
77
- }
78
- if (this.enableRowGroup) {
79
- col.enableRowGroup = this.enableRowGroup;
80
- }
81
- if (this.cellClass) {
82
- const THAT = this;
83
- if (this.cellClass instanceof Function) {
84
- col.cellClass = (p) => {
85
- return THAT.cellClass({
86
- column: THAT,
87
- rowIndex: p.node.rowIndex,
88
- rowLevel: p.node.level,
89
- data: p.data,
90
- value: p.value
91
- });
92
- };
93
- }
94
- else {
95
- col.cellClass = this.cellClass;
96
- }
97
- }
98
- //
99
- if (this.cellTemplate != null) {
100
- col.cellRendererFramework = this.cellTemplate.renderer;
101
- col.cellRendererParams = this.cellTemplate.params;
102
- }
103
- if (this.checkbox) {
104
- col.checkboxSelection = (params) => {
105
- return true;
106
- };
107
- // col.headerCheckboxSelection = this.headerCheckbox;
108
- }
109
- return col;
110
- }
111
- }
112
- __decorate([
113
- ContentChild(AXDataGridCellTemplateComponent),
114
- __metadata("design:type", AXDataGridCellTemplateComponent)
115
- ], AXGridDataColumn.prototype, "cellTemplate", void 0);
116
- __decorate([
117
- Input(),
118
- __metadata("design:type", Number)
119
- ], AXGridDataColumn.prototype, "width", void 0);
120
- __decorate([
121
- Input(),
122
- __metadata("design:type", Number)
123
- ], AXGridDataColumn.prototype, "maxWidth", void 0);
124
- __decorate([
125
- Input(),
126
- __metadata("design:type", Number)
127
- ], AXGridDataColumn.prototype, "minWidth", void 0);
128
- __decorate([
129
- Input(),
130
- __metadata("design:type", String)
131
- ], AXGridDataColumn.prototype, "pinned", void 0);
132
- __decorate([
133
- Input(),
134
- __metadata("design:type", Boolean)
135
- ], AXGridDataColumn.prototype, "allowSorting", void 0);
136
- __decorate([
137
- Input(),
138
- __metadata("design:type", Boolean)
139
- ], AXGridDataColumn.prototype, "allowFiltering", void 0);
140
- __decorate([
141
- Input(),
142
- __metadata("design:type", Function)
143
- ], AXGridDataColumn.prototype, "cellClass", void 0);
144
- __decorate([
145
- Input(),
146
- __metadata("design:type", String)
147
- ], AXGridDataColumn.prototype, "sort", void 0);
148
- __decorate([
149
- Input(),
150
- __metadata("design:type", String)
151
- ], AXGridDataColumn.prototype, "field", void 0);
152
- __decorate([
153
- Input(),
154
- __metadata("design:type", String)
155
- ], AXGridDataColumn.prototype, "caption", void 0);
156
- __decorate([
157
- Input(),
158
- __metadata("design:type", Object)
159
- ], AXGridDataColumn.prototype, "cellRendererParams", void 0);
160
- __decorate([
161
- Input(),
162
- __metadata("design:type", Boolean)
163
- ], AXGridDataColumn.prototype, "checkbox", void 0);
164
- __decorate([
165
- Input(),
166
- __metadata("design:type", Boolean)
167
- ], AXGridDataColumn.prototype, "headerCheckbox", void 0);
168
- __decorate([
169
- Input(),
170
- __metadata("design:type", Number)
171
- ], AXGridDataColumn.prototype, "groupIndex", void 0);
172
- __decorate([
173
- Input(),
174
- __metadata("design:type", Number)
175
- ], AXGridDataColumn.prototype, "treeIndex", void 0);
176
- __decorate([
177
- Input(),
178
- __metadata("design:type", Boolean)
179
- ], AXGridDataColumn.prototype, "enableRowGroup", void 0);
180
- __decorate([
181
- Input(),
182
- __metadata("design:type", Boolean)
183
- ], AXGridDataColumn.prototype, "hide", void 0);
184
- __decorate([
185
- Input(),
186
- __metadata("design:type", Boolean)
187
- ], AXGridDataColumn.prototype, "floatingFilter", void 0);
188
- __decorate([
189
- Input(),
190
- __metadata("design:type", Boolean)
191
- ], AXGridDataColumn.prototype, "disableMenu", void 0);
192
- __decorate([
193
- Input(),
194
- __metadata("design:type", Boolean)
195
- ], AXGridDataColumn.prototype, "resizable", void 0);
196
- __decorate([
197
- Input(),
198
- __metadata("design:type", Boolean)
199
- ], AXGridDataColumn.prototype, "menuColumnDisable", void 0);
200
- __decorate([
201
- Input(),
202
- __metadata("design:type", Boolean)
203
- ], AXGridDataColumn.prototype, "menuItemDisable", void 0);
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJdkYsTUFBTSxPQUFnQixnQkFBZ0I7SUF3RWxDO1FBakVBLFVBQUssR0FBVyxHQUFHLENBQUM7UUFTcEIsV0FBTSxHQUEyQixJQUFJLENBQUM7UUFHdEMsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFHN0IsbUJBQWMsR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksS0FBSyxDQUFDO1FBTTNFLFNBQUksR0FBMEIsSUFBSSxDQUFDO1FBR25DLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQU1yQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR2hDLGVBQVUsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUd4QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFHdkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixtQkFBYyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsSUFBSSxLQUFLLENBQUM7UUFHM0UsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFFakIsQ0FB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K0NBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7O2tEQUNTO0FBR2pCO0lBREMsS0FBSyxFQUFFOztrREFDUztBQUdqQjtJQURDLEtBQUssRUFBRTs7Z0RBQzhCO0FBR3RDO0lBREMsS0FBSyxFQUFFOztzREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O3dEQUNtRTtBQUczRTtJQURDLEtBQUssRUFBRTs7bURBQzJFO0FBR25GO0lBREMsS0FBSyxFQUFFOzs4Q0FDMkI7QUFHbkM7SUFEQyxLQUFLLEVBQUU7OytDQUNXO0FBR25CO0lBREMsS0FBSyxFQUFFOztpREFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTs7NERBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOztrREFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7O3dEQUN3QjtBQUdoQztJQURDLEtBQUssRUFBRTs7b0RBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOzttREFDZTtBQUd2QjtJQURDLEtBQUssRUFBRTs7d0RBQ3dCO0FBR2hDO0lBREMsS0FBSyxFQUFFOzs4Q0FDYztBQUd0QjtJQURDLEtBQUssRUFBRTs7d0RBQ21FO0FBRzNFO0lBREMsS0FBSyxFQUFFOztxREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O21EQUNrQjtBQUcxQjtJQURDLEtBQUssRUFBRTs7MkRBQzJCO0FBR25DO0lBREMsS0FBSyxFQUFFOzt5REFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYR3JpZENlbGxQYXJhbXMgfSBmcm9tICcuLi9kYXRhZ3JpZC5ldmVudHMnO1xyXG5pbXBvcnQgeyBBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVtcGxhdGVzL2NlbGwtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhEYXRlUGlja2VyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEdyaWREYXRhQ29sdW1uIHtcclxuXHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50KVxyXG4gICAgY2VsbFRlbXBsYXRlOiBBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICB3aWR0aDogbnVtYmVyID0gMTAwO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtYXhXaWR0aDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtaW5XaWR0aDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwaW5uZWQ6ICdzdGFydCcgfCAnZW5kJyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhbGxvd1NvcnRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnZGF0YWdyaWQuYWxsb3dGaWx0ZXJpbmcnKSB8fCBmYWxzZTs7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGNlbGxDbGFzczogKHBhcmFtczogQVhHcmlkQ2VsbFBhcmFtcykgPT4gKHN0cmluZyB8IHN0cmluZ1tdKSB8IChzdHJpbmcgfCBzdHJpbmdbXSk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNvcnQ6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGZpZWxkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2FwdGlvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGNlbGxSZW5kZXJlclBhcmFtczogYW55O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBoZWFkZXJDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBncm91cEluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgdHJlZUluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZW5hYmxlUm93R3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGlkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBmbG9hdGluZ0ZpbHRlcjogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnZGF0YWdyaWQuZmxvYXRpbmdGaWx0ZXInKSB8fCBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGlzYWJsZU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcmVzaXphYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbWVudUNvbHVtbkRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbWVudUl0ZW1EaXNhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICByZW5kZXIoKTogYW55IHtcclxuICAgICAgICBjb25zdCBjb2w6IGFueSA9IHtcclxuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sLnJlc2l6YWJsZSA9IHRoaXMucmVzaXphYmxlO1xyXG4gICAgICAgIGNvbC5zdXBwcmVzc01lbnUgPSB0aGlzLmRpc2FibGVNZW51O1xyXG4gICAgICAgIGNvbC5tZW51VGFicyA9IFsnZmlsdGVyTWVudVRhYicsICdjb2x1bW5zTWVudVRhYicsICdnZW5lcmFsTWVudVRhYiddXHJcbiAgICAgICAgY29sLmZsb2F0aW5nRmlsdGVyID0gdGhpcy5mbG9hdGluZ0ZpbHRlcjtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmFsbG93RmlsdGVyaW5nKSB7XHJcbiAgICAgICAgICAgIGNvbC5maWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2ZpbHRlck1lbnVUYWInKTtcclxuICAgICAgICAgICAgY29sLmZsb2F0aW5nRmlsdGVyID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVDb2x1bW5EaXNhYmxlID09IHRydWUpIHtcclxuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2NvbHVtbnNNZW51VGFiJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVJdGVtRGlzYWJsZSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGNvbC5tZW51VGFicyA9IGNvbC5tZW51VGFicy5maWx0ZXIoYyA9PiBjICE9ICdnZW5lcmFsTWVudVRhYicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5jYXB0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbC5oZWFkZXJOYW1lID0gdGhpcy5jYXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5taW5XaWR0aCkge1xyXG4gICAgICAgICAgICBjb2wubWluV2lkdGggPSB0aGlzLm1pbldpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5tYXhXaWR0aCkge1xyXG4gICAgICAgICAgICBjb2wubWF4V2lkdGggPSB0aGlzLm1heFdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5waW5uZWQpIHtcclxuICAgICAgICAgICAgY29sLnBpbm5lZCA9IHRoaXMucGlubmVkID09PSAnc3RhcnQnID8gJ3JpZ2h0JyA6ICdsZWZ0JztcclxuICAgICAgICAgICAgLy8gVE9ETzogQ2hhbmdlIGJhc2VkIG9uIGxheW91dFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hbGxvd1NvcnRpbmcpIHtcclxuICAgICAgICAgICAgY29sLnNvcnRhYmxlID0gdGhpcy5hbGxvd1NvcnRpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNvcnQpIHtcclxuICAgICAgICAgICAgY29sLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5ncm91cEluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLmdyb3VwSW5kZXg7XHJcbiAgICAgICAgICAgIGNvbC5yb3dHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUm93R3JvdXAgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLnRyZWVJbmRleDtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmhpZGUpIHtcclxuICAgICAgICAgICAgY29sLmhpZGUgPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlUm93R3JvdXApIHtcclxuICAgICAgICAgICAgY29sLmVuYWJsZVJvd0dyb3VwID0gdGhpcy5lbmFibGVSb3dHcm91cDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNlbGxDbGFzcykge1xyXG4gICAgICAgICAgICBjb25zdCBUSEFUID0gdGhpcztcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIGNvbC5jZWxsQ2xhc3MgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBUSEFULmNlbGxDbGFzcyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogVEhBVCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm93SW5kZXg6IHAubm9kZS5yb3dJbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm93TGV2ZWw6IHAubm9kZS5sZXZlbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogcC5kYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbC5jZWxsQ2xhc3MgPSB0aGlzLmNlbGxDbGFzcztcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAodGhpcy5jZWxsVGVtcGxhdGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb2wuY2VsbFJlbmRlcmVyRnJhbWV3b3JrID0gdGhpcy5jZWxsVGVtcGxhdGUucmVuZGVyZXI7XHJcbiAgICAgICAgICAgIGNvbC5jZWxsUmVuZGVyZXJQYXJhbXMgPSB0aGlzLmNlbGxUZW1wbGF0ZS5wYXJhbXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xyXG4gICAgICAgICAgICBjb2wuY2hlY2tib3hTZWxlY3Rpb24gPSAocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgLy8gIGNvbC5oZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IHRoaXMuaGVhZGVyQ2hlY2tib3g7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb2w7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXX0=
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { AXConfig } from '@acorex/core';
3
+ import { Input, ContentChild } from '@angular/core';
4
+ import { AXDataGridCellTemplateComponent } from '../templates/cell-template.component';
5
+ export class AXGridDataColumn {
6
+ constructor() {
7
+ this.width = 100;
8
+ this.pinned = null;
9
+ this.allowSorting = true;
10
+ this.allowFiltering = AXConfig.get('datagrid.allowFiltering') || false;
11
+ this.sort = null;
12
+ this.field = '';
13
+ this.caption = '';
14
+ this.checkbox = false;
15
+ this.headerCheckbox = false;
16
+ this.groupIndex = -1;
17
+ this.treeIndex = -1;
18
+ this.enableRowGroup = false;
19
+ this.hide = false;
20
+ this.floatingFilter = AXConfig.get('datagrid.floatingFilter') || false;
21
+ this.disableMenu = false;
22
+ this.resizable = true;
23
+ this.menuColumnDisable = false;
24
+ this.menuItemDisable = false;
25
+ }
26
+ ;
27
+ render() {
28
+ const col = {
29
+ field: this.field,
30
+ width: this.width,
31
+ };
32
+ col.resizable = this.resizable;
33
+ col.suppressMenu = this.disableMenu;
34
+ col.menuTabs = ['filterMenuTab', 'columnsMenuTab', 'generalMenuTab'];
35
+ col.floatingFilter = this.floatingFilter;
36
+ if (!this.allowFiltering) {
37
+ col.filter = false;
38
+ col.menuTabs = col.menuTabs.filter(c => c != 'filterMenuTab');
39
+ col.floatingFilter = false;
40
+ }
41
+ if (this.menuColumnDisable == true) {
42
+ col.menuTabs = col.menuTabs.filter(c => c != 'columnsMenuTab');
43
+ }
44
+ if (this.menuItemDisable == true) {
45
+ col.menuTabs = col.menuTabs.filter(c => c != 'generalMenuTab');
46
+ }
47
+ if (this.caption) {
48
+ col.headerName = this.caption;
49
+ }
50
+ if (this.minWidth) {
51
+ col.minWidth = this.minWidth;
52
+ }
53
+ if (this.maxWidth) {
54
+ col.maxWidth = this.maxWidth;
55
+ }
56
+ if (this.pinned) {
57
+ col.pinned = this.pinned === 'start' ? 'right' : 'left';
58
+ // TODO: Change based on layout
59
+ }
60
+ if (this.allowSorting) {
61
+ col.sortable = this.allowSorting;
62
+ }
63
+ if (this.sort) {
64
+ col.sort = this.sort;
65
+ }
66
+ if (this.groupIndex >= 0) {
67
+ col.rowGroupIndex = this.groupIndex;
68
+ col.rowGroup = true;
69
+ this.enableRowGroup = true;
70
+ }
71
+ if (this.treeIndex >= 0) {
72
+ col.rowGroupIndex = this.treeIndex;
73
+ col.rowGroup = false;
74
+ }
75
+ if (this.hide) {
76
+ col.hide = true;
77
+ }
78
+ if (this.enableRowGroup) {
79
+ col.enableRowGroup = this.enableRowGroup;
80
+ }
81
+ if (this.cellClass) {
82
+ const THAT = this;
83
+ if (this.cellClass instanceof Function) {
84
+ col.cellClass = (p) => {
85
+ return THAT.cellClass({
86
+ column: THAT,
87
+ rowIndex: p.node.rowIndex,
88
+ rowLevel: p.node.level,
89
+ data: p.data,
90
+ value: p.value
91
+ });
92
+ };
93
+ }
94
+ else {
95
+ col.cellClass = this.cellClass;
96
+ }
97
+ }
98
+ //
99
+ if (this.cellTemplate != null) {
100
+ col.cellRendererFramework = this.cellTemplate.renderer;
101
+ col.cellRendererParams = this.cellTemplate.params;
102
+ }
103
+ if (this.checkbox) {
104
+ col.checkboxSelection = (params) => {
105
+ return true;
106
+ };
107
+ // col.headerCheckboxSelection = this.headerCheckbox;
108
+ }
109
+ return col;
110
+ }
111
+ }
112
+ __decorate([
113
+ ContentChild(AXDataGridCellTemplateComponent),
114
+ __metadata("design:type", AXDataGridCellTemplateComponent)
115
+ ], AXGridDataColumn.prototype, "cellTemplate", void 0);
116
+ __decorate([
117
+ Input(),
118
+ __metadata("design:type", Number)
119
+ ], AXGridDataColumn.prototype, "width", void 0);
120
+ __decorate([
121
+ Input(),
122
+ __metadata("design:type", Number)
123
+ ], AXGridDataColumn.prototype, "maxWidth", void 0);
124
+ __decorate([
125
+ Input(),
126
+ __metadata("design:type", Number)
127
+ ], AXGridDataColumn.prototype, "minWidth", void 0);
128
+ __decorate([
129
+ Input(),
130
+ __metadata("design:type", String)
131
+ ], AXGridDataColumn.prototype, "pinned", void 0);
132
+ __decorate([
133
+ Input(),
134
+ __metadata("design:type", Boolean)
135
+ ], AXGridDataColumn.prototype, "allowSorting", void 0);
136
+ __decorate([
137
+ Input(),
138
+ __metadata("design:type", Boolean)
139
+ ], AXGridDataColumn.prototype, "allowFiltering", void 0);
140
+ __decorate([
141
+ Input(),
142
+ __metadata("design:type", Function)
143
+ ], AXGridDataColumn.prototype, "cellClass", void 0);
144
+ __decorate([
145
+ Input(),
146
+ __metadata("design:type", String)
147
+ ], AXGridDataColumn.prototype, "sort", void 0);
148
+ __decorate([
149
+ Input(),
150
+ __metadata("design:type", String)
151
+ ], AXGridDataColumn.prototype, "field", void 0);
152
+ __decorate([
153
+ Input(),
154
+ __metadata("design:type", String)
155
+ ], AXGridDataColumn.prototype, "caption", void 0);
156
+ __decorate([
157
+ Input(),
158
+ __metadata("design:type", Object)
159
+ ], AXGridDataColumn.prototype, "cellRendererParams", void 0);
160
+ __decorate([
161
+ Input(),
162
+ __metadata("design:type", Boolean)
163
+ ], AXGridDataColumn.prototype, "checkbox", void 0);
164
+ __decorate([
165
+ Input(),
166
+ __metadata("design:type", Boolean)
167
+ ], AXGridDataColumn.prototype, "headerCheckbox", void 0);
168
+ __decorate([
169
+ Input(),
170
+ __metadata("design:type", Number)
171
+ ], AXGridDataColumn.prototype, "groupIndex", void 0);
172
+ __decorate([
173
+ Input(),
174
+ __metadata("design:type", Number)
175
+ ], AXGridDataColumn.prototype, "treeIndex", void 0);
176
+ __decorate([
177
+ Input(),
178
+ __metadata("design:type", Boolean)
179
+ ], AXGridDataColumn.prototype, "enableRowGroup", void 0);
180
+ __decorate([
181
+ Input(),
182
+ __metadata("design:type", Boolean)
183
+ ], AXGridDataColumn.prototype, "hide", void 0);
184
+ __decorate([
185
+ Input(),
186
+ __metadata("design:type", Boolean)
187
+ ], AXGridDataColumn.prototype, "floatingFilter", void 0);
188
+ __decorate([
189
+ Input(),
190
+ __metadata("design:type", Boolean)
191
+ ], AXGridDataColumn.prototype, "disableMenu", void 0);
192
+ __decorate([
193
+ Input(),
194
+ __metadata("design:type", Boolean)
195
+ ], AXGridDataColumn.prototype, "resizable", void 0);
196
+ __decorate([
197
+ Input(),
198
+ __metadata("design:type", Boolean)
199
+ ], AXGridDataColumn.prototype, "menuColumnDisable", void 0);
200
+ __decorate([
201
+ Input(),
202
+ __metadata("design:type", Boolean)
203
+ ], AXGridDataColumn.prototype, "menuItemDisable", void 0);
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJdkYsTUFBTSxPQUFnQixnQkFBZ0I7SUF3RWxDO1FBakVBLFVBQUssR0FBVyxHQUFHLENBQUM7UUFTcEIsV0FBTSxHQUEyQixJQUFJLENBQUM7UUFHdEMsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFHN0IsbUJBQWMsR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksS0FBSyxDQUFDO1FBTTNFLFNBQUksR0FBMEIsSUFBSSxDQUFDO1FBR25DLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQU1yQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR2hDLGVBQVUsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUd4QixjQUFTLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFHdkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixtQkFBYyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsSUFBSSxLQUFLLENBQUM7UUFHM0UsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFFakIsQ0FB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K0NBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7O2tEQUNTO0FBR2pCO0lBREMsS0FBSyxFQUFFOztrREFDUztBQUdqQjtJQURDLEtBQUssRUFBRTs7Z0RBQzhCO0FBR3RDO0lBREMsS0FBSyxFQUFFOztzREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O3dEQUNtRTtBQUczRTtJQURDLEtBQUssRUFBRTs7bURBQzJFO0FBR25GO0lBREMsS0FBSyxFQUFFOzs4Q0FDMkI7QUFHbkM7SUFEQyxLQUFLLEVBQUU7OytDQUNXO0FBR25CO0lBREMsS0FBSyxFQUFFOztpREFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTs7NERBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOztrREFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7O3dEQUN3QjtBQUdoQztJQURDLEtBQUssRUFBRTs7b0RBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOzttREFDZTtBQUd2QjtJQURDLEtBQUssRUFBRTs7d0RBQ3dCO0FBR2hDO0lBREMsS0FBSyxFQUFFOzs4Q0FDYztBQUd0QjtJQURDLEtBQUssRUFBRTs7d0RBQ21FO0FBRzNFO0lBREMsS0FBSyxFQUFFOztxREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7O21EQUNrQjtBQUcxQjtJQURDLEtBQUssRUFBRTs7MkRBQzJCO0FBR25DO0lBREMsS0FBSyxFQUFFOzt5REFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBJbnB1dCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhHcmlkQ2VsbFBhcmFtcyB9IGZyb20gJy4uL2RhdGFncmlkLmV2ZW50cyc7XG5pbXBvcnQgeyBBWERhdGFHcmlkQ2VsbFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVtcGxhdGVzL2NlbGwtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYRGF0ZVBpY2tlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1jb2x1bW4uY29tcG9uZW50JztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhHcmlkRGF0YUNvbHVtbiB7XG5cblxuICAgIEBDb250ZW50Q2hpbGQoQVhEYXRhR3JpZENlbGxUZW1wbGF0ZUNvbXBvbmVudClcbiAgICBjZWxsVGVtcGxhdGU6IEFYRGF0YUdyaWRDZWxsVGVtcGxhdGVDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHdpZHRoOiBudW1iZXIgPSAxMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heFdpZHRoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbldpZHRoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHBpbm5lZDogJ3N0YXJ0JyB8ICdlbmQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93U29ydGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RmlsdGVyaW5nOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdkYXRhZ3JpZC5hbGxvd0ZpbHRlcmluZycpIHx8IGZhbHNlOztcblxuICAgIEBJbnB1dCgpXG4gICAgY2VsbENsYXNzOiAocGFyYW1zOiBBWEdyaWRDZWxsUGFyYW1zKSA9PiAoc3RyaW5nIHwgc3RyaW5nW10pIHwgKHN0cmluZyB8IHN0cmluZ1tdKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc29ydDogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgZmllbGQ6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBjYXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgY2VsbFJlbmRlcmVyUGFyYW1zOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIGNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlYWRlckNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdyb3VwSW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICB0cmVlSW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICBlbmFibGVSb3dHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBoaWRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGZsb2F0aW5nRmlsdGVyOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdkYXRhZ3JpZC5mbG9hdGluZ0ZpbHRlcicpIHx8IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICByZXNpemFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBtZW51Q29sdW1uRGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBtZW51SXRlbURpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICByZW5kZXIoKTogYW55IHtcbiAgICAgICAgY29uc3QgY29sOiBhbnkgPSB7XG4gICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxuICAgICAgICB9O1xuICAgICAgICBjb2wucmVzaXphYmxlID0gdGhpcy5yZXNpemFibGU7XG4gICAgICAgIGNvbC5zdXBwcmVzc01lbnUgPSB0aGlzLmRpc2FibGVNZW51O1xuICAgICAgICBjb2wubWVudVRhYnMgPSBbJ2ZpbHRlck1lbnVUYWInLCAnY29sdW1uc01lbnVUYWInLCAnZ2VuZXJhbE1lbnVUYWInXVxuICAgICAgICBjb2wuZmxvYXRpbmdGaWx0ZXIgPSB0aGlzLmZsb2F0aW5nRmlsdGVyO1xuXG4gICAgICAgIGlmICghdGhpcy5hbGxvd0ZpbHRlcmluZykge1xuICAgICAgICAgICAgY29sLmZpbHRlciA9IGZhbHNlO1xuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2ZpbHRlck1lbnVUYWInKTtcbiAgICAgICAgICAgIGNvbC5mbG9hdGluZ0ZpbHRlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1lbnVDb2x1bW5EaXNhYmxlID09IHRydWUpIHtcbiAgICAgICAgICAgIGNvbC5tZW51VGFicyA9IGNvbC5tZW51VGFicy5maWx0ZXIoYyA9PiBjICE9ICdjb2x1bW5zTWVudVRhYicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1lbnVJdGVtRGlzYWJsZSA9PSB0cnVlKSB7XG4gICAgICAgICAgICBjb2wubWVudVRhYnMgPSBjb2wubWVudVRhYnMuZmlsdGVyKGMgPT4gYyAhPSAnZ2VuZXJhbE1lbnVUYWInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jYXB0aW9uKSB7XG4gICAgICAgICAgICBjb2wuaGVhZGVyTmFtZSA9IHRoaXMuY2FwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW5XaWR0aCkge1xuICAgICAgICAgICAgY29sLm1pbldpZHRoID0gdGhpcy5taW5XaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tYXhXaWR0aCkge1xuICAgICAgICAgICAgY29sLm1heFdpZHRoID0gdGhpcy5tYXhXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5waW5uZWQpIHtcbiAgICAgICAgICAgIGNvbC5waW5uZWQgPSB0aGlzLnBpbm5lZCA9PT0gJ3N0YXJ0JyA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgICAgICAgICAvLyBUT0RPOiBDaGFuZ2UgYmFzZWQgb24gbGF5b3V0XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWxsb3dTb3J0aW5nKSB7XG4gICAgICAgICAgICBjb2wuc29ydGFibGUgPSB0aGlzLmFsbG93U29ydGluZztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zb3J0KSB7XG4gICAgICAgICAgICBjb2wuc29ydCA9IHRoaXMuc29ydDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmdyb3VwSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLmdyb3VwSW5kZXg7XG4gICAgICAgICAgICBjb2wucm93R3JvdXAgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5lbmFibGVSb3dHcm91cCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50cmVlSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29sLnJvd0dyb3VwSW5kZXggPSB0aGlzLnRyZWVJbmRleDtcbiAgICAgICAgICAgIGNvbC5yb3dHcm91cCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhpZGUpIHtcbiAgICAgICAgICAgIGNvbC5oaWRlID0gdHJ1ZTtcblxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZVJvd0dyb3VwKSB7XG4gICAgICAgICAgICBjb2wuZW5hYmxlUm93R3JvdXAgPSB0aGlzLmVuYWJsZVJvd0dyb3VwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzKSB7XG4gICAgICAgICAgICBjb25zdCBUSEFUID0gdGhpcztcbiAgICAgICAgICAgIGlmICh0aGlzLmNlbGxDbGFzcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29sLmNlbGxDbGFzcyA9IChwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBUSEFULmNlbGxDbGFzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IFRIQVQsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleDogcC5ub2RlLnJvd0luZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93TGV2ZWw6IHAubm9kZS5sZXZlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHAuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2wuY2VsbENsYXNzID0gdGhpcy5jZWxsQ2xhc3M7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL1xuICAgICAgICBpZiAodGhpcy5jZWxsVGVtcGxhdGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29sLmNlbGxSZW5kZXJlckZyYW1ld29yayA9IHRoaXMuY2VsbFRlbXBsYXRlLnJlbmRlcmVyO1xuICAgICAgICAgICAgY29sLmNlbGxSZW5kZXJlclBhcmFtcyA9IHRoaXMuY2VsbFRlbXBsYXRlLnBhcmFtcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94KSB7XG4gICAgICAgICAgICBjb2wuY2hlY2tib3hTZWxlY3Rpb24gPSAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gIGNvbC5oZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IHRoaXMuaGVhZGVyQ2hlY2tib3g7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbDtcbiAgICB9XG59XG5cblxuXG5cblxuXG5cblxuIl19