basesite-shared-grid-lib 1.2.6 → 1.2.8
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/basesite-shared-grid-lib-1.2.8.tgz +0 -0
- package/esm2020/lib/grid-library.component.mjs +34 -8
- package/fesm2015/basesite-shared-grid-lib.mjs +33 -7
- package/fesm2015/basesite-shared-grid-lib.mjs.map +1 -1
- package/fesm2020/basesite-shared-grid-lib.mjs +33 -7
- package/fesm2020/basesite-shared-grid-lib.mjs.map +1 -1
- package/lib/grid-library.component.d.ts +4 -2
- package/package.json +1 -1
- package/basesite-shared-grid-lib-1.2.6.tgz +0 -0
|
Binary file
|
|
@@ -14,12 +14,12 @@ export class GridLibraryComponent {
|
|
|
14
14
|
this.pageSize = 20;
|
|
15
15
|
this.rowSelection = 'multiple';
|
|
16
16
|
this.enableServerSidePaging = false;
|
|
17
|
+
this.cacheBlockSize = 0;
|
|
17
18
|
//event emitters
|
|
18
19
|
this.btnClickHandler = new EventEmitter();
|
|
19
20
|
this.tooltipShowDelay = 0;
|
|
20
21
|
this.tooltipHideDelay = 2000;
|
|
21
22
|
this.rowModelType = 'clientSide';
|
|
22
|
-
this.cacheBlockSize = 0;
|
|
23
23
|
this.gridPageSize = 0;
|
|
24
24
|
this.defaultColDef = {
|
|
25
25
|
sortable: true,
|
|
@@ -39,7 +39,9 @@ export class GridLibraryComponent {
|
|
|
39
39
|
}
|
|
40
40
|
ngOnInit() {
|
|
41
41
|
this.gridPageSize = this.pageSize;
|
|
42
|
-
this.cacheBlockSize = this.
|
|
42
|
+
this.cacheBlockSize = this.cacheBlockSize = 0
|
|
43
|
+
? this.pageSize
|
|
44
|
+
: this.cacheBlockSize;
|
|
43
45
|
this.gridService.setBaseUrl(this.environment);
|
|
44
46
|
this.getGridState();
|
|
45
47
|
this.getColDef();
|
|
@@ -119,7 +121,7 @@ export class GridLibraryComponent {
|
|
|
119
121
|
minWidth: 40,
|
|
120
122
|
cellClass: 'action-button',
|
|
121
123
|
pinned: 'left',
|
|
122
|
-
lockPinned: true
|
|
124
|
+
lockPinned: true,
|
|
123
125
|
};
|
|
124
126
|
}
|
|
125
127
|
});
|
|
@@ -128,7 +130,7 @@ export class GridLibraryComponent {
|
|
|
128
130
|
this.getGridState();
|
|
129
131
|
}
|
|
130
132
|
else {
|
|
131
|
-
console.log(
|
|
133
|
+
console.log('ColDef Read Error=>', response.message);
|
|
132
134
|
}
|
|
133
135
|
});
|
|
134
136
|
}
|
|
@@ -136,12 +138,32 @@ export class GridLibraryComponent {
|
|
|
136
138
|
console.log('Please pass valid GridId and loggedIn user Id');
|
|
137
139
|
}
|
|
138
140
|
}
|
|
141
|
+
setExternalFilters(options) {
|
|
142
|
+
if (this.serverDataUrl.indexOf('filter') >= 0 &&
|
|
143
|
+
options.indexOf('filter') >= 0) {
|
|
144
|
+
const slug = this.serverDataUrl.split('?$filter=');
|
|
145
|
+
if (slug && slug.length > 0) {
|
|
146
|
+
options += options + ' & ' + slug[1];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return options;
|
|
150
|
+
}
|
|
151
|
+
setDataUrl(options) {
|
|
152
|
+
if (this.serverDataUrl.indexOf('filter') >= 0 &&
|
|
153
|
+
options.indexOf('filter') >= 0) {
|
|
154
|
+
const slug = this.serverDataUrl.split('?$filter=');
|
|
155
|
+
if (slug && slug.length > 0) {
|
|
156
|
+
this.serverDataUrl = slug[0];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return this.serverDataUrl;
|
|
160
|
+
}
|
|
139
161
|
onGridReady(params) {
|
|
140
162
|
this.gridPageSize = this.pageSize;
|
|
141
163
|
if (this.enableServerSidePaging == true) {
|
|
142
164
|
params.api.setServerSideDatasource(new OdataServerSideProvider({
|
|
143
165
|
isCaseSensitiveStringFilter: false,
|
|
144
|
-
callApi: (options) => fetch(`${this.
|
|
166
|
+
callApi: (options) => fetch(`${this.setDataUrl(options)}${this.setExternalFilters(options)}`, {
|
|
145
167
|
headers: {
|
|
146
168
|
'Content-type': 'application/json',
|
|
147
169
|
Accept: 'application/json',
|
|
@@ -172,7 +194,9 @@ export class GridLibraryComponent {
|
|
|
172
194
|
this.gridService
|
|
173
195
|
.getGridState(this.gridId, this.loggedInUser)
|
|
174
196
|
.subscribe((response) => {
|
|
175
|
-
if (response.status == 1
|
|
197
|
+
if (response.status == 1 &&
|
|
198
|
+
response.object &&
|
|
199
|
+
response.object.gridConfig) {
|
|
176
200
|
this.gridColumnState = JSON.parse(response.object.gridConfig);
|
|
177
201
|
this.setGridState();
|
|
178
202
|
}
|
|
@@ -217,7 +241,7 @@ export class GridLibraryComponent {
|
|
|
217
241
|
}
|
|
218
242
|
}
|
|
219
243
|
GridLibraryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: GridLibraryComponent, deps: [{ token: i1.GridLibraryService }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
220
|
-
GridLibraryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: GridLibraryComponent, selector: "lib-basesite-shared-grid-lib", inputs: { columnDefs: "columnDefs", rowData: "rowData", pageSize: "pageSize", rowSelection: "rowSelection", gridId: "gridId", loggedInUser: "loggedInUser", enableServerSidePaging: "enableServerSidePaging", serverDataUrl: "serverDataUrl", environment: "environment" }, outputs: { btnClickHandler: "btnClickHandler" }, viewQueries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0, template: `
|
|
244
|
+
GridLibraryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: GridLibraryComponent, selector: "lib-basesite-shared-grid-lib", inputs: { columnDefs: "columnDefs", rowData: "rowData", pageSize: "pageSize", rowSelection: "rowSelection", gridId: "gridId", loggedInUser: "loggedInUser", enableServerSidePaging: "enableServerSidePaging", serverDataUrl: "serverDataUrl", environment: "environment", cacheBlockSize: "cacheBlockSize" }, outputs: { btnClickHandler: "btnClickHandler" }, viewQueries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0, template: `
|
|
221
245
|
<ag-grid-angular
|
|
222
246
|
style="width: 100%;height:98.2vh"
|
|
223
247
|
class="ag-theme-balham"
|
|
@@ -293,10 +317,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
293
317
|
type: Input
|
|
294
318
|
}], environment: [{
|
|
295
319
|
type: Input
|
|
320
|
+
}], cacheBlockSize: [{
|
|
321
|
+
type: Input
|
|
296
322
|
}], btnClickHandler: [{
|
|
297
323
|
type: Output
|
|
298
324
|
}], agGrid: [{
|
|
299
325
|
type: ViewChild,
|
|
300
326
|
args: [AgGridAngular]
|
|
301
327
|
}] } });
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBV2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBa0NwRixNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLFdBQStCLEVBQy9CLFFBQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdkJuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVEsVUFBVSxDQUFDO1FBRy9CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUdqRCxnQkFBZ0I7UUFDTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFpQixZQUFZLENBQUM7UUFDMUMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFhekIsa0JBQWEsR0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osZ0JBQWdCLEVBQUUsYUFBYTtTQUNo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QUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDNUQ7aUJBQU07Z0JBQ0wsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ3JCO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7aUhBN09VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHlhQWVwQixhQUFhLGdEQTdDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzJGQUdVLG9CQUFvQjtrQkFoQ2hDLFNBQVM7K0JBQ0UsOEJBQThCLFlBQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7Z0lBS1EsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFHbUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sRGVmLFxuICBHZXRSb3dJZEZ1bmMsXG4gIEdldFJvd0lkUGFyYW1zLFxuICBHcmlkUmVhZHlFdmVudCxcbiAgUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcyxcbiAgUm93TW9kZWxUeXBlLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgR3JpZExpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLWxpYnJhcnkuc2VydmljZSc7XG5pbXBvcnQgeyBPZGF0YVNlcnZlclNpZGVQcm92aWRlciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBCdXR0b25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVG9vbHRpcCB9IGZyb20gJy4vcmVuZGVyZXIvdG9vbHRpcC1yZW5kZXJlci9jdXN0b20tdG9vbHRpcC1yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhZy1ncmlkLWFuZ3VsYXJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0Ojk4LjJ2aFwiXG4gICAgICBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXG4gICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YVwiXG4gICAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXG4gICAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXG4gICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxuICAgICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cImdyaWRQYWdlU2l6ZVwiXG4gICAgICBbcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcl09XCJwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXCJcbiAgICAgIChtb2RlbFVwZGF0ZWQpPVwib25Nb2RlbFVwZGF0ZWQoKVwiXG4gICAgICBbdG9vbHRpcFNob3dEZWxheV09XCJ0b29sdGlwU2hvd0RlbGF5XCJcbiAgICAgIFt0b29sdGlwSGlkZURlbGF5XT1cInRvb2x0aXBIaWRlRGVsYXlcIlxuICAgICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxuICAgICAgW2NhY2hlQmxvY2tTaXplXT1cImNhY2hlQmxvY2tTaXplXCJcbiAgICAgIFttYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzXT1cIjFcIlxuICAgICAgW2Jsb2NrTG9hZERlYm91bmNlTWlsbGlzXT1cIjEwMFwiXG4gICAgICAoY29sdW1uVmlzaWJsZSk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoY29sdW1uUGlubmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5Nb3ZlZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZEV2ZW50KClcIlxuICAgID5cbiAgICA8L2FnLWdyaWQtYW5ndWxhcj5cbiAgYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExpYnJhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvL2lucHV0IHBhcmFtc1xuICBASW5wdXQoKSBjb2x1bW5EZWZzOiBhbnk7XG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDIwO1xuICBASW5wdXQoKSByb3dTZWxlY3Rpb246IGFueSA9ICdtdWx0aXBsZSc7XG4gIEBJbnB1dCgpIGdyaWRJZDogYW55O1xuICBASW5wdXQoKSBsb2dnZWRJblVzZXI6IGFueTtcbiAgQElucHV0KCkgZW5hYmxlU2VydmVyU2lkZVBhZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXJ2ZXJEYXRhVXJsITogc3RyaW5nO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudCE6c3RyaW5nO1xuICAvL2V2ZW50IGVtaXR0ZXJzXG4gIEBPdXRwdXQoKSBidG5DbGlja0hhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvL3ZpZXdDaGlsZHNcbiAgQFZpZXdDaGlsZChBZ0dyaWRBbmd1bGFyKSBhZ0dyaWQhOiBBZ0dyaWRBbmd1bGFyO1xuXG4gIC8vcGFyYW10ZXJzXG4gIGdyaWRDb2x1bW5TdGF0ZTogYW55O1xuICBwdWJsaWMgdG9vbHRpcFNob3dEZWxheSA9IDA7XG4gIHB1YmxpYyB0b29sdGlwSGlkZURlbGF5ID0gMjAwMDtcbiAgcHVibGljIHJvd01vZGVsVHlwZTogUm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xuICBwdWJsaWMgY2FjaGVCbG9ja1NpemU6IG51bWJlciA9IDA7XG4gIHB1YmxpYyBncmlkUGFnZVNpemU6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZExpYnJhcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge1xuICAgIFxuICB9XG5cbiAgb25Tb3J0Q2hhbmdlZEV2ZW50KCkge1xuICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmdldENvbHVtblN0YXRlKCk7XG4gIH1cbiAgXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIHRvb2x0aXBDb21wb25lbnQ6IEN1c3RvbVRvb2x0aXAsXG4gIH07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncmlkUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMuY2FjaGVCbG9ja1NpemUgPSB0aGlzLnBhZ2VTaXplOyAgIFxuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2V0QmFzZVVybCh0aGlzLmVudmlyb25tZW50KTtcbiAgICB0aGlzLmdldEdyaWRTdGF0ZSgpO1xuICAgIHRoaXMuZ2V0Q29sRGVmKCk7XG4gICAgaWYgKHRoaXMuZW5hYmxlU2VydmVyU2lkZVBhZ2luZyA9PSB0cnVlKSB7XG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdzZXJ2ZXJTaWRlJztcbiAgICAgIHRoaXMucm93RGF0YSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcjogKFxuICAgIHBhcmFtczogUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtc1xuICApID0+IHN0cmluZyA9IChwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXMpID0+IHtcbiAgICByZXR1cm4gJ1snICsgcGFyYW1zLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCkgKyAnXSc7XG4gIH07XG5cbiAgb25Nb2RlbFVwZGF0ZWQoKSB7XG4gICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgfVxuXG4gIGdldENvbERlZigpIHtcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2UuZ2V0Q29sRGVmKHRoaXMuZ3JpZElkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgaWYocmVzcG9uc2Uuc3RhdHVzPT0xKXtcbiAgICAgICAgbGV0IGNvbGRlZjogQ29sRGVmW10gPSByZXNwb25zZS5saXN0Lm1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzLmlzQnV0dG9uID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZmllbGQ6IHJlcy5maWVsZCxcbiAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgIGhpZGU6ICFyZXMudmlzaWJsZSxcbiAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jb2xWYWx1ZUZvcm1hdHRlci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiByZXMuZmlsdGVyYWJsZSxcbiAgICAgICAgICAgICAgZmlsdGVyOlxuICAgICAgICAgICAgICAgIHJlcy5jb2x1bW5UeXBlID09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICA/ICdhZ1RleHRDb2x1bW5GaWx0ZXInXG4gICAgICAgICAgICAgICAgICA6IHJlcy5jb2x1bW5UeXBlID09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICA/ICdhZ051bWJlckNvbHVtbkZpbHRlcidcbiAgICAgICAgICAgICAgICAgIDogJ2FnRGF0ZUNvbHVtbkZpbHRlcicsXG4gICAgICAgICAgICAgIGZpbHRlclBhcmFtczoge1xuICAgICAgICAgICAgICAgIGNvbXBhcmF0b3I6IChcbiAgICAgICAgICAgICAgICAgIGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQ6IGFueSxcbiAgICAgICAgICAgICAgICAgIGNlbGxWYWx1ZTogYW55XG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBjZWxsVmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChkYXRlQXNTdHJpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29sdW1uVHlwZSA9PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbERhdGUgPSBuZXcgRGF0ZShkYXRlQXNTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbERhdGUgPCBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNlbGxEYXRlID4gZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZmllbGQ6IHJlcy5maWVsZCxcbiAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICBzdXBwcmVzc0ZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgc3VwcHJlc3NTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXG4gICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50LFxuICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLm9uQnRuQ2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogcmVzLmxhYmVsLFxuICAgICAgICAgICAgICAgIGljb246IHJlcy5pY29uLFxuICAgICAgICAgICAgICAgIGJ1dHRvbk5hbWU6IHJlcy5idXR0b25OYW1lLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6IHJlcy50b29sdGlwLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB2YWx1ZUdldHRlcjogKHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy50b29sdGlwIHx8IHJlcy50aXRsZTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbWluV2lkdGg6IDQwLFxuICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICdhY3Rpb24tYnV0dG9uJyxcbiAgICAgICAgICAgICAgcGlubmVkOiAnbGVmdCcsXG4gICAgICAgICAgICAgIGxvY2tQaW5uZWQ6IHRydWUgICAgICAgICAgICAgXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbHVtbkRlZnM9Y29sZGVmO1xuICAgICAgICB0aGlzLmFnR3JpZC5ncmlkT3B0aW9ucz8uYXBpPy5zZXRDb2x1bW5EZWZzKGNvbGRlZik7XG4gICAgICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgfWVsc2V7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ29sRGVmIFJlYWQgRXJyb3I9PlwiLHJlc3BvbnNlLm1lc3NhZ2UpXG4gICAgfX0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnUGxlYXNlIHBhc3MgdmFsaWQgR3JpZElkIGFuZCBsb2dnZWRJbiB1c2VyIElkJyk7XG4gICAgfVxuICB9XG5cbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkgeyAgICBcbiAgICB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XG4gICAgaWYgKHRoaXMuZW5hYmxlU2VydmVyU2lkZVBhZ2luZyA9PSB0cnVlKSB7XG4gICAgICBwYXJhbXMuYXBpLnNldFNlcnZlclNpZGVEYXRhc291cmNlKFxuICAgICAgICBuZXcgT2RhdGFTZXJ2ZXJTaWRlUHJvdmlkZXIoe1xuICAgICAgICAgIGlzQ2FzZVNlbnNpdGl2ZVN0cmluZ0ZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgY2FsbEFwaTogKG9wdGlvbnMpID0+XG4gICAgICAgICAgICBmZXRjaChgJHt0aGlzLnNlcnZlckRhdGFVcmx9JHt0aGlzLnNlcnZlckRhdGFVcmwuaW5kZXhPZignPycpPj0wPyhvcHRpb25zLmluZGV4T2YoJz8nKT49MD9vcHRpb25zLnJlcGxhY2UoJz8nLCcmJyk6b3B0aW9ucyk6b3B0aW9uc31gLCB7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNldEdyaWRTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUpIHsgICAgICBcbiAgICAgIHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5hcHBseUNvbHVtblN0YXRlKHtcbiAgICAgICAgc3RhdGU6IHRoaXMuZ3JpZENvbHVtblN0YXRlLFxuICAgICAgICBhcHBseU9yZGVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmdldENvbHVtbnMoKTtcbiAgICAgIGlmIChjb2x1bW5zICYmIGNvbHVtbnMubGVuZ3RoID4gMTApIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmF1dG9TaXplQWxsQ29sdW1ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRHcmlkU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZElkICYmIHRoaXMubG9nZ2VkSW5Vc2VyKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgIC5nZXRHcmlkU3RhdGUodGhpcy5ncmlkSWQsIHRoaXMubG9nZ2VkSW5Vc2VyKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cz09MSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkQ29sdW1uU3RhdGUgPSBKU09OLnBhcnNlKHJlc3BvbnNlLm9iamVjdC5ncmlkQ29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMuc2V0R3JpZFN0YXRlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB3aGlsZSBsb2FkaW5nIGdyaWQgc3RhdGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuIFxuXG4gIG9uQnRuQ2xpY2soZTogYW55KSB7XG4gICAgdGhpcy5idG5DbGlja0hhbmRsZXIuZW1pdChlLnJvd0RhdGEpO1xuICB9XG5cbiAgb25TYXZlR3JpZENvbHVtblN0YXRlKGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgY29sdW1uU3RhdGUgPSB0aGlzLmFnR3JpZC5jb2x1bW5BcGk/LmdldENvbHVtblN0YXRlKCk7XG4gICAgbGV0IGNvbHVtbkRhdGEgPSB7XG4gICAgICBncmlkQ29uZmlnOiBKU09OLnN0cmluZ2lmeShjb2x1bW5TdGF0ZSksXG4gICAgICB1aUdyaWRJZDogdGhpcy5ncmlkSWQsXG4gICAgICB1c2VySWQ6IHRoaXMubG9nZ2VkSW5Vc2VyLFxuICAgIH07XG4gICAgaWYgKGV2ZW50LmZpbmlzaGVkID09IHRydWUgfHwgZXZlbnQudHlwZSA9PT0gJ2NvbHVtblBpbm5lZCcpIHtcbiAgICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gY29sdW1uU3RhdGU7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVDb2x1bW5Db25maWcoY29sdW1uRGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4geyAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0R3JpZFN0YXRlKCk7XG4gICAgICAgIGlmIChyZXMuc3RhdHVzPT0wKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIHNhdmluZyBjb2x1bW4gY29uZmlndXJhdGlvbjonLCByZXMubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvd0J5SWQ6IEdldFJvd0lkRnVuYyA9IChwYXJhbXM6IEdldFJvd0lkUGFyYW1zKSA9PiB7XG4gICAgdmFyIGRhdGEgPSBwYXJhbXMuZGF0YTtcbiAgICByZXR1cm4gZGF0YS5pZCA/PyAwO1xuICB9O1xuXG4gIGNvbFZhbHVlRm9ybWF0dGVyKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpIHtcbiAgICBpZiAoaXNOYU4oK3BhcmFtcy52YWx1ZSkpIHtcbiAgICAgIHZhciBkYXRlV3JhcHBlciA9IG5ldyBEYXRlKHBhcmFtcy52YWx1ZSk7XG4gICAgICBsZXQgaXNWYWxpZERhdGUgPSAhaXNOYU4oZGF0ZVdyYXBwZXIuZ2V0RGF0ZSgpKTtcbiAgICAgIGlmIChpc1ZhbGlkRGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0ocGFyYW1zLnZhbHVlLCAnTU0tZGQteXl5eScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcy52YWx1ZTtcbiAgfVxufVxuIl19
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBV2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBa0NwRixNQUFNLE9BQU8sb0JBQW9CO0lBeUIvQixZQUNVLFdBQStCLEVBQy9CLFFBQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBdkJuQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVEsVUFBVSxDQUFDO1FBRy9CLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUd4QyxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUNwQyxnQkFBZ0I7UUFDTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFpQixZQUFZLENBQUM7UUFDMUMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFXekIsa0JBQWEsR0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osZ0JBQWdCLEVBQUUsYUFBYTtTQUNo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aUhBOVFVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDJjQWdCcEIsYUFBYSxnREE5Q2Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDsyRkFHVSxvQkFBb0I7a0JBaENoQyxTQUFTOytCQUNFLDhCQUE4QixZQUM5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2dJQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFHbUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29sRGVmLFxuICBHZXRSb3dJZEZ1bmMsXG4gIEdldFJvd0lkUGFyYW1zLFxuICBHcmlkUmVhZHlFdmVudCxcbiAgUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcyxcbiAgUm93TW9kZWxUeXBlLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgR3JpZExpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLWxpYnJhcnkuc2VydmljZSc7XG5pbXBvcnQgeyBPZGF0YVNlcnZlclNpZGVQcm92aWRlciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBCdXR0b25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVG9vbHRpcCB9IGZyb20gJy4vcmVuZGVyZXIvdG9vbHRpcC1yZW5kZXJlci9jdXN0b20tdG9vbHRpcC1yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhZy1ncmlkLWFuZ3VsYXJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0Ojk4LjJ2aFwiXG4gICAgICBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXG4gICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YVwiXG4gICAgICBbcm93U2VsZWN0aW9uXT1cInJvd1NlbGVjdGlvblwiXG4gICAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXG4gICAgICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxuICAgICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cImdyaWRQYWdlU2l6ZVwiXG4gICAgICBbcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcl09XCJwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXCJcbiAgICAgIChtb2RlbFVwZGF0ZWQpPVwib25Nb2RlbFVwZGF0ZWQoKVwiXG4gICAgICBbdG9vbHRpcFNob3dEZWxheV09XCJ0b29sdGlwU2hvd0RlbGF5XCJcbiAgICAgIFt0b29sdGlwSGlkZURlbGF5XT1cInRvb2x0aXBIaWRlRGVsYXlcIlxuICAgICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxuICAgICAgW2NhY2hlQmxvY2tTaXplXT1cImNhY2hlQmxvY2tTaXplXCJcbiAgICAgIFttYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzXT1cIjFcIlxuICAgICAgW2Jsb2NrTG9hZERlYm91bmNlTWlsbGlzXT1cIjEwMFwiXG4gICAgICAoY29sdW1uVmlzaWJsZSk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoY29sdW1uUGlubmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcbiAgICAgIChjb2x1bW5Nb3ZlZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZEV2ZW50KClcIlxuICAgID5cbiAgICA8L2FnLWdyaWQtYW5ndWxhcj5cbiAgYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JpZExpYnJhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvL2lucHV0IHBhcmFtc1xuICBASW5wdXQoKSBjb2x1bW5EZWZzOiBhbnk7XG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IDIwO1xuICBASW5wdXQoKSByb3dTZWxlY3Rpb246IGFueSA9ICdtdWx0aXBsZSc7XG4gIEBJbnB1dCgpIGdyaWRJZDogYW55O1xuICBASW5wdXQoKSBsb2dnZWRJblVzZXI6IGFueTtcbiAgQElucHV0KCkgZW5hYmxlU2VydmVyU2lkZVBhZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXJ2ZXJEYXRhVXJsITogc3RyaW5nO1xuICBASW5wdXQoKSBlbnZpcm9ubWVudCE6IHN0cmluZztcbiAgQElucHV0KCkgY2FjaGVCbG9ja1NpemU6IG51bWJlciA9IDA7XG4gIC8vZXZlbnQgZW1pdHRlcnNcbiAgQE91dHB1dCgpIGJ0bkNsaWNrSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8vdmlld0NoaWxkc1xuICBAVmlld0NoaWxkKEFnR3JpZEFuZ3VsYXIpIGFnR3JpZCE6IEFnR3JpZEFuZ3VsYXI7XG5cbiAgLy9wYXJhbXRlcnNcbiAgZ3JpZENvbHVtblN0YXRlOiBhbnk7XG4gIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5ID0gMDtcbiAgcHVibGljIHRvb2x0aXBIaWRlRGVsYXkgPSAyMDAwO1xuICBwdWJsaWMgcm93TW9kZWxUeXBlOiBSb3dNb2RlbFR5cGUgPSAnY2xpZW50U2lkZSc7XG4gIHB1YmxpYyBncmlkUGFnZVNpemU6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZExpYnJhcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge31cblxuICBvblNvcnRDaGFuZ2VkRXZlbnQoKSB7XG4gICAgdGhpcy5ncmlkQ29sdW1uU3RhdGUgPSB0aGlzLmFnR3JpZC5jb2x1bW5BcGkuZ2V0Q29sdW1uU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIHRvb2x0aXBDb21wb25lbnQ6IEN1c3RvbVRvb2x0aXAsXG4gIH07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncmlkUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgIHRoaXMuY2FjaGVCbG9ja1NpemUgPSB0aGlzLmNhY2hlQmxvY2tTaXplID0gMFxuICAgICAgPyB0aGlzLnBhZ2VTaXplXG4gICAgICA6IHRoaXMuY2FjaGVCbG9ja1NpemU7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zZXRCYXNlVXJsKHRoaXMuZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgdGhpcy5nZXRDb2xEZWYoKTtcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nID09IHRydWUpIHtcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ3NlcnZlclNpZGUnO1xuICAgICAgdGhpcy5yb3dEYXRhID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyOiAoXG4gICAgcGFyYW1zOiBQYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyUGFyYW1zXG4gICkgPT4gc3RyaW5nID0gKHBhcmFtczogUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcykgPT4ge1xuICAgIHJldHVybiAnWycgKyBwYXJhbXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoKSArICddJztcbiAgfTtcblxuICBvbk1vZGVsVXBkYXRlZCgpIHtcbiAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICB9XG5cbiAgZ2V0Q29sRGVmKCkge1xuICAgIGlmICh0aGlzLmdyaWRJZCAmJiB0aGlzLmxvZ2dlZEluVXNlcikge1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5nZXRDb2xEZWYodGhpcy5ncmlkSWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IDEpIHtcbiAgICAgICAgICBsZXQgY29sZGVmOiBDb2xEZWZbXSA9IHJlc3BvbnNlLmxpc3QubWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcy5pc0J1dHRvbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6IHJlcy50aXRsZSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiB0aGlzLmNvbFZhbHVlRm9ybWF0dGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgZmlsdGVyYWJsZTogcmVzLmZpbHRlcmFibGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOlxuICAgICAgICAgICAgICAgICAgcmVzLmNvbHVtblR5cGUgPT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgPyAnYWdUZXh0Q29sdW1uRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgICA6IHJlcy5jb2x1bW5UeXBlID09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgID8gJ2FnTnVtYmVyQ29sdW1uRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgICA6ICdhZ0RhdGVDb2x1bW5GaWx0ZXInLFxuICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgY29tcGFyYXRvcjogKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0OiBhbnksXG4gICAgICAgICAgICAgICAgICAgIGNlbGxWYWx1ZTogYW55XG4gICAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZUFzU3RyaW5nID0gY2VsbFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRlQXNTdHJpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29sdW1uVHlwZSA9PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsRGF0ZSA9IG5ldyBEYXRlKGRhdGVBc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxEYXRlIDwgZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2VsbERhdGUgPiBmaWx0ZXJMb2NhbERhdGVBdE1pZG5pZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxuICAgICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN1cHByZXNzU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBCdXR0b25SZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25CdG5DbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIGljb246IHJlcy5pY29uLFxuICAgICAgICAgICAgICAgICAgYnV0dG9uTmFtZTogcmVzLmJ1dHRvbk5hbWUsXG4gICAgICAgICAgICAgICAgICB0b29sdGlwOiByZXMudG9vbHRpcCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiAocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXMudG9vbHRpcCB8fCByZXMudGl0bGU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogNDAsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnYWN0aW9uLWJ1dHRvbicsXG4gICAgICAgICAgICAgICAgcGlubmVkOiAnbGVmdCcsXG4gICAgICAgICAgICAgICAgbG9ja1Bpbm5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNvbHVtbkRlZnMgPSBjb2xkZWY7XG4gICAgICAgICAgdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmFwaT8uc2V0Q29sdW1uRGVmcyhjb2xkZWYpO1xuICAgICAgICAgIHRoaXMuZ2V0R3JpZFN0YXRlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0NvbERlZiBSZWFkIEVycm9yPT4nLCByZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdQbGVhc2UgcGFzcyB2YWxpZCBHcmlkSWQgYW5kIGxvZ2dlZEluIHVzZXIgSWQnKTtcbiAgICB9XG4gIH1cblxuICBzZXRFeHRlcm5hbEZpbHRlcnMob3B0aW9uczogYW55KSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZXJ2ZXJEYXRhVXJsLmluZGV4T2YoJ2ZpbHRlcicpID49IDAgJiZcbiAgICAgIG9wdGlvbnMuaW5kZXhPZignZmlsdGVyJykgPj0gMFxuICAgICkge1xuICAgICAgY29uc3Qgc2x1ZyA9IHRoaXMuc2VydmVyRGF0YVVybC5zcGxpdCgnPyRmaWx0ZXI9Jyk7XG4gICAgICBpZiAoc2x1ZyAmJiBzbHVnLmxlbmd0aD4wKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9ucyArICcgJiAnICsgc2x1Z1sxXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBzZXREYXRhVXJsKG9wdGlvbnM6YW55KXtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlcnZlckRhdGFVcmwuaW5kZXhPZignZmlsdGVyJykgPj0gMCAmJlxuICAgICAgb3B0aW9ucy5pbmRleE9mKCdmaWx0ZXInKSA+PSAwXG4gICAgKSB7XG4gICAgICBjb25zdCBzbHVnID0gdGhpcy5zZXJ2ZXJEYXRhVXJsLnNwbGl0KCc/JGZpbHRlcj0nKTtcbiAgICAgIGlmIChzbHVnICYmIHNsdWcubGVuZ3RoPjApIHtcbiAgICAgICAgdGhpcy5zZXJ2ZXJEYXRhVXJsPXNsdWdbMF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcnZlckRhdGFVcmw7XG4gIH1cblxuICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50KSB7XG4gICAgdGhpcy5ncmlkUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcgPT0gdHJ1ZSkge1xuICAgICAgcGFyYW1zLmFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZShcbiAgICAgICAgbmV3IE9kYXRhU2VydmVyU2lkZVByb3ZpZGVyKHtcbiAgICAgICAgICBpc0Nhc2VTZW5zaXRpdmVTdHJpbmdGaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgIGNhbGxBcGk6IChvcHRpb25zKSA9PlxuICAgICAgICAgICAgZmV0Y2goXG4gICAgICAgICAgICAgIGAke3RoaXMuc2V0RGF0YVVybChvcHRpb25zKX0ke3RoaXMuc2V0RXh0ZXJuYWxGaWx0ZXJzKG9wdGlvbnMpIH1gLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHNldEdyaWRTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUpIHtcbiAgICAgIHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5hcHBseUNvbHVtblN0YXRlKHtcbiAgICAgICAgc3RhdGU6IHRoaXMuZ3JpZENvbHVtblN0YXRlLFxuICAgICAgICBhcHBseU9yZGVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmdldENvbHVtbnMoKTtcbiAgICAgIGlmIChjb2x1bW5zICYmIGNvbHVtbnMubGVuZ3RoID4gMTApIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQuY29sdW1uQXBpLmF1dG9TaXplQWxsQ29sdW1ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRHcmlkU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZElkICYmIHRoaXMubG9nZ2VkSW5Vc2VyKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlXG4gICAgICAgIC5nZXRHcmlkU3RhdGUodGhpcy5ncmlkSWQsIHRoaXMubG9nZ2VkSW5Vc2VyKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID09IDEgJiZcbiAgICAgICAgICAgIHJlc3BvbnNlLm9iamVjdCAmJlxuICAgICAgICAgICAgcmVzcG9uc2Uub2JqZWN0LmdyaWRDb25maWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gSlNPTi5wYXJzZShyZXNwb25zZS5vYmplY3QuZ3JpZENvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igd2hpbGUgbG9hZGluZyBncmlkIHN0YXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkJ0bkNsaWNrKGU6IGFueSkge1xuICAgIHRoaXMuYnRuQ2xpY2tIYW5kbGVyLmVtaXQoZS5yb3dEYXRhKTtcbiAgfVxuXG4gIG9uU2F2ZUdyaWRDb2x1bW5TdGF0ZShldmVudDogYW55KSB7XG4gICAgbGV0IGNvbHVtblN0YXRlID0gdGhpcy5hZ0dyaWQuY29sdW1uQXBpPy5nZXRDb2x1bW5TdGF0ZSgpO1xuICAgIGxldCBjb2x1bW5EYXRhID0ge1xuICAgICAgZ3JpZENvbmZpZzogSlNPTi5zdHJpbmdpZnkoY29sdW1uU3RhdGUpLFxuICAgICAgdWlHcmlkSWQ6IHRoaXMuZ3JpZElkLFxuICAgICAgdXNlcklkOiB0aGlzLmxvZ2dlZEluVXNlcixcbiAgICB9O1xuICAgIGlmIChldmVudC5maW5pc2hlZCA9PSB0cnVlIHx8IGV2ZW50LnR5cGUgPT09ICdjb2x1bW5QaW5uZWQnKSB7XG4gICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IGNvbHVtblN0YXRlO1xuICAgICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQ29sdW1uQ29uZmlnKGNvbHVtbkRhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB3aGlsZSBzYXZpbmcgY29sdW1uIGNvbmZpZ3VyYXRpb246JywgcmVzLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRSb3dCeUlkOiBHZXRSb3dJZEZ1bmMgPSAocGFyYW1zOiBHZXRSb3dJZFBhcmFtcykgPT4ge1xuICAgIHZhciBkYXRhID0gcGFyYW1zLmRhdGE7XG4gICAgcmV0dXJuIGRhdGEuaWQgPz8gMDtcbiAgfTtcblxuICBjb2xWYWx1ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSB7XG4gICAgaWYgKGlzTmFOKCtwYXJhbXMudmFsdWUpKSB7XG4gICAgICB2YXIgZGF0ZVdyYXBwZXIgPSBuZXcgRGF0ZShwYXJhbXMudmFsdWUpO1xuICAgICAgbGV0IGlzVmFsaWREYXRlID0gIWlzTmFOKGRhdGVXcmFwcGVyLmdldERhdGUoKSk7XG4gICAgICBpZiAoaXNWYWxpZERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHBhcmFtcy52YWx1ZSwgJ01NLWRkLXl5eXknKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXJhbXMudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXMudmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -913,12 +913,12 @@ class GridLibraryComponent {
|
|
|
913
913
|
this.pageSize = 20;
|
|
914
914
|
this.rowSelection = 'multiple';
|
|
915
915
|
this.enableServerSidePaging = false;
|
|
916
|
+
this.cacheBlockSize = 0;
|
|
916
917
|
//event emitters
|
|
917
918
|
this.btnClickHandler = new EventEmitter();
|
|
918
919
|
this.tooltipShowDelay = 0;
|
|
919
920
|
this.tooltipHideDelay = 2000;
|
|
920
921
|
this.rowModelType = 'clientSide';
|
|
921
|
-
this.cacheBlockSize = 0;
|
|
922
922
|
this.gridPageSize = 0;
|
|
923
923
|
this.defaultColDef = {
|
|
924
924
|
sortable: true,
|
|
@@ -939,7 +939,9 @@ class GridLibraryComponent {
|
|
|
939
939
|
}
|
|
940
940
|
ngOnInit() {
|
|
941
941
|
this.gridPageSize = this.pageSize;
|
|
942
|
-
this.cacheBlockSize = this.
|
|
942
|
+
this.cacheBlockSize = this.cacheBlockSize = 0
|
|
943
|
+
? this.pageSize
|
|
944
|
+
: this.cacheBlockSize;
|
|
943
945
|
this.gridService.setBaseUrl(this.environment);
|
|
944
946
|
this.getGridState();
|
|
945
947
|
this.getColDef();
|
|
@@ -1020,7 +1022,7 @@ class GridLibraryComponent {
|
|
|
1020
1022
|
minWidth: 40,
|
|
1021
1023
|
cellClass: 'action-button',
|
|
1022
1024
|
pinned: 'left',
|
|
1023
|
-
lockPinned: true
|
|
1025
|
+
lockPinned: true,
|
|
1024
1026
|
};
|
|
1025
1027
|
}
|
|
1026
1028
|
});
|
|
@@ -1029,7 +1031,7 @@ class GridLibraryComponent {
|
|
|
1029
1031
|
this.getGridState();
|
|
1030
1032
|
}
|
|
1031
1033
|
else {
|
|
1032
|
-
console.log(
|
|
1034
|
+
console.log('ColDef Read Error=>', response.message);
|
|
1033
1035
|
}
|
|
1034
1036
|
});
|
|
1035
1037
|
}
|
|
@@ -1037,12 +1039,32 @@ class GridLibraryComponent {
|
|
|
1037
1039
|
console.log('Please pass valid GridId and loggedIn user Id');
|
|
1038
1040
|
}
|
|
1039
1041
|
}
|
|
1042
|
+
setExternalFilters(options) {
|
|
1043
|
+
if (this.serverDataUrl.indexOf('filter') >= 0 &&
|
|
1044
|
+
options.indexOf('filter') >= 0) {
|
|
1045
|
+
const slug = this.serverDataUrl.split('?$filter=');
|
|
1046
|
+
if (slug && slug.length > 0) {
|
|
1047
|
+
options += options + ' & ' + slug[1];
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
return options;
|
|
1051
|
+
}
|
|
1052
|
+
setDataUrl(options) {
|
|
1053
|
+
if (this.serverDataUrl.indexOf('filter') >= 0 &&
|
|
1054
|
+
options.indexOf('filter') >= 0) {
|
|
1055
|
+
const slug = this.serverDataUrl.split('?$filter=');
|
|
1056
|
+
if (slug && slug.length > 0) {
|
|
1057
|
+
this.serverDataUrl = slug[0];
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
return this.serverDataUrl;
|
|
1061
|
+
}
|
|
1040
1062
|
onGridReady(params) {
|
|
1041
1063
|
this.gridPageSize = this.pageSize;
|
|
1042
1064
|
if (this.enableServerSidePaging == true) {
|
|
1043
1065
|
params.api.setServerSideDatasource(new OdataServerSideProvider({
|
|
1044
1066
|
isCaseSensitiveStringFilter: false,
|
|
1045
|
-
callApi: (options) => fetch(`${this.
|
|
1067
|
+
callApi: (options) => fetch(`${this.setDataUrl(options)}${this.setExternalFilters(options)}`, {
|
|
1046
1068
|
headers: {
|
|
1047
1069
|
'Content-type': 'application/json',
|
|
1048
1070
|
Accept: 'application/json',
|
|
@@ -1073,7 +1095,9 @@ class GridLibraryComponent {
|
|
|
1073
1095
|
this.gridService
|
|
1074
1096
|
.getGridState(this.gridId, this.loggedInUser)
|
|
1075
1097
|
.subscribe((response) => {
|
|
1076
|
-
if (response.status == 1
|
|
1098
|
+
if (response.status == 1 &&
|
|
1099
|
+
response.object &&
|
|
1100
|
+
response.object.gridConfig) {
|
|
1077
1101
|
this.gridColumnState = JSON.parse(response.object.gridConfig);
|
|
1078
1102
|
this.setGridState();
|
|
1079
1103
|
}
|
|
@@ -1119,7 +1143,7 @@ class GridLibraryComponent {
|
|
|
1119
1143
|
}
|
|
1120
1144
|
}
|
|
1121
1145
|
GridLibraryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: GridLibraryComponent, deps: [{ token: GridLibraryService }, { token: i1$1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
1122
|
-
GridLibraryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: GridLibraryComponent, selector: "lib-basesite-shared-grid-lib", inputs: { columnDefs: "columnDefs", rowData: "rowData", pageSize: "pageSize", rowSelection: "rowSelection", gridId: "gridId", loggedInUser: "loggedInUser", enableServerSidePaging: "enableServerSidePaging", serverDataUrl: "serverDataUrl", environment: "environment" }, outputs: { btnClickHandler: "btnClickHandler" }, viewQueries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0, template: `
|
|
1146
|
+
GridLibraryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: GridLibraryComponent, selector: "lib-basesite-shared-grid-lib", inputs: { columnDefs: "columnDefs", rowData: "rowData", pageSize: "pageSize", rowSelection: "rowSelection", gridId: "gridId", loggedInUser: "loggedInUser", enableServerSidePaging: "enableServerSidePaging", serverDataUrl: "serverDataUrl", environment: "environment", cacheBlockSize: "cacheBlockSize" }, outputs: { btnClickHandler: "btnClickHandler" }, viewQueries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0, template: `
|
|
1123
1147
|
<ag-grid-angular
|
|
1124
1148
|
style="width: 100%;height:98.2vh"
|
|
1125
1149
|
class="ag-theme-balham"
|
|
@@ -1195,6 +1219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1195
1219
|
type: Input
|
|
1196
1220
|
}], environment: [{
|
|
1197
1221
|
type: Input
|
|
1222
|
+
}], cacheBlockSize: [{
|
|
1223
|
+
type: Input
|
|
1198
1224
|
}], btnClickHandler: [{
|
|
1199
1225
|
type: Output
|
|
1200
1226
|
}], agGrid: [{
|