"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