@acorex/data-grid 6.5.27 → 6.5.29
Sign up to get free protection for your applications and to get access to all the features.
- package/acorex-data-grid.d.ts +5 -0
- package/esm2020/acorex-data-grid.mjs +5 -0
- package/esm2020/lib/data-grid/columns/check-column.component.mjs +117 -0
- package/esm2020/lib/data-grid/columns/column.component.mjs +164 -0
- package/esm2020/lib/data-grid/columns/command-column.component.mjs +115 -0
- package/esm2020/lib/data-grid/columns/date-column.component.mjs +111 -0
- package/esm2020/lib/data-grid/columns/row-number-column.component.mjs +37 -0
- package/esm2020/lib/data-grid/columns/selection-column.component.mjs +42 -0
- package/esm2020/lib/data-grid/columns/text-column.component.mjs +89 -0
- package/esm2020/lib/data-grid/datagrid.component.mjs +667 -0
- package/esm2020/lib/data-grid/datagrid.events.mjs +2 -0
- package/esm2020/lib/data-grid/datagrid.module.mjs +145 -0
- package/esm2020/lib/data-grid/filters/filter.component.mjs +39 -0
- package/esm2020/lib/data-grid/templates/cell-template.component.mjs +53 -0
- package/esm2020/lib/data-grid/templates/detail-template.component.mjs +46 -0
- package/esm2020/lib/data-grid/templates/row-template.component.mjs +43 -0
- package/esm2020/lib/data-lov/data-lov-popup/data-lov-popup.component.mjs +114 -0
- package/esm2020/lib/data-lov/data-lov.component.mjs +165 -0
- package/esm2020/lib/data-lov/data-lov.module.mjs +23 -0
- package/esm2020/public-api.mjs +18 -0
- package/fesm2015/acorex-data-grid.mjs +1881 -0
- package/fesm2015/acorex-data-grid.mjs.map +1 -0
- package/fesm2020/acorex-data-grid.mjs +1881 -0
- package/fesm2020/acorex-data-grid.mjs.map +1 -0
- package/lib/data-grid/columns/check-column.component.d.ts +37 -0
- package/lib/data-grid/columns/column.component.d.ts +32 -0
- package/lib/data-grid/columns/command-column.component.d.ts +27 -0
- package/lib/data-grid/columns/date-column.component.d.ts +32 -0
- package/lib/data-grid/columns/row-number-column.component.d.ts +10 -0
- package/lib/data-grid/columns/selection-column.component.d.ts +12 -0
- package/lib/data-grid/columns/text-column.component.d.ts +25 -0
- package/lib/data-grid/datagrid.component.d.ts +142 -0
- package/{src/lib/data-grid/datagrid.events.ts → lib/data-grid/datagrid.events.d.ts} +1 -4
- package/lib/data-grid/datagrid.module.d.ts +23 -0
- package/lib/data-grid/filters/filter.component.d.ts +5 -0
- package/lib/data-grid/templates/cell-template.component.d.ts +22 -0
- package/lib/data-grid/templates/detail-template.component.d.ts +21 -0
- package/lib/data-grid/templates/row-template.component.d.ts +20 -0
- package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +33 -0
- package/lib/data-lov/data-lov.component.d.ts +43 -0
- package/lib/data-lov/data-lov.module.d.ts +12 -0
- package/package.json +36 -16
- package/{src/public-api.ts → public-api.d.ts} +0 -3
- package/karma.conf.js +0 -32
- package/ng-package.json +0 -12
- package/src/lib/data-grid/columns/check-column.component.ts +0 -113
- package/src/lib/data-grid/columns/column.component.ts +0 -182
- package/src/lib/data-grid/columns/command-column.component.ts +0 -101
- package/src/lib/data-grid/columns/date-column.component.ts +0 -118
- package/src/lib/data-grid/columns/row-number-column.component.ts +0 -36
- package/src/lib/data-grid/columns/selection-column.component.ts +0 -39
- package/src/lib/data-grid/columns/text-column.component.ts +0 -92
- package/src/lib/data-grid/datagrid.component.html +0 -27
- package/src/lib/data-grid/datagrid.component.ts +0 -769
- package/src/lib/data-grid/datagrid.module.ts +0 -81
- package/src/lib/data-grid/filters/filter.component.ts +0 -21
- package/src/lib/data-grid/templates/cell-template.component.ts +0 -47
- package/src/lib/data-grid/templates/detail-template.component.ts +0 -43
- package/src/lib/data-grid/templates/row-template.component.ts +0 -41
- package/src/lib/data-lov/data-lov-popup/data-lov-popup.component.html +0 -16
- package/src/lib/data-lov/data-lov-popup/data-lov-popup.component.ts +0 -130
- package/src/lib/data-lov/data-lov.component.html +0 -61
- package/src/lib/data-lov/data-lov.component.ts +0 -184
- package/src/lib/data-lov/data-lov.module.ts +0 -16
- package/src/test.ts +0 -28
- package/tsconfig.lib.json +0 -23
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
@@ -0,0 +1,42 @@
|
|
1
|
+
import { AXGridDataColumn } from './column.component';
|
2
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class AXGridSelectionColumn extends AXGridDataColumn {
|
5
|
+
constructor() {
|
6
|
+
super();
|
7
|
+
this.pinned = 'start';
|
8
|
+
this.width = 40;
|
9
|
+
}
|
10
|
+
ngOnInit() { }
|
11
|
+
render() {
|
12
|
+
const col = super.render();
|
13
|
+
col.checkboxSelection = this.condition ? this.condition : true;
|
14
|
+
// col.headerCheckboxSelection = true;
|
15
|
+
col.pinned = this.pinned === 'start' ? 'right' : 'left';
|
16
|
+
col.filter = false;
|
17
|
+
col.resizable = true;
|
18
|
+
col.sortable = false;
|
19
|
+
col.minWidth = 5;
|
20
|
+
col.width = this.width;
|
21
|
+
col.floatingFilter = false;
|
22
|
+
return col;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
AXGridSelectionColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridSelectionColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
26
|
+
AXGridSelectionColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXGridSelectionColumn, selector: "ax-selection-column", inputs: { condition: "condition", pinned: "pinned", width: "width" }, providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridSelectionColumn, decorators: [{
|
28
|
+
type: Component,
|
29
|
+
args: [{
|
30
|
+
selector: 'ax-selection-column',
|
31
|
+
template: '',
|
32
|
+
providers: [{ provide: AXGridDataColumn, useExisting: AXGridSelectionColumn }],
|
33
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
34
|
+
}]
|
35
|
+
}], ctorParameters: function () { return []; }, propDecorators: { condition: [{
|
36
|
+
type: Input
|
37
|
+
}], pinned: [{
|
38
|
+
type: Input
|
39
|
+
}], width: [{
|
40
|
+
type: Input
|
41
|
+
}] } });
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvZGF0YS1ncmlkL3NyYy9saWIvZGF0YS1ncmlkL2NvbHVtbnMvc2VsZWN0aW9uLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQkFBZ0I7SUFDekQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVNWLFdBQU0sR0FBb0IsT0FBTyxDQUFDO1FBR2xDLFVBQUssR0FBVyxFQUFFLENBQUM7SUFYbkIsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDO0lBV25CLE1BQU07UUFDSixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsR0FBRyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRCx1Q0FBdUM7UUFDdkMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEQsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLEdBQUcsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzNCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7bUhBNUJVLHFCQUFxQjt1R0FBckIscUJBQXFCLG9IQUhyQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLGlEQURwRSxFQUFFOzRGQUlELHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHVCQUF1QixFQUFFLENBQUM7b0JBQzlFLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDswRUFTQyxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYR3JpZERhdGFDb2x1bW4gfSBmcm9tICcuL2NvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3Rpb24tY29sdW1uJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWEdyaWREYXRhQ29sdW1uLCB1c2VFeGlzdGluZzogQVhHcmlkU2VsZWN0aW9uQ29sdW1uIH1dLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEdyaWRTZWxlY3Rpb25Db2x1bW4gZXh0ZW5kcyBBWEdyaWREYXRhQ29sdW1uIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29uZGl0aW9uOiAocGFyYW1zKSA9PiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBpbm5lZDogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcclxuXHJcbiAgQElucHV0KClcclxuICB3aWR0aDogbnVtYmVyID0gNDA7XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IGNvbCA9IHN1cGVyLnJlbmRlcigpO1xyXG4gICAgY29sLmNoZWNrYm94U2VsZWN0aW9uID0gdGhpcy5jb25kaXRpb24gPyB0aGlzLmNvbmRpdGlvbiA6IHRydWU7XHJcbiAgICAvLyAgY29sLmhlYWRlckNoZWNrYm94U2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIGNvbC5waW5uZWQgPSB0aGlzLnBpbm5lZCA9PT0gJ3N0YXJ0JyA/ICdyaWdodCcgOiAnbGVmdCc7XHJcbiAgICBjb2wuZmlsdGVyID0gZmFsc2U7XHJcbiAgICBjb2wucmVzaXphYmxlID0gdHJ1ZTtcclxuICAgIGNvbC5zb3J0YWJsZSA9IGZhbHNlO1xyXG4gICAgY29sLm1pbldpZHRoID0gNTtcclxuICAgIGNvbC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICBjb2wuZmxvYXRpbmdGaWx0ZXIgPSBmYWxzZTtcclxuICAgIHJldHVybiBjb2w7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,89 @@
|
|
1
|
+
import { AXGridDataColumn } from './column.component';
|
2
|
+
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
3
|
+
import { AXTextBoxComponent } from '@acorex/components';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../filters/filter.component";
|
6
|
+
import * as i2 from "@acorex/components";
|
7
|
+
export class AXGridTextColumn extends AXGridDataColumn {
|
8
|
+
constructor() {
|
9
|
+
super();
|
10
|
+
}
|
11
|
+
render() {
|
12
|
+
const col = super.render();
|
13
|
+
// if (this.allowFiltering) {
|
14
|
+
// col.filterFramework = TextFilterRenderer;
|
15
|
+
// }
|
16
|
+
col.filter = 'agTextColumnFilter';
|
17
|
+
return col;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
AXGridTextColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridTextColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
21
|
+
AXGridTextColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXGridTextColumn, selector: "ax-text-column", providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridTextColumn, decorators: [{
|
23
|
+
type: Component,
|
24
|
+
args: [{
|
25
|
+
selector: 'ax-text-column',
|
26
|
+
template: '',
|
27
|
+
providers: [{ provide: AXGridDataColumn, useExisting: AXGridTextColumn }],
|
28
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
29
|
+
}]
|
30
|
+
}], ctorParameters: function () { return []; } });
|
31
|
+
export class TextFilterRenderer {
|
32
|
+
constructor() {
|
33
|
+
this.value = null;
|
34
|
+
}
|
35
|
+
agInit(params) {
|
36
|
+
this.params = params;
|
37
|
+
this.valueGetter = (params.valueGetter);
|
38
|
+
}
|
39
|
+
isFilterActive() {
|
40
|
+
return this.value !== null && this.value !== undefined;
|
41
|
+
}
|
42
|
+
doesFilterPass(params) {
|
43
|
+
return this.value === this.valueGetter(params.node);
|
44
|
+
}
|
45
|
+
getModel() {
|
46
|
+
return { value: this.value };
|
47
|
+
}
|
48
|
+
setModel(model) {
|
49
|
+
;
|
50
|
+
this.onChange(model ? model.value : null);
|
51
|
+
}
|
52
|
+
ngAfterViewInit(params) {
|
53
|
+
window.setTimeout(() => {
|
54
|
+
this.input.focus();
|
55
|
+
});
|
56
|
+
}
|
57
|
+
onChange(newValue) {
|
58
|
+
if (this.value !== newValue) {
|
59
|
+
this.value = newValue;
|
60
|
+
if (this.value === '') {
|
61
|
+
this.value = null;
|
62
|
+
}
|
63
|
+
this.params.filterChangedCallback();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
TextFilterRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TextFilterRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
68
|
+
TextFilterRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TextFilterRenderer, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], ngImport: i0, template: `
|
69
|
+
<ax-data-grid-filter>
|
70
|
+
<ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>
|
71
|
+
</ax-text-box>
|
72
|
+
</ax-data-grid-filter>
|
73
|
+
`, isInline: true, components: [{ type: i1.AXDataGridFilterComponent, selector: "ax-data-grid-filter" }, { type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TextFilterRenderer, decorators: [{
|
75
|
+
type: Component,
|
76
|
+
args: [{
|
77
|
+
template: `
|
78
|
+
<ax-data-grid-filter>
|
79
|
+
<ax-text-box label='Filter' allowClear='true' (textChange)='onChange($event)'>
|
80
|
+
</ax-text-box>
|
81
|
+
</ax-data-grid-filter>
|
82
|
+
`,
|
83
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
84
|
+
}]
|
85
|
+
}], propDecorators: { input: [{
|
86
|
+
type: ViewChild,
|
87
|
+
args: [AXTextBoxComponent, { static: true }]
|
88
|
+
}] } });
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2RhdGEtZ3JpZC9zcmMvbGliL2RhdGEtZ3JpZC9jb2x1bW5zL3RleHQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFTeEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUNwRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsNkJBQTZCO1FBQzdCLDhDQUE4QztRQUM5QyxJQUFJO1FBQ0osR0FBRyxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OzhHQVpVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlDQUhoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLGlEQUQvRCxFQUFFOzRGQUlELGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLGtCQUFrQixFQUFFLENBQUM7b0JBQ3pFLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7QUF5QkQsTUFBTSxPQUFPLGtCQUFrQjtJQVQvQjtRQVVTLFVBQUssR0FBWSxJQUFJLENBQUM7S0EyQzlCO0lBckNDLE1BQU0sQ0FBQyxNQUFxQjtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBUSxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQTZCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBK0I7UUFDN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBUTtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDbkI7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDckM7SUFDSCxDQUFDOztnSEEzQ1Usa0JBQWtCO29HQUFsQixrQkFBa0IsMkZBSWxCLGtCQUFrQiw4REFabkI7Ozs7O0dBS1Q7NEZBR1Usa0JBQWtCO2tCQVQ5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7R0FLVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBTVMsS0FBSztzQkFEWixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYR3JpZERhdGFDb2x1bW4gfSBmcm9tICcuL2NvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIElGaWx0ZXJQYXJhbXMsXHJcbiAgUm93Tm9kZSxcclxuICBJRG9lc0ZpbHRlclBhc3NQYXJhbXMsXHJcbiAgSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXNcclxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IElGaWx0ZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10ZXh0LWNvbHVtbicsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhHcmlkRGF0YUNvbHVtbiwgdXNlRXhpc3Rpbmc6IEFYR3JpZFRleHRDb2x1bW4gfV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYR3JpZFRleHRDb2x1bW4gZXh0ZW5kcyBBWEdyaWREYXRhQ29sdW1uIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCBjb2wgPSBzdXBlci5yZW5kZXIoKTtcclxuICAgIC8vIGlmICh0aGlzLmFsbG93RmlsdGVyaW5nKSB7XHJcbiAgICAvLyAgIGNvbC5maWx0ZXJGcmFtZXdvcmsgPSBUZXh0RmlsdGVyUmVuZGVyZXI7XHJcbiAgICAvLyB9XHJcbiAgICBjb2wuZmlsdGVyID0gJ2FnVGV4dENvbHVtbkZpbHRlcic7XHJcbiAgICByZXR1cm4gY29sO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxheC1kYXRhLWdyaWQtZmlsdGVyPlxyXG4gICAgICA8YXgtdGV4dC1ib3ggbGFiZWw9J0ZpbHRlcicgYWxsb3dDbGVhcj0ndHJ1ZScgKHRleHRDaGFuZ2UpPSdvbkNoYW5nZSgkZXZlbnQpJz5cclxuICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgIDwvYXgtZGF0YS1ncmlkLWZpbHRlcj5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0RmlsdGVyUmVuZGVyZXIgaW1wbGVtZW50cyBJRmlsdGVyQW5ndWxhckNvbXAge1xyXG4gIHB1YmxpYyB2YWx1ZT86IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBwYXJhbXM6IElGaWx0ZXJQYXJhbXM7XHJcbiAgcHJpdmF0ZSB2YWx1ZUdldHRlcjogKHJvd05vZGU6IFJvd05vZGUpID0+IGFueTtcclxuICBAVmlld0NoaWxkKEFYVGV4dEJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIGlucHV0OiBBWFRleHRCb3hDb21wb25lbnQ7XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IElGaWx0ZXJQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gICAgdGhpcy52YWx1ZUdldHRlciA9IChwYXJhbXMudmFsdWVHZXR0ZXIpIGFzIGFueTtcclxuICB9XHJcblxyXG4gIGlzRmlsdGVyQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSB0aGlzLnZhbHVlR2V0dGVyKHBhcmFtcy5ub2RlKTtcclxuICB9XHJcblxyXG4gIGdldE1vZGVsKCk6IGFueSB7XHJcbiAgICByZXR1cm4geyB2YWx1ZTogdGhpcy52YWx1ZSB9O1xyXG4gIH1cclxuXHJcbiAgc2V0TW9kZWwobW9kZWw6IGFueSk6IHZvaWQge1xyXG4gICAgO1xyXG4gICAgdGhpcy5vbkNoYW5nZShtb2RlbCA/IG1vZGVsLnZhbHVlIDogbnVsbCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQocGFyYW1zOiBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcyk6IHZvaWQge1xyXG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucHV0LmZvY3VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKG5ld1ZhbHVlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gbmV3VmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|