@acorex/data-grid 6.5.29 → 6.5.31
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -2
- package/acorex-data-grid.d.ts +5 -5
- package/esm2020/acorex-data-grid.mjs +4 -4
- package/esm2020/lib/data-grid/columns/check-column.component.mjs +117 -117
- package/esm2020/lib/data-grid/columns/column.component.mjs +164 -164
- package/esm2020/lib/data-grid/columns/command-column.component.mjs +115 -115
- package/esm2020/lib/data-grid/columns/date-column.component.mjs +111 -111
- package/esm2020/lib/data-grid/columns/row-number-column.component.mjs +37 -37
- package/esm2020/lib/data-grid/columns/selection-column.component.mjs +42 -42
- package/esm2020/lib/data-grid/columns/text-column.component.mjs +89 -89
- package/esm2020/lib/data-grid/datagrid.component.mjs +667 -667
- package/esm2020/lib/data-grid/datagrid.events.mjs +2 -2
- package/esm2020/lib/data-grid/datagrid.module.mjs +145 -145
- package/esm2020/lib/data-grid/filters/filter.component.mjs +39 -39
- package/esm2020/lib/data-grid/templates/cell-template.component.mjs +53 -53
- package/esm2020/lib/data-grid/templates/detail-template.component.mjs +46 -46
- package/esm2020/lib/data-grid/templates/row-template.component.mjs +43 -43
- package/esm2020/lib/data-lov/data-lov-popup/data-lov-popup.component.mjs +114 -114
- package/esm2020/lib/data-lov/data-lov.component.mjs +165 -165
- package/esm2020/lib/data-lov/data-lov.module.mjs +23 -23
- package/esm2020/public-api.mjs +18 -18
- package/fesm2015/acorex-data-grid.mjs +1833 -1833
- package/fesm2015/acorex-data-grid.mjs.map +1 -1
- package/fesm2020/acorex-data-grid.mjs +1833 -1833
- package/fesm2020/acorex-data-grid.mjs.map +1 -1
- package/lib/data-grid/columns/check-column.component.d.ts +37 -37
- package/lib/data-grid/columns/column.component.d.ts +32 -32
- package/lib/data-grid/columns/command-column.component.d.ts +27 -27
- package/lib/data-grid/columns/date-column.component.d.ts +32 -32
- package/lib/data-grid/columns/row-number-column.component.d.ts +10 -10
- package/lib/data-grid/columns/selection-column.component.d.ts +12 -12
- package/lib/data-grid/columns/text-column.component.d.ts +25 -25
- package/lib/data-grid/datagrid.component.d.ts +142 -142
- package/lib/data-grid/datagrid.events.d.ts +20 -20
- package/lib/data-grid/datagrid.module.d.ts +23 -23
- package/lib/data-grid/filters/filter.component.d.ts +5 -5
- package/lib/data-grid/templates/cell-template.component.d.ts +22 -22
- package/lib/data-grid/templates/detail-template.component.d.ts +21 -21
- package/lib/data-grid/templates/row-template.component.d.ts +20 -20
- package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +33 -33
- package/lib/data-lov/data-lov.component.d.ts +43 -43
- package/lib/data-lov/data-lov.module.d.ts +12 -12
- package/package.json +1 -1
- package/public-api.d.ts +17 -17
package/README.md
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
### ACoreX DataGrid
|
2
|
-
This library have data grid & data lov
|
1
|
+
### ACoreX DataGrid
|
2
|
+
This library have data grid & data lov
|
package/acorex-data-grid.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
/// <amd-module name="@acorex/data-grid" />
|
5
|
-
export * from './public-api';
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
/// <amd-module name="@acorex/data-grid" />
|
5
|
+
export * from './public-api';
|
@@ -1,5 +1,5 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
export * from './public-api';
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './public-api';
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWRhdGEtZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9kYXRhLWdyaWQvc3JjL2Fjb3JleC1kYXRhLWdyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
@@ -1,117 +1,117 @@
|
|
1
|
-
import { Component, ChangeDetectionStrategy, ViewChild, ViewContainerRef } from '@angular/core';
|
2
|
-
import { AXGridDataColumn } from './column.component';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "@acorex/components";
|
5
|
-
import * as i2 from "../filters/filter.component";
|
6
|
-
export class AXGridCheckColumn extends AXGridDataColumn {
|
7
|
-
constructor() {
|
8
|
-
super();
|
9
|
-
}
|
10
|
-
render() {
|
11
|
-
const col = super.render();
|
12
|
-
if (!col.cellRendererFramework) {
|
13
|
-
col.cellRendererFramework = BooleanRenderer;
|
14
|
-
}
|
15
|
-
if (this.allowFiltering) {
|
16
|
-
col.filterFramework = BooleanFilterRenderer;
|
17
|
-
}
|
18
|
-
return col;
|
19
|
-
}
|
20
|
-
}
|
21
|
-
AXGridCheckColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridCheckColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
22
|
-
AXGridCheckColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXGridCheckColumn, selector: "ax-check-column", providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridCheckColumn, decorators: [{
|
24
|
-
type: Component,
|
25
|
-
args: [{
|
26
|
-
selector: 'ax-check-column',
|
27
|
-
template: '',
|
28
|
-
providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }],
|
29
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
30
|
-
}]
|
31
|
-
}], ctorParameters: function () { return []; } });
|
32
|
-
export class BooleanRenderer {
|
33
|
-
constructor() { }
|
34
|
-
agInit(params) {
|
35
|
-
this.value = params.value;
|
36
|
-
}
|
37
|
-
refresh(params) {
|
38
|
-
this.value = params.value;
|
39
|
-
return true;
|
40
|
-
}
|
41
|
-
}
|
42
|
-
BooleanRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
43
|
-
BooleanRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanRenderer, selector: "ng-component", ngImport: i0, template: `
|
44
|
-
<ax-check-box [value]='value' readonly='true'></ax-check-box>
|
45
|
-
`, isInline: true, components: [{ type: i1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanRenderer, decorators: [{
|
47
|
-
type: Component,
|
48
|
-
args: [{
|
49
|
-
template: `
|
50
|
-
<ax-check-box [value]='value' readonly='true'></ax-check-box>
|
51
|
-
`,
|
52
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
53
|
-
}]
|
54
|
-
}], ctorParameters: function () { return []; } });
|
55
|
-
export class BooleanFilterRenderer {
|
56
|
-
constructor() {
|
57
|
-
this.value = null;
|
58
|
-
this.selectItem = [
|
59
|
-
{ value: 0, label: 'True' },
|
60
|
-
{ value: 1, label: 'False' },
|
61
|
-
];
|
62
|
-
}
|
63
|
-
agInit(params) {
|
64
|
-
this.params = params;
|
65
|
-
this.valueGetter = (params.valueGetter);
|
66
|
-
}
|
67
|
-
isFilterActive() {
|
68
|
-
return this.value !== null && this.value !== undefined;
|
69
|
-
}
|
70
|
-
doesFilterPass(params) {
|
71
|
-
return this.value === this.valueGetter(params.node);
|
72
|
-
}
|
73
|
-
getModel() {
|
74
|
-
return { value: this.value };
|
75
|
-
}
|
76
|
-
setModel(model) {
|
77
|
-
this.value = model ? model.value : null;
|
78
|
-
}
|
79
|
-
ngAfterViewInit(params) {
|
80
|
-
window.setTimeout(() => {
|
81
|
-
this.input.element.nativeElement.focus();
|
82
|
-
});
|
83
|
-
}
|
84
|
-
onChange(newValue) {
|
85
|
-
if (this.value !== newValue) {
|
86
|
-
this.value = newValue;
|
87
|
-
this.params.filterChangedCallback();
|
88
|
-
}
|
89
|
-
}
|
90
|
-
}
|
91
|
-
BooleanFilterRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanFilterRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
92
|
-
BooleanFilterRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanFilterRenderer, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
|
93
|
-
<ax-data-grid-filter>
|
94
|
-
<ax-select-box
|
95
|
-
label='Select Box'
|
96
|
-
[items]='selectItem'
|
97
|
-
></ax-select-box>
|
98
|
-
</ax-data-grid-filter>
|
99
|
-
`, isInline: true, components: [{ type: i2.AXDataGridFilterComponent, selector: "ax-data-grid-filter" }, { type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanFilterRenderer, decorators: [{
|
101
|
-
type: Component,
|
102
|
-
args: [{
|
103
|
-
template: `
|
104
|
-
<ax-data-grid-filter>
|
105
|
-
<ax-select-box
|
106
|
-
label='Select Box'
|
107
|
-
[items]='selectItem'
|
108
|
-
></ax-select-box>
|
109
|
-
</ax-data-grid-filter>
|
110
|
-
`,
|
111
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
112
|
-
}]
|
113
|
-
}], propDecorators: { input: [{
|
114
|
-
type: ViewChild,
|
115
|
-
args: ['input', { static: true, read: ViewContainerRef }]
|
116
|
-
}] } });
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { Component, ChangeDetectionStrategy, ViewChild, ViewContainerRef } from '@angular/core';
|
2
|
+
import { AXGridDataColumn } from './column.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@acorex/components";
|
5
|
+
import * as i2 from "../filters/filter.component";
|
6
|
+
export class AXGridCheckColumn extends AXGridDataColumn {
|
7
|
+
constructor() {
|
8
|
+
super();
|
9
|
+
}
|
10
|
+
render() {
|
11
|
+
const col = super.render();
|
12
|
+
if (!col.cellRendererFramework) {
|
13
|
+
col.cellRendererFramework = BooleanRenderer;
|
14
|
+
}
|
15
|
+
if (this.allowFiltering) {
|
16
|
+
col.filterFramework = BooleanFilterRenderer;
|
17
|
+
}
|
18
|
+
return col;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
AXGridCheckColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridCheckColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
22
|
+
AXGridCheckColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXGridCheckColumn, selector: "ax-check-column", providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXGridCheckColumn, decorators: [{
|
24
|
+
type: Component,
|
25
|
+
args: [{
|
26
|
+
selector: 'ax-check-column',
|
27
|
+
template: '',
|
28
|
+
providers: [{ provide: AXGridDataColumn, useExisting: AXGridCheckColumn }],
|
29
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
30
|
+
}]
|
31
|
+
}], ctorParameters: function () { return []; } });
|
32
|
+
export class BooleanRenderer {
|
33
|
+
constructor() { }
|
34
|
+
agInit(params) {
|
35
|
+
this.value = params.value;
|
36
|
+
}
|
37
|
+
refresh(params) {
|
38
|
+
this.value = params.value;
|
39
|
+
return true;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
BooleanRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
43
|
+
BooleanRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanRenderer, selector: "ng-component", ngImport: i0, template: `
|
44
|
+
<ax-check-box [value]='value' readonly='true'></ax-check-box>
|
45
|
+
`, isInline: true, components: [{ type: i1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanRenderer, decorators: [{
|
47
|
+
type: Component,
|
48
|
+
args: [{
|
49
|
+
template: `
|
50
|
+
<ax-check-box [value]='value' readonly='true'></ax-check-box>
|
51
|
+
`,
|
52
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
53
|
+
}]
|
54
|
+
}], ctorParameters: function () { return []; } });
|
55
|
+
export class BooleanFilterRenderer {
|
56
|
+
constructor() {
|
57
|
+
this.value = null;
|
58
|
+
this.selectItem = [
|
59
|
+
{ value: 0, label: 'True' },
|
60
|
+
{ value: 1, label: 'False' },
|
61
|
+
];
|
62
|
+
}
|
63
|
+
agInit(params) {
|
64
|
+
this.params = params;
|
65
|
+
this.valueGetter = (params.valueGetter);
|
66
|
+
}
|
67
|
+
isFilterActive() {
|
68
|
+
return this.value !== null && this.value !== undefined;
|
69
|
+
}
|
70
|
+
doesFilterPass(params) {
|
71
|
+
return this.value === this.valueGetter(params.node);
|
72
|
+
}
|
73
|
+
getModel() {
|
74
|
+
return { value: this.value };
|
75
|
+
}
|
76
|
+
setModel(model) {
|
77
|
+
this.value = model ? model.value : null;
|
78
|
+
}
|
79
|
+
ngAfterViewInit(params) {
|
80
|
+
window.setTimeout(() => {
|
81
|
+
this.input.element.nativeElement.focus();
|
82
|
+
});
|
83
|
+
}
|
84
|
+
onChange(newValue) {
|
85
|
+
if (this.value !== newValue) {
|
86
|
+
this.value = newValue;
|
87
|
+
this.params.filterChangedCallback();
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
BooleanFilterRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanFilterRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
92
|
+
BooleanFilterRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanFilterRenderer, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
|
93
|
+
<ax-data-grid-filter>
|
94
|
+
<ax-select-box
|
95
|
+
label='Select Box'
|
96
|
+
[items]='selectItem'
|
97
|
+
></ax-select-box>
|
98
|
+
</ax-data-grid-filter>
|
99
|
+
`, isInline: true, components: [{ type: i2.AXDataGridFilterComponent, selector: "ax-data-grid-filter" }, { type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanFilterRenderer, decorators: [{
|
101
|
+
type: Component,
|
102
|
+
args: [{
|
103
|
+
template: `
|
104
|
+
<ax-data-grid-filter>
|
105
|
+
<ax-select-box
|
106
|
+
label='Select Box'
|
107
|
+
[items]='selectItem'
|
108
|
+
></ax-select-box>
|
109
|
+
</ax-data-grid-filter>
|
110
|
+
`,
|
111
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
112
|
+
}]
|
113
|
+
}], propDecorators: { input: [{
|
114
|
+
type: ViewChild,
|
115
|
+
args: ['input', { static: true, read: ViewContainerRef }]
|
116
|
+
}] } });
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9kYXRhLWdyaWQvc3JjL2xpYi9kYXRhLWdyaWQvY29sdW1ucy9jaGVjay1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFpQnRELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFDckQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsR0FBRyxDQUFDLHFCQUFxQixHQUFHLGVBQWUsQ0FBQztTQUM3QztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixHQUFHLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDO1NBQzdDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzsrR0FkVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwwQ0FKakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxpREFEaEUsRUFBRTs0RkFLRCxpQkFBaUI7a0JBUDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxDQUFDO29CQUMxRSxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7O0FBeUJELE1BQU0sT0FBTyxlQUFlO0lBRTFCLGdCQUFnQixDQUFDO0lBQ2pCLE1BQU0sQ0FBQyxNQUEyQjtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUNELE9BQU8sQ0FBQyxNQUEyQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs2R0FUVSxlQUFlO2lHQUFmLGVBQWUsb0RBTGhCOztHQUVUOzRGQUdVLGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOztHQUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7QUF3QkQsTUFBTSxPQUFPLHFCQUFxQjtJQVhsQztRQVlTLFVBQUssR0FBYSxJQUFJLENBQUM7UUFLOUIsZUFBVSxHQUFHO1lBQ1gsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDM0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7U0FDN0IsQ0FBQztLQWtDSDtJQWpDQyxNQUFNLENBQUMsTUFBcUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQVEsQ0FBQztJQUNqRCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE2QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQStCO1FBQzdDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBUTtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7bUhBMUNVLHFCQUFxQjt1R0FBckIscUJBQXFCLCtIQUlVLGdCQUFnQiwyQ0FkaEQ7Ozs7Ozs7R0FPVDs0RkFHVSxxQkFBcUI7a0JBWGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7O0dBT1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUtzRSxLQUFLO3NCQUF6RSxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhHcmlkRGF0YUNvbHVtbiB9IGZyb20gJy4vY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAsIElGaWx0ZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBJRmlsdGVyUGFyYW1zLFxuICBSb3dOb2RlLFxuICBJRG9lc0ZpbHRlclBhc3NQYXJhbXMsXG4gIElBZnRlckd1aUF0dGFjaGVkUGFyYW1zXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY2hlY2stY29sdW1uJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYR3JpZERhdGFDb2x1bW4sIHVzZUV4aXN0aW5nOiBBWEdyaWRDaGVja0NvbHVtbiB9XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWEdyaWRDaGVja0NvbHVtbiBleHRlbmRzIEFYR3JpZERhdGFDb2x1bW4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNvbCA9IHN1cGVyLnJlbmRlcigpO1xuICAgIGlmICghY29sLmNlbGxSZW5kZXJlckZyYW1ld29yaykge1xuICAgICAgY29sLmNlbGxSZW5kZXJlckZyYW1ld29yayA9IEJvb2xlYW5SZW5kZXJlcjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxsb3dGaWx0ZXJpbmcpIHtcbiAgICAgIGNvbC5maWx0ZXJGcmFtZXdvcmsgPSBCb29sZWFuRmlsdGVyUmVuZGVyZXI7XG4gICAgfVxuICAgIHJldHVybiBjb2w7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPSd2YWx1ZScgcmVhZG9ubHk9J3RydWUnPjwvYXgtY2hlY2stYm94PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuICB2YWx1ZTogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoKSB7IH1cbiAgYWdJbml0KHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBwYXJhbXMudmFsdWU7XG4gIH1cbiAgcmVmcmVzaChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1kYXRhLWdyaWQtZmlsdGVyPlxuICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgbGFiZWw9J1NlbGVjdCBCb3gnXG4gICAgICAgIFtpdGVtc109J3NlbGVjdEl0ZW0nXG4gICAgICA+PC9heC1zZWxlY3QtYm94PlxuICAgIDwvYXgtZGF0YS1ncmlkLWZpbHRlcj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQm9vbGVhbkZpbHRlclJlbmRlcmVyIGltcGxlbWVudHMgSUZpbHRlckFuZ3VsYXJDb21wIHtcbiAgcHVibGljIHZhbHVlPzogYm9vbGVhbiA9IG51bGw7XG4gIHByaXZhdGUgcGFyYW1zOiBJRmlsdGVyUGFyYW1zO1xuICBwcml2YXRlIHZhbHVlR2V0dGVyOiAocm93Tm9kZTogUm93Tm9kZSkgPT4gYW55O1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHB1YmxpYyBpbnB1dDtcblxuICBzZWxlY3RJdGVtID0gW1xuICAgIHsgdmFsdWU6IDAsIGxhYmVsOiAnVHJ1ZScgfSxcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogJ0ZhbHNlJyB9LFxuICBdO1xuICBhZ0luaXQocGFyYW1zOiBJRmlsdGVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy52YWx1ZUdldHRlciA9IChwYXJhbXMudmFsdWVHZXR0ZXIpIGFzIGFueTtcbiAgfVxuXG4gIGlzRmlsdGVyQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRvZXNGaWx0ZXJQYXNzKHBhcmFtczogSURvZXNGaWx0ZXJQYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IHRoaXMudmFsdWVHZXR0ZXIocGFyYW1zLm5vZGUpO1xuICB9XG5cbiAgZ2V0TW9kZWwoKTogYW55IHtcbiAgICByZXR1cm4geyB2YWx1ZTogdGhpcy52YWx1ZSB9O1xuICB9XG5cbiAgc2V0TW9kZWwobW9kZWw6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBtb2RlbCA/IG1vZGVsLnZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdChwYXJhbXM6IElBZnRlckd1aUF0dGFjaGVkUGFyYW1zKTogdm9pZCB7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlKG5ld1ZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLnBhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|