UNPKG

e5core-angular-ui

Version:

e5 Anywhere Angular UI

86 lines 17.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ 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/ */ export class SearchDeliveryService { /** * @param {?} uiSearchDefinitionService * @param {?} workSearchService */ constructor(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 * @return {?} */ getSearchDefinition(searchForm$, searchDefinitionId) { /** @type {?} */ const subject$ = new Subject(); this.uiSearchDefinitionService.get(searchDefinitionId).subscribe(searchDefiniton => { /** @type {?} */ let current = searchForm$.getValue(); /** @type {?} */ let updated = Object.assign({}, current, searchDefiniton); searchForm$.next(updated); subject$.next(updated); }, error => subject$.error(error), () => subject$.complete()); return (subject$); } } SearchDeliveryService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ SearchDeliveryService.ctorParameters = () => [ { 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" }); if (false) { /** * @type {?} * @private */ SearchDeliveryService.prototype.uiSearchDefinitionService; /** * @type {?} * @private */ SearchDeliveryService.prototype.workSearchService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlbGl2ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9lNWNvcmUtYW5ndWxhci11aS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zZWFyY2gtZGVsaXZlcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRyxPQUFPLEVBQStCLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QjVELE1BQU0sT0FBTyxxQkFBcUI7Ozs7O0lBRWhDLFlBQ1UseUJBQW9ELEVBQ3BELGlCQUE4QztRQUQ5Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7SUFFeEQsQ0FBQzs7Ozs7Ozs7SUFRTSxtQkFBbUIsQ0FBQyxXQUE2QyxFQUFFLGtCQUEwQjs7Y0FDNUYsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFtQjtRQUUvQyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUM5RCxlQUFlLENBQUMsRUFBRTs7Z0JBQ1osT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUU7O2dCQUNoQyxPQUFPLHFCQUNOLE9BQU8sRUFDUCxlQUFlLENBQ25CO1lBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQzlCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FDMUIsQ0FBQTtRQUVELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQixDQUFDOzs7WUFuQ0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBL0JRLHlCQUF5QjtZQUFFLDJCQUEyQjs7Ozs7Ozs7SUFtQzNELDBEQUE0RDs7Ozs7SUFDNUQsa0RBQXNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVpU2VhcmNoRGVmaW5pdGlvblNlcnZpY2UsIFdvcmtTZWFyY2hGb3VuZGF0aW9uU2VydmljZSB9IGZyb20gXCJlNWNvcmUtYW5ndWxhci1zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBTZWFyY2hGb3JtTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL3NlYXJjaC1mb3JtLm1vZGVsXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vLyBpbXBvcnQgeyBVaVNlYXJjaERlZmluaXRpb25TZXJ2aWNlLCBGb3VuZGF0aW9uV29ya0ZpbmRXb3JrSXRlbVJlc3VsdE1vZGVsLCBGb3VuZGF0aW9uV29ya0ZpbmRXb3JrSXRlbUNvbHVtbkRlZk1vZGVsLCBVSVByb3BlcnR5TW9kZWwgfSBmcm9tIFwiZTVjb3JlLWFuZ3VsYXItc2VydmljZXNcIjtcclxuLy8gaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbi8vIGltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbi8vIGltcG9ydCB7IFdvcmtTZWFyY2hGb3VuZGF0aW9uU2VydmljZSB9IGZyb20gXCJlNWNvcmUtYW5ndWxhci1zZXJ2aWNlc1wiO1xyXG4vLyBpbXBvcnQgeyBTZWFyY2hGb3JtTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL3NlYXJjaC1mb3JtLm1vZGVsXCI7XHJcbi8vIGltcG9ydCB7IFNlYXJjaFJlc3VsdHNNb2RlbCwgQ3JlYXRlQmxhbmtTZWFyY2hSZXN1bHQgfSBmcm9tIFwiLi4vbW9kZWxzL3NlYXJjaC1yZXN1bHRzLm1vZGVsXCI7XHJcbi8vIGltcG9ydCB7IFNlYXJjaEZpbHRlciwgU2VhcmNoRmlsdGVyRXhwcmVzc2lvbiB9IGZyb20gXCIuLi9tb2RlbHMvc2VhcmNoLWZpbHRlci5tb2RlbFwiO1xyXG5cclxuLy8gZXhwb3J0IGNsYXNzIFBlcmZvcm1TZWFyY2hPcHRpb25zIHtcclxuLy8gICBhdHRhY2htZW50VHlwZUZpbHRlcj86IGFueTtcclxuLy8gICBpbmNsdWRlQXJjaGl2ZXM/OiBib29sZWFuO1xyXG4vLyAgIGluY2x1ZGVTbGE/OiBib29sZWFuO1xyXG4vLyAgIGluY2x1ZGVBdHRhY2htZW50Q291bnQ/OiBib29sZWFuO1xyXG4vLyAgIGluY2x1ZGVOZXh0RHVlVGFzaz86IGJvb2xlYW47XHJcbi8vICAgY3VzdG9tUHJvY2VkdXJlPzogc3RyaW5nO1xyXG4vLyAgIHNlbGVjdD86IHN0cmluZztcclxuLy8gICBvcmRlckJ5Pzogc3RyaW5nO1xyXG4vLyAgIHNpdGVHcm91cHNGaWx0ZXI/OiBzdHJpbmc7XHJcbi8vICAgcGFnZT86IG51bWJlcjtcclxuLy8gICBwYWdlU2l6ZT86IG51bWJlclxyXG4vLyB9XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGlzIHVzZWQgdG8gcHJvdmlkZSB3b3JrIGludG8gdGhlIHdvcmsgaXRlbSBTdWJqZWN0L1xyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoRGVsaXZlcnlTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHVpU2VhcmNoRGVmaW5pdGlvblNlcnZpY2U6IFVpU2VhcmNoRGVmaW5pdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdvcmtTZWFyY2hTZXJ2aWNlOiBXb3JrU2VhcmNoRm91bmRhdGlvblNlcnZpY2UpXHJcbiAge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBzZWFyY2ggZGVmaW50aW9uLCBpbmNsdXNpbmcgdGhlIGZpZWxkcyB0byBiZSBzaG93biBieSBkZWZhdWx0LCB0aGUgc2VhcmNoIGZpZWxkc1xyXG4gICAqIGFuZCB0aGUgZGVmYXVsdCBzZWFyY2ggaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHNlYXJjaEZvcm0kIHB1Ymxpc2ggdGhlIG5ldyBzZWFyY2ggZGVmaW5pdGlvbiB0byB0aGlzIG9ic2VydmFibGUuXHJcbiAgICogQHBhcmFtIHNlYXJjaERlZmluaXRpb25JZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRTZWFyY2hEZWZpbml0aW9uKHNlYXJjaEZvcm0kOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoRm9ybU1vZGVsPiwgc2VhcmNoRGVmaW5pdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNlYXJjaEZvcm1Nb2RlbD4ge1xyXG4gICAgY29uc3Qgc3ViamVjdCQgPSBuZXcgU3ViamVjdDxTZWFyY2hGb3JtTW9kZWw+KCk7XHJcblxyXG4gICAgdGhpcy51aVNlYXJjaERlZmluaXRpb25TZXJ2aWNlLmdldChzZWFyY2hEZWZpbml0aW9uSWQpLnN1YnNjcmliZShcclxuICAgICAgc2VhcmNoRGVmaW5pdG9uID0+IHtcclxuICAgICAgICBsZXQgY3VycmVudCA9IHNlYXJjaEZvcm0kLmdldFZhbHVlKCk7XHJcbiAgICAgICAgbGV0IHVwZGF0ZWQ6IFNlYXJjaEZvcm1Nb2RlbCA9IHtcclxuICAgICAgICAgIC4uLmN1cnJlbnQsXHJcbiAgICAgICAgICAuLi5zZWFyY2hEZWZpbml0b24sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBzZWFyY2hGb3JtJC5uZXh0KHVwZGF0ZWQpO1xyXG4gICAgICAgIHN1YmplY3QkLm5leHQodXBkYXRlZCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yID0+IHN1YmplY3QkLmVycm9yKGVycm9yKSxcclxuICAgICAgKCkgPT4gc3ViamVjdCQuY29tcGxldGUoKVxyXG4gICAgKVxyXG5cclxuICAgIHJldHVybiAoc3ViamVjdCQpO1xyXG4gIH1cclxuXHJcbi8vICAgLyoqXHJcbi8vICAgICogUGVyZm9ybSBhIG5ldyBzZWFyY2ggd2l0aCBuZXcgc2VhcmNoIHByb2VwcnRpZXMuIFRoaXMgd2lsbCByZXBsYWNlIHRoZVxyXG4vLyAgICAqIHNlYXJjaCBwcm9wZXJ0aWVzIGluIHRoZSBTZWFyY2hSZXN1bHRzTW9kZWwgc28gdGhhdCB0aGV5IGNhbiBiZVxyXG4vLyAgICAqIHVzZWQgd2hlbiBwYWdpbmcgdGhvdWdodCB0aGUgcmVzdWx0cyB1c2luZyB0aGUgdXBkYXRlU2VhcmNoKCkgZnVuY3Rpb24uXHJcbi8vICAgICogQHBhcmFtIHNlYXJjaFJlc3VsdHMkXHJcbi8vICAgICogQHBhcmFtIHNlYXJjaEZvcm0kXHJcbi8vICAgICogQHBhcmFtIG9wdGlvbnNcclxuLy8gICAgKi9cclxuLy8gICBwdWJsaWMgcGVyZm9ybU5ld1NlYXJjaChcclxuLy8gICAgIHNlYXJjaFJlc3VsdHMkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPixcclxuLy8gICAgIHNlYXJjaEZvcm0kOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoRm9ybU1vZGVsPixcclxuLy8gICAgIG9wdGlvbnM/OiBQZXJmb3JtU2VhcmNoT3B0aW9ucyk6IFN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPlxyXG4vLyAgIHtcclxuLy8gICAgIGNvbnN0IHN1YmplY3QkID0gbmV3IFN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPigpO1xyXG4vLyAgICAgY29uc3QgY3VycmVudFJlc3VsdHM6IFNlYXJjaFJlc3VsdHNNb2RlbCA9IHNlYXJjaFJlc3VsdHMkLmdldFZhbHVlKCk7XHJcbi8vICAgICBjb25zdCBjdXJyZW50Rm9ybTogU2VhcmNoRm9ybU1vZGVsID0gc2VhcmNoRm9ybSQuZ2V0VmFsdWUoKTtcclxuXHJcbi8vICAgICBsZXQgZmlsdGVyID0gdGhpcy5idWlsZEZpbHRlcihjdXJyZW50Rm9ybS5wcm9wZXJ0aWVzKTtcclxuLy8gICAgIGxldCBzZWFyY2hEZWZpbml0aW9uSWQgPSBjdXJyZW50Rm9ybS5zZWFyY2hEZWZpbml0aW9uSWQ7XHJcbi8vICAgICBsZXQgZGVmYXVsdE9wdGlvbnMgPSB0aGlzLmFkZERlZmF1bHRTZWFyY2hPcHRpb25zKG9wdGlvbnMpIDtcclxuXHJcbi8vICAgICB0aGlzLndvcmtTZWFyY2hTZXJ2aWNlLmdldEZpbmRXb3JrSXRlbShzZWFyY2hEZWZpbml0aW9uSWQsIGZpbHRlciwgZGVmYXVsdE9wdGlvbnMpLnN1YnNjcmliZShcclxuLy8gICAgICAgcmVzdWx0cyA9PiB7XHJcbi8vICAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IFNlYXJjaFxyXG4vLyAgICAgICAgIGxldCBuZXdSZXN1bHRzID0gQ3JlYXRlQmxhbmtTZWFyY2hSZXN1bHQoKTtcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnNlYXJjaERlZmluaXRpb25JZCA9IGN1cnJlbnRGb3JtLnNlYXJjaERlZmluaXRpb25JZDtcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnBhZ2VTaXplID0gcmVzdWx0cy5wYWdlU2l6ZTtcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnBhZ2UgPSByZXN1bHRzLnBhZ2U7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy50b3RhbCA9IHJlc3VsdHMudG90YWw7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5zZWFyY2hGaWVsZHMgPSBjdXJyZW50Rm9ybS5zZWFyY2hGaWVsZHM7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5wcm9wZXJ0aWVzID0gY3VycmVudEZvcm0ucHJvcGVydGllcztcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnJlc3VsdHMgPSBudWxsIDsgLy8gdGhpcy5tYXBSZXN1bHRzKHJlc3VsdHMpO1xyXG5cclxuLy8gICAgICAgICBzZWFyY2hSZXN1bHRzJC5uZXh0KG5ld1Jlc3VsdHMpO1xyXG4vLyAgICAgICAgIHN1YmplY3QkLm5leHQobmV3UmVzdWx0cyk7XHJcbi8vICAgICAgIH0sXHJcbi8vICAgICAgIGVycm9yID0+IHN1YmplY3QkLmVycm9yKGVycm9yKSxcclxuLy8gICAgICAgKCkgPT4gc3ViamVjdCQuY29tcGxldGUoKVxyXG4vLyAgICAgKVxyXG4vLyAgICAgcmV0dXJuIChzdWJqZWN0JCk7XHJcbi8vICAgfVxyXG5cclxuLy8gICAvLy9cclxuLy8gICBwdWJsaWMgY2xlYXJSZXN1bHRzKHNlYXJjaFJlc3VsdHMkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0c01vZGVsPixcclxuLy8gICAgIHNlYXJjaEZvcm0kOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoRm9ybU1vZGVsPixcclxuLy8gICAgIG9wdGlvbnM/OiBQZXJmb3JtU2VhcmNoT3B0aW9ucyk6IHZvaWRcclxuLy8gICB7XHJcbi8vICAgICBjb25zdCBjdXJyZW50Rm9ybTogU2VhcmNoRm9ybU1vZGVsID0gc2VhcmNoRm9ybSQuZ2V0VmFsdWUoKTtcclxuXHJcbi8vICAgICBsZXQgZmlsdGVyID0gdGhpcy5idWlsZEZpbHRlcihjdXJyZW50Rm9ybS5wcm9wZXJ0aWVzKTtcclxuLy8gICAgIGxldCBzZWFyY2hEZWZpbml0aW9uSWQgPSBjdXJyZW50Rm9ybS5zZWFyY2hEZWZpbml0aW9uSWQ7XHJcbi8vICAgICBsZXQgZGVmYXVsdE9wdGlvbnMgPSB0aGlzLmFkZERlZmF1bHRTZWFyY2hPcHRpb25zKG9wdGlvbnMpIDtcclxuXHJcbi8vICAgICBsZXQgbmV3UmVzdWx0cyA9IENyZWF0ZUJsYW5rU2VhcmNoUmVzdWx0KCk7XHJcbi8vICAgICBuZXdSZXN1bHRzLnNlYXJjaERlZmluaXRpb25JZCA9IGN1cnJlbnRGb3JtLnNlYXJjaERlZmluaXRpb25JZDtcclxuLy8gICAgIG5ld1Jlc3VsdHMucGFnZVNpemUgPSAwO1xyXG4vLyAgICAgbmV3UmVzdWx0cy5wYWdlID0gMDtcclxuLy8gICAgIG5ld1Jlc3VsdHMudG90YWwgPSAwO1xyXG4vLyAgICAgbmV3UmVzdWx0cy5zZWFyY2hGaWVsZHMgPSBjdXJyZW50Rm9ybS5zZWFyY2hGaWVsZHM7XHJcbi8vICAgICBuZXdSZXN1bHRzLnByb3BlcnRpZXMgPSB1bmRlZmluZWQgO1xyXG4vLyAgICAgbmV3UmVzdWx0cy5yZXN1bHRzID0gW10gO1xyXG5cclxuLy8gICAgIHNlYXJjaFJlc3VsdHMkLm5leHQobmV3UmVzdWx0cyk7XHJcbi8vICAgfVxyXG5cclxuLy8gICAvKipcclxuLy8gICAgKiBVcGRhdGUgdGhlIFNlYXJjaFJlc3VsdHNNb2RlbCB3aXRoIG5ldyBkYXRhLCB0aGlzIGNvdWxkIGJlIGFzIGEgcmVzdWx0IG9yIGEgcGFnZSBtb3ZlIG9yXHJcbi8vICAgICogYSByZWZyZXNoLiBUaGUgc2FtZSBwcm9lcHJ0eSBmaWx0ZXIgaXMgdXNlZCBhcyBpbiB0aGUgcHJldmlvdXMgc2VhcmNoLCBzbyBubyBTZWFyY2hGb3JtXHJcbi8vICAgICogaXMgcmVxdWlyZWQuXHJcbi8vICAgICogaS5lLiB1c2UgdGhlIHVwZGF0ZVNlYXJjaCgpIGZ1bmN0aW9uIHdoZW4gcGFnaW5nIHRob3VnaHQgdGhlIHJlc3VsdHMuXHJcbi8vICAgICogQHBhcmFtIHNlYXJjaFJlc3VsdHMkXHJcbi8vICAgICogQHBhcmFtIG9wdGlvbnNcclxuLy8gICAgKi9cclxuLy8gICBwdWJsaWMgdXBkYXRlU2VhcmNoKFxyXG4vLyAgICAgc2VhcmNoUmVzdWx0cyQ6IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hSZXN1bHRzTW9kZWw+LFxyXG4vLyAgICAgb3B0aW9ucz86IFBlcmZvcm1TZWFyY2hPcHRpb25zKTogU3ViamVjdDxTZWFyY2hSZXN1bHRzTW9kZWw+XHJcbi8vICAge1xyXG4vLyAgICAgY29uc3Qgc3ViamVjdCQgPSBuZXcgU3ViamVjdDxTZWFyY2hSZXN1bHRzTW9kZWw+KCk7XHJcbi8vICAgICBjb25zdCBjdXJyZW50UmVzdWx0czogU2VhcmNoUmVzdWx0c01vZGVsID0gc2VhcmNoUmVzdWx0cyQuZ2V0VmFsdWUoKTtcclxuXHJcbi8vICAgICBsZXQgZmlsdGVyID0gdGhpcy5idWlsZEZpbHRlcihjdXJyZW50UmVzdWx0cy5wcm9wZXJ0aWVzKTtcclxuLy8gICAgIGxldCBzZWFyY2hEZWZpbml0aW9uSWQgPSBjdXJyZW50UmVzdWx0cy5zZWFyY2hEZWZpbml0aW9uSWQ7XHJcbi8vICAgICBsZXQgZGVmYXVsdE9wdGlvbnMgPSB0aGlzLmFkZERlZmF1bHRTZWFyY2hPcHRpb25zKG9wdGlvbnMpIDtcclxuXHJcbi8vICAgICB0aGlzLndvcmtTZWFyY2hTZXJ2aWNlLmdldEZpbmRXb3JrSXRlbShzZWFyY2hEZWZpbml0aW9uSWQsIGZpbHRlciwgZGVmYXVsdE9wdGlvbnMpLnN1YnNjcmliZShcclxuLy8gICAgICAgcmVzdWx0cyA9PiB7XHJcbi8vICAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IFNlYXJjaFxyXG4vLyAgICAgICAgIGxldCBuZXdSZXN1bHRzID0gQ3JlYXRlQmxhbmtTZWFyY2hSZXN1bHQoKTtcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnNlYXJjaERlZmluaXRpb25JZCA9IHNlYXJjaERlZmluaXRpb25JZDtcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnBhZ2VTaXplID0gcmVzdWx0cy5wYWdlU2l6ZTtcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnBhZ2UgPSByZXN1bHRzLnBhZ2U7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy50b3RhbCA9IHJlc3VsdHMudG90YWw7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5zZWFyY2hGaWVsZHMgPSBjdXJyZW50UmVzdWx0cy5zZWFyY2hGaWVsZHM7XHJcbi8vICAgICAgICAgbmV3UmVzdWx0cy5wcm9wZXJ0aWVzID0gY3VycmVudFJlc3VsdHMucHJvcGVydGllcztcclxuLy8gICAgICAgICBuZXdSZXN1bHRzLnJlc3VsdHMgPSB0aGlzLm1hcFJlc3VsdHMocmVzdWx0cyk7XHJcblxyXG4vLyAgICAgICAgIHNlYXJjaFJlc3VsdHMkLm5leHQobmV3UmVzdWx0cyk7XHJcbi8vICAgICAgICAgc3ViamVjdCQubmV4dChuZXdSZXN1bHRzKTtcclxuLy8gICAgICAgfSxcclxuLy8gICAgICAgZXJyb3IgPT4gc3ViamVjdCQuZXJyb3IoZXJyb3IpLFxyXG4vLyAgICAgICAoKSA9PiBzdWJqZWN0JC5jb21wbGV0ZSgpXHJcbi8vICAgICApXHJcbi8vICAgICByZXR1cm4gKHN1YmplY3QkKTtcclxuLy8gICB9XHJcblxyXG4vLyAgIGFkZERlZmF1bHRTZWFyY2hPcHRpb25zKG9wdGlvbnM6IFBlcmZvcm1TZWFyY2hPcHRpb25zKSA6IFBlcmZvcm1TZWFyY2hPcHRpb25zIHtcclxuLy8gICAgIGxldCBkZWZhdWx0T3B0aW9ucyA9IDxQZXJmb3JtU2VhcmNoT3B0aW9ucz57XHJcbi8vICAgICAgIC4uLm9wdGlvbnMsXHJcbi8vICAgICAgIGluY2x1ZGVTbGE6IHRydWUsXHJcbi8vICAgICAgIGluY2x1ZGVOZXh0RHVlVGFzazogdHJ1ZVxyXG4vLyAgICAgfVxyXG4vLyAgICAgcmV0dXJuIChkZWZhdWx0T3B0aW9ucykgO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgLyoqXHJcbi8vICAgICogVGhlIGRhdGEgdGhhdCBjb21lcyBiYWNrIGZyb20gdGhlIEFQSSBpcyBhIGNvbHVtbnMgZGVmaW50aW9uIGFuZCBhbiBhcnJheVxyXG4vLyAgICAqIG9mIGFycmF5IG9mIGRhdGEuIFdlIG5lZWQgdG8gbWFwIHRoaXMgaW50byBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdGhlIGNvbHVtbiBwcm9wZXJ0eVxyXG4vLyAgICAqIGlkIGFzIHRoZSBvYmplY3Qga2V5IHNvIHRoYXQgaXQncyBlYXNpZXIgdG8gaGFuZGxlIGJ5IHRoZSB0YWJsZS5cclxuLy8gICAgKiBAcGFyYW0gbW9kZWxcclxuLy8gICAgKi9cclxuLy8gICBwcml2YXRlIG1hcFJlc3VsdHMobW9kZWw6IEZvdW5kYXRpb25Xb3JrRmluZFdvcmtJdGVtUmVzdWx0TW9kZWwpOiBhbnlbXSB7XHJcblxyXG4vLyAgICAgbGV0IGRhdGE6IGFueVtdW10gPSBtb2RlbC5yZXN1bHRzO1xyXG4vLyAgICAgbGV0IHJlc3VsdHM6IGFueVtdO1xyXG5cclxuLy8gICAgIGlmIChtb2RlbCAmJiBtb2RlbC50b3RhbCA+IDAgJiYgbW9kZWwucmVzdWx0cyAmJiBtb2RlbC5jb2x1bW5zKSB7XHJcbi8vICAgICAgIGxldCBjb2xEZWZzOiBGb3VuZGF0aW9uV29ya0ZpbmRXb3JrSXRlbUNvbHVtbkRlZk1vZGVsW10gPSBtb2RlbC5jb2x1bW5zO1xyXG5cclxuLy8gICAgICAgcmVzdWx0cyA9IG1vZGVsLnJlc3VsdHMubWFwPGFueT4ociA9PiB7XHJcbi8vICAgICAgICAgbGV0IGRhdGFSb3c6IGFueVtdID0gcjtcclxuLy8gICAgICAgICBsZXQgb2JqZWN0Um93OiBhbnkgPSB7fTtcclxuLy8gICAgICAgICBmb3IgKHZhciBjOiBudW1iZXIgPSAwOyBjIDwgY29sRGVmcy5sZW5ndGg7IGMrKykge1xyXG4vLyAgICAgICAgICAgbGV0IGNvbHVtbkRlZiA9IGNvbERlZnNbY107XHJcbi8vICAgICAgICAgICBvYmplY3RSb3dbY29sdW1uRGVmLmNvZGVdID0gZGF0YVJvd1tjXTtcclxuLy8gICAgICAgICB9XHJcbi8vICAgICAgICAgcmV0dXJuIChvYmplY3RSb3cpO1xyXG4vLyAgICAgICB9KTtcclxuLy8gICAgIH1cclxuLy8gICAgIHJldHVybiByZXN1bHRzXHJcbi8vICAgfVxyXG5cclxuLy8gICAvKipcclxuLy8gICAgKiBUdXJuIGEgbGlzdCBvZiBwcm9wZXJ0aWVzIGludG8gYSBmaWx0ZXIgb2JqZWN0IHRoYXQgY2FuIGJlIHBhc3NlZCB0b1xyXG4vLyAgICAqIHRoZSB3b3JrIGl0ZW0gc2VhcmNoIG1ldGhvZC5cclxuLy8gICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgbGlzdCBvZiBwcm9wZXJ0aWVzIGZyb20gYSBTZWFyY2hGb3JtXHJcbi8vICAgICovXHJcbi8vICAgYnVpbGRGaWx0ZXIocHJvcGVydGllczogVUlQcm9wZXJ0eU1vZGVsW10pOiBTZWFyY2hGaWx0ZXIge1xyXG4vLyAgICAgbGV0IGZpbHRlcjogU2VhcmNoRmlsdGVyID0ge1xyXG4vLyAgICAgICBmaWx0ZXJzOiBbXVxyXG4vLyAgICAgfTtcclxuLy8gICAgIGlmIChwcm9wZXJ0aWVzICYmIHByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xyXG4vLyAgICAgICBwcm9wZXJ0aWVzLmZvckVhY2gocCA9PiB7XHJcbi8vICAgICAgICAgaWYgKHAudmFsdWUgJiYgcC52YWx1ZSAhPT0gXCJcIikge1xyXG4vLyAgICAgICAgICAgZmlsdGVyLmZpbHRlcnMucHVzaCg8U2VhcmNoRmlsdGVyRXhwcmVzc2lvbj57XHJcbi8vICAgICAgICAgICAgIGZpZWxkOiBwLnByb3BlcnR5SWQsXHJcbi8vICAgICAgICAgICAgIHZhbHVlOiBwLnZhbHVlXHJcbi8vICAgICAgICAgICB9KTtcclxuLy8gICAgICAgICB9XHJcbi8vICAgICAgIH0pO1xyXG4vLyAgICAgfVxyXG5cclxuLy8gICAgIHJldHVybiAoZmlsdGVyKTtcclxuLy8gICB9XHJcblxyXG59XHJcbiJdfQ==