@acorex/data-grid 3.0.21 → 3.0.25

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 (93) hide show
  1. package/acorex-data-grid.d.ts +4 -0
  2. package/acorex-data-grid.metadata.json +1 -0
  3. package/bundles/acorex-data-grid.umd.js +2224 -0
  4. package/bundles/acorex-data-grid.umd.js.map +1 -0
  5. package/bundles/acorex-data-grid.umd.min.js +16 -0
  6. package/bundles/acorex-data-grid.umd.min.js.map +1 -0
  7. package/esm2015/acorex-data-grid.js +5 -0
  8. package/esm2015/lib/data-grid/columns/check-column.component.js +104 -0
  9. package/esm2015/lib/data-grid/columns/column.component.js +204 -0
  10. package/esm2015/lib/data-grid/columns/command-column.component.js +103 -0
  11. package/esm2015/lib/data-grid/columns/date-column.component.js +114 -0
  12. package/esm2015/lib/data-grid/columns/row-number-column.component.js +39 -0
  13. package/esm2015/lib/data-grid/columns/selection-column.component.js +42 -0
  14. package/esm2015/lib/data-grid/columns/text-column.component.js +81 -0
  15. package/esm2015/lib/data-grid/datagrid.component.js +709 -0
  16. package/esm2015/lib/data-grid/datagrid.events.js +1 -0
  17. package/esm2015/lib/data-grid/datagrid.module.js +98 -0
  18. package/esm2015/lib/data-grid/filters/filter.component.js +25 -0
  19. package/esm2015/lib/data-grid/templates/cell-template.component.js +47 -0
  20. package/esm2015/lib/data-grid/templates/detail-template.component.js +45 -0
  21. package/esm2015/lib/data-grid/templates/row-template.component.js +40 -0
  22. package/esm2015/lib/data-lov/data-lov-popup/data-lov-popup.component.js +121 -0
  23. package/esm2015/lib/data-lov/data-lov.component.js +206 -0
  24. package/esm2015/lib/data-lov/data-lov.module.js +21 -0
  25. package/esm2015/public-api.js +17 -0
  26. package/esm5/acorex-data-grid.js +5 -0
  27. package/esm5/lib/data-grid/columns/check-column.component.js +102 -0
  28. package/esm5/lib/data-grid/columns/column.component.js +206 -0
  29. package/esm5/lib/data-grid/columns/command-column.component.js +98 -0
  30. package/esm5/lib/data-grid/columns/date-column.component.js +119 -0
  31. package/esm5/lib/data-grid/columns/row-number-column.component.js +42 -0
  32. package/esm5/lib/data-grid/columns/selection-column.component.js +46 -0
  33. package/esm5/lib/data-grid/columns/text-column.component.js +81 -0
  34. package/esm5/lib/data-grid/datagrid.component.js +767 -0
  35. package/esm5/lib/data-grid/datagrid.events.js +1 -0
  36. package/esm5/lib/data-grid/datagrid.module.js +101 -0
  37. package/esm5/lib/data-grid/filters/filter.component.js +16 -0
  38. package/esm5/lib/data-grid/templates/cell-template.component.js +46 -0
  39. package/esm5/lib/data-grid/templates/detail-template.component.js +49 -0
  40. package/esm5/lib/data-grid/templates/row-template.component.js +44 -0
  41. package/esm5/lib/data-lov/data-lov-popup/data-lov-popup.component.js +127 -0
  42. package/esm5/lib/data-lov/data-lov.component.js +216 -0
  43. package/esm5/lib/data-lov/data-lov.module.js +24 -0
  44. package/esm5/public-api.js +17 -0
  45. package/fesm2015/acorex-data-grid.js +1901 -0
  46. package/fesm2015/acorex-data-grid.js.map +1 -0
  47. package/fesm5/acorex-data-grid.js +1980 -0
  48. package/fesm5/acorex-data-grid.js.map +1 -0
  49. package/lib/data-grid/columns/check-column.component.d.ts +30 -0
  50. package/lib/data-grid/columns/column.component.d.ts +29 -0
  51. package/lib/data-grid/columns/command-column.component.d.ts +22 -0
  52. package/lib/data-grid/columns/date-column.component.d.ts +27 -0
  53. package/lib/data-grid/columns/row-number-column.component.d.ts +7 -0
  54. package/lib/data-grid/columns/selection-column.component.d.ts +8 -0
  55. package/lib/data-grid/columns/text-column.component.d.ts +20 -0
  56. package/lib/data-grid/datagrid.component.d.ts +129 -0
  57. package/{src/lib/data-grid/datagrid.events.ts → lib/data-grid/datagrid.events.d.ts} +1 -4
  58. package/lib/data-grid/datagrid.module.d.ts +3 -0
  59. package/lib/data-grid/filters/filter.component.d.ts +2 -0
  60. package/lib/data-grid/templates/cell-template.component.d.ts +17 -0
  61. package/lib/data-grid/templates/detail-template.component.d.ts +16 -0
  62. package/lib/data-grid/templates/row-template.component.d.ts +15 -0
  63. package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +29 -0
  64. package/lib/data-lov/data-lov.component.d.ts +39 -0
  65. package/lib/data-lov/data-lov.module.d.ts +2 -0
  66. package/package.json +27 -17
  67. package/{src/public-api.ts → public-api.d.ts} +0 -3
  68. package/karma.conf.js +0 -32
  69. package/ng-package.json +0 -12
  70. package/src/lib/data-grid/columns/check-column.component.ts +0 -113
  71. package/src/lib/data-grid/columns/column.component.ts +0 -181
  72. package/src/lib/data-grid/columns/command-column.component.ts +0 -102
  73. package/src/lib/data-grid/columns/date-column.component.ts +0 -119
  74. package/src/lib/data-grid/columns/row-number-column.component.ts +0 -36
  75. package/src/lib/data-grid/columns/selection-column.component.ts +0 -37
  76. package/src/lib/data-grid/columns/text-column.component.ts +0 -92
  77. package/src/lib/data-grid/datagrid.component.html +0 -26
  78. package/src/lib/data-grid/datagrid.component.ts +0 -724
  79. package/src/lib/data-grid/datagrid.module.ts +0 -93
  80. package/src/lib/data-grid/filters/filter.component.ts +0 -21
  81. package/src/lib/data-grid/templates/cell-template.component.ts +0 -47
  82. package/src/lib/data-grid/templates/detail-template.component.ts +0 -43
  83. package/src/lib/data-grid/templates/row-template.component.ts +0 -41
  84. package/src/lib/data-lov/data-lov-popup/data-lov-popup.component.html +0 -16
  85. package/src/lib/data-lov/data-lov-popup/data-lov-popup.component.ts +0 -135
  86. package/src/lib/data-lov/data-lov.component.html +0 -61
  87. package/src/lib/data-lov/data-lov.component.ts +0 -177
  88. package/src/lib/data-lov/data-lov.module.ts +0 -17
  89. package/src/test.ts +0 -26
  90. package/tsconfig.lib.json +0 -23
  91. package/tsconfig.lib.prod.json +0 -6
  92. package/tsconfig.spec.json +0 -17
  93. package/tslint.json +0 -17
