@universis/ngx-tables 6.1.3 → 6.1.4
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/bundles/universis-ngx-tables.umd.js +15 -6
- package/bundles/universis-ngx-tables.umd.js.map +1 -1
- package/bundles/universis-ngx-tables.umd.min.js +1 -1
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
- package/esm2015/lib/components/advanced-list/advanced-list.component.js +17 -5
- package/esm5/lib/components/advanced-list/advanced-list.component.js +17 -6
- package/fesm2015/universis-ngx-tables.js +15 -5
- package/fesm2015/universis-ngx-tables.js.map +1 -1
- package/fesm5/universis-ngx-tables.js +15 -6
- package/fesm5/universis-ngx-tables.js.map +1 -1
- package/lib/components/advanced-list/advanced-list.component.d.ts +2 -1
- package/package.json +1 -1
- package/universis-ngx-tables.metadata.json +1 -1
|
@@ -29,7 +29,9 @@ export class AdvancedListComponent {
|
|
|
29
29
|
this._toastService = _toastService;
|
|
30
30
|
this._modalService = _modalService;
|
|
31
31
|
this._userActivityService = _userActivityService;
|
|
32
|
+
this.recordsTotal = NaN;
|
|
32
33
|
this.allowSaveOption = true;
|
|
34
|
+
this.readonly = false;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* @return {?}
|
|
@@ -96,6 +98,9 @@ export class AdvancedListComponent {
|
|
|
96
98
|
if (routeData["category"]) {
|
|
97
99
|
this.category = this._translateService.instant(routeData["category"]);
|
|
98
100
|
}
|
|
101
|
+
if (Object.prototype.hasOwnProperty.call(routeData, 'readonly')) {
|
|
102
|
+
this.readonly = routeData["readonly"];
|
|
103
|
+
}
|
|
99
104
|
/** @type {?} */
|
|
100
105
|
const defaultConfiguration = AdvancedTableConfiguration.cast(this.tableConfiguration, true);
|
|
101
106
|
/** @type {?} */
|
|
@@ -110,10 +115,14 @@ export class AdvancedListComponent {
|
|
|
110
115
|
});
|
|
111
116
|
column.formatString = `#/${url.join('/')}/(modal:\$\{id\}/edit)`;
|
|
112
117
|
}
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
/** @type {?} */
|
|
119
|
+
const setConfig = Object.assign({
|
|
115
120
|
model: entitySet.Name
|
|
116
121
|
}, defaultConfiguration);
|
|
122
|
+
if (Object.prototype.hasOwnProperty.call(setConfig, 'selectable')) {
|
|
123
|
+
setConfig.selectable = !this.readonly;
|
|
124
|
+
}
|
|
125
|
+
table.config = setConfig;
|
|
117
126
|
// fetch data
|
|
118
127
|
table.fetch(true);
|
|
119
128
|
// do reload by using hidden fragment e.g. /classes#reload
|
|
@@ -176,7 +185,7 @@ AdvancedListComponent.decorators = [
|
|
|
176
185
|
{ type: Component, args: [{
|
|
177
186
|
// tslint:disable-next-line:component-selector
|
|
178
187
|
selector: 'app-advanced-list',
|
|
179
|
-
template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <ng-container *ngIf=\"longDescription\">\n <p [innerHTML]=\"longDescription\"></p>\n </ng-container>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"searchConfiguration\">\n <div class=\"col-12\" [ngVar]=\"{}\" #filter=\"ngVar\">\n <app-advanced-table-search #advancedSearch [(filter)]=\"filter.value\" [collapsed]=\"true\" [table]=\"table\" [allowSave]=\"allowSaveOption\">\n <advanced-search>\n <app-advanced-search-form [form]=\"searchConfiguration\" (filterChange)=\"advancedSearch.asyncAdvancedSearch()\" #search [(filter)]=\"filter.value\"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-auto mt-4\">\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal
|
|
188
|
+
template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <ng-container *ngIf=\"longDescription\">\n <p [innerHTML]=\"longDescription\"></p>\n </ng-container>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"searchConfiguration\">\n <div class=\"col-12\" [ngVar]=\"{}\" #filter=\"ngVar\">\n <app-advanced-table-search #advancedSearch [(filter)]=\"filter.value\" [collapsed]=\"true\" [table]=\"table\" [allowSave]=\"allowSaveOption\">\n <advanced-search>\n <app-advanced-search-form [form]=\"searchConfiguration\" (filterChange)=\"advancedSearch.asyncAdvancedSearch()\" #search [(filter)]=\"filter.value\"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-auto mt-4\">\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal > 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Items'\"></span>\n </div>\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal === 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Item'\"></span>\n </div>\n </div>\n <div class=\"pull-right ml-auto mr-3 mt-3\">\n <div class=\"font-lg btn-toolbar mt-3\">\n <a *ngIf=\"readonly === false && table.selected && table.selected.length\"\n class=\"text-danger text-decoration-none mr-2\" href=\"javascript:void(0)\" (click)=\"remove()\">\n <span>-</span><span> </span><span [translate]=\"'Tables.RemoveItem'\"></span>\n </a>\n <a *ngIf=\"readonly === false\" class=\"text-indigo text-decoration-none\" [routerLink]=\"['.', { outlets:{ modal:'add'} }]\">\n <span>+</span><span> </span><span [translate]=\"'Tables.AddItem'\"></span>\n </a>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mb-4\">\n <app-advanced-table [selectable]=\"true\" #table\n [showFooter]=\"false\"\n (load)=\"onDataLoad($event)\" [height]=\"600\"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n"
|
|
180
189
|
}] }
|
|
181
190
|
];
|
|
182
191
|
/** @nocollapse */
|
|
@@ -197,7 +206,8 @@ AdvancedListComponent.propDecorators = {
|
|
|
197
206
|
tableConfiguration: [{ type: Input, args: ['tableConfiguration',] }],
|
|
198
207
|
searchConfiguration: [{ type: Input, args: ['searchConfiguration',] }],
|
|
199
208
|
table: [{ type: ViewChild, args: ['table',] }],
|
|
200
|
-
allowSaveOption: [{ type: Input, args: ['allowSaveOption',] }]
|
|
209
|
+
allowSaveOption: [{ type: Input, args: ['allowSaveOption',] }],
|
|
210
|
+
readonly: [{ type: Input, args: ['readonly',] }]
|
|
201
211
|
};
|
|
202
212
|
if (false) {
|
|
203
213
|
/** @type {?} */
|
|
@@ -227,6 +237,8 @@ if (false) {
|
|
|
227
237
|
/** @type {?} */
|
|
228
238
|
AdvancedListComponent.prototype.allowSaveOption;
|
|
229
239
|
/** @type {?} */
|
|
240
|
+
AdvancedListComponent.prototype.readonly;
|
|
241
|
+
/** @type {?} */
|
|
230
242
|
AdvancedListComponent.prototype._context;
|
|
231
243
|
/** @type {?} */
|
|
232
244
|
AdvancedListComponent.prototype._translateService;
|
|
@@ -242,4 +254,4 @@ if (false) {
|
|
|
242
254
|
AdvancedListComponent.prototype._userActivityService;
|
|
243
255
|
}
|
|
244
256
|
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU9qRCxNQUFNOzs7Ozs7Ozs7O0lBZ0JKLFlBQW9CLFFBQTRCLEVBQ3RDLG1CQUNBLGlCQUNBLGVBQ0EsZUFDQSxlQUNBO1FBTlUsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQjtRQUNqQixvQkFBZSxHQUFmLGVBQWU7UUFDZixrQkFBYSxHQUFiLGFBQWE7UUFDYixrQkFBYSxHQUFiLGFBQWE7UUFDYixrQkFBYSxHQUFiLGFBQWE7UUFDYix5QkFBb0IsR0FBcEIsb0JBQW9COytCQVJjLElBQUk7S0FTekM7Ozs7SUFDUCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFD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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJEYXRhQ29udGV4dCB9IGZyb20gJ0B0aGVtb3N0L2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHsgQWR2YW5jZWRUYWJsZUNvbXBvbmVudCwgQWR2YW5jZWRUYWJsZURhdGFSZXN1bHQsIEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yU2VydmljZSwgRElBTE9HX0JVVFRPTlMsIE1vZGFsU2VydmljZSwgVXNlckFjdGl2aXR5U2VydmljZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7IFJlc3BvbnNlRXJyb3IgfSBmcm9tICdAdGhlbW9zdC9jbGllbnQnO1xuaW1wb3J0IHsgVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyByZWNvcmRzVG90YWw/OiBudW1iZXI7XG4gIHB1YmxpYyBjb25maWc/OiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVsb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2VudGl0eVNldCcpIGVudGl0eVNldD86IHN0cmluZztcbiAgQElucHV0KCdjYXRlZ29yeScpIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgnbG9uZ0Rlc2NyaXB0aW9uJykgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ3RhYmxlQ29uZmlndXJhdGlvbicpIHRhYmxlQ29uZmlndXJhdGlvbjogYW55O1xuICBASW5wdXQoJ3NlYXJjaENvbmZpZ3VyYXRpb24nKSBzZWFyY2hDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU/OiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBASW5wdXQoJ2FsbG93U2F2ZU9wdGlvbicpIGFsbG93U2F2ZU9wdGlvbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3VzZXJBY3Rpdml0eVNlcnZpY2U6IFVzZXJBY3Rpdml0eVNlcnZpY2VcbiAgICApIHsgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnRhYmxlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlO1xuICAgICAgLy8gZ2V0IG1ldGFkYXRhXG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHRoaXMuX2NvbnRleHQuZ2V0TWV0YWRhdGEoKTtcbiAgICAgIC8vIGdldCByb3V0ZSBkYXRhXG4gICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZSggcm91dGVEYXRhID0+IHtcbiAgICAgICAgLy8gZ2V0IGVudGl0eVR5cGVcbiAgICAgICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKGBeJHtyb3V0ZURhdGEubW9kZWx9JGAsICdpZycpO1xuICAgICAgICBjb25zdCBlbnRpdHlTZXQgPSBtZXRhZGF0YS5FbnRpdHlDb250YWluZXIuRW50aXR5U2V0LmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiByZS50ZXN0KHguTmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBpZiBlbnRpdHkgdHlwZSBpcyBudWxsXG4gICAgICAgIGlmIChlbnRpdHlTZXQgPT0gbnVsbCkge1xuICAgICAgICAgIC8vIG5hdmlnYXRlIHRvIGVycm9yXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yU2VydmljZS5uYXZpZ2F0ZVRvRXJyb3IobmV3IFJlc3BvbnNlRXJyb3IoJ0VudGl0eVNldCBOb3QgRm91bmQnLCA0MDQpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBnZXQgZW50aXR5IHR5cGVcbiAgICAgICAgY29uc3QgZW50aXR5VHlwZSA9IG1ldGFkYXRhLkVudGl0eVR5cGUuZmluZCggeCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHguTmFtZSA9PT0gZW50aXR5U2V0LkVudGl0eVR5cGU7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yU2VydmljZS5uYXZpZ2F0ZVRvRXJyb3IobmV3IFJlc3BvbnNlRXJyb3IoJ0VudGl0eVR5cGUgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbiwgJ2FsbG93U2F2ZScpKSB7XG4gICAgICAgICAgICB0aGlzLmFsbG93U2F2ZU9wdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uLmFsbG93U2F2ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWFyY2hDb25maWd1cmF0aW9uID0gcm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS50YWJsZUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICB0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS50YWJsZUNvbmZpZ3VyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocm91dGVEYXRhLmRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmxvbmdEZXNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMubG9uZ0Rlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuY2F0ZWdvcnkpIHtcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5jYXRlZ29yeSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xvbmUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uID0gQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24uY2FzdCh0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiwgdHJ1ZSk7XG4gICAgICAgIC8vIGNvcnJlY3QgZWRpdCBidXR0b24gbGlua1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBkZWZhdWx0Q29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoIGNvbCA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbC5mb3JtYXR0ZXIgPT09ICdCdXR0b25Gb3JtYXR0ZXInICYmIGNvbC5mb3JtYXRTdHJpbmcgPT09ICcobW9kYWw6ZWRpdCknO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgIGNvbnN0IHVybDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhdGhGcm9tUm9vdC5mb3JFYWNoKCByb3V0ZSA9PiB7XG4gICAgICAgICAgICB1cmwucHVzaC5hcHBseSh1cmwsIHJvdXRlLnVybCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29sdW1uLmZvcm1hdFN0cmluZyA9IGAjLyR7dXJsLmpvaW4oJy8nKX0vKG1vZGFsOlxcJFxce2lkXFx9L2VkaXQpYDtcbiAgICAgICAgfVxuICAgICAgICAvLyBjcmVhdGUgbGlzdCBjb25maWd1cmF0aW9uIGJ5IGFzc2lnbmluZyBsaXN0IGVudGl0eSBzZXRcbiAgICAgICAgdGFibGUuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgbW9kZWw6IGVudGl0eVNldC5OYW1lXG4gICAgICAgIH0sIGRlZmF1bHRDb25maWd1cmF0aW9uKTtcbiAgICAgICAgLy8gZmV0Y2ggZGF0YVxuICAgICAgICB0YWJsZS5mZXRjaCh0cnVlKTtcbiAgICAgICAgLy8gZG8gcmVsb2FkIGJ5IHVzaW5nIGhpZGRlbiBmcmFnbWVudCBlLmcuIC9jbGFzc2VzI3JlbG9hZFxuICAgICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLmZyYWdtZW50LnN1YnNjcmliZShmcmFnbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGZyYWdtZW50ICYmIGZyYWdtZW50ID09PSAncmVsb2FkJykge1xuICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1NldHRpbmdzLk9wZXJhdGlvbkNvbXBsZXRlZCcpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gZmluYWxseSBhZGQgdXNlciBhY3Rpdml0eVxuICAgICAgICB0aGlzLl91c2VyQWN0aXZpdHlTZXJ2aWNlLnNldEl0ZW0oe1xuICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3J5IGFzIHN0cmluZyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksXG4gICAgICAgICAgZGF0ZUNyZWF0ZWQ6IG5ldyBEYXRlXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIERhdGEgbG9hZCBldmVudCBoYW5kbGVyIG9mIGFkdmFuY2VkIHRhYmxlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgb25EYXRhTG9hZChkYXRhOiBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCkge1xuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHNlbGVjdGVkIGl0ZW1zXG4gICAqL1xuICByZW1vdmUoKSB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlO1xuICAgIGlmICh0YWJsZSAmJiB0YWJsZS5zZWxlY3RlZCAmJiB0YWJsZS5zZWxlY3RlZC5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBpdGVtcyB0byByZW1vdmVcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGFibGUuc2VsZWN0ZWQ7XG4gICAgICByZXR1cm4gdGhpcy5fbW9kYWxTZXJ2aWNlLnNob3dXYXJuaW5nRGlhbG9nKFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc1RpdGxlJyksXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1zTWVzc2FnZScpLFxuICAgICAgICBESUFMT0dfQlVUVE9OUy5Pa0NhbmNlbCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09ICdvaycpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQubW9kZWwodGFibGUuY29uZmlnLm1vZGVsKS5yZW1vdmUoaXRlbXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdyhcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uICsgJzonICsgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbU1lc3NhZ2UudGl0bGUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoKGl0ZW1zLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgICAgICAgICAgICAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm9uZScgOiAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm1hbnknKVxuICAgICAgICAgICAgICAgICAgLCB7IHZhbHVlOiBpdGVtcy5sZW5ndGggfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9lcnJvclNlcnZpY2Uuc2hvd0Vycm9yKGVyciwge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlTGluazogJy4nXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU9qRCxNQUFNOzs7Ozs7Ozs7O0lBaUJKLFlBQW9CLFFBQTRCLEVBQ3RDLG1CQUNBLGlCQUNBLGVBQ0EsZUFDQSxlQUNBO1FBTlUsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQjtRQUNqQixvQkFBZSxHQUFmLGVBQWU7UUFDZixrQkFBYSxHQUFiLGFBQWE7UUFDYixrQkFBYSxHQUFiLGFBQWE7UUFDYixrQkFBYSxHQUFiLGFBQWE7UUFDYix5QkFBb0IsR0FBcEIsb0JBQW9COzRCQXJCQSxHQUFHOytCQVlXLElBQUk7d0JBQ1QsS0FBSztLQVNyQzs7OztJQUNQLFdBQVc7UUFDVCxJQUFJLElB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QUM7O2dCQUVULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLCtyRUFBNkM7YUFDOUM7Ozs7WUFmUSxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBRWhCLGNBQWM7WUFHZCxZQUFZO1lBR1osWUFBWTtZQUhrQixZQUFZO1lBQUUsbUJBQW1COzs7d0JBaUJyRSxLQUFLLFNBQUMsV0FBVzt1QkFDakIsS0FBSyxTQUFDLFVBQVU7MEJBQ2hCLEtBQUssU0FBQyxhQUFhOzhCQUNuQixLQUFLLFNBQUMsaUJBQWlCO2lDQUN2QixLQUFLLFNBQUMsb0JBQW9CO2tDQUMxQixLQUFLLFNBQUMscUJBQXFCO29CQUMzQixTQUFTLFNBQUMsT0FBTzs4QkFDakIsS0FBSyxTQUFDLGlCQUFpQjt1QkFDdkIsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRGF0YUNvbnRleHQgfSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IEFkdmFuY2VkVGFibGVDb21wb25lbnQsIEFkdmFuY2VkVGFibGVEYXRhUmVzdWx0LCBBZHZhbmNlZFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclNlcnZpY2UsIERJQUxPR19CVVRUT05TLCBNb2RhbFNlcnZpY2UsIFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNwb25zZUVycm9yIH0gZnJvbSAnQHRoZW1vc3QvY2xpZW50JztcbmltcG9ydCB7IFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgcmVjb3Jkc1RvdGFsOiBudW1iZXIgPSBOYU47XG4gIHB1YmxpYyBjb25maWc/OiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVsb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2VudGl0eVNldCcpIGVudGl0eVNldD86IHN0cmluZztcbiAgQElucHV0KCdjYXRlZ29yeScpIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgnbG9uZ0Rlc2NyaXB0aW9uJykgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ3RhYmxlQ29uZmlndXJhdGlvbicpIHRhYmxlQ29uZmlndXJhdGlvbjogYW55O1xuICBASW5wdXQoJ3NlYXJjaENvbmZpZ3VyYXRpb24nKSBzZWFyY2hDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU/OiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBASW5wdXQoJ2FsbG93U2F2ZU9wdGlvbicpIGFsbG93U2F2ZU9wdGlvbiA9IHRydWU7XG4gIEBJbnB1dCgncmVhZG9ubHknKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbnRleHQ6IEFuZ3VsYXJEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9lcnJvclNlcnZpY2U6IEVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIF91c2VyQWN0aXZpdHlTZXJ2aWNlOiBVc2VyQWN0aXZpdHlTZXJ2aWNlXG4gICAgKSB7IH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50YWJsZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICAgIC8vIGdldCBtZXRhZGF0YVxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9jb250ZXh0LmdldE1ldGFkYXRhKCk7XG4gICAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgIC8vIGdldCBlbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7cm91dGVEYXRhLm1vZGVsfSRgLCAnaWcnKTtcbiAgICAgICAgY29uc3QgZW50aXR5U2V0ID0gbWV0YWRhdGEuRW50aXR5Q29udGFpbmVyLkVudGl0eVNldC5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4gcmUudGVzdCh4Lk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaWYgZW50aXR5IHR5cGUgaXMgbnVsbFxuICAgICAgICBpZiAoZW50aXR5U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSB0byBlcnJvclxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlTZXQgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGVudGl0eSB0eXBlXG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBtZXRhZGF0YS5FbnRpdHlUeXBlLmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiB4Lk5hbWUgPT09IGVudGl0eVNldC5FbnRpdHlUeXBlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlUeXBlIE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24sICdhbGxvd1NhdmUnKSkge1xuICAgICAgICAgICAgdGhpcy5hbGxvd1NhdmVPcHRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbi5hbGxvd1NhdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VhcmNoQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmxvbmdEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmNhdGVnb3J5KSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuY2F0ZWdvcnkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLCAncmVhZG9ubHknKSkge1xuICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSByb3V0ZURhdGEucmVhZG9ubHk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xvbmUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uID0gQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24uY2FzdCh0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiwgdHJ1ZSk7XG4gICAgICAgIC8vIGNvcnJlY3QgZWRpdCBidXR0b24gbGlua1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBkZWZhdWx0Q29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoIGNvbCA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbC5mb3JtYXR0ZXIgPT09ICdCdXR0b25Gb3JtYXR0ZXInICYmIGNvbC5mb3JtYXRTdHJpbmcgPT09ICcobW9kYWw6ZWRpdCknO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgIGNvbnN0IHVybDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhdGhGcm9tUm9vdC5mb3JFYWNoKCByb3V0ZSA9PiB7XG4gICAgICAgICAgICB1cmwucHVzaC5hcHBseSh1cmwsIHJvdXRlLnVybCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29sdW1uLmZvcm1hdFN0cmluZyA9IGAjLyR7dXJsLmpvaW4oJy8nKX0vKG1vZGFsOlxcJFxce2lkXFx9L2VkaXQpYDtcbiAgICAgICAgfVxuICAgICAgICAvLyBjcmVhdGUgbGlzdCBjb25maWd1cmF0aW9uIGJ5IGFzc2lnbmluZyBsaXN0IGVudGl0eSBzZXRcbiAgICAgICAgY29uc3Qgc2V0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgbW9kZWw6IGVudGl0eVNldC5OYW1lXG4gICAgICAgIH0sIGRlZmF1bHRDb25maWd1cmF0aW9uKTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzZXRDb25maWcsICdzZWxlY3RhYmxlJykpIHtcbiAgICAgICAgICBzZXRDb25maWcuc2VsZWN0YWJsZSA9ICF0aGlzLnJlYWRvbmx5O1xuICAgICAgICB9XG4gICAgICAgIHRhYmxlLmNvbmZpZyA9IHNldENvbmZpZztcbiAgICAgICAgLy8gZmV0Y2ggZGF0YVxuICAgICAgICB0YWJsZS5mZXRjaCh0cnVlKTtcbiAgICAgICAgLy8gZG8gcmVsb2FkIGJ5IHVzaW5nIGhpZGRlbiBmcmFnbWVudCBlLmcuIC9jbGFzc2VzI3JlbG9hZFxuICAgICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLmZyYWdtZW50LnN1YnNjcmliZShmcmFnbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGZyYWdtZW50ICYmIGZyYWdtZW50ID09PSAncmVsb2FkJykge1xuICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1NldHRpbmdzLk9wZXJhdGlvbkNvbXBsZXRlZCcpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gZmluYWxseSBhZGQgdXNlciBhY3Rpdml0eVxuICAgICAgICB0aGlzLl91c2VyQWN0aXZpdHlTZXJ2aWNlLnNldEl0ZW0oe1xuICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3J5IGFzIHN0cmluZyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksXG4gICAgICAgICAgZGF0ZUNyZWF0ZWQ6IG5ldyBEYXRlXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIERhdGEgbG9hZCBldmVudCBoYW5kbGVyIG9mIGFkdmFuY2VkIHRhYmxlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgb25EYXRhTG9hZChkYXRhOiBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCkge1xuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHNlbGVjdGVkIGl0ZW1zXG4gICAqL1xuICByZW1vdmUoKSB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlO1xuICAgIGlmICh0YWJsZSAmJiB0YWJsZS5zZWxlY3RlZCAmJiB0YWJsZS5zZWxlY3RlZC5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBpdGVtcyB0byByZW1vdmVcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGFibGUuc2VsZWN0ZWQ7XG4gICAgICByZXR1cm4gdGhpcy5fbW9kYWxTZXJ2aWNlLnNob3dXYXJuaW5nRGlhbG9nKFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc1RpdGxlJyksXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1zTWVzc2FnZScpLFxuICAgICAgICBESUFMT0dfQlVUVE9OUy5Pa0NhbmNlbCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09ICdvaycpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQubW9kZWwodGFibGUuY29uZmlnLm1vZGVsKS5yZW1vdmUoaXRlbXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdyhcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uICsgJzonICsgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbU1lc3NhZ2UudGl0bGUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoKGl0ZW1zLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgICAgICAgICAgICAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm9uZScgOiAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm1hbnknKVxuICAgICAgICAgICAgICAgICAgLCB7IHZhbHVlOiBpdGVtcy5sZW5ndGggfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9lcnJvclNlcnZpY2Uuc2hvd0Vycm9yKGVyciwge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlTGluazogJy4nXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -20,7 +20,9 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
20
20
|
this._toastService = _toastService;
|
|
21
21
|
this._modalService = _modalService;
|
|
22
22
|
this._userActivityService = _userActivityService;
|
|
23
|
+
this.recordsTotal = NaN;
|
|
23
24
|
this.allowSaveOption = true;
|
|
25
|
+
this.readonly = false;
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* @return {?}
|
|
@@ -98,6 +100,9 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
98
100
|
if (routeData["category"]) {
|
|
99
101
|
_this.category = _this._translateService.instant(routeData["category"]);
|
|
100
102
|
}
|
|
103
|
+
if (Object.prototype.hasOwnProperty.call(routeData, 'readonly')) {
|
|
104
|
+
_this.readonly = routeData["readonly"];
|
|
105
|
+
}
|
|
101
106
|
/** @type {?} */
|
|
102
107
|
var defaultConfiguration = AdvancedTableConfiguration.cast(_this.tableConfiguration, true);
|
|
103
108
|
/** @type {?} */
|
|
@@ -112,11 +117,14 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
112
117
|
});
|
|
113
118
|
column.formatString = "#/" + url_1.join('/') + "/(modal:${id}/edit)";
|
|
114
119
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
table_1.config = Object.assign({
|
|
120
|
+
/** @type {?} */
|
|
121
|
+
var setConfig = Object.assign({
|
|
118
122
|
model: entitySet.Name
|
|
119
123
|
}, defaultConfiguration);
|
|
124
|
+
if (Object.prototype.hasOwnProperty.call(setConfig, 'selectable')) {
|
|
125
|
+
setConfig.selectable = !_this.readonly;
|
|
126
|
+
}
|
|
127
|
+
table_1.config = setConfig;
|
|
120
128
|
// fetch data
|
|
121
129
|
// fetch data
|
|
122
130
|
table_1.fetch(true);
|
|
@@ -201,7 +209,7 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
201
209
|
{ type: Component, args: [{
|
|
202
210
|
// tslint:disable-next-line:component-selector
|
|
203
211
|
selector: 'app-advanced-list',
|
|
204
|
-
template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <ng-container *ngIf=\"longDescription\">\n <p [innerHTML]=\"longDescription\"></p>\n </ng-container>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"searchConfiguration\">\n <div class=\"col-12\" [ngVar]=\"{}\" #filter=\"ngVar\">\n <app-advanced-table-search #advancedSearch [(filter)]=\"filter.value\" [collapsed]=\"true\" [table]=\"table\" [allowSave]=\"allowSaveOption\">\n <advanced-search>\n <app-advanced-search-form [form]=\"searchConfiguration\" (filterChange)=\"advancedSearch.asyncAdvancedSearch()\" #search [(filter)]=\"filter.value\"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-auto mt-4\">\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal
|
|
212
|
+
template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <ng-container *ngIf=\"longDescription\">\n <p [innerHTML]=\"longDescription\"></p>\n </ng-container>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"searchConfiguration\">\n <div class=\"col-12\" [ngVar]=\"{}\" #filter=\"ngVar\">\n <app-advanced-table-search #advancedSearch [(filter)]=\"filter.value\" [collapsed]=\"true\" [table]=\"table\" [allowSave]=\"allowSaveOption\">\n <advanced-search>\n <app-advanced-search-form [form]=\"searchConfiguration\" (filterChange)=\"advancedSearch.asyncAdvancedSearch()\" #search [(filter)]=\"filter.value\"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-auto mt-4\">\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal > 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Items'\"></span>\n </div>\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal === 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Item'\"></span>\n </div>\n </div>\n <div class=\"pull-right ml-auto mr-3 mt-3\">\n <div class=\"font-lg btn-toolbar mt-3\">\n <a *ngIf=\"readonly === false && table.selected && table.selected.length\"\n class=\"text-danger text-decoration-none mr-2\" href=\"javascript:void(0)\" (click)=\"remove()\">\n <span>-</span><span> </span><span [translate]=\"'Tables.RemoveItem'\"></span>\n </a>\n <a *ngIf=\"readonly === false\" class=\"text-indigo text-decoration-none\" [routerLink]=\"['.', { outlets:{ modal:'add'} }]\">\n <span>+</span><span> </span><span [translate]=\"'Tables.AddItem'\"></span>\n </a>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mb-4\">\n <app-advanced-table [selectable]=\"true\" #table\n [showFooter]=\"false\"\n (load)=\"onDataLoad($event)\" [height]=\"600\"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n"
|
|
205
213
|
}] }
|
|
206
214
|
];
|
|
207
215
|
/** @nocollapse */
|
|
@@ -222,7 +230,8 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
222
230
|
tableConfiguration: [{ type: Input, args: ['tableConfiguration',] }],
|
|
223
231
|
searchConfiguration: [{ type: Input, args: ['searchConfiguration',] }],
|
|
224
232
|
table: [{ type: ViewChild, args: ['table',] }],
|
|
225
|
-
allowSaveOption: [{ type: Input, args: ['allowSaveOption',] }]
|
|
233
|
+
allowSaveOption: [{ type: Input, args: ['allowSaveOption',] }],
|
|
234
|
+
readonly: [{ type: Input, args: ['readonly',] }]
|
|
226
235
|
};
|
|
227
236
|
return AdvancedListComponent;
|
|
228
237
|
}());
|
|
@@ -255,6 +264,8 @@ if (false) {
|
|
|
255
264
|
/** @type {?} */
|
|
256
265
|
AdvancedListComponent.prototype.allowSaveOption;
|
|
257
266
|
/** @type {?} */
|
|
267
|
+
AdvancedListComponent.prototype.readonly;
|
|
268
|
+
/** @type {?} */
|
|
258
269
|
AdvancedListComponent.prototype._context;
|
|
259
270
|
/** @type {?} */
|
|
260
271
|
AdvancedListComponent.prototype._translateService;
|
|
@@ -270,4 +281,4 @@ if (false) {
|
|
|
270
281
|
AdvancedListComponent.prototype._userActivityService;
|
|
271
282
|
}
|
|
272
283
|
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7SUF1Qi9DLCtCQUFvQixRQUE0QixFQUN0QyxtQkFDQSxpQkFDQSxlQUNBLGVBQ0EsZUFDQTtRQU5VLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUI7UUFDakIsb0JBQWUsR0FBZixlQUFlO1FBQ2Ysa0JBQWEsR0FBYixhQUFhO1FBQ2Isa0JBQWEsR0FBYixhQUFhO1FBQ2Isa0JBQWEsR0FBYixhQUFhO1FBQ2IseUJBQW9CLEdBQXBCLG9CQUFvQjsrQkFSYyxJQUFJO0tBU3pDOzs7O0lBQ1AsMkNBQVc7OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxD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QzNCLFNBQVMsU0FBQyxPQUFPO2tDQUNqQixLQUFLLFNBQUMsaUJBQWlCOztnQ0EvQjFCOztTQWlCYSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRGF0YUNvbnRleHQgfSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IEFkdmFuY2VkVGFibGVDb21wb25lbnQsIEFkdmFuY2VkVGFibGVEYXRhUmVzdWx0LCBBZHZhbmNlZFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclNlcnZpY2UsIERJQUxPR19CVVRUT05TLCBNb2RhbFNlcnZpY2UsIFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNwb25zZUVycm9yIH0gZnJvbSAnQHRoZW1vc3QvY2xpZW50JztcbmltcG9ydCB7IFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgcmVjb3Jkc1RvdGFsPzogbnVtYmVyO1xuICBwdWJsaWMgY29uZmlnPzogVGFibGVDb25maWd1cmF0aW9uO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBkYXRhU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlbG9hZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgQElucHV0KCdlbnRpdHlTZXQnKSBlbnRpdHlTZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgnY2F0ZWdvcnknKSBjYXRlZ29yeT86IHN0cmluZztcbiAgQElucHV0KCdkZXNjcmlwdGlvbicpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ2xvbmdEZXNjcmlwdGlvbicpIGxvbmdEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCd0YWJsZUNvbmZpZ3VyYXRpb24nKSB0YWJsZUNvbmZpZ3VyYXRpb246IGFueTtcbiAgQElucHV0KCdzZWFyY2hDb25maWd1cmF0aW9uJykgc2VhcmNoQ29uZmlndXJhdGlvbjogYW55O1xuICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlPzogQWR2YW5jZWRUYWJsZUNvbXBvbmVudDtcbiAgQElucHV0KCdhbGxvd1NhdmVPcHRpb24nKSBhbGxvd1NhdmVPcHRpb24gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbnRleHQ6IEFuZ3VsYXJEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9lcnJvclNlcnZpY2U6IEVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIF91c2VyQWN0aXZpdHlTZXJ2aWNlOiBVc2VyQWN0aXZpdHlTZXJ2aWNlXG4gICAgKSB7IH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50YWJsZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICAgIC8vIGdldCBtZXRhZGF0YVxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9jb250ZXh0LmdldE1ldGFkYXRhKCk7XG4gICAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgIC8vIGdldCBlbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7cm91dGVEYXRhLm1vZGVsfSRgLCAnaWcnKTtcbiAgICAgICAgY29uc3QgZW50aXR5U2V0ID0gbWV0YWRhdGEuRW50aXR5Q29udGFpbmVyLkVudGl0eVNldC5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4gcmUudGVzdCh4Lk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaWYgZW50aXR5IHR5cGUgaXMgbnVsbFxuICAgICAgICBpZiAoZW50aXR5U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSB0byBlcnJvclxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlTZXQgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGVudGl0eSB0eXBlXG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBtZXRhZGF0YS5FbnRpdHlUeXBlLmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiB4Lk5hbWUgPT09IGVudGl0eVNldC5FbnRpdHlUeXBlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlUeXBlIE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24sICdhbGxvd1NhdmUnKSkge1xuICAgICAgICAgICAgdGhpcy5hbGxvd1NhdmVPcHRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbi5hbGxvd1NhdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VhcmNoQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmxvbmdEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmNhdGVnb3J5KSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuY2F0ZWdvcnkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNsb25lIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgICAgICBjb25zdCBkZWZhdWx0Q29uZmlndXJhdGlvbiA9IEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uLmNhc3QodGhpcy50YWJsZUNvbmZpZ3VyYXRpb24sIHRydWUpO1xuICAgICAgICAvLyBjb3JyZWN0IGVkaXQgYnV0dG9uIGxpbmtcbiAgICAgICAgY29uc3QgY29sdW1uID0gZGVmYXVsdENvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKCBjb2wgPT4ge1xuICAgICAgICAgIHJldHVybiBjb2wuZm9ybWF0dGVyID09PSAnQnV0dG9uRm9ybWF0dGVyJyAmJiBjb2wuZm9ybWF0U3RyaW5nID09PSAnKG1vZGFsOmVkaXQpJztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICBjb25zdCB1cmw6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXRoRnJvbVJvb3QuZm9yRWFjaCggcm91dGUgPT4ge1xuICAgICAgICAgICAgdXJsLnB1c2guYXBwbHkodXJsLCByb3V0ZS51cmwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbHVtbi5mb3JtYXRTdHJpbmcgPSBgIy8ke3VybC5qb2luKCcvJyl9Lyhtb2RhbDpcXCRcXHtpZFxcfS9lZGl0KWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3JlYXRlIGxpc3QgY29uZmlndXJhdGlvbiBieSBhc3NpZ25pbmcgbGlzdCBlbnRpdHkgc2V0XG4gICAgICAgIHRhYmxlLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgIG1vZGVsOiBlbnRpdHlTZXQuTmFtZVxuICAgICAgICB9LCBkZWZhdWx0Q29uZmlndXJhdGlvbik7XG4gICAgICAgIC8vIGZldGNoIGRhdGFcbiAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgIC8vIGRvIHJlbG9hZCBieSB1c2luZyBoaWRkZW4gZnJhZ21lbnQgZS5nLiAvY2xhc3NlcyNyZWxvYWRcbiAgICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoZnJhZ21lbnQgPT4ge1xuICAgICAgICAgIGlmIChmcmFnbWVudCAmJiBmcmFnbWVudCA9PT0gJ3JlbG9hZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KFxuICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdTZXR0aW5ncy5PcGVyYXRpb25Db21wbGV0ZWQnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGZpbmFsbHkgYWRkIHVzZXIgYWN0aXZpdHlcbiAgICAgICAgdGhpcy5fdXNlckFjdGl2aXR5U2VydmljZS5zZXRJdGVtKHtcbiAgICAgICAgICBjYXRlZ29yeTogdGhpcy5jYXRlZ29yeSBhcyBzdHJpbmcsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpLFxuICAgICAgICAgIGRhdGVDcmVhdGVkOiBuZXcgRGF0ZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yU2VydmljZS5zaG93RXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiBEYXRhIGxvYWQgZXZlbnQgaGFuZGxlciBvZiBhZHZhbmNlZCB0YWJsZSBjb21wb25lbnRcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIG9uRGF0YUxvYWQoZGF0YTogQWR2YW5jZWRUYWJsZURhdGFSZXN1bHQpIHtcbiAgICB0aGlzLnJlY29yZHNUb3RhbCA9IGRhdGEucmVjb3Jkc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICBpZiAodGFibGUgJiYgdGFibGUuc2VsZWN0ZWQgJiYgdGFibGUuc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICAvLyBnZXQgaXRlbXMgdG8gcmVtb3ZlXG4gICAgICBjb25zdCBpdGVtcyA9IHRhYmxlLnNlbGVjdGVkO1xuICAgICAgcmV0dXJuIHRoaXMuX21vZGFsU2VydmljZS5zaG93V2FybmluZ0RpYWxvZyhcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbXNUaXRsZScpLFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc01lc3NhZ2UnKSxcbiAgICAgICAgRElBTE9HX0JVVFRPTlMuT2tDYW5jZWwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSAnb2snKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0Lm1vZGVsKHRhYmxlLmNvbmZpZy5tb2RlbCkucmVtb3ZlKGl0ZW1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiArICc6JyArIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLnRpdGxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KChpdGVtcy5sZW5ndGggPT09IDEgP1xuICAgICAgICAgICAgICAgICAgJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5vbmUnIDogJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5tYW55JylcbiAgICAgICAgICAgICAgICAgICwgeyB2YWx1ZTogaXRlbXMubGVuZ3RoIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIsIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZUxpbms6ICcuJ1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7SUF3Qi9DLCtCQUFvQixRQUE0QixFQUN0QyxtQkFDQSxpQkFDQSxlQUNBLGVBQ0EsZUFDQTtRQU5VLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUI7UUFDakIsb0JBQWUsR0FBZixlQUFlO1FBQ2Ysa0JBQWEsR0FBYixhQUFhO1FBQ2Isa0JBQWEsR0FBYixhQUFhO1FBQ2Isa0JBQWEsR0FBYixhQUFhO1FBQ2IseUJBQW9CLEdBQXBCLG9CQUFvQjs0QkFyQkEsR0FBRzsrQkFZVyxJQUFJO3dCQUNULEtBQUs7S0FTckM7Ozs7SUFDUCwyQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLElBQUksQ0FBQyxn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Z0JBL0tGLFNBQVMsU0FBQzs7b0JBRVQsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsK3JFQUE2QztpQkFDOUM7Ozs7Z0JBZlEsa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBRWhCLGNBQWM7Z0JBR2QsWUFBWTtnQkFHWixZQUFZO2dCQUhrQixZQUFZO2dCQUFFLG1CQUFtQjs7OzRCQWlCckUsS0FBSyxTQUFDLFdBQVc7MkJBQ2pCLEtBQUssU0FBQyxVQUFVOzhCQUNoQixLQUFLLFNBQUMsYUFBYTtrQ0FDbkIsS0FBSyxTQUFDLGlCQUFpQjtxQ0FDdkIsS0FBSyxTQUFDLG9CQUFvQjtzQ0FDMUIsS0FBSyxTQUFDLHFCQUFxQjt3QkFDM0IsU0FBUyxTQUFDLE9BQU87a0NBQ2pCLEtBQUssU0FBQyxpQkFBaUI7MkJBQ3ZCLEtBQUssU0FBQyxVQUFVOztnQ0FoQ25COztTQWlCYSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRGF0YUNvbnRleHQgfSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IEFkdmFuY2VkVGFibGVDb21wb25lbnQsIEFkdmFuY2VkVGFibGVEYXRhUmVzdWx0LCBBZHZhbmNlZFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclNlcnZpY2UsIERJQUxPR19CVVRUT05TLCBNb2RhbFNlcnZpY2UsIFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNwb25zZUVycm9yIH0gZnJvbSAnQHRoZW1vc3QvY2xpZW50JztcbmltcG9ydCB7IFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkdmFuY2VkLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgcmVjb3Jkc1RvdGFsOiBudW1iZXIgPSBOYU47XG4gIHB1YmxpYyBjb25maWc/OiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVsb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2VudGl0eVNldCcpIGVudGl0eVNldD86IHN0cmluZztcbiAgQElucHV0KCdjYXRlZ29yeScpIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgnbG9uZ0Rlc2NyaXB0aW9uJykgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ3RhYmxlQ29uZmlndXJhdGlvbicpIHRhYmxlQ29uZmlndXJhdGlvbjogYW55O1xuICBASW5wdXQoJ3NlYXJjaENvbmZpZ3VyYXRpb24nKSBzZWFyY2hDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU/OiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBASW5wdXQoJ2FsbG93U2F2ZU9wdGlvbicpIGFsbG93U2F2ZU9wdGlvbiA9IHRydWU7XG4gIEBJbnB1dCgncmVhZG9ubHknKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbnRleHQ6IEFuZ3VsYXJEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9lcnJvclNlcnZpY2U6IEVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIF91c2VyQWN0aXZpdHlTZXJ2aWNlOiBVc2VyQWN0aXZpdHlTZXJ2aWNlXG4gICAgKSB7IH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50YWJsZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICAgIC8vIGdldCBtZXRhZGF0YVxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9jb250ZXh0LmdldE1ldGFkYXRhKCk7XG4gICAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgIC8vIGdldCBlbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7cm91dGVEYXRhLm1vZGVsfSRgLCAnaWcnKTtcbiAgICAgICAgY29uc3QgZW50aXR5U2V0ID0gbWV0YWRhdGEuRW50aXR5Q29udGFpbmVyLkVudGl0eVNldC5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4gcmUudGVzdCh4Lk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaWYgZW50aXR5IHR5cGUgaXMgbnVsbFxuICAgICAgICBpZiAoZW50aXR5U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSB0byBlcnJvclxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlTZXQgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGVudGl0eSB0eXBlXG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBtZXRhZGF0YS5FbnRpdHlUeXBlLmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiB4Lk5hbWUgPT09IGVudGl0eVNldC5FbnRpdHlUeXBlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlUeXBlIE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24sICdhbGxvd1NhdmUnKSkge1xuICAgICAgICAgICAgdGhpcy5hbGxvd1NhdmVPcHRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbi5hbGxvd1NhdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VhcmNoQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmxvbmdEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmNhdGVnb3J5KSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuY2F0ZWdvcnkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLCAncmVhZG9ubHknKSkge1xuICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSByb3V0ZURhdGEucmVhZG9ubHk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xvbmUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uID0gQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24uY2FzdCh0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiwgdHJ1ZSk7XG4gICAgICAgIC8vIGNvcnJlY3QgZWRpdCBidXR0b24gbGlua1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBkZWZhdWx0Q29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoIGNvbCA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbC5mb3JtYXR0ZXIgPT09ICdCdXR0b25Gb3JtYXR0ZXInICYmIGNvbC5mb3JtYXRTdHJpbmcgPT09ICcobW9kYWw6ZWRpdCknO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgIGNvbnN0IHVybDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhdGhGcm9tUm9vdC5mb3JFYWNoKCByb3V0ZSA9PiB7XG4gICAgICAgICAgICB1cmwucHVzaC5hcHBseSh1cmwsIHJvdXRlLnVybCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29sdW1uLmZvcm1hdFN0cmluZyA9IGAjLyR7dXJsLmpvaW4oJy8nKX0vKG1vZGFsOlxcJFxce2lkXFx9L2VkaXQpYDtcbiAgICAgICAgfVxuICAgICAgICAvLyBjcmVhdGUgbGlzdCBjb25maWd1cmF0aW9uIGJ5IGFzc2lnbmluZyBsaXN0IGVudGl0eSBzZXRcbiAgICAgICAgY29uc3Qgc2V0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgbW9kZWw6IGVudGl0eVNldC5OYW1lXG4gICAgICAgIH0sIGRlZmF1bHRDb25maWd1cmF0aW9uKTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzZXRDb25maWcsICdzZWxlY3RhYmxlJykpIHtcbiAgICAgICAgICBzZXRDb25maWcuc2VsZWN0YWJsZSA9ICF0aGlzLnJlYWRvbmx5O1xuICAgICAgICB9XG4gICAgICAgIHRhYmxlLmNvbmZpZyA9IHNldENvbmZpZztcbiAgICAgICAgLy8gZmV0Y2ggZGF0YVxuICAgICAgICB0YWJsZS5mZXRjaCh0cnVlKTtcbiAgICAgICAgLy8gZG8gcmVsb2FkIGJ5IHVzaW5nIGhpZGRlbiBmcmFnbWVudCBlLmcuIC9jbGFzc2VzI3JlbG9hZFxuICAgICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLmZyYWdtZW50LnN1YnNjcmliZShmcmFnbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGZyYWdtZW50ICYmIGZyYWdtZW50ID09PSAncmVsb2FkJykge1xuICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1NldHRpbmdzLk9wZXJhdGlvbkNvbXBsZXRlZCcpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gZmluYWxseSBhZGQgdXNlciBhY3Rpdml0eVxuICAgICAgICB0aGlzLl91c2VyQWN0aXZpdHlTZXJ2aWNlLnNldEl0ZW0oe1xuICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3J5IGFzIHN0cmluZyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksXG4gICAgICAgICAgZGF0ZUNyZWF0ZWQ6IG5ldyBEYXRlXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIERhdGEgbG9hZCBldmVudCBoYW5kbGVyIG9mIGFkdmFuY2VkIHRhYmxlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgb25EYXRhTG9hZChkYXRhOiBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCkge1xuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHNlbGVjdGVkIGl0ZW1zXG4gICAqL1xuICByZW1vdmUoKSB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlO1xuICAgIGlmICh0YWJsZSAmJiB0YWJsZS5zZWxlY3RlZCAmJiB0YWJsZS5zZWxlY3RlZC5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBpdGVtcyB0byByZW1vdmVcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGFibGUuc2VsZWN0ZWQ7XG4gICAgICByZXR1cm4gdGhpcy5fbW9kYWxTZXJ2aWNlLnNob3dXYXJuaW5nRGlhbG9nKFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc1RpdGxlJyksXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1zTWVzc2FnZScpLFxuICAgICAgICBESUFMT0dfQlVUVE9OUy5Pa0NhbmNlbCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09ICdvaycpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQubW9kZWwodGFibGUuY29uZmlnLm1vZGVsKS5yZW1vdmUoaXRlbXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdyhcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uICsgJzonICsgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbU1lc3NhZ2UudGl0bGUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoKGl0ZW1zLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgICAgICAgICAgICAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm9uZScgOiAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm1hbnknKVxuICAgICAgICAgICAgICAgICAgLCB7IHZhbHVlOiBpdGVtcy5sZW5ndGggfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9lcnJvclNlcnZpY2Uuc2hvd0Vycm9yKGVyciwge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlTGluazogJy4nXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|