@universis/ngx-tables 15.0.6 → 15.0.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/esm2020/lib/components/add-items/add-items.component.mjs +4 -4
- package/esm2020/lib/components/advanced-aggregator/advanced-aggregator.component.mjs +4 -4
- package/esm2020/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.mjs +4 -4
- package/esm2020/lib/components/advanced-list/advanced-list.component.mjs +4 -4
- package/esm2020/lib/components/advanced-row-action/advanced-row-action.component.mjs +4 -4
- package/esm2020/lib/components/advanced-search-form/advanced-search-form.component.mjs +4 -4
- package/esm2020/lib/components/advanced-select/advanced-select.component.mjs +4 -4
- package/esm2020/lib/components/advanced-select/advanced-select.service.mjs +4 -4
- package/esm2020/lib/components/advanced-table/advanced-filter-value-provider.service.mjs +4 -4
- package/esm2020/lib/components/advanced-table/advanced-table-resolvers.mjs +7 -7
- package/esm2020/lib/components/advanced-table/advanced-table-search-base.mjs +4 -4
- package/esm2020/lib/components/advanced-table/advanced-table-search.component.mjs +4 -4
- package/esm2020/lib/components/advanced-table/advanced-table-settings.component.mjs +4 -4
- package/esm2020/lib/components/advanced-table/advanced-table.component.mjs +5 -5
- package/esm2020/lib/components/advanced-table-modal/advanced-table-modal-base.component.mjs +4 -4
- package/esm2020/lib/components/column-selector/column-selector.component.mjs +4 -4
- package/esm2020/lib/components/column-selector/column-selector.service.mjs +4 -4
- package/esm2020/lib/components/table-simple-header/table-simple-header.component.mjs +7 -7
- package/esm2020/lib/directives/advance-search-state.directive.mjs +4 -4
- package/esm2020/lib/directives/advance-table-state.directive.mjs +4 -4
- package/esm2020/lib/directives/advanced-search-router-state.directive.mjs +4 -4
- package/esm2020/lib/directives/advanced-table-editor.directive.mjs +4 -4
- package/esm2020/lib/directives/btnexp.directive.mjs +4 -4
- package/esm2020/lib/pipes/advanced-aggregator.pipe.mjs +4 -4
- package/esm2020/lib/pipes/advansed-aggregator-list-title-parse.pipe.mjs +4 -4
- package/esm2020/lib/services/advanced-aggregator/advanced-aggregator.service.mjs +4 -4
- package/esm2020/lib/tables.activated-table.service.mjs +4 -4
- package/esm2020/lib/tables.module.mjs +5 -5
- package/fesm2015/universis-ngx-tables.mjs +92 -92
- package/fesm2015/universis-ngx-tables.mjs.map +1 -1
- package/fesm2020/universis-ngx-tables.mjs +92 -92
- package/fesm2020/universis-ngx-tables.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -111,9 +111,9 @@ export class AddItemsComponent extends RouterModalOkCancel {
|
|
|
111
111
|
}
|
|
112
112
|
onFilterChange(event) { }
|
|
113
113
|
}
|
|
114
|
-
AddItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
115
|
-
AddItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
114
|
+
AddItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AddItemsComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ModalService }, { token: i2.LoadingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
AddItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AddItemsComponent, selector: "app-add-items", inputs: { execute: "execute", items: "items", target: "target", tableConfiguration: "tableConfiguration", formName: "formName", messages: "messages" }, viewQueries: [{ propertyName: "formComponent", first: true, predicate: ["formComponent"], descendants: true }, { propertyName: "selectComponent", first: true, predicate: ["selectComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button (click)=\"cancel()\" [disabled]=\"loading\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body pt-0\">\n <div class=\"row\" *ngIf=\"lastError\">\n <div class=\"alert alert-danger col-12\" role=\"alert\">\n <span [translate]=\"'E' + (lastError.statusCode || 500) + '.title'\"></span><br>\n <small *ngIf=\"lastError.statusCode >= 0\" [translate]=\"'E' + (lastError.statusCode || 500) + '.message'\"></small>\n <small *ngIf=\"lastError.statusCode == null\">{{lastError.message}}</small>\n </div>\n </div>\n <div class=\"row d-none\" *ngIf=\"items\">\n <div class=\"col-12\">\n <p [translate]=\"'StudyPrograms.AddCoursesHelp'\" [translateParams]=\"items\" ></p>\n </div>\n </div>\n <div class=\"row mt-3\">\n <div class=\"col-12\">\n <ng-container>\n <ul style=\"margin-left: -24px\" class=\"nav nav-tabs mb-1\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\" *ngIf=\"tableConfiguration\">\n <a class=\"nav-link active\" id=\"courses-tab\" data-toggle=\"tab\" href=\"#courses\" role=\"tab\" aria-controls=\"home\" aria-selected=\"true\" [translate]=\"'AddItems.SelectItems'\" ></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"formName\">\n <a class=\"nav-link\" [ngClass]=\"{ 'disabled': !(selectComponent && selectComponent.advancedTable && selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) }\" id=\"attributes-tab\" data-toggle=\"tab\" href=\"#attributes\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.EditAttributes'\"></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"messages && messages.length > 0\">\n <a class=\"nav-link\" id=\"messages-tab\" data-toggle=\"tab\" href=\"#messages\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.Messages'\"></a>\n </li>\n </ul>\n <div class=\"tab-content border-0\" id=\"myTabContent\">\n <div class=\"tab-pane fade show active\" id=\"courses\" role=\"tabpanel\" aria-labelledby=\"home-tab\">\n <app-advanced-table-modal #selectComponent (filter)=\"onFilterChange($event)\" [tableConfig]=\"tableConfiguration\"></app-advanced-table-modal>\n </div>\n <div class=\"tab-pane fade\" id=\"attributes\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(formName == null)}\">\n<!-- <advanced-form-edit #formComponent [formName]=\"formName\" ></advanced-form-edit>-->\n </div>\n <div class=\"tab-pane fade\" id=\"messages\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(messages == null)}\">\n <ul *ngIf=\"messages && messages.length>0\" class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <div class=\"sis--list-group-item_lg_column\" [translate]=\"'AddItems.Messages'\"></div>\n </div>\n </li>\n </ul>\n <ul class=\"sis--list-group sis--list-group-body\">\n <li *ngFor=\"let message of messages\" class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <div class=\"sis--list-group-item_lg_column\">{{ message?.message }}</div>\n </div>\n </li>\n </ul>\n <div *ngIf=\"messages && messages.length>0\">\n <button [disabled]=\"loading\" (click)=\"clearMessages()\" type=\"button\" class=\"btn btn-indigo mt-3\">\n {{'Clear' | translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled || loading || !(selectComponent && selectComponent.advancedTable && selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) \" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"okButtonClass\">\n {{'OK' | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled || loading\"\n (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\" data-dismiss=\"modal\">\n {{'Cancel' | translate}}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.AdvancedTableModalBaseComponent, selector: "app-advanced-table-modal", inputs: ["tableConfig", "tableConfigSrc", "pageLength", "searchText", "lengthMenu", "defaultFilter"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AddItemsComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{ selector: 'app-add-items', template: "<div>\n <div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button (click)=\"cancel()\" [disabled]=\"loading\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body pt-0\">\n <div class=\"row\" *ngIf=\"lastError\">\n <div class=\"alert alert-danger col-12\" role=\"alert\">\n <span [translate]=\"'E' + (lastError.statusCode || 500) + '.title'\"></span><br>\n <small *ngIf=\"lastError.statusCode >= 0\" [translate]=\"'E' + (lastError.statusCode || 500) + '.message'\"></small>\n <small *ngIf=\"lastError.statusCode == null\">{{lastError.message}}</small>\n </div>\n </div>\n <div class=\"row d-none\" *ngIf=\"items\">\n <div class=\"col-12\">\n <p [translate]=\"'StudyPrograms.AddCoursesHelp'\" [translateParams]=\"items\" ></p>\n </div>\n </div>\n <div class=\"row mt-3\">\n <div class=\"col-12\">\n <ng-container>\n <ul style=\"margin-left: -24px\" class=\"nav nav-tabs mb-1\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\" *ngIf=\"tableConfiguration\">\n <a class=\"nav-link active\" id=\"courses-tab\" data-toggle=\"tab\" href=\"#courses\" role=\"tab\" aria-controls=\"home\" aria-selected=\"true\" [translate]=\"'AddItems.SelectItems'\" ></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"formName\">\n <a class=\"nav-link\" [ngClass]=\"{ 'disabled': !(selectComponent && selectComponent.advancedTable && selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) }\" id=\"attributes-tab\" data-toggle=\"tab\" href=\"#attributes\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.EditAttributes'\"></a>\n </li>\n <li class=\"nav-item\" *ngIf=\"messages && messages.length > 0\">\n <a class=\"nav-link\" id=\"messages-tab\" data-toggle=\"tab\" href=\"#messages\" role=\"tab\" aria-controls=\"profile\" aria-selected=\"false\" [translate]=\"'AddItems.Messages'\"></a>\n </li>\n </ul>\n <div class=\"tab-content border-0\" id=\"myTabContent\">\n <div class=\"tab-pane fade show active\" id=\"courses\" role=\"tabpanel\" aria-labelledby=\"home-tab\">\n <app-advanced-table-modal #selectComponent (filter)=\"onFilterChange($event)\" [tableConfig]=\"tableConfiguration\"></app-advanced-table-modal>\n </div>\n <div class=\"tab-pane fade\" id=\"attributes\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(formName == null)}\">\n<!-- <advanced-form-edit #formComponent [formName]=\"formName\" ></advanced-form-edit>-->\n </div>\n <div class=\"tab-pane fade\" id=\"messages\" role=\"tabpanel\" aria-labelledby=\"profile-tab\"\n [ngClass]=\"{'invisible':(messages == null)}\">\n <ul *ngIf=\"messages && messages.length>0\" class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <div class=\"sis--list-group-item_lg_column\" [translate]=\"'AddItems.Messages'\"></div>\n </div>\n </li>\n </ul>\n <ul class=\"sis--list-group sis--list-group-body\">\n <li *ngFor=\"let message of messages\" class=\"sis--list-group-item\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <div class=\"sis--list-group-item_lg_column\">{{ message?.message }}</div>\n </div>\n </li>\n </ul>\n <div *ngIf=\"messages && messages.length>0\">\n <button [disabled]=\"loading\" (click)=\"clearMessages()\" type=\"button\" class=\"btn btn-indigo mt-3\">\n {{'Clear' | translate}}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled || loading || !(selectComponent && selectComponent.advancedTable && selectComponent.advancedTable.selected && selectComponent.advancedTable.selected.length) \" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"okButtonClass\">\n {{'OK' | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled || loading\"\n (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\" data-dismiss=\"modal\">\n {{'Cancel' | translate}}\n </button>\n </div>\n</div>\n" }]
|
|
119
119
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ModalService }, { type: i2.LoadingService }]; }, propDecorators: { execute: [{
|
|
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
135
135
|
type: ViewChild,
|
|
136
136
|
args: ['selectComponent']
|
|
137
137
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZGQtaXRlbXMvYWRkLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZGQtaXRlbXMvYWRkLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBWTlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBbUI7SUFpQnhELFlBQVksTUFBYyxFQUNkLGNBQThCLEVBQ3RCLGFBQTJCLEVBQzNCLGVBQStCO1FBQ2pELEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFGWixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFsQjVDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHZCxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBS3ZCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFZakMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUU7WUFDOUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDL0YsSUFBSSxJQUFJLENBQUMsUUFB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Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ3NCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDSSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZGFsT2tDYW5jZWx9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uL3JvdXRpbmcnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FkdmFuY2VkRm9ybUNvbXBvbmVudH0gZnJvbSAnQHVuaXZlcnNpcy9mb3Jtcyc7XG5pbXBvcnQge0xvYWRpbmdTZXJ2aWNlLCBNb2RhbFNlcnZpY2V9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWl0ZW1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1pdGVtcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRkSXRlbXNDb21wb25lbnQgZXh0ZW5kcyBSb3V0ZXJNb2RhbE9rQ2FuY2VsIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgbGFzdEVycm9yO1xuICBASW5wdXQoKSBleGVjdXRlPzogT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICBASW5wdXQoKSB0YXJnZXQ6IGFueTtcbiAgLy8gQElucHV0KCkgc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KCkgdGFibGVDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIGZvcm1OYW1lOiBhbnk7XG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBBcnJheTxhbnk+ID0gW107XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1Db21wb25lbnQnKSBmb3JtQ29tcG9uZW50PzogQWR2YW5jZWRGb3JtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzZWxlY3RDb21wb25lbnQnKSBzZWxlY3RDb21wb25lbnQ/OiBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50O1xuICBwcml2YXRlIGZvcm1Mb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGZvcm1DaGFuZ2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VsZWN0ZWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3Iocm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSkge1xuICAgIHN1cGVyKHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIC8vIHNldCBtb2RhbCBzaXplXG4gICAgdGhpcy5tb2RhbENsYXNzID0gJ21vZGFsLWxnJztcbiAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdENvbXBvbmVudCAmJiB0aGlzLnNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZEl0ZW1zLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybU5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9IGl0ZW1zLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1OYW1lICE9IG51bGwgJiYgdGhpcy5mb3JtQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmZvcm1DaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Db21wb25lbnQ/LmZvcm0/LmNoYW5nZS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChldmVudCwgJ2lzVmFsaWQnKSkge1xuICAgICAgICAgIC8vIGVuYWJsZSBvciBkaXNhYmxlIGJ1dHRvbiBiYXNlZCBvbiBmb3JtIHN0YXR1c1xuICAgICAgICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9ICghZXZlbnQuaXNWYWxpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQ7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5jbGVhck1lc3NhZ2VzKCk7XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICAvLyBjbG9zZVxuICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYuaGlkZSgpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtTG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtTG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZvcm1DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAgIC8vIGdldCBmb3JtIGRhdGFcbiAgcHJpdmF0ZSBleGVjdXRlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBnZXQgZm9ybURhdGEoKTogYW55IHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudD8uZm9ybT8uZm9ybWlvLmRhdGE7XG4gICAgfVxuXG4gICAgb2soKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RDb21wb25lbnQgPT0gbnVsbCB8fCB0aGlzLnNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlID09IG51bGwgfHwgdGhpcy5leGVjdXRlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IG51bGw7XG4gICAgICAgICAgLy8gc2V0IGNvdXJzZXNcbiAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZDtcbiAgICAgICAgICAvLyBleGVjdXRlIGFkZFxuICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZXhlY3V0ZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5leGVjdXRlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2xvc2UgbW9kYWxcbiAgICAgICAgICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gZW5zdXJlIHRoYXQgbG9hZGluZyBpcyBoaWRkZW5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLmhpZGVMb2FkaW5nKCk7XG4gICAgICAgICAgICAvLyBzZXQgbGFzdCBlcnJvclxuICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBlcnI7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UuaGlkZUxvYWRpbmcoKTtcbiAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlKCRldmVudDogYW55KSB7fVxuXG4gIGNsZWFyTWVzc2FnZXMoKSB7XG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICB9XG5cbiAgb25GaWx0ZXJDaGFuZ2UoZXZlbnQ6ICBhbnkpIHt9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgKm5nSWY9XCJtb2RhbFRpdGxlXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj57e21vZGFsVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDU+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNhbmNlbFwiPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHB0LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJsYXN0RXJyb3JcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXIgY29sLTEyXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgIDxzcGFuIFt0cmFuc2xhdGVdPVwiJ0UnICsgKGxhc3RFcnJvci5zdGF0dXNDb2RlIHx8IDUwMCkgKyAnLnRpdGxlJ1wiPjwvc3Bhbj48YnI+XG4gICAgICAgIDxzbWFsbCAqbmdJZj1cImxhc3RFcnJvci5zdGF0dXNDb2RlID49IDBcIiBbdHJhbnNsYXRlXT1cIidFJyArIChsYXN0RXJyb3Iuc3RhdHVzQ29kZSB8fCA1MDApICsgJy5tZXNzYWdlJ1wiPjwvc21hbGw+XG4gICAgICAgIDxzbWFsbCAqbmdJZj1cImxhc3RFcnJvci5zdGF0dXNDb2RlID09IG51bGxcIj57e2xhc3RFcnJvci5tZXNzYWdlfX08L3NtYWxsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBkLW5vbmVcIiAqbmdJZj1cIml0ZW1zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxwIFt0cmFuc2xhdGVdPVwiJ1N0dWR5UHJvZ3JhbXMuQWRkQ291cnNlc0hlbHAnXCIgW3RyYW5zbGF0ZVBhcmFtc109XCJpdGVtc1wiID48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8dWwgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI0cHhcIiBjbGFzcz1cIm5hdiBuYXYtdGFicyBtYi0xXCIgaWQ9XCJteVRhYlwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidGFibGVDb25maWd1cmF0aW9uXCI+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYWN0aXZlXCIgaWQ9XCJjb3Vyc2VzLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNjb3Vyc2VzXCIgcm9sZT1cInRhYlwiIGFyaWEtY29udHJvbHM9XCJob21lXCIgYXJpYS1zZWxlY3RlZD1cInRydWVcIiBbdHJhbnNsYXRlXT1cIidBZGRJdGVtcy5TZWxlY3RJdGVtcydcIiA+PC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJmb3JtTmFtZVwiPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiAhKHNlbGVjdENvbXBvbmVudCAmJiBzZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZSAmJiBzZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZCAmJiBzZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZC5sZW5ndGgpIH1cIiBpZD1cImF0dHJpYnV0ZXMtdGFiXCIgZGF0YS10b2dnbGU9XCJ0YWJcIiBocmVmPVwiI2F0dHJpYnV0ZXNcIiByb2xlPVwidGFiXCIgYXJpYS1jb250cm9scz1cInByb2ZpbGVcIiBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIiBbdHJhbnNsYXRlXT1cIidBZGRJdGVtcy5FZGl0QXR0cmlidXRlcydcIj48L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cIm1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiICBpZD1cIm1lc3NhZ2VzLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNtZXNzYWdlc1wiIHJvbGU9XCJ0YWJcIiBhcmlhLWNvbnRyb2xzPVwicHJvZmlsZVwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiIFt0cmFuc2xhdGVdPVwiJ0FkZEl0ZW1zLk1lc3NhZ2VzJ1wiPjwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgYm9yZGVyLTBcIiBpZD1cIm15VGFiQ29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGZhZGUgc2hvdyBhY3RpdmVcIiBpZD1cImNvdXJzZXNcIiByb2xlPVwidGFicGFuZWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJob21lLXRhYlwiPlxuICAgICAgICAgICAgICA8YXBwLWFkdmFuY2VkLXRhYmxlLW1vZGFsICNzZWxlY3RDb21wb25lbnQgKGZpbHRlcik9XCJvbkZpbHRlckNoYW5nZSgkZXZlbnQpXCIgW3RhYmxlQ29uZmlnXT1cInRhYmxlQ29uZmlndXJhdGlvblwiPjwvYXBwLWFkdmFuY2VkLXRhYmxlLW1vZGFsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZVwiIGlkPVwiYXR0cmlidXRlc1wiIHJvbGU9XCJ0YWJwYW5lbFwiIGFyaWEtbGFiZWxsZWRieT1cInByb2ZpbGUtdGFiXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbnZpc2libGUnOihmb3JtTmFtZSA9PSBudWxsKX1cIj5cbjwhLS0gICAgICAgICAgICAgIDxhZHZhbmNlZC1mb3JtLWVkaXQgI2Zvcm1Db21wb25lbnQgW2Zvcm1OYW1lXT1cImZvcm1OYW1lXCIgPjwvYWR2YW5jZWQtZm9ybS1lZGl0Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZVwiIGlkPVwibWVzc2FnZXNcIiByb2xlPVwidGFicGFuZWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJwcm9maWxlLXRhYlwiXG4gICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW52aXNpYmxlJzoobWVzc2FnZXMgPT0gbnVsbCl9XCI+XG4gICAgICAgICAgICAgIDx1bCAqbmdJZj1cIm1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aD4wXCIgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAgc2lzLS1saXN0LWdyb3VwLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAtaXRlbV9sZ19jb2x1bW5cIiBbdHJhbnNsYXRlXT1cIidBZGRJdGVtcy5NZXNzYWdlcydcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNpcy0tbGlzdC1ncm91cCBzaXMtLWxpc3QtZ3JvdXAtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIGNsYXNzPVwic2lzLS1saXN0LWdyb3VwLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbGlzdC1jb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lzLS1saXN0LWdyb3VwLWl0ZW1fbGdfY29sdW1uXCI+e3sgbWVzc2FnZT8ubWVzc2FnZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aD4wXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJjbGVhck1lc3NhZ2VzKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWluZGlnbyBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICB7eydDbGVhcicgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwib2tCdXR0b25EaXNhYmxlZCB8fCBsb2FkaW5nIHx8ICEoc2VsZWN0Q29tcG9uZW50ICYmIHNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlICYmIHNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlLnNlbGVjdGVkICYmIHNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlLnNlbGVjdGVkLmxlbmd0aCkgXCIgKGNsaWNrKT1cIm9rKClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIm9rQnV0dG9uQ2xhc3NcIj5cbiAgICAgIHt7J09LJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY2FuY2VsQnV0dG9uRGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIiB0eXBlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiY2FuY2VsQnV0dG9uQ2xhc3NcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiPlxuICAgICAge3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZGQtaXRlbXMvYWRkLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZGQtaXRlbXMvYWRkLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBWTlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBbUI7SUFpQnhELFlBQVksTUFBYyxFQUNkLGNBQThCLEVBQ3RCLGFBQTJCLEVBQzNCLGVBQStCO1FBQ2pELEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFGWixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFsQjVDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHZCxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBS3ZCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFZakMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUU7WUFDOUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDL0YsSUFBSSxJQUFJLENBQUMsUUFB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Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ3NCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDSSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZGFsT2tDYW5jZWx9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uL3JvdXRpbmcnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0FkdmFuY2VkRm9ybUNvbXBvbmVudH0gZnJvbSAnQHVuaXZlcnNpcy9mb3Jtcyc7XG5pbXBvcnQge0xvYWRpbmdTZXJ2aWNlLCBNb2RhbFNlcnZpY2V9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWl0ZW1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1pdGVtcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRkSXRlbXNDb21wb25lbnQgZXh0ZW5kcyBSb3V0ZXJNb2RhbE9rQ2FuY2VsIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICBwdWJsaWMgbGFzdEVycm9yO1xuICBASW5wdXQoKSBleGVjdXRlPzogT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICBASW5wdXQoKSB0YXJnZXQ6IGFueTtcbiAgLy8gQElucHV0KCkgc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KCkgdGFibGVDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIGZvcm1OYW1lOiBhbnk7XG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBBcnJheTxhbnk+ID0gW107XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1Db21wb25lbnQnKSBmb3JtQ29tcG9uZW50PzogQWR2YW5jZWRGb3JtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzZWxlY3RDb21wb25lbnQnKSBzZWxlY3RDb21wb25lbnQ/OiBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50O1xuICBwcml2YXRlIGZvcm1Mb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGZvcm1DaGFuZ2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VsZWN0ZWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3Iocm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSkge1xuICAgIHN1cGVyKHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIC8vIHNldCBtb2RhbCBzaXplXG4gICAgdGhpcy5tb2RhbENsYXNzID0gJ21vZGFsLWxnJztcbiAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdENvbXBvbmVudCAmJiB0aGlzLnNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU3Vic2NyaXB0aW9uID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZEl0ZW1zLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybU5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9IGl0ZW1zLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1OYW1lICE9IG51bGwgJiYgdGhpcy5mb3JtQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLmZvcm1DaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Db21wb25lbnQ/LmZvcm0/LmNoYW5nZS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChldmVudCwgJ2lzVmFsaWQnKSkge1xuICAgICAgICAgIC8vIGVuYWJsZSBvciBkaXNhYmxlIGJ1dHRvbiBiYXNlZCBvbiBmb3JtIHN0YXR1c1xuICAgICAgICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9ICghZXZlbnQuaXNWYWxpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy50YXJnZXQ7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5jbGVhck1lc3NhZ2VzKCk7XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICAvLyBjbG9zZVxuICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYuaGlkZSgpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtTG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtTG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZvcm1DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAgIC8vIGdldCBmb3JtIGRhdGFcbiAgcHJpdmF0ZSBleGVjdXRlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBnZXQgZm9ybURhdGEoKTogYW55IHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudD8uZm9ybT8uZm9ybWlvLmRhdGE7XG4gICAgfVxuXG4gICAgb2soKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuY2xlYXJNZXNzYWdlcygpO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RDb21wb25lbnQgPT0gbnVsbCB8fCB0aGlzLnNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlID09IG51bGwgfHwgdGhpcy5leGVjdXRlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IG51bGw7XG4gICAgICAgICAgLy8gc2V0IGNvdXJzZXNcbiAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5zZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZDtcbiAgICAgICAgICAvLyBleGVjdXRlIGFkZFxuICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZXhlY3V0ZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5leGVjdXRlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2xvc2UgbW9kYWxcbiAgICAgICAgICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gZW5zdXJlIHRoYXQgbG9hZGluZyBpcyBoaWRkZW5cbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdTZXJ2aWNlLmhpZGVMb2FkaW5nKCk7XG4gICAgICAgICAgICAvLyBzZXQgbGFzdCBlcnJvclxuICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBlcnI7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UuaGlkZUxvYWRpbmcoKTtcbiAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlKCRldmVudDogYW55KSB7fVxuXG4gIGNsZWFyTWVzc2FnZXMoKSB7XG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICB9XG5cbiAgb25GaWx0ZXJDaGFuZ2UoZXZlbnQ6ICBhbnkpIHt9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgKm5nSWY9XCJtb2RhbFRpdGxlXCI+XG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj57e21vZGFsVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDU+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNhbmNlbFwiPlxuICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHB0LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJsYXN0RXJyb3JcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXIgY29sLTEyXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgIDxzcGFuIFt0cmFuc2xhdGVdPVwiJ0UnICsgKGxhc3RFcnJvci5zdGF0dXNDb2RlIHx8IDUwMCkgKyAnLnRpdGxlJ1wiPjwvc3Bhbj48YnI+XG4gICAgICAgIDxzbWFsbCAqbmdJZj1cImxhc3RFcnJvci5zdGF0dXNDb2RlID49IDBcIiBbdHJhbnNsYXRlXT1cIidFJyArIChsYXN0RXJyb3Iuc3RhdHVzQ29kZSB8fCA1MDApICsgJy5tZXNzYWdlJ1wiPjwvc21hbGw+XG4gICAgICAgIDxzbWFsbCAqbmdJZj1cImxhc3RFcnJvci5zdGF0dXNDb2RlID09IG51bGxcIj57e2xhc3RFcnJvci5tZXNzYWdlfX08L3NtYWxsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBkLW5vbmVcIiAqbmdJZj1cIml0ZW1zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxwIFt0cmFuc2xhdGVdPVwiJ1N0dWR5UHJvZ3JhbXMuQWRkQ291cnNlc0hlbHAnXCIgW3RyYW5zbGF0ZVBhcmFtc109XCJpdGVtc1wiID48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8dWwgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI0cHhcIiBjbGFzcz1cIm5hdiBuYXYtdGFicyBtYi0xXCIgaWQ9XCJteVRhYlwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiICpuZ0lmPVwidGFibGVDb25maWd1cmF0aW9uXCI+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYWN0aXZlXCIgaWQ9XCJjb3Vyc2VzLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNjb3Vyc2VzXCIgcm9sZT1cInRhYlwiIGFyaWEtY29udHJvbHM9XCJob21lXCIgYXJpYS1zZWxlY3RlZD1cInRydWVcIiBbdHJhbnNsYXRlXT1cIidBZGRJdGVtcy5TZWxlY3RJdGVtcydcIiA+PC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJmb3JtTmFtZVwiPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiAhKHNlbGVjdENvbXBvbmVudCAmJiBzZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZSAmJiBzZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZCAmJiBzZWxlY3RDb21wb25lbnQuYWR2YW5jZWRUYWJsZS5zZWxlY3RlZC5sZW5ndGgpIH1cIiBpZD1cImF0dHJpYnV0ZXMtdGFiXCIgZGF0YS10b2dnbGU9XCJ0YWJcIiBocmVmPVwiI2F0dHJpYnV0ZXNcIiByb2xlPVwidGFiXCIgYXJpYS1jb250cm9scz1cInByb2ZpbGVcIiBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIiBbdHJhbnNsYXRlXT1cIidBZGRJdGVtcy5FZGl0QXR0cmlidXRlcydcIj48L2E+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAqbmdJZj1cIm1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiICBpZD1cIm1lc3NhZ2VzLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNtZXNzYWdlc1wiIHJvbGU9XCJ0YWJcIiBhcmlhLWNvbnRyb2xzPVwicHJvZmlsZVwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiIFt0cmFuc2xhdGVdPVwiJ0FkZEl0ZW1zLk1lc3NhZ2VzJ1wiPjwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgYm9yZGVyLTBcIiBpZD1cIm15VGFiQ29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGZhZGUgc2hvdyBhY3RpdmVcIiBpZD1cImNvdXJzZXNcIiByb2xlPVwidGFicGFuZWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJob21lLXRhYlwiPlxuICAgICAgICAgICAgICA8YXBwLWFkdmFuY2VkLXRhYmxlLW1vZGFsICNzZWxlY3RDb21wb25lbnQgKGZpbHRlcik9XCJvbkZpbHRlckNoYW5nZSgkZXZlbnQpXCIgW3RhYmxlQ29uZmlnXT1cInRhYmxlQ29uZmlndXJhdGlvblwiPjwvYXBwLWFkdmFuY2VkLXRhYmxlLW1vZGFsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZVwiIGlkPVwiYXR0cmlidXRlc1wiIHJvbGU9XCJ0YWJwYW5lbFwiIGFyaWEtbGFiZWxsZWRieT1cInByb2ZpbGUtdGFiXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbnZpc2libGUnOihmb3JtTmFtZSA9PSBudWxsKX1cIj5cbjwhLS0gICAgICAgICAgICAgIDxhZHZhbmNlZC1mb3JtLWVkaXQgI2Zvcm1Db21wb25lbnQgW2Zvcm1OYW1lXT1cImZvcm1OYW1lXCIgPjwvYWR2YW5jZWQtZm9ybS1lZGl0Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZVwiIGlkPVwibWVzc2FnZXNcIiByb2xlPVwidGFicGFuZWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJwcm9maWxlLXRhYlwiXG4gICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW52aXNpYmxlJzoobWVzc2FnZXMgPT0gbnVsbCl9XCI+XG4gICAgICAgICAgICAgIDx1bCAqbmdJZj1cIm1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aD4wXCIgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAgc2lzLS1saXN0LWdyb3VwLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAtaXRlbV9sZ19jb2x1bW5cIiBbdHJhbnNsYXRlXT1cIidBZGRJdGVtcy5NZXNzYWdlcydcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNpcy0tbGlzdC1ncm91cCBzaXMtLWxpc3QtZ3JvdXAtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIGNsYXNzPVwic2lzLS1saXN0LWdyb3VwLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbGlzdC1jb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lzLS1saXN0LWdyb3VwLWl0ZW1fbGdfY29sdW1uXCI+e3sgbWVzc2FnZT8ubWVzc2FnZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VzICYmIG1lc3NhZ2VzLmxlbmd0aD4wXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJjbGVhck1lc3NhZ2VzKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWluZGlnbyBtdC0zXCI+XG4gICAgICAgICAgICAgICAgICB7eydDbGVhcicgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwib2tCdXR0b25EaXNhYmxlZCB8fCBsb2FkaW5nIHx8ICEoc2VsZWN0Q29tcG9uZW50ICYmIHNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlICYmIHNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlLnNlbGVjdGVkICYmIHNlbGVjdENvbXBvbmVudC5hZHZhbmNlZFRhYmxlLnNlbGVjdGVkLmxlbmd0aCkgXCIgKGNsaWNrKT1cIm9rKClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIm9rQnV0dG9uQ2xhc3NcIj5cbiAgICAgIHt7J09LJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY2FuY2VsQnV0dG9uRGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIiB0eXBlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiY2FuY2VsQnV0dG9uQ2xhc3NcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiPlxuICAgICAge3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -94,9 +94,9 @@ export class AdvancedAggregatorComponent {
|
|
|
94
94
|
this.eventHandler.emit(event);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
AdvancedAggregatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
98
|
-
AdvancedAggregatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
97
|
+
AdvancedAggregatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvancedAggregatorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AdvancedAggregatorService }, { token: i2.LoadingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
+
AdvancedAggregatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdvancedAggregatorComponent, selector: "app-advanced-aggregator", inputs: { config: "config", aggregators: "aggregators", postProcessors: "postProcessors", params: "params", selectedGroups$: ["selectedGroups", "selectedGroups$"], filters$: ["filters", "filters$"], searchExpression: "searchExpression" }, outputs: { eventHandler: "eventHandler" }, ngImport: i0, template: "<ng-container *ngIf=\"config && body\">\n <div class=\"w-100 text-center\" *ngIf=\"body && body.length === 0\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"groups.length === 0\">\n <div class=\"row mt-4\">\n <app-advanced-aggregator-list [body]=\"body\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\" class=\"col-12\">\n </app-advanced-aggregator-list>\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groups.length === 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [body]=\"group.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for the group -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"groups.length > 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor=\"let subgroup of group.value | groupBy: groups[1].name | keyvalue\" class=\"col-12 ml-4 pl-4\">\n <div class=\"row mt-4\">\n <h6 class=\"col-12 text-secondary\"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [body]=\"subgroup.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for each subgroup -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.AdvancedAggregatorListComponent, selector: "app-advanced-aggregator-list", inputs: ["config", "body"], outputs: ["clickEvent"] }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.GroupByPipe, name: "groupBy" }, { kind: "pipe", type: i7.AdvancedAggregatorPipe, name: "callAggregator" }, { kind: "pipe", type: i8.ParseTitlePipe, name: "aggregatorListTitle" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvancedAggregatorComponent, decorators: [{
|
|
100
100
|
type: Component,
|
|
101
101
|
args: [{ selector: 'app-advanced-aggregator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"config && body\">\n <div class=\"w-100 text-center\" *ngIf=\"body && body.length === 0\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"groups.length === 0\">\n <div class=\"row mt-4\">\n <app-advanced-aggregator-list [body]=\"body\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\" class=\"col-12\">\n </app-advanced-aggregator-list>\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ body | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groups.length === 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <app-advanced-aggregator-list [body]=\"group.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for the group -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ group.value | callAggregator: aggregators: aggregator.name }} </span>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"groups.length > 1\">\n <ng-container *ngFor=\"let group of body | groupBy: groups[0].name | keyvalue\">\n <div class=\"row mt-4\">\n <h4 class=\"col text-secondary\"> {{ groups[0].title | aggregatorListTitle: group.key }} </h4>\n <div *ngFor=\"let subgroup of group.value | groupBy: groups[1].name | keyvalue\" class=\"col-12 ml-4 pl-4\">\n <div class=\"row mt-4\">\n <h6 class=\"col-12 text-secondary\"> {{ groups[1].title | aggregatorListTitle: subgroup.key }} </h6>\n <app-advanced-aggregator-list [body]=\"subgroup.value\" [config]=\"config\" (clickEvent)=\"onActionEvent($event)\"\n class=\"col-12\">\n </app-advanced-aggregator-list>\n </div>\n\n <!-- Footer for each subgroup -->\n <div *ngIf=\"config.aggregators && config.aggregators.length > 0\"\n class=\"footer-text text-dark font-weight-normal text-right font-sm mt-3 mr-2 w-100\">\n <div *ngFor=\"let aggregator of config.aggregators\">\n <span *ngIf=\"aggregator.label\"> {{ aggregator.label | translate }} </span>:\n <span class=\"font-weight-bold\"> {{ subgroup.value | callAggregator: aggregators: aggregator.name }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>" }]
|
|
102
102
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AdvancedAggregatorService }, { type: i2.LoadingService }]; }, propDecorators: { config: [{
|
|
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
123
123
|
}], eventHandler: [{
|
|
124
124
|
type: Output
|
|
125
125
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtYWdncmVnYXRvci9hZHZhbmNlZC1hZ2dyZWdhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBYSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFLdEk7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sMkJBQTJCO0lBU3RDLElBQ1csTUFBTSxDQUFDLEtBQStCO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNXLFdBQVcsQ0FBQyxLQUFLO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUFLO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFXRCxZQUNVLGVBQWtDLEVBQ2xDLDBCQUFxRCxFQUNyRCxlQUErQjtRQUYvQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUEyQjtRQUNyRCxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUE3QmxDLFdBQU0sR0FBVSxFQUFFLENBQUM7UUF3QmhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU14QyxDQUFDO0lBRUwsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBbUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQs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QUFDLE1BQU07NktBWXBDLE1BQU07c0JBRGhCLEtBQUs7dUJBQUMsUUFBUTtnQkFNSixXQUFXO3NCQURyQixLQUFLO3VCQUFDLGFBQWE7Z0JBTVQsY0FBYztzQkFEeEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBS04sTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUVVLGVBQWU7c0JBQXZDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUVMLFFBQVE7c0JBQXpCLEtBQUs7dUJBQUMsU0FBUztnQkFDVyxnQkFBZ0I7c0JBQTFDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUVmLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZywgQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycyB9IGZyb20gJy4uLy4uL2FkdmFuY2VkLWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbi8qKlxuICpcbiAqIFxuICogIEBjbGFzc2Rlc2MgQW4gYWR2YW5jZWQgbGlzdCB3aXRoIHRoZSBjYXBhYmlsaXR5IG9mIGFnZ3JlZ2F0ZSBkYXRhIGJhc2VkIG9uIGNvbmZpZ3VyYWJsZSBmaWx0ZXJzXG4gKlxuICovXG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnPzogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnO1xuICBwcml2YXRlIF9hZ2dyZWdhdG9ycztcbiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3NvcnM7XG5cbiAgcHVibGljIGJvZHk7XG4gIHB1YmxpYyBncm91cHM6IGFueVtdID0gW107XG5cbiAgQElucHV0KCdjb25maWcnKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2FnZ3JlZ2F0b3JzJylcbiAgcHVibGljIHNldCBhZ2dyZWdhdG9ycyh2YWx1ZSkge1xuICAgIHRoaXMuX2FnZ3JlZ2F0b3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3Bvc3RQcm9jZXNzb3JzJylcbiAgcHVibGljIHNldCBwb3N0UHJvY2Vzc29ycyh2YWx1ZSkge1xuICAgIHRoaXMuX3Bvc3RQcm9jZXNzb3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpIHBhcmFtcztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlbGVjdGVkR3JvdXBzJykgc2VsZWN0ZWRHcm91cHMkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnZmlsdGVycycpIGZpbHRlcnMkO1xuICBASW5wdXQoJ3NlYXJjaEV4cHJlc3Npb24nKSBzZWFyY2hFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBldmVudEhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2U6IEFkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZyBhcyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb25maWc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0b3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9hZ2dyZWdhdG9ycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9zdFByb2Nlc3NvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc3RQcm9jZXNzb3JzO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmdyb3VwcyA9IGRhdGE7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVycyQuc3Vic2NyaWJlKGFzeW5jIChmaWx0ZXJzOiBBZHZhbmNlZEFnZ3JlZ2F0b3JGaWx0ZXJzKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmZldGNoKGZpbHRlcnMpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5maWx0ZXJzJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFJldHJpZXZlcyB0aGUgZGF0YVxuICAgKlxuICAgKi9cbiAgYXN5bmMgZmV0Y2goZmlsdGVyczogQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycykge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLl9sb2FkaW5nU2VydmljZS5zaG93TG9hZGluZygpO1xuICAgICAgbGV0IGRhdGEgPSBhd2FpdCB0aGlzLl9hZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlLmZldGNoRGF0YSh0aGlzLmNvbmZpZy5tb2RlbCxcbiAgICAgICAgdGhpcy5wYXJhbXMsXG4gICAgICAgIHRoaXMuY29uZmlnLnF1ZXJ5LFxuICAgICAgICBmaWx0ZXJzLmZpbHRlcnMsXG4gICAgICAgIHRoaXMuc2VhcmNoRXhwcmVzc2lvbixcbiAgICAgICAgZmlsdGVycy50ZXh0XG4gICAgICApO1xuXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICBpZiAodGhpcy5wb3N0UHJvY2Vzc29ycyAmJiBPYmplY3Qua2V5cyh0aGlzLnBvc3RQcm9jZXNzb3JzKS5sZW5ndGggPiAwICYmIHRoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzICYmIHRoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbmZpZy5wb3N0UHJvY2Vzc29ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLnBvc3RQcm9jZXNzb3JzW3RoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzW2ldLm5hbWVdKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYm9keSA9IHRoaXMuX2FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UuZm9ybWF0RGF0YSh0aGlzLmNvbmZpZywgZGF0YSk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UuaGlkZUxvYWRpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVHJpZ2dlcnMgdGhlIGV2ZW50IGhhbmRsZXIgZXZlbnRcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBkYXRhXG4gICAqXG4gICAqL1xuICBvbkFjdGlvbkV2ZW50KGV2ZW50KSB7XG4gICAgdGhpcy5ldmVudEhhbmRsZXIuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWcgJiYgYm9keVwiPlxuICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXJcIiAqbmdJZj1cImJvZHkgJiYgYm9keS5sZW5ndGggPT09IDBcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY2lyY2xlIGJnLWdyYXktMzAwIGJvcmRlci1ncmF5LTEwMFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJmb250LTN4bCB0ZXh0LWRhcmtcIiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuRW1wdHlUYWJsZVRpdGxlJ1wiPjwvaDQ+XG4gICAgICAgIDxwIGNsYXNzPVwiZm9udC1sZyB0ZXh0LWRhcmtcIiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuRW1wdHlUYWJsZU1lc3NhZ2UnXCI+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzLmxlbmd0aCA9PT0gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxuICAgICAgPGFwcC1hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QgW2JvZHldPVwiYm9keVwiIFtjb25maWddPVwiY29uZmlnXCIgKGNsaWNrRXZlbnQpPVwib25BY3Rpb25FdmVudCgkZXZlbnQpXCIgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgIDwvYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdD5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWdncmVnYXRvcnMgJiYgY29uZmlnLmFnZ3JlZ2F0b3JzLmxlbmd0aCA+IDBcIlxuICAgICAgICBjbGFzcz1cImZvb3Rlci10ZXh0IHRleHQtZGFyayBmb250LXdlaWdodC1ub3JtYWwgdGV4dC1yaWdodCBmb250LXNtIG10LTMgbXItMiB3LTEwMFwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhZ2dyZWdhdG9yIG9mIGNvbmZpZy5hZ2dyZWdhdG9yc1wiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWdncmVnYXRvci5sYWJlbFwiPiB7eyBhZ2dyZWdhdG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19IDwvc3Bhbj46XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXdlaWdodC1ib2xkXCI+IHt7IGJvZHkgfCBjYWxsQWdncmVnYXRvcjogYWdncmVnYXRvcnM6IGFnZ3JlZ2F0b3IubmFtZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHMubGVuZ3RoID09PSAxXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYm9keSB8IGdyb3VwQnk6IGdyb3Vwc1swXS5uYW1lIHwga2V5dmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJjb2wgdGV4dC1zZWNvbmRhcnlcIj4ge3sgZ3JvdXBzWzBdLnRpdGxlIHwgYWdncmVnYXRvckxpc3RUaXRsZTogZ3JvdXAua2V5IH19IDwvaDQ+XG4gICAgICAgIDxhcHAtYWR2YW5jZWQtYWdncmVnYXRvci1saXN0IFtib2R5XT1cImdyb3VwLnZhbHVlXCIgW2NvbmZpZ109XCJjb25maWdcIiAoY2xpY2tFdmVudCk9XCJvbkFjdGlvbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDwvYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEZvb3RlciBmb3IgdGhlIGdyb3VwIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy5hZ2dyZWdhdG9ycyAmJiBjb25maWcuYWdncmVnYXRvcnMubGVuZ3RoID4gMFwiXG4gICAgICAgIGNsYXNzPVwiZm9vdGVyLXRleHQgdGV4dC1kYXJrIGZvbnQtd2VpZ2h0LW5vcm1hbCB0ZXh0LXJpZ2h0IGZvbnQtc20gbXQtMyBtci0yIHctMTAwXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0b3Igb2YgY29uZmlnLmFnZ3JlZ2F0b3JzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJhZ2dyZWdhdG9yLmxhYmVsXCI+IHt7IGFnZ3JlZ2F0b3IubGFiZWwgfCB0cmFuc2xhdGUgfX0gPC9zcGFuPjpcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj4ge3sgZ3JvdXAudmFsdWUgfCBjYWxsQWdncmVnYXRvcjogYWdncmVnYXRvcnM6IGFnZ3JlZ2F0b3IubmFtZSB9fSA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzLmxlbmd0aCA+IDFcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBib2R5IHwgZ3JvdXBCeTogZ3JvdXBzWzBdLm5hbWUgfCBrZXl2YWx1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XG4gICAgICAgIDxoNCBjbGFzcz1cImNvbCB0ZXh0LXNlY29uZGFyeVwiPiB7eyBncm91cHNbMF0udGl0bGUgfCBhZ2dyZWdhdG9yTGlzdFRpdGxlOiBncm91cC5rZXkgfX0gPC9oND5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViZ3JvdXAgb2YgZ3JvdXAudmFsdWUgfCBncm91cEJ5OiBncm91cHNbMV0ubmFtZSB8IGtleXZhbHVlXCIgY2xhc3M9XCJjb2wtMTIgbWwtNCBwbC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XG4gICAgICAgICAgICA8aDYgY2xhc3M9XCJjb2wtMTIgdGV4dC1zZWNvbmRhcnlcIj4ge3sgZ3JvdXBzWzFdLnRpdGxlIHwgYWdncmVnYXRvckxpc3RUaXRsZTogc3ViZ3JvdXAua2V5IH19IDwvaDY+XG4gICAgICAgICAgICA8YXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdCBbYm9keV09XCJzdWJncm91cC52YWx1ZVwiIFtjb25maWddPVwiY29uZmlnXCIgKGNsaWNrRXZlbnQpPVwib25BY3Rpb25FdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDwvYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gRm9vdGVyIGZvciBlYWNoIHN1Ymdyb3VwIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWdncmVnYXRvcnMgJiYgY29uZmlnLmFnZ3JlZ2F0b3JzLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb290ZXItdGV4dCB0ZXh0LWRhcmsgZm9udC13ZWlnaHQtbm9ybWFsIHRleHQtcmlnaHQgZm9udC1zbSBtdC0zIG1yLTIgdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0b3Igb2YgY29uZmlnLmFnZ3JlZ2F0b3JzXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWdncmVnYXRvci5sYWJlbFwiPiB7eyBhZ2dyZWdhdG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19IDwvc3Bhbj46XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC13ZWlnaHQtYm9sZFwiPiB7eyBzdWJncm91cC52YWx1ZSB8IGNhbGxBZ2dyZWdhdG9yOiBhZ2dyZWdhdG9yczogYWdncmVnYXRvci5uYW1lIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtYWdncmVnYXRvci9hZHZhbmNlZC1hZ2dyZWdhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBYSx1QkFBdUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFLdEk7Ozs7O0dBS0c7QUFRSCxNQUFNLE9BQU8sMkJBQTJCO0lBU3RDLElBQ1csTUFBTSxDQUFDLEtBQStCO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNXLFdBQVcsQ0FBQyxLQUFLO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUFLO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFXRCxZQUNVLGVBQWtDLEVBQ2xDLDBCQUFxRCxFQUNyRCxlQUErQjtRQUYvQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUEyQjtRQUNyRCxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUE3QmxDLFdBQU0sR0FBVSxFQUFFLENBQUM7UUF3QmhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU14QyxDQUFDO0lBRUwsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBbUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQs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QUFDLE1BQU07NktBWXBDLE1BQU07c0JBRGhCLEtBQUs7dUJBQUMsUUFBUTtnQkFNSixXQUFXO3NCQURyQixLQUFLO3VCQUFDLGFBQWE7Z0JBTVQsY0FBYztzQkFEeEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBS04sTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUVVLGVBQWU7c0JBQXZDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUVMLFFBQVE7c0JBQXpCLEtBQUs7dUJBQUMsU0FBUztnQkFDVyxnQkFBZ0I7c0JBQTFDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUVmLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkQWdncmVnYXRvckNvbmZpZywgQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycyB9IGZyb20gJy4uLy4uL2FkdmFuY2VkLWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbi8qKlxuICpcbiAqIFxuICogIEBjbGFzc2Rlc2MgQW4gYWR2YW5jZWQgbGlzdCB3aXRoIHRoZSBjYXBhYmlsaXR5IG9mIGFnZ3JlZ2F0ZSBkYXRhIGJhc2VkIG9uIGNvbmZpZ3VyYWJsZSBmaWx0ZXJzXG4gKlxuICovXG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnPzogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnO1xuICBwcml2YXRlIF9hZ2dyZWdhdG9ycztcbiAgcHJpdmF0ZSBfcG9zdFByb2Nlc3NvcnM7XG5cbiAgcHVibGljIGJvZHk7XG4gIHB1YmxpYyBncm91cHM6IGFueVtdID0gW107XG5cbiAgQElucHV0KCdjb25maWcnKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogQWR2YW5jZWRBZ2dyZWdhdG9yQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2FnZ3JlZ2F0b3JzJylcbiAgcHVibGljIHNldCBhZ2dyZWdhdG9ycyh2YWx1ZSkge1xuICAgIHRoaXMuX2FnZ3JlZ2F0b3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3Bvc3RQcm9jZXNzb3JzJylcbiAgcHVibGljIHNldCBwb3N0UHJvY2Vzc29ycyh2YWx1ZSkge1xuICAgIHRoaXMuX3Bvc3RQcm9jZXNzb3JzID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpIHBhcmFtcztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlbGVjdGVkR3JvdXBzJykgc2VsZWN0ZWRHcm91cHMkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnZmlsdGVycycpIGZpbHRlcnMkO1xuICBASW5wdXQoJ3NlYXJjaEV4cHJlc3Npb24nKSBzZWFyY2hFeHByZXNzaW9uPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBldmVudEhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2U6IEFkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZyBhcyBBZHZhbmNlZEFnZ3JlZ2F0b3JDb25maWc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0b3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9hZ2dyZWdhdG9ycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9zdFByb2Nlc3NvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc3RQcm9jZXNzb3JzO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmdyb3VwcyA9IGRhdGE7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVycyQuc3Vic2NyaWJlKGFzeW5jIChmaWx0ZXJzOiBBZHZhbmNlZEFnZ3JlZ2F0b3JGaWx0ZXJzKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmZldGNoKGZpbHRlcnMpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5maWx0ZXJzJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFJldHJpZXZlcyB0aGUgZGF0YVxuICAgKlxuICAgKi9cbiAgYXN5bmMgZmV0Y2goZmlsdGVyczogQWR2YW5jZWRBZ2dyZWdhdG9yRmlsdGVycykge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLl9sb2FkaW5nU2VydmljZS5zaG93TG9hZGluZygpO1xuICAgICAgbGV0IGRhdGEgPSBhd2FpdCB0aGlzLl9hZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlLmZldGNoRGF0YSh0aGlzLmNvbmZpZy5tb2RlbCxcbiAgICAgICAgdGhpcy5wYXJhbXMsXG4gICAgICAgIHRoaXMuY29uZmlnLnF1ZXJ5LFxuICAgICAgICBmaWx0ZXJzLmZpbHRlcnMsXG4gICAgICAgIHRoaXMuc2VhcmNoRXhwcmVzc2lvbixcbiAgICAgICAgZmlsdGVycy50ZXh0XG4gICAgICApO1xuXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICBpZiAodGhpcy5wb3N0UHJvY2Vzc29ycyAmJiBPYmplY3Qua2V5cyh0aGlzLnBvc3RQcm9jZXNzb3JzKS5sZW5ndGggPiAwICYmIHRoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzICYmIHRoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbmZpZy5wb3N0UHJvY2Vzc29ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLnBvc3RQcm9jZXNzb3JzW3RoaXMuY29uZmlnLnBvc3RQcm9jZXNzb3JzW2ldLm5hbWVdKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYm9keSA9IHRoaXMuX2FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UuZm9ybWF0RGF0YSh0aGlzLmNvbmZpZywgZGF0YSk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZ1NlcnZpY2UuaGlkZUxvYWRpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogVHJpZ2dlcnMgdGhlIGV2ZW50IGhhbmRsZXIgZXZlbnRcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBkYXRhXG4gICAqXG4gICAqL1xuICBvbkFjdGlvbkV2ZW50KGV2ZW50KSB7XG4gICAgdGhpcy5ldmVudEhhbmRsZXIuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWcgJiYgYm9keVwiPlxuICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXJcIiAqbmdJZj1cImJvZHkgJiYgYm9keS5sZW5ndGggPT09IDBcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY2lyY2xlIGJnLWdyYXktMzAwIGJvcmRlci1ncmF5LTEwMFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJmb250LTN4bCB0ZXh0LWRhcmtcIiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuRW1wdHlUYWJsZVRpdGxlJ1wiPjwvaDQ+XG4gICAgICAgIDxwIGNsYXNzPVwiZm9udC1sZyB0ZXh0LWRhcmtcIiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuRW1wdHlUYWJsZU1lc3NhZ2UnXCI+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzLmxlbmd0aCA9PT0gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxuICAgICAgPGFwcC1hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QgW2JvZHldPVwiYm9keVwiIFtjb25maWddPVwiY29uZmlnXCIgKGNsaWNrRXZlbnQpPVwib25BY3Rpb25FdmVudCgkZXZlbnQpXCIgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgIDwvYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdD5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWdncmVnYXRvcnMgJiYgY29uZmlnLmFnZ3JlZ2F0b3JzLmxlbmd0aCA+IDBcIlxuICAgICAgICBjbGFzcz1cImZvb3Rlci10ZXh0IHRleHQtZGFyayBmb250LXdlaWdodC1ub3JtYWwgdGV4dC1yaWdodCBmb250LXNtIG10LTMgbXItMiB3LTEwMFwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhZ2dyZWdhdG9yIG9mIGNvbmZpZy5hZ2dyZWdhdG9yc1wiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWdncmVnYXRvci5sYWJlbFwiPiB7eyBhZ2dyZWdhdG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19IDwvc3Bhbj46XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXdlaWdodC1ib2xkXCI+IHt7IGJvZHkgfCBjYWxsQWdncmVnYXRvcjogYWdncmVnYXRvcnM6IGFnZ3JlZ2F0b3IubmFtZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHMubGVuZ3RoID09PSAxXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYm9keSB8IGdyb3VwQnk6IGdyb3Vwc1swXS5uYW1lIHwga2V5dmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJjb2wgdGV4dC1zZWNvbmRhcnlcIj4ge3sgZ3JvdXBzWzBdLnRpdGxlIHwgYWdncmVnYXRvckxpc3RUaXRsZTogZ3JvdXAua2V5IH19IDwvaDQ+XG4gICAgICAgIDxhcHAtYWR2YW5jZWQtYWdncmVnYXRvci1saXN0IFtib2R5XT1cImdyb3VwLnZhbHVlXCIgW2NvbmZpZ109XCJjb25maWdcIiAoY2xpY2tFdmVudCk9XCJvbkFjdGlvbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDwvYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEZvb3RlciBmb3IgdGhlIGdyb3VwIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy5hZ2dyZWdhdG9ycyAmJiBjb25maWcuYWdncmVnYXRvcnMubGVuZ3RoID4gMFwiXG4gICAgICAgIGNsYXNzPVwiZm9vdGVyLXRleHQgdGV4dC1kYXJrIGZvbnQtd2VpZ2h0LW5vcm1hbCB0ZXh0LXJpZ2h0IGZvbnQtc20gbXQtMyBtci0yIHctMTAwXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0b3Igb2YgY29uZmlnLmFnZ3JlZ2F0b3JzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJhZ2dyZWdhdG9yLmxhYmVsXCI+IHt7IGFnZ3JlZ2F0b3IubGFiZWwgfCB0cmFuc2xhdGUgfX0gPC9zcGFuPjpcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj4ge3sgZ3JvdXAudmFsdWUgfCBjYWxsQWdncmVnYXRvcjogYWdncmVnYXRvcnM6IGFnZ3JlZ2F0b3IubmFtZSB9fSA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzLmxlbmd0aCA+IDFcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBib2R5IHwgZ3JvdXBCeTogZ3JvdXBzWzBdLm5hbWUgfCBrZXl2YWx1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XG4gICAgICAgIDxoNCBjbGFzcz1cImNvbCB0ZXh0LXNlY29uZGFyeVwiPiB7eyBncm91cHNbMF0udGl0bGUgfCBhZ2dyZWdhdG9yTGlzdFRpdGxlOiBncm91cC5rZXkgfX0gPC9oND5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViZ3JvdXAgb2YgZ3JvdXAudmFsdWUgfCBncm91cEJ5OiBncm91cHNbMV0ubmFtZSB8IGtleXZhbHVlXCIgY2xhc3M9XCJjb2wtMTIgbWwtNCBwbC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XG4gICAgICAgICAgICA8aDYgY2xhc3M9XCJjb2wtMTIgdGV4dC1zZWNvbmRhcnlcIj4ge3sgZ3JvdXBzWzFdLnRpdGxlIHwgYWdncmVnYXRvckxpc3RUaXRsZTogc3ViZ3JvdXAua2V5IH19IDwvaDY+XG4gICAgICAgICAgICA8YXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdCBbYm9keV09XCJzdWJncm91cC52YWx1ZVwiIFtjb25maWddPVwiY29uZmlnXCIgKGNsaWNrRXZlbnQpPVwib25BY3Rpb25FdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgIDwvYXBwLWFkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gRm9vdGVyIGZvciBlYWNoIHN1Ymdyb3VwIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWdncmVnYXRvcnMgJiYgY29uZmlnLmFnZ3JlZ2F0b3JzLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb290ZXItdGV4dCB0ZXh0LWRhcmsgZm9udC13ZWlnaHQtbm9ybWFsIHRleHQtcmlnaHQgZm9udC1zbSBtdC0zIG1yLTIgdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0b3Igb2YgY29uZmlnLmFnZ3JlZ2F0b3JzXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWdncmVnYXRvci5sYWJlbFwiPiB7eyBhZ2dyZWdhdG9yLmxhYmVsIHwgdHJhbnNsYXRlIH19IDwvc3Bhbj46XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC13ZWlnaHQtYm9sZFwiPiB7eyBzdWJncm91cC52YWx1ZSB8IGNhbGxBZ2dyZWdhdG9yOiBhZ2dyZWdhdG9yczogYWdncmVnYXRvci5uYW1lIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
package/esm2020/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.mjs
CHANGED
|
@@ -38,9 +38,9 @@ export class AdvancedAggregatorListComponent {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
AdvancedAggregatorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
42
|
-
AdvancedAggregatorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
41
|
+
AdvancedAggregatorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvancedAggregatorListComponent, deps: [{ token: i1.TemplatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
AdvancedAggregatorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdvancedAggregatorListComponent, selector: "app-advanced-aggregator-list", inputs: { config: "config", body: "body" }, outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<div id=\"group-list\" class=\"flex-column\" *ngIf=\"config && config.columns\">\n <ul class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item text-wrap\">\n <div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"body && body.length > 0\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column\"></div>\n <div *ngFor=\"let column of config.columns; let i = index\" class=\"text-left\" [class]=\"config.columns[i].length\"\n [translate]=\"config.columns[i].type === 'action' ? '' : column.title\" [ngClass]=\"{\n 'd-none': config.columns[i].hidden\n }\"></div>\n </div>\n </li>\n </ul>\n\n <!-- The list of entries -->\n <ul class=\"sis--list-group sis--list-group-body\" *ngIf=\"body && body.length > 0\">\n <li class=\"sis--list-group-item text-wrap\" *ngFor=\"let entry of body | orderBy: config.orderBy\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <!-- The list of actions -->\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, entry)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i class=\"\" [class]=\"'fas text-indigo ml-2 ' + 'fa-' + action.icon\"></i>\n </button>\n <span class=\"px-0\">\n <i class=\"fa fa-fw\"> </i>\n </span>\n\n </div>\n <!-- The list of data -->\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && entry[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !entry[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length <= 3\n }\">\n {{entry[column.name] || '-'}}\n </span>\n\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!entry[column.name],\n 'fa-times text-danger': !!entry[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n <div *ngIf=\"entry && entry.subitems\">\n <div *ngFor=\"let subitem of entry.subitems\" class=\"d-flex justify-content-center align-items-center list-color\">\n <div *ngIf=\"config.actions && config.actions.length > 0\"\n class=\"sis--list-group-item_sm_column text-left pr-0\">\n <span class=\"px-0\">\n <i class=\"fa fa-fw\"> </i>\n </span>\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, subitem)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i *ngIf=\"action.type === 'edit'\" class=\"fas fa-edit text-indigo\"></i>\n </button>\n </div>\n <div class=\"text-left\"></div>\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && subitem[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !subitem[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length <= 3\n }\">\n {{subitem[column.name] || '-'}}\n </span>\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!subitem[column.name],\n 'fa-times text-danger': !!subitem[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"subitem[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.OrderByPipe, name: "orderBy" }] });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvancedAggregatorListComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{ selector: 'app-advanced-aggregator-list', template: "<div id=\"group-list\" class=\"flex-column\" *ngIf=\"config && config.columns\">\n <ul class=\"sis--list-group sis--list-group-header\">\n <li class=\"sis--list-group-item text-wrap\">\n <div class=\"d-flex justify-content-center align-items-center\" *ngIf=\"body && body.length > 0\">\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column\"></div>\n <div *ngFor=\"let column of config.columns; let i = index\" class=\"text-left\" [class]=\"config.columns[i].length\"\n [translate]=\"config.columns[i].type === 'action' ? '' : column.title\" [ngClass]=\"{\n 'd-none': config.columns[i].hidden\n }\"></div>\n </div>\n </li>\n </ul>\n\n <!-- The list of entries -->\n <ul class=\"sis--list-group sis--list-group-body\" *ngIf=\"body && body.length > 0\">\n <li class=\"sis--list-group-item text-wrap\" *ngFor=\"let entry of body | orderBy: config.orderBy\">\n <div class=\"d-flex justify-content-center align-items-center list-color\">\n <!-- The list of actions -->\n <div *ngIf=\"config.actions && config.actions.length > 0\" class=\"sis--list-group-item_sm_column text-left pr-0\">\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, entry)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i class=\"\" [class]=\"'fas text-indigo ml-2 ' + 'fa-' + action.icon\"></i>\n </button>\n <span class=\"px-0\">\n <i class=\"fa fa-fw\"> </i>\n </span>\n\n </div>\n <!-- The list of data -->\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && entry[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !entry[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && entry[column.name] && entry[column.name].length <= 3\n }\">\n {{entry[column.name] || '-'}}\n </span>\n\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!entry[column.name],\n 'fa-times text-danger': !!entry[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"entry[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n <div *ngIf=\"entry && entry.subitems\">\n <div *ngFor=\"let subitem of entry.subitems\" class=\"d-flex justify-content-center align-items-center list-color\">\n <div *ngIf=\"config.actions && config.actions.length > 0\"\n class=\"sis--list-group-item_sm_column text-left pr-0\">\n <span class=\"px-0\">\n <i class=\"fa fa-fw\"> </i>\n </span>\n <button *ngFor=\"let action of config.actions\" (click)=\"callCallback(action.identifier, subitem)\"\n [title]=\"(action.title ? action.title : '') | translate \" class=\"btn btn-default px-0\">\n <i *ngIf=\"action.type === 'edit'\" class=\"fas fa-edit text-indigo\"></i>\n </button>\n </div>\n <div class=\"text-left\"></div>\n <div *ngFor=\"let column of config.columns; let i=index\" [class]=\"config.columns[i].length\" class=\"text-left\"\n [ngClass]=\"{\n 'text-truncate': config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate,\n 'd-none': config.columns[i].hidden,\n 'd-md-block': !config.columns[i].hidden\n }\"\n [title]=\"config.columns[i].hasOwnProperty('truncate') && config.columns[i].truncate ? entry[column.name] : ''\">\n <span class=\"text-secondary\"\n *ngIf=\"!config.columns[i].hasOwnProperty('type') || (config.columns[i].hasOwnProperty('type') && config.columns[i].type === 'text')\"\n [ngClass]=\"{\n 'font-xs': config.columns[i].variant !== 'primary',\n 'text-body': config.columns[i].variant === 'primary',\n 'text-success': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && subitem[config.columns[i].condition],\n 'text-danger': config.columns[i].variant === 'redGreen' && config.columns[i].hasOwnProperty('condition') && !subitem[config.columns[i].condition],\n 'font-lg': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length > 3,\n 'font-2xl': config.columns[i].variant === 'redGreen' && subitem[column.name] && subitem[column.name].length <= 3\n }\">\n {{subitem[column.name] || '-'}}\n </span>\n <span *ngIf=\"config.columns[i].type === 'boolean'\">\n <i class=\"fa font-lg\" [ngClass]=\"{\n 'fa-check text-success': !!subitem[column.name],\n 'fa-times text-danger': !!subitem[column.name] === false && config.columns[i].variant !== 'checkOrDash'\n }\"></i>\n <span\n *ngIf=\"subitem[column.name].toString() !== config.columns[i].trueValue && config.columns[i].variant === 'checkOrDash'\"\n class=\"text-secondary font-xs\">-</span>\n </span>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>" }]
|
|
46
46
|
}], ctorParameters: function () { return [{ type: i1.TemplatePipe }]; }, propDecorators: { config: [{
|
|
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
50
50
|
}], clickEvent: [{
|
|
51
51
|
type: Output
|
|
52
52
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUcvRSxJQUFLLE9BTUo7QUFORCxXQUFLLE9BQU87SUFDVixvQkFBUSxDQUFBO0lBQ1Isb0JBQVEsQ0FBQTtJQUNSLG9CQUFRLENBQUE7SUFDUixvQkFBUSxDQUFBO0lBQ1Isb0JBQVEsQ0FBQTtBQUNWLENBQUMsRUFOSSxPQUFPLEtBQVAsT0FBTyxRQU1YO0FBUUQsTUFBTSxPQUFPLCtCQUErQjtJQWMxQyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBRmpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRUssQ0FBQztJQUVoRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBRSxDQUFDLENBQUM7Z0JBQzlILENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUU7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFlBQVksQ0FBQyxJQUFZLEVBQUUsSUFBUztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixJQUFJO1lBQ0osSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7OzRIQXBDVSwrQkFBK0I7Z0hBQS9CLCtCQUErQix1SkNqQjVDLDJuTkEwR007MkZEekZPLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFFRSw4QkFBOEI7bUdBUS9CLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlUGlwZX0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG5lbnVtIExlbmd0aHMge1xuICBYTD0gJ3hsJyxcbiAgTEc9ICdsZycsXG4gIE1EPSAnbWQnLFxuICBTTT0gJ3NtJyxcbiAgWFM9ICd4cydcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEFnZ3JlZ2F0b3JMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IHtBZHZhbmNlZEFnZ3JlZ2F0b3JDb25maWd9IGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gdXNlXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc6IGFueTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IHtBcnJheTxBcnJheTxhbnk+Pn0gYm9keSBUaGUgbGlzdCBvZiBkYXRhIGVudHJpZXMgdG8gc2hvdyBhcyB0aGUgbGlzdCBib2R5XG4gICAqL1xuICBASW5wdXQoKSBib2R5O1xuXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVBpcGUpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uZmlnLmNvbHVtbnMuZm9yRWFjaCh4ID0+IHtcbiAgICAgIHgubGVuZ3RoID0gT2JqZWN0LnZhbHVlcyhMZW5ndGhzKS5pbmNsdWRlcyh4Lmxlbmd0aCkgPyB0aGlzLl90ZW1wbGF0ZS50cmFuc2Zvcm0oYHNpcy0tbGlzdC1ncm91cC1pdGVtXyR7eC5sZW5ndGh9X2NvbHVtbmAsIHggKSA6XG4gICAgICAgICF4Lmxlbmd0aCA/ICdzaXMtLWxpc3QtZ3JvdXAtaXRlbV9zbV9jb2x1bW4nIDogeC5sZW5ndGggO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRyaWdnZXJzIHRoZSBvdXRwdXQgZXZlbnQgZW1pdHRlclxuICAgKlxuICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQgYXMgaXQncyBkZWNsYXJlZCBpbiB0aGUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gaXRlbSBUaGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgaXRlbVxuICAgKiB9XG4gICAqL1xuICBjYWxsQ2FsbGJhY2sodHlwZTogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICB0eXBlLFxuICAgICAgZGF0YVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwiZ3JvdXAtbGlzdFwiIGNsYXNzPVwiZmxleC1jb2x1bW5cIiAqbmdJZj1cImNvbmZpZyAmJiBjb25maWcuY29sdW1uc1wiPlxuICA8dWwgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAgc2lzLS1saXN0LWdyb3VwLWhlYWRlclwiPlxuICAgIDxsaSBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtIHRleHQtd3JhcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiYm9keSAmJiBib2R5Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy5hY3Rpb25zICYmIGNvbmZpZy5hY3Rpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtX3NtX2NvbHVtblwiPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnLmNvbHVtbnM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRleHQtbGVmdFwiIFtjbGFzc109XCJjb25maWcuY29sdW1uc1tpXS5sZW5ndGhcIlxuICAgICAgICAgIFt0cmFuc2xhdGVdPVwiY29uZmlnLmNvbHVtbnNbaV0udHlwZSA9PT0gJ2FjdGlvbicgPyAnJyA6IGNvbHVtbi50aXRsZVwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdkLW5vbmUnOiBjb25maWcuY29sdW1uc1tpXS5oaWRkZW5cbiAgICAgICAgICB9XCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuXG4gIDwhLS0gVGhlIGxpc3Qgb2YgZW50cmllcyAtLT5cbiAgPHVsIGNsYXNzPVwic2lzLS1saXN0LWdyb3VwIHNpcy0tbGlzdC1ncm91cC1ib2R5XCIgKm5nSWY9XCJib2R5ICYmIGJvZHkubGVuZ3RoID4gMFwiPlxuICAgIDxsaSBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtIHRleHQtd3JhcFwiICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBib2R5IHwgb3JkZXJCeTogY29uZmlnLm9yZGVyQnlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbGlzdC1jb2xvclwiPlxuICAgICAgICA8IS0tIFRoZSBsaXN0IG9mIGFjdGlvbnMgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWN0aW9ucyAmJiBjb25maWcuYWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAtaXRlbV9zbV9jb2x1bW4gdGV4dC1sZWZ0IHByLTBcIj5cbiAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnNcIiAoY2xpY2spPVwiY2FsbENhbGxiYWNrKGFjdGlvbi5pZGVudGlmaWVyLCBlbnRyeSlcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIihhY3Rpb24udGl0bGUgPyBhY3Rpb24udGl0bGUgOiAnJykgfCB0cmFuc2xhdGUgXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgcHgtMFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJcIiBbY2xhc3NdPVwiJ2ZhcyB0ZXh0LWluZGlnbyBtbC0yICcgKyAnZmEtJyArIGFjdGlvbi5pY29uXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHgtMFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1md1wiPiZuYnNwOzwvaT5cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gVGhlIGxpc3Qgb2YgZGF0YSAtLT5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5jb2x1bW5zOyBsZXQgaT1pbmRleFwiIFtjbGFzc109XCJjb25maWcuY29sdW1uc1tpXS5sZW5ndGhcIiBjbGFzcz1cInRleHQtbGVmdFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3RleHQtdHJ1bmNhdGUnOiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgndHJ1bmNhdGUnKSAmJiBjb25maWcuY29sdW1uc1tpXS50cnVuY2F0ZSxcbiAgICAgICAgICAgICdkLW5vbmUnOiBjb25maWcuY29sdW1uc1tpXS5oaWRkZW4sXG4gICAgICAgICAgICAnZC1tZC1ibG9jayc6ICFjb25maWcuY29sdW1uc1tpXS5oaWRkZW5cbiAgICAgICAgICB9XCJcbiAgICAgICAgICBbdGl0bGVdPVwiY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3RydW5jYXRlJykgJiYgY29uZmlnLmNvbHVtbnNbaV0udHJ1bmNhdGUgPyBlbnRyeVtjb2x1bW4ubmFtZV0gOiAnJ1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgKm5nSWY9XCIhY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSB8fCAoY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSAmJiAgY29uZmlnLmNvbHVtbnNbaV0udHlwZSA9PT0gJ3RleHQnKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdmb250LXhzJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCAhPT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAndGV4dC1ib2R5JzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAndGV4dC1zdWNjZXNzJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9uJykgJiYgZW50cnlbY29uZmlnLmNvbHVtbnNbaV0uY29uZGl0aW9uXSxcbiAgICAgICAgICAgICAgJ3RleHQtZGFuZ2VyJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9uJykgJiYgIWVudHJ5W2NvbmZpZy5jb2x1bW5zW2ldLmNvbmRpdGlvbl0sXG4gICAgICAgICAgICAgICdmb250LWxnJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBlbnRyeVtjb2x1bW4ubmFtZV0gJiYgZW50cnlbY29sdW1uLm5hbWVdLmxlbmd0aCA+IDMsXG4gICAgICAgICAgICAgICdmb250LTJ4bCc6IGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgPT09ICdyZWRHcmVlbicgJiYgZW50cnlbY29sdW1uLm5hbWVdICYmIGVudHJ5W2NvbHVtbi5uYW1lXS5sZW5ndGggPD0gM1xuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAge3tlbnRyeVtjb2x1bW4ubmFtZV0gfHwgJy0nfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5jb2x1bW5zW2ldLnR5cGUgPT09ICdib29sZWFuJ1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmb250LWxnXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnZmEtY2hlY2sgdGV4dC1zdWNjZXNzJzogISFlbnRyeVtjb2x1bW4ubmFtZV0sXG4gICAgICAgICAgICAgICAgJ2ZhLXRpbWVzIHRleHQtZGFuZ2VyJzogISFlbnRyeVtjb2x1bW4ubmFtZV0gPT09IGZhbHNlICYmIGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgIT09ICdjaGVja09yRGFzaCdcbiAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW50cnlbY29sdW1uLm5hbWVdLnRvU3RyaW5nKCkgIT09IGNvbmZpZy5jb2x1bW5zW2ldLnRydWVWYWx1ZSAmJiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAnY2hlY2tPckRhc2gnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBmb250LXhzXCI+LTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZW50cnkgJiYgZW50cnkuc3ViaXRlbXNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViaXRlbSBvZiBlbnRyeS5zdWJpdGVtc1wiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGxpc3QtY29sb3JcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmFjdGlvbnMgJiYgY29uZmlnLmFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtX3NtX2NvbHVtbiB0ZXh0LWxlZnQgcHItMFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJweC0wXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZndcIj4mbmJzcDs8L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnNcIiAoY2xpY2spPVwiY2FsbENhbGxiYWNrKGFjdGlvbi5pZGVudGlmaWVyLCBzdWJpdGVtKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCIoYWN0aW9uLnRpdGxlID8gYWN0aW9uLnRpdGxlIDogJycpIHwgdHJhbnNsYXRlIFwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHB4LTBcIj5cbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gJ2VkaXQnXCIgY2xhc3M9XCJmYXMgZmEtZWRpdCB0ZXh0LWluZGlnb1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnLmNvbHVtbnM7IGxldCBpPWluZGV4XCIgW2NsYXNzXT1cImNvbmZpZy5jb2x1bW5zW2ldLmxlbmd0aFwiIGNsYXNzPVwidGV4dC1sZWZ0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3RleHQtdHJ1bmNhdGUnOiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgndHJ1bmNhdGUnKSAmJiBjb25maWcuY29sdW1uc1tpXS50cnVuY2F0ZSxcbiAgICAgICAgICAgICAgJ2Qtbm9uZSc6IGNvbmZpZy5jb2x1bW5zW2ldLmhpZGRlbixcbiAgICAgICAgICAgICAgJ2QtbWQtYmxvY2snOiAhY29uZmlnLmNvbHVtbnNbaV0uaGlkZGVuXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgndHJ1bmNhdGUnKSAmJiBjb25maWcuY29sdW1uc1tpXS50cnVuY2F0ZSA/IGVudHJ5W2NvbHVtbi5uYW1lXSA6ICcnXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSB8fCAoY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSAmJiAgY29uZmlnLmNvbHVtbnNbaV0udHlwZSA9PT0gJ3RleHQnKVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnZm9udC14cyc6IGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgIT09ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAndGV4dC1ib2R5JzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICd0ZXh0LXN1Y2Nlc3MnOiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAncmVkR3JlZW4nICYmIGNvbmZpZy5jb2x1bW5zW2ldLmhhc093blByb3BlcnR5KCdjb25kaXRpb24nKSAmJiBzdWJpdGVtW2NvbmZpZy5jb2x1bW5zW2ldLmNvbmRpdGlvbl0sXG4gICAgICAgICAgICAgICAgJ3RleHQtZGFuZ2VyJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9uJykgJiYgIXN1Yml0ZW1bY29uZmlnLmNvbHVtbnNbaV0uY29uZGl0aW9uXSxcbiAgICAgICAgICAgICAgICAnZm9udC1sZyc6IGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgPT09ICdyZWRHcmVlbicgJiYgc3ViaXRlbVtjb2x1bW4ubmFtZV0gJiYgc3ViaXRlbVtjb2x1bW4ubmFtZV0ubGVuZ3RoID4gMyxcbiAgICAgICAgICAgICAgICAnZm9udC0yeGwnOiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAncmVkR3JlZW4nICYmIHN1Yml0ZW1bY29sdW1uLm5hbWVdICYmIHN1Yml0ZW1bY29sdW1uLm5hbWVdLmxlbmd0aCA8PSAzXG4gICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAge3tzdWJpdGVtW2NvbHVtbi5uYW1lXSB8fCAnLSd9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcuY29sdW1uc1tpXS50eXBlID09PSAnYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmb250LWxnXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdmYS1jaGVjayB0ZXh0LXN1Y2Nlc3MnOiAhIXN1Yml0ZW1bY29sdW1uLm5hbWVdLFxuICAgICAgICAgICAgICAgICdmYS10aW1lcyB0ZXh0LWRhbmdlcic6ICEhc3ViaXRlbVtjb2x1bW4ubmFtZV0gPT09IGZhbHNlICYmIGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgIT09ICdjaGVja09yRGFzaCdcbiAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cInN1Yml0ZW1bY29sdW1uLm5hbWVdLnRvU3RyaW5nKCkgIT09IGNvbmZpZy5jb2x1bW5zW2ldLnRydWVWYWx1ZSAmJiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAnY2hlY2tPckRhc2gnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IGZvbnQteHNcIj4tPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj4iXX0=
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUcvRSxJQUFLLE9BTUo7QUFORCxXQUFLLE9BQU87SUFDVixvQkFBUSxDQUFBO0lBQ1Isb0JBQVEsQ0FBQTtJQUNSLG9CQUFRLENBQUE7SUFDUixvQkFBUSxDQUFBO0lBQ1Isb0JBQVEsQ0FBQTtBQUNWLENBQUMsRUFOSSxPQUFPLEtBQVAsT0FBTyxRQU1YO0FBUUQsTUFBTSxPQUFPLCtCQUErQjtJQWMxQyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBRmpDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRUssQ0FBQztJQUVoRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLE1BQU0sU0FBUyxFQUFFLENBQUMsQ0FBRSxDQUFDLENBQUM7Z0JBQzlILENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUU7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFlBQVksQ0FBQyxJQUFZLEVBQUUsSUFBUztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixJQUFJO1lBQ0osSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7OzZIQXBDVSwrQkFBK0I7aUhBQS9CLCtCQUErQix1SkNqQjVDLDJuTkEwR007NEZEekZPLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFFRSw4QkFBOEI7bUdBUS9CLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlUGlwZX0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG5lbnVtIExlbmd0aHMge1xuICBYTD0gJ3hsJyxcbiAgTEc9ICdsZycsXG4gIE1EPSAnbWQnLFxuICBTTT0gJ3NtJyxcbiAgWFM9ICd4cydcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEFnZ3JlZ2F0b3JMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IHtBZHZhbmNlZEFnZ3JlZ2F0b3JDb25maWd9IGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gdXNlXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc6IGFueTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IHtBcnJheTxBcnJheTxhbnk+Pn0gYm9keSBUaGUgbGlzdCBvZiBkYXRhIGVudHJpZXMgdG8gc2hvdyBhcyB0aGUgbGlzdCBib2R5XG4gICAqL1xuICBASW5wdXQoKSBib2R5O1xuXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVBpcGUpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uZmlnLmNvbHVtbnMuZm9yRWFjaCh4ID0+IHtcbiAgICAgIHgubGVuZ3RoID0gT2JqZWN0LnZhbHVlcyhMZW5ndGhzKS5pbmNsdWRlcyh4Lmxlbmd0aCkgPyB0aGlzLl90ZW1wbGF0ZS50cmFuc2Zvcm0oYHNpcy0tbGlzdC1ncm91cC1pdGVtXyR7eC5sZW5ndGh9X2NvbHVtbmAsIHggKSA6XG4gICAgICAgICF4Lmxlbmd0aCA/ICdzaXMtLWxpc3QtZ3JvdXAtaXRlbV9zbV9jb2x1bW4nIDogeC5sZW5ndGggO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRyaWdnZXJzIHRoZSBvdXRwdXQgZXZlbnQgZW1pdHRlclxuICAgKlxuICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQgYXMgaXQncyBkZWNsYXJlZCBpbiB0aGUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gaXRlbSBUaGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgaXRlbVxuICAgKiB9XG4gICAqL1xuICBjYWxsQ2FsbGJhY2sodHlwZTogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7XG4gICAgICB0eXBlLFxuICAgICAgZGF0YVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwiZ3JvdXAtbGlzdFwiIGNsYXNzPVwiZmxleC1jb2x1bW5cIiAqbmdJZj1cImNvbmZpZyAmJiBjb25maWcuY29sdW1uc1wiPlxuICA8dWwgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAgc2lzLS1saXN0LWdyb3VwLWhlYWRlclwiPlxuICAgIDxsaSBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtIHRleHQtd3JhcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiYm9keSAmJiBib2R5Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZy5hY3Rpb25zICYmIGNvbmZpZy5hY3Rpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtX3NtX2NvbHVtblwiPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnLmNvbHVtbnM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRleHQtbGVmdFwiIFtjbGFzc109XCJjb25maWcuY29sdW1uc1tpXS5sZW5ndGhcIlxuICAgICAgICAgIFt0cmFuc2xhdGVdPVwiY29uZmlnLmNvbHVtbnNbaV0udHlwZSA9PT0gJ2FjdGlvbicgPyAnJyA6IGNvbHVtbi50aXRsZVwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdkLW5vbmUnOiBjb25maWcuY29sdW1uc1tpXS5oaWRkZW5cbiAgICAgICAgICB9XCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuXG4gIDwhLS0gVGhlIGxpc3Qgb2YgZW50cmllcyAtLT5cbiAgPHVsIGNsYXNzPVwic2lzLS1saXN0LWdyb3VwIHNpcy0tbGlzdC1ncm91cC1ib2R5XCIgKm5nSWY9XCJib2R5ICYmIGJvZHkubGVuZ3RoID4gMFwiPlxuICAgIDxsaSBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtIHRleHQtd3JhcFwiICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBib2R5IHwgb3JkZXJCeTogY29uZmlnLm9yZGVyQnlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbGlzdC1jb2xvclwiPlxuICAgICAgICA8IS0tIFRoZSBsaXN0IG9mIGFjdGlvbnMgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWcuYWN0aW9ucyAmJiBjb25maWcuYWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJzaXMtLWxpc3QtZ3JvdXAtaXRlbV9zbV9jb2x1bW4gdGV4dC1sZWZ0IHByLTBcIj5cbiAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnNcIiAoY2xpY2spPVwiY2FsbENhbGxiYWNrKGFjdGlvbi5pZGVudGlmaWVyLCBlbnRyeSlcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIihhY3Rpb24udGl0bGUgPyBhY3Rpb24udGl0bGUgOiAnJykgfCB0cmFuc2xhdGUgXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgcHgtMFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJcIiBbY2xhc3NdPVwiJ2ZhcyB0ZXh0LWluZGlnbyBtbC0yICcgKyAnZmEtJyArIGFjdGlvbi5pY29uXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHgtMFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1md1wiPiZuYnNwOzwvaT5cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gVGhlIGxpc3Qgb2YgZGF0YSAtLT5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5jb2x1bW5zOyBsZXQgaT1pbmRleFwiIFtjbGFzc109XCJjb25maWcuY29sdW1uc1tpXS5sZW5ndGhcIiBjbGFzcz1cInRleHQtbGVmdFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3RleHQtdHJ1bmNhdGUnOiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgndHJ1bmNhdGUnKSAmJiBjb25maWcuY29sdW1uc1tpXS50cnVuY2F0ZSxcbiAgICAgICAgICAgICdkLW5vbmUnOiBjb25maWcuY29sdW1uc1tpXS5oaWRkZW4sXG4gICAgICAgICAgICAnZC1tZC1ibG9jayc6ICFjb25maWcuY29sdW1uc1tpXS5oaWRkZW5cbiAgICAgICAgICB9XCJcbiAgICAgICAgICBbdGl0bGVdPVwiY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3RydW5jYXRlJykgJiYgY29uZmlnLmNvbHVtbnNbaV0udHJ1bmNhdGUgPyBlbnRyeVtjb2x1bW4ubmFtZV0gOiAnJ1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgKm5nSWY9XCIhY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSB8fCAoY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSAmJiAgY29uZmlnLmNvbHVtbnNbaV0udHlwZSA9PT0gJ3RleHQnKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdmb250LXhzJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCAhPT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAndGV4dC1ib2R5JzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAndGV4dC1zdWNjZXNzJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9uJykgJiYgZW50cnlbY29uZmlnLmNvbHVtbnNbaV0uY29uZGl0aW9uXSxcbiAgICAgICAgICAgICAgJ3RleHQtZGFuZ2VyJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9uJykgJiYgIWVudHJ5W2NvbmZpZy5jb2x1bW5zW2ldLmNvbmRpdGlvbl0sXG4gICAgICAgICAgICAgICdmb250LWxnJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBlbnRyeVtjb2x1bW4ubmFtZV0gJiYgZW50cnlbY29sdW1uLm5hbWVdLmxlbmd0aCA+IDMsXG4gICAgICAgICAgICAgICdmb250LTJ4bCc6IGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgPT09ICdyZWRHcmVlbicgJiYgZW50cnlbY29sdW1uLm5hbWVdICYmIGVudHJ5W2NvbHVtbi5uYW1lXS5sZW5ndGggPD0gM1xuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAge3tlbnRyeVtjb2x1bW4ubmFtZV0gfHwgJy0nfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5jb2x1bW5zW2ldLnR5cGUgPT09ICdib29sZWFuJ1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmb250LWxnXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnZmEtY2hlY2sgdGV4dC1zdWNjZXNzJzogISFlbnRyeVtjb2x1bW4ubmFtZV0sXG4gICAgICAgICAgICAgICAgJ2ZhLXRpbWVzIHRleHQtZGFuZ2VyJzogISFlbnRyeVtjb2x1bW4ubmFtZV0gPT09IGZhbHNlICYmIGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgIT09ICdjaGVja09yRGFzaCdcbiAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW50cnlbY29sdW1uLm5hbWVdLnRvU3RyaW5nKCkgIT09IGNvbmZpZy5jb2x1bW5zW2ldLnRydWVWYWx1ZSAmJiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAnY2hlY2tPckRhc2gnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBmb250LXhzXCI+LTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZW50cnkgJiYgZW50cnkuc3ViaXRlbXNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViaXRlbSBvZiBlbnRyeS5zdWJpdGVtc1wiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGxpc3QtY29sb3JcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmFjdGlvbnMgJiYgY29uZmlnLmFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICBjbGFzcz1cInNpcy0tbGlzdC1ncm91cC1pdGVtX3NtX2NvbHVtbiB0ZXh0LWxlZnQgcHItMFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJweC0wXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZndcIj4mbmJzcDs8L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29uZmlnLmFjdGlvbnNcIiAoY2xpY2spPVwiY2FsbENhbGxiYWNrKGFjdGlvbi5pZGVudGlmaWVyLCBzdWJpdGVtKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCIoYWN0aW9uLnRpdGxlID8gYWN0aW9uLnRpdGxlIDogJycpIHwgdHJhbnNsYXRlIFwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IHB4LTBcIj5cbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gJ2VkaXQnXCIgY2xhc3M9XCJmYXMgZmEtZWRpdCB0ZXh0LWluZGlnb1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnLmNvbHVtbnM7IGxldCBpPWluZGV4XCIgW2NsYXNzXT1cImNvbmZpZy5jb2x1bW5zW2ldLmxlbmd0aFwiIGNsYXNzPVwidGV4dC1sZWZ0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3RleHQtdHJ1bmNhdGUnOiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgndHJ1bmNhdGUnKSAmJiBjb25maWcuY29sdW1uc1tpXS50cnVuY2F0ZSxcbiAgICAgICAgICAgICAgJ2Qtbm9uZSc6IGNvbmZpZy5jb2x1bW5zW2ldLmhpZGRlbixcbiAgICAgICAgICAgICAgJ2QtbWQtYmxvY2snOiAhY29uZmlnLmNvbHVtbnNbaV0uaGlkZGVuXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgndHJ1bmNhdGUnKSAmJiBjb25maWcuY29sdW1uc1tpXS50cnVuY2F0ZSA/IGVudHJ5W2NvbHVtbi5uYW1lXSA6ICcnXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSB8fCAoY29uZmlnLmNvbHVtbnNbaV0uaGFzT3duUHJvcGVydHkoJ3R5cGUnKSAmJiAgY29uZmlnLmNvbHVtbnNbaV0udHlwZSA9PT0gJ3RleHQnKVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnZm9udC14cyc6IGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgIT09ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAndGV4dC1ib2R5JzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICd0ZXh0LXN1Y2Nlc3MnOiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAncmVkR3JlZW4nICYmIGNvbmZpZy5jb2x1bW5zW2ldLmhhc093blByb3BlcnR5KCdjb25kaXRpb24nKSAmJiBzdWJpdGVtW2NvbmZpZy5jb2x1bW5zW2ldLmNvbmRpdGlvbl0sXG4gICAgICAgICAgICAgICAgJ3RleHQtZGFuZ2VyJzogY29uZmlnLmNvbHVtbnNbaV0udmFyaWFudCA9PT0gJ3JlZEdyZWVuJyAmJiBjb25maWcuY29sdW1uc1tpXS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9uJykgJiYgIXN1Yml0ZW1bY29uZmlnLmNvbHVtbnNbaV0uY29uZGl0aW9uXSxcbiAgICAgICAgICAgICAgICAnZm9udC1sZyc6IGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgPT09ICdyZWRHcmVlbicgJiYgc3ViaXRlbVtjb2x1bW4ubmFtZV0gJiYgc3ViaXRlbVtjb2x1bW4ubmFtZV0ubGVuZ3RoID4gMyxcbiAgICAgICAgICAgICAgICAnZm9udC0yeGwnOiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAncmVkR3JlZW4nICYmIHN1Yml0ZW1bY29sdW1uLm5hbWVdICYmIHN1Yml0ZW1bY29sdW1uLm5hbWVdLmxlbmd0aCA8PSAzXG4gICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAge3tzdWJpdGVtW2NvbHVtbi5uYW1lXSB8fCAnLSd9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcuY29sdW1uc1tpXS50eXBlID09PSAnYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmb250LWxnXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdmYS1jaGVjayB0ZXh0LXN1Y2Nlc3MnOiAhIXN1Yml0ZW1bY29sdW1uLm5hbWVdLFxuICAgICAgICAgICAgICAgICdmYS10aW1lcyB0ZXh0LWRhbmdlcic6ICEhc3ViaXRlbVtjb2x1bW4ubmFtZV0gPT09IGZhbHNlICYmIGNvbmZpZy5jb2x1bW5zW2ldLnZhcmlhbnQgIT09ICdjaGVja09yRGFzaCdcbiAgICAgICAgICAgICAgfVwiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cInN1Yml0ZW1bY29sdW1uLm5hbWVdLnRvU3RyaW5nKCkgIT09IGNvbmZpZy5jb2x1bW5zW2ldLnRydWVWYWx1ZSAmJiBjb25maWcuY29sdW1uc1tpXS52YXJpYW50ID09PSAnY2hlY2tPckRhc2gnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IGZvbnQteHNcIj4tPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj4iXX0=
|
|
@@ -151,9 +151,9 @@ export class AdvancedListComponent {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
AdvancedListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
155
|
-
AdvancedListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
154
|
+
AdvancedListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvancedListComponent, deps: [{ token: i1.AngularDataContext }, { token: i2.TranslateService }, { token: i3.ActivatedRoute }, { token: i4.ErrorService }, { token: i4.ToastService }, { token: i4.ModalService }, { token: i4.UserActivityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
+
AdvancedListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdvancedListComponent, selector: "app-advanced-list", inputs: { entitySet: "entitySet", category: "category", description: "description", longDescription: "longDescription", tableConfiguration: "tableConfiguration", searchConfiguration: "searchConfiguration", allowSaveOption: "allowSaveOption" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <p *ngIf=\"longDescription\">{{longDescription}}</p>\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 && 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=\"table && 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 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", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgVarDirective, selector: "[ngVar]", inputs: ["ngVar"], exportAs: ["ngVar"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.RouterModalComponent, selector: "router-modal", inputs: ["modalTitle", "modalClass", "okButtonText", "okButtonClass", "cancelButtonText", "cancelButtonClass", "yesButtonText", "yesButtonClass", "noButtonText", "noButtonClass", "abortButtonText", "abortButtonClass", "retryButtonText", "retryButtonClass", "ignoreButtonText", "ignoreButtonClass", "previousButtonText", "previousButtonClass", "nextButtonText", "nextButtonClass"] }, { kind: "component", type: i7.AdvancedTableComponent, selector: "app-advanced-table", inputs: ["height", "showActions", "autoLoad", "reload", "scrollable", "serverSide", "lengthMenu", "paging", "pageLength", "columnOrdering", "stateSave", "stateLoadCallback", "stateSaveCallback", "scrollY", "scrollX", "selectable", "multipleSelect", "customSelect", "selected", "configSrc", "config", "showFooter", "showHeader", "showPaging", "query"], outputs: ["load", "init", "select", "draw", "page", "order", "scroll", "selectedItems", "loading"] }, { kind: "component", type: i8.AdvancedTableSearchComponent, selector: "app-advanced-table-search", inputs: ["table", "collapsed", "allowSave", "showMore", "mergeQueryParams"], outputs: ["viewChange", "listChange"] }, { kind: "component", type: i9.AdvancedSearchFormComponent, selector: "app-advanced-search-form", inputs: ["form", "formSrc"], outputs: ["refreshForm", "loading"] }] });
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdvancedListComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
158
158
|
args: [{ selector: 'app-advanced-list', template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <p *ngIf=\"longDescription\">{{longDescription}}</p>\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 && 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=\"table && 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 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" }]
|
|
159
159
|
}], ctorParameters: function () { return [{ type: i1.AngularDataContext }, { type: i2.TranslateService }, { type: i3.ActivatedRoute }, { type: i4.ErrorService }, { type: i4.ToastService }, { type: i4.ModalService }, { type: i4.UserActivityService }]; }, propDecorators: { entitySet: [{
|
|
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
181
181
|
type: Input,
|
|
182
182
|
args: ['allowSaveOption']
|
|
183
183
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtbGlzdC9hZHZhbmNlZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUs5Riw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFtRCwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pJLE9BQU8sRUFBZ0IsY0FBYyxFQUFxQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEMsWUFBb0IsUUFBNEIsRUFDdEMsaUJBQW1DLEVBQ25DLGVBQStCLEVBQy9CLGFBQTJCLEVBQzNCLGFBQTJCLEVBQzNCLGFBQTJCLEVBQzNCLG9CQUF5QztRQU4vQixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUN0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBUnpCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO0lBUzNDLENBQUM7SUFDUCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDbkIsSUFBSTtZQUNGLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ3RCLE9BQU87YUFDUjtZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDekIsZUFBZTtZQUNmLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuRCxpQkFBaUI7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRSxTQUFTLENBQUMsRUFBRTtnQkFDdkUsaUJBQWlCO2dCQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQyxFQUFFO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztnQkFDSCx5QkFBeUI7Z0JBQ3pCLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtvQkFDckIsb0JBQW9CO29CQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksYUFBYSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQzFGO2dCQUNELGtCQUFrQjtnQkFDbEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQy9DLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7b0JBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxhQUFhLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDM0Y7Z0JBQ0QsSUFBSSxTQUFTLENBQUMsbUJBQW1CLEVBQUU7b0JBQ2pDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsRUFBRTt3QkFDcEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDO3FCQUNoRTtvQkFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDO2lCQUMxRDtnQkFDRCxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDeEQ7Z0JBQ0QsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFO29CQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUMxRTtnQkFDRCxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQ2xGO2dCQUNELElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDcEU7Z0JBQ0QsOEJBQThCO2dCQUM5QixNQUFNLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzVGLDJCQUEyQjtnQkFDM0IsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRSxHQUFHLENBQUMsRUFBRTtvQkFDdEQsT0FBTyxHQUFHLENBQUMsU0FBUyxLQUFLLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxZQUFZLEtBQUssY0FBYyxDQUFDO2dCQUNwRixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLE1BQU0sRUFBRTtvQkFDVixNQUFNLEdBQUcsR0FBa0IsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUMxRCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxNQUFNLENBQUMsWUFBWSxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7aUJBQ2xFO2dCQUNELHlEQUF5RDtnQkFDekQsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO29CQUMzQixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7aUJBQ3RCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztnQkFDekIsYUFBYTtnQkFDYixLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQiwwREFBMEQ7Z0JBQzFELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzNFLElBQUksUUFBUSxJQUFJLFFBQVEsS0FBSyxRQUFRLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsV0FBcUIsRUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUM5RCxDQUFDO3dCQUNGLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ25CO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILDRCQUE0QjtnQkFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztvQkFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFrQjtvQkFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFxQjtvQkFDdkMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLFdBQVcsRUFBRSxJQUFJLElBQUk7aUJBQ3RCLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFHRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBNkI7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDcEQsc0JBQXNCO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEVBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsRUFDM0QsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO29CQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUN6RixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQzs0QkFDbEQsOEJBQThCLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDLEVBQy9ELEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUM3QixDQUFDO3dCQUNGLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7NEJBQ2hDLFlBQVksRUFBRSxHQUFHO3lCQUNsQixDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs7a0hBbEtVLHFCQUFxQjtzR0FBckIscUJBQXFCLDZZQ2pCbEMsK2xFQThDQTsyRkQ3QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUVFLG1CQUFtQjt3UkFVVCxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ0MsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNLLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDTSxlQUFlO3NCQUF4QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDSyxrQkFBa0I7c0JBQTlDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNHLG1CQUFtQjtzQkFBaEQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ1IsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNRLGVBQWU7c0JBQXhDLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgT25EZXN0cm95LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckRhdGFDb250ZXh0IH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBBZHZhbmNlZFRhYmxlQ29tcG9uZW50LCBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCwgQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlLCBESUFMT0dfQlVUVE9OUywgTW9kYWxTZXJ2aWNlLCBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuaW1wb3J0IHsgUmVzcG9uc2VFcnJvciB9IGZyb20gJ0B0aGVtb3N0L2NsaWVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWR2YW5jZWQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyByZWNvcmRzVG90YWw/OiBudW1iZXI7XG4gIHB1YmxpYyBjb25maWc/OiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVsb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2VudGl0eVNldCcpIGVudGl0eVNldD86IHN0cmluZztcbiAgQElucHV0KCdjYXRlZ29yeScpIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgnbG9uZ0Rlc2NyaXB0aW9uJykgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ3RhYmxlQ29uZmlndXJhdGlvbicpIHRhYmxlQ29uZmlndXJhdGlvbjogYW55O1xuICBASW5wdXQoJ3NlYXJjaENvbmZpZ3VyYXRpb24nKSBzZWFyY2hDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU/OiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBASW5wdXQoJ2FsbG93U2F2ZU9wdGlvbicpIGFsbG93U2F2ZU9wdGlvbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3VzZXJBY3Rpdml0eVNlcnZpY2U6IFVzZXJBY3Rpdml0eVNlcnZpY2VcbiAgICApIHsgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50YWJsZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICAgIC8vIGdldCBtZXRhZGF0YVxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9jb250ZXh0LmdldE1ldGFkYXRhKCk7XG4gICAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgIC8vIGdldCBlbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7cm91dGVEYXRhLm1vZGVsfSRgLCAnaWcnKTtcbiAgICAgICAgY29uc3QgZW50aXR5U2V0ID0gbWV0YWRhdGEuRW50aXR5Q29udGFpbmVyLkVudGl0eVNldC5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4gcmUudGVzdCh4Lk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaWYgZW50aXR5IHR5cGUgaXMgbnVsbFxuICAgICAgICBpZiAoZW50aXR5U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSB0byBlcnJvclxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlTZXQgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGVudGl0eSB0eXBlXG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBtZXRhZGF0YS5FbnRpdHlUeXBlLmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiB4Lk5hbWUgPT09IGVudGl0eVNldC5FbnRpdHlUeXBlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlUeXBlIE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24sICdhbGxvd1NhdmUnKSkge1xuICAgICAgICAgICAgdGhpcy5hbGxvd1NhdmVPcHRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbi5hbGxvd1NhdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VhcmNoQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmxvbmdEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmNhdGVnb3J5KSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuY2F0ZWdvcnkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNsb25lIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgICAgICBjb25zdCBkZWZhdWx0Q29uZmlndXJhdGlvbiA9IEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uLmNhc3QodGhpcy50YWJsZUNvbmZpZ3VyYXRpb24sIHRydWUpO1xuICAgICAgICAvLyBjb3JyZWN0IGVkaXQgYnV0dG9uIGxpbmtcbiAgICAgICAgY29uc3QgY29sdW1uID0gZGVmYXVsdENvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKCBjb2wgPT4ge1xuICAgICAgICAgIHJldHVybiBjb2wuZm9ybWF0dGVyID09PSAnQnV0dG9uRm9ybWF0dGVyJyAmJiBjb2wuZm9ybWF0U3RyaW5nID09PSAnKG1vZGFsOmVkaXQpJztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICBjb25zdCB1cmw6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXRoRnJvbVJvb3QuZm9yRWFjaCggcm91dGUgPT4ge1xuICAgICAgICAgICAgdXJsLnB1c2guYXBwbHkodXJsLCByb3V0ZS51cmwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbHVtbi5mb3JtYXRTdHJpbmcgPSBgIy8ke3VybC5qb2luKCcvJyl9Lyhtb2RhbDpcXCRcXHtpZFxcfS9lZGl0KWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3JlYXRlIGxpc3QgY29uZmlndXJhdGlvbiBieSBhc3NpZ25pbmcgbGlzdCBlbnRpdHkgc2V0XG4gICAgICAgIHRhYmxlLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgIG1vZGVsOiBlbnRpdHlTZXQuTmFtZVxuICAgICAgICB9LCBkZWZhdWx0Q29uZmlndXJhdGlvbik7XG4gICAgICAgIC8vIGZldGNoIGRhdGFcbiAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgIC8vIGRvIHJlbG9hZCBieSB1c2luZyBoaWRkZW4gZnJhZ21lbnQgZS5nLiAvY2xhc3NlcyNyZWxvYWRcbiAgICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoZnJhZ21lbnQgPT4ge1xuICAgICAgICAgIGlmIChmcmFnbWVudCAmJiBmcmFnbWVudCA9PT0gJ3JlbG9hZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KFxuICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdTZXR0aW5ncy5PcGVyYXRpb25Db21wbGV0ZWQnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGZpbmFsbHkgYWRkIHVzZXIgYWN0aXZpdHlcbiAgICAgICAgdGhpcy5fdXNlckFjdGl2aXR5U2VydmljZS5zZXRJdGVtKHtcbiAgICAgICAgICBjYXRlZ29yeTogdGhpcy5jYXRlZ29yeSBhcyBzdHJpbmcsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpLFxuICAgICAgICAgIGRhdGVDcmVhdGVkOiBuZXcgRGF0ZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yU2VydmljZS5zaG93RXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiBEYXRhIGxvYWQgZXZlbnQgaGFuZGxlciBvZiBhZHZhbmNlZCB0YWJsZSBjb21wb25lbnRcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIG9uRGF0YUxvYWQoZGF0YTogQWR2YW5jZWRUYWJsZURhdGFSZXN1bHQpIHtcbiAgICB0aGlzLnJlY29yZHNUb3RhbCA9IGRhdGEucmVjb3Jkc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICBpZiAodGFibGUgJiYgdGFibGUuc2VsZWN0ZWQgJiYgdGFibGUuc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICAvLyBnZXQgaXRlbXMgdG8gcmVtb3ZlXG4gICAgICBjb25zdCBpdGVtcyA9IHRhYmxlLnNlbGVjdGVkO1xuICAgICAgcmV0dXJuIHRoaXMuX21vZGFsU2VydmljZS5zaG93V2FybmluZ0RpYWxvZyhcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbXNUaXRsZScpLFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc01lc3NhZ2UnKSxcbiAgICAgICAgRElBTE9HX0JVVFRPTlMuT2tDYW5jZWwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSAnb2snKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0Lm1vZGVsKHRhYmxlLmNvbmZpZy5tb2RlbCkucmVtb3ZlKGl0ZW1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiArICc6JyArIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLnRpdGxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KChpdGVtcy5sZW5ndGggPT09IDEgP1xuICAgICAgICAgICAgICAgICAgJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5vbmUnIDogJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5tYW55JylcbiAgICAgICAgICAgICAgICAgICwgeyB2YWx1ZTogaXRlbXMubGVuZ3RoIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIsIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZUxpbms6ICcuJ1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgPGgyPnt7ZGVzY3JpcHRpb259fTwvaDI+XG4gICAgICA8cCAqbmdJZj1cImxvbmdEZXNjcmlwdGlvblwiPnt7bG9uZ0Rlc2NyaXB0aW9ufX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzZWFyY2hDb25maWd1cmF0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIFtuZ1Zhcl09XCJ7fVwiICNmaWx0ZXI9XCJuZ1ZhclwiPlxuICAgICAgPGFwcC1hZHZhbmNlZC10YWJsZS1zZWFyY2ggI2FkdmFuY2VkU2VhcmNoIFsoZmlsdGVyKV09XCJmaWx0ZXIudmFsdWVcIiBbY29sbGFwc2VkXT1cInRydWVcIiBbdGFibGVdPVwidGFibGVcIiBbYWxsb3dTYXZlXT1cImFsbG93U2F2ZU9wdGlvblwiPlxuICAgICAgICA8YWR2YW5jZWQtc2VhcmNoPlxuICAgICAgICAgIDxhcHAtYWR2YW5jZWQtc2VhcmNoLWZvcm0gW2Zvcm1dPVwic2VhcmNoQ29uZmlndXJhdGlvblwiIChmaWx0ZXJDaGFuZ2UpPVwiYWR2YW5jZWRTZWFyY2guYXN5bmNBZHZhbmNlZFNlYXJjaCgpXCIgI3NlYXJjaCBbKGZpbHRlcildPVwiZmlsdGVyLnZhbHVlXCI+PC9hcHAtYWR2YW5jZWQtc2VhcmNoLWZvcm0+XG4gICAgICAgIDwvYWR2YW5jZWQtc2VhcmNoPlxuICAgICAgPC9hcHAtYWR2YW5jZWQtdGFibGUtc2VhcmNoPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBtdC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9udC14bCB0ZXh0LXNlY29uZGFyeVwiICpuZ0lmPVwicmVjb3Jkc1RvdGFsICYmIHJlY29yZHNUb3RhbCA+IDFcIj5cbiAgICAgICAgPHNwYW4+e3tyZWNvcmRzVG90YWx9fTwvc3Bhbj48c3Bhbj4mbmJzcDs8L3NwYW4+PHNwYW4gW3RyYW5zbGF0ZV09XCInVGFibGVzLkl0ZW1zJ1wiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvbnQteGwgdGV4dC1zZWNvbmRhcnlcIiAqbmdJZj1cInJlY29yZHNUb3RhbCA9PT0gMVwiPlxuICAgICAgICA8c3Bhbj57e3JlY29yZHNUb3RhbH19PC9zcGFuPjxzcGFuPiZuYnNwOzwvc3Bhbj48c3BhbiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuSXRlbSdcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtbC1hdXRvIG1yLTMgbXQtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbGcgYnRuLXRvb2xiYXIgbXQtM1wiPlxuICAgICAgICA8YSAqbmdJZj1cInRhYmxlICYmIHRhYmxlLnNlbGVjdGVkICYmIHRhYmxlLnNlbGVjdGVkLmxlbmd0aFwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRhbmdlciB0ZXh0LWRlY29yYXRpb24tbm9uZSBtci0yXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJyZW1vdmUoKVwiPlxuICAgICAgICAgIDxzcGFuPi08L3NwYW4+PHNwYW4+Jm5ic3A7PC9zcGFuPjxzcGFuIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5SZW1vdmVJdGVtJ1wiPjwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YSBjbGFzcz1cInRleHQtaW5kaWdvIHRleHQtZGVjb3JhdGlvbi1ub25lXCIgW3JvdXRlckxpbmtdPVwiWycuJywgeyBvdXRsZXRzOnsgbW9kYWw6J2FkZCd9IH1dXCI+XG4gICAgICAgICAgPHNwYW4+Kzwvc3Bhbj48c3Bhbj4mbmJzcDs8L3NwYW4+PHNwYW4gW3RyYW5zbGF0ZV09XCInVGFibGVzLkFkZEl0ZW0nXCI+PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTRcIj5cbiAgICAgIDxhcHAtYWR2YW5jZWQtdGFibGUgW3NlbGVjdGFibGVdPVwidHJ1ZVwiICN0YWJsZVxuICAgICAgW3Nob3dGb290ZXJdPVwiZmFsc2VcIlxuICAgICAgKGxvYWQpPVwib25EYXRhTG9hZCgkZXZlbnQpXCIgW2hlaWdodF09XCI2MDBcIj48L2FwcC1hZHZhbmNlZC10YWJsZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxyb3V0ZXItbW9kYWw+PC9yb3V0ZXItbW9kYWw+XG48L2Rpdj5cbiJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtbGlzdC9hZHZhbmNlZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUs5Riw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFtRCwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pJLE9BQU8sRUFBZ0IsY0FBYyxFQUFxQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLHFCQUFxQjtJQWdCaEMsWUFBb0IsUUFBNEIsRUFDdEMsaUJBQW1DLEVBQ25DLGVBQStCLEVBQy9CLGFBQTJCLEVBQzNCLGFBQTJCLEVBQzNCLGFBQTJCLEVBQzNCLG9CQUF5QztRQU4vQixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUN0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBUnpCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO0lBUzNDLENBQUM7SUFDUCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdB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LDZZQ2pCbEMsK2xFQThDQTs0RkQ3QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUVFLG1CQUFtQjt3UkFVVCxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ0MsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNLLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDTSxlQUFlO3NCQUF4QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDSyxrQkFBa0I7c0JBQTlDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNHLG1CQUFtQjtzQkFBaEQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ1IsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNRLGVBQWU7c0JBQXhDLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgT25EZXN0cm95LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckRhdGFDb250ZXh0IH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBBZHZhbmNlZFRhYmxlQ29tcG9uZW50LCBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCwgQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlLCBESUFMT0dfQlVUVE9OUywgTW9kYWxTZXJ2aWNlLCBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuaW1wb3J0IHsgUmVzcG9uc2VFcnJvciB9IGZyb20gJ0B0aGVtb3N0L2NsaWVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWR2YW5jZWQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyByZWNvcmRzVG90YWw/OiBudW1iZXI7XG4gIHB1YmxpYyBjb25maWc/OiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVsb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2VudGl0eVNldCcpIGVudGl0eVNldD86IHN0cmluZztcbiAgQElucHV0KCdjYXRlZ29yeScpIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgnbG9uZ0Rlc2NyaXB0aW9uJykgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ3RhYmxlQ29uZmlndXJhdGlvbicpIHRhYmxlQ29uZmlndXJhdGlvbjogYW55O1xuICBASW5wdXQoJ3NlYXJjaENvbmZpZ3VyYXRpb24nKSBzZWFyY2hDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU/OiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBASW5wdXQoJ2FsbG93U2F2ZU9wdGlvbicpIGFsbG93U2F2ZU9wdGlvbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3VzZXJBY3Rpdml0eVNlcnZpY2U6IFVzZXJBY3Rpdml0eVNlcnZpY2VcbiAgICApIHsgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50YWJsZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICAgIC8vIGdldCBtZXRhZGF0YVxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9jb250ZXh0LmdldE1ldGFkYXRhKCk7XG4gICAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgIC8vIGdldCBlbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7cm91dGVEYXRhLm1vZGVsfSRgLCAnaWcnKTtcbiAgICAgICAgY29uc3QgZW50aXR5U2V0ID0gbWV0YWRhdGEuRW50aXR5Q29udGFpbmVyLkVudGl0eVNldC5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4gcmUudGVzdCh4Lk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaWYgZW50aXR5IHR5cGUgaXMgbnVsbFxuICAgICAgICBpZiAoZW50aXR5U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSB0byBlcnJvclxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlTZXQgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGVudGl0eSB0eXBlXG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBtZXRhZGF0YS5FbnRpdHlUeXBlLmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiB4Lk5hbWUgPT09IGVudGl0eVNldC5FbnRpdHlUeXBlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlUeXBlIE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24sICdhbGxvd1NhdmUnKSkge1xuICAgICAgICAgICAgdGhpcy5hbGxvd1NhdmVPcHRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbi5hbGxvd1NhdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VhcmNoQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmxvbmdEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmNhdGVnb3J5KSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuY2F0ZWdvcnkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNsb25lIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgICAgICBjb25zdCBkZWZhdWx0Q29uZmlndXJhdGlvbiA9IEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uLmNhc3QodGhpcy50YWJsZUNvbmZpZ3VyYXRpb24sIHRydWUpO1xuICAgICAgICAvLyBjb3JyZWN0IGVkaXQgYnV0dG9uIGxpbmtcbiAgICAgICAgY29uc3QgY29sdW1uID0gZGVmYXVsdENvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKCBjb2wgPT4ge1xuICAgICAgICAgIHJldHVybiBjb2wuZm9ybWF0dGVyID09PSAnQnV0dG9uRm9ybWF0dGVyJyAmJiBjb2wuZm9ybWF0U3RyaW5nID09PSAnKG1vZGFsOmVkaXQpJztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICBjb25zdCB1cmw6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXRoRnJvbVJvb3QuZm9yRWFjaCggcm91dGUgPT4ge1xuICAgICAgICAgICAgdXJsLnB1c2guYXBwbHkodXJsLCByb3V0ZS51cmwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbHVtbi5mb3JtYXRTdHJpbmcgPSBgIy8ke3VybC5qb2luKCcvJyl9Lyhtb2RhbDpcXCRcXHtpZFxcfS9lZGl0KWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3JlYXRlIGxpc3QgY29uZmlndXJhdGlvbiBieSBhc3NpZ25pbmcgbGlzdCBlbnRpdHkgc2V0XG4gICAgICAgIHRhYmxlLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgIG1vZGVsOiBlbnRpdHlTZXQuTmFtZVxuICAgICAgICB9LCBkZWZhdWx0Q29uZmlndXJhdGlvbik7XG4gICAgICAgIC8vIGZldGNoIGRhdGFcbiAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgIC8vIGRvIHJlbG9hZCBieSB1c2luZyBoaWRkZW4gZnJhZ21lbnQgZS5nLiAvY2xhc3NlcyNyZWxvYWRcbiAgICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoZnJhZ21lbnQgPT4ge1xuICAgICAgICAgIGlmIChmcmFnbWVudCAmJiBmcmFnbWVudCA9PT0gJ3JlbG9hZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KFxuICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdTZXR0aW5ncy5PcGVyYXRpb25Db21wbGV0ZWQnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGZpbmFsbHkgYWRkIHVzZXIgYWN0aXZpdHlcbiAgICAgICAgdGhpcy5fdXNlckFjdGl2aXR5U2VydmljZS5zZXRJdGVtKHtcbiAgICAgICAgICBjYXRlZ29yeTogdGhpcy5jYXRlZ29yeSBhcyBzdHJpbmcsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpLFxuICAgICAgICAgIGRhdGVDcmVhdGVkOiBuZXcgRGF0ZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yU2VydmljZS5zaG93RXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiBEYXRhIGxvYWQgZXZlbnQgaGFuZGxlciBvZiBhZHZhbmNlZCB0YWJsZSBjb21wb25lbnRcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIG9uRGF0YUxvYWQoZGF0YTogQWR2YW5jZWRUYWJsZURhdGFSZXN1bHQpIHtcbiAgICB0aGlzLnJlY29yZHNUb3RhbCA9IGRhdGEucmVjb3Jkc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICBpZiAodGFibGUgJiYgdGFibGUuc2VsZWN0ZWQgJiYgdGFibGUuc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICAvLyBnZXQgaXRlbXMgdG8gcmVtb3ZlXG4gICAgICBjb25zdCBpdGVtcyA9IHRhYmxlLnNlbGVjdGVkO1xuICAgICAgcmV0dXJuIHRoaXMuX21vZGFsU2VydmljZS5zaG93V2FybmluZ0RpYWxvZyhcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbXNUaXRsZScpLFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc01lc3NhZ2UnKSxcbiAgICAgICAgRElBTE9HX0JVVFRPTlMuT2tDYW5jZWwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSAnb2snKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0Lm1vZGVsKHRhYmxlLmNvbmZpZy5tb2RlbCkucmVtb3ZlKGl0ZW1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiArICc6JyArIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLnRpdGxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KChpdGVtcy5sZW5ndGggPT09IDEgP1xuICAgICAgICAgICAgICAgICAgJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5vbmUnIDogJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5tYW55JylcbiAgICAgICAgICAgICAgICAgICwgeyB2YWx1ZTogaXRlbXMubGVuZ3RoIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIsIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZUxpbms6ICcuJ1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgPGgyPnt7ZGVzY3JpcHRpb259fTwvaDI+XG4gICAgICA8cCAqbmdJZj1cImxvbmdEZXNjcmlwdGlvblwiPnt7bG9uZ0Rlc2NyaXB0aW9ufX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzZWFyY2hDb25maWd1cmF0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIFtuZ1Zhcl09XCJ7fVwiICNmaWx0ZXI9XCJuZ1ZhclwiPlxuICAgICAgPGFwcC1hZHZhbmNlZC10YWJsZS1zZWFyY2ggI2FkdmFuY2VkU2VhcmNoIFsoZmlsdGVyKV09XCJmaWx0ZXIudmFsdWVcIiBbY29sbGFwc2VkXT1cInRydWVcIiBbdGFibGVdPVwidGFibGVcIiBbYWxsb3dTYXZlXT1cImFsbG93U2F2ZU9wdGlvblwiPlxuICAgICAgICA8YWR2YW5jZWQtc2VhcmNoPlxuICAgICAgICAgIDxhcHAtYWR2YW5jZWQtc2VhcmNoLWZvcm0gW2Zvcm1dPVwic2VhcmNoQ29uZmlndXJhdGlvblwiIChmaWx0ZXJDaGFuZ2UpPVwiYWR2YW5jZWRTZWFyY2guYXN5bmNBZHZhbmNlZFNlYXJjaCgpXCIgI3NlYXJjaCBbKGZpbHRlcildPVwiZmlsdGVyLnZhbHVlXCI+PC9hcHAtYWR2YW5jZWQtc2VhcmNoLWZvcm0+XG4gICAgICAgIDwvYWR2YW5jZWQtc2VhcmNoPlxuICAgICAgPC9hcHAtYWR2YW5jZWQtdGFibGUtc2VhcmNoPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBtdC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9udC14bCB0ZXh0LXNlY29uZGFyeVwiICpuZ0lmPVwicmVjb3Jkc1RvdGFsICYmIHJlY29yZHNUb3RhbCA+IDFcIj5cbiAgICAgICAgPHNwYW4+e3tyZWNvcmRzVG90YWx9fTwvc3Bhbj48c3Bhbj4mbmJzcDs8L3NwYW4+PHNwYW4gW3RyYW5zbGF0ZV09XCInVGFibGVzLkl0ZW1zJ1wiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvbnQteGwgdGV4dC1zZWNvbmRhcnlcIiAqbmdJZj1cInJlY29yZHNUb3RhbCA9PT0gMVwiPlxuICAgICAgICA8c3Bhbj57e3JlY29yZHNUb3RhbH19PC9zcGFuPjxzcGFuPiZuYnNwOzwvc3Bhbj48c3BhbiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuSXRlbSdcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtbC1hdXRvIG1yLTMgbXQtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbGcgYnRuLXRvb2xiYXIgbXQtM1wiPlxuICAgICAgICA8YSAqbmdJZj1cInRhYmxlICYmIHRhYmxlLnNlbGVjdGVkICYmIHRhYmxlLnNlbGVjdGVkLmxlbmd0aFwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRhbmdlciB0ZXh0LWRlY29yYXRpb24tbm9uZSBtci0yXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJyZW1vdmUoKVwiPlxuICAgICAgICAgIDxzcGFuPi08L3NwYW4+PHNwYW4+Jm5ic3A7PC9zcGFuPjxzcGFuIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5SZW1vdmVJdGVtJ1wiPjwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YSBjbGFzcz1cInRleHQtaW5kaWdvIHRleHQtZGVjb3JhdGlvbi1ub25lXCIgW3JvdXRlckxpbmtdPVwiWycuJywgeyBvdXRsZXRzOnsgbW9kYWw6J2FkZCd9IH1dXCI+XG4gICAgICAgICAgPHNwYW4+Kzwvc3Bhbj48c3Bhbj4mbmJzcDs8L3NwYW4+PHNwYW4gW3RyYW5zbGF0ZV09XCInVGFibGVzLkFkZEl0ZW0nXCI+PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTRcIj5cbiAgICAgIDxhcHAtYWR2YW5jZWQtdGFibGUgW3NlbGVjdGFibGVdPVwidHJ1ZVwiICN0YWJsZVxuICAgICAgW3Nob3dGb290ZXJdPVwiZmFsc2VcIlxuICAgICAgKGxvYWQpPVwib25EYXRhTG9hZCgkZXZlbnQpXCIgW2hlaWdodF09XCI2MDBcIj48L2FwcC1hZHZhbmNlZC10YWJsZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxyb3V0ZXItbW9kYWw+PC9yb3V0ZXItbW9kYWw+XG48L2Rpdj5cbiJdfQ==
|