"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 };
|
}
|
};
|
Component({
|
options: {
|
styleIsolation: "shared",
|
addGlobalClass: true,
|
multipleSlots: true
|
},
|
properties: {
|
url: {
|
type: String,
|
value: ""
|
},
|
fileDeleteUrl: {
|
type: String,
|
value: ""
|
},
|
description: {
|
type: String,
|
value: "建议尺寸:500x500像素,72分辨率"
|
},
|
previewSize: {
|
type: String,
|
value: "500rpx"
|
},
|
imageFit: {
|
type: String,
|
value: "aspectFill"
|
},
|
hasSlot: {
|
type: Boolean,
|
value: false
|
},
|
multiple: {
|
type: Boolean,
|
value: false
|
},
|
imgList: {
|
type: Array,
|
value: []
|
},
|
isMustUpload: {
|
type: Boolean,
|
value: true
|
}
|
},
|
data: {
|
imgList: [],
|
coverImage: '',
|
images: ''
|
},
|
lifetimes: {
|
ready: function () {
|
console.log(this.data.imgList);
|
}
|
},
|
observers: {
|
'imgList': function (val) {
|
console.log('监听图片列表imgList', val, this.data.imgList);
|
if (val.length > 0) {
|
if (this.data.multiple) {
|
this.getImgUnid('images');
|
}
|
else {
|
this.getImgUnid('coverImage');
|
}
|
}
|
}
|
},
|
methods: {
|
uploadSingleFile: function (event) {
|
return __awaiter(this, void 0, void 0, function () {
|
var file, _a, err, result, imgList;
|
return __generator(this, function (_b) {
|
switch (_b.label) {
|
case 0:
|
file = event.detail.file;
|
console.log(event, file);
|
return [4, this.uploadFile({
|
file: file,
|
url: this.data.url,
|
formData: {}
|
})];
|
case 1:
|
_a = _b.sent(), err = _a[0], result = _a[1];
|
if (err) {
|
console.log(err);
|
return [2];
|
}
|
console.log(result);
|
imgList = this.data.imgList;
|
imgList.push(__assign({}, result));
|
this.setData({ imgList: imgList });
|
console.log('单张上传后imgList。。。', imgList);
|
this.getImgUnid('coverImage');
|
return [2];
|
}
|
});
|
});
|
},
|
uploadMultipleFile: function (event) {
|
return __awaiter(this, void 0, void 0, function () {
|
var file, imgList, unid, url, i, _a, err, result;
|
return __generator(this, function (_b) {
|
switch (_b.label) {
|
case 0:
|
file = event.detail.file;
|
console.log(event, file);
|
imgList = this.data.imgList;
|
unid = this.data.imgList[0] && this.data.imgList[0].unid || '';
|
url = this.data.url;
|
i = 0;
|
_b.label = 1;
|
case 1:
|
if (!(i < file.length)) return [3, 4];
|
if (unid) {
|
url += "&unid=" + unid;
|
}
|
console.log(url);
|
return [4, this.uploadFile({
|
file: file[i],
|
url: url,
|
formData: {}
|
})];
|
case 2:
|
_a = _b.sent(), err = _a[0], result = _a[1];
|
if (err) {
|
console.log(err);
|
return [2];
|
}
|
console.log(result);
|
imgList.push(__assign({}, result));
|
unid = result.unid;
|
_b.label = 3;
|
case 3:
|
i++;
|
return [3, 1];
|
case 4:
|
this.setData({ imgList: imgList });
|
console.log('多张上传后imgList。。。', imgList);
|
this.getImgUnid('images');
|
if (this.data.isMustUpload) {
|
this.checkImages("images", "请至少上传一张图片");
|
}
|
return [2];
|
}
|
});
|
});
|
},
|
deleteFile: function (event) {
|
return __awaiter(this, void 0, void 0, function () {
|
var _a, imgList, fileDeleteUrl, index, _b, err, result;
|
return __generator(this, function (_c) {
|
switch (_c.label) {
|
case 0:
|
_a = this.data, imgList = _a.imgList, fileDeleteUrl = _a.fileDeleteUrl;
|
index = event.detail.index;
|
console.log(index, 'dd');
|
return [4, wx.$utils.to(wx.$http.request({
|
url: fileDeleteUrl,
|
data: {
|
unid: imgList[index].unid,
|
seq: imgList[index].seq,
|
}
|
}))];
|
case 1:
|
_b = _c.sent(), err = _b[0], result = _b[1];
|
if (err) {
|
console.log(err);
|
return [2];
|
}
|
console.log(result);
|
if (result.state === "success") {
|
imgList.splice(index, 1);
|
this.setData({
|
imgList: imgList
|
});
|
}
|
console.log('删除后imgList。。。', imgList);
|
if (this.data.multiple) {
|
this.getImgUnid('images');
|
}
|
else {
|
this.getImgUnid('coverImage');
|
}
|
return [2];
|
}
|
});
|
});
|
},
|
uploadFile: function (param) {
|
return __awaiter(this, void 0, void 0, function () {
|
var _a, err, result;
|
return __generator(this, function (_b) {
|
switch (_b.label) {
|
case 0: return [4, wx.$utils.to(wx.$http.uploadFile({
|
url: param.url,
|
formData: param.formData,
|
filePath: param.file.url
|
}))];
|
case 1:
|
_a = _b.sent(), err = _a[0], result = _a[1];
|
return [2, [err, result]];
|
}
|
});
|
});
|
},
|
getImgList: function () {
|
return this.data.imgList;
|
},
|
getImgUnid: function (type) {
|
var _a, _b;
|
var unid;
|
if (!this.data.imgList[0]) {
|
unid = undefined;
|
this.setData((_a = {},
|
_a[type] = unid,
|
_a));
|
console.log(type, '图unid', unid);
|
return unid;
|
}
|
unid = this.data.imgList[0].unid + ';';
|
var seq = this.data.imgList.reduce(function (total, current) {
|
console.log('total:', total, 'current.seq:', current.seq);
|
return total + ';' + current.seq;
|
}, ' ');
|
var res = unid + seq.replace(' ;', '').replace(new RegExp(' ', 'gm'), '');
|
this.setData((_b = {},
|
_b[type] = res,
|
_b));
|
console.log(type, '图unid+seq', res);
|
return res;
|
},
|
checkImages: function (images, msg) {
|
var _a, _b;
|
if (!this.data[images]) {
|
this.setData((_a = {},
|
_a[images + "Error"] = msg,
|
_a));
|
return false;
|
}
|
this.setData((_b = {},
|
_b[images + "Error"] = "",
|
_b));
|
return true;
|
},
|
getCoverImageUnid: function () {
|
return this.data.coverImage;
|
},
|
getImagesUnid: function () {
|
return this.data.images;
|
},
|
clearImagesData: function () {
|
this.setData({
|
imgList: [],
|
images: '',
|
coverImage: ''
|
});
|
},
|
startUpload: function () {
|
var fileUpload = this.selectComponent('#my-file-uploader');
|
console.log('准备上传。。。');
|
fileUpload.startUpload();
|
}
|
}
|
});
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsQ0FBQztJQUlSLE9BQU8sRUFBRTtRQUNQLGNBQWMsRUFBQyxRQUFRO1FBQ3ZCLGNBQWMsRUFBQyxJQUFJO1FBQ25CLGFBQWEsRUFBRSxJQUFJO0tBQ3BCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsR0FBRyxFQUFDO1lBQ0YsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsRUFBRTtTQUNWO1FBQ0QsYUFBYSxFQUFDO1lBQ1osSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsRUFBRTtTQUNWO1FBQ0QsV0FBVyxFQUFDO1lBQ1YsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsc0JBQXNCO1NBQzlCO1FBQ0QsV0FBVyxFQUFDO1lBQ1YsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsUUFBUTtTQUNoQjtRQUNELFFBQVEsRUFBQztZQUNQLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLFlBQVk7U0FDcEI7UUFDRCxPQUFPLEVBQUM7WUFDTixJQUFJLEVBQUMsT0FBTztZQUNaLEtBQUssRUFBRSxLQUFLO1NBQ2I7UUFDRCxRQUFRLEVBQUM7WUFDUCxJQUFJLEVBQUMsT0FBTztZQUNaLEtBQUssRUFBRSxLQUFLO1NBQ2I7UUFDRCxPQUFPLEVBQUM7WUFDTixJQUFJLEVBQUMsS0FBSztZQUNWLEtBQUssRUFBRSxFQUFFO1NBQ1Y7UUFDRCxZQUFZLEVBQUM7WUFDWCxJQUFJLEVBQUMsT0FBTztZQUNaLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjtJQUtELElBQUksRUFBRTtRQUNKLE9BQU8sRUFBTyxFQUFFO1FBQ2hCLFVBQVUsRUFBQyxFQUFFO1FBQ2IsTUFBTSxFQUFDLEVBQUU7S0FDVjtJQUNELFNBQVMsRUFBQztR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LFlBQUMsTUFBYSxFQUFFLEdBQVU7O1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsT0FBTztvQkFDVixHQUFDLE1BQU0sR0FBRyxPQUFPLElBQUcsR0FBRzt3QkFDdkIsQ0FBQztnQkFDSCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxDQUFDLE9BQU87Z0JBQ1YsR0FBQyxNQUFNLEdBQUcsT0FBTyxJQUFHLEVBQUU7b0JBQ3RCLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUVkLENBQUM7UUFDRCxpQkFBaUI7WUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzlCLENBQUM7UUFDRCxhQUFhO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixDQUFDO1FBQ0QsZUFBZTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ1gsT0FBTyxFQUFDLEVBQUU7Z0JBQ1YsTUFBTSxFQUFDLEVBQUU7Z0JBQ1QsVUFBVSxFQUFDLEVBQUU7YUFDZCxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsV0FBVztZQUNULElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixDQUFDO0tBV0Y7Q0FDRixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIGZpbGUgPSB7XHJcbiAgZmlsZTogc3RyaW5nLFxyXG4gIHVybDogc3RyaW5nXHJcbn1cclxudHlwZSBJbWFnZXMgPSAnY292ZXJJbWFnZSd8J2ltYWdlcyc7XHJcbi8vIGNvbnN0IGFwcCA9IGdldEFwcDxJQXBwT3B0aW9uPigpO1xyXG5Db21wb25lbnQoe1xyXG4gIC8qKlxyXG4gICAqIOe7hOS7tueahOWxnuaAp+WIl+ihqFxyXG4gICAqL1xyXG4gIG9wdGlvbnM6IHtcclxuICAgIHN0eWxlSXNvbGF0aW9uOlwic2hhcmVkXCIsXHJcbiAgICBhZGRHbG9iYWxDbGFzczp0cnVlLFxyXG4gICAgbXVsdGlwbGVTbG90czogdHJ1ZSAvLyDlnKjnu4Tku7blrprkuYnml7bnmoTpgInpobnkuK3lkK/nlKjlpJpzbG905pSv5oyBXHJcbiAgfSxcclxuICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB1cmw6e1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIHZhbHVlOiBcIlwiXHJcbiAgICB9LFxyXG4gICAgZmlsZURlbGV0ZVVybDp7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgdmFsdWU6IFwiXCJcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjp7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgdmFsdWU6IFwi5bu66K6u5bC65a+4OjUwMHg1MDDlg4/ntKDvvIw3MuWIhui+qOeOh1wiXHJcbiAgICB9LFxyXG4gICAgcHJldmlld1NpemU6e1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIHZhbHVlOiBcIjUwMHJweFwiXHJcbiAgICB9LFxyXG4gICAgaW1hZ2VGaXQ6e1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIHZhbHVlOiBcImFzcGVjdEZpbGxcIlxyXG4gICAgfSxcclxuICAgIGhhc1Nsb3Q6e1xyXG4gICAgICB0eXBlOkJvb2xlYW4sXHJcbiAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG11bHRpcGxlOntcclxuICAgICAgdHlwZTpCb29sZWFuLFxyXG4gICAgICB2YWx1ZTogZmFsc2VcclxuICAgIH0sXHJcbiAgICBpbWdMaXN0OntcclxuICAgICAgdHlwZTpBcnJheSxcclxuICAgICAgdmFsdWU6IFtdXHJcbiAgICB9LFxyXG4gICAgaXNNdXN0VXBsb2FkOntcclxuICAgICAgdHlwZTpCb29sZWFuLFxyXG4gICAgICB2YWx1ZTogdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIC8qKlxyXG4gICAqIOe7hOS7tueahOWIneWni+aVsOaNrlxyXG4gICAqL1xyXG4gIGRhdGE6IHtcclxuICAgIGltZ0xpc3Q6IDxhbnk+W10sXHJcbiAgICBjb3ZlckltYWdlOicnLFxyXG4gICAgaW1hZ2VzOicnXHJcbiAgfSxcclxuICBsaWZldGltZXM6e1xyXG4gICAgcmVhZHkoKXtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhLmltZ0xpc3QpO1xyXG5cclxuICAgIH1cclxuICB9LFxyXG4gIG9ic2VydmVyczoge1xyXG4gICAgJ2ltZ0xpc3QnOiBmdW5jdGlvbih2YWwpIHtcclxuICAgICAgY29uc29sZS5sb2coJ+ebkeWQrOWbvueJh+WIl+ihqGltZ0xpc3QnLHZhbCx0aGlzLmRhdGEuaW1nTGlzdClcclxuICAgICAgaWYgKHZhbC5sZW5ndGg+MCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEubXVsdGlwbGUpe1xyXG4gICAgICAgICAgdGhpcy5nZXRJbWdVbmlkKCdpbWFnZXMnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRJbWdVbmlkKCdjb3ZlckltYWdlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLyoqXHJcbiAgICog57uE5Lu255qE5pa55rOV5YiX6KGoXHJcbiAgICovXHJcbiAgbWV0aG9kczoge1xyXG4gICAgYXN5bmMgdXBsb2FkU2luZ2xlRmlsZShldmVudDphbnkpIHtcclxuICAgICAgY29uc3QgeyBmaWxlIH0gPSBldmVudC5kZXRhaWw7XHJcbiAgICAgIGNvbnNvbGUubG9nKGV2ZW50LGZpbGUpO1xyXG4gICAgICAvLyDlvZPorr7nva4gbXV0aXBsZSDkuLogdHJ1ZSDml7YsIGZpbGUg5Li65pWw57uE5qC85byP77yM5ZCm5YiZ5Li65a+56LGh5qC85byPXHJcbiAgICAgIGxldCBbZXJyLHJlc3VsdF0gPSBhd2FpdCB0aGlzLnVwbG9hZEZpbGUoe1xyXG4gICAgICAgIGZpbGUsXHJcbiAgICAgICAgdXJsOiB0aGlzLmRhdGEudXJsLFxyXG4gICAgICAgIGZvcm1EYXRhOntcclxuICAgICAgICAgIC8vIGlzQ292ZXJJbWFnZTp0cnVlLFxyXG4gICAgICAgICAgLy8gZm9ybWlkOjcxMDgwMlxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChlcnIpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAgIGxldCBpbWdMaXN0ID0gdGhpcy5kYXRhLmltZ0xpc3Q7XHJcbiAgICAgIGltZ0xpc3QucHVzaCh7IC4uLnJlc3VsdCB9KTtcclxuICAgICAgdGhpcy5zZXREYXRhKHsgaW1nTGlzdCB9KTtcclxuICAgICAgY29uc29sZS5sb2coJ+WNleW8oOS4iuS8oOWQjmltZ0xpc3TjgILjgILjgIInLGltZ0xpc3QpO1xyXG4gICAgICB0aGlzLmdldEltZ1VuaWQoJ2NvdmVySW1hZ2UnKTtcclxuICAgICAgLy8gdGhpcy50cmlnZ2VyRXZlbnQoJ2dldENvdmVySW1hZ2UnLHtcclxuICAgICAgLy8gICBpbWdMaXN0XHJcbiAgICAgIC8vIH0pXHJcblxyXG4gICAgfSxcclxuICAgIGFzeW5jIHVwbG9hZE11bHRpcGxlRmlsZShldmVudDphbnkpIHtcclxuICAgICAgY29uc3QgeyBmaWxlIH0gPSBldmVudC5kZXRhaWw7XHJcbiAgICAgIGNvbnNvbGUubG9nKGV2ZW50LGZpbGUpO1xyXG4gICAgICBsZXQgaW1nTGlzdCA9IHRoaXMuZGF0YS5pbWdMaXN0O1xyXG4gICAgICBsZXQgdW5pZCA9IHRoaXMuZGF0YS5pbWdMaXN0WzBdJiZ0aGlzLmRhdGEuaW1nTGlzdFswXS51bmlkfHwnJztcclxuICAgICAgbGV0IHVybCA9IHRoaXMuZGF0YS51cmw7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh1bmlkKXtcclxuICAgICAgICAgIHVybCs9YCZ1bmlkPSR7dW5pZH1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyh1cmwpO1xyXG4gICAgICAgIC8vIOW9k+iuvue9riBtdXRpcGxlIOS4uiB0cnVlIOaXtiwgZmlsZSDkuLrmlbDnu4TmoLzlvI/vvIzlkKbliJnkuLrlr7nosaHmoLzlvI9cclxuICAgICAgICBsZXQgW2VycixyZXN1bHRdID0gYXdhaXQgdGhpcy51cGxvYWRGaWxlKHtcclxuICAgICAgICAgIGZpbGU6ZmlsZVtpXSxcclxuICAgICAgICAgIHVybCxcclxuICAgICAgICAgIGZvcm1EYXRhOntcclxuICAgICAgICAgICAgLy8gaXNDb3ZlckltYWdlOnRydWUsXHJcbiAgICAgICAgICAgIC8vIGZvcm1pZDo3MTA4MDJcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZXJyKXtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAgICAgaW1nTGlzdC5wdXNoKHsgLi4ucmVzdWx0IH0pO1xyXG4gICAgICAgIHVuaWQgPSByZXN1bHQudW5pZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXREYXRhKHsgaW1nTGlzdCB9KTtcclxuICAgICAgY29uc29sZS5sb2coJ+WkmuW8oOS4iuS8oOWQjmltZ0xpc3TjgILjgILjgIInLGltZ0xpc3QpO1xyXG4gICAgICB0aGlzLmdldEltZ1VuaWQoJ2ltYWdlcycpO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLmlzTXVzdFVwbG9hZCl7XHJcbiAgICAgICAgdGhpcy5jaGVja0ltYWdlcyhcImltYWdlc1wiLCBcIuivt+iHs+WwkeS4iuS8oOS4gOW8oOWbvueJh1wiKVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0aGlzLnRyaWdnZXJFdmVudCgnZ2V0Q292ZXJJbWFnZScse1xyXG4gICAgICAvLyAgIGltZ0xpc3RcclxuICAgICAgLy8gfSlcclxuXHJcbiAgICB9LFxyXG4gICAgYXN5bmMgZGVsZXRlRmlsZShldmVudDphbnkpe1xyXG4gICAgICBsZXQge2ltZ0xpc3QsZmlsZURlbGV0ZVVybH0gPSB0aGlzLmRhdGE7XHJcbiAgICAgIGxldCB7aW5kZXh9ID0gZXZlbnQuZGV0YWlsO1xyXG4gICAgICBjb25zb2xlLmxvZyhpbmRleCwnZGQnKTtcclxuICAgICAgbGV0IFtlcnIscmVzdWx0XSA9IGF3YWl0IHd4LiR1dGlscy50byhcclxuICAgICAgICB3eC4kaHR0cC5yZXF1ZXN0KHtcclxuICAgICAgICAgIHVybDogZmlsZURlbGV0ZVVybCxcclxuICAgICAgICAgIGRhdGE6e1xyXG4gICAgICAgICAgICB1bmlkOmltZ0xpc3RbaW5kZXhdLnVuaWQsXHJcbiAgICAgICAgICAgIHNlcTppbWdMaXN0W2luZGV4XS5zZXEsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKGVycil7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuICAgICAgaWYgKHJlc3VsdC5zdGF0ZSA9PT0gXCJzdWNjZXNzXCIpe1xyXG4gICAgICAgIGltZ0xpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgaW1nTGlzdFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coJ+WIoOmZpOWQjmltZ0xpc3TjgILjgILjgIInLGltZ0xpc3QpO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLmdldEltZ1VuaWQoJ2ltYWdlcycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2V0SW1nVW5pZCgnY292ZXJJbWFnZScpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgdXBsb2FkRmlsZShwYXJhbTphbnkpe1xyXG4gICAgICBsZXQgW2VycixyZXN1bHRdID0gYXdhaXQgd3guJHV0aWxzLnRvKFxyXG4gICAgICAgIHd4LiRodHRwLnVwbG9hZEZpbGUoe1xyXG4gICAgICAgICAgdXJsOnBhcmFtLnVybCxcclxuICAgICAgICAgIGZvcm1EYXRhOnBhcmFtLmZvcm1EYXRhLFxyXG4gICAgICAgICAgZmlsZVBhdGg6cGFyYW0uZmlsZS51cmxcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgICAgcmV0dXJuIFtlcnIscmVzdWx0XTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0SW1nTGlzdCgpe1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhLmltZ0xpc3Q7XHJcbiAgICB9LFxyXG4gICAgLy8gZ2V0U2luZ2xlSW1nVW5pZCgpe1xyXG4gICAgLy8gICBsZXQgdW5pZDpzdHJpbmd8Ym9vbGVhbnx1bmRlZmluZWQ7XHJcbiAgICAvLyAgIGlmICh0aGlzLmRhdGEuaW1nTGlzdFswXSl7XHJcbiAgICAvLyAgICAgdW5pZCA9IHRoaXMuZGF0YS5pbWdMaXN0WzBdLnVuaWQrJzsnK3RoaXMuZGF0YS5pbWdMaXN0WzBdLnNlcTtcclxuICAgIC8vICAgfSBlbHNlIHtcclxuICAgIC8vICAgICB1bmlkID0gdW5kZWZpbmVkO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAvLyAgICAgY292ZXJJbWc6dW5pZFxyXG4gICAgLy8gICB9KTtcclxuICAgIC8vICAgY29uc29sZS5sb2coJ+WwgemdouWbvnVuaWQnLHVuaWQpO1xyXG4gICAgLy8gICByZXR1cm4gdW5pZDtcclxuICAgIC8vIH0sXHJcbiAgICBnZXRJbWdVbmlkKHR5cGU6c3RyaW5nKXtcclxuICAgICAgbGV0IHVuaWQ6c3RyaW5nfGJvb2xlYW58dW5kZWZpbmVkO1xyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5pbWdMaXN0WzBdKXtcclxuICAgICAgICB1bmlkID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBbdHlwZV06dW5pZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHR5cGUsJ+WbvnVuaWQnLHVuaWQpO1xyXG4gICAgICAgIHJldHVybiB1bmlkO1xyXG4gICAgICB9XHJcbiAgICAgIHVuaWQgPSB0aGlzLmRhdGEuaW1nTGlzdFswXS51bmlkKyc7JztcclxuICAgICAgbGV0IHNlcSA9IHRoaXMuZGF0YS5pbWdMaXN0LnJlZHVjZSgodG90YWw6c3RyaW5nLGN1cnJlbnQ6YW55KT0+e1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0b3RhbDonLHRvdGFsLCdjdXJyZW50LnNlcTonLGN1cnJlbnQuc2VxKTtcclxuICAgICAgICByZXR1cm4gdG90YWwrJzsnK2N1cnJlbnQuc2VxXHJcbiAgICAgIH0sJyAnKVxyXG4gICAgICBsZXQgcmVzID0gdW5pZCtzZXEucmVwbGFjZSgnIDsnLCcnKS5yZXBsYWNlKG5ldyBSZWdFeHAoJyAnLCAnZ20nKSwgJycpXHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgW3R5cGVdOnJlc1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2codHlwZSwn5Zu+dW5pZCtzZXEnLHJlcyk7XHJcbiAgICAgIHJldHVybiByZXM7XHJcbiAgICB9LFxyXG4gICAgY2hlY2tJbWFnZXMoaW1hZ2VzOkltYWdlcywgbXNnOnN0cmluZykge1xyXG4gICAgICBpZiAoIXRoaXMuZGF0YVtpbWFnZXNdKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIFtpbWFnZXMgKyBcIkVycm9yXCJdOiBtc2csXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgW2ltYWdlcyArIFwiRXJyb3JcIl06IFwiXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy8gdGhpcy5oYW5kbGVMaXZlVGltZSgpXHJcbiAgICB9LFxyXG4gICAgZ2V0Q292ZXJJbWFnZVVuaWQoKXtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5jb3ZlckltYWdlO1xyXG4gICAgfSxcclxuICAgIGdldEltYWdlc1VuaWQoKXtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5pbWFnZXM7XHJcbiAgICB9LFxyXG4gICAgY2xlYXJJbWFnZXNEYXRhKCl7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgaW1nTGlzdDpbXSxcclxuICAgICAgICBpbWFnZXM6JycsXHJcbiAgICAgICAgY292ZXJJbWFnZTonJ1xyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIHN0YXJ0VXBsb2FkKCl7XHJcbiAgICAgIGxldCBmaWxlVXBsb2FkID0gdGhpcy5zZWxlY3RDb21wb25lbnQoJyNteS1maWxlLXVwbG9hZGVyJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCflh4blpIfkuIrkvKDjgILjgILjgIInKTtcclxuICAgICAgZmlsZVVwbG9hZC5zdGFydFVwbG9hZCgpO1xyXG4gICAgfVxyXG4gICAgICAvLyBhc3luYyBkZWxldGVGaWxlKHBhcmFtOmFueSl7XHJcbiAgICAgIC8vICAgbGV0IFtlcnIscmVzdWx0XSA9IGF3YWl0IHd4LiR1dGlscy50byhcclxuICAgICAgLy8gICAgIHd4LiRodHRwLnVwbG9hZEZpbGUoe1xyXG4gICAgICAvLyAgICAgICB1cmw6cGFyYW0udXJsLFxyXG4gICAgICAvLyAgICAgICBmb3JtRGF0YTpwYXJhbS5mb3JtRGF0YSxcclxuICAgICAgLy8gICAgICAgZmlsZVBhdGg6cGFyYW0uZmlsZS51cmxcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgKVxyXG4gICAgICAvLyAgIHJldHVybiBbZXJyLHJlc3VsdF07XHJcbiAgICAgIC8vIH1cclxuICB9XHJcbn0pXHJcbiJdfQ==
|