e5core-angular-ui
Version:
e5 Anywhere Angular UI
98 lines • 18.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from "@angular/core";
import { UiSearchDefinitionService, WorkSearchFoundationService } from "e5core-angular-services";
import { Subject } from "rxjs";
import * as i0 from "@angular/core";
import * as i1 from "e5core-angular-services";
// import { UiSearchDefinitionService, FoundationWorkFindWorkItemResultModel, FoundationWorkFindWorkItemColumnDefModel, UIPropertyModel } from "e5core-angular-services";
// import { Injectable } from "@angular/core";
// import { BehaviorSubject, Subject, Observable } from "rxjs";
// import { WorkSearchFoundationService } from "e5core-angular-services";
// import { SearchFormModel } from "../models/search-form.model";
// import { SearchResultsModel, CreateBlankSearchResult } from "../models/search-results.model";
// import { SearchFilter, SearchFilterExpression } from "../models/search-filter.model";
// export class PerformSearchOptions {
// attachmentTypeFilter?: any;
// includeArchives?: boolean;
// includeSla?: boolean;
// includeAttachmentCount?: boolean;
// includeNextDueTask?: boolean;
// customProcedure?: string;
// select?: string;
// orderBy?: string;
// siteGroupsFilter?: string;
// page?: number;
// pageSize?: number
// }
/**
* This service is used to provide work into the work item Subject/
*/
var SearchDeliveryService = /** @class */ (function () {
function SearchDeliveryService(uiSearchDefinitionService, workSearchService) {
this.uiSearchDefinitionService = uiSearchDefinitionService;
this.workSearchService = workSearchService;
}
/**
* Get the search defintion, inclusing the fields to be shown by default, the search fields
* and the default search information.
* @param searchForm$ publish the new search definition to this observable.
* @param searchDefinitionId
*/
/**
* Get the search defintion, inclusing the fields to be shown by default, the search fields
* and the default search information.
* @param {?} searchForm$ publish the new search definition to this observable.
* @param {?} searchDefinitionId
* @return {?}
*/
SearchDeliveryService.prototype.getSearchDefinition = /**
* Get the search defintion, inclusing the fields to be shown by default, the search fields
* and the default search information.
* @param {?} searchForm$ publish the new search definition to this observable.
* @param {?} searchDefinitionId
* @return {?}
*/
function (searchForm$, searchDefinitionId) {
/** @type {?} */
var subject$ = new Subject();
this.uiSearchDefinitionService.get(searchDefinitionId).subscribe(function (searchDefiniton) {
/** @type {?} */
var current = searchForm$.getValue();
/** @type {?} */
var updated = tslib_1.__assign({}, current, searchDefiniton);
searchForm$.next(updated);
subject$.next(updated);
}, function (error) { return subject$.error(error); }, function () { return subject$.complete(); });
return (subject$);
};
SearchDeliveryService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
SearchDeliveryService.ctorParameters = function () { return [
{ type: UiSearchDefinitionService },
{ type: WorkSearchFoundationService }
]; };
/** @nocollapse */ SearchDeliveryService.ngInjectableDef = i0.defineInjectable({ factory: function SearchDeliveryService_Factory() { return new SearchDeliveryService(i0.inject(i1.UiSearchDefinitionService), i0.inject(i1.WorkSearchFoundationService)); }, token: SearchDeliveryService, providedIn: "root" });
return SearchDeliveryService;
}());
export { SearchDeliveryService };
if (false) {
/**
* @type {?}
* @private
*/
SearchDeliveryService.prototype.uiSearchDefinitionService;
/**
* @type {?}
* @private
*/
SearchDeliveryService.prototype.workSearchService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlbGl2ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9lNWNvcmUtYW5ndWxhci11aS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zZWFyY2gtZGVsaXZlcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakcsT0FBTyxFQUErQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkI1RDtJQUtFLCtCQUNVLHlCQUFvRCxFQUNwRCxpQkFBOEM7UUFEOUMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTZCO0lBRXhELENBQUM7SUFFRDs7Ozs7T0FLRzs7Ozs7Ozs7SUFDSSxtREFBbUI7Ozs7Ozs7SUFBMUIsVUFBMkIsV0FBNkMsRUFBRSxrQkFBMEI7O1lBQzVGLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBbUI7UUFFL0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FDOUQsVUFBQSxlQUFlOztnQkFDVCxPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRTs7Z0JBQ2hDLE9BQU8sd0JBQ04sT0FBTyxFQUNQLGVBQWUsQ0FDbkI7WUFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsQ0FBQyxFQUNELFVBQUEsS0FBSyxJQUFJLE9BQUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBckIsQ0FBcUIsRUFDOUIsY0FBTSxPQUFBLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBbkIsQ0FBbUIsQ0FDMUIsQ0FBQTtRQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQixDQUFDOztnQkFuQ0YsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkEvQlEseUJBQXlCO2dCQUFFLDJCQUEyQjs7O2dDQUQvRDtDQXVPQyxBQXpNRCxJQXlNQztTQXRNWSxxQkFBcUI7Ozs7OztJQUc5QiwwREFBNEQ7Ozs7O0lBQzVELGtEQUFzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVaVNlYXJjaERlZmluaXRpb25TZXJ2aWNlLCBXb3JrU2VhcmNoRm91bmRhdGlvblNlcnZpY2UgfSBmcm9tIFwiZTVjb3JlLWFuZ3VsYXItc2VydmljZXNcIjtcclxuaW1wb3J0IHsgU2VhcmNoRm9ybU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9zZWFyY2gtZm9ybS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLy8gaW1wb3J0IHsgVWlTZWFyY2hEZWZpbml0aW9uU2VydmljZSwgRm91bmRhdGlvbldvcmtGaW5kV29ya0l0ZW1SZXN1bHRNb2RlbCwgRm91bmRhdGlvbldvcmtGaW5kV29ya0l0ZW1Db2x1bW5EZWZNb2RlbCwgVUlQcm9wZXJ0eU1vZGVsIH0gZnJvbSBcImU1Y29yZS1hbmd1bGFyLXNlcnZpY2VzXCI7XHJcbi8vIGltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG4vLyBpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG4vLyBpbXBvcnQgeyBXb3JrU2VhcmNoRm91bmRhdGlvblNlcnZpY2UgfSBmcm9tIFwiZTVjb3JlLWFuZ3VsYXItc2VydmljZXNcIjtcclxuLy8gaW1wb3J0IHsgU2VhcmNoRm9ybU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9zZWFyY2gtZm9ybS5tb2RlbFwiO1xyXG4vLyBpbXBvcnQgeyBTZWFyY2hSZXN1bHRzTW9kZWwsIENyZWF0ZUJsYW5rU2VhcmNoUmVzdWx0IH0gZnJvbSBcIi4uL21vZGVscy9zZWFyY2gtcmVzdWx0cy5tb2RlbFwiO1xyXG4vLyBpbXBvcnQgeyBTZWFyY2hGaWx0ZXIsIFNlYXJjaEZpbHRlckV4cHJlc3Npb24gfSBmcm9tIFwiLi4vbW9kZWxzL3NlYXJjaC1maWx0ZXIubW9kZWxcIjtcclxuXHJcbi8vIGV4cG9ydCBjbGFzcyBQZXJmb3JtU2VhcmNoT3B0aW9ucyB7XHJcbi8vICAgYXR0YWNobWVudFR5cGVGaWx0ZXI/OiBhbnk7XHJcbi8vICAgaW5jbHVkZUFyY2hpdmVzPzogYm9vbGVhbjtcclxuLy8gICBpbmNsdWRlU2xhPzogYm9vbGVhbjtcclxuLy8gICBpbmNsdWRlQXR0YWNobWVudENvdW50PzogYm9vbGVhbjtcclxuLy8gICBpbmNsdWRlTmV4dER1ZVRhc2s/OiBib29sZWFuO1xyXG4vLyAgIGN1c3RvbVByb2NlZHVyZT86IHN0cmluZztcclxuLy8gICBzZWxlY3Q/OiBzdHJpbmc7XHJcbi8vICAgb3JkZXJCeT86IHN0cmluZztcclxuLy8gICBzaXRlR3JvdXBzRmlsdGVyPzogc3RyaW5nO1xyXG4vLyAgIHBhZ2U/OiBudW1iZXI7XHJcbi8vICAgcGFnZVNpemU/OiBudW1iZXJcclxuLy8gfVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIHRvIHByb3ZpZGUgd29yayBpbnRvIHRoZSB3b3JrIGl0ZW0gU3ViamVjdC9cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaERlbGl2ZXJ5U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB1aVNlYXJjaERlZmluaXRpb25TZXJ2aWNlOiBVaVNlYXJjaERlZmluaXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3b3JrU2VhcmNoU2VydmljZTogV29ya1NlYXJjaEZvdW5kYXRpb25TZXJ2aWNlKVxyXG4gIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgc2VhcmNoIGRlZmludGlvbiwgaW5jbHVzaW5nIHRoZSBmaWVsZHMgdG8gYmUgc2hvd24gYnkgZGVmYXVsdCwgdGhlIHNlYXJjaCBmaWVsZHNcclxuICAgKiBhbmQgdGhlIGRlZmF1bHQgc2VhcmNoIGluZm9ybWF0aW9uLlxyXG4gICAqIEBwYXJhbSBzZWFyY2hGb3JtJCBwdWJsaXNoIHRoZSBuZXcgc2VhcmNoIGRlZmluaXRpb24gdG8gdGhpcyBvYnNlcnZhYmxlLlxyXG4gICAqIEBwYXJhbSBzZWFyY2hEZWZpbml0aW9uSWRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2VhcmNoRGVmaW5pdGlvbihzZWFyY2hGb3JtJDogQmVoYXZpb3JTdWJqZWN0PFNlYXJjaEZvcm1Nb2RlbD4sIHNlYXJjaERlZmluaXRpb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTZWFyY2hGb3JtTW9kZWw+IHtcclxuICAgIGNvbnN0IHN1YmplY3QkID0gbmV3IFN1YmplY3Q8U2VhcmNoRm9ybU1vZGVsPigpO1xyXG5cclxuICAgIHRoaXMudWlTZWFyY2hEZWZpbml0aW9uU2VydmljZS5nZXQoc2VhcmNoRGVmaW5pdGlvbklkKS5zdWJzY3JpYmUoXHJcbiAgICAgIHNlYXJjaERlZmluaXRvbiA9PiB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBzZWFyY2hGb3JtJC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGxldCB1cGRhdGVkOiBTZWFyY2hGb3JtTW9kZWwgPSB7XHJcbiAgICAgICAgICAuLi5jdXJyZW50LFxyXG4gICAgICAgICAgLi4uc2VhcmNoRGVmaW5pdG9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2VhcmNoRm9ybSQubmV4dCh1cGRhdGVkKTtcclxuICAgICAgICBzdWJqZWN0JC5uZXh0KHVwZGF0ZWQpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvciA9PiBzdWJqZWN0JC5lcnJvcihlcnJvciksXHJcbiAgICAgICgpID0+IHN1YmplY3QkLmNvbXBsZXRlKClcclxuICAgIClcclxuXHJcbiAgICByZXR1cm4gKHN1YmplY3QkKTtcclxuICB9XHJcblxyXG4vLyAgIC8qKlxyXG4vLyAgICAqIFBlcmZvcm0gYSBuZXcgc2VhcmNoIHdpdGggbmV3IHNlYXJjaCBwcm9lcHJ0aWVzLiBUaGlzIHdpbGwgcmVwbGFjZSB0aGVcclxuLy8gICAgKiBzZWFyY2ggcHJvcGVydGllcyBpbiB0aGUgU2VhcmNoUmVzdWx0c01vZGVsIHNvIHRoYXQgdGhleSBjYW4gYmVcclxuLy8gICAgKiB1c2VkIHdoZW4gcGFnaW5nIHRob3VnaHQgdGhlIHJlc3VsdHMgdXNpbmcgdGhlIHVwZGF0ZVNlYXJjaCgpIGZ1bmN0aW9uLlxyXG4vLyAgICAqIEBwYXJhbSBzZWFyY2hSZXN1bHRzJFxyXG4vLyAgICAqIEBwYXJhbSBzZWFyY2hGb3JtJFxyXG4vLyAgICAqIEBwYXJhbSBvcHRpb25zXHJcbi8vICAgICovXHJcbi8vICAgcHVibGljIHBlcmZvcm1OZXdTZWFyY2goXHJcbi8vICAgICBzZWFyY2hSZXN1bHRzJDogQmVoYXZpb3JTdWJqZWN0PFNlYXJjaFJlc3VsdHNNb2RlbD4sXHJcbi8vICAgICBzZWFyY2hGb3JtJDogQmVoYXZpb3JTdWJqZWN0PFNlYXJjaEZvcm1Nb2RlbD4sXHJcbi8vICAgICBvcHRpb25zPzogUGVyZm9ybVNlYXJjaE9wdGlvbnMpOiBTdWJqZWN0PFNlYXJjaFJlc3VsdHNNb2RlbD5cclxuLy8gICB7XHJcbi8vICAgICBjb25zdCBzdWJqZWN0JCA9IG5ldyBTdWJqZWN0PFNlYXJjaFJlc3VsdHNNb2RlbD4oKTtcclxuLy8gICAgIGNvbnN0IGN1cnJlbnRSZXN1bHRzOiBTZWFyY2hSZXN1bHRzTW9kZWwgPSBzZWFyY2hSZXN1bHRzJC5nZXRWYWx1ZSgpO1xyXG4vLyAgICAgY29uc3QgY3VycmVudEZvcm06IFNlYXJjaEZvcm1Nb2RlbCA9IHNlYXJjaEZvcm0kLmdldFZhbHVlKCk7XHJcblxyXG4vLyAgICAgbGV0IGZpbHRlciA9IHRoaXMuYnVpbGRGaWx0ZXIoY3VycmVudEZvcm0ucHJvcGVydGllcyk7XHJcbi8vICAgICBsZXQgc2VhcmNoRGVmaW5pdGlvbklkID0gY3VycmVudEZvcm0uc2VhcmNoRGVmaW5pdGlvbklkO1xyXG4vLyAgICAgbGV0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5hZGREZWZhdWx0U2VhcmNoT3B0aW9ucyhvcHRpb25zKSA7XHJcblxyXG4vLyAgICAgdGhpcy53b3JrU2VhcmNoU2VydmljZS5nZXRGaW5kV29ya0l0ZW0oc2VhcmNoRGVmaW5pdGlvbklkLCBmaWx0ZXIsIGRlZmF1bHRPcHRpb25zKS5zdWJzY3JpYmUoXHJcbi8vICAgICAgIHJlc3VsdHMgPT4ge1xyXG4vLyAgICAgICAgIC8vIENvbnN0cnVjdCBhIG5ldyBTZWFyY2hcclxuLy8gICAgICAgICBsZXQgbmV3UmVzdWx0cyA9IENyZWF0ZUJsYW5rU2VhcmNoUmVzdWx0KCk7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5zZWFyY2hEZWZpbml0aW9uSWQgPSBjdXJyZW50Rm9ybS5zZWFyY2hEZWZpbml0aW9uSWQ7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5wYWdlU2l6ZSA9IHJlc3VsdHMucGFnZVNpemU7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5wYWdlID0gcmVzdWx0cy5wYWdlO1xyXG4vLyAgICAgICAgIG5ld1Jlc3VsdHMudG90YWwgPSByZXN1bHRzLnRvdGFsO1xyXG4vLyAgICAgICAgIG5ld1Jlc3VsdHMuc2VhcmNoRmllbGRzID0gY3VycmVudEZvcm0uc2VhcmNoRmllbGRzO1xyXG4vLyAgICAgICAgIG5ld1Jlc3VsdHMucHJvcGVydGllcyA9IGN1cnJlbnRGb3JtLnByb3BlcnRpZXM7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5yZXN1bHRzID0gbnVsbCA7IC8vIHRoaXMubWFwUmVzdWx0cyhyZXN1bHRzKTtcclxuXHJcbi8vICAgICAgICAgc2VhcmNoUmVzdWx0cyQubmV4dChuZXdSZXN1bHRzKTtcclxuLy8gICAgICAgICBzdWJqZWN0JC5uZXh0KG5ld1Jlc3VsdHMpO1xyXG4vLyAgICAgICB9LFxyXG4vLyAgICAgICBlcnJvciA9PiBzdWJqZWN0JC5lcnJvcihlcnJvciksXHJcbi8vICAgICAgICgpID0+IHN1YmplY3QkLmNvbXBsZXRlKClcclxuLy8gICAgIClcclxuLy8gICAgIHJldHVybiAoc3ViamVjdCQpO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgLy8vXHJcbi8vICAgcHVibGljIGNsZWFyUmVzdWx0cyhzZWFyY2hSZXN1bHRzJDogQmVoYXZpb3JTdWJqZWN0PFNlYXJjaFJlc3VsdHNNb2RlbD4sXHJcbi8vICAgICBzZWFyY2hGb3JtJDogQmVoYXZpb3JTdWJqZWN0PFNlYXJjaEZvcm1Nb2RlbD4sXHJcbi8vICAgICBvcHRpb25zPzogUGVyZm9ybVNlYXJjaE9wdGlvbnMpOiB2b2lkXHJcbi8vICAge1xyXG4vLyAgICAgY29uc3QgY3VycmVudEZvcm06IFNlYXJjaEZvcm1Nb2RlbCA9IHNlYXJjaEZvcm0kLmdldFZhbHVlKCk7XHJcblxyXG4vLyAgICAgbGV0IGZpbHRlciA9IHRoaXMuYnVpbGRGaWx0ZXIoY3VycmVudEZvcm0ucHJvcGVydGllcyk7XHJcbi8vICAgICBsZXQgc2VhcmNoRGVmaW5pdGlvbklkID0gY3VycmVudEZvcm0uc2VhcmNoRGVmaW5pdGlvbklkO1xyXG4vLyAgICAgbGV0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5hZGREZWZhdWx0U2VhcmNoT3B0aW9ucyhvcHRpb25zKSA7XHJcblxyXG4vLyAgICAgbGV0IG5ld1Jlc3VsdHMgPSBDcmVhdGVCbGFua1NlYXJjaFJlc3VsdCgpO1xyXG4vLyAgICAgbmV3UmVzdWx0cy5zZWFyY2hEZWZpbml0aW9uSWQgPSBjdXJyZW50Rm9ybS5zZWFyY2hEZWZpbml0aW9uSWQ7XHJcbi8vICAgICBuZXdSZXN1bHRzLnBhZ2VTaXplID0gMDtcclxuLy8gICAgIG5ld1Jlc3VsdHMucGFnZSA9IDA7XHJcbi8vICAgICBuZXdSZXN1bHRzLnRvdGFsID0gMDtcclxuLy8gICAgIG5ld1Jlc3VsdHMuc2VhcmNoRmllbGRzID0gY3VycmVudEZvcm0uc2VhcmNoRmllbGRzO1xyXG4vLyAgICAgbmV3UmVzdWx0cy5wcm9wZXJ0aWVzID0gdW5kZWZpbmVkIDtcclxuLy8gICAgIG5ld1Jlc3VsdHMucmVzdWx0cyA9IFtdIDtcclxuXHJcbi8vICAgICBzZWFyY2hSZXN1bHRzJC5uZXh0KG5ld1Jlc3VsdHMpO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgLyoqXHJcbi8vICAgICogVXBkYXRlIHRoZSBTZWFyY2hSZXN1bHRzTW9kZWwgd2l0aCBuZXcgZGF0YSwgdGhpcyBjb3VsZCBiZSBhcyBhIHJlc3VsdCBvciBhIHBhZ2UgbW92ZSBvclxyXG4vLyAgICAqIGEgcmVmcmVzaC4gVGhlIHNhbWUgcHJvZXBydHkgZmlsdGVyIGlzIHVzZWQgYXMgaW4gdGhlIHByZXZpb3VzIHNlYXJjaCwgc28gbm8gU2VhcmNoRm9ybVxyXG4vLyAgICAqIGlzIHJlcXVpcmVkLlxyXG4vLyAgICAqIGkuZS4gdXNlIHRoZSB1cGRhdGVTZWFyY2goKSBmdW5jdGlvbiB3aGVuIHBhZ2luZyB0aG91Z2h0IHRoZSByZXN1bHRzLlxyXG4vLyAgICAqIEBwYXJhbSBzZWFyY2hSZXN1bHRzJFxyXG4vLyAgICAqIEBwYXJhbSBvcHRpb25zXHJcbi8vICAgICovXHJcbi8vICAgcHVibGljIHVwZGF0ZVNlYXJjaChcclxuLy8gICAgIHNlYXJjaFJlc3VsdHMkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPixcclxuLy8gICAgIG9wdGlvbnM/OiBQZXJmb3JtU2VhcmNoT3B0aW9ucyk6IFN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPlxyXG4vLyAgIHtcclxuLy8gICAgIGNvbnN0IHN1YmplY3QkID0gbmV3IFN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPigpO1xyXG4vLyAgICAgY29uc3QgY3VycmVudFJlc3VsdHM6IFNlYXJjaFJlc3VsdHNNb2RlbCA9IHNlYXJjaFJlc3VsdHMkLmdldFZhbHVlKCk7XHJcblxyXG4vLyAgICAgbGV0IGZpbHRlciA9IHRoaXMuYnVpbGRGaWx0ZXIoY3VycmVudFJlc3VsdHMucHJvcGVydGllcyk7XHJcbi8vICAgICBsZXQgc2VhcmNoRGVmaW5pdGlvbklkID0gY3VycmVudFJlc3VsdHMuc2VhcmNoRGVmaW5pdGlvbklkO1xyXG4vLyAgICAgbGV0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5hZGREZWZhdWx0U2VhcmNoT3B0aW9ucyhvcHRpb25zKSA7XHJcblxyXG4vLyAgICAgdGhpcy53b3JrU2VhcmNoU2VydmljZS5nZXRGaW5kV29ya0l0ZW0oc2VhcmNoRGVmaW5pdGlvbklkLCBmaWx0ZXIsIGRlZmF1bHRPcHRpb25zKS5zdWJzY3JpYmUoXHJcbi8vICAgICAgIHJlc3VsdHMgPT4ge1xyXG4vLyAgICAgICAgIC8vIENvbnN0cnVjdCBhIG5ldyBTZWFyY2hcclxuLy8gICAgICAgICBsZXQgbmV3UmVzdWx0cyA9IENyZWF0ZUJsYW5rU2VhcmNoUmVzdWx0KCk7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5zZWFyY2hEZWZpbml0aW9uSWQgPSBzZWFyY2hEZWZpbml0aW9uSWQ7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5wYWdlU2l6ZSA9IHJlc3VsdHMucGFnZVNpemU7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5wYWdlID0gcmVzdWx0cy5wYWdlO1xyXG4vLyAgICAgICAgIG5ld1Jlc3VsdHMudG90YWwgPSByZXN1bHRzLnRvdGFsO1xyXG4vLyAgICAgICAgIG5ld1Jlc3VsdHMuc2VhcmNoRmllbGRzID0gY3VycmVudFJlc3VsdHMuc2VhcmNoRmllbGRzO1xyXG4vLyAgICAgICAgIG5ld1Jlc3VsdHMucHJvcGVydGllcyA9IGN1cnJlbnRSZXN1bHRzLnByb3BlcnRpZXM7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5yZXN1bHRzID0gdGhpcy5tYXBSZXN1bHRzKHJlc3VsdHMpO1xyXG5cclxuLy8gICAgICAgICBzZWFyY2hSZXN1bHRzJC5uZXh0KG5ld1Jlc3VsdHMpO1xyXG4vLyAgICAgICAgIHN1YmplY3QkLm5leHQobmV3UmVzdWx0cyk7XHJcbi8vICAgICAgIH0sXHJcbi8vICAgICAgIGVycm9yID0+IHN1YmplY3QkLmVycm9yKGVycm9yKSxcclxuLy8gICAgICAgKCkgPT4gc3ViamVjdCQuY29tcGxldGUoKVxyXG4vLyAgICAgKVxyXG4vLyAgICAgcmV0dXJuIChzdWJqZWN0JCk7XHJcbi8vICAgfVxyXG5cclxuLy8gICBhZGREZWZhdWx0U2VhcmNoT3B0aW9ucyhvcHRpb25zOiBQZXJmb3JtU2VhcmNoT3B0aW9ucykgOiBQZXJmb3JtU2VhcmNoT3B0aW9ucyB7XHJcbi8vICAgICBsZXQgZGVmYXVsdE9wdGlvbnMgPSA8UGVyZm9ybVNlYXJjaE9wdGlvbnM+e1xyXG4vLyAgICAgICAuLi5vcHRpb25zLFxyXG4vLyAgICAgICBpbmNsdWRlU2xhOiB0cnVlLFxyXG4vLyAgICAgICBpbmNsdWRlTmV4dER1ZVRhc2s6IHRydWVcclxuLy8gICAgIH1cclxuLy8gICAgIHJldHVybiAoZGVmYXVsdE9wdGlvbnMpIDtcclxuLy8gICB9XHJcblxyXG4vLyAgIC8qKlxyXG4vLyAgICAqIFRoZSBkYXRhIHRoYXQgY29tZXMgYmFjayBmcm9tIHRoZSBBUEkgaXMgYSBjb2x1bW5zIGRlZmludGlvbiBhbmQgYW4gYXJyYXlcclxuLy8gICAgKiBvZiBhcnJheSBvZiBkYXRhLiBXZSBuZWVkIHRvIG1hcCB0aGlzIGludG8gYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIHRoZSBjb2x1bW4gcHJvcGVydHlcclxuLy8gICAgKiBpZCBhcyB0aGUgb2JqZWN0IGtleSBzbyB0aGF0IGl0J3MgZWFzaWVyIHRvIGhhbmRsZSBieSB0aGUgdGFibGUuXHJcbi8vICAgICogQHBhcmFtIG1vZGVsXHJcbi8vICAgICovXHJcbi8vICAgcHJpdmF0ZSBtYXBSZXN1bHRzKG1vZGVsOiBGb3VuZGF0aW9uV29ya0ZpbmRXb3JrSXRlbVJlc3VsdE1vZGVsKTogYW55W10ge1xyXG5cclxuLy8gICAgIGxldCBkYXRhOiBhbnlbXVtdID0gbW9kZWwucmVzdWx0cztcclxuLy8gICAgIGxldCByZXN1bHRzOiBhbnlbXTtcclxuXHJcbi8vICAgICBpZiAobW9kZWwgJiYgbW9kZWwudG90YWwgPiAwICYmIG1vZGVsLnJlc3VsdHMgJiYgbW9kZWwuY29sdW1ucykge1xyXG4vLyAgICAgICBsZXQgY29sRGVmczogRm91bmRhdGlvbldvcmtGaW5kV29ya0l0ZW1Db2x1bW5EZWZNb2RlbFtdID0gbW9kZWwuY29sdW1ucztcclxuXHJcbi8vICAgICAgIHJlc3VsdHMgPSBtb2RlbC5yZXN1bHRzLm1hcDxhbnk+KHIgPT4ge1xyXG4vLyAgICAgICAgIGxldCBkYXRhUm93OiBhbnlbXSA9IHI7XHJcbi8vICAgICAgICAgbGV0IG9iamVjdFJvdzogYW55ID0ge307XHJcbi8vICAgICAgICAgZm9yICh2YXIgYzogbnVtYmVyID0gMDsgYyA8IGNvbERlZnMubGVuZ3RoOyBjKyspIHtcclxuLy8gICAgICAgICAgIGxldCBjb2x1bW5EZWYgPSBjb2xEZWZzW2NdO1xyXG4vLyAgICAgICAgICAgb2JqZWN0Um93W2NvbHVtbkRlZi5jb2RlXSA9IGRhdGFSb3dbY107XHJcbi8vICAgICAgICAgfVxyXG4vLyAgICAgICAgIHJldHVybiAob2JqZWN0Um93KTtcclxuLy8gICAgICAgfSk7XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm4gcmVzdWx0c1xyXG4vLyAgIH1cclxuXHJcbi8vICAgLyoqXHJcbi8vICAgICogVHVybiBhIGxpc3Qgb2YgcHJvcGVydGllcyBpbnRvIGEgZmlsdGVyIG9iamVjdCB0aGF0IGNhbiBiZSBwYXNzZWQgdG9cclxuLy8gICAgKiB0aGUgd29yayBpdGVtIHNlYXJjaCBtZXRob2QuXHJcbi8vICAgICogQHBhcmFtIHByb3BlcnRpZXMgdGhlIGxpc3Qgb2YgcHJvcGVydGllcyBmcm9tIGEgU2VhcmNoRm9ybVxyXG4vLyAgICAqL1xyXG4vLyAgIGJ1aWxkRmlsdGVyKHByb3BlcnRpZXM6IFVJUHJvcGVydHlNb2RlbFtdKTogU2VhcmNoRmlsdGVyIHtcclxuLy8gICAgIGxldCBmaWx0ZXI6IFNlYXJjaEZpbHRlciA9IHtcclxuLy8gICAgICAgZmlsdGVyczogW11cclxuLy8gICAgIH07XHJcbi8vICAgICBpZiAocHJvcGVydGllcyAmJiBwcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcclxuLy8gICAgICAgcHJvcGVydGllcy5mb3JFYWNoKHAgPT4ge1xyXG4vLyAgICAgICAgIGlmIChwLnZhbHVlICYmIHAudmFsdWUgIT09IFwiXCIpIHtcclxuLy8gICAgICAgICAgIGZpbHRlci5maWx0ZXJzLnB1c2goPFNlYXJjaEZpbHRlckV4cHJlc3Npb24+e1xyXG4vLyAgICAgICAgICAgICBmaWVsZDogcC5wcm9wZXJ0eUlkLFxyXG4vLyAgICAgICAgICAgICB2YWx1ZTogcC52YWx1ZVxyXG4vLyAgICAgICAgICAgfSk7XHJcbi8vICAgICAgICAgfVxyXG4vLyAgICAgICB9KTtcclxuLy8gICAgIH1cclxuXHJcbi8vICAgICByZXR1cm4gKGZpbHRlcik7XHJcbi8vICAgfVxyXG5cclxufVxyXG4iXX0=