@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.
- package/README.md +2 -2
- package/acorex-data-grid.d.ts +4 -4
- package/acorex-data-grid.metadata.json +1 -1
- package/bundles/acorex-data-grid.umd.js +1933 -1933
- package/bundles/acorex-data-grid.umd.js.map +1 -1
- package/bundles/acorex-data-grid.umd.min.js +1 -1
- package/bundles/acorex-data-grid.umd.min.js.map +1 -1
- package/esm2015/acorex-data-grid.js +4 -4
- package/esm2015/lib/data-grid/columns/check-column.component.js +104 -104
- package/esm2015/lib/data-grid/columns/column.component.js +204 -204
- package/esm2015/lib/data-grid/columns/command-column.component.js +103 -103
- package/esm2015/lib/data-grid/columns/date-column.component.js +114 -114
- package/esm2015/lib/data-grid/columns/row-number-column.component.js +39 -39
- package/esm2015/lib/data-grid/columns/selection-column.component.js +42 -42
- package/esm2015/lib/data-grid/columns/text-column.component.js +81 -81
- package/esm2015/lib/data-grid/datagrid.component.js +709 -709
- package/esm2015/lib/data-grid/datagrid.events.js +1 -1
- package/esm2015/lib/data-grid/datagrid.module.js +98 -98
- package/esm2015/lib/data-grid/filters/filter.component.js +25 -25
- package/esm2015/lib/data-grid/templates/cell-template.component.js +47 -47
- package/esm2015/lib/data-grid/templates/detail-template.component.js +45 -45
- package/esm2015/lib/data-grid/templates/row-template.component.js +40 -40
- package/esm2015/lib/data-lov/data-lov-popup/data-lov-popup.component.js +121 -121
- package/esm2015/lib/data-lov/data-lov.component.js +206 -206
- package/esm2015/lib/data-lov/data-lov.module.js +21 -21
- package/esm2015/public-api.js +17 -17
- package/esm5/acorex-data-grid.js +4 -4
- package/esm5/lib/data-grid/columns/check-column.component.js +102 -102
- package/esm5/lib/data-grid/columns/column.component.js +206 -206
- package/esm5/lib/data-grid/columns/command-column.component.js +98 -98
- package/esm5/lib/data-grid/columns/date-column.component.js +119 -119
- package/esm5/lib/data-grid/columns/row-number-column.component.js +42 -42
- package/esm5/lib/data-grid/columns/selection-column.component.js +46 -46
- package/esm5/lib/data-grid/columns/text-column.component.js +81 -81
- package/esm5/lib/data-grid/datagrid.component.js +767 -767
- package/esm5/lib/data-grid/datagrid.events.js +1 -1
- package/esm5/lib/data-grid/datagrid.module.js +101 -101
- package/esm5/lib/data-grid/filters/filter.component.js +16 -16
- package/esm5/lib/data-grid/templates/cell-template.component.js +46 -46
- package/esm5/lib/data-grid/templates/detail-template.component.js +49 -49
- package/esm5/lib/data-grid/templates/row-template.component.js +44 -44
- package/esm5/lib/data-lov/data-lov-popup/data-lov-popup.component.js +127 -127
- package/esm5/lib/data-lov/data-lov.component.js +216 -216
- package/esm5/lib/data-lov/data-lov.module.js +24 -24
- package/esm5/public-api.js +17 -17
- package/fesm2015/acorex-data-grid.js +1856 -1856
- package/fesm2015/acorex-data-grid.js.map +1 -1
- package/fesm5/acorex-data-grid.js +1935 -1935
- package/fesm5/acorex-data-grid.js.map +1 -1
- package/lib/data-grid/columns/check-column.component.d.ts +30 -30
- package/lib/data-grid/columns/column.component.d.ts +29 -29
- package/lib/data-grid/columns/command-column.component.d.ts +22 -22
- package/lib/data-grid/columns/date-column.component.d.ts +27 -27
- package/lib/data-grid/columns/row-number-column.component.d.ts +7 -7
- package/lib/data-grid/columns/selection-column.component.d.ts +8 -8
- package/lib/data-grid/columns/text-column.component.d.ts +20 -20
- package/lib/data-grid/datagrid.component.d.ts +129 -129
- package/lib/data-grid/datagrid.events.d.ts +20 -20
- package/lib/data-grid/datagrid.module.d.ts +3 -3
- package/lib/data-grid/filters/filter.component.d.ts +2 -2
- package/lib/data-grid/templates/cell-template.component.d.ts +17 -17
- package/lib/data-grid/templates/detail-template.component.d.ts +16 -16
- package/lib/data-grid/templates/row-template.component.d.ts +15 -15
- package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +29 -29
- package/lib/data-lov/data-lov.component.d.ts +39 -39
- package/lib/data-lov/data-lov.module.d.ts +2 -2
- package/package.json +26 -26
- package/public-api.d.ts +17 -17
@@ -1,42 +1,42 @@
|
|
1
|
-
var AXGridSelectionColumn_1;
|
2
|
-
import { __decorate, __metadata } from "tslib";
|
3
|
-
import { AXGridDataColumn } from './column.component';
|
4
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
5
|
-
let AXGridSelectionColumn = AXGridSelectionColumn_1 = class AXGridSelectionColumn extends AXGridDataColumn {
|
6
|
-
constructor() {
|
7
|
-
super();
|
8
|
-
this.pinned = 'start';
|
9
|
-
}
|
10
|
-
ngOnInit() {
|
11
|
-
}
|
12
|
-
render() {
|
13
|
-
const col = super.render();
|
14
|
-
col.checkboxSelection = this.condition ? this.condition : true;
|
15
|
-
// col.headerCheckboxSelection = true;
|
16
|
-
col.pinned = this.pinned === 'start' ? 'right' : 'left';
|
17
|
-
col.filter = false;
|
18
|
-
col.resizable = false;
|
19
|
-
col.sortable = false;
|
20
|
-
col.width = 40;
|
21
|
-
return col;
|
22
|
-
}
|
23
|
-
};
|
24
|
-
__decorate([
|
25
|
-
Input(),
|
26
|
-
__metadata("design:type", Function)
|
27
|
-
], AXGridSelectionColumn.prototype, "condition", void 0);
|
28
|
-
__decorate([
|
29
|
-
Input(),
|
30
|
-
__metadata("design:type", String)
|
31
|
-
], AXGridSelectionColumn.prototype, "pinned", void 0);
|
32
|
-
AXGridSelectionColumn = AXGridSelectionColumn_1 = __decorate([
|
33
|
-
Component({
|
34
|
-
selector: 'ax-selection-column',
|
35
|
-
template: '',
|
36
|
-
providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn_1 }],
|
37
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
38
|
-
}),
|
39
|
-
__metadata("design:paramtypes", [])
|
40
|
-
], AXGridSelectionColumn);
|
41
|
-
export { AXGridSelectionColumn };
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
var AXGridSelectionColumn_1;
|
2
|
+
import { __decorate, __metadata } from "tslib";
|
3
|
+
import { AXGridDataColumn } from './column.component';
|
4
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
5
|
+
let AXGridSelectionColumn = AXGridSelectionColumn_1 = class AXGridSelectionColumn extends AXGridDataColumn {
|
6
|
+
constructor() {
|
7
|
+
super();
|
8
|
+
this.pinned = 'start';
|
9
|
+
}
|
10
|
+
ngOnInit() {
|
11
|
+
}
|
12
|
+
render() {
|
13
|
+
const col = super.render();
|
14
|
+
col.checkboxSelection = this.condition ? this.condition : true;
|
15
|
+
// col.headerCheckboxSelection = true;
|
16
|
+
col.pinned = this.pinned === 'start' ? 'right' : 'left';
|
17
|
+
col.filter = false;
|
18
|
+
col.resizable = false;
|
19
|
+
col.sortable = false;
|
20
|
+
col.width = 40;
|
21
|
+
return col;
|
22
|
+
}
|
23
|
+
};
|
24
|
+
__decorate([
|
25
|
+
Input(),
|
26
|
+
__metadata("design:type", Function)
|
27
|
+
], AXGridSelectionColumn.prototype, "condition", void 0);
|
28
|
+
__decorate([
|
29
|
+
Input(),
|
30
|
+
__metadata("design:type", String)
|
31
|
+
], AXGridSelectionColumn.prototype, "pinned", void 0);
|
32
|
+
AXGridSelectionColumn = AXGridSelectionColumn_1 = __decorate([
|
33
|
+
Component({
|
34
|
+
selector: 'ax-selection-column',
|
35
|
+
template: '',
|
36
|
+
providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn_1 }],
|
37
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
38
|
+
}),
|
39
|
+
__metadata("design:paramtypes", [])
|
40
|
+
], AXGridSelectionColumn);
|
41
|
+
export { AXGridSelectionColumn };
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2RhdGEtZ3JpZC8iLCJzb3VyY2VzIjpbImxpYi9kYXRhLWdyaWQvY29sdW1ucy9zZWxlY3Rpb24tY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTFFLElBQWEscUJBQXFCLDZCQUFsQyxNQUFhLHFCQUFzQixTQUFRLGdCQUFnQjtJQUN2RDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBV1osV0FBTSxHQUFvQixPQUFPLENBQUM7SUFWbEMsQ0FBQztJQUVELFFBQVE7SUFFUixDQUFDO0lBUUQsTUFBTTtRQUNGLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9ELHVDQUF1QztRQUN2QyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4RCxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVmLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKLENBQUE7QUFqQkc7SUFEQyxLQUFLLEVBQUU7O3dEQUN1QjtBQUcvQjtJQURDLEtBQUssRUFBRTs7cURBQzBCO0FBYnpCLHFCQUFxQjtJQU5qQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUscUJBQXFCO1FBQy9CLFFBQVEsRUFBRSxFQUFFO1FBQ1osU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLHVCQUFxQixFQUFFLENBQUM7UUFDOUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDbEQsQ0FBQzs7R0FDVyxxQkFBcUIsQ0EyQmpDO1NBM0JZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYR3JpZERhdGFDb2x1bW4gfSBmcm9tICcuL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1zZWxlY3Rpb24tY29sdW1uJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWEdyaWREYXRhQ29sdW1uLCB1c2VFeGlzdGluZzogQVhHcmlkU2VsZWN0aW9uQ29sdW1uIH1dLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFYR3JpZFNlbGVjdGlvbkNvbHVtbiBleHRlbmRzIEFYR3JpZERhdGFDb2x1bW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBjb25kaXRpb246IChwYXJhbXMpID0+IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHBpbm5lZDogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgY29sID0gc3VwZXIucmVuZGVyKCk7XG4gICAgICAgIGNvbC5jaGVja2JveFNlbGVjdGlvbiA9IHRoaXMuY29uZGl0aW9uID8gdGhpcy5jb25kaXRpb24gOiB0cnVlO1xuICAgICAgICAvLyAgY29sLmhlYWRlckNoZWNrYm94U2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgY29sLnBpbm5lZCA9IHRoaXMucGlubmVkID09PSAnc3RhcnQnID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgICAgICAgY29sLmZpbHRlciA9IGZhbHNlO1xuICAgICAgICBjb2wucmVzaXphYmxlID0gZmFsc2U7XG4gICAgICAgIGNvbC5zb3J0YWJsZSA9IGZhbHNlO1xuICAgICAgICBjb2wud2lkdGggPSA0MDtcblxuICAgICAgICByZXR1cm4gY29sO1xuICAgIH1cbn0iXX0=
|
@@ -1,81 +1,81 @@
|
|
1
|
-
var AXGridTextColumn_1;
|
2
|
-
import { __decorate, __metadata } from "tslib";
|
3
|
-
import { AXGridDataColumn } from './column.component';
|
4
|
-
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
5
|
-
import { AXTextBoxComponent } from '@acorex/components';
|
6
|
-
let AXGridTextColumn = AXGridTextColumn_1 = class AXGridTextColumn extends AXGridDataColumn {
|
7
|
-
constructor() {
|
8
|
-
super();
|
9
|
-
}
|
10
|
-
render() {
|
11
|
-
const col = super.render();
|
12
|
-
// if (this.allowFiltering) {
|
13
|
-
// col.filterFramework = TextFilterRenderer;
|
14
|
-
// }
|
15
|
-
col.filter = 'agTextColumnFilter';
|
16
|
-
return col;
|
17
|
-
}
|
18
|
-
};
|
19
|
-
AXGridTextColumn = AXGridTextColumn_1 = __decorate([
|
20
|
-
Component({
|
21
|
-
selector: 'ax-text-column',
|
22
|
-
template: '',
|
23
|
-
providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn_1 }],
|
24
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
25
|
-
}),
|
26
|
-
__metadata("design:paramtypes", [])
|
27
|
-
], AXGridTextColumn);
|
28
|
-
export { AXGridTextColumn };
|
29
|
-
let TextFilterRenderer = class TextFilterRenderer {
|
30
|
-
constructor() {
|
31
|
-
this.value = null;
|
32
|
-
}
|
33
|
-
agInit(params) {
|
34
|
-
this.params = params;
|
35
|
-
this.valueGetter = params.valueGetter;
|
36
|
-
}
|
37
|
-
isFilterActive() {
|
38
|
-
return this.value !== null && this.value !== undefined;
|
39
|
-
}
|
40
|
-
doesFilterPass(params) {
|
41
|
-
return this.value === this.valueGetter(params.node);
|
42
|
-
}
|
43
|
-
getModel() {
|
44
|
-
return { value: this.value };
|
45
|
-
}
|
46
|
-
setModel(model) {
|
47
|
-
;
|
48
|
-
this.onChange(model ? model.value : null);
|
49
|
-
}
|
50
|
-
ngAfterViewInit(params) {
|
51
|
-
window.setTimeout(() => {
|
52
|
-
this.input.focus();
|
53
|
-
});
|
54
|
-
}
|
55
|
-
onChange(newValue) {
|
56
|
-
if (this.value !== newValue) {
|
57
|
-
this.value = newValue;
|
58
|
-
if (this.value === '') {
|
59
|
-
this.value = null;
|
60
|
-
}
|
61
|
-
this.params.filterChangedCallback();
|
62
|
-
}
|
63
|
-
}
|
64
|
-
};
|
65
|
-
__decorate([
|
66
|
-
ViewChild(AXTextBoxComponent, { static: true }),
|
67
|
-
__metadata("design:type", AXTextBoxComponent)
|
68
|
-
], TextFilterRenderer.prototype, "input", void 0);
|
69
|
-
TextFilterRenderer = __decorate([
|
70
|
-
Component({
|
71
|
-
template: `
|
72
|
-
<ax-data-grid-filter>
|
73
|
-
<ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>
|
74
|
-
</ax-text-box>
|
75
|
-
</ax-data-grid-filter>
|
76
|
-
`,
|
77
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
78
|
-
})
|
79
|
-
], TextFilterRenderer);
|
80
|
-
export { TextFilterRenderer };
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
var AXGridTextColumn_1;
|
2
|
+
import { __decorate, __metadata } from "tslib";
|
3
|
+
import { AXGridDataColumn } from './column.component';
|
4
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
5
|
+
import { AXTextBoxComponent } from '@acorex/components';
|
6
|
+
let AXGridTextColumn = AXGridTextColumn_1 = class AXGridTextColumn extends AXGridDataColumn {
|
7
|
+
constructor() {
|
8
|
+
super();
|
9
|
+
}
|
10
|
+
render() {
|
11
|
+
const col = super.render();
|
12
|
+
// if (this.allowFiltering) {
|
13
|
+
// col.filterFramework = TextFilterRenderer;
|
14
|
+
// }
|
15
|
+
col.filter = 'agTextColumnFilter';
|
16
|
+
return col;
|
17
|
+
}
|
18
|
+
};
|
19
|
+
AXGridTextColumn = AXGridTextColumn_1 = __decorate([
|
20
|
+
Component({
|
21
|
+
selector: 'ax-text-column',
|
22
|
+
template: '',
|
23
|
+
providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn_1 }],
|
24
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
25
|
+
}),
|
26
|
+
__metadata("design:paramtypes", [])
|
27
|
+
], AXGridTextColumn);
|
28
|
+
export { AXGridTextColumn };
|
29
|
+
let TextFilterRenderer = class TextFilterRenderer {
|
30
|
+
constructor() {
|
31
|
+
this.value = null;
|
32
|
+
}
|
33
|
+
agInit(params) {
|
34
|
+
this.params = params;
|
35
|
+
this.valueGetter = params.valueGetter;
|
36
|
+
}
|
37
|
+
isFilterActive() {
|
38
|
+
return this.value !== null && this.value !== undefined;
|
39
|
+
}
|
40
|
+
doesFilterPass(params) {
|
41
|
+
return this.value === this.valueGetter(params.node);
|
42
|
+
}
|
43
|
+
getModel() {
|
44
|
+
return { value: this.value };
|
45
|
+
}
|
46
|
+
setModel(model) {
|
47
|
+
;
|
48
|
+
this.onChange(model ? model.value : null);
|
49
|
+
}
|
50
|
+
ngAfterViewInit(params) {
|
51
|
+
window.setTimeout(() => {
|
52
|
+
this.input.focus();
|
53
|
+
});
|
54
|
+
}
|
55
|
+
onChange(newValue) {
|
56
|
+
if (this.value !== newValue) {
|
57
|
+
this.value = newValue;
|
58
|
+
if (this.value === '') {
|
59
|
+
this.value = null;
|
60
|
+
}
|
61
|
+
this.params.filterChangedCallback();
|
62
|
+
}
|
63
|
+
}
|
64
|
+
};
|
65
|
+
__decorate([
|
66
|
+
ViewChild(AXTextBoxComponent, { static: true }),
|
67
|
+
__metadata("design:type", AXTextBoxComponent)
|
68
|
+
], TextFilterRenderer.prototype, "input", void 0);
|
69
|
+
TextFilterRenderer = __decorate([
|
70
|
+
Component({
|
71
|
+
template: `
|
72
|
+
<ax-data-grid-filter>
|
73
|
+
<ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>
|
74
|
+
</ax-text-box>
|
75
|
+
</ax-data-grid-filter>
|
76
|
+
`,
|
77
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
78
|
+
})
|
79
|
+
], TextFilterRenderer);
|
80
|
+
export { TextFilterRenderer };
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1ncmlkL2NvbHVtbnMvdGV4dC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBU3hELElBQWEsZ0JBQWdCLHdCQUE3QixNQUFhLGdCQUFpQixTQUFRLGdCQUFnQjtJQUNwRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsNkJBQTZCO1FBQzdCLDhDQUE4QztRQUM5QyxJQUFJO1FBQ0osR0FBRyxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRixDQUFBO0FBYlksZ0JBQWdCO0lBTjVCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsUUFBUSxFQUFFLEVBQUU7UUFDWixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWdCLEVBQUUsQ0FBQztRQUN6RSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtLQUNoRCxDQUFDOztHQUNXLGdCQUFnQixDQWE1QjtTQWJZLGdCQUFnQjtBQXdCN0IsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFBL0I7UUFDUyxVQUFLLEdBQVksSUFBSSxDQUFDO0lBMkMvQixDQUFDO0lBckNDLE1BQU0sQ0FBQyxNQUFxQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBNkI7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUErQjtRQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFRO1FBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNuQjtZQUNELElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7Q0FDRixDQUFBO0FBdkNDO0lBREMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzhCQUNqQyxrQkFBa0I7aURBQUM7QUFMdkIsa0JBQWtCO0lBVDlCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRTs7Ozs7R0FLVDtRQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0tBQ2hELENBQUM7R0FDVyxrQkFBa0IsQ0E0QzlCO1NBNUNZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYR3JpZERhdGFDb2x1bW4gfSBmcm9tICcuL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSUZpbHRlclBhcmFtcyxcbiAgUm93Tm9kZSxcbiAgSURvZXNGaWx0ZXJQYXNzUGFyYW1zLFxuICBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtc1xufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBJRmlsdGVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10ZXh0LWNvbHVtbicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWEdyaWREYXRhQ29sdW1uLCB1c2VFeGlzdGluZzogQVhHcmlkVGV4dENvbHVtbiB9XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhHcmlkVGV4dENvbHVtbiBleHRlbmRzIEFYR3JpZERhdGFDb2x1bW4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNvbCA9IHN1cGVyLnJlbmRlcigpO1xuICAgIC8vIGlmICh0aGlzLmFsbG93RmlsdGVyaW5nKSB7XG4gICAgLy8gICBjb2wuZmlsdGVyRnJhbWV3b3JrID0gVGV4dEZpbHRlclJlbmRlcmVyO1xuICAgIC8vIH1cbiAgICBjb2wuZmlsdGVyID0gJ2FnVGV4dENvbHVtbkZpbHRlcic7XG4gICAgcmV0dXJuIGNvbDtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXgtZGF0YS1ncmlkLWZpbHRlcj5cbiAgICAgIDxheC10ZXh0LWJveCBsYWJlbD0nRmlsdGVyJyBhbGxvd0NsZWFyPSd0cnVlJyAodGV4dENoYW5nZSk9J29uQ2hhbmdlKCRldmVudCknPlxuICAgICAgPC9heC10ZXh0LWJveD5cbiAgICA8L2F4LWRhdGEtZ3JpZC1maWx0ZXI+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRleHRGaWx0ZXJSZW5kZXJlciBpbXBsZW1lbnRzIElGaWx0ZXJBbmd1bGFyQ29tcCB7XG4gIHB1YmxpYyB2YWx1ZT86IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgcGFyYW1zOiBJRmlsdGVyUGFyYW1zO1xuICBwcml2YXRlIHZhbHVlR2V0dGVyOiAocm93Tm9kZTogUm93Tm9kZSkgPT4gYW55O1xuICBAVmlld0NoaWxkKEFYVGV4dEJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBpbnB1dDogQVhUZXh0Qm94Q29tcG9uZW50O1xuXG4gIGFnSW5pdChwYXJhbXM6IElGaWx0ZXJQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLnZhbHVlR2V0dGVyID0gcGFyYW1zLnZhbHVlR2V0dGVyO1xuICB9XG5cbiAgaXNGaWx0ZXJBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gdGhpcy52YWx1ZUdldHRlcihwYXJhbXMubm9kZSk7XG4gIH1cblxuICBnZXRNb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLnZhbHVlIH07XG4gIH1cblxuICBzZXRNb2RlbChtb2RlbDogYW55KTogdm9pZCB7XG4gICAgO1xuICAgIHRoaXMub25DaGFuZ2UobW9kZWwgPyBtb2RlbC52YWx1ZSA6IG51bGwpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KHBhcmFtczogSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMpOiB2b2lkIHtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZShuZXdWYWx1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgaWYgKHRoaXMudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJhbXMuZmlsdGVyQ2hhbmdlZENhbGxiYWNrKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|