ng-yunzai-mobile
Version:
1. 适配yunzai_uni_app_x
227 lines • 21.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: select-contacts/yz-select-contacts/yz-select-contacts.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Inject, Injectable } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { YzSelectContactsComponent } from './yz-select-contacts.component';
import { BASE_CLIENT } from '../../client/base.client';
import { TokenService } from "../../token/token.service";
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/dialog";
import * as i2 from "../../client/base.client";
import * as i3 from "@angular/common/http";
import * as i4 from "../../token/token.service";
export class YzSelectContactsService {
/**
* @param {?} dialog
* @param {?} client
* @param {?} http
* @param {?} tokenService
*/
constructor(dialog, client, http, tokenService) {
this.dialog = dialog;
this.client = client;
this.http = http;
this.tokenService = tokenService;
}
/**
* 选择人员
* @param {?} option
* @return {?}
*/
choosePeople(option) {
if (this.tokenService.get().accessToken) {
/** @type {?} */
const dialogRef = this.dialog.open(YzSelectContactsComponent, {
panelClass: 'yz-select-contacts-panel',
closeOnNavigation: true,
data: {
includeClass: option.includeClass == undefined ? true : option.includeClass,
includeHisClass: option.includeHisClass == undefined ? true : option.includeHisClass,
count: option.count == undefined ? 0 : option.count,
defaultContacts: option.defaultContacts == undefined ? [] : option.defaultContacts,
onlyStudent: option.onlyStudent == undefined ? false : option.onlyStudent,
userTypes: option.userTypes == undefined ? null : option.userTypes
}
});
dialogRef.afterClosed().subscribe((/**
* @param {?} result
* @return {?}
*/
result => {
if (option.onOk) {
option.onOk(result ? result : []);
}
}));
}
else {
alert('无法获取Token,请刷新!');
}
}
/**
* 查询部门树
* @param {?} includeClass 是否包含班级
* @param {?} includeHisClass 是否包含历史班级,只在includeClass=true时起作用
* @return {?}
*/
getDeptTree(includeClass, includeHisClass) {
/** @type {?} */
let url = `${this.client.gateway}/auth/baseDepartMent/tree`;
if (includeClass) {
if (includeHisClass) {
url = url + `?includeClass=true&includeHisClass=true`;
}
else {
url = url + `?includeClass=true&includeHisClass=false`;
}
}
else {
url = url + `?includeClass=false`;
}
return this.http.get(url).pipe(map((/**
* @param {?} response
* @return {?}
*/
(response) => {
return response.data ? response.data : [];
})));
}
/**
* 查询部门树->只选学生(系部+班级)
* @param {?} gradeId 年级id
* @param {?} includeClass
* @param {?} includeHisClass
* @return {?}
*/
getDeptTreeOnlyStu(gradeId, includeClass, includeHisClass) {
/** @type {?} */
let url;
if (gradeId) {
url = `${this.client.gateway}/auth/baseDepartMent/tree?gradeId=${gradeId}&deptTypes=2,class`;
if (includeClass) {
if (includeHisClass) {
url = url + `&includeClass=true&includeHisClass=true`;
}
else {
url = url + `&includeClass=true&includeHisClass=false`;
}
}
else {
url = url + `&includeClass=false`;
}
}
else {
url = `${this.client.gateway}/auth/baseDepartMent/tree?deptTypes=2,class`;
if (includeClass) {
if (includeHisClass) {
url = url + `&includeClass=true&includeHisClass=true`;
}
else {
url = url + `&includeClass=true&includeHisClass=false`;
}
}
else {
url = url + `&includeClass=false`;
}
}
return this.http.get(url).pipe(map((/**
* @param {?} response
* @return {?}
*/
(response) => {
return response.data ? response.data : [];
})));
}
/**
* 查询人员列表
* @param {?} pageNum 当前页面
* @param {?} pageSize 每页条数
* @param {?} realName 姓名
* @param {?} deptId 部门id
* @param {?} userTypes 用户类型1,2,3,4逗号拼接:查询普通部门的用户(不包括学生)传“1,4”;查询学生用户传“2,3”;查询所有用户不传
* @return {?}
*/
getBaseUser(pageNum, pageSize, realName, deptId, userTypes) {
return this.http.post(`${this.client.gateway}/auth/baseUser/queryListForPage`, {
"pageNum": pageNum,
"pageSize": pageSize,
"pageParam": {
"realName": realName,
"deptId": deptId,
"userTypes": userTypes
}
}).pipe(map((/**
* @param {?} response
* @return {?}
*/
(response) => {
return response ? response : null;
})));
}
/**
* 查询人员信息
* @param {?} userIds
* @return {?}
*/
getUserByUserIds(userIds) {
return this.http.post(`${this.client.gateway}/auth/baseUser/users`, {
userIds: userIds
}).pipe(map((/**
* @param {?} response
* @return {?}
*/
(response) => {
return response.data ? response.data : [];
})));
}
/**
* 查询年级
* @return {?}
*/
getGrade() {
return this.http.get(`${this.client.gateway}/auth/gradeYear/queryListForPage`).pipe(map((/**
* @param {?} response
* @return {?}
*/
(response) => {
return response.data ? response.data : [];
})));
}
}
YzSelectContactsService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
YzSelectContactsService.ctorParameters = () => [
{ type: MatDialog },
{ type: undefined, decorators: [{ type: Inject, args: [BASE_CLIENT,] }] },
{ type: HttpClient },
{ type: TokenService }
];
/** @nocollapse */ YzSelectContactsService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function YzSelectContactsService_Factory() { return new YzSelectContactsService(i0.ɵɵinject(i1.MatDialog), i0.ɵɵinject(i2.BASE_CLIENT), i0.ɵɵinject(i3.HttpClient), i0.ɵɵinject(i4.TokenService)); }, token: YzSelectContactsService, providedIn: "root" });
if (false) {
/** @type {?} */
YzSelectContactsService.prototype.dialog;
/**
* @type {?}
* @private
*/
YzSelectContactsService.prototype.client;
/**
* @type {?}
* @private
*/
YzSelectContactsService.prototype.http;
/**
* @type {?}
* @private
*/
YzSelectContactsService.prototype.tokenService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXotc2VsZWN0LWNvbnRhY3RzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy15dW56YWktbW9iaWxlLyIsInNvdXJjZXMiOlsic2VsZWN0LWNvbnRhY3RzL3l6LXNlbGVjdC1jb250YWN0cy95ei1zZWxlY3QtY29udGFjdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxXQUFXLEVBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQU12RCxNQUFNLE9BQU8sdUJBQXVCOzs7Ozs7O0lBRWxDLFlBQW1CLE1BQWlCLEVBQ0ssTUFBa0IsRUFDdkMsSUFBZ0IsRUFDaEIsWUFBMEI7UUFIM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNLLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUU5QyxDQUFDOzs7Ozs7SUFPRCxZQUFZLENBQUMsTUFBbUw7UUFDOUwsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRTs7a0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtnQkFDNUQsVUFBVSxFQUFFLDBCQUEwQjtnQkFDdEMsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsSUFBSSxFQUFFO29CQUNKLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDM0UsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlO29CQUNwRixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7b0JBQ25ELGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZTtvQkFDbEYsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXO29CQUN6RSxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVM7aUJBQ25FO2FBQ0YsQ0FBQztZQUNGLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTOzs7O1lBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtvQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDbkM7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7Ozs7Ozs7SUFRRCxXQUFXLENBQUMsWUFBcUIsRUFBRSxlQUF3Qjs7WUFDckQsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLDJCQUEyQjtRQUMzRCxJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsR0FBRyxHQUFHLEdBQUcsR0FBRyx5Q0FBeUMsQ0FBQTthQUN0RDtpQkFBTTtnQkFDTCxHQUFHLEdBQUcsR0FBRyxHQUFHLDBDQUEwQyxDQUFBO2FBQ3ZEO1NBQ0Y7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLEdBQUcscUJBQXFCLENBQUE7U0FDbEM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDNUIsR0FBRzs7OztRQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDcEIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7O0lBT0Qsa0JBQWtCLENBQUMsT0FBZSxFQUFFLFlBQXFCLEVBQUUsZUFBd0I7O1lBQzdFLEdBQUc7UUFDUCxJQUFJLE9BQU8sRUFBRTtZQUNYLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxxQ0FBcUMsT0FBTyxvQkFBb0IsQ0FBQztZQUU3RixJQUFJLFlBQVksRUFBRTtnQkFDaEIsSUFBSSxlQUFlLEVBQUU7b0JBQ25CLEdBQUcsR0FBRyxHQUFHLEdBQUcseUNBQXlDLENBQUE7aUJBQ3REO3FCQUFNO29CQUNMLEdBQUcsR0FBRyxHQUFHLEdBQUcsMENBQTBDLENBQUE7aUJBQ3ZEO2FBQ0Y7aUJBQU07Z0JBQ0wsR0FBRyxHQUFHLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQTthQUNsQztTQUVGO2FBQU07WUFDTCxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sNkNBQTZDLENBQUM7WUFFMUUsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksZUFBZSxFQUFFO29CQUNuQixHQUFHLEdBQUcsR0FBRyxHQUFHLHlDQUF5QyxDQUFBO2lCQUN0RDtxQkFBTTtvQkFDTCxHQUFHLEdBQUcsR0FBRyxHQUFHLDBDQUEwQyxDQUFBO2lCQUN2RDthQUNGO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxHQUFHLEdBQUcscUJBQXFCLENBQUE7YUFDbEM7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHOzs7O1FBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7Ozs7Ozs7OztJQVdELFdBQVcsQ0FBQyxPQUFlLEVBQUUsUUFBZ0IsRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxTQUFpQjtRQUNoRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGlDQUFpQyxFQUFFO1lBQzdFLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQUUsUUFBUTtnQkFDcEIsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLFdBQVcsRUFBRSxTQUFTO2FBQ3ZCO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHOzs7O1FBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEMsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7OztJQU9ELGdCQUFnQixDQUFDLE9BQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxzQkFBc0IsRUFBRTtZQUNsRSxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUc7Ozs7UUFBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVDLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7OztJQUtELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGtDQUFrQyxDQUFDLENBQUMsSUFBSSxDQUNqRixHQUFHOzs7O1FBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7O1lBM0pGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVZPLFNBQVM7NENBZUYsTUFBTSxTQUFDLFdBQVc7WUFkekIsVUFBVTtZQUtWLFlBQVk7Ozs7O0lBUU4seUNBQXdCOzs7OztJQUN4Qix5Q0FBK0M7Ozs7O0lBQy9DLHVDQUF3Qjs7Ozs7SUFDeEIsK0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7WXpTZWxlY3RDb250YWN0c0NvbXBvbmVudH0gZnJvbSAnLi95ei1zZWxlY3QtY29udGFjdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHtCQVNFX0NMSUVOVCwgQmFzZUNsaWVudH0gZnJvbSAnLi4vLi4vY2xpZW50L2Jhc2UuY2xpZW50JztcclxuaW1wb3J0IHtUb2tlblNlcnZpY2V9IGZyb20gXCIuLi8uLi90b2tlbi90b2tlbi5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWXpTZWxlY3RDb250YWN0c1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAgICAgICAgICAgQEluamVjdChCQVNFX0NMSUVOVCkgcHJpdmF0ZSBjbGllbnQ6IEJhc2VDbGllbnQsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdG9rZW5TZXJ2aWNlOiBUb2tlblNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICog6YCJ5oup5Lq65ZGYXHJcbiAgICogQHBhcmFtIG9wdGlvblxyXG4gICAqL1xyXG4gIGNob29zZVBlb3BsZShvcHRpb246IHsgaW5jbHVkZUNsYXNzPzogYm9vbGVhbiwgaW5jbHVkZUhpc0NsYXNzPzogYm9vbGVhbiwgY291bnQ/OiBudW1iZXIsIGRlZmF1bHRDb250YWN0cz86IEFycmF5PGFueT4sIG9ubHlTdHVkZW50PzogYm9vbGVhbiwgdXNlclR5cGVzPzogc3RyaW5nLCBvbk9rPzogKHZhbHVlOiBhbnkpID0+IHZvaWQgfSkge1xyXG4gICAgaWYgKHRoaXMudG9rZW5TZXJ2aWNlLmdldCgpLmFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oWXpTZWxlY3RDb250YWN0c0NvbXBvbmVudCwge1xyXG4gICAgICAgIHBhbmVsQ2xhc3M6ICd5ei1zZWxlY3QtY29udGFjdHMtcGFuZWwnLFxyXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGluY2x1ZGVDbGFzczogb3B0aW9uLmluY2x1ZGVDbGFzcyA9PSB1bmRlZmluZWQgPyB0cnVlIDogb3B0aW9uLmluY2x1ZGVDbGFzcyxcclxuICAgICAgICAgIGluY2x1ZGVIaXNDbGFzczogb3B0aW9uLmluY2x1ZGVIaXNDbGFzcyA9PSB1bmRlZmluZWQgPyB0cnVlIDogb3B0aW9uLmluY2x1ZGVIaXNDbGFzcyxcclxuICAgICAgICAgIGNvdW50OiBvcHRpb24uY291bnQgPT0gdW5kZWZpbmVkID8gMCA6IG9wdGlvbi5jb3VudCxcclxuICAgICAgICAgIGRlZmF1bHRDb250YWN0czogb3B0aW9uLmRlZmF1bHRDb250YWN0cyA9PSB1bmRlZmluZWQgPyBbXSA6IG9wdGlvbi5kZWZhdWx0Q29udGFjdHMsXHJcbiAgICAgICAgICBvbmx5U3R1ZGVudDogb3B0aW9uLm9ubHlTdHVkZW50ID09IHVuZGVmaW5lZCA/IGZhbHNlIDogb3B0aW9uLm9ubHlTdHVkZW50LFxyXG4gICAgICAgICAgdXNlclR5cGVzOiBvcHRpb24udXNlclR5cGVzID09IHVuZGVmaW5lZCA/IG51bGwgOiBvcHRpb24udXNlclR5cGVzXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKG9wdGlvbi5vbk9rKSB7XHJcbiAgICAgICAgICBvcHRpb24ub25PayhyZXN1bHQgPyByZXN1bHQgOiBbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFsZXJ0KCfml6Dms5Xojrflj5ZUb2tlbizor7fliLfmlrDvvIEnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDmn6Xor6Lpg6jpl6jmoJFcclxuICAgKiBAcGFyYW0gaW5jbHVkZUNsYXNzIOaYr+WQpuWMheWQq+ePree6p1xyXG4gICAqIEBwYXJhbSBpbmNsdWRlSGlzQ2xhc3Mg5piv5ZCm5YyF5ZCr5Y6G5Y+y54+t57qnLOWPquWcqGluY2x1ZGVDbGFzcz10cnVl5pe26LW35L2c55SoXHJcbiAgICovXHJcbiAgZ2V0RGVwdFRyZWUoaW5jbHVkZUNsYXNzOiBib29sZWFuLCBpbmNsdWRlSGlzQ2xhc3M6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+IHtcclxuICAgIGxldCB1cmwgPSBgJHt0aGlzLmNsaWVudC5nYXRld2F5fS9hdXRoL2Jhc2VEZXBhcnRNZW50L3RyZWVgO1xyXG4gICAgaWYgKGluY2x1ZGVDbGFzcykge1xyXG4gICAgICBpZiAoaW5jbHVkZUhpc0NsYXNzKSB7XHJcbiAgICAgICAgdXJsID0gdXJsICsgYD9pbmNsdWRlQ2xhc3M9dHJ1ZSZpbmNsdWRlSGlzQ2xhc3M9dHJ1ZWBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cmwgPSB1cmwgKyBgP2luY2x1ZGVDbGFzcz10cnVlJmluY2x1ZGVIaXNDbGFzcz1mYWxzZWBcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID0gdXJsICsgYD9pbmNsdWRlQ2xhc3M9ZmFsc2VgXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhID8gcmVzcG9uc2UuZGF0YSA6IFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDmn6Xor6Lpg6jpl6jmoJEtPuWPqumAieWtpueUn++8iOezu+mDqCvnj63nuqfvvIlcclxuICAgKiBAcGFyYW0gZ3JhZGVJZCDlubTnuqdpZFxyXG4gICAqL1xyXG4gIGdldERlcHRUcmVlT25seVN0dShncmFkZUlkOiBzdHJpbmcsIGluY2x1ZGVDbGFzczogYm9vbGVhbiwgaW5jbHVkZUhpc0NsYXNzOiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcbiAgICBsZXQgdXJsO1xyXG4gICAgaWYgKGdyYWRlSWQpIHtcclxuICAgICAgdXJsID0gYCR7dGhpcy5jbGllbnQuZ2F0ZXdheX0vYXV0aC9iYXNlRGVwYXJ0TWVudC90cmVlP2dyYWRlSWQ9JHtncmFkZUlkfSZkZXB0VHlwZXM9MixjbGFzc2A7XHJcblxyXG4gICAgICBpZiAoaW5jbHVkZUNsYXNzKSB7XHJcbiAgICAgICAgaWYgKGluY2x1ZGVIaXNDbGFzcykge1xyXG4gICAgICAgICAgdXJsID0gdXJsICsgYCZpbmNsdWRlQ2xhc3M9dHJ1ZSZpbmNsdWRlSGlzQ2xhc3M9dHJ1ZWBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJsID0gdXJsICsgYCZpbmNsdWRlQ2xhc3M9dHJ1ZSZpbmNsdWRlSGlzQ2xhc3M9ZmFsc2VgXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVybCA9IHVybCArIGAmaW5jbHVkZUNsYXNzPWZhbHNlYFxyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID0gYCR7dGhpcy5jbGllbnQuZ2F0ZXdheX0vYXV0aC9iYXNlRGVwYXJ0TWVudC90cmVlP2RlcHRUeXBlcz0yLGNsYXNzYDtcclxuXHJcbiAgICAgIGlmIChpbmNsdWRlQ2xhc3MpIHtcclxuICAgICAgICBpZiAoaW5jbHVkZUhpc0NsYXNzKSB7XHJcbiAgICAgICAgICB1cmwgPSB1cmwgKyBgJmluY2x1ZGVDbGFzcz10cnVlJmluY2x1ZGVIaXNDbGFzcz10cnVlYFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB1cmwgPSB1cmwgKyBgJmluY2x1ZGVDbGFzcz10cnVlJmluY2x1ZGVIaXNDbGFzcz1mYWxzZWBcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdXJsID0gdXJsICsgYCZpbmNsdWRlQ2xhc3M9ZmFsc2VgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIOafpeivouS6uuWRmOWIl+ihqFxyXG4gICAqIEBwYXJhbSBwYWdlTnVtIOW9k+WJjemhtemdolxyXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSDmr4/pobXmnaHmlbBcclxuICAgKiBAcGFyYW0gcmVhbE5hbWUg5aeT5ZCNXHJcbiAgICogQHBhcmFtIGRlcHRJZCDpg6jpl6hpZFxyXG4gICAqIEBwYXJhbSB1c2VyVHlwZXMg55So5oi357G75Z6LMSwyLDMsNOmAl+WPt+aLvOaOpe+8muafpeivouaZrumAmumDqOmXqOeahOeUqOaIt++8iOS4jeWMheaLrOWtpueUn++8ieS8oOKAnDEsNOKAne+8m+afpeivouWtpueUn+eUqOaIt+S8oOKAnDIsM+KAne+8m+afpeivouaJgOacieeUqOaIt+S4jeS8oFxyXG4gICAqL1xyXG4gIGdldEJhc2VVc2VyKHBhZ2VOdW06IG51bWJlciwgcGFnZVNpemU6IG51bWJlciwgcmVhbE5hbWU6IHN0cmluZywgZGVwdElkOiBzdHJpbmcsIHVzZXJUeXBlczogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnQuZ2F0ZXdheX0vYXV0aC9iYXNlVXNlci9xdWVyeUxpc3RGb3JQYWdlYCwge1xyXG4gICAgICBcInBhZ2VOdW1cIjogcGFnZU51bSxcclxuICAgICAgXCJwYWdlU2l6ZVwiOiBwYWdlU2l6ZSxcclxuICAgICAgXCJwYWdlUGFyYW1cIjoge1xyXG4gICAgICAgIFwicmVhbE5hbWVcIjogcmVhbE5hbWUsXHJcbiAgICAgICAgXCJkZXB0SWRcIjogZGVwdElkLFxyXG4gICAgICAgIFwidXNlclR5cGVzXCI6IHVzZXJUeXBlc1xyXG4gICAgICB9XHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2UgPyByZXNwb25zZSA6IG51bGw7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIOafpeivouS6uuWRmOS/oeaBr1xyXG4gICAqIEBwYXJhbSB1c2VySWRzW10g55So5oi3aWTmlbDnu4QsW1wiYWFhXCIsXCJiYmJcIixcImNjY1wiXVxyXG4gICAqL1xyXG4gIGdldFVzZXJCeVVzZXJJZHModXNlcklkczogYW55KTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnQuZ2F0ZXdheX0vYXV0aC9iYXNlVXNlci91c2Vyc2AsIHtcclxuICAgICAgdXNlcklkczogdXNlcklkc1xyXG4gICAgfSkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5p+l6K+i5bm057qnXHJcbiAgICovXHJcbiAgZ2V0R3JhZGUoKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudC5nYXRld2F5fS9hdXRoL2dyYWRlWWVhci9xdWVyeUxpc3RGb3JQYWdlYCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgPyByZXNwb25zZS5kYXRhIDogW107XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==