You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
335 lines
35 KiB
335 lines
35 KiB
"use strict";
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
};
|
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
function step(op) {
|
|
if (f) throw new TypeError("Generator is already executing.");
|
|
while (_) try {
|
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
switch (op[0]) {
|
|
case 0: case 1: t = op; break;
|
|
case 4: _.label++; return { value: op[1], done: false };
|
|
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
default:
|
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
if (t[2]) _.ops.pop();
|
|
_.trys.pop(); continue;
|
|
}
|
|
op = body.call(thisArg, _);
|
|
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
}
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var basicReality_1 = require("../../../../../../api/basicReality");
|
|
Component({
|
|
data: {
|
|
streetContentList: [],
|
|
upOrDownStatus: 'down',
|
|
selectCondition: {
|
|
label: '组织活动总次数',
|
|
value: '0'
|
|
},
|
|
conditionOrder: 'asc',
|
|
conditionListVisible: false,
|
|
conditionList: [
|
|
{ value: '0', label: '组织活动总次数' },
|
|
{ value: '1', label: '参加活动总人数' },
|
|
{ value: '2', label: '省市级和区直机关-组织次数' },
|
|
{ value: '3', label: '省市级和区直机关-参与人数' },
|
|
{ value: '4', label: '驻区企事业单位-组织次数' },
|
|
{ value: '5', label: '驻区企事业单位-参加人数' },
|
|
{ value: '6', label: '驻区两新组织-组织次数' },
|
|
{ value: '7', label: '驻区两新组织-参加次数' }
|
|
],
|
|
developSituation: {},
|
|
unionAmount: {
|
|
resourceAmountTotal: 0,
|
|
resourceTimes: 0,
|
|
averageAmount: 0
|
|
},
|
|
categoryList: [
|
|
{ value: '21', label: '省级、市级和区直机关' },
|
|
{ value: '23', label: '驻区企事业单位' },
|
|
{ value: '24', label: '驻区两新组织' }
|
|
],
|
|
selectUnionCondition: {
|
|
value: '21',
|
|
label: '省级、市级和区直机关'
|
|
},
|
|
unionConditionVisible: false,
|
|
developSituationLineChart: {},
|
|
streetPreloadContentList: [
|
|
{ detailList: [1, 2], contentList: [1, 2, 3] },
|
|
{ detailList: [1, 2], contentList: [1, 2, 3] },
|
|
{ detailList: [1, 2], contentList: [1, 2, 3] }
|
|
],
|
|
preloadVisible: true,
|
|
streetId: '',
|
|
timeId: '',
|
|
deptNum: ''
|
|
},
|
|
lifetimes: {
|
|
attached: function () {
|
|
this.analysisOfBranch();
|
|
this.getResourceAmount();
|
|
this.deptAnalysisOfBranch();
|
|
this.rankingOfDevelopment();
|
|
}
|
|
},
|
|
methods: {
|
|
onUpOrDown: function () {
|
|
this.setData({
|
|
upOrDownStatus: this.data.upOrDownStatus === 'up' ? 'down' : 'up'
|
|
});
|
|
},
|
|
onShowConditionList: function () {
|
|
this.setData({
|
|
conditionListVisible: !this.data.conditionListVisible
|
|
});
|
|
},
|
|
onChangeCondition: function (e) {
|
|
var _this = this;
|
|
this.setData({
|
|
conditionListVisible: false,
|
|
preloadVisible: true,
|
|
streetContentList: []
|
|
});
|
|
var condition = e.currentTarget.dataset.condition;
|
|
this.data.conditionList.forEach(function (item) {
|
|
if (item.value === condition) {
|
|
_this.setData({
|
|
selectCondition: {
|
|
label: item.label,
|
|
value: item.value
|
|
}
|
|
});
|
|
}
|
|
});
|
|
this.rankingOfDevelopment();
|
|
},
|
|
onChangeConditionOrder: function () {
|
|
this.setData({
|
|
conditionOrder: this.data.conditionOrder === 'asc' ? 'desc' : 'asc',
|
|
preloadVisible: true,
|
|
streetContentList: []
|
|
});
|
|
this.rankingOfDevelopment();
|
|
},
|
|
analysisOfBranch: function () {
|
|
return __awaiter(this, void 0, void 0, function () {
|
|
var para, res, err_1;
|
|
return __generator(this, function (_a) {
|
|
switch (_a.label) {
|
|
case 0:
|
|
para = {
|
|
streetId: this.data.streetId,
|
|
someMonthsType: this.data.timeId,
|
|
categoryType: '1'
|
|
};
|
|
_a.label = 1;
|
|
case 1:
|
|
_a.trys.push([1, 3, , 4]);
|
|
return [4, basicReality_1.analysisOfBranch(para)];
|
|
case 2:
|
|
res = _a.sent();
|
|
console.log('联建共建开展情况图表数据', res);
|
|
Object.assign(this.data.developSituation, res.data);
|
|
this.setData({
|
|
developSituation: this.data.developSituation
|
|
});
|
|
return [3, 4];
|
|
case 3:
|
|
err_1 = _a.sent();
|
|
console.error(err_1);
|
|
return [3, 4];
|
|
case 4: return [2];
|
|
}
|
|
});
|
|
});
|
|
},
|
|
getResourceAmount: function () {
|
|
return __awaiter(this, void 0, void 0, function () {
|
|
var para, res, err_2;
|
|
return __generator(this, function (_a) {
|
|
switch (_a.label) {
|
|
case 0:
|
|
para = {
|
|
streetId: this.data.streetId,
|
|
someMonthsType: this.data.timeId
|
|
};
|
|
_a.label = 1;
|
|
case 1:
|
|
_a.trys.push([1, 3, , 4]);
|
|
return [4, basicReality_1.getResourceAmount(para)];
|
|
case 2:
|
|
res = _a.sent();
|
|
console.log('联建共建资源整合金额', res);
|
|
Object.assign(this.data.unionAmount, res.data);
|
|
this.setData({
|
|
unionAmount: this.data.unionAmount
|
|
});
|
|
return [3, 4];
|
|
case 3:
|
|
err_2 = _a.sent();
|
|
console.error(err_2);
|
|
return [3, 4];
|
|
case 4: return [2];
|
|
}
|
|
});
|
|
});
|
|
},
|
|
onShowUnionConditionList: function () {
|
|
this.setData({
|
|
unionConditionVisible: !this.data.unionConditionVisible
|
|
});
|
|
},
|
|
onChnageUnionCondition: function (e) {
|
|
var _this = this;
|
|
var condition = e.currentTarget.dataset.condition;
|
|
this.data.categoryList.forEach(function (item) {
|
|
if (item.value === condition) {
|
|
_this.setData({
|
|
selectUnionCondition: {
|
|
label: item.label,
|
|
value: item.value
|
|
},
|
|
unionConditionVisible: false
|
|
});
|
|
}
|
|
});
|
|
this.deptAnalysisOfBranch();
|
|
},
|
|
deptAnalysisOfBranch: function () {
|
|
return __awaiter(this, void 0, void 0, function () {
|
|
var para, res, _a, categoryList, joinNumList, organizationsCountList, averageNum, err_3;
|
|
return __generator(this, function (_b) {
|
|
switch (_b.label) {
|
|
case 0:
|
|
para = {
|
|
streetId: this.data.streetId,
|
|
someMonthsType: this.data.timeId,
|
|
categoryCode: this.data.selectUnionCondition.value
|
|
};
|
|
_b.label = 1;
|
|
case 1:
|
|
_b.trys.push([1, 3, , 4]);
|
|
return [4, basicReality_1.deptAnalysisOfBranch(para)];
|
|
case 2:
|
|
res = _b.sent();
|
|
console.log('联建共建折线图', res);
|
|
_a = res.data, categoryList = _a.categoryList, joinNumList = _a.joinNumList, organizationsCountList = _a.organizationsCountList, averageNum = _a.averageNum;
|
|
Object.assign(this.data.developSituationLineChart, { categoryList: categoryList, joinNumList: joinNumList, organizationsCountList: organizationsCountList, averageNum: averageNum });
|
|
this.setData({
|
|
developSituationLineChart: this.data.developSituationLineChart,
|
|
deptNum: res.data.deptNum
|
|
});
|
|
return [3, 4];
|
|
case 3:
|
|
err_3 = _b.sent();
|
|
console.error(err_3);
|
|
return [3, 4];
|
|
case 4: return [2];
|
|
}
|
|
});
|
|
});
|
|
},
|
|
rankingOfDevelopment: function () {
|
|
return __awaiter(this, void 0, void 0, function () {
|
|
var para, res, list_1, err_4;
|
|
return __generator(this, function (_a) {
|
|
switch (_a.label) {
|
|
case 0:
|
|
para = {
|
|
streetId: this.data.streetId,
|
|
someMonthsType: this.data.timeId,
|
|
order: this.data.conditionOrder === 'asc' ? '0' : '1',
|
|
type: this.data.selectCondition.value
|
|
};
|
|
_a.label = 1;
|
|
case 1:
|
|
_a.trys.push([1, 3, , 4]);
|
|
return [4, basicReality_1.rankingOfDevelopment(para)];
|
|
case 2:
|
|
res = _a.sent();
|
|
console.log('联建共建开展情况排名', res);
|
|
list_1 = [];
|
|
if (res.data.streetList && res.data.streetList.length > 0) {
|
|
res.data.streetList.forEach(function (street) {
|
|
var contentList = [];
|
|
street.categoryInfoList.forEach(function (category) {
|
|
contentList.push({
|
|
name: category.categoryName,
|
|
organizationNum: category.organizationsCount,
|
|
enterNum: category.joinNum
|
|
});
|
|
});
|
|
var detailList = [
|
|
{ name: '组织总次数', num: street.allOrganizationsCount },
|
|
{ name: '参加总次数', num: street.allJoinNumCount }
|
|
];
|
|
list_1.push({
|
|
contentList: contentList,
|
|
detailList: detailList,
|
|
streetName: street.deptname
|
|
});
|
|
});
|
|
}
|
|
this.setData({
|
|
streetContentList: list_1,
|
|
preloadVisible: false
|
|
});
|
|
return [3, 4];
|
|
case 3:
|
|
err_4 = _a.sent();
|
|
this.setData({
|
|
streetContentList: [],
|
|
preloadVisible: false
|
|
});
|
|
console.error(err_4);
|
|
return [3, 4];
|
|
case 4: return [2];
|
|
}
|
|
});
|
|
});
|
|
},
|
|
chooseStreetId: function (e) {
|
|
this.setData({
|
|
streetId: e.detail,
|
|
streetContentList: [],
|
|
preloadVisible: true
|
|
});
|
|
this.rankingOfDevelopment();
|
|
this.deptAnalysisOfBranch();
|
|
this.getResourceAmount();
|
|
this.analysisOfBranch();
|
|
},
|
|
chooseTimeId: function (e) {
|
|
this.setData({
|
|
timeId: e.detail,
|
|
streetContentList: [],
|
|
preloadVisible: true
|
|
});
|
|
this.rankingOfDevelopment();
|
|
this.deptAnalysisOfBranch();
|
|
this.getResourceAmount();
|
|
this.analysisOfBranch();
|
|
}
|
|
}
|
|
});
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pb25Db25zdHJ1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1bmlvbkNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1FQUFvSTtBQUVwSSxTQUFTLENBQUM7SUFDUixJQUFJLEVBQUU7UUFDSixpQkFBaUIsRUFBRSxFQUFFO1FBQ3JCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGVBQWUsRUFBRTtZQUNmLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEtBQUssRUFBRSxHQUFHO1NBQ1g7UUFDRCxjQUFjLEVBQUUsS0FBSztRQUNyQixvQkFBb0IsRUFBRSxLQUFLO1FBQzNCLGFBQWEsRUFBRTtZQUNiLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1NBQ3JDO1FBQ0QsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixXQUFXLEVBQUU7WUFDWCxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLGFBQWEsRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsWUFBWSxFQUFFO1lBQ1osRUFB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LENBQUM7Z0JBQ1gsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNO2dCQUNsQixpQkFBaUIsRUFBRSxFQUFFO2dCQUNyQixjQUFjLEVBQUUsSUFBSTthQUNyQixDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUMzQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQTtZQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtZQUN4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUN6QixDQUFDO1FBQ0QsWUFBWSxFQUFaLFVBQWMsQ0FBTTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNYLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtnQkFDaEIsaUJBQWlCLEVBQUUsRUFBRTtnQkFDckIsY0FBYyxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7WUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDekIsQ0FBQztLQUNGO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5hbHlzaXNPZkJyYW5jaCwgZ2V0UmVzb3VyY2VBbW91bnQsIGRlcHRBbmFseXNpc09mQnJhbmNoLCByYW5raW5nT2ZEZXZlbG9wbWVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2FwaS9iYXNpY1JlYWxpdHknXHJcblxyXG5Db21wb25lbnQoe1xyXG4gIGRhdGE6IHtcclxuICAgIHN0cmVldENvbnRlbnRMaXN0OiBbXSxcclxuICAgIHVwT3JEb3duU3RhdHVzOiAnZG93bicsXHJcbiAgICBzZWxlY3RDb25kaXRpb246IHtcclxuICAgICAgbGFiZWw6ICfnu4Tnu4fmtLvliqjmgLvmrKHmlbAnLFxyXG4gICAgICB2YWx1ZTogJzAnXHJcbiAgICB9LFxyXG4gICAgY29uZGl0aW9uT3JkZXI6ICdhc2MnLFxyXG4gICAgY29uZGl0aW9uTGlzdFZpc2libGU6IGZhbHNlLFxyXG4gICAgY29uZGl0aW9uTGlzdDogW1xyXG4gICAgICB7IHZhbHVlOiAnMCcsIGxhYmVsOiAn57uE57uH5rS75Yqo5oC75qyh5pWwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAnMScsIGxhYmVsOiAn5Y+C5Yqg5rS75Yqo5oC75Lq65pWwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAnMicsIGxhYmVsOiAn55yB5biC57qn5ZKM5Yy655u05py65YWzLee7hOe7h+asoeaVsCcgfSxcclxuICAgICAgeyB2YWx1ZTogJzMnLCBsYWJlbDogJ+ecgeW4gue6p+WSjOWMuuebtOacuuWFsy3lj4LkuI7kurrmlbAnIH0sXHJcbiAgICAgIHsgdmFsdWU6ICc0JywgbGFiZWw6ICfpqbvljLrkvIHkuovkuJrljZXkvY0t57uE57uH5qyh5pWwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAnNScsIGxhYmVsOiAn6am75Yy65LyB5LqL5Lia5Y2V5L2NLeWPguWKoOS6uuaVsCcgfSxcclxuICAgICAgeyB2YWx1ZTogJzYnLCBsYWJlbDogJ+mpu+WMuuS4pOaWsOe7hOe7hy3nu4Tnu4fmrKHmlbAnIH0sXHJcbiAgICAgIHsgdmFsdWU6ICc3JywgbGFiZWw6ICfpqbvljLrkuKTmlrDnu4Tnu4ct5Y+C5Yqg5qyh5pWwJyB9XHJcbiAgICBdLFxyXG4gICAgZGV2ZWxvcFNpdHVhdGlvbjoge30sIC8vIOiBlOW7uuWFseW7uuW8gOWxleaDheWGteWbvuihqOaVsOaNrlxyXG4gICAgdW5pb25BbW91bnQ6IHtcclxuICAgICAgcmVzb3VyY2VBbW91bnRUb3RhbDogMCxcclxuICAgICAgcmVzb3VyY2VUaW1lczogMCxcclxuICAgICAgYXZlcmFnZUFtb3VudDogMFxyXG4gICAgfSxcclxuICAgIGNhdGVnb3J5TGlzdDogW1xyXG4gICAgICB7IHZhbHVlOiAnMjEnLCBsYWJlbDogJ+ecgee6p+OAgeW4gue6p+WSjOWMuuebtOacuuWFsyd9LFxyXG4gICAgICB7IHZhbHVlOiAnMjMnLCBsYWJlbDogJ+mpu+WMuuS8geS6i+S4muWNleS9jSd9LFxyXG4gICAgICB7IHZhbHVlOiAnMjQnLCBsYWJlbDogJ+mpu+WMuuS4pOaWsOe7hOe7hyd9XSxcclxuICAgICAgc2VsZWN0VW5pb25Db25kaXRpb246IHtcclxuICAgICAgICB2YWx1ZTogJzIxJyxcclxuICAgICAgICBsYWJlbDogJ+ecgee6p+OAgeW4gue6p+WSjOWMuuebtOacuuWFsydcclxuICAgICAgfSxcclxuICAgICAgdW5pb25Db25kaXRpb25WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgZGV2ZWxvcFNpdHVhdGlvbkxpbmVDaGFydDoge30sXHJcbiAgICAgIHN0cmVldFByZWxvYWRDb250ZW50TGlzdDogW1xyXG4gICAgICAgIHtkZXRhaWxMaXN0OiBbMSwyXSwgY29udGVudExpc3Q6IFsxLDIsM119LFxyXG4gICAgICAgIHtkZXRhaWxMaXN0OiBbMSwyXSwgY29udGVudExpc3Q6IFsxLDIsM119LFxyXG4gICAgICAgIHtkZXRhaWxMaXN0OiBbMSwyXSwgY29udGVudExpc3Q6IFsxLDIsM119XHJcbiAgICAgIF0sXHJcbiAgICAgIHByZWxvYWRWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBzdHJlZXRJZDogJycsXHJcbiAgICAgIHRpbWVJZDogJycsXHJcbiAgICAgIGRlcHROdW06ICcnXHJcbiAgfSxcclxuICBsaWZldGltZXM6IHtcclxuICAgIGF0dGFjaGVkICgpIHtcclxuICAgICAgdGhpcy5hbmFseXNpc09mQnJhbmNoKClcclxuICAgICAgdGhpcy5nZXRSZXNvdXJjZUFtb3VudCgpXHJcbiAgICAgIHRoaXMuZGVwdEFuYWx5c2lzT2ZCcmFuY2goKVxyXG4gICAgICB0aGlzLnJhbmtpbmdPZkRldmVsb3BtZW50KClcclxuICAgIH1cclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8vIOWFmuWRmOWPguS4juWPkeaMpeaDheWGteaOkuWQjSDmlLbotbcv5bGV5byAXHJcbiAgICBvblVwT3JEb3duICgpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICB1cE9yRG93blN0YXR1czogdGhpcy5kYXRhLnVwT3JEb3duU3RhdHVzID09PSAndXAnID8gJ2Rvd24nIDogJ3VwJ1xyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIC8vIOaYvuekuuetm+mAieadoeS7tuWIl+ihqFxyXG4gICAgb25TaG93Q29uZGl0aW9uTGlzdCAoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgY29uZGl0aW9uTGlzdFZpc2libGU6ICF0aGlzLmRhdGEuY29uZGl0aW9uTGlzdFZpc2libGVcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvLyDliIfmjaLmjpLlkI3mnaHku7ZcclxuICAgIG9uQ2hhbmdlQ29uZGl0aW9uIChlKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgY29uZGl0aW9uTGlzdFZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgIHByZWxvYWRWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHN0cmVldENvbnRlbnRMaXN0OiBbXVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCB7IGNvbmRpdGlvbiB9ID0gZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXRcclxuICAgICAgdGhpcy5kYXRhLmNvbmRpdGlvbkxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gY29uZGl0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgICBzZWxlY3RDb25kaXRpb246IHtcclxuICAgICAgICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5yYW5raW5nT2ZEZXZlbG9wbWVudCgpXHJcbiAgICB9LFxyXG4gICAgLy8g5q2j5Y+N5bqP5YiH5o2iXHJcbiAgICBvbkNoYW5nZUNvbmRpdGlvbk9yZGVyICgpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBjb25kaXRpb25PcmRlcjogdGhpcy5kYXRhLmNvbmRpdGlvbk9yZGVyID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnLFxyXG4gICAgICAgIHByZWxvYWRWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHN0cmVldENvbnRlbnRMaXN0OiBbXVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnJhbmtpbmdPZkRldmVsb3BtZW50KClcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bogZTlu7rlhbHlu7rlvIDlsZXmg4XlhrXlm77ooajmlbDmja5cclxuICAgIGFzeW5jIGFuYWx5c2lzT2ZCcmFuY2ggKCkge1xyXG4gICAgICBjb25zdCBwYXJhID0ge1xyXG4gICAgICAgIHN0cmVldElkOiB0aGlzLmRhdGEuc3RyZWV0SWQsXHJcbiAgICAgICAgc29tZU1vbnRoc1R5cGU6IHRoaXMuZGF0YS50aW1lSWQsXHJcbiAgICAgICAgY2F0ZWdvcnlUeXBlOiAnMSdcclxuICAgICAgfVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgYW5hbHlzaXNPZkJyYW5jaChwYXJhKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCfogZTlu7rlhbHlu7rlvIDlsZXmg4XlhrXlm77ooajmlbDmja4nLCByZXMpXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRhdGEuZGV2ZWxvcFNpdHVhdGlvbiwgcmVzLmRhdGEpXHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIGRldmVsb3BTaXR1YXRpb246IHRoaXMuZGF0YS5kZXZlbG9wU2l0dWF0aW9uXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDojrflj5botYTmupDmlbTlkIjph5Hpop1cclxuICAgIGFzeW5jIGdldFJlc291cmNlQW1vdW50ICgpIHtcclxuICAgICAgY29uc3QgcGFyYSA9IHtcclxuICAgICAgICBzdHJlZXRJZDogdGhpcy5kYXRhLnN0cmVldElkLFxyXG4gICAgICAgIHNvbWVNb250aHNUeXBlOiB0aGlzLmRhdGEudGltZUlkXHJcbiAgICAgIH1cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IGdldFJlc291cmNlQW1vdW50KHBhcmEpXHJcbiAgICAgICAgY29uc29sZS5sb2coJ+iBlOW7uuWFseW7uui1hOa6kOaVtOWQiOmHkeminScsIHJlcylcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGF0YS51bmlvbkFtb3VudCwgcmVzLmRhdGEpXHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIHVuaW9uQW1vdW50OiB0aGlzLmRhdGEudW5pb25BbW91bnRcclxuICAgICAgICB9KVxyXG4gICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIOiBlOW7uuWFseW7uuW8gOWxleaDheWGteetm+mAieWIl+ihqFxyXG4gICAgb25TaG93VW5pb25Db25kaXRpb25MaXN0ICgpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICB1bmlvbkNvbmRpdGlvblZpc2libGU6ICF0aGlzLmRhdGEudW5pb25Db25kaXRpb25WaXNpYmxlXHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5YiH5o2i6IGU5bu65YWx5bu65byA5bGV5oOF5Ya1562b6YCJ5p2h5Lu2XHJcbiAgICBvbkNobmFnZVVuaW9uQ29uZGl0aW9uIChlKSB7XHJcbiAgICAgIGNvbnN0IHsgY29uZGl0aW9uIH0gPSBlLmN1cnJlbnRUYXJnZXQuZGF0YXNldFxyXG4gICAgICB0aGlzLmRhdGEuY2F0ZWdvcnlMaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IGNvbmRpdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgc2VsZWN0VW5pb25Db25kaXRpb246IHtcclxuICAgICAgICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB1bmlvbkNvbmRpdGlvblZpc2libGU6IGZhbHNlXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5kZXB0QW5hbHlzaXNPZkJyYW5jaCgpXHJcbiAgICB9LFxyXG4gICAgLy8g6I635Y+W6IGU5bu65YWx5bu65oqY57q/5Zu+XHJcbiAgICBhc3luYyBkZXB0QW5hbHlzaXNPZkJyYW5jaCAoKSB7XHJcbiAgICAgIGNvbnN0IHBhcmEgPSB7XHJcbiAgICAgICAgc3RyZWV0SWQ6IHRoaXMuZGF0YS5zdHJlZXRJZCxcclxuICAgICAgICBzb21lTW9udGhzVHlwZTogdGhpcy5kYXRhLnRpbWVJZCxcclxuICAgICAgICBjYXRlZ29yeUNvZGU6IHRoaXMuZGF0YS5zZWxlY3RVbmlvbkNvbmRpdGlvbi52YWx1ZVxyXG4gICAgICB9XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCBkZXB0QW5hbHlzaXNPZkJyYW5jaChwYXJhKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCfogZTlu7rlhbHlu7rmipjnur/lm74nLCByZXMpXHJcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeUxpc3QsIGpvaW5OdW1MaXN0LCBvcmdhbml6YXRpb25zQ291bnRMaXN0LCBhdmVyYWdlTnVtIH0gPSByZXMuZGF0YVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLmRldmVsb3BTaXR1YXRpb25MaW5lQ2hhcnQsIHsgY2F0ZWdvcnlMaXN0LCBqb2luTnVtTGlzdCwgb3JnYW5pemF0aW9uc0NvdW50TGlzdCwgYXZlcmFnZU51bSB9KVxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBkZXZlbG9wU2l0dWF0aW9uTGluZUNoYXJ0OiB0aGlzLmRhdGEuZGV2ZWxvcFNpdHVhdGlvbkxpbmVDaGFydCxcclxuICAgICAgICAgIGRlcHROdW06IHJlcy5kYXRhLmRlcHROdW1cclxuICAgICAgICB9KVxyXG4gICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIOiBlOW7uuWFseW7uuW8gOWxleaDheWGteaOkuWQjVxyXG4gICAgYXN5bmMgcmFua2luZ09mRGV2ZWxvcG1lbnQgKCkge1xyXG4gICAgICBjb25zdCBwYXJhID0ge1xyXG4gICAgICAgIHN0cmVldElkOiB0aGlzLmRhdGEuc3RyZWV0SWQsXHJcbiAgICAgICAgc29tZU1vbnRoc1R5cGU6IHRoaXMuZGF0YS50aW1lSWQsXHJcbiAgICAgICAgb3JkZXI6IHRoaXMuZGF0YS5jb25kaXRpb25PcmRlciA9PT0gJ2FzYycgPyAnMCcgOiAnMScsXHJcbiAgICAgICAgdHlwZTogdGhpcy5kYXRhLnNlbGVjdENvbmRpdGlvbi52YWx1ZVxyXG4gICAgICB9XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCByYW5raW5nT2ZEZXZlbG9wbWVudChwYXJhKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCfogZTlu7rlhbHlu7rlvIDlsZXmg4XlhrXmjpLlkI0nLCByZXMpXHJcbiAgICAgICAgY29uc3QgbGlzdDogYW55W10gPSBbXVxyXG4gICAgICAgIGlmIChyZXMuZGF0YS5zdHJlZXRMaXN0ICYmIHJlcy5kYXRhLnN0cmVldExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcmVzLmRhdGEuc3RyZWV0TGlzdC5mb3JFYWNoKChzdHJlZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29udGVudExpc3Q6IEFueUFycmF5ID0gW11cclxuICAgICAgICAgICAgc3RyZWV0LmNhdGVnb3J5SW5mb0xpc3QuZm9yRWFjaCggKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb250ZW50TGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGNhdGVnb3J5LmNhdGVnb3J5TmFtZSxcclxuICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbk51bTogY2F0ZWdvcnkub3JnYW5pemF0aW9uc0NvdW50LFxyXG4gICAgICAgICAgICAgICAgZW50ZXJOdW06IGNhdGVnb3J5LmpvaW5OdW1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBjb25zdCBkZXRhaWxMaXN0ID0gW1xyXG4gICAgICAgICAgICAgIHsgbmFtZTogJ+e7hOe7h+aAu+asoeaVsCcsIG51bTogc3RyZWV0LmFsbE9yZ2FuaXphdGlvbnNDb3VudCB9LFxyXG4gICAgICAgICAgICAgIHsgbmFtZTogJ+WPguWKoOaAu+asoeaVsCcsIG51bTogc3RyZWV0LmFsbEpvaW5OdW1Db3VudH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICBsaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIGNvbnRlbnRMaXN0LFxyXG4gICAgICAgICAgICAgIGRldGFpbExpc3QsXHJcbiAgICAgICAgICAgICAgc3RyZWV0TmFtZTogc3RyZWV0LmRlcHRuYW1lXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgc3RyZWV0Q29udGVudExpc3Q6IGxpc3QsXHJcbiAgICAgICAgICBwcmVsb2FkVmlzaWJsZTogZmFsc2VcclxuICAgICAgICB9KVxyXG4gICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgc3RyZWV0Q29udGVudExpc3Q6IFtdLFxyXG4gICAgICAgICAgcHJlbG9hZFZpc2libGU6IGZhbHNlXHJcbiAgICAgICAgfSlcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNob29zZVN0cmVldElkIChlOiBhbnkpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBzdHJlZXRJZDogZS5kZXRhaWwsXHJcbiAgICAgICAgc3RyZWV0Q29udGVudExpc3Q6IFtdLFxyXG4gICAgICAgIHByZWxvYWRWaXNpYmxlOiB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmFua2luZ09mRGV2ZWxvcG1lbnQoKVxyXG4gICAgICB0aGlzLmRlcHRBbmFseXNpc09mQnJhbmNoKClcclxuICAgICAgdGhpcy5nZXRSZXNvdXJjZUFtb3VudCgpXHJcbiAgICAgIHRoaXMuYW5hbHlzaXNPZkJyYW5jaCgpXHJcbiAgICB9LFxyXG4gICAgY2hvb3NlVGltZUlkIChlOiBhbnkpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICB0aW1lSWQ6IGUuZGV0YWlsLFxyXG4gICAgICAgIHN0cmVldENvbnRlbnRMaXN0OiBbXSxcclxuICAgICAgICBwcmVsb2FkVmlzaWJsZTogdHJ1ZVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnJhbmtpbmdPZkRldmVsb3BtZW50KClcclxuICAgICAgdGhpcy5kZXB0QW5hbHlzaXNPZkJyYW5jaCgpXHJcbiAgICAgIHRoaXMuZ2V0UmVzb3VyY2VBbW91bnQoKVxyXG4gICAgICB0aGlzLmFuYWx5c2lzT2ZCcmFuY2goKVxyXG4gICAgfVxyXG4gIH1cclxufSkiXX0=
|