"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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QUcsQ0FBQyxDQUFBOzs7Ozs7U0FFckI7UUFDRCxjQUFjLEVBQWQsVUFBZ0IsQ0FBTTtZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNYLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTTtnQkFDbEIsaUJBQWlCLEVBQUUsRUFBRTtnQkFDckIsY0FBYyxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7WUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDekIsQ0FBQztRQUNELFlBQVksRUFBWixVQUFjLENBQU07WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDWCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07Z0JBQ2hCLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JCLGNBQWMsRUFBRSxJQUFJO2FBQ3JCLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3pCLENBQUM7S0FDRjtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuYWx5c2lzT2ZCcmFuY2gsIGdldFJlc291cmNlQW1vdW50LCBkZXB0QW5hbHlzaXNPZkJyYW5jaCwgcmFua2luZ09mRGV2ZWxvcG1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9hcGkvYmFzaWNSZWFsaXR5J1xyXG5cclxuQ29tcG9uZW50KHtcclxuICBkYXRhOiB7XHJcbiAgICBzdHJlZXRDb250ZW50TGlzdDogW10sXHJcbiAgICB1cE9yRG93blN0YXR1czogJ2Rvd24nLFxyXG4gICAgc2VsZWN0Q29uZGl0aW9uOiB7XHJcbiAgICAgIGxhYmVsOiAn57uE57uH5rS75Yqo5oC75qyh5pWwJyxcclxuICAgICAgdmFsdWU6ICcwJ1xyXG4gICAgfSxcclxuICAgIGNvbmRpdGlvbk9yZGVyOiAnYXNjJyxcclxuICAgIGNvbmRpdGlvbkxpc3RWaXNpYmxlOiBmYWxzZSxcclxuICAgIGNvbmRpdGlvbkxpc3Q6IFtcclxuICAgICAgeyB2YWx1ZTogJzAnLCBsYWJlbDogJ+e7hOe7h+a0u+WKqOaAu+asoeaVsCcgfSxcclxuICAgICAgeyB2YWx1ZTogJzEnLCBsYWJlbDogJ+WPguWKoOa0u+WKqOaAu+S6uuaVsCcgfSxcclxuICAgICAgeyB2YWx1ZTogJzInLCBsYWJlbDogJ+ecgeW4gue6p+WSjOWMuuebtOacuuWFsy3nu4Tnu4fmrKHmlbAnIH0sXHJcbiAgICAgIHsgdmFsdWU6ICczJywgbGFiZWw6ICfnnIHluILnuqflkozljLrnm7TmnLrlhbMt5Y+C5LiO5Lq65pWwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAnNCcsIGxhYmVsOiAn6am75Yy65LyB5LqL5Lia5Y2V5L2NLee7hOe7h+asoeaVsCcgfSxcclxuICAgICAgeyB2YWx1ZTogJzUnLCBsYWJlbDogJ+mpu+WMuuS8geS6i+S4muWNleS9jS3lj4LliqDkurrmlbAnIH0sXHJcbiAgICAgIHsgdmFsdWU6ICc2JywgbGFiZWw6ICfpqbvljLrkuKTmlrDnu4Tnu4ct57uE57uH5qyh5pWwJyB9LFxyXG4gICAgICB7IHZhbHVlOiAnNycsIGxhYmVsOiAn6am75Yy65Lik5paw57uE57uHLeWPguWKoOasoeaVsCcgfVxyXG4gICAgXSxcclxuICAgIGRldmVsb3BTaXR1YXRpb246IHt9LCAvLyDogZTlu7rlhbHlu7rlvIDlsZXmg4XlhrXlm77ooajmlbDmja5cclxuICAgIHVuaW9uQW1vdW50OiB7XHJcbiAgICAgIHJlc291cmNlQW1vdW50VG90YWw6IDAsXHJcbiAgICAgIHJlc291cmNlVGltZXM6IDAsXHJcbiAgICAgIGF2ZXJhZ2VBbW91bnQ6IDBcclxuICAgIH0sXHJcbiAgICBjYXRlZ29yeUxpc3Q6IFtcclxuICAgICAgeyB2YWx1ZTogJzIxJywgbGFiZWw6ICfnnIHnuqfjgIHluILnuqflkozljLrnm7TmnLrlhbMnfSxcclxuICAgICAgeyB2YWx1ZTogJzIzJywgbGFiZWw6ICfpqbvljLrkvIHkuovkuJrljZXkvY0nfSxcclxuICAgICAgeyB2YWx1ZTogJzI0JywgbGFiZWw6ICfpqbvljLrkuKTmlrDnu4Tnu4cnfV0sXHJcbiAgICAgIHNlbGVjdFVuaW9uQ29uZGl0aW9uOiB7XHJcbiAgICAgICAgdmFsdWU6ICcyMScsXHJcbiAgICAgICAgbGFiZWw6ICfnnIHnuqfjgIHluILnuqflkozljLrnm7TmnLrlhbMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHVuaW9uQ29uZGl0aW9uVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGRldmVsb3BTaXR1YXRpb25MaW5lQ2hhcnQ6IHt9LFxyXG4gICAgICBzdHJlZXRQcmVsb2FkQ29udGVudExpc3Q6IFtcclxuICAgICAgICB7ZGV0YWlsTGlzdDogWzEsMl0sIGNvbnRlbnRMaXN0OiBbMSwyLDNdfSxcclxuICAgICAgICB7ZGV0YWlsTGlzdDogWzEsMl0sIGNvbnRlbnRMaXN0OiBbMSwyLDNdfSxcclxuICAgICAgICB7ZGV0YWlsTGlzdDogWzEsMl0sIGNvbnRlbnRMaXN0OiBbMSwyLDNdfVxyXG4gICAgICBdLFxyXG4gICAgICBwcmVsb2FkVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgc3RyZWV0SWQ6ICcnLFxyXG4gICAgICB0aW1lSWQ6ICcnLFxyXG4gICAgICBkZXB0TnVtOiAnJ1xyXG4gIH0sXHJcbiAgbGlmZXRpbWVzOiB7XHJcbiAgICBhdHRhY2hlZCAoKSB7XHJcbiAgICAgIHRoaXMuYW5hbHlzaXNPZkJyYW5jaCgpXHJcbiAgICAgIHRoaXMuZ2V0UmVzb3VyY2VBbW91bnQoKVxyXG4gICAgICB0aGlzLmRlcHRBbmFseXNpc09mQnJhbmNoKClcclxuICAgICAgdGhpcy5yYW5raW5nT2ZEZXZlbG9wbWVudCgpXHJcbiAgICB9XHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvLyDlhZrlkZjlj4LkuI7lj5HmjKXmg4XlhrXmjpLlkI0g5pS26LW3L+WxleW8gFxyXG4gICAgb25VcE9yRG93biAoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgdXBPckRvd25TdGF0dXM6IHRoaXMuZGF0YS51cE9yRG93blN0YXR1cyA9PT0gJ3VwJyA/ICdkb3duJyA6ICd1cCdcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvLyDmmL7npLrnrZvpgInmnaHku7bliJfooahcclxuICAgIG9uU2hvd0NvbmRpdGlvbkxpc3QgKCkge1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGNvbmRpdGlvbkxpc3RWaXNpYmxlOiAhdGhpcy5kYXRhLmNvbmRpdGlvbkxpc3RWaXNpYmxlXHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5YiH5o2i5o6S5ZCN5p2h5Lu2XHJcbiAgICBvbkNoYW5nZUNvbmRpdGlvbiAoZSkge1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGNvbmRpdGlvbkxpc3RWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgICBwcmVsb2FkVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzdHJlZXRDb250ZW50TGlzdDogW11cclxuICAgICAgfSlcclxuICAgICAgY29uc3QgeyBjb25kaXRpb24gfSA9IGUuY3VycmVudFRhcmdldC5kYXRhc2V0XHJcbiAgICAgIHRoaXMuZGF0YS5jb25kaXRpb25MaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFsdWUgPT09IGNvbmRpdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgICAgc2VsZWN0Q29uZGl0aW9uOiB7XHJcbiAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmFua2luZ09mRGV2ZWxvcG1lbnQoKVxyXG4gICAgfSxcclxuICAgIC8vIOato+WPjeW6j+WIh+aNolxyXG4gICAgb25DaGFuZ2VDb25kaXRpb25PcmRlciAoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgY29uZGl0aW9uT3JkZXI6IHRoaXMuZGF0YS5jb25kaXRpb25PcmRlciA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJyxcclxuICAgICAgICBwcmVsb2FkVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzdHJlZXRDb250ZW50TGlzdDogW11cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5yYW5raW5nT2ZEZXZlbG9wbWVudCgpXHJcbiAgICB9LFxyXG4gICAgLy8g6I635Y+W6IGU5bu65YWx5bu65byA5bGV5oOF5Ya15Zu+6KGo5pWw5o2uXHJcbiAgICBhc3luYyBhbmFseXNpc09mQnJhbmNoICgpIHtcclxuICAgICAgY29uc3QgcGFyYSA9IHtcclxuICAgICAgICBzdHJlZXRJZDogdGhpcy5kYXRhLnN0cmVldElkLFxyXG4gICAgICAgIHNvbWVNb250aHNUeXBlOiB0aGlzLmRhdGEudGltZUlkLFxyXG4gICAgICAgIGNhdGVnb3J5VHlwZTogJzEnXHJcbiAgICAgIH1cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IGFuYWx5c2lzT2ZCcmFuY2gocGFyYSlcclxuICAgICAgICBjb25zb2xlLmxvZygn6IGU5bu65YWx5bu65byA5bGV5oOF5Ya15Zu+6KGo5pWw5o2uJywgcmVzKVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLmRldmVsb3BTaXR1YXRpb24sIHJlcy5kYXRhKVxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBkZXZlbG9wU2l0dWF0aW9uOiB0aGlzLmRhdGEuZGV2ZWxvcFNpdHVhdGlvblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8g6I635Y+W6LWE5rqQ5pW05ZCI6YeR6aKdXHJcbiAgICBhc3luYyBnZXRSZXNvdXJjZUFtb3VudCAoKSB7XHJcbiAgICAgIGNvbnN0IHBhcmEgPSB7XHJcbiAgICAgICAgc3RyZWV0SWQ6IHRoaXMuZGF0YS5zdHJlZXRJZCxcclxuICAgICAgICBzb21lTW9udGhzVHlwZTogdGhpcy5kYXRhLnRpbWVJZFxyXG4gICAgICB9XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCBnZXRSZXNvdXJjZUFtb3VudChwYXJhKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCfogZTlu7rlhbHlu7rotYTmupDmlbTlkIjph5Hpop0nLCByZXMpXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRhdGEudW5pb25BbW91bnQsIHJlcy5kYXRhKVxyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICB1bmlvbkFtb3VudDogdGhpcy5kYXRhLnVuaW9uQW1vdW50XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDogZTlu7rlhbHlu7rlvIDlsZXmg4XlhrXnrZvpgInliJfooahcclxuICAgIG9uU2hvd1VuaW9uQ29uZGl0aW9uTGlzdCAoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgdW5pb25Db25kaXRpb25WaXNpYmxlOiAhdGhpcy5kYXRhLnVuaW9uQ29uZGl0aW9uVmlzaWJsZVxyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIC8vIOWIh+aNouiBlOW7uuWFseW7uuW8gOWxleaDheWGteetm+mAieadoeS7tlxyXG4gICAgb25DaG5hZ2VVbmlvbkNvbmRpdGlvbiAoZSkge1xyXG4gICAgICBjb25zdCB7IGNvbmRpdGlvbiB9ID0gZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXRcclxuICAgICAgdGhpcy5kYXRhLmNhdGVnb3J5TGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBjb25kaXRpb24pIHtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICAgIHNlbGVjdFVuaW9uQ29uZGl0aW9uOiB7XHJcbiAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdW5pb25Db25kaXRpb25WaXNpYmxlOiBmYWxzZVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuZGVwdEFuYWx5c2lzT2ZCcmFuY2goKVxyXG4gICAgfSxcclxuICAgIC8vIOiOt+WPluiBlOW7uuWFseW7uuaKmOe6v+WbvlxyXG4gICAgYXN5bmMgZGVwdEFuYWx5c2lzT2ZCcmFuY2ggKCkge1xyXG4gICAgICBjb25zdCBwYXJhID0ge1xyXG4gICAgICAgIHN0cmVldElkOiB0aGlzLmRhdGEuc3RyZWV0SWQsXHJcbiAgICAgICAgc29tZU1vbnRoc1R5cGU6IHRoaXMuZGF0YS50aW1lSWQsXHJcbiAgICAgICAgY2F0ZWdvcnlDb2RlOiB0aGlzLmRhdGEuc2VsZWN0VW5pb25Db25kaXRpb24udmFsdWVcclxuICAgICAgfVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgZGVwdEFuYWx5c2lzT2ZCcmFuY2gocGFyYSlcclxuICAgICAgICBjb25zb2xlLmxvZygn6IGU5bu65YWx5bu65oqY57q/5Zu+JywgcmVzKVxyXG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnlMaXN0LCBqb2luTnVtTGlzdCwgb3JnYW5pemF0aW9uc0NvdW50TGlzdCwgYXZlcmFnZU51bSB9ID0gcmVzLmRhdGFcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGF0YS5kZXZlbG9wU2l0dWF0aW9uTGluZUNoYXJ0LCB7IGNhdGVnb3J5TGlzdCwgam9pbk51bUxpc3QsIG9yZ2FuaXphdGlvbnNDb3VudExpc3QsIGF2ZXJhZ2VOdW0gfSlcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgZGV2ZWxvcFNpdHVhdGlvbkxpbmVDaGFydDogdGhpcy5kYXRhLmRldmVsb3BTaXR1YXRpb25MaW5lQ2hhcnQsXHJcbiAgICAgICAgICBkZXB0TnVtOiByZXMuZGF0YS5kZXB0TnVtXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDogZTlu7rlhbHlu7rlvIDlsZXmg4XlhrXmjpLlkI1cclxuICAgIGFzeW5jIHJhbmtpbmdPZkRldmVsb3BtZW50ICgpIHtcclxuICAgICAgY29uc3QgcGFyYSA9IHtcclxuICAgICAgICBzdHJlZXRJZDogdGhpcy5kYXRhLnN0cmVldElkLFxyXG4gICAgICAgIHNvbWVNb250aHNUeXBlOiB0aGlzLmRhdGEudGltZUlkLFxyXG4gICAgICAgIG9yZGVyOiB0aGlzLmRhdGEuY29uZGl0aW9uT3JkZXIgPT09ICdhc2MnID8gJzAnIDogJzEnLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuZGF0YS5zZWxlY3RDb25kaXRpb24udmFsdWVcclxuICAgICAgfVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgcmFua2luZ09mRGV2ZWxvcG1lbnQocGFyYSlcclxuICAgICAgICBjb25zb2xlLmxvZygn6IGU5bu65YWx5bu65byA5bGV5oOF5Ya15o6S5ZCNJywgcmVzKVxyXG4gICAgICAgIGNvbnN0IGxpc3Q6IGFueVtdID0gW11cclxuICAgICAgICBpZiAocmVzLmRhdGEuc3RyZWV0TGlzdCAmJiByZXMuZGF0YS5zdHJlZXRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHJlcy5kYXRhLnN0cmVldExpc3QuZm9yRWFjaCgoc3RyZWV0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvbnRlbnRMaXN0OiBBbnlBcnJheSA9IFtdXHJcbiAgICAgICAgICAgIHN0cmVldC5jYXRlZ29yeUluZm9MaXN0LmZvckVhY2goIChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29udGVudExpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBjYXRlZ29yeS5jYXRlZ29yeU5hbWUsXHJcbiAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25OdW06IGNhdGVnb3J5Lm9yZ2FuaXphdGlvbnNDb3VudCxcclxuICAgICAgICAgICAgICAgIGVudGVyTnVtOiBjYXRlZ29yeS5qb2luTnVtXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgY29uc3QgZGV0YWlsTGlzdCA9IFtcclxuICAgICAgICAgICAgICB7IG5hbWU6ICfnu4Tnu4fmgLvmrKHmlbAnLCBudW06IHN0cmVldC5hbGxPcmdhbml6YXRpb25zQ291bnQgfSxcclxuICAgICAgICAgICAgICB7IG5hbWU6ICflj4LliqDmgLvmrKHmlbAnLCBudW06IHN0cmVldC5hbGxKb2luTnVtQ291bnR9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgbGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICBjb250ZW50TGlzdCxcclxuICAgICAgICAgICAgICBkZXRhaWxMaXN0LFxyXG4gICAgICAgICAgICAgIHN0cmVldE5hbWU6IHN0cmVldC5kZXB0bmFtZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIHN0cmVldENvbnRlbnRMaXN0OiBsaXN0LFxyXG4gICAgICAgICAgcHJlbG9hZFZpc2libGU6IGZhbHNlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIHN0cmVldENvbnRlbnRMaXN0OiBbXSxcclxuICAgICAgICAgIHByZWxvYWRWaXNpYmxlOiBmYWxzZVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjaG9vc2VTdHJlZXRJZCAoZTogYW55KSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgc3RyZWV0SWQ6IGUuZGV0YWlsLFxyXG4gICAgICAgIHN0cmVldENvbnRlbnRMaXN0OiBbXSxcclxuICAgICAgICBwcmVsb2FkVmlzaWJsZTogdHJ1ZVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnJhbmtpbmdPZkRldmVsb3BtZW50KClcclxuICAgICAgdGhpcy5kZXB0QW5hbHlzaXNPZkJyYW5jaCgpXHJcbiAgICAgIHRoaXMuZ2V0UmVzb3VyY2VBbW91bnQoKVxyXG4gICAgICB0aGlzLmFuYWx5c2lzT2ZCcmFuY2goKVxyXG4gICAgfSxcclxuICAgIGNob29zZVRpbWVJZCAoZTogYW55KSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgdGltZUlkOiBlLmRldGFpbCxcclxuICAgICAgICBzdHJlZXRDb250ZW50TGlzdDogW10sXHJcbiAgICAgICAgcHJlbG9hZFZpc2libGU6IHRydWVcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5yYW5raW5nT2ZEZXZlbG9wbWVudCgpXHJcbiAgICAgIHRoaXMuZGVwdEFuYWx5c2lzT2ZCcmFuY2goKVxyXG4gICAgICB0aGlzLmdldFJlc291cmNlQW1vdW50KClcclxuICAgICAgdGhpcy5hbmFseXNpc09mQnJhbmNoKClcclxuICAgIH1cclxuICB9XHJcbn0pIl19