Sanakey
2021-07-09 3fc241d02fb8b671289de3d9d80bf848349c04d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
"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) {
    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) : new P(function (resolve) { resolve(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 });
Page({
    data: {
        isShowStartDatePopup: false,
        isShowEndDatePopup: false,
        minStartDate: new Date().getTime() + 1000 * 60 * 15,
        maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
        startDate: new Date().getTime() + 1000 * 60 * 60,
        startTime: '',
        startDateAndTime: [],
        minEndDate: new Date().getTime() + 1000 * 60 * 45,
        maxEndDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
        endDate: new Date().getTime() + 1000 * 60 * 240,
        endTime: '',
        endDateAndTime: [],
        formatter: function (type, value) {
            if (type === "year") {
                return value + "\u5E74";
            }
            else if (type === "month") {
                return value + "\u6708";
            }
            else if (type === "day") {
                return value + "\u65E5";
            }
            return value;
        },
        doccode: '',
        qrCodeUrl: "",
    },
    onSubmit: function () {
        return __awaiter(this, void 0, void 0, function () {
            var data, checkStartTime, checkEndTime, _a, error, result, authentication;
            return __generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        data = {
                            docCode: this.data.doccode,
                            startTime: this.data.startTime + ":00",
                            endTime: this.data.endTime + ":00",
                        };
                        checkStartTime = this.checkTime("startTime", "请选择计划开始时间");
                        checkEndTime = this.checkTime("endTime", "请选择计划结束时间");
                        console.log('待提交数据', data);
                        if (!checkStartTime || !checkEndTime) {
                            return [2];
                        }
                        return [4, wx.$utils.to(wx.$http.request({
                                url: "/shopping/panicBuyingLive/saveRoomStep3.do",
                                data: data,
                                method: 'POST'
                            }))];
                    case 1:
                        _a = _b.sent(), error = _a[0], result = _a[1];
                        if (error) {
                            console.log(error);
                            return [2];
                        }
                        console.log("新建房间--第三步", result);
                        if (result.qrcodeUrl) {
                            authentication = this.selectComponent('#my-anchor-authentication');
                            authentication.showQrCodeDialog(result.qrcodeUrl);
                            return [2];
                        }
                        if (result.state == 'success') {
                            wx.navigateBack({
                                delta: 3
                            });
                        }
                        return [2];
                }
            });
        });
    },
    onLoad: function (options) {
        var doccode = options.doccode || '';
        var currentLiveRoomData = wx.globalData.currentLiveRoomData;
        console.log('正在编辑的直播间数据', currentLiveRoomData);
        if (currentLiveRoomData && JSON.stringify(currentLiveRoomData) != '{}') {
            var startDate = this.data.startDate;
            var endDate = this.data.endDate;
            var lives = {
                startTime: currentLiveRoomData.StartTime,
                endTime: currentLiveRoomData.EndTime,
                startDate: currentLiveRoomData.StartTime ? new Date(currentLiveRoomData.StartTime).getTime() : startDate,
                endDate: currentLiveRoomData.EndTime ? new Date(currentLiveRoomData.EndTime).getTime() : endDate,
            };
            console.log('已有时间', lives);
            this.setData(__assign({}, lives));
        }
        this.handleDateAndTime();
        this.setData({
            doccode: doccode,
        });
    },
    onShow: function () { },
    handleDateAndTime: function () {
        var waitHandle = this.data;
        var startTime = waitHandle.startTime || wx.$utils.formatTime(new Date().getTime() + 1000 * 60 * 60);
        var endTime = waitHandle.endTime || wx.$utils.formatTime(new Date().getTime() + 1000 * 60 * 240);
        this.setData({
            startTime: startTime,
            endTime: endTime,
            startDateAndTime: startTime.split(' '),
            endDateAndTime: endTime.split(' '),
        });
    },
    showStartDatePopup: function () {
        this.setData({
            isShowStartDatePopup: true
        });
    },
    onStartDatePopupClose: function () {
        this.setData({
            isShowStartDatePopup: false
        });
    },
    onEnterStartDate: function (event) {
        var detail = event.detail;
        var dateTime = wx.$utils.formatTime(event.detail);
        console.log("选择开播时间", dateTime, detail);
        this.setData({
            startDate: detail,
            startTime: dateTime,
            minEndDate: detail + 1000 * 60 * 30,
        });
        this.handleDateAndTime();
        this.onStartDatePopupClose();
        this.checkTime("startTime", "请选择计划开始时间");
    },
    showEndDatePopup: function () {
        this.setData({
            isShowEndDatePopup: true
        });
    },
    onEndDatePopupClose: function () {
        this.setData({
            isShowEndDatePopup: false
        });
    },
    onEnterEndDate: function (event) {
        var date = wx.$utils.formatTime(event.detail);
        console.log("选择下播时间", date, event.detail);
        this.setData({
            endTime: date,
            endDate: event.detail,
        });
        this.handleDateAndTime();
        this.onEndDatePopupClose();
        this.checkTime("endTime", "请选择计划结束时间");
    },
    checkTime: function (time, msg) {
        var _a, _b, _c, _d, _e, _f;
        if (this.data[time] == '') {
            this.setData((_a = {},
                _a[time + "Error"] = msg,
                _a));
            console.log(this.data.startTime);
            return false;
        }
        var startDate = this.data.startDate;
        var endDate = this.data.endDate;
        console.log(this.data);
        if (time === 'startTime') {
            if (startDate && endDate && (startDate - endDate > 0)) {
                this.setData((_b = {},
                    _b["startTimeError"] = "开始时间需小于结束时间",
                    _b));
                return false;
            }
        }
        if (time === 'endTime') {
            if (startDate && endDate && (endDate - startDate < 0)) {
                this.setData((_c = {},
                    _c["endTimeError"] = "结束时间需大于开始时间",
                    _c));
                return false;
            }
        }
        if (startDate && endDate && (Math.abs(startDate - endDate) < 1000 * 60 * 30)) {
            this.setData((_d = {},
                _d[time + "Error"] = "所选时间范围间隔不得短于30分钟",
                _d));
            return false;
        }
        if (startDate && endDate && (Math.abs(startDate - endDate) > 1000 * 60 * 60 * 24)) {
            this.setData((_e = {},
                _e[time + "Error"] = "所选时间范围必须在24小时以内",
                _e));
            return false;
        }
        this.setData((_f = {},
            _f["startTimeError"] = "",
            _f["endTimeError"] = "",
            _f));
        return true;
    },
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVNldHRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRlU2V0dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFJLENBQUM7SUFJSCxJQUFJLEVBQUU7UUFDSixvQkFBb0IsRUFBQyxLQUFLO1FBQzFCLGtCQUFrQixFQUFDLEtBQUs7UUFDeEIsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQ25ELFlBQVksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHO1FBQzlELFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxTQUFTLEVBQUUsRUFBRTtRQUNiLGdCQUFnQixFQUFFLEVBQVM7UUFDM0IsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQ2pELFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHO1FBQzVELE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsR0FBRztRQUMvQyxPQUFPLEVBQUUsRUFBRTtRQUNYLGNBQWMsRUFBRSxFQUFTO1FBQ3pCLFNBQVMsWUFBQyxJQUFXLEVBQUUsS0FBWTtZQUVqQyxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ25CLE9BQVUsS0FBSyxXQUFHLENBQUM7YUFD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Q0FBQyxPQUFPLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsT0FBTztvQkFDVixHQUFDLGNBQWMsSUFBRyxhQUFhO3dCQUMvQixDQUFDO2dCQUNILE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELElBQUksU0FBUyxJQUFFLE9BQU8sSUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFDLElBQUksR0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEVBQUM7WUFDakUsSUFBSSxDQUFDLE9BQU87Z0JBQ1YsR0FBQyxJQUFJLEdBQUcsT0FBTyxJQUFHLGtCQUFrQjtvQkFDcEMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLFNBQVMsSUFBRSxPQUFPLElBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBQyxJQUFJLEdBQUMsRUFBRSxHQUFDLEVBQUUsR0FBQyxFQUFFLENBQUMsRUFBQztZQUNwRSxJQUFJLENBQUMsT0FBTztnQkFDVixHQUFDLElBQUksR0FBRyxPQUFPLElBQUcsaUJBQWlCO29CQUNuQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksQ0FBQyxPQUFPO1lBQ1YsR0FBQyxnQkFBZ0IsSUFBRyxFQUFFO1lBQ3RCLEdBQUMsY0FBYyxJQUFHLEVBQUU7Z0JBQ3BCLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUVkLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIHRpbWVUeXBlID0gJ3N0YXJ0VGltZSd8J2VuZFRpbWUnO1xuUGFnZSh7XG4gIC8qKlxuICAgKiDpobXpnaLnmoTliJ3lp4vmlbDmja5cbiAgICovXG4gIGRhdGE6IHtcbiAgICBpc1Nob3dTdGFydERhdGVQb3B1cDpmYWxzZSxcbiAgICBpc1Nob3dFbmREYXRlUG9wdXA6ZmFsc2UsXG4gICAgbWluU3RhcnREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDE1LFxuICAgIG1heFN0YXJ0RGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMTgwLFxuICAgIHN0YXJ0RGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxMDAwICogNjAgKiA2MCwgLy9uZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICBzdGFydFRpbWU6ICcnLFxuICAgIHN0YXJ0RGF0ZUFuZFRpbWU6IFtdIGFzIGFueSxcbiAgICBtaW5FbmREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDQ1LFxuICAgIG1heEVuZERhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDE4MCxcbiAgICBlbmREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDI0MCwgLy9uZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICBlbmRUaW1lOiAnJyxcbiAgICBlbmREYXRlQW5kVGltZTogW10gYXMgYW55LFxuICAgIGZvcm1hdHRlcih0eXBlOnN0cmluZywgdmFsdWU6c3RyaW5nKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyh0eXBlLHZhbHVlKVxuICAgICAgaWYgKHR5cGUgPT09IFwieWVhclwiKSB7XG4gICAgICAgIHJldHVybiBgJHt2YWx1ZX3lubRgO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm1vbnRoXCIpIHtcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlfeaciGA7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiZGF5XCIpIHtcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlfeaXpWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgICBkb2Njb2RlOicnLFxuICAgIHFyQ29kZVVybDpcIlwiLCAvL2h0dHBzOi8vcmVzLnd4LnFxLmNvbS9vcF9yZXMvQmJWTmVjekExWHVkZmpWcUNWb0tnZnVXZTdlM2FVaG9ra3RSVk9xZl9GMElxUzZrWVItLWF0Q3BWTlVVQzN6clxuICB9LFxuXG5cbiAgLyoqXG4gICAqIOajgOafpVxuICAgKi9cblxuICBhc3luYyBvblN1Ym1pdCgpIHtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGRvY0NvZGU6dGhpcy5kYXRhLmRvY2NvZGUsXG4gICAgICBzdGFydFRpbWU6YCR7dGhpcy5kYXRhLnN0YXJ0VGltZX06MDBgLFxuICAgICAgZW5kVGltZTpgJHt0aGlzLmRhdGEuZW5kVGltZX06MDBgLFxuICAgIH07XG4gICAgbGV0IGNoZWNrU3RhcnRUaW1lID0gdGhpcy5jaGVja1RpbWUoXCJzdGFydFRpbWVcIiwgXCLor7fpgInmi6norqHliJLlvIDlp4vml7bpl7RcIik7XG4gICAgbGV0IGNoZWNrRW5kVGltZSA9IHRoaXMuY2hlY2tUaW1lKFwiZW5kVGltZVwiLCBcIuivt+mAieaLqeiuoeWIkue7k+adn+aXtumXtFwiKTtcbiAgICBjb25zb2xlLmxvZygn5b6F5o+Q5Lqk5pWw5o2uJyxkYXRhKTtcbiAgICBpZiAoIWNoZWNrU3RhcnRUaW1lfHwhY2hlY2tFbmRUaW1lKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IFtlcnJvciwgcmVzdWx0XSA9IGF3YWl0IHd4LiR1dGlscy50byhcbiAgICAgIHd4LiRodHRwLnJlcXVlc3Qoe1xuICAgICAgICB1cmw6YC9zaG9wcGluZy9wYW5pY0J1eWluZ0xpdmUvc2F2ZVJvb21TdGVwMy5kb2AsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnXG4gICAgICB9KVxuICAgIClcbiAgICBpZiAoZXJyb3Ipe1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcIuaWsOW7uuaIv+mXtC0t56ys5LiJ5q2lXCIscmVzdWx0KTtcbiAgICBpZiAocmVzdWx0LnFyY29kZVVybCl7XG4gICAgICBsZXQgYXV0aGVudGljYXRpb24gPXRoaXMuc2VsZWN0Q29tcG9uZW50KCcjbXktYW5jaG9yLWF1dGhlbnRpY2F0aW9uJyk7XG4gICAgICBhdXRoZW50aWNhdGlvbi5zaG93UXJDb2RlRGlhbG9nKHJlc3VsdC5xcmNvZGVVcmwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVzdWx0LnN0YXRlPT0nc3VjY2Vzcycpe1xuICAgICAgd3gubmF2aWdhdGVCYWNrKHtcbiAgICAgICAgZGVsdGE6IDNcbiAgICAgIH0pXG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdouWKoOi9vVxuICAgKi9cbiAgb25Mb2FkOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIGxldCBkb2Njb2RlID0gb3B0aW9ucy5kb2Njb2RlIHx8ICcnO1xuICAgIGxldCBjdXJyZW50TGl2ZVJvb21EYXRhID0gd3guZ2xvYmFsRGF0YS5jdXJyZW50TGl2ZVJvb21EYXRhO1xuICAgIGNvbnNvbGUubG9nKCfmraPlnKjnvJbovpHnmoTnm7Tmkq3pl7TmlbDmja4nLGN1cnJlbnRMaXZlUm9vbURhdGEpO1xuICAgIGlmIChjdXJyZW50TGl2ZVJvb21EYXRhJiZKU09OLnN0cmluZ2lmeShjdXJyZW50TGl2ZVJvb21EYXRhKSAhPSAne30nKXtcbiAgICAgIGxldCBzdGFydERhdGUgPSB0aGlzLmRhdGEuc3RhcnREYXRlO1xuICAgICAgbGV0IGVuZERhdGUgPSB0aGlzLmRhdGEuZW5kRGF0ZTtcbiAgICAgIGxldCBsaXZlcyA9IHtcbiAgICAgICAgc3RhcnRUaW1lOiBjdXJyZW50TGl2ZVJvb21EYXRhLlN0YXJ0VGltZSxcbiAgICAgICAgZW5kVGltZTogY3VycmVudExpdmVSb29tRGF0YS5FbmRUaW1lLFxuICAgICAgICBzdGFydERhdGU6IGN1cnJlbnRMaXZlUm9vbURhdGEuU3RhcnRUaW1lP25ldyBEYXRlKGN1cnJlbnRMaXZlUm9vbURhdGEuU3RhcnRUaW1lKS5nZXRUaW1lKCk6c3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlOiBjdXJyZW50TGl2ZVJvb21EYXRhLkVuZFRpbWU/bmV3IERhdGUoY3VycmVudExpdmVSb29tRGF0YS5FbmRUaW1lKS5nZXRUaW1lKCk6ZW5kRGF0ZSxcbiAgICAgIH07XG4gICAgICAvLyBpZiAoY3VycmVudExpdmVSb29tRGF0YS5TdGFydFRpbWUpe1xuICAgICAgLy8gICBzdGFydERhdGUgPSAgbmV3IERhdGUoY3VycmVudExpdmVSb29tRGF0YS5TdGFydFRpbWUpLmdldFRpbWUoKVxuICAgICAgLy8gfVxuICAgICAgLy8gaWYgKGN1cnJlbnRMaXZlUm9vbURhdGEuRW5kVGltZSl7XG4gICAgICAvLyAgIGVuZERhdGUgPSBuZXcgRGF0ZShjdXJyZW50TGl2ZVJvb21EYXRhLkVuZFRpbWUpLmdldFRpbWUoKVxuICAgICAgLy8gfVxuICAgICAgY29uc29sZS5sb2coJ+W3suacieaXtumXtCcsbGl2ZXMpO1xuICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgLi4ubGl2ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLmhhbmRsZURhdGVBbmRUaW1lKClcbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgZG9jY29kZSxcbiAgICB9KVxuICB9LFxuICAvKipcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLmmL7npLpcbiAgICovXG4gIG9uU2hvdzogZnVuY3Rpb24gKCkge30sXG4gIGhhbmRsZURhdGVBbmRUaW1lKCl7XG4gICAgbGV0IHdhaXRIYW5kbGUgPSB0aGlzLmRhdGE7XG4gICAgbGV0IHN0YXJ0VGltZSA9IHdhaXRIYW5kbGUuc3RhcnRUaW1lfHwgd3guJHV0aWxzLmZvcm1hdFRpbWUobmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxMDAwICogNjAgKiA2MCk7XG4gICAgbGV0IGVuZFRpbWUgPXdhaXRIYW5kbGUuZW5kVGltZXx8IHd4LiR1dGlscy5mb3JtYXRUaW1lKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgMTAwMCAqIDYwICogMjQwKTtcbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgc3RhcnRUaW1lLFxuICAgICAgZW5kVGltZSxcbiAgICAgIHN0YXJ0RGF0ZUFuZFRpbWU6IHN0YXJ0VGltZS5zcGxpdCgnICcpLFxuICAgICAgZW5kRGF0ZUFuZFRpbWU6IGVuZFRpbWUuc3BsaXQoJyAnKSxcbiAgICB9KVxuXG4gIH0sXG4gIHNob3dTdGFydERhdGVQb3B1cCgpe1xuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICBpc1Nob3dTdGFydERhdGVQb3B1cDogdHJ1ZVxuICAgIH0pXG4gIH0sXG4gIG9uU3RhcnREYXRlUG9wdXBDbG9zZSgpe1xuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICBpc1Nob3dTdGFydERhdGVQb3B1cDogZmFsc2VcbiAgICB9KVxuICB9LFxuICBvbkVudGVyU3RhcnREYXRlKGV2ZW50OiB7IGRldGFpbDogYW55OyB9KSB7XG4gICAgbGV0IGRldGFpbCA9IGV2ZW50LmRldGFpbDtcbiAgICBjb25zdCBkYXRlVGltZTphbnkgPSB3eC4kdXRpbHMuZm9ybWF0VGltZShldmVudC5kZXRhaWwpO1xuICAgIGNvbnNvbGUubG9nKFwi6YCJ5oup5byA5pKt5pe26Ze0XCIsIGRhdGVUaW1lLGRldGFpbCk7XG4gICAgdGhpcy5zZXREYXRhKHtcbiAgICAgIHN0YXJ0RGF0ZTogZGV0YWlsLFxuICAgICAgc3RhcnRUaW1lOiBkYXRlVGltZSxcbiAgICAgIG1pbkVuZERhdGU6IGRldGFpbCArIDEwMDAgKiA2MCAqIDMwLFxuICAgIH0pO1xuICAgIHRoaXMuaGFuZGxlRGF0ZUFuZFRpbWUoKTtcbiAgICB0aGlzLm9uU3RhcnREYXRlUG9wdXBDbG9zZSgpO1xuICAgIHRoaXMuY2hlY2tUaW1lKFwic3RhcnRUaW1lXCIsIFwi6K+36YCJ5oup6K6h5YiS5byA5aeL5pe26Ze0XCIpO1xuICB9LFxuICBzaG93RW5kRGF0ZVBvcHVwKCl7XG4gICAgdGhpcy5zZXREYXRhKHtcbiAgICAgIGlzU2hvd0VuZERhdGVQb3B1cDogdHJ1ZVxuICAgIH0pXG4gIH0sXG4gIG9uRW5kRGF0ZVBvcHVwQ2xvc2UoKXtcbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgaXNTaG93RW5kRGF0ZVBvcHVwOiBmYWxzZVxuICAgIH0pXG4gIH0sXG4gIG9uRW50ZXJFbmREYXRlKGV2ZW50OiB7IGRldGFpbDogYW55OyB9KSB7XG4gICAgY29uc3QgZGF0ZTphbnkgPSB3eC4kdXRpbHMuZm9ybWF0VGltZShldmVudC5kZXRhaWwpO1xuICAgIGNvbnNvbGUubG9nKFwi6YCJ5oup5LiL5pKt5pe26Ze0XCIsIGRhdGUsZXZlbnQuZGV0YWlsKTtcbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgZW5kVGltZTogZGF0ZSxcbiAgICAgIGVuZERhdGU6IGV2ZW50LmRldGFpbCxcbiAgICB9KTtcbiAgICAvLyB0aGlzLnRyaWdnZXJFdmVudCgnc2VsZWN0ZWRFbmRUaW1lJyx7XG4gICAgLy8gICBlbmRUaW1lOiBkYXRlXG4gICAgLy8gfSk7XG4gICAgdGhpcy5oYW5kbGVEYXRlQW5kVGltZSgpO1xuICAgIHRoaXMub25FbmREYXRlUG9wdXBDbG9zZSgpO1xuICAgIHRoaXMuY2hlY2tUaW1lKFwiZW5kVGltZVwiLCBcIuivt+mAieaLqeiuoeWIkue7k+adn+aXtumXtFwiKTtcbiAgfSxcbiAgY2hlY2tUaW1lKHRpbWU6dGltZVR5cGUsIG1zZzpzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kYXRhW3RpbWVdID09ICcnKSB7XG4gICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICBbdGltZSArIFwiRXJyb3JcIl06IG1zZyxcbiAgICAgIH0pO1xuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhLnN0YXJ0VGltZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBzdGFydERhdGUgPSB0aGlzLmRhdGEuc3RhcnREYXRlO1xuICAgIGxldCBlbmREYXRlID0gdGhpcy5kYXRhLmVuZERhdGU7XG4gICAgY29uc29sZS5sb2codGhpcy5kYXRhKTtcbiAgICBpZiAodGltZT09PSdzdGFydFRpbWUnKXtcbiAgICAgIGlmIChzdGFydERhdGUmJmVuZERhdGUmJihzdGFydERhdGUgLSBlbmREYXRlID4gMCkpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICBbXCJzdGFydFRpbWVFcnJvclwiXTogXCLlvIDlp4vml7bpl7TpnIDlsI/kuo7nu5PmnZ/ml7bpl7RcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWU9PT0nZW5kVGltZScpe1xuICAgICAgaWYgKHN0YXJ0RGF0ZSYmZW5kRGF0ZSYmKGVuZERhdGUgLSBzdGFydERhdGUgPCAwKSkge1xuICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICAgIFtcImVuZFRpbWVFcnJvclwiXTogXCLnu5PmnZ/ml7bpl7TpnIDlpKfkuo7lvIDlp4vml7bpl7RcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0YXJ0RGF0ZSYmZW5kRGF0ZSYmKE1hdGguYWJzKHN0YXJ0RGF0ZSAtIGVuZERhdGUpPDEwMDAqNjAqMzApKXtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIFt0aW1lICsgXCJFcnJvclwiXTogXCLmiYDpgInml7bpl7TojIPlm7Tpl7TpmpTkuI3lvpfnn63kuo4zMOWIhumSn1wiLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChzdGFydERhdGUmJmVuZERhdGUmJihNYXRoLmFicyhzdGFydERhdGUgLSBlbmREYXRlKT4xMDAwKjYwKjYwKjI0KSl7XG4gICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICBbdGltZSArIFwiRXJyb3JcIl06IFwi5omA6YCJ5pe26Ze06IyD5Zu05b+F6aG75ZyoMjTlsI/ml7bku6XlhoVcIixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgW1wic3RhcnRUaW1lRXJyb3JcIl06IFwiXCIsXG4gICAgICBbXCJlbmRUaW1lRXJyb3JcIl06IFwiXCIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gICAgLy8gdGhpcy5oYW5kbGVMaXZlVGltZSgpXG4gIH0sXG59KTtcblxuZXhwb3J0IHt9XG4iXX0=