榆山数据端小程序
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.
 
 

331 lines
31 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 reality_1 = require("../../../../api/reality");
Page({
data: {
isClick: 'topic',
showTimePicker: false,
someMonthsType: 1,
timeList: [
{ time: '最近一个月', id: 1 },
{ time: '最近三个月', id: 2 },
{ time: '最近六个月', id: 3 },
{ time: '最近一年', id: 4 }
],
list: [],
pageIndex: 1,
pageSize: 10,
total: 0,
loadVisible: true,
loadType: 'more',
isShow: false,
listLength: 0,
isShowLoading: true,
},
onLoad: function (options) {
this.getTopicHotList();
},
goIndex: function (e) {
if (this.data.isClick == "topic") {
wx.navigateTo({ url: "/subpages/issue/pages/detail/topicDetail/topicDetail?Id=" + e.currentTarget.dataset.id });
}
else if (this.data.isClick == "issue") {
wx.navigateTo({ url: "/subpages/issue/pages/detail/IssueDetails/issueDetails?Id=" + e.currentTarget.dataset.id });
}
else if (this.data.isClick == "project") {
wx.navigateTo({ url: "/subpages/issue/pages/detail/projectDetails/projectDetails?Id=" + e.currentTarget.dataset.id });
}
},
triggle: function (e) {
if (this.data.isShowLoading) {
wx.showToast({
title: '正在加载中请稍后切换',
icon: 'none',
duration: 2000,
mask: true,
});
return;
}
var currentTarget = e.currentTarget;
this.setData({
list: [],
loadType: 'more',
isShow: false,
pageIndex: 1,
showTimePicker: false
});
if (currentTarget.dataset.index == "最热话题") {
this.setData({
isClick: 'topic',
});
this.getTopicHotList();
}
else if (currentTarget.dataset.index == "最热议题") {
this.setData({
isClick: 'issue',
});
this.getHotIssueList();
}
else if (currentTarget.dataset.index == "最热项目") {
this.setData({
isClick: 'project',
});
this.getHotItemList();
}
},
chooseTimePicker: function () {
if (this.data.isShowLoading) {
wx.showToast({
title: '正在加载中请稍后切换',
icon: 'none',
duration: 2000,
mask: true,
});
return;
}
this.setData({
showTimePicker: !this.data.showTimePicker
});
},
onTimeChange: function (e) {
this.setData({
someMonthsType: e.currentTarget.dataset.time,
showTimePicker: false,
preloadVisible: true,
loadType: 'more',
isShow: false,
pageIndex: 1,
list: []
});
if (this.data.isClick == "topic") {
this.getTopicHotList();
}
else if (this.data.isClick == "issue") {
this.getHotIssueList();
}
else if (this.data.isClick == "project") {
this.getHotItemList();
}
},
getTopicHotList: function () {
return __awaiter(this, void 0, void 0, function () {
var obj, res, err_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.setData({
loadVisible: true,
isShowLoading: true,
});
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
obj = {
pageIndex: this.data.pageIndex,
pageSize: this.data.pageSize,
someMonthsType: this.data.someMonthsType
};
return [4, reality_1.getTopicHotList(obj)];
case 2:
res = _a.sent();
this.setData({
list: this.data.list.concat(res.data.list),
listLength: res.data.list.length,
isShowLoading: false,
});
if (this.data.listLength !== this.data.pageSize) {
this.setData({
loadType: 'none',
isShowLoading: false,
});
}
if (this.data.list.length == 0) {
this.setData({
loadVisible: false,
isShow: true,
isShowLoading: false,
});
}
return [3, 4];
case 3:
err_1 = _a.sent();
this.setData({
loadVisible: false,
isShow: true,
isShowLoading: true,
});
return [3, 4];
case 4: return [2];
}
});
});
},
getHotIssueList: function () {
return __awaiter(this, void 0, void 0, function () {
var obj, res, err_2;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.setData({
loadVisible: true,
isShowLoading: true,
});
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
obj = {
pageIndex: this.data.pageIndex,
pageSize: this.data.pageSize,
someMonthsType: this.data.someMonthsType
};
return [4, reality_1.getHotIssueList(obj)];
case 2:
res = _a.sent();
this.setData({
list: this.data.list.concat(res.data.list),
listLength: res.data.list.length,
isShowLoading: false,
});
if (this.data.listLength !== this.data.pageSize) {
this.setData({
loadType: 'none',
isShowLoading: false,
});
}
if (this.data.list.length == 0) {
this.setData({
loadVisible: false,
isShow: true,
isShowLoading: false,
});
}
return [3, 4];
case 3:
err_2 = _a.sent();
this.setData({
loadVisible: false,
isShow: true,
isShowLoading: false,
});
return [3, 4];
case 4: return [2];
}
});
});
},
getHotItemList: function () {
return __awaiter(this, void 0, void 0, function () {
var obj, res, err_3;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.setData({
loadVisible: true,
isShowLoading: true,
});
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
obj = {
pageIndex: this.data.pageIndex,
pageSize: this.data.pageSize,
someMonthsType: this.data.someMonthsType
};
return [4, reality_1.getHotItemList(obj)];
case 2:
res = _a.sent();
this.setData({
list: this.data.list.concat(res.data.list),
listLength: res.data.list.length,
isShowLoading: false,
});
if (this.data.listLength !== this.data.pageSize) {
this.setData({
loadType: 'none',
isShowLoading: false,
});
}
if (this.data.list.length == 0) {
this.setData({
loadVisible: false,
isShow: true,
isShowLoading: false,
});
}
return [3, 4];
case 3:
err_3 = _a.sent();
this.setData({
loadVisible: false,
isShow: true,
isShowLoading: false,
});
return [3, 4];
case 4: return [2];
}
});
});
},
onReachBottom: function () {
if (this.data.listLength !== this.data.pageSize) {
this.setData({
loadType: 'none',
});
return;
}
this.setData({
loadType: 'more',
});
var obj = {
pageIndex: ++this.data.pageIndex,
pageSize: this.data.pageSize,
someMonthsType: this.data.someMonthsType
};
if (this.data.isClick == "topic") {
this.getTopicHotList();
}
else if (this.data.isClick == "issue") {
this.getHotIssueList();
}
else if (this.data.isClick == "project") {
this.getHotItemList();
}
},
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVvcGxlSG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGVvcGxlSG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQTBGO0FBQzFGLElBQUksQ0FBQztJQUNILElBQUksRUFBRTtRQUNKLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLGNBQWMsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsRUFBRTtZQUNSLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1NBQUM7UUFDMUIsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsQ0FBQztRQUNaLFFBQVEsRUFBRSxFQUFFO1FBQ1osS0FBSyxFQUFFLENBQUM7UUFDUixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixNQUFNLEVBQUUsS0FBSztRQUNiLFVBQVUsRUFBRSxDQUFDO1FBQ2IsYUFBYSxFQUFFLElBQUk7S0FDcEI7SUFLRCxNQUFNLEVBQUUsVUFBVSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBQ0QsT0FBTyxFQUFQLFVBQVEsQ0FBTTtRQUNaLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFO1lBQ2hDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsNkRBQTJELENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUksRUFBRSxDQUFDLENBQUM7U0FD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SSxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO1NBQ3ZCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1NBQ3RCO0lBQ0gsQ0FBQztDQUVGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFRvcGljSG90TGlzdCwgZ2V0SG90SXNzdWVMaXN0LCBnZXRIb3RJdGVtTGlzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2FwaS9yZWFsaXR5J1xyXG5QYWdlKHtcclxuICBkYXRhOiB7XHJcbiAgICBpc0NsaWNrOiAndG9waWMnLFxyXG4gICAgc2hvd1RpbWVQaWNrZXI6IGZhbHNlLFxyXG4gICAgc29tZU1vbnRoc1R5cGU6IDEsXHJcbiAgICB0aW1lTGlzdDogW1xyXG4gICAgICB7IHRpbWU6ICfmnIDov5HkuIDkuKrmnIgnLCBpZDogMSB9LFxyXG4gICAgICB7IHRpbWU6ICfmnIDov5HkuInkuKrmnIgnLCBpZDogMiB9LFxyXG4gICAgICB7IHRpbWU6ICfmnIDov5Hlha3kuKrmnIgnLCBpZDogMyB9LFxyXG4gICAgICB7IHRpbWU6ICfmnIDov5HkuIDlubQnLCBpZDogNCB9XSxcclxuICAgIGxpc3Q6IFtdLFxyXG4gICAgcGFnZUluZGV4OiAxLFxyXG4gICAgcGFnZVNpemU6IDEwLFxyXG4gICAgdG90YWw6IDAsXHJcbiAgICBsb2FkVmlzaWJsZTogdHJ1ZSxcclxuICAgIGxvYWRUeXBlOiAnbW9yZScsXHJcbiAgICBpc1Nob3c6IGZhbHNlLFxyXG4gICAgbGlzdExlbmd0aDogMCxcclxuICAgIGlzU2hvd0xvYWRpbmc6IHRydWUsIC8vdHJ1ZSDmraPlnKjliqDovb3kuK0gZmFsc2Ug5Y+v5Lul5YiH5o2iXHJcbiAgfSxcclxuXHJcbiAgLyoqXHJcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLliqDovb1cclxuICAgKi9cclxuICBvbkxvYWQ6IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgICB0aGlzLmdldFRvcGljSG90TGlzdCgpXHJcbiAgfSxcclxuICBnb0luZGV4KGU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5pc0NsaWNrID09IFwidG9waWNcIikge1xyXG4gICAgICB3eC5uYXZpZ2F0ZVRvKHsgdXJsOiBgL3N1YnBhZ2VzL2lzc3VlL3BhZ2VzL2RldGFpbC90b3BpY0RldGFpbC90b3BpY0RldGFpbD9JZD0ke2UuY3VycmVudFRhcmdldC5kYXRhc2V0LmlkfWAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS5pc0NsaWNrID09IFwiaXNzdWVcIikge1xyXG4gICAgICB3eC5uYXZpZ2F0ZVRvKHsgdXJsOiBgL3N1YnBhZ2VzL2lzc3VlL3BhZ2VzL2RldGFpbC9Jc3N1ZURldGFpbHMvaXNzdWVEZXRhaWxzP0lkPSR7ZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuaWR9YCB9KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJwcm9qZWN0XCIpIHtcclxuICAgICAgd3gubmF2aWdhdGVUbyh7IHVybDogYC9zdWJwYWdlcy9pc3N1ZS9wYWdlcy9kZXRhaWwvcHJvamVjdERldGFpbHMvcHJvamVjdERldGFpbHM/SWQ9JHtlLmN1cnJlbnRUYXJnZXQuZGF0YXNldC5pZH1gIH0pO1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgdHJpZ2dsZShlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuaXNTaG93TG9hZGluZykge1xyXG4gICAgICB3eC5zaG93VG9hc3Qoe1xyXG4gICAgICAgIHRpdGxlOiAn5q2j5Zyo5Yqg6L295Lit6K+356iN5ZCO5YiH5o2iJywgLy/mj5DnpLrnmoTlhoXlrrksXHJcbiAgICAgICAgaWNvbjogJ25vbmUnLCAvL+WbvuaghyxcclxuICAgICAgICBkdXJhdGlvbjogMjAwMCwgLy/lu7bov5/ml7bpl7QsXHJcbiAgICAgICAgbWFzazogdHJ1ZSwgLy/mmL7npLrpgI/mmI7okpnlsYLvvIzpmLLmraLop6bmkbjnqb/pgI8sXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIGxldCB7IGN1cnJlbnRUYXJnZXQgfSA9IGVcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIGxpc3Q6IFtdLC8vM+S4qnRhYuWIh+aNouaXtizkuZ/lupTor6XmiorkuYvliY3nmoTlhoXlrrnmuIXnqbpcclxuICAgICAgbG9hZFR5cGU6ICdtb3JlJyxcclxuICAgICAgaXNTaG93OiBmYWxzZSxcclxuICAgICAgcGFnZUluZGV4OiAxLFxyXG4gICAgICBzaG93VGltZVBpY2tlcjpmYWxzZVxyXG4gICAgfSlcclxuICAgIGlmIChjdXJyZW50VGFyZ2V0LmRhdGFzZXQuaW5kZXggPT0gXCLmnIDng63or53pophcIikge1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGlzQ2xpY2s6ICd0b3BpYycsXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuZ2V0VG9waWNIb3RMaXN0KClcclxuICBcclxuICAgIH0gZWxzZSBpZiAoY3VycmVudFRhcmdldC5kYXRhc2V0LmluZGV4ID09IFwi5pyA54Ot6K6u6aKYXCIpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBpc0NsaWNrOiAnaXNzdWUnLFxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmdldEhvdElzc3VlTGlzdCgpXHJcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRUYXJnZXQuZGF0YXNldC5pbmRleCA9PSBcIuacgOeDremhueebrlwiKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgaXNDbGljazogJ3Byb2plY3QnLFxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLmdldEhvdEl0ZW1MaXN0KClcclxuICAgIH1cclxuICB9LFxyXG4gIC8vIOaYvuekuumakOiXj+aXtumXtOmAieaLqeahhlxyXG4gIGNob29zZVRpbWVQaWNrZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLmlzU2hvd0xvYWRpbmcpIHtcclxuICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICB0aXRsZTogJ+ato+WcqOWKoOi9veS4reivt+eojeWQjuWIh+aNoicsIC8v5o+Q56S655qE5YaF5a65LFxyXG4gICAgICAgIGljb246ICdub25lJywgLy/lm77moIcsXHJcbiAgICAgICAgZHVyYXRpb246IDIwMDAsIC8v5bu26L+f5pe26Ze0LFxyXG4gICAgICAgIG1hc2s6IHRydWUsIC8v5pi+56S66YCP5piO6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICBzaG93VGltZVBpY2tlcjogIXRoaXMuZGF0YS5zaG93VGltZVBpY2tlclxyXG4gICAgfSlcclxuICB9LFxyXG4gIC8vIOmAieaLqeaXtumXtFxyXG4gIG9uVGltZUNoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIHNvbWVNb250aHNUeXBlOiBlLmN1cnJlbnRUYXJnZXQuZGF0YXNldC50aW1lLFxyXG4gICAgICBzaG93VGltZVBpY2tlcjogZmFsc2UsXHJcbiAgICAgIHByZWxvYWRWaXNpYmxlOiB0cnVlLFxyXG4gICAgICBsb2FkVHlwZTogJ21vcmUnLFxyXG4gICAgICBpc1Nob3c6IGZhbHNlLFxyXG4gICAgICBwYWdlSW5kZXg6IDEsXHJcbiAgICAgIGxpc3Q6IFtdLy/pgInmi6nml7bpl7TliIfmjaLkuYvliY3miorkuYvliY3nmoTlhoXlrrnpg73muIXnqbpcclxuICAgIH0pXHJcbiAgICBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJ0b3BpY1wiKSB7XHJcbiAgICAgIHRoaXMuZ2V0VG9waWNIb3RMaXN0KClcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJpc3N1ZVwiKSB7XHJcbiAgICAgIHRoaXMuZ2V0SG90SXNzdWVMaXN0KClcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJwcm9qZWN0XCIpIHtcclxuICAgICAgdGhpcy5nZXRIb3RJdGVtTGlzdCgpXHJcbiAgICB9XHJcblxyXG4gIH0sXHJcbiAgLyoqKiror53popgqKioqICovXHJcbiAgYXN5bmMgZ2V0VG9waWNIb3RMaXN0KCkge1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgbG9hZFZpc2libGU6IHRydWUsXHJcbiAgICAgIGlzU2hvd0xvYWRpbmc6IHRydWUsXHJcbiAgICB9KVxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICBwYWdlSW5kZXg6IHRoaXMuZGF0YS5wYWdlSW5kZXgsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMuZGF0YS5wYWdlU2l6ZSxcclxuICAgICAgICBzb21lTW9udGhzVHlwZTogdGhpcy5kYXRhLnNvbWVNb250aHNUeXBlXHJcbiAgICAgIH1cclxuICAgICAgbGV0IHJlcyA9IGF3YWl0IGdldFRvcGljSG90TGlzdChvYmopXHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgbGlzdDogdGhpcy5kYXRhLmxpc3QuY29uY2F0KHJlcy5kYXRhLmxpc3QpLFxyXG4gICAgICAgIGxpc3RMZW5ndGg6IHJlcy5kYXRhLmxpc3QubGVuZ3RoLFxyXG4gICAgICAgIGlzU2hvd0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KVxyXG4gICAgICBpZiAodGhpcy5kYXRhLmxpc3RMZW5ndGggIT09IHRoaXMuZGF0YS5wYWdlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBsb2FkVHlwZTogJ25vbmUnLFxyXG4gICAgICAgICAgaXNTaG93TG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhLmxpc3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgbG9hZFZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgaXNTaG93OiB0cnVlLFxyXG4gICAgICAgICAgaXNTaG93TG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgbG9hZFZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgIGlzU2hvdzogdHJ1ZSxcclxuICAgICAgICBpc1Nob3dMb2FkaW5nOiB0cnVlLFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLyoqKirorq7popgqKioqICovXHJcbiAgYXN5bmMgZ2V0SG90SXNzdWVMaXN0KCkge1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgbG9hZFZpc2libGU6IHRydWUsXHJcbiAgICAgIGlzU2hvd0xvYWRpbmc6IHRydWUsXHJcbiAgICB9KVxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICBwYWdlSW5kZXg6IHRoaXMuZGF0YS5wYWdlSW5kZXgsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMuZGF0YS5wYWdlU2l6ZSxcclxuICAgICAgICBzb21lTW9udGhzVHlwZTogdGhpcy5kYXRhLnNvbWVNb250aHNUeXBlXHJcbiAgICAgIH1cclxuICAgICAgbGV0IHJlcyA9IGF3YWl0IGdldEhvdElzc3VlTGlzdChvYmopXHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgbGlzdDogdGhpcy5kYXRhLmxpc3QuY29uY2F0KHJlcy5kYXRhLmxpc3QpLFxyXG4gICAgICAgIGxpc3RMZW5ndGg6IHJlcy5kYXRhLmxpc3QubGVuZ3RoLFxyXG4gICAgICAgIGlzU2hvd0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KVxyXG4gICAgICBpZiAodGhpcy5kYXRhLmxpc3RMZW5ndGggIT09IHRoaXMuZGF0YS5wYWdlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBsb2FkVHlwZTogJ25vbmUnLFxyXG4gICAgICAgICAgaXNTaG93TG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhLmxpc3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgbG9hZFZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgaXNTaG93OiB0cnVlLFxyXG4gICAgICAgICAgaXNTaG93TG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgbG9hZFZpc2libGU6IGZhbHNlLFxyXG4gICAgICAgIGlzU2hvdzogdHJ1ZSxcclxuICAgICAgICBpc1Nob3dMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9LFxyXG4gIC8qKioq6aG555uuKioqKiAqL1xyXG4gIGFzeW5jIGdldEhvdEl0ZW1MaXN0KCkge1xyXG4gICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgbG9hZFZpc2libGU6IHRydWUsXHJcbiAgICAgIGlzU2hvd0xvYWRpbmc6IHRydWUsXHJcbiAgICB9KVxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICBwYWdlSW5kZXg6IHRoaXMuZGF0YS5wYWdlSW5kZXgsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMuZGF0YS5wYWdlU2l6ZSxcclxuICAgICAgICBzb21lTW9udGhzVHlwZTogdGhpcy5kYXRhLnNvbWVNb250aHNUeXBlXHJcbiAgICAgIH1cclxuICAgICAgbGV0IHJlcyA9IGF3YWl0IGdldEhvdEl0ZW1MaXN0KG9iailcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBsaXN0OiB0aGlzLmRhdGEubGlzdC5jb25jYXQocmVzLmRhdGEubGlzdCksXHJcbiAgICAgICAgbGlzdExlbmd0aDogcmVzLmRhdGEubGlzdC5sZW5ndGgsXHJcbiAgICAgICAgaXNTaG93TG9hZGluZzogZmFsc2UsXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmRhdGEubGlzdExlbmd0aCAhPT0gdGhpcy5kYXRhLnBhZ2VTaXplKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIGxvYWRUeXBlOiAnbm9uZScsXHJcbiAgICAgICAgICBpc1Nob3dMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRhdGEubGlzdC5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBsb2FkVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICBpc1Nob3c6IHRydWUsXHJcbiAgICAgICAgICBpc1Nob3dMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBsb2FkVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgaXNTaG93OiB0cnVlLFxyXG4gICAgICAgIGlzU2hvd0xvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KVxyXG5cclxuICAgIH1cclxuICB9LFxyXG4gIC8qKlxyXG4gICAqIOmhtemdouS4iuaLieinpuW6leS6i+S7tueahOWkhOeQhuWHveaVsFxyXG4gICAqL1xyXG4gIG9uUmVhY2hCb3R0b206IGZ1bmN0aW9uICgpIHtcclxuICAgIC8vIOWIpOaWreaYr+WQpumcgOimgeWcqOWKoOi9veaVsOaNrlxyXG4gICAgaWYgKHRoaXMuZGF0YS5saXN0TGVuZ3RoICE9PSB0aGlzLmRhdGEucGFnZVNpemUpIHtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBsb2FkVHlwZTogJ25vbmUnLFxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIGxvYWRUeXBlOiAnbW9yZScsXHJcbiAgICB9KVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgcGFnZUluZGV4OiArK3RoaXMuZGF0YS5wYWdlSW5kZXgsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLmRhdGEucGFnZVNpemUsXHJcbiAgICAgIHNvbWVNb250aHNUeXBlOiB0aGlzLmRhdGEuc29tZU1vbnRoc1R5cGVcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJ0b3BpY1wiKSB7XHJcbiAgICAgIHRoaXMuZ2V0VG9waWNIb3RMaXN0KClcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJpc3N1ZVwiKSB7XHJcbiAgICAgIHRoaXMuZ2V0SG90SXNzdWVMaXN0KClcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmlzQ2xpY2sgPT0gXCJwcm9qZWN0XCIpIHtcclxuICAgICAgdGhpcy5nZXRIb3RJdGVtTGlzdCgpXHJcbiAgICB9XHJcbiAgfSxcclxuXHJcbn0pIl19