UNPKG

ntk-cms-api

Version:

Ntk Cms Api And Model For Typscript

253 lines 36.5 kB
import { Injectable } from '@angular/core'; import { map, retry } from 'rxjs/operators'; import { CoreModuleReportAbuseDtoModel } from '../../models/dto/core-module/coreModuleReportAbuseDtoModel'; import { EstatePropertyFilterModel } from '../../models/filters/estate/estatePropertyFilterModel'; import { ApiCmsServerBase } from '../base/apiCmsServerBase.service'; import { FilterModel } from '../../models/entity/base/filterModel'; import * as i0 from "@angular/core"; export class EstatePropertyService extends ApiCmsServerBase { getModuleControllerUrl() { return 'EstateProperty'; } ServiceActionSendSmsToCustomerOrder(Id) { return this.http .get(this.getBaseUrl() + this.getModuleControllerUrl() + '/ActionSendSmsToCustomerOrder/' + Id, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceActionSendSms(model) { return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/ActionSendSms/', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceFavoriteAdd(Id) { return this.http .get(this.getBaseUrl() + this.getModuleControllerUrl() + '/FavoriteAdd/' + Id, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceFavoriteRemove(Id) { return this.http .get(this.getBaseUrl() + this.getModuleControllerUrl() + '/FavoriteRemove/' + Id, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceFavoriteList(model) { if (model == null) { model = new EstatePropertyFilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/FavoriteList', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceReportAbuseAdd(model) { if (model == null) { model = new CoreModuleReportAbuseDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/ReportAbuseAdd', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceReportAbuseList(model) { if (model == null) { model = new EstatePropertyFilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/ReportAbuseList', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCoverBillboardId(BillboardId, model) { if (model == null) { model = new EstatePropertyFilterModel(); } if (!BillboardId || BillboardId.length === 0) { BillboardId = '00'; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCoverBillboardId/' + BillboardId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCoverCategoryRackFolderId(RackFolderId, model) { if (model == null) { model = new EstatePropertyFilterModel(); } if (!RackFolderId || RackFolderId.length === 0) { RackFolderId = '00'; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCoverCategoryRackFolderId/' + RackFolderId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCoverCategoryZoneId(ZoneId, model) { if (model == null) { model = new EstatePropertyFilterModel(); } if (!ZoneId || ZoneId.length === 0) { ZoneId = '00'; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCoverCategoryZoneId/' + ZoneId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCoverCustomerOrderId(CustomerOrderId, model) { if (model == null) { model = new EstatePropertyFilterModel(); } if (!CustomerOrderId || CustomerOrderId.length === 0) { CustomerOrderId = '00'; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCoverCustomerOrderId/' + CustomerOrderId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCoverCustomerOrderIdHaveHistory(CustomerOrderId, model) { if (model == null) { model = new EstatePropertyFilterModel(); } if (!CustomerOrderId || CustomerOrderId.length === 0) { CustomerOrderId = '00'; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCoverCustomerOrderIdHaveHistory/' + CustomerOrderId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCoverCustomerOrderIdExportFile(CustomerOrderId, model) { // this.loadingStatus=true; if (model == null) { model = new EstatePropertyFilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCoverCustomerOrderIdExportFile/' + CustomerOrderId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheckExportFile(ret); })); } ServiceGetAllResponsibleUserId(id, model) { if (model == null) { model = new FilterModel(); } if (!id || id.length <= 0) { id = ''; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllResponsibleUserId/' + id, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithResponsibleUserId(userId, model) { if (model == null) { model = new EstatePropertyFilterModel(); } if (!userId || userId < 0) { userId = 0; } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithResponsibleUserId/' + userId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithResponsibleUserIdExportFile(userId, model) { // this.loadingStatus=true; if (model == null) { model = new EstatePropertyFilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithResponsibleUserIdExportFile/' + userId, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheckExportFile(ret); })); } } EstatePropertyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EstatePropertyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); EstatePropertyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EstatePropertyService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EstatePropertyService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXN0YXRlUHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvc2VydmljZS9lc3RhdGUvZXN0YXRlUHJvcGVydHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFNM0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQUtuRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZ0JBQXdFO0lBQ2pILHNCQUFzQjtRQUNwQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFDRCxtQ0FBbUMsQ0FBQyxFQUFVO1FBRTVDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLGdDQUFnQyxHQUFHLEVBQUUsRUFBRTtZQUM5RixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtTQUMzQixDQUFDO2FBQ0QsSUFBSSxDQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFCLCtCQUErQjtRQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixD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cnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZVJlcG9ydEFidXNlRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbW9kdWxlL2NvcmVNb2R1bGVSZXBvcnRBYnVzZUR0b01vZGVsJztcclxuaW1wb3J0IHsgRXN0YXRlUHJvcGVydHlBY3Rpb25TZW5kU21zRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2VzdGF0ZS9lc3RhdGVQcm9wZXJ0eUFjdGlvblNlbmRTbXNEdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0RXhwb3J0RmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvYmFzZS9lcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGUnO1xyXG5pbXBvcnQgeyBFc3RhdGVQcm9wZXJ0eU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9lc3RhdGUvZXN0YXRlUHJvcGVydHlNb2RlbCc7XHJcbmltcG9ydCB7IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVycy9lc3RhdGUvZXN0YXRlUHJvcGVydHlGaWx0ZXJNb2RlbCc7XHJcbmltcG9ydCB7IEFwaUNtc1NlcnZlckJhc2UgfSBmcm9tICcuLi9iYXNlL2FwaUNtc1NlcnZlckJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2ZpbHRlck1vZGVsJztcclxuaW1wb3J0IHsgQ29yZVVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS1tYWluL2NvcmVVc2VyTW9kZWwnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEVzdGF0ZVByb3BlcnR5U2VydmljZSBleHRlbmRzIEFwaUNtc1NlcnZlckJhc2U8RXN0YXRlUHJvcGVydHlNb2RlbCwgc3RyaW5nLCBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsPiB7XHJcbiAgZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdFc3RhdGVQcm9wZXJ0eSc7XHJcbiAgfVxyXG4gIFNlcnZpY2VBY3Rpb25TZW5kU21zVG9DdXN0b21lck9yZGVyKElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9BY3Rpb25TZW5kU21zVG9DdXN0b21lck9yZGVyLycgKyBJZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlQ2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUFjdGlvblNlbmRTbXMobW9kZWw6IEVzdGF0ZVByb3BlcnR5QWN0aW9uU2VuZFNtc0R0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0FjdGlvblNlbmRTbXMvJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZUNoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VGYXZvcml0ZUFkZChJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvRmF2b3JpdGVBZGQvJyArIElkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdEJhc2VDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUZhdm9yaXRlUmVtb3ZlKElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9GYXZvcml0ZVJlbW92ZS8nICsgSWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZUNoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VGYXZvcml0ZUxpc3QobW9kZWw6IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEVzdGF0ZVByb3BlcnR5TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0Zhdm9yaXRlTGlzdCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VSZXBvcnRBYnVzZUFkZChtb2RlbDogQ29yZU1vZHVsZVJlcG9ydEFidXNlRHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEVzdGF0ZVByb3BlcnR5TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBDb3JlTW9kdWxlUmVwb3J0QWJ1c2VEdG9Nb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9SZXBvcnRBYnVzZUFkZCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VSZXBvcnRBYnVzZUxpc3QobW9kZWw6IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEVzdGF0ZVByb3BlcnR5TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1JlcG9ydEFidXNlTGlzdCcsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlR2V0QWxsV2l0aENvdmVyQmlsbGJvYXJkSWQoQmlsbGJvYXJkSWQ6IHN0cmluZywgbW9kZWw6IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEVzdGF0ZVByb3BlcnR5TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUJpbGxib2FyZElkIHx8IEJpbGxib2FyZElkLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBCaWxsYm9hcmRJZCA9ICcwMCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhDb3ZlckJpbGxib2FyZElkLycgKyBCaWxsYm9hcmRJZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhDb3ZlckNhdGVnb3J5UmFja0ZvbGRlcklkKFJhY2tGb2xkZXJJZDogc3RyaW5nLCBtb2RlbDogRXN0YXRlUHJvcGVydHlGaWx0ZXJNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8RXN0YXRlUHJvcGVydHlNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwoKTtcclxuICAgIH1cclxuICAgIGlmICghUmFja0ZvbGRlcklkIHx8IFJhY2tGb2xkZXJJZC5sZW5ndGggPT09IDApIHtcclxuICAgICAgUmFja0ZvbGRlcklkID0gJzAwJztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvR2V0QWxsV2l0aENvdmVyQ2F0ZWdvcnlSYWNrRm9sZGVySWQvJyArIFJhY2tGb2xkZXJJZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhDb3ZlckNhdGVnb3J5Wm9uZUlkKFpvbmVJZDogc3RyaW5nLCBtb2RlbDogRXN0YXRlUHJvcGVydHlGaWx0ZXJNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8RXN0YXRlUHJvcGVydHlNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwoKTtcclxuICAgIH1cclxuICAgIGlmICghWm9uZUlkIHx8IFpvbmVJZC5sZW5ndGggPT09IDApIHtcclxuICAgICAgWm9uZUlkID0gJzAwJztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvR2V0QWxsV2l0aENvdmVyQ2F0ZWdvcnlab25lSWQvJyArIFpvbmVJZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhDb3ZlckN1c3RvbWVyT3JkZXJJZChDdXN0b21lck9yZGVySWQ6IHN0cmluZywgbW9kZWw6IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEVzdGF0ZVByb3BlcnR5TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIUN1c3RvbWVyT3JkZXJJZCB8fCBDdXN0b21lck9yZGVySWQubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIEN1c3RvbWVyT3JkZXJJZCA9ICcwMCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhDb3ZlckN1c3RvbWVyT3JkZXJJZC8nICsgQ3VzdG9tZXJPcmRlcklkLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlR2V0QWxsV2l0aENvdmVyQ3VzdG9tZXJPcmRlcklkSGF2ZUhpc3RvcnkoQ3VzdG9tZXJPcmRlcklkOiBzdHJpbmcsIG1vZGVsOiBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxFc3RhdGVQcm9wZXJ0eU1vZGVsPj4ge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgRXN0YXRlUHJvcGVydHlGaWx0ZXJNb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFDdXN0b21lck9yZGVySWQgfHwgQ3VzdG9tZXJPcmRlcklkLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBDdXN0b21lck9yZGVySWQgPSAnMDAnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRBbGxXaXRoQ292ZXJDdXN0b21lck9yZGVySWRIYXZlSGlzdG9yeS8nICsgQ3VzdG9tZXJPcmRlcklkLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlR2V0QWxsV2l0aENvdmVyQ3VzdG9tZXJPcmRlcklkRXhwb3J0RmlsZShDdXN0b21lck9yZGVySWQ6IHN0cmluZywgbW9kZWw6IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0RXhwb3J0RmlsZT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU3RhdHVzPXRydWU7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhDb3ZlckN1c3RvbWVyT3JkZXJJZEV4cG9ydEZpbGUvJyArIEN1c3RvbWVyT3JkZXJJZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2tFeHBvcnRGaWxlKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZXRBbGxSZXNwb25zaWJsZVVzZXJJZChpZDogc3RyaW5nLCBtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PENvcmVVc2VyTW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBGaWx0ZXJNb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpZCB8fCBpZC5sZW5ndGggPD0wKSB7XHJcbiAgICAgIGlkID0gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFJlc3BvbnNpYmxlVXNlcklkLycgKyBpZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhSZXNwb25zaWJsZVVzZXJJZCh1c2VySWQ6IG51bWJlciwgbW9kZWw6IEVzdGF0ZVByb3BlcnR5RmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEVzdGF0ZVByb3BlcnR5TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXVzZXJJZCB8fCB1c2VySWQgPCAwKSB7XHJcbiAgICAgIHVzZXJJZCA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhSZXNwb25zaWJsZVVzZXJJZC8nICsgdXNlcklkLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUdldEFsbFdpdGhSZXNwb25zaWJsZVVzZXJJZEV4cG9ydEZpbGUodXNlcklkOiBudW1iZXIsIG1vZGVsOiBFc3RhdGVQcm9wZXJ0eUZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEV4cG9ydEZpbGU+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1N0YXR1cz10cnVlO1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgRXN0YXRlUHJvcGVydHlGaWx0ZXJNb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRBbGxXaXRoUmVzcG9uc2libGVVc2VySWRFeHBvcnRGaWxlLycgKyB1c2VySWQsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrRXhwb3J0RmlsZShyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=