| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- "use strict";
- var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
- 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 app = getApp();
- var util_1 = require("../../utils/util");
- var hwRequirement_impl_1 = require("../../service/impl/hwRequirement.impl");
- var hwOrder_impl_1 = require("../../service/impl/hwOrder.impl");
- var util_2 = require("../../utils/util");
- Page({
- data: {
- cover: true,
- hasInfo: false,
- info_name: '',
- idcardNumber: '',
- bright_points: '',
- message: {
- '0': '确认订单',
- '1': '订单关闭',
- '2': '已确认',
- '3': '订单中止',
- '4': '订单完成'
- },
- status: 0,
- show: true,
- name_error: '',
- id_error: '',
- id: 0,
- hwOrderAPI: {
- workContractType: -1,
- workContract: '',
- id: 0,
- status: -1
- },
- name: '',
- enrollId: 0,
- options: {
- id: 0,
- status: ''
- }
- },
- apply: function () {
- var _this = this;
- var userInfo = wx.getStorageSync('userInfo');
- if (userInfo.isDemonstrate) {
- wx.showToast({
- icon: 'none',
- title: '报名成功',
- success: function () {
- var hwOrderAPI = _this.data.hwOrderAPI;
- hwOrderAPI.status = 2;
- _this.setData({
- status: 2,
- hwOrderAPI: hwOrderAPI
- });
- util_1.putStorageSync("orderDetail_" + _this.data.id, _this.data.id, 2);
- }
- });
- }
- },
- saveIdCardNumber: function (e) {
- var idcardNumber = e.detail.value;
- if (idcardNumber) {
- if (idcardNumber.length !== 15 && idcardNumber.length !== 18) {
- this.setData({
- id_error: '身份证号码格式错误'
- });
- }
- else {
- this.setData({
- idcardNumber: idcardNumber,
- id_error: ''
- });
- }
- }
- else {
- this.setData({
- id_error: '请填写身份证号码'
- });
- }
- },
- saveName: function (e) {
- var info_name = e.detail.value;
- if (info_name) {
- this.setData({
- info_name: info_name,
- name_error: ''
- });
- }
- else {
- this.setData({
- name_error: '请填写姓名'
- });
- }
- },
- input: function (e) {
- this.setData({
- bright_points: e.detail.value
- });
- },
- openMap: function (e) {
- var name = e.currentTarget.dataset.name;
- var address = e.currentTarget.dataset.address;
- console.log(name, address);
- },
- buttonCheck: function () {
- var workContract = this.data.hwOrderAPI.workContract;
- if (workContract) {
- wx.showLoading({
- mask: true,
- title: '正在打开文件...',
- });
- wx.downloadFile({
- url: this.data.hwOrderAPI.workContract,
- success: function (res) {
- wx.openDocument({
- filePath: res.tempFilePath,
- success: function () {
- wx.hideLoading();
- },
- fail: function () {
- wx.showToast({
- icon: 'none',
- title: '打开失败',
- });
- }
- });
- }
- });
- }
- else {
- }
- },
- buttonSubmit: function () {
- var _this = this;
- var workContractType = this.data.hwOrderAPI.workContractType;
- if (workContractType === 1) {
- hwOrder_impl_1.confirmECOrdersImpl({
- orderId: this.data.hwOrderAPI.id
- }).then(function (res) {
- if (res.errCode === 0) {
- wx.reLaunch({
- url: "/pages/web-view/web-view?url=" + encodeURIComponent(res.data.url),
- success: function () {
- app.globalData.webview = "/pages/my-order/my-order";
- }
- });
- }
- });
- }
- if (workContractType === 0) {
- hwOrder_impl_1.confirmOrderImpl({
- orderId: this.data.hwOrderAPI.id
- }).then(function (res) {
- if (res.errCode === 0) {
- wx.showToast({
- title: '订单已确认',
- success: function () {
- var hwOrderAPI = _this.data.hwOrderAPI;
- hwOrderAPI.status = 2;
- _this.setData({
- hwOrderAPI: hwOrderAPI
- });
- }
- });
- }
- });
- }
- },
- showCover: function () {
- return __awaiter(this, void 0, void 0, function () {
- var userInfo;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4, util_2.getHwUserInfo()];
- case 1:
- userInfo = _a.sent();
- if (userInfo.idcardNumber && userInfo.name) {
- this.setData({
- cover: false,
- hasInfo: true
- });
- }
- else {
- this.setData({
- cover: false,
- hasInfo: false
- });
- }
- return [2];
- }
- });
- });
- },
- cover: function () {
- var cover = !this.data.cover;
- this.setData({
- cover: cover
- });
- },
- cancelEnrollment: function () {
- var id = this.data.enrollId;
- hwRequirement_impl_1.cancelEnrollmentImpl({
- enroll_id: id
- }).then(function () {
- wx.showToast({
- icon: 'none',
- title: '取消成功',
- success: function () {
- setTimeout(function () {
- wx.navigateBack({
- delta: 1
- });
- }, 1200);
- }
- });
- });
- },
- buttonRight: function () {
- },
- onLoad: function (options) {
- this.setData({
- options: options
- });
- },
- onReady: function () {
- },
- onShow: function () {
- return __awaiter(this, void 0, void 0, function () {
- var options;
- var _this = this;
- return __generator(this, function (_a) {
- options = this.data.options;
- if (options.id && options.status) {
- if (options.status === '2') {
- hwOrder_impl_1.getOrderDetailImpl({
- orderId: options.id
- }).then(function (res) {
- if (res.errCode === 0) {
- var id = util_1.getStorageSync("orderDetail_" + _this.data.id);
- if (id) {
- res.data.hwOrderAPI.status = 2;
- }
- _this.setData(__assign(__assign({}, res.data.hwRequirementAPI), { hwOrderAPI: res.data.hwOrderAPI }));
- }
- });
- }
- if (options.status === '1') {
- hwRequirement_impl_1.getRequirementDetailImpl({
- user_id: wx.getStorageSync('userId'),
- user_token: wx.getStorageSync('userToken'),
- hwRequirementId: options.id
- }).then(function (res) {
- if (res.errCode === 0) {
- _this.setData(__assign(__assign({}, res.data.hwRequirementAPI), { displayCancel: res.data.displayCancel || null, needEnrollment: res.data.needEnrollment || null, enrollId: res.data.enrollId || null }));
- }
- });
- }
- }
- if (options.status) {
- this.setData({
- status: Number(options.status),
- show: false
- });
- }
- this.setData({
- user_id: wx.getStorageSync('userId'),
- });
- return [2];
- });
- });
- },
- onHide: function () {
- },
- onUnload: function () {
- },
- onPullDownRefresh: function () {
- },
- onReachBottom: function () {
- },
- onShareAppMessage: function () {
- return {
- title: this.data.name,
- path: "/pages/detail/detail?id=" + this.data.id + "&&status=" + this.data.status
- };
- }
- });
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNyQix5Q0FBaUU7QUFvQmpFLDRFQUFzRztBQUV0RyxnRUFBMkc7QUFDM0cseUNBQWdEO0FBQ2hELElBQUksQ0FBQztJQUtILElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxJQUFJO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsRUFBRTtRQUNiLFlBQVksRUFBRSxFQUFFO1FBQ2hCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLEdBQUcsRUFBRSxNQUFNO1lBQ1gsR0FBRyxFQUFFLE1BQU07WUFDWCxHQUFHLEVBQUUsS0FBSztZQUNWLEdBQUcsRUFBRSxNQUFNO1lBQ1gsR0FBRyxFQUFFLE1BQU07U0FDWjtRQUNELE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUUsRUFBRTtRQUNkLFFBQVEsRUFBRSxFQUFFO1FBQ1osRUFBRSxFQUFFLENBQUM7UUFDTCxVQUFVLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDcEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsRUFBRSxFQUFFLENBQUM7WUFDTCxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxJQUFJLEVBQUUsRUFBRTtRQUNSLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLENBQUM7WUFDTCxNQUFNLEVBQUUsRUFBRTtTQUNYO0tBRUY7SUFPRCxLQUFLO1FBQUwsaUJBMkVDO1FBakJDLElBQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFOUMsSUFBSSxRQUFRLENB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O1lBQ3JCLElBQUksRUFBRSw2QkFBMkIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLGlCQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBUTtTQUM1RSxDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHBhZ2VzL2RldGFpbC9kZXRhaWwuanNcbmNvbnN0IGFwcCA9IGdldEFwcCgpO1xuaW1wb3J0IHsgcHV0U3RvcmFnZVN5bmMsIGdldFN0b3JhZ2VTeW5jIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCdcbi8vIHR5cGUgZXJyb3JNZXNzYWdlVHlwZSA9IHtcbi8vICAgaW5mb19uYW1lOiBTdHJpbmcsXG4vLyAgIGlkY2FyZE51bWJlcjogU3RyaW5nLFxuLy8gfVxuLy8gLy8g5pyq5aGr5YaZ5o+Q56S65a2X5q615Y+K5L+h5oGvXG4vLyBjb25zdCBlcnJvck1lc3NhZ2U6IGVycm9yTWVzc2FnZVR5cGUgPSB7XG4vLyAgIGluZm9fbmFtZTogJ+ivt+Whq+WGmeWnk+WQjScsXG4vLyAgIGlkY2FyZE51bWJlcjogJ+ivt+Whq+WGmei6q+S7veivgeWPt+eggScsXG4vLyB9XG5cbi8vIHR5cGUgZXJyb3JLZXlUeXBlID0ge1xuLy8gICBpbmZvX25hbWU6IFN0cmluZyxcbi8vICAgaWRjYXJkTnVtYmVyOiBTdHJpbmcsXG4vLyB9XG4vLyAvLyDmnKrloavlhplrZXnlgLxcbi8vIGNvbnN0IGVycm9yS2V5OiBlcnJvcktleVR5cGUgPSB7XG4vLyAgIGluZm9fbmFtZTogJ25hbWVfZXJyb3InLFxuLy8gICBpZGNhcmROdW1iZXI6ICdpZF9lcnJvcicsXG4vLyB9XG5pbXBvcnQgeyBjYW5jZWxFbnJvbGxtZW50SW1wbCwgZ2V0UmVxdWlyZW1lbnREZXRhaWxJbXBsIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pbXBsL2h3UmVxdWlyZW1lbnQuaW1wbCdcbi8vIGltcG9ydCB7IGNhbmNlbEVucm9sbG1lbnRJbXBsLCBlbnJvbGxtZW50UmVxdWlyZUltcGwsIGdldFJlcXVpcmVtZW50RGV0YWlsSW1wbCB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW1wbC9od1JlcXVpcmVtZW50LmltcGwnXG5pbXBvcnQgeyBjb25maXJtRUNPcmRlcnNJbXBsLCBjb25maXJtT3JkZXJJbXBsLCBnZXRPcmRlckRldGFpbEltcGwgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ltcGwvaHdPcmRlci5pbXBsJ1xuaW1wb3J0IHsgZ2V0SHdVc2VySW5mbyB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnXG5QYWdlKHtcblxuICAvKipcbiAgICog6aG16Z2i55qE5Yid5aeL5pWw5o2uXG4gICAqL1xuICBkYXRhOiB7XG4gICAgY292ZXI6IHRydWUsIC8vIOiSmeWxglxuICAgIGhhc0luZm86IGZhbHNlLCAvL+aYr+WQpuaLpeacieS4quS6uuS/oeaBr1xuICAgIGluZm9fbmFtZTogJycsXG4gICAgaWRjYXJkTnVtYmVyOiAnJyxcbiAgICBicmlnaHRfcG9pbnRzOiAnJywgLy8g5Lqu54K5XG4gICAgbWVzc2FnZTogeyAvL+iuouWNleeKtuaAgeaYoOWwhFxuICAgICAgJzAnOiAn56Gu6K6k6K6i5Y2VJyxcbiAgICAgICcxJzogJ+iuouWNleWFs+mXrScsXG4gICAgICAnMic6ICflt7Lnoa7orqQnLFxuICAgICAgJzMnOiAn6K6i5Y2V5Lit5q2iJyxcbiAgICAgICc0JzogJ+iuouWNleWujOaIkCdcbiAgICB9LFxuICAgIHN0YXR1czogMCwgLy/mjInpkq7nirbmgIEgMSDpnIDmsYIgMiDlt7LmiqXlkI0gMyDorqLljZVcbiAgICBzaG93OiB0cnVlLCAvLyDmmK/lkKblsZXnpLpcbiAgICBuYW1lX2Vycm9yOiAnJywgLy8g5aeT5ZCN6ZSZ6K+v5L+h5oGvXG4gICAgaWRfZXJyb3I6ICcnLCAvLyAg6Lqr5Lu96K+B6ZSZ6K+v5L+h5oGvXG4gICAgaWQ6IDAsXG4gICAgaHdPcmRlckFQSToge1xuICAgICAgd29ya0NvbnRyYWN0VHlwZTogLTEsXG4gICAgICB3b3JrQ29udHJhY3Q6ICcnLFxuICAgICAgaWQ6IDAsXG4gICAgICBzdGF0dXM6IC0xXG4gICAgfSxcbiAgICBuYW1lOiAnJyxcbiAgICBlbnJvbGxJZDogMCxcbiAgICBvcHRpb25zOiB7XG4gICAgICBpZDogMCxcbiAgICAgIHN0YXR1czogJydcbiAgICB9XG4gICAgLy8gYnRuX21lc3NhZ2U6ICcnXG4gIH0sXG4gIC8qKlxuICAgKiDpnIDmsYLmiqXlkI1cbiAgICogQHJlcXVpcmVtZW50X2lkIHtzdHJpbmd9IOmcgOaxgklEXG4gICAqIEBicmlnaHRfcG9pbnRzIHtzdHJpbmd9ICDkuq7ngrlcbiAgICogQGVucm9sbF9mcm9tICB7bnVtYmVyfSDmiqXlkI3mnaXmupDvvIgwOuWwj+eoi+W6jyAgMTpBUFAgIDI65ZCO5Y+w77yJXG4gICAqL1xuICBhcHBseSgpIHtcbiAgICAvLyBpZiAoIXRoaXMuZGF0YS5oYXNJbmZvKSB7XG4gICAgLy8gICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvck1lc3NhZ2UpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICF0aGlzLmRhdGFba2V5XSkge1xuICAgIC8vICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgLy8gICAgICAgICBpY29uOiAnbm9uZScsXG4gICAgLy8gICAgICAgICB0aXRsZTogZXJyb3JNZXNzYWdlW2tleV0sXG4gICAgLy8gICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgLy8gICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgLy8gICAgICAgICAgICAgW2Vycm9yS2V5W2tleV1dOiBlcnJvck1lc3NhZ2Vba2V5XVxuICAgIC8vICAgICAgICAgICB9KVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH0pXG4gICAgLy8gICAgICAgcmV0dXJuXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyAgIGlmICh0aGlzLmRhdGEuaWRjYXJkTnVtYmVyLmxlbmd0aCAhPT0gMTUgJiYgdGhpcy5kYXRhLmlkY2FyZE51bWJlci5sZW5ndGggIT09IDE4KSB7XG4gICAgLy8gICAgIHd4LnNob3dUb2FzdCh7XG4gICAgLy8gICAgICAgaWNvbjogJ25vbmUnLFxuICAgIC8vICAgICAgIHRpdGxlOiAn6Lqr5Lu96K+B5Y+356CB5qC85byP6ZSZ6K+vJyxcbiAgICAvLyAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgIC8vICAgICAgICAgICBpZF9lcnJvcjogJ+i6q+S7veivgeWPt+eggeagvOW8j+mUmeivrydcbiAgICAvLyAgICAgICAgIH0pXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvLyDmiqXlkI3pnIDmsYJcbiAgICAvLyBlbnJvbGxtZW50UmVxdWlyZUltcGwoe1xuICAgIC8vICAgcmVxdWlyZW1lbnRfaWQ6IHRoaXMuZGF0YS5pZCxcbiAgICAvLyAgIG5hbWU6IHRoaXMuZGF0YS5pbmZvX25hbWUsXG4gICAgLy8gICBpZGNhcmROdW1iZXI6IHRoaXMuZGF0YS5pZGNhcmROdW1iZXIsXG4gICAgLy8gICBicmlnaHRfcG9pbnRzOiB0aGlzLmRhdGEuYnJpZ2h0X3BvaW50cyxcbiAgICAvLyAgIGVucm9sbF9mcm9tOiAwXG4gICAgLy8gfSkudGhlbigoKSA9PiB7XG4gICAgLy8gICB3eC5zaG93VG9hc3Qoe1xuICAgIC8vICAgICB0aXRsZTogJ+aKpeWQjeaIkOWKnycsXG4gICAgLy8gICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAvLyAgICAgICB0aGlzLnNldERhdGEoe1xuICAgIC8vICAgICAgICAgY292ZXI6IHRydWUsXG4gICAgLy8gICAgICAgfSwgKCkgPT4ge1xuICAgIC8vICAgICAgICAgd3gubmF2aWdhdGVCYWNrKHtcbiAgICAvLyAgICAgICAgICAgZGVsdGE6IDEsXG4gICAgLy8gICAgICAgICB9KVxuICAgIC8vICAgICAgIH0pXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH0pXG4gICAgLy8gfSkuY2F0Y2gocmVzID0+IHtcbiAgICAvLyAgIGlmIChyZXMuZXJyQ29kZSkge1xuICAgIC8vICAgICB3eC5zaG93TW9kYWwoe1xuICAgIC8vICAgICAgIHRpdGxlOiAn5oql5ZCN5aSx6LSlJyxcbiAgICAvLyAgICAgICBjb250ZW50OiByZXMuZXJyTXNnLFxuICAgIC8vICAgICAgIHNob3dDYW5jZWw6IGZhbHNlLFxuICAgIC8vICAgICAgIGNvbmZpcm1Db2xvcjogJyMzMTM2NEMnXG4gICAgLy8gICAgIH0pXG4gICAgLy8gICB9XG4gICAgLy8gfSlcbiAgICBjb25zdCB1c2VySW5mbyA9IHd4LmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpXG5cbiAgICBpZiAodXNlckluZm8uaXNEZW1vbnN0cmF0ZSkge1xuICAgICAgd3guc2hvd1RvYXN0KHtcbiAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICB0aXRsZTogJ+aKpeWQjeaIkOWKnycsXG4gICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBod09yZGVyQVBJID0gdGhpcy5kYXRhLmh3T3JkZXJBUElcbiAgICAgICAgICBod09yZGVyQVBJLnN0YXR1cyA9IDJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICAgICAgc3RhdHVzOiAyLFxuICAgICAgICAgICAgaHdPcmRlckFQSVxuICAgICAgICAgIH0pXG4gICAgICAgICAgcHV0U3RvcmFnZVN5bmMoYG9yZGVyRGV0YWlsXyR7dGhpcy5kYXRhLmlkfWAsIHRoaXMuZGF0YS5pZCwgMilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIOS6rueCuei+k+WFpVxuICAgKiBAaWRjYXJkTnVtYmVyIHtzdHJpbmd9IOi6q+S7veivgVxuICAgKi9cbiAgc2F2ZUlkQ2FyZE51bWJlcihlOiBhbnkpIHtcbiAgICBjb25zdCBpZGNhcmROdW1iZXIgPSBlLmRldGFpbC52YWx1ZVxuICAgIGlmIChpZGNhcmROdW1iZXIpIHtcbiAgICAgIGlmIChpZGNhcmROdW1iZXIubGVuZ3RoICE9PSAxNSAmJiBpZGNhcmROdW1iZXIubGVuZ3RoICE9PSAxOCkge1xuICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICAgIGlkX2Vycm9yOiAn6Lqr5Lu96K+B5Y+356CB5qC85byP6ZSZ6K+vJ1xuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICBpZGNhcmROdW1iZXIsXG4gICAgICAgICAgaWRfZXJyb3I6ICcnXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGlkX2Vycm9yOiAn6K+35aGr5YaZ6Lqr5Lu96K+B5Y+356CBJ1xuICAgICAgfSlcbiAgICB9XG4gIH0sXG4gIC8qKlxuICAgKiDkuq7ngrnovpPlhaVcbiAgICogQG5hbWUge3N0cmluZ30g5aeT5ZCNXG4gICAqL1xuICBzYXZlTmFtZShlOiBhbnkpIHtcbiAgICBjb25zdCBpbmZvX25hbWUgPSBlLmRldGFpbC52YWx1ZVxuICAgIGlmIChpbmZvX25hbWUpIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGluZm9fbmFtZSxcbiAgICAgICAgbmFtZV9lcnJvcjogJydcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIG5hbWVfZXJyb3I6ICfor7floavlhpnlp5PlkI0nXG4gICAgICB9KVxuICAgIH1cbiAgfSxcbiAgLyoqXG4gICAqIOS6rueCuei+k+WFpVxuICAgKiBAYnJpZ2h0X3BvaW50cyB7c3RyaW5nfSDkuq7ngrlcbiAgICovXG4gIGlucHV0KGU6IGFueSkge1xuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICBicmlnaHRfcG9pbnRzOiBlLmRldGFpbC52YWx1ZVxuICAgIH0pXG4gIH0sXG4gIC8qKlxuICAgKiDmiZPlvIDlnLDlm75cbiAgICovXG4gIG9wZW5NYXAoZTogYW55KSB7XG4gICAgY29uc3QgbmFtZSA9IGUuY3VycmVudFRhcmdldC5kYXRhc2V0Lm5hbWU7XG4gICAgY29uc3QgYWRkcmVzcyA9IGUuY3VycmVudFRhcmdldC5kYXRhc2V0LmFkZHJlc3M7XG4gICAgY29uc29sZS5sb2cobmFtZSwgYWRkcmVzcyk7XG5cbiAgICAvLyB3eC5vcGVuTG9jYXRpb24oe1xuICAgIC8vICAgbGF0aXR1ZGU6IDMxLjU0NDMyNSxcbiAgICAvLyAgIGxvbmdpdHVkZTogMTIwLjM1NjU5NSxcbiAgICAvLyAgIG5hbWUsXG4gICAgLy8gICBhZGRyZXNzXG4gICAgLy8gfSlcbiAgfSxcbiAgLyoqXG4gICAqIOafpeeci+WQiOWQjFxuICAgKiBAZmlsZVBhdGgge3N0cmluZ30g5ZCI5ZCM5Zyw5Z2AXG4gICAqL1xuICBidXR0b25DaGVjaygpIHtcbiAgICAvLyDojrflj5bnur/kuIrlkIjlkIwgIOWmguaenOWtmOWcqOaJk+W8gOWQiOWQjCAgIOS4jeWtmOWcqOi/m+ihjOaPkOekuu+8iOaaguaXoO+8iVxuICAgIGNvbnN0IHdvcmtDb250cmFjdCA9IHRoaXMuZGF0YS5od09yZGVyQVBJLndvcmtDb250cmFjdDtcbiAgICBpZiAod29ya0NvbnRyYWN0KSB7XG4gICAgICB3eC5zaG93TG9hZGluZyh7XG4gICAgICAgIG1hc2s6IHRydWUsXG4gICAgICAgIHRpdGxlOiAn5q2j5Zyo5omT5byA5paH5Lu2Li4uJyxcbiAgICAgIH0pXG4gICAgICB3eC5kb3dubG9hZEZpbGUoe1xuICAgICAgICB1cmw6IHRoaXMuZGF0YS5od09yZGVyQVBJLndvcmtDb250cmFjdCxcbiAgICAgICAgc3VjY2VzczogKHJlcykgPT4ge1xuICAgICAgICAgIHd4Lm9wZW5Eb2N1bWVudCh7XG4gICAgICAgICAgICBmaWxlUGF0aDogcmVzLnRlbXBGaWxlUGF0aCxcbiAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgd3guaGlkZUxvYWRpbmcoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZhaWwoKSB7XG4gICAgICAgICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5omT5byA5aSx6LSlJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3eC5zaG93VG9hc3Qoe1xuICAgICAgLy8gICBpY29uOidub25lJyxcbiAgICAgIC8vICAgdGl0bGU6ICcnLFxuICAgICAgLy8gfSlcbiAgICB9XG4gIH0sXG4gIC8qKlxuICAgKiDnoa7orqTorqLljZVcbiAgICogQG9yZGVySWQge3N0cmluZ30g6K6i5Y2VSURcbiAgICog5YmN5Y+w5oql5ZCN6ZyA5rGC5ZCOICDlkI7lj7DnlJ/miJDorqLljZUgICDpnIDliY3lj7DmiYvliqjnoa7lrprorqLljZUg5qC55o2u6K6i5Y2V5ZCI5ZCM5LiN5ZCM6LCD55So5LiN5ZCM5o6l5Y+jXG4gICAqL1xuICBidXR0b25TdWJtaXQoKSB7XG4gICAgY29uc3Qgd29ya0NvbnRyYWN0VHlwZSA9IHRoaXMuZGF0YS5od09yZGVyQVBJLndvcmtDb250cmFjdFR5cGU7XG4gICAgLy8g55S15a2Q5ZCI5ZCM56Gu6K6k6K6i5Y2VXG4gICAgaWYgKHdvcmtDb250cmFjdFR5cGUgPT09IDEpIHtcbiAgICAgIGNvbmZpcm1FQ09yZGVyc0ltcGwoe1xuICAgICAgICBvcmRlcklkOiB0aGlzLmRhdGEuaHdPcmRlckFQSS5pZFxuICAgICAgfSkudGhlbihyZXMgPT4ge1xuICAgICAgICBpZiAocmVzLmVyckNvZGUgPT09IDApIHtcbiAgICAgICAgICAvLyDot7Povax3ZWJ2aWV36aG16Z2iXG4gICAgICAgICAgd3gucmVMYXVuY2goe1xuICAgICAgICAgICAgdXJsOiBgL3BhZ2VzL3dlYi12aWV3L3dlYi12aWV3P3VybD0ke2VuY29kZVVSSUNvbXBvbmVudChyZXMuZGF0YS51cmwpfWAsXG4gICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIOe8k+WtmOW9k+WJjemhtemdouWcsOWdgCAgIOaWueS+v+i3s+WbnlxuICAgICAgICAgICAgICBhcHAuZ2xvYmFsRGF0YS53ZWJ2aWV3ID0gYC9wYWdlcy9teS1vcmRlci9teS1vcmRlcmA7XG4gICAgICAgICAgICAgIC8vIHd4LnNldFN0b3JhZ2VTeW5jKCd3ZWJfdmlldycsIGAvcGFnZXMvbXktb3JkZXIvbXktb3JkZXJgKVxuICAgICAgICAgICAgICAvLyB3eC5zZXRTdG9yYWdlU3luYygnd2ViX3ZpZXcnLCBgLyR7dGhpcy5yb3V0ZX0/aWQ9JHt0aGlzLmRhdGEuaHdPcmRlckFQSS5pZH0mJnN0YXR1cz0ke3RoaXMuZGF0YS5zdGF0dXN9YClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICAvLyDpnZ7nlLXlrZDlkIjlkIxcbiAgICBpZiAod29ya0NvbnRyYWN0VHlwZSA9PT0gMCkge1xuICAgICAgY29uZmlybU9yZGVySW1wbCh7XG4gICAgICAgIG9yZGVySWQ6IHRoaXMuZGF0YS5od09yZGVyQVBJLmlkXG4gICAgICB9KS50aGVuKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMuZXJyQ29kZSA9PT0gMCkge1xuICAgICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgICAgICAgICB0aXRsZTogJ+iuouWNleW3suehruiupCcsXG4gICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIOehruiupOaIkOWKn+WQjiDmm7TmlLnmjInpkq7nirbmgIFcbiAgICAgICAgICAgICAgY29uc3QgaHdPcmRlckFQSSA9IHRoaXMuZGF0YS5od09yZGVyQVBJO1xuICAgICAgICAgICAgICBod09yZGVyQVBJLnN0YXR1cyA9IDI7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgICAgICAgICAgaHdPcmRlckFQSVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9LFxuICAvLyDmmL7npLrmiqXlkI3loavlhpnnmoTorqLljZXovpPlhaXmoYZcbiAgYXN5bmMgc2hvd0NvdmVyKCkge1xuICAgIGNvbnN0IHVzZXJJbmZvOiBhbnkgPSBhd2FpdCBnZXRId1VzZXJJbmZvKClcbiAgICBpZiAodXNlckluZm8uaWRjYXJkTnVtYmVyICYmIHVzZXJJbmZvLm5hbWUpIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGNvdmVyOiBmYWxzZSxcbiAgICAgICAgaGFzSW5mbzogdHJ1ZVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgY292ZXI6IGZhbHNlLFxuICAgICAgICBoYXNJbmZvOiBmYWxzZVxuICAgICAgfSlcbiAgICB9XG5cbiAgfSxcbiAgLyoqXG4gICAqIOaOp+WItmNvdmVy5bGC55qE5pi+56S65LiO6ZqQ6JePXG4gICAqL1xuICBjb3ZlcigpIHtcbiAgICBjb25zdCBjb3ZlciA9ICF0aGlzLmRhdGEuY292ZXI7XG4gICAgdGhpcy5zZXREYXRhKHtcbiAgICAgIGNvdmVyXG4gICAgfSlcbiAgfSxcbiAgLyoqXG4gICAgKiDlj5bmtojmiqXlkI1cbiAgICAqIEBlbnJvbGxfaWQge3N0cmluZ30g5oql5ZCNaWRcbiAgICAqL1xuICBjYW5jZWxFbnJvbGxtZW50KCkge1xuICAgIGNvbnN0IGlkID0gdGhpcy5kYXRhLmVucm9sbElkXG4gICAgY2FuY2VsRW5yb2xsbWVudEltcGwoe1xuICAgICAgZW5yb2xsX2lkOiBpZFxuICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgd3guc2hvd1RvYXN0KHtcbiAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICB0aXRsZTogJ+WPlua2iOaIkOWKnycsXG4gICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHd4Lm5hdmlnYXRlQmFjayh7XG4gICAgICAgICAgICAgIGRlbHRhOiAxXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sIDEyMDApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfSxcbiAgLyoqXG4gICAqIFxuICAgKi9cbiAgYnV0dG9uUmlnaHQoKSB7XG5cbiAgfSxcbiAgLyoqXG4gICAqIOeUn+WRveWRqOacn+WHveaVsC0t55uR5ZCs6aG16Z2i5Yqg6L29XG4gICAqL1xuICBvbkxvYWQ6IGZ1bmN0aW9uIChvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgb3B0aW9uc1xuICAgIH0pXG5cbiAgfSxcblxuICAvKipcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLliJ3mrKHmuLLmn5PlrozmiJBcbiAgICovXG4gIG9uUmVhZHk6IGZ1bmN0aW9uICgpIHtcblxuICB9LFxuXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdouaYvuekulxuICAgKi9cbiAgb25TaG93OiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGF0YS5vcHRpb25zXG4gICAgaWYgKG9wdGlvbnMuaWQgJiYgb3B0aW9ucy5zdGF0dXMpIHtcbiAgICAgIC8vICDlpoLmnpwg54q25oCB5Li6MyAg6K+35rGC6K6i5Y2V6K+m5oOFIElE5Li66K6i5Y2VaWRcbiAgICAgIGlmIChvcHRpb25zLnN0YXR1cyA9PT0gJzInKSB7XG4gICAgICAgIGdldE9yZGVyRGV0YWlsSW1wbCh7XG4gICAgICAgICAgb3JkZXJJZDogb3B0aW9ucy5pZFxuICAgICAgICB9KS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcy5lcnJDb2RlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGdldFN0b3JhZ2VTeW5jKGBvcmRlckRldGFpbF8ke3RoaXMuZGF0YS5pZH1gKVxuICAgICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhLmh3T3JkZXJBUEkuc3RhdHVzID0gMlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICAgICAgLi4ucmVzLmRhdGEuaHdSZXF1aXJlbWVudEFQSSxcbiAgICAgICAgICAgICAgaHdPcmRlckFQSTogcmVzLmRhdGEuaHdPcmRlckFQSSxcbiAgICAgICAgICAgICAgLy8gYnRuX21lc3NhZ2U6IHJlcy5kYXRhLmh3T3JkZXJBUEkuc3RhdHVzID09PSAyICYmIHJlcy5kYXRhLmh3T3JkZXJBUEkuc2VydmljZVN0YWdlID8gYOesrCR7cmVzLmRhdGEuaHdPcmRlckFQSS5zZXJ2aWNlU3RhZ2V95pyf5pyN5Yqh5LitYCA6IHRoaXMuZGF0YS5tZXNzYWdlW3Jlcy5kYXRhLmh3T3JkZXJBUEkuc3RhdHVzXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIOWmguaenOeKtuaAgeS4ujEg6K+35rGC6ZyA5rGC6K+m5oOFIElE5Li66ZyA5rGCaWRcbiAgICAgIGlmIChvcHRpb25zLnN0YXR1cyA9PT0gJzEnKSB7XG4gICAgICAgIGdldFJlcXVpcmVtZW50RGV0YWlsSW1wbCh7XG4gICAgICAgICAgdXNlcl9pZDogd3guZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJZCcpLFxuICAgICAgICAgIHVzZXJfdG9rZW46IHd4LmdldFN0b3JhZ2VTeW5jKCd1c2VyVG9rZW4nKSxcbiAgICAgICAgICBod1JlcXVpcmVtZW50SWQ6IG9wdGlvbnMuaWRcbiAgICAgICAgfSkudGhlbihyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMuZXJyQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICAgICAgLi4ucmVzLmRhdGEuaHdSZXF1aXJlbWVudEFQSSxcbiAgICAgICAgICAgICAgZGlzcGxheUNhbmNlbDogcmVzLmRhdGEuZGlzcGxheUNhbmNlbCB8fCBudWxsLFxuICAgICAgICAgICAgICBuZWVkRW5yb2xsbWVudDogcmVzLmRhdGEubmVlZEVucm9sbG1lbnQgfHwgbnVsbCxcbiAgICAgICAgICAgICAgZW5yb2xsSWQ6IHJlcy5kYXRhLmVucm9sbElkIHx8IG51bGxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICAvLyDkv53lrZjnirbmgIFcbiAgICBpZiAob3B0aW9ucy5zdGF0dXMpIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIHN0YXR1czogTnVtYmVyKG9wdGlvbnMuc3RhdHVzKSxcbiAgICAgICAgc2hvdzogZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICB1c2VyX2lkOiB3eC5nZXRTdG9yYWdlU3luYygndXNlcklkJyksXG4gICAgfSlcblxuICB9LFxuXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdoumakOiXj1xuICAgKi9cbiAgb25IaWRlOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLljbjovb1cbiAgICovXG4gIG9uVW5sb2FkOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog6aG16Z2i55u45YWz5LqL5Lu25aSE55CG5Ye95pWwLS3nm5HlkKznlKjmiLfkuIvmi4nliqjkvZxcbiAgICovXG4gIG9uUHVsbERvd25SZWZyZXNoOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog6aG16Z2i5LiK5ouJ6Kem5bqV5LqL5Lu255qE5aSE55CG5Ye95pWwXG4gICAqL1xuICBvblJlYWNoQm90dG9tOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog55So5oi354K55Ye75Y+z5LiK6KeS5YiG5LqrXG4gICAqL1xuICBvblNoYXJlQXBwTWVzc2FnZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdGhpcy5kYXRhLm5hbWUsXG4gICAgICBwYXRoOiBgL3BhZ2VzL2RldGFpbC9kZXRhaWw/aWQ9JHt0aGlzLmRhdGEuaWR9JiZzdGF0dXM9JHt0aGlzLmRhdGEuc3RhdHVzfWBcbiAgICB9XG4gIH1cbn0pIl19
|