@@ -0,0 +1,206 @@
1
+ var AXLOVComponent_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { Component, Input, ContentChildren, QueryList, Output, EventEmitter, ContentChild, ViewChild, ViewEncapsulation, ElementRef, TemplateRef } from '@angular/core';
4
+ import { AXPopupService, AXBaseInputComponent, AXBaseSizableComponent, AXElementSize, AXValidation } from '@acorex/components';
5
+ import { AXDataSourceComponent, AXSelectBoxComponent, AXValidatableComponent } from '@acorex/components';
6
+ import { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';
7
+ import { AXGridDataColumn } from '../data-grid/columns/column.component';
8
+ import { AXConfig } from '@acorex/core';
9
+ let AXLOVComponent = AXLOVComponent_1 = class AXLOVComponent extends AXValidatableComponent {
10
+ constructor(popup, ref) {
11
+ super();
12
+ this.popup = popup;
13
+ this.ref = ref;
14
+ this.textField = '';
15
+ this.allowSearch = true;
16
+ this.valueField = '';
17
+ this.hasChildField = 'null';
18
+ this.allowNull = true;
19
+ this.popupSize = 'md';
20
+ this.selectedItems = [];
21
+ // @Input()
22
+ // selectedValues: any[] = [];
23
+ this.readonly = false;
24
+ this.disabled = false;
25
+ this.chipsWidth = '';
26
+ this.size = 'md';
27
+ this.mode = 'single';
28
+ this.onSelectionChange = new EventEmitter();
29
+ this.rtl = AXConfig.get('layout.rtl');
30
+ }
31
+ get validation() {
32
+ return this._validation ? this._validation : this._contentValidation;
33
+ }
34
+ set validation(v) {
35
+ this._validation = v;
36
+ }
37
+ focus() { this.selectBox.focus(); }
38
+ refresh() {
39
+ this.selectBox.refresh();
40
+ }
41
+ handleButtonClick() {
42
+ this.open();
43
+ }
44
+ ngOnInit() {
45
+ if (this.rtl == null) {
46
+ this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';
47
+ }
48
+ // this.selectVal = this.selectedValues;
49
+ this.onSelectionChange.subscribe(c => {
50
+ this.clearValidationStyle(this.ref.nativeElement);
51
+ });
52
+ }
53
+ ngAfterContentInit() {
54
+ this.initValidation(this.ref, 'selectedItems', this.validation);
55
+ }
56
+ handleSelectChange(e) {
57
+ // console.log('se' + JSON.stringify(e));
58
+ this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });
59
+ }
60
+ open() {
61
+ return new Promise((resolve) => {
62
+ this.selectBox.dropdown.close();
63
+ this.popup.open(AXDataLovPopupComponent, {
64
+ size: this.popupSize,
65
+ data: {
66
+ dataSource: this.dataSource,
67
+ selectionMode: this.mode,
68
+ columns: this.columns.toArray(),
69
+ // selectedItems: this.selectedValues,
70
+ selectedItems: this.selectedItems,
71
+ keyField: this.valueField,
72
+ allowNull: this.allowNull,
73
+ hasChildField: this.hasChildField,
74
+ rtl: this.rtl
75
+ },
76
+ title: this.caption,
77
+ }).then(c => {
78
+ if (c.data) {
79
+ // this.selectedValues = [];
80
+ this.selectedItems = [];
81
+ c.data.forEach(elm => {
82
+ this.selectedItems.push(elm);
83
+ });
84
+ // this.selectedItems = c.data;
85
+ // this.selectBox.refresh();
86
+ // console.log('se' + JSON.stringify(this.selectedItems));
87
+ this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });
88
+ if (resolve) {
89
+ resolve(c.data);
90
+ }
91
+ }
92
+ else {
93
+ if (resolve) {
94
+ resolve();
95
+ }
96
+ }
97
+ this.selectBox.refresh();
98
+ });
99
+ });
100
+ }
101
+ };
102
+ AXLOVComponent.ctorParameters = () => [
103
+ { type: AXPopupService },
104
+ { type: ElementRef }
105
+ ];
106
+ __decorate([
107
+ ContentChild(AXValidation, { static: true }),
108
+ __metadata("design:type", AXValidation)
109
+ ], AXLOVComponent.prototype, "_contentValidation", void 0);
110
+ __decorate([
111
+ Input(),
112
+ __metadata("design:type", AXValidation),
113
+ __metadata("design:paramtypes", [AXValidation])
114
+ ], AXLOVComponent.prototype, "validation", null);
115
+ __decorate([
116
+ ViewChild('selectBox', { static: true }),
117
+ __metadata("design:type", AXSelectBoxComponent)
118
+ ], AXLOVComponent.prototype, "selectBox", void 0);
119
+ __decorate([
120
+ ContentChild(AXDataSourceComponent, { static: true }),
121
+ __metadata("design:type", AXDataSourceComponent)
122
+ ], AXLOVComponent.prototype, "dataSource", void 0);
123
+ __decorate([
124
+ ContentChildren(AXGridDataColumn),
125
+ __metadata("design:type", QueryList)
126
+ ], AXLOVComponent.prototype, "columns", void 0);
127
+ __decorate([
128
+ ContentChild('itemTemplate', { static: true }),
129
+ __metadata("design:type", TemplateRef)
130
+ ], AXLOVComponent.prototype, "rowTemplate", void 0);
131
+ __decorate([
132
+ Input(),
133
+ __metadata("design:type", String)
134
+ ], AXLOVComponent.prototype, "textField", void 0);
135
+ __decorate([
136
+ Input(),
137
+ __metadata("design:type", Boolean)
138
+ ], AXLOVComponent.prototype, "allowSearch", void 0);
139
+ __decorate([
140
+ Input(),
141
+ __metadata("design:type", String)
142
+ ], AXLOVComponent.prototype, "valueField", void 0);
143
+ __decorate([
144
+ Input(),
145
+ __metadata("design:type", String)
146
+ ], AXLOVComponent.prototype, "hasChildField", void 0);
147
+ __decorate([
148
+ Input(),
149
+ __metadata("design:type", Boolean)
150
+ ], AXLOVComponent.prototype, "allowNull", void 0);
151
+ __decorate([
152
+ Input(),
153
+ __metadata("design:type", String)
154
+ ], AXLOVComponent.prototype, "popupSize", void 0);
155
+ __decorate([
156
+ Input(),
157
+ __metadata("design:type", Array)
158
+ ], AXLOVComponent.prototype, "selectedItems", void 0);
159
+ __decorate([
160
+ Input(),
161
+ __metadata("design:type", Boolean)
162
+ ], AXLOVComponent.prototype, "readonly", void 0);
163
+ __decorate([
164
+ Input(),
165
+ __metadata("design:type", Boolean)
166
+ ], AXLOVComponent.prototype, "disabled", void 0);
167
+ __decorate([
168
+ Input(),
169
+ __metadata("design:type", String)
170
+ ], AXLOVComponent.prototype, "chipsWidth", void 0);
171
+ __decorate([
172
+ Input(),
173
+ __metadata("design:type", String)
174
+ ], AXLOVComponent.prototype, "size", void 0);
175
+ __decorate([
176
+ Input(),
177
+ __metadata("design:type", String)
178
+ ], AXLOVComponent.prototype, "caption", void 0);
179
+ __decorate([
180
+ Input(),
181
+ __metadata("design:type", String)
182
+ ], AXLOVComponent.prototype, "mode", void 0);
183
+ __decorate([
184
+ Input(),
185
+ __metadata("design:type", String)
186
+ ], AXLOVComponent.prototype, "placeholder", void 0);
187
+ __decorate([
188
+ Output(),
189
+ __metadata("design:type", EventEmitter)
190
+ ], AXLOVComponent.prototype, "onSelectionChange", void 0);
191
+ __decorate([
192
+ Input(),
193
+ __metadata("design:type", Boolean)
194
+ ], AXLOVComponent.prototype, "rtl", void 0);
195
+ AXLOVComponent = AXLOVComponent_1 = __decorate([
196
+ Component({
197
+ selector: 'ax-lov',
198
+ template: "<ax-select-box [rowInputTemplate]=\"rowTemplate\" [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\r\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\r\n [disabled]=\"disabled\" [mode]=\"mode\" [(selectedItems)]=\"selectedItems\"\r\n (selectionChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"light blank\" (click)=\"handleButtonClick()\" end\r\n [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n</ax-select-box>\r\n\r\n\r\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\r\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\r\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\r\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\r\n [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n</ax-select-box2> -->\r\n\r\n\r\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\r\n <div class=\"ax-field-set\">\r\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\r\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\r\n <legend *ngIf=\"label\">\r\n {{ label }}\r\n </legend>\r\n </fieldset>\r\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\r\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\r\n <div class=\"ax-field-set-button\">\r\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\r\n <i class=\"far fa-times\"></i>\r\n </button>\r\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\r\n <i class=\"far fa-check-circle\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"validation-text\" *ngIf=\"errorText\">\r\n {{ errorText }}\r\n </div>\r\n\r\n</div> -->",
199
+ encapsulation: ViewEncapsulation.None,
200
+ host: { style: 'width: 100%' },
201
+ providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent_1 }]
202
+ }),
203
+ __metadata("design:paramtypes", [AXPopupService, ElementRef])
204
+ ], AXLOVComponent);
205
+ export { AXLOVComponent };
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1sb3YvZGF0YS1sb3YuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SyxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQWUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBV3hDLElBQWEsY0FBYyxzQkFBM0IsTUFBYSxjQUFlLFNBQVEsc0JBQXNCO0lBY3hELFlBQW9CLEtBQXFCLEVBQVUsR0FBZTtRQUNoRSxLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQW1CbEUsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUd2QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUc1QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBR3hCLGtCQUFhLEdBQVcsTUFBTSxDQUFDO1FBRy9CLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFHMUIsY0FBUyxHQUFnQyxJQUFJLENBQUM7UUFHOUMsa0JB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QUFDO0tBQzlFLENBQUM7cUNBZTJCLGNBQWMsRUFBZSxVQUFVO0dBZHZELGNBQWMsQ0FnSzFCO1NBaEtZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbnRlbnRDaGlsZCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UsIEFYQmFzZUlucHV0Q29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEVsZW1lbnRTaXplLCBBWFZhbGlkYXRpb24gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VDb21wb25lbnQsIEFYU2VsZWN0Qm94Q29tcG9uZW50LCBBWERhdGFFdmVudCwgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWxvdi1wb3B1cC9kYXRhLWxvdi1wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWEdyaWREYXRhQ29sdW1uIH0gZnJvbSAnLi4vZGF0YS1ncmlkL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1sb3YnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWxvdi5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IHN0eWxlOid3aWR0aDogMTAwJScgfSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExPVkNvbXBvbmVudCB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhMT1ZDb21wb25lbnQgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCwgQVhCYXNlSW5wdXRDb21wb25lbnQge1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYVmFsaWRhdGlvbiwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb250ZW50VmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xyXG4gIHByaXZhdGUgX3ZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb24oKTogQVhWYWxpZGF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZhbGlkYXRpb24odjogQVhWYWxpZGF0aW9uKSB7XHJcbiAgICB0aGlzLl92YWxpZGF0aW9uID0gdjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXA6IEFYUG9wdXBTZXJ2aWNlLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgc2VsZWN0Qm94OiBBWFNlbGVjdEJveENvbXBvbmVudDtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWERhdGFTb3VyY2VDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKEFYR3JpZERhdGFDb2x1bW4pXHJcbiAgcHJpdmF0ZSBjb2x1bW5zOiBRdWVyeUxpc3Q8QVhHcmlkRGF0YUNvbHVtbj47XHJcblxyXG5cclxuICBAQ29udGVudENoaWxkKCdpdGVtVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHJvd1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICB0ZXh0RmllbGQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFsbG93U2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBoYXNDaGlsZEZpZWxkOiBzdHJpbmcgPSAnbnVsbCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dOdWxsOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwb3B1cFNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICdmdWxsJyA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgLy8gQElucHV0KClcclxuICAvLyBzZWxlY3RlZFZhbHVlczogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2hpcHNXaWR0aDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2FwdGlvbjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhEYXRhRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUV2ZW50PGFueT4+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcnRsOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJyk7XHJcblxyXG5cclxuICBmb2N1cygpOiB2b2lkIHsgdGhpcy5zZWxlY3RCb3guZm9jdXMoKTsgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5zZWxlY3RCb3gucmVmcmVzaCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQnV0dG9uQ2xpY2soKSB7XHJcbiAgICB0aGlzLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucnRsID09IG51bGwpIHtcclxuICAgICAgdGhpcy5ydGwgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XHJcbiAgICB9XHJcbiAgICAvLyAgdGhpcy5zZWxlY3RWYWwgPSB0aGlzLnNlbGVjdGVkVmFsdWVzO1xyXG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICdzZWxlY3RlZEl0ZW1zJywgdGhpcy52YWxpZGF0aW9uKTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVTZWxlY3RDaGFuZ2UoZSkge1xyXG5cclxuICAgIC8vICBjb25zb2xlLmxvZygnc2UnICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xyXG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgZGF0YTogdGhpcy5zZWxlY3RlZEl0ZW1zLCBjb21wb25lbnQ6IHRoaXMsIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBvcGVuKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RCb3guZHJvcGRvd24uY2xvc2UoKTtcclxuICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgICAgc2l6ZTogdGhpcy5wb3B1cFNpemUsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxyXG4gICAgICAgICAgc2VsZWN0aW9uTW9kZTogdGhpcy5tb2RlLFxyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLnRvQXJyYXkoKSxcclxuICAgICAgICAgIC8vICBzZWxlY3RlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkVmFsdWVzLFxyXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zLFxyXG4gICAgICAgICAga2V5RmllbGQ6IHRoaXMudmFsdWVGaWVsZCxcclxuICAgICAgICAgIGFsbG93TnVsbDogdGhpcy5hbGxvd051bGwsXHJcbiAgICAgICAgICBoYXNDaGlsZEZpZWxkOiB0aGlzLmhhc0NoaWxkRmllbGQsXHJcbiAgICAgICAgICBydGw6IHRoaXMucnRsXHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuY2FwdGlvbixcclxuICAgICAgICAvLyBzaXplOiB0aGlzLnNpemUsXHJcbiAgICAgIH0pLnRoZW4oYyA9PiB7XHJcblxyXG4gICAgICAgIGlmIChjLmRhdGEpIHtcclxuICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgICAgICAgYy5kYXRhLmZvckVhY2goZWxtID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goZWxtKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICAvLyAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gYy5kYXRhO1xyXG4gICAgICAgICAgLy8gIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcclxuICAgICAgICAgIC8vICAgIGNvbnNvbGUubG9nKCdzZScgKyBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkSXRlbXMpKTtcclxuICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtcywgY29tcG9uZW50OiB0aGlzLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICAgICAgICAgIGlmIChyZXNvbHZlKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoYy5kYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlc29sdmUpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RCb3gucmVmcmVzaCgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { AXLOVComponent } from './data-lov.component';
5
+ import { FormsModule } from '@angular/forms';
6
+ import { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';
7
+ import { AXDataGridModule } from '../data-grid/datagrid.module';
8
+ import { AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSearchBoxModule, AXSelectBoxModule } from '@acorex/components';
9
+ let AXLOVModule = class AXLOVModule {
10
+ };
11
+ AXLOVModule = __decorate([
12
+ NgModule({
13
+ declarations: [AXLOVComponent, AXDataLovPopupComponent],
14
+ imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule],
15
+ exports: [AXLOVComponent, AXDataLovPopupComponent],
16
+ providers: [],
17
+ entryComponents: [AXDataLovPopupComponent]
18
+ })
19
+ ], AXLOVModule);
20
+ export { AXLOVModule };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1sb3YvZGF0YS1sb3YubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFVL0gsSUFBYSxXQUFXLEdBQXhCLE1BQWEsV0FBVztDQUFJLENBQUE7QUFBZixXQUFXO0lBUHZCLFFBQVEsQ0FBQztRQUNOLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQztRQUN2RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7UUFDakosT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHVCQUF1QixDQUFDO1FBQ2xELFNBQVMsRUFBRSxFQUFFO1FBQ2IsZUFBZSxFQUFFLENBQUMsdUJBQXVCLENBQUM7S0FDN0MsQ0FBQztHQUNXLFdBQVcsQ0FBSTtTQUFmLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWExPVkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1sb3YuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWxvdi1wb3B1cC9kYXRhLWxvdi1wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWERhdGFHcmlkTW9kdWxlIH0gZnJvbSAnLi4vZGF0YS1ncmlkL2RhdGFncmlkLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYRGF0YVNvdXJjZU1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYVG9vbGJhck1vZHVsZSwgQVhTZWFyY2hCb3hNb2R1bGUsIEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbQVhMT1ZDb21wb25lbnQsIEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50XSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWERhdGFHcmlkTW9kdWxlLCBBWERhdGFTb3VyY2VNb2R1bGUsIEFYQnV0dG9uTW9kdWxlLCBBWFRvb2xiYXJNb2R1bGUsIEFYU2VsZWN0Qm94TW9kdWxlLCBBWFNlYXJjaEJveE1vZHVsZV0sXHJcbiAgICBleHBvcnRzOiBbQVhMT1ZDb21wb25lbnQsIEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtBWERhdGFMb3ZQb3B1cENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYTE9WTW9kdWxlIHsgfSJdfQ==
@@ -0,0 +1,17 @@
1
+ export * from './lib/data-grid/columns/check-column.component';
2
+ export * from './lib/data-grid/columns/column.component';
3
+ export * from './lib/data-grid/columns/command-column.component';
4
+ export * from './lib/data-grid/columns/date-column.component';
5
+ export * from './lib/data-grid/columns/selection-column.component';
6
+ export * from './lib/data-grid/columns/text-column.component';
7
+ export * from './lib/data-grid/columns/row-number-column.component';
8
+ export * from './lib/data-grid/datagrid.component';
9
+ export * from './lib/data-grid/datagrid.module';
10
+ export * from './lib/data-grid/filters/filter.component';
11
+ export * from './lib/data-grid/templates/cell-template.component';
12
+ export * from './lib/data-grid/templates/row-template.component';
13
+ export * from './lib/data-grid/templates/detail-template.component';
14
+ export * from './lib/data-lov/data-lov-popup/data-lov-popup.component';
15
+ export * from './lib/data-lov/data-lov.component';
16
+ export * from './lib/data-lov/data-lov.module';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHFEQUFxRCxDQUFDO0FBRXBFLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHFEQUFxRCxDQUFDO0FBRXBFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2NvbHVtbnMvY2hlY2stY29sdW1uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvY29sdW1ucy9jb21tYW5kLWNvbHVtbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvY29sdW1ucy9kYXRlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvY29sdW1ucy9zZWxlY3Rpb24tY29sdW1uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC9jb2x1bW5zL3RleHQtY29sdW1uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC9jb2x1bW5zL3Jvdy1udW1iZXItY29sdW1uLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvZGF0YWdyaWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2RhdGFncmlkLmV2ZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC9kYXRhZ3JpZC5tb2R1bGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2ZpbHRlcnMvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC90ZW1wbGF0ZXMvY2VsbC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvdGVtcGxhdGVzL3Jvdy10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvdGVtcGxhdGVzL2RldGFpbC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1sb3YvZGF0YS1sb3YtcG9wdXAvZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1sb3YvZGF0YS1sb3YuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1sb3YvZGF0YS1sb3YubW9kdWxlJztcclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsiYWNvcmV4LWRhdGEtZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,102 @@
1
+ import { __decorate, __extends, __metadata } from "tslib";
2
+ import { Component, ChangeDetectionStrategy, ViewChild, ViewContainerRef } from '@angular/core';
3
+ import { AXGridDataColumn } from './column.component';
4
+ var AXGridCheckColumn = /** @class */ (function (_super) {
5
+ __extends(AXGridCheckColumn, _super);
6
+ function AXGridCheckColumn() {
7
+ return _super.call(this) || this;
8
+ }
9
+ AXGridCheckColumn_1 = AXGridCheckColumn;
10
+ AXGridCheckColumn.prototype.render = function () {
11
+ var col = _super.prototype.render.call(this);
12
+ if (!col.cellRendererFramework) {
13
+ col.cellRendererFramework = BooleanRenderer;
14
+ }
15
+ if (this.allowFiltering) {
16
+ col.filterFramework = BooleanFilterRenderer;
17
+ }
18
+ return col;
19
+ };
20
+ var AXGridCheckColumn_1;
21
+ AXGridCheckColumn = AXGridCheckColumn_1 = __decorate([
22
+ Component({
23
+ selector: 'ax-check-column',
24
+ template: '',
25
+ providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn_1 }],
26
+ changeDetection: ChangeDetectionStrategy.OnPush
27
+ }),
28
+ __metadata("design:paramtypes", [])
29
+ ], AXGridCheckColumn);
30
+ return AXGridCheckColumn;
31
+ }(AXGridDataColumn));
32
+ export { AXGridCheckColumn };
33
+ var BooleanRenderer = /** @class */ (function () {
34
+ function BooleanRenderer() {
35
+ }
36
+ BooleanRenderer.prototype.agInit = function (params) {
37
+ this.value = params.value;
38
+ };
39
+ BooleanRenderer.prototype.refresh = function (params) {
40
+ this.value = params.value;
41
+ return true;
42
+ };
43
+ BooleanRenderer = __decorate([
44
+ Component({
45
+ template: "\n <ax-check-box [value]='value' readonly='true'></ax-check-box>\n ",
46
+ changeDetection: ChangeDetectionStrategy.OnPush
47
+ }),
48
+ __metadata("design:paramtypes", [])
49
+ ], BooleanRenderer);
50
+ return BooleanRenderer;
51
+ }());
52
+ export { BooleanRenderer };
53
+ var BooleanFilterRenderer = /** @class */ (function () {
54
+ function BooleanFilterRenderer() {
55
+ this.value = null;
56
+ this.selectItem = [
57
+ { value: 0, label: 'True' },
58
+ { value: 1, label: 'False' },
59
+ ];
60
+ }
61
+ BooleanFilterRenderer.prototype.agInit = function (params) {
62
+ this.params = params;
63
+ this.valueGetter = params.valueGetter;
64
+ };
65
+ BooleanFilterRenderer.prototype.isFilterActive = function () {
66
+ return this.value !== null && this.value !== undefined;
67
+ };
68
+ BooleanFilterRenderer.prototype.doesFilterPass = function (params) {
69
+ return this.value === this.valueGetter(params.node);
70
+ };
71
+ BooleanFilterRenderer.prototype.getModel = function () {
72
+ return { value: this.value };
73
+ };
74
+ BooleanFilterRenderer.prototype.setModel = function (model) {
75
+ this.value = model ? model.value : null;
76
+ };
77
+ BooleanFilterRenderer.prototype.ngAfterViewInit = function (params) {
78
+ var _this = this;
79
+ window.setTimeout(function () {
80
+ _this.input.element.nativeElement.focus();
81
+ });
82
+ };
83
+ BooleanFilterRenderer.prototype.onChange = function (newValue) {
84
+ if (this.value !== newValue) {
85
+ this.value = newValue;
86
+ this.params.filterChangedCallback();
87
+ }
88
+ };
89
+ __decorate([
90
+ ViewChild('input', { static: true, read: ViewContainerRef }),
91
+ __metadata("design:type", Object)
92
+ ], BooleanFilterRenderer.prototype, "input", void 0);
93
+ BooleanFilterRenderer = __decorate([
94
+ Component({
95
+ template: "\n <ax-data-grid-filter>\n <ax-select-box\n label='Select Box'\n [items]='selectItem'\n ></ax-select-box>\n </ax-data-grid-filter>\n ",
96
+ changeDetection: ChangeDetectionStrategy.OnPush
97
+ })
98
+ ], BooleanFilterRenderer);
99
+ return BooleanFilterRenderer;
100
+ }());
101
+ export { BooleanFilterRenderer };
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NoZWNrLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFpQnREO0lBQXVDLHFDQUFnQjtJQUNyRDtlQUNFLGlCQUFPO0lBQ1QsQ0FBQzswQkFIVSxpQkFBaUI7SUFLNUIsa0NBQU0sR0FBTjtRQUNFLElBQU0sR0FBRyxHQUFHLGlCQUFNLE1BQU0sV0FBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsR0FBRyxDQUFDLHFCQUFxQixHQUFHLGVBQWUsQ0FBQztTQUM3QztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixHQUFHLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDO1NBQzdDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOztJQWRVLGlCQUFpQjtRQVA3QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG1CQUFpQixFQUFFLENBQUM7WUFDMUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07U0FDaEQsQ0FBQzs7T0FFVyxpQkFBaUIsQ0FlN0I7SUFBRCx3QkFBQztDQUFBLEFBZkQsQ0FBdUMsZ0JBQWdCLEdBZXREO1NBZlksaUJBQWlCO0FBdUI5QjtJQUVFO0lBQWdCLENBQUM7SUFDakIsZ0NBQU0sR0FBTixVQUFPLE1BQTJCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsaUNBQU8sR0FBUCxVQUFRLE1BQTJCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFUVSxlQUFlO1FBTjNCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSx5RUFFVDtZQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1NBQ2hELENBQUM7O09BQ1csZUFBZSxDQVUzQjtJQUFELHNCQUFDO0NBQUEsQUFWRCxJQVVDO1NBVlksZUFBZTtBQXVCNUI7SUFBQTtRQUNTLFVBQUssR0FBYSxJQUFJLENBQUM7UUFLOUIsZUFBVSxHQUFHO1lBQ1gsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDM0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7U0FDN0IsQ0FBQztJQWtDSixDQUFDO0lBakNDLHNDQUFNLEdBQU4sVUFBTyxNQUFxQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELDhDQUFjLEdBQWQ7UUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFFRCw4Q0FBYyxHQUFkLFVBQWUsTUFBNkI7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx3Q0FBUSxHQUFSO1FBQ0UsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELHdDQUFRLEdBQVIsVUFBUyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELCtDQUFlLEdBQWYsVUFBZ0IsTUFBK0I7UUFBL0MsaUJBSUM7UUFIQyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hCLEtBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3Q0FBUSxHQUFSLFVBQVMsUUFBUTtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQXRDNkQ7UUFBN0QsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7O3dEQUFjO0lBSmhFLHFCQUFxQjtRQVhqQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsc0tBT1Q7WUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtTQUNoRCxDQUFDO09BQ1cscUJBQXFCLENBMkNqQztJQUFELDRCQUFDO0NBQUEsQUEzQ0QsSUEyQ0M7U0EzQ1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhHcmlkRGF0YUNvbHVtbiB9IGZyb20gJy4vY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCwgSUZpbHRlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxyXG4gIElGaWx0ZXJQYXJhbXMsXHJcbiAgUm93Tm9kZSxcclxuICBJRG9lc0ZpbHRlclBhc3NQYXJhbXMsXHJcbiAgSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXNcclxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWNoZWNrLWNvbHVtbicsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhHcmlkRGF0YUNvbHVtbiwgdXNlRXhpc3Rpbmc6IEFYR3JpZENoZWNrQ29sdW1uIH1dLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQVhHcmlkQ2hlY2tDb2x1bW4gZXh0ZW5kcyBBWEdyaWREYXRhQ29sdW1uIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCBjb2wgPSBzdXBlci5yZW5kZXIoKTtcclxuICAgIGlmICghY29sLmNlbGxSZW5kZXJlckZyYW1ld29yaykge1xyXG4gICAgICBjb2wuY2VsbFJlbmRlcmVyRnJhbWV3b3JrID0gQm9vbGVhblJlbmRlcmVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWxsb3dGaWx0ZXJpbmcpIHtcclxuICAgICAgY29sLmZpbHRlckZyYW1ld29yayA9IEJvb2xlYW5GaWx0ZXJSZW5kZXJlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBjb2w7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPSd2YWx1ZScgcmVhZG9ubHk9J3RydWUnPjwvYXgtY2hlY2stYm94PlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEJvb2xlYW5SZW5kZXJlciBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XHJcbiAgdmFsdWU6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuICBhZ0luaXQocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gIH1cclxuICByZWZyZXNoKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy52YWx1ZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxheC1kYXRhLWdyaWQtZmlsdGVyPlxyXG4gICAgICA8YXgtc2VsZWN0LWJveFxyXG4gICAgICAgIGxhYmVsPSdTZWxlY3QgQm94J1xyXG4gICAgICAgIFtpdGVtc109J3NlbGVjdEl0ZW0nXHJcbiAgICAgID48L2F4LXNlbGVjdC1ib3g+XHJcbiAgICA8L2F4LWRhdGEtZ3JpZC1maWx0ZXI+XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9vbGVhbkZpbHRlclJlbmRlcmVyIGltcGxlbWVudHMgSUZpbHRlckFuZ3VsYXJDb21wIHtcclxuICBwdWJsaWMgdmFsdWU/OiBib29sZWFuID0gbnVsbDtcclxuICBwcml2YXRlIHBhcmFtczogSUZpbHRlclBhcmFtcztcclxuICBwcml2YXRlIHZhbHVlR2V0dGVyOiAocm93Tm9kZTogUm93Tm9kZSkgPT4gYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHVibGljIGlucHV0O1xyXG5cclxuICBzZWxlY3RJdGVtID0gW1xyXG4gICAgeyB2YWx1ZTogMCwgbGFiZWw6ICdUcnVlJyB9LFxyXG4gICAgeyB2YWx1ZTogMSwgbGFiZWw6ICdGYWxzZScgfSxcclxuICBdO1xyXG4gIGFnSW5pdChwYXJhbXM6IElGaWx0ZXJQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gICAgdGhpcy52YWx1ZUdldHRlciA9IHBhcmFtcy52YWx1ZUdldHRlcjtcclxuICB9XHJcblxyXG4gIGlzRmlsdGVyQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSB0aGlzLnZhbHVlR2V0dGVyKHBhcmFtcy5ub2RlKTtcclxuICB9XHJcblxyXG4gIGdldE1vZGVsKCk6IGFueSB7XHJcbiAgICByZXR1cm4geyB2YWx1ZTogdGhpcy52YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgc2V0TW9kZWwobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG1vZGVsID8gbW9kZWwudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KHBhcmFtczogSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pbnB1dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UobmV3VmFsdWUpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgIHRoaXMucGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,206 @@
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
+ var AXGridDataColumn = /** @class */ (function () {
6
+ function AXGridDataColumn() {
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
+ AXGridDataColumn.prototype.render = function () {
28
+ var 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(function (c) { return c != 'filterMenuTab'; });
39
+ col.floatingFilter = false;
40
+ }
41
+ if (this.menuColumnDisable == true) {
42
+ col.menuTabs = col.menuTabs.filter(function (c) { return c != 'columnsMenuTab'; });
43
+ }
44
+ if (this.menuItemDisable == true) {
45
+ col.menuTabs = col.menuTabs.filter(function (c) { return 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
+ var THAT_1 = this;
83
+ if (this.cellClass instanceof Function) {
84
+ col.cellClass = function (p) {
85
+ return THAT_1.cellClass({
86
+ column: THAT_1,
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 = function (params) {
105
+ return true;
106
+ };
107
+ // col.headerCheckboxSelection = this.headerCheckbox;
108
+ }
109
+ return col;
110
+ };
111
+ __decorate([
112
+ ContentChild(AXDataGridCellTemplateComponent),
113
+ __metadata("design:type", AXDataGridCellTemplateComponent)
114
+ ], AXGridDataColumn.prototype, "cellTemplate", void 0);
115
+ __decorate([
116
+ Input(),
117
+ __metadata("design:type", Number)
118
+ ], AXGridDataColumn.prototype, "width", void 0);
119
+ __decorate([
120
+ Input(),
121
+ __metadata("design:type", Number)
122
+ ], AXGridDataColumn.prototype, "maxWidth", void 0);
123
+ __decorate([
124
+ Input(),
125
+ __metadata("design:type", Number)
126
+ ], AXGridDataColumn.prototype, "minWidth", void 0);
127
+ __decorate([
128
+ Input(),
129
+ __metadata("design:type", String)
130
+ ], AXGridDataColumn.prototype, "pinned", void 0);
131
+ __decorate([
132
+ Input(),
133
+ __metadata("design:type", Boolean)
134
+ ], AXGridDataColumn.prototype, "allowSorting", void 0);
135
+ __decorate([
136
+ Input(),
137
+ __metadata("design:type", Boolean)
138
+ ], AXGridDataColumn.prototype, "allowFiltering", void 0);
139
+ __decorate([
140
+ Input(),
141
+ __metadata("design:type", Function)
142
+ ], AXGridDataColumn.prototype, "cellClass", void 0);
143
+ __decorate([
144
+ Input(),
145
+ __metadata("design:type", String)
146
+ ], AXGridDataColumn.prototype, "sort", void 0);
147
+ __decorate([
148
+ Input(),
149
+ __metadata("design:type", String)
150
+ ], AXGridDataColumn.prototype, "field", void 0);
151
+ __decorate([
152
+ Input(),
153
+ __metadata("design:type", String)
154
+ ], AXGridDataColumn.prototype, "caption", void 0);
155
+ __decorate([
156
+ Input(),
157
+ __metadata("design:type", Object)
158
+ ], AXGridDataColumn.prototype, "cellRendererParams", void 0);
159
+ __decorate([
160
+ Input(),
161
+ __metadata("design:type", Boolean)
162
+ ], AXGridDataColumn.prototype, "checkbox", void 0);
163
+ __decorate([
164
+ Input(),
165
+ __metadata("design:type", Boolean)
166
+ ], AXGridDataColumn.prototype, "headerCheckbox", void 0);
167
+ __decorate([
168
+ Input(),
169
+ __metadata("design:type", Number)
170
+ ], AXGridDataColumn.prototype, "groupIndex", void 0);
171
+ __decorate([
172
+ Input(),
173
+ __metadata("design:type", Number)
174
+ ], AXGridDataColumn.prototype, "treeIndex", void 0);
175
+ __decorate([
176
+ Input(),
177
+ __metadata("design:type", Boolean)
178
+ ], AXGridDataColumn.prototype, "enableRowGroup", void 0);
179
+ __decorate([
180
+ Input(),
181
+ __metadata("design:type", Boolean)
182
+ ], AXGridDataColumn.prototype, "hide", void 0);
183
+ __decorate([
184
+ Input(),
185
+ __metadata("design:type", Boolean)
186
+ ], AXGridDataColumn.prototype, "floatingFilter", void 0);
187
+ __decorate([
188
+ Input(),
189
+ __metadata("design:type", Boolean)
190
+ ], AXGridDataColumn.prototype, "disableMenu", void 0);
191
+ __decorate([
192
+ Input(),
193
+ __metadata("design:type", Boolean)
194
+ ], AXGridDataColumn.prototype, "resizable", void 0);
195
+ __decorate([
196
+ Input(),
197
+ __metadata("design:type", Boolean)
198
+ ], AXGridDataColumn.prototype, "menuColumnDisable", void 0);
199
+ __decorate([
200
+ Input(),
201
+ __metadata("design:type", Boolean)
202
+ ], AXGridDataColumn.prototype, "menuItemDisable", void 0);
203
+ return AXGridDataColumn;
204
+ }());
205
+ export { AXGridDataColumn };
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvZGF0YS1ncmlkLyIsInNvdXJjZXMiOlsibGliL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJdkY7SUF3RUk7UUFqRUEsVUFBSyxHQUFXLEdBQUcsQ0FBQztRQVNwQixXQUFNLEdBQTJCLElBQUksQ0FBQztRQUd0QyxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUc3QixtQkFBYyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsSUFBSSxLQUFLLENBQUM7UUFNM0UsU0FBSSxHQUEwQixJQUFJLENBQUM7UUFHbkMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUduQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBTXJCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsZUFBVSxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBR3hCLGNBQVMsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUd2QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUdoQyxTQUFJLEdBQVksS0FBSyxDQUFDO1FBR3RCLG1CQUFjLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUczRSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUduQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztJQUVqQixDQUFDO0lBbEQwRCxDQUFDO0lBb0Q1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Q1k7SUFHcEI7UUFEQyxLQUFLLEVBQUU7O3NEQUNTO0lBR2pCO1FBREMsS0FBSyxFQUFFOztzREFDUztJQUdqQjtRQURDLEtBQUssRUFBRTs7b0RBQzhCO0lBR3RDO1FBREMsS0FBSyxFQUFFOzswREFDcUI7SUFHN0I7UUFEQyxLQUFLLEVBQUU7OzREQUNtRTtJQUczRTtRQURDLEtBQUssRUFBRTs7dURBQzJFO0lBR25GO1FBREMsS0FBSyxFQUFFOztrREFDMkI7SUFHbkM7UUFEQyxLQUFLLEVBQUU7O21EQUNXO0lBR25CO1FBREMsS0FBSyxFQUFFOztxREFDYTtJQUdyQjtRQURDLEtBQUssRUFBRTs7Z0VBQ2dCO0lBR3hCO1FBREMsS0FBSyxFQUFFOztzREFDa0I7SUFHMUI7UUFEQyxLQUFLLEVBQUU7OzREQUN3QjtJQUdoQztRQURDLEtBQUssRUFBRTs7d0RBQ2dCO0lBR3hCO1FBREMsS0FBSyxFQUFFOzt1REFDZTtJQUd2QjtRQURDLEtBQUssRUFBRTs7NERBQ3dCO0lBR2hDO1FBREMsS0FBSyxFQUFFOztrREFDYztJQUd0QjtRQURDLEtBQUssRUFBRTs7NERBQ21FO0lBRzNFO1FBREMsS0FBSyxFQUFFOzt5REFDcUI7SUFHN0I7UUFEQyxLQUFLLEVBQUU7O3VEQUNrQjtJQUcxQjtRQURDLEtBQUssRUFBRTs7K0RBQzJCO0lBR25DO1FBREMsS0FBSyxFQUFFOzs2REFDeUI7SUErRnJDLHVCQUFDO0NBQUEsQUFyS0QsSUFxS0M7U0FyS3FCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhHcmlkQ2VsbFBhcmFtcyB9IGZyb20gJy4uL2RhdGFncmlkLmV2ZW50cyc7XHJcbmltcG9ydCB7IEFYRGF0YUdyaWRDZWxsVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuLi90ZW1wbGF0ZXMvY2VsbC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWERhdGVQaWNrZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtY29sdW1uLmNvbXBvbmVudCc7XHJcblxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYR3JpZERhdGFDb2x1bW4ge1xyXG5cclxuXHJcbiAgICBAQ29udGVudENoaWxkKEFYRGF0YUdyaWRDZWxsVGVtcGxhdGVDb21wb25lbnQpXHJcbiAgICBjZWxsVGVtcGxhdGU6IEFYRGF0YUdyaWRDZWxsVGVtcGxhdGVDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHdpZHRoOiBudW1iZXIgPSAxMDA7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIG1heFdpZHRoOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIG1pbldpZHRoOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHBpbm5lZDogJ3N0YXJ0JyB8ICdlbmQnIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGFsbG93U29ydGluZzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGFsbG93RmlsdGVyaW5nOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdkYXRhZ3JpZC5hbGxvd0ZpbHRlcmluZycpIHx8IGZhbHNlOztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2VsbENsYXNzOiAocGFyYW1zOiBBWEdyaWRDZWxsUGFyYW1zKSA9PiAoc3RyaW5nIHwgc3RyaW5nW10pIHwgKHN0cmluZyB8IHN0cmluZ1tdKTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc29ydDogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZmllbGQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjYXB0aW9uOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2VsbFJlbmRlcmVyUGFyYW1zOiBhbnk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGhlYWRlckNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdyb3VwSW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICB0cmVlSW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBlbmFibGVSb3dHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBoaWRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGZsb2F0aW5nRmlsdGVyOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdkYXRhZ3JpZC5mbG9hdGluZ0ZpbHRlcicpIHx8IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkaXNhYmxlTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICByZXNpemFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtZW51Q29sdW1uRGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtZW51SXRlbURpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIHJlbmRlcigpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGNvbDogYW55ID0ge1xyXG4gICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcclxuICAgICAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2wucmVzaXphYmxlID0gdGhpcy5yZXNpemFibGU7XHJcbiAgICAgICAgY29sLnN1cHByZXNzTWVudSA9IHRoaXMuZGlzYWJsZU1lbnU7XHJcbiAgICAgICAgY29sLm1lbnVUYWJzID0gWydmaWx0ZXJNZW51VGFiJywgJ2NvbHVtbnNNZW51VGFiJywgJ2dlbmVyYWxNZW51VGFiJ11cclxuICAgICAgICBjb2wuZmxvYXRpbmdGaWx0ZXIgPSB0aGlzLmZsb2F0aW5nRmlsdGVyO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuYWxsb3dGaWx0ZXJpbmcpIHtcclxuICAgICAgICAgICAgY29sLmZpbHRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb2wubWVudVRhYnMgPSBjb2wubWVudVRhYnMuZmlsdGVyKGMgPT4gYyAhPSAnZmlsdGVyTWVudVRhYicpO1xyXG4gICAgICAgICAgICBjb2wuZmxvYXRpbmdGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubWVudUNvbHVtbkRpc2FibGUgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBjb2wubWVudVRhYnMgPSBjb2wubWVudVRhYnMuZmlsdGVyKGMgPT4gYyAhPSAnY29sdW1uc01lbnVUYWInKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubWVudUl0ZW1EaXNhYmxlID09IHRydWUpIHtcclxuICAgICAgICAgICAgY29sLm1lbnVUYWJzID0gY29sLm1lbnVUYWJzLmZpbHRlcihjID0+IGMgIT0gJ2dlbmVyYWxNZW51VGFiJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNhcHRpb24pIHtcclxuICAgICAgICAgICAgY29sLmhlYWRlck5hbWUgPSB0aGlzLmNhcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1pbldpZHRoKSB7XHJcbiAgICAgICAgICAgIGNvbC5taW5XaWR0aCA9IHRoaXMubWluV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1heFdpZHRoKSB7XHJcbiAgICAgICAgICAgIGNvbC5tYXhXaWR0aCA9IHRoaXMubWF4V2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnBpbm5lZCkge1xyXG4gICAgICAgICAgICBjb2wucGlubmVkID0gdGhpcy5waW5uZWQgPT09ICdzdGFydCcgPyAncmlnaHQnIDogJ2xlZnQnO1xyXG4gICAgICAgICAgICAvLyBUT0RPOiBDaGFuZ2UgYmFzZWQgb24gbGF5b3V0XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmFsbG93U29ydGluZykge1xyXG4gICAgICAgICAgICBjb2wuc29ydGFibGUgPSB0aGlzLmFsbG93U29ydGluZztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc29ydCkge1xyXG4gICAgICAgICAgICBjb2wuc29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjb2wucm93R3JvdXBJbmRleCA9IHRoaXMuZ3JvdXBJbmRleDtcclxuICAgICAgICAgICAgY29sLnJvd0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVSb3dHcm91cCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy50cmVlSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjb2wucm93R3JvdXBJbmRleCA9IHRoaXMudHJlZUluZGV4O1xyXG4gICAgICAgICAgICBjb2wucm93R3JvdXAgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZSkge1xyXG4gICAgICAgICAgICBjb2wuaGlkZSA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5lbmFibGVSb3dHcm91cCkge1xyXG4gICAgICAgICAgICBjb2wuZW5hYmxlUm93R3JvdXAgPSB0aGlzLmVuYWJsZVJvd0dyb3VwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY2VsbENsYXNzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFRIQVQgPSB0aGlzO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jZWxsQ2xhc3MgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgY29sLmNlbGxDbGFzcyA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRIQVQuY2VsbENsYXNzKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBUSEFULFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dJbmRleDogcC5ub2RlLnJvd0luZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dMZXZlbDogcC5ub2RlLmxldmVsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBwLmRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29sLmNlbGxDbGFzcyA9IHRoaXMuY2VsbENsYXNzO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmICh0aGlzLmNlbGxUZW1wbGF0ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbC5jZWxsUmVuZGVyZXJGcmFtZXdvcmsgPSB0aGlzLmNlbGxUZW1wbGF0ZS5yZW5kZXJlcjtcclxuICAgICAgICAgICAgY29sLmNlbGxSZW5kZXJlclBhcmFtcyA9IHRoaXMuY2VsbFRlbXBsYXRlLnBhcmFtcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94KSB7XHJcbiAgICAgICAgICAgIGNvbC5jaGVja2JveFNlbGVjdGlvbiA9IChwYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAvLyAgY29sLmhlYWRlckNoZWNrYm94U2VsZWN0aW9uID0gdGhpcy5oZWFkZXJDaGVja2JveDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvbDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==