From 45992b6213552ca7051cabc9780cb5307b9c19d7 Mon Sep 17 00:00:00 2001 From: xuliangzhan Date: Wed, 27 May 2020 10:14:06 +0800 Subject: [PATCH] update --- dist/index.common.js | 8 ++++---- dist/index.js | 6 +++--- dist/index.min.js | 2 +- index.ts | 6 +++--- package.json | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dist/index.common.js b/dist/index.common.js index 0c7aa63..8014e9c 100644 --- a/dist/index.common.js +++ b/dist/index.common.js @@ -108,7 +108,7 @@ function exportXLSX(params) { var sheet = _xlsx["default"].utils.json_to_sheet((isHeader ? [colHead] : []).concat(rowList).concat(footList), { skipHeader: true - }); // 列宽 + }); // 设置列宽 sheet['!cols'] = sheetCols; // 转换数据 @@ -123,7 +123,7 @@ function exportXLSX(params) { var blob = new Blob([toBuffer(wbout)], { type: 'application/octet-stream' - }); // 保存导出 + }); // 导出 xlsx downloadFile(blob, options); @@ -145,7 +145,7 @@ function exportXLSX(params) { duration: -1 }); - setTimeout(exportMethod, 1000); + setTimeout(exportMethod, 1500); } else { exportMethod(); } @@ -312,4 +312,4 @@ if (typeof window !== 'undefined' && window.VXETable) { var _default = VXETablePluginExportXLSX; exports["default"] = _default; -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbIl92eGV0YWJsZSIsImdldEZvb3RlckNlbGxWYWx1ZSIsIiR0YWJsZSIsIm9wdHMiLCJyb3dzIiwiY29sdW1uIiwiY2VsbFZhbHVlIiwiJGdldENvbHVtbkluZGV4IiwidG9CdWZmZXIiLCJ3Ym91dCIsImJ1ZiIsIkFycmF5QnVmZmVyIiwibGVuZ3RoIiwidmlldyIsIlVpbnQ4QXJyYXkiLCJpbmRleCIsImNoYXJDb2RlQXQiLCJnZXRDZWxsTGFiZWwiLCJjZWxsVHlwZSIsImlzTmFOIiwiTnVtYmVyIiwiZXhwb3J0WExTWCIsInBhcmFtcyIsIm1zZ0tleSIsIm9wdGlvbnMiLCJjb2x1bW5zIiwiZGF0YXMiLCJzaGVldE5hbWUiLCJpc0hlYWRlciIsImlzRm9vdGVyIiwib3JpZ2luYWwiLCJmb290ZXJGaWx0ZXJNZXRob2QiLCJzaG93TXNnIiwibWVzc2FnZSIsImNvbEhlYWQiLCJmb290TGlzdCIsInNoZWV0Q29scyIsImZvckVhY2giLCJpZCIsInByb3BlcnR5IiwiZ2V0VGl0bGUiLCJwdXNoIiwid3B4IiwiWEVVdGlscyIsInRvSW50ZWdlciIsInJlbmRlcldpZHRoIiwicm93TGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRUYWJsZURhdGEiLCJmb290ZXJEYXRhIiwiZm9vdGVycyIsImZpbHRlciIsImV4cG9ydE1ldGhvZCIsImJvb2siLCJYTFNYIiwidXRpbHMiLCJib29rX25ldyIsInNoZWV0IiwianNvbl90b19zaGVldCIsImNvbmNhdCIsInNraXBIZWFkZXIiLCJib29rX2FwcGVuZF9zaGVldCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsImJsb2IiLCJCbG9iIiwiZG93bmxvYWRGaWxlIiwibW9kYWwiLCJjbG9zZSIsInQiLCJzdGF0dXMiLCJkdXJhdGlvbiIsInNldFRpbWVvdXQiLCJ3aW5kb3ciLCJmaWxlbmFtZSIsIm5hdmlnYXRvciIsIm1zU2F2ZUJsb2IiLCJsaW5rRWxlbSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInRhcmdldCIsImRvd25sb2FkIiwiaHJlZiIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJjb25zb2xlIiwiZXJyb3IiLCJyZXBsYWNlRG91YmxlUXVvdGF0aW9uIiwidmFsIiwicmVwbGFjZSIsInBhcnNlQ3N2IiwiY29udGVudCIsImxpc3QiLCJzcGxpdCIsImZpZWxkcyIsInJMaXN0Iiwic2xpY2UiLCJyIiwiY29sSW5kZXgiLCJjaGVja0ltcG9ydERhdGEiLCJ0YWJsZUZpZWxkcyIsImZpZWxkIiwiZXZlcnkiLCJpbmNsdWRlcyIsImltcG9ydFhMU1giLCJmaWxlIiwiX2ltcG9ydFJlc29sdmUiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImUiLCJ3b3JrYm9vayIsInJlYWQiLCJyZXN1bHQiLCJjc3ZEYXRhIiwic2hlZXRfdG9fY3N2IiwiU2hlZXRzIiwiU2hlZXQxIiwiY3JlYXRlRGF0YSIsInRoZW4iLCJkYXRhIiwibW9kZSIsImluc2VydEF0IiwicmVsb2FkRGF0YSIsInRlbXBsYXRlIiwicmVhZEFzQmluYXJ5U3RyaW5nIiwiaGFuZGxlSW1wb3J0RXZlbnQiLCJoYW5kbGVFeHBvcnRFdmVudCIsIlZYRVRhYmxlUGx1Z2luRXhwb3J0WExTWCIsImluc3RhbGwiLCJ4dGFibGUiLCJpbnRlcmNlcHRvciIsIk9iamVjdCIsImFzc2lnbiIsInR5cGVzIiwieGxzeCIsIm1peGluIiwiVlhFVGFibGUiLCJ1c2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFTQTs7OztBQVZBOztBQVdBO0FBRUEsSUFBSUEsU0FBSjs7QUFFQSxTQUFTQyxrQkFBVCxDQUE2QkMsTUFBN0IsRUFBNENDLElBQTVDLEVBQWdFQyxJQUFoRSxFQUE2RUMsTUFBN0UsRUFBaUc7QUFDL0YsTUFBTUMsU0FBUyxHQUFHRixJQUFJLENBQUNGLE1BQU0sQ0FBQ0ssZUFBUCxDQUF1QkYsTUFB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QVlQLElBQUksT0FBTzFELE1BQVAsS0FBa0IsV0FBbEIsSUFBaUNBLE1BQU0sQ0FBQ29FLFFBQTVDLEVBQXNEO0FBQ3BEcEUsRUFBQUEsTUFBTSxDQUFDb0UsUUFBUCxDQUFnQkMsR0FBaEIsQ0FBb0JWLHdCQUFwQjtBQUNEOztlQUVjQSx3QiIsImZpbGUiOiJpbmRleC5jb21tb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5pbXBvcnQgWEVVdGlscyBmcm9tICd4ZS11dGlscy9tZXRob2RzL3hlLXV0aWxzJ1xyXG5pbXBvcnQge1xyXG4gIFZYRVRhYmxlLFxyXG4gIFRhYmxlLFxyXG4gIEludGVyY2VwdG9yRXhwb3J0UGFyYW1zLFxyXG4gIEludGVyY2VwdG9ySW1wb3J0UGFyYW1zLFxyXG4gIENvbHVtbkNvbmZpZyxcclxuICBFeHBvcnRPcHRvbnNcclxufSBmcm9tICd2eGUtdGFibGUvbGliL3Z4ZS10YWJsZSdcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5cclxubGV0IF92eGV0YWJsZTogdHlwZW9mIFZYRVRhYmxlXHJcblxyXG5mdW5jdGlvbiBnZXRGb290ZXJDZWxsVmFsdWUgKCR0YWJsZTogVGFibGUsIG9wdHM6IEV4cG9ydE9wdG9ucywgcm93czogYW55W10sIGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XHJcbiAgY29uc3QgY2VsbFZhbHVlID0gcm93c1skdGFibGUuJGdldENvbHVtbkluZGV4KGNvbHVtbildXHJcbiAgcmV0dXJuIGNlbGxWYWx1ZVxyXG59XHJcblxyXG5mdW5jdGlvbiB0b0J1ZmZlciAod2JvdXQ6IGFueSkge1xyXG4gIGNvbnN0IGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcih3Ym91dC5sZW5ndGgpXHJcbiAgY29uc3QgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZilcclxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4ICE9PSB3Ym91dC5sZW5ndGg7ICsraW5kZXgpIHZpZXdbaW5kZXhdID0gd2JvdXQuY2hhckNvZGVBdChpbmRleCkgJiAweEZGXHJcbiAgcmV0dXJuIGJ1ZlxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDZWxsTGFiZWwgKGNvbHVtbjogQ29sdW1uQ29uZmlnLCBjZWxsVmFsdWU6IGFueSkge1xyXG4gIGlmIChjZWxsVmFsdWUpIHtcclxuICAgIHN3aXRjaCAoY29sdW1uLmNlbGxUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICBpZiAoIWlzTmFOKGNlbGxWYWx1ZSkpIHtcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoY2VsbFZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGlmIChjZWxsVmFsdWUubGVuZ3RoIDwgMTIgJiYgIWlzTmFOKGNlbGxWYWx1ZSkpIHtcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoY2VsbFZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY2VsbFZhbHVlXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGV4cG9ydFhMU1ggKHBhcmFtczogSW50ZXJjZXB0b3JFeHBvcnRQYXJhbXMpIHtcclxuICBjb25zdCBtc2dLZXkgPSAneGxzeCdcclxuICBjb25zdCB7ICR0YWJsZSwgb3B0aW9ucywgY29sdW1ucywgZGF0YXMgfSA9IHBhcmFtc1xyXG4gIGNvbnN0IHsgc2hlZXROYW1lLCBpc0hlYWRlciwgaXNGb290ZXIsIG9yaWdpbmFsLCBmb290ZXJGaWx0ZXJNZXRob2QgfSA9IG9wdGlvbnNcclxuICBjb25zdCBzaG93TXNnID0gb3B0aW9ucy5tZXNzYWdlICE9PSBmYWxzZVxyXG4gIGNvbnN0IGNvbEhlYWQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fVxyXG4gIGNvbnN0IGZvb3RMaXN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXVxyXG4gIGNvbnN0IHNoZWV0Q29sczogYW55W10gPSBbXVxyXG4gIGlmIChpc0hlYWRlcikge1xyXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgY29sSGVhZFtjb2x1bW4uaWRdID0gb3JpZ2luYWwgPyBjb2x1bW4ucHJvcGVydHkgOiBjb2x1bW4uZ2V0VGl0bGUoKVxyXG4gICAgICBzaGVldENvbHMucHVzaCh7XHJcbiAgICAgICAgd3B4OiBYRVV0aWxzLnRvSW50ZWdlcihjb2x1bW4ucmVuZGVyV2lkdGggKiAwLjgpXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuICBjb25zdCByb3dMaXN0ID0gZGF0YXMubWFwKGl0ZW0gPT4ge1xyXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgaXRlbVtjb2x1bW4uaWRdID0gZ2V0Q2VsbExhYmVsKGNvbHVtbiwgaXRlbVtjb2x1bW4uaWRdKVxyXG4gICAgfSlcclxuICAgIHJldHVybiBpdGVtXHJcbiAgfSlcclxuICBpZiAoaXNGb290ZXIpIHtcclxuICAgIGNvbnN0IHsgZm9vdGVyRGF0YSB9ID0gJHRhYmxlLmdldFRhYmxlRGF0YSgpXHJcbiAgICBjb25zdCBmb290ZXJzID0gZm9vdGVyRmlsdGVyTWV0aG9kID8gZm9vdGVyRGF0YS5maWx0ZXIoZm9vdGVyRmlsdGVyTWV0aG9kKSA6IGZvb3RlckRhdGFcclxuICAgIGZvb3RlcnMuZm9yRWFjaCgocm93cykgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cclxuICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICBpdGVtW2NvbHVtbi5pZF0gPSBnZXRGb290ZXJDZWxsVmFsdWUoJHRhYmxlLCBvcHRpb25zLCByb3dzLCBjb2x1bW4pXHJcbiAgICAgIH0pXHJcbiAgICAgIGZvb3RMaXN0LnB1c2goaXRlbSlcclxuICAgIH0pXHJcbiAgfVxyXG4gIGNvbnN0IGV4cG9ydE1ldGhvZCA9ICgpID0+IHtcclxuICAgIGNvbnN0IGJvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KClcclxuICAgIGNvbnN0IHNoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KChpc0hlYWRlciA/IFtjb2xIZWFkXSA6IFtdKS5jb25jYXQocm93TGlzdCkuY29uY2F0KGZvb3RMaXN0KSwgeyBza2lwSGVhZGVyOiB0cnVlIH0pXHJcbiAgICAvLyDliJflrr1cclxuICAgIHNoZWV0WychY29scyddID0gc2hlZXRDb2xzXHJcbiAgICAvLyDovazmjaLmlbDmja5cclxuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQoYm9vaywgc2hlZXQsIHNoZWV0TmFtZSlcclxuICAgIGNvbnN0IHdib3V0ID0gWExTWC53cml0ZShib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIGJvb2tTU1Q6IGZhbHNlLCB0eXBlOiAnYmluYXJ5JyB9KVxyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt0b0J1ZmZlcih3Ym91dCldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIH0pXHJcbiAgICAvLyDkv53lrZjlr7zlh7pcclxuICAgIGRvd25sb2FkRmlsZShibG9iLCBvcHRpb25zKVxyXG4gICAgaWYgKHNob3dNc2cpIHtcclxuICAgICAgX3Z4ZXRhYmxlLm1vZGFsLmNsb3NlKG1zZ0tleSlcclxuICAgICAgX3Z4ZXRhYmxlLm1vZGFsLm1lc3NhZ2UoeyBtZXNzYWdlOiBfdnhldGFibGUudCgndnhlLnRhYmxlLmV4cFN1Y2Nlc3MnKSwgc3RhdHVzOiAnc3VjY2VzcycgfSlcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHNob3dNc2cpIHtcclxuICAgIF92eGV0YWJsZS5tb2RhbC5tZXNzYWdlKHsgaWQ6IG1zZ0tleSwgbWVzc2FnZTogX3Z4ZXRhYmxlLnQoJ3Z4ZS50YWJsZS5leHBMb2FkaW5nJyksIHN0YXR1czogJ2xvYWRpbmcnLCBkdXJhdGlvbjogLTEgfSlcclxuICAgIHNldFRpbWVvdXQoZXhwb3J0TWV0aG9kLCAxMDAwKVxyXG4gIH0gZWxzZSB7XHJcbiAgICBleHBvcnRNZXRob2QoKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZG93bmxvYWRGaWxlIChibG9iOiBCbG9iLCBvcHRpb25zOiBFeHBvcnRPcHRvbnMpIHtcclxuICBpZiAod2luZG93LkJsb2IpIHtcclxuICAgIGNvbnN0IHsgZmlsZW5hbWUsIHR5cGUgfSA9IG9wdGlvbnNcclxuICAgIGlmIChuYXZpZ2F0b3IubXNTYXZlQmxvYikge1xyXG4gICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLCBgJHtmaWxlbmFtZX0uJHt0eXBlfWApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBsaW5rRWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rRWxlbS50YXJnZXQgPSAnX2JsYW5rJ1xyXG4gICAgICBsaW5rRWxlbS5kb3dubG9hZCA9IGAke2ZpbGVuYW1lfS4ke3R5cGV9YFxyXG4gICAgICBsaW5rRWxlbS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmtFbGVtKVxyXG4gICAgICBsaW5rRWxlbS5jbGljaygpXHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGlua0VsZW0pXHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoX3Z4ZXRhYmxlLnQoJ3Z4ZS5lcnJvci5ub3RFeHAnKSlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlcGxhY2VEb3VibGVRdW90YXRpb24gKHZhbDogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIHZhbC5yZXBsYWNlKC9eXCIvLCAnJykucmVwbGFjZSgvXCIkLywgJycpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlQ3N2IChjb2x1bW5zOiBDb2x1bW5Db25maWdbXSwgY29udGVudDogc3RyaW5nKSB7XHJcbiAgY29uc3QgbGlzdCA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpXHJcbiAgY29uc3QgZmllbGRzOiBzdHJpbmdbXSA9IFtdXHJcbiAgY29uc3Qgcm93czogYW55W10gPSBbXVxyXG4gIGlmIChsaXN0Lmxlbmd0aCkge1xyXG4gICAgY29uc3Qgckxpc3QgPSBsaXN0LnNsaWNlKDEpXHJcbiAgICBsaXN0WzBdLnNwbGl0KCcsJykubWFwKHJlcGxhY2VEb3VibGVRdW90YXRpb24pXHJcbiAgICByTGlzdC5mb3JFYWNoKChyKSA9PiB7XHJcbiAgICAgIGlmIChyKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XHJcbiAgICAgICAgci5zcGxpdCgnLCcpLmZvckVhY2goKHZhbCwgY29sSW5kZXgpID0+IHtcclxuICAgICAgICAgIGlmIChmaWVsZHNbY29sSW5kZXhdKSB7XHJcbiAgICAgICAgICAgIGl0ZW1bZmllbGRzW2NvbEluZGV4XV0gPSByZXBsYWNlRG91YmxlUXVvdGF0aW9uKHZhbClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHJvd3MucHVzaChpdGVtKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICByZXR1cm4geyBmaWVsZHMsIHJvd3MgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBjaGVja0ltcG9ydERhdGEgKGNvbHVtbnM6IENvbHVtbkNvbmZpZ1tdLCBmaWVsZHM6IHN0cmluZ1tdLCByb3dzOiBhbnlbXSkge1xyXG4gIGNvbnN0IHRhYmxlRmllbGRzOiBzdHJpbmdbXSA9IFtdXHJcbiAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgIGNvbnN0IGZpZWxkID0gY29sdW1uLnByb3BlcnR5XHJcbiAgICBpZiAoZmllbGQpIHtcclxuICAgICAgdGFibGVGaWVsZHMucHVzaChmaWVsZClcclxuICAgIH1cclxuICB9KVxyXG4gIHJldHVybiB0YWJsZUZpZWxkcy5ldmVyeSgoZmllbGQpID0+IGZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGltcG9ydFhMU1ggKHBhcmFtczogSW50ZXJjZXB0b3JJbXBvcnRQYXJhbXMpIHtcclxuICBjb25zdCB7IGNvbHVtbnMsIG9wdGlvbnMsIGZpbGUgfSA9IHBhcmFtc1xyXG4gIGNvbnN0IHNob3dNc2cgPSBvcHRpb25zLm1lc3NhZ2UgIT09IGZhbHNlXHJcbiAgY29uc3QgJHRhYmxlOiBhbnkgPSBwYXJhbXMuJHRhYmxlXHJcbiAgY29uc3QgeyBfaW1wb3J0UmVzb2x2ZSB9ID0gJHRhYmxlXHJcbiAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICBmaWxlUmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHdvcmtib29rID0gWExTWC5yZWFkKGUudGFyZ2V0LnJlc3VsdCwgeyB0eXBlOiAnYmluYXJ5JyB9KVxyXG4gICAgY29uc3QgY3N2RGF0YTogc3RyaW5nID0gWExTWC51dGlscy5zaGVldF90b19jc3Yod29ya2Jvb2suU2hlZXRzLlNoZWV0MSlcclxuICAgIGNvbnN0IHsgZmllbGRzLCByb3dzIH0gPSBwYXJzZUNzdihjb2x1bW5zLCBjc3ZEYXRhKVxyXG4gICAgY29uc3Qgc3RhdHVzID0gY2hlY2tJbXBvcnREYXRhKGNvbHVtbnMsIGZpZWxkcywgcm93cylcclxuICAgIGlmIChzdGF0dXMpIHtcclxuICAgICAgJHRhYmxlLmNyZWF0ZURhdGEocm93cylcclxuICAgICAgICAudGhlbigoZGF0YTogYW55W10pID0+IHtcclxuICAgICAgICAgIGlmIChvcHRpb25zLm1vZGUgPT09ICdhcHBlbmQnKSB7XHJcbiAgICAgICAgICAgICR0YWJsZS5pbnNlcnRBdChkYXRhLCAtMSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICR0YWJsZS5yZWxvYWREYXRhKGRhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgaWYgKHNob3dNc2cpIHtcclxuICAgICAgICBfdnhldGFibGUubW9kYWwubWVzc2FnZSh7IG1lc3NhZ2U6IFhFVXRpbHMudGVtcGxhdGUoX3Z4ZXRhYmxlLnQoJ3Z4ZS50YWJsZS5pbXBTdWNjZXNzJyksIFtyb3dzLmxlbmd0aF0pLCBzdGF0dXM6ICdzdWNjZXNzJyB9KVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc2hvd01zZykge1xyXG4gICAgICAgIF92eGV0YWJsZS5tb2RhbC5tZXNzYWdlKHsgbWVzc2FnZTogX3Z4ZXRhYmxlLnQoJ3Z4ZS5lcnJvci5pbXBGaWVsZHMnKSwgc3RhdHVzOiAnZXJyb3InIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChfaW1wb3J0UmVzb2x2ZSkge1xyXG4gICAgICBfaW1wb3J0UmVzb2x2ZShzdGF0dXMpXHJcbiAgICAgICR0YWJsZS5faW1wb3J0UmVzb2x2ZSA9IG51bGxcclxuICAgIH1cclxuICB9XHJcbiAgZmlsZVJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSlcclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlSW1wb3J0RXZlbnQgKHBhcmFtczogSW50ZXJjZXB0b3JJbXBvcnRQYXJhbXMpIHtcclxuICBpZiAocGFyYW1zLm9wdGlvbnMudHlwZSA9PT0gJ3hsc3gnKSB7XHJcbiAgICBpbXBvcnRYTFNYKHBhcmFtcylcclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlRXhwb3J0RXZlbnQgKHBhcmFtczogSW50ZXJjZXB0b3JFeHBvcnRQYXJhbXMpIHtcclxuICBpZiAocGFyYW1zLm9wdGlvbnMudHlwZSA9PT0gJ3hsc3gnKSB7XHJcbiAgICBleHBvcnRYTFNYKHBhcmFtcylcclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIOWfuuS6jiB2eGUtdGFibGUg6KGo5qC855qE5aKe5by65o+S5Lu277yM5pSv5oyB5a+85Ye6IHhsc3gg5qC85byPXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgVlhFVGFibGVQbHVnaW5FeHBvcnRYTFNYID0ge1xyXG4gIGluc3RhbGwgKHh0YWJsZTogdHlwZW9mIFZYRVRhYmxlKSB7XHJcbiAgICBjb25zdCB7IGludGVyY2VwdG9yIH0gPSB4dGFibGVcclxuICAgIF92eGV0YWJsZSA9IHh0YWJsZVxyXG4gICAgT2JqZWN0LmFzc2lnbih4dGFibGUudHlwZXMsIHsgeGxzeDogMSB9KVxyXG4gICAgaW50ZXJjZXB0b3IubWl4aW4oe1xyXG4gICAgICAnZXZlbnQuaW1wb3J0JzogaGFuZGxlSW1wb3J0RXZlbnQsXHJcbiAgICAgICdldmVudC5leHBvcnQnOiBoYW5kbGVFeHBvcnRFdmVudFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuXHJcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuVlhFVGFibGUpIHtcclxuICB3aW5kb3cuVlhFVGFibGUudXNlKFZYRVRhYmxlUGx1Z2luRXhwb3J0WExTWClcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVlhFVGFibGVQbHVnaW5FeHBvcnRYTFNYXHJcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbIl92eGV0YWJsZSIsImdldEZvb3RlckNlbGxWYWx1ZSIsIiR0YWJsZSIsIm9wdHMiLCJyb3dzIiwiY29sdW1uIiwiY2VsbFZhbHVlIiwiJGdldENvbHVtbkluZGV4IiwidG9CdWZmZXIiLCJ3Ym91dCIsImJ1ZiIsIkFycmF5QnVmZmVyIiwibGVuZ3RoIiwidmlldyIsIlVpbnQ4QXJyYXkiLCJpbmRleCIsImNoYXJDb2RlQXQiLCJnZXRDZWxsTGFiZWwiLCJjZWxsVHlwZSIsImlzTmFOIiwiTnVtYmVyIiwiZXhwb3J0WExTWCIsInBhcmFtcyIsIm1zZ0tleSIsIm9wdGlvbnMiLCJjb2x1bW5zIiwiZGF0YXMiLCJzaGVldE5hbWUiLCJpc0hlYWRlciIsImlzRm9vdGVyIiwib3JpZ2luYWwiLCJmb290ZXJGaWx0ZXJNZXRob2QiLCJzaG93TXNnIiwibWVzc2FnZSIsImNvbEhlYWQiLCJmb290TGlzdCIsInNoZWV0Q29scyIsImZvckVhY2giLCJpZCIsInByb3BlcnR5IiwiZ2V0VGl0bGUiLCJwdXNoIiwid3B4IiwiWEVVdGlscyIsInRvSW50ZWdlciIsInJlbmRlcldpZHRoIiwicm93TGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRUYWJsZURhdGEiLCJmb290ZXJEYXRhIiwiZm9vdGVycyIsImZpbHRlciIsImV4cG9ydE1ldGhvZCIsImJvb2siLCJYTFNYIiwidXRpbHMiLCJib29rX25ldyIsInNoZWV0IiwianNvbl90b19zaGVldCIsImNvbmNhdCIsInNraXBIZWFkZXIiLCJib29rX2FwcGVuZF9zaGVldCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsImJsb2IiLCJCbG9iIiwiZG93bmxvYWRGaWxlIiwibW9kYWwiLCJjbG9zZSIsInQiLCJzdGF0dXMiLCJkdXJhdGlvbiIsInNldFRpbWVvdXQiLCJ3aW5kb3ciLCJmaWxlbmFtZSIsIm5hdmlnYXRvciIsIm1zU2F2ZUJsb2IiLCJsaW5rRWxlbSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInRhcmdldCIsImRvd25sb2FkIiwiaHJlZiIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJjb25zb2xlIiwiZXJyb3IiLCJyZXBsYWNlRG91YmxlUXVvdGF0aW9uIiwidmFsIiwicmVwbGFjZSIsInBhcnNlQ3N2IiwiY29udGVudCIsImxpc3QiLCJzcGxpdCIsImZpZWxkcyIsInJMaXN0Iiwic2xpY2UiLCJyIiwiY29sSW5kZXgiLCJjaGVja0ltcG9ydERhdGEiLCJ0YWJsZUZpZWxkcyIsImZpZWxkIiwiZXZlcnkiLCJpbmNsdWRlcyIsImltcG9ydFhMU1giLCJmaWxlIiwiX2ltcG9ydFJlc29sdmUiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImUiLCJ3b3JrYm9vayIsInJlYWQiLCJyZXN1bHQiLCJjc3ZEYXRhIiwic2hlZXRfdG9fY3N2IiwiU2hlZXRzIiwiU2hlZXQxIiwiY3JlYXRlRGF0YSIsInRoZW4iLCJkYXRhIiwibW9kZSIsImluc2VydEF0IiwicmVsb2FkRGF0YSIsInRlbXBsYXRlIiwicmVhZEFzQmluYXJ5U3RyaW5nIiwiaGFuZGxlSW1wb3J0RXZlbnQiLCJoYW5kbGVFeHBvcnRFdmVudCIsIlZYRVRhYmxlUGx1Z2luRXhwb3J0WExTWCIsImluc3RhbGwiLCJ4dGFibGUiLCJpbnRlcmNlcHRvciIsIk9iamVjdCIsImFzc2lnbiIsInR5cGVzIiwieGxzeCIsIm1peGluIiwiVlhFVGFibGUiLCJ1c2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFTQTs7OztBQVZBOztBQVdBO0FBRUEsSUFBSUEsU0FBSjs7QUFFQSxTQUFTQyxrQkFBVCxDQUE2QkMsTUFBN0IsRUFBNENDLElBQTVDLEVBQWdFQyxJQUFoRSxFQUE2RUMsTUFBN0UsRUFBaUc7QUFDL0YsTUFBTUMsU0FBUyxHQUFHRixJQUFJLENBQUNGLE1BQU0sQ0FBQ0ssZUFBUCxDQUF1QkYsTUFB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QVlQLElBQUksT0FBTzFELE1BQVAsS0FBa0IsV0FBbEIsSUFBaUNBLE1BQU0sQ0FBQ29FLFFBQTVDLEVBQXNEO0FBQ3BEcEUsRUFBQUEsTUFBTSxDQUFDb0UsUUFBUCxDQUFnQkMsR0FBaEIsQ0FBb0JWLHdCQUFwQjtBQUNEOztlQUVjQSx3QiIsImZpbGUiOiJpbmRleC5jb21tb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5pbXBvcnQgWEVVdGlscyBmcm9tICd4ZS11dGlscy9tZXRob2RzL3hlLXV0aWxzJ1xyXG5pbXBvcnQge1xyXG4gIFZYRVRhYmxlLFxyXG4gIFRhYmxlLFxyXG4gIEludGVyY2VwdG9yRXhwb3J0UGFyYW1zLFxyXG4gIEludGVyY2VwdG9ySW1wb3J0UGFyYW1zLFxyXG4gIENvbHVtbkNvbmZpZyxcclxuICBFeHBvcnRPcHRvbnNcclxufSBmcm9tICd2eGUtdGFibGUvbGliL3Z4ZS10YWJsZSdcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xyXG5cclxubGV0IF92eGV0YWJsZTogdHlwZW9mIFZYRVRhYmxlXHJcblxyXG5mdW5jdGlvbiBnZXRGb290ZXJDZWxsVmFsdWUgKCR0YWJsZTogVGFibGUsIG9wdHM6IEV4cG9ydE9wdG9ucywgcm93czogYW55W10sIGNvbHVtbjogQ29sdW1uQ29uZmlnKSB7XHJcbiAgY29uc3QgY2VsbFZhbHVlID0gcm93c1skdGFibGUuJGdldENvbHVtbkluZGV4KGNvbHVtbildXHJcbiAgcmV0dXJuIGNlbGxWYWx1ZVxyXG59XHJcblxyXG5mdW5jdGlvbiB0b0J1ZmZlciAod2JvdXQ6IGFueSkge1xyXG4gIGNvbnN0IGJ1ZiA9IG5ldyBBcnJheUJ1ZmZlcih3Ym91dC5sZW5ndGgpXHJcbiAgY29uc3QgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZilcclxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4ICE9PSB3Ym91dC5sZW5ndGg7ICsraW5kZXgpIHZpZXdbaW5kZXhdID0gd2JvdXQuY2hhckNvZGVBdChpbmRleCkgJiAweEZGXHJcbiAgcmV0dXJuIGJ1ZlxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDZWxsTGFiZWwgKGNvbHVtbjogQ29sdW1uQ29uZmlnLCBjZWxsVmFsdWU6IGFueSkge1xyXG4gIGlmIChjZWxsVmFsdWUpIHtcclxuICAgIHN3aXRjaCAoY29sdW1uLmNlbGxUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICBpZiAoIWlzTmFOKGNlbGxWYWx1ZSkpIHtcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoY2VsbFZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGlmIChjZWxsVmFsdWUubGVuZ3RoIDwgMTIgJiYgIWlzTmFOKGNlbGxWYWx1ZSkpIHtcclxuICAgICAgICAgIHJldHVybiBOdW1iZXIoY2VsbFZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVha1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY2VsbFZhbHVlXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGV4cG9ydFhMU1ggKHBhcmFtczogSW50ZXJjZXB0b3JFeHBvcnRQYXJhbXMpIHtcclxuICBjb25zdCBtc2dLZXkgPSAneGxzeCdcclxuICBjb25zdCB7ICR0YWJsZSwgb3B0aW9ucywgY29sdW1ucywgZGF0YXMgfSA9IHBhcmFtc1xyXG4gIGNvbnN0IHsgc2hlZXROYW1lLCBpc0hlYWRlciwgaXNGb290ZXIsIG9yaWdpbmFsLCBmb290ZXJGaWx0ZXJNZXRob2QgfSA9IG9wdGlvbnNcclxuICBjb25zdCBzaG93TXNnID0gb3B0aW9ucy5tZXNzYWdlICE9PSBmYWxzZVxyXG4gIGNvbnN0IGNvbEhlYWQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fVxyXG4gIGNvbnN0IGZvb3RMaXN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXVxyXG4gIGNvbnN0IHNoZWV0Q29sczogYW55W10gPSBbXVxyXG4gIGlmIChpc0hlYWRlcikge1xyXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgY29sSGVhZFtjb2x1bW4uaWRdID0gb3JpZ2luYWwgPyBjb2x1bW4ucHJvcGVydHkgOiBjb2x1bW4uZ2V0VGl0bGUoKVxyXG4gICAgICBzaGVldENvbHMucHVzaCh7XHJcbiAgICAgICAgd3B4OiBYRVV0aWxzLnRvSW50ZWdlcihjb2x1bW4ucmVuZGVyV2lkdGggKiAwLjgpXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuICBjb25zdCByb3dMaXN0ID0gZGF0YXMubWFwKGl0ZW0gPT4ge1xyXG4gICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgaXRlbVtjb2x1bW4uaWRdID0gZ2V0Q2VsbExhYmVsKGNvbHVtbiwgaXRlbVtjb2x1bW4uaWRdKVxyXG4gICAgfSlcclxuICAgIHJldHVybiBpdGVtXHJcbiAgfSlcclxuICBpZiAoaXNGb290ZXIpIHtcclxuICAgIGNvbnN0IHsgZm9vdGVyRGF0YSB9ID0gJHRhYmxlLmdldFRhYmxlRGF0YSgpXHJcbiAgICBjb25zdCBmb290ZXJzID0gZm9vdGVyRmlsdGVyTWV0aG9kID8gZm9vdGVyRGF0YS5maWx0ZXIoZm9vdGVyRmlsdGVyTWV0aG9kKSA6IGZvb3RlckRhdGFcclxuICAgIGZvb3RlcnMuZm9yRWFjaCgocm93cykgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cclxuICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICBpdGVtW2NvbHVtbi5pZF0gPSBnZXRGb290ZXJDZWxsVmFsdWUoJHRhYmxlLCBvcHRpb25zLCByb3dzLCBjb2x1bW4pXHJcbiAgICAgIH0pXHJcbiAgICAgIGZvb3RMaXN0LnB1c2goaXRlbSlcclxuICAgIH0pXHJcbiAgfVxyXG4gIGNvbnN0IGV4cG9ydE1ldGhvZCA9ICgpID0+IHtcclxuICAgIGNvbnN0IGJvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KClcclxuICAgIGNvbnN0IHNoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KChpc0hlYWRlciA/IFtjb2xIZWFkXSA6IFtdKS5jb25jYXQocm93TGlzdCkuY29uY2F0KGZvb3RMaXN0KSwgeyBza2lwSGVhZGVyOiB0cnVlIH0pXHJcbiAgICAvLyDorr7nva7liJflrr1cclxuICAgIHNoZWV0WychY29scyddID0gc2hlZXRDb2xzXHJcbiAgICAvLyDovazmjaLmlbDmja5cclxuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQoYm9vaywgc2hlZXQsIHNoZWV0TmFtZSlcclxuICAgIGNvbnN0IHdib3V0ID0gWExTWC53cml0ZShib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIGJvb2tTU1Q6IGZhbHNlLCB0eXBlOiAnYmluYXJ5JyB9KVxyXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt0b0J1ZmZlcih3Ym91dCldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIH0pXHJcbiAgICAvLyDlr7zlh7ogeGxzeFxyXG4gICAgZG93bmxvYWRGaWxlKGJsb2IsIG9wdGlvbnMpXHJcbiAgICBpZiAoc2hvd01zZykge1xyXG4gICAgICBfdnhldGFibGUubW9kYWwuY2xvc2UobXNnS2V5KVxyXG4gICAgICBfdnhldGFibGUubW9kYWwubWVzc2FnZSh7IG1lc3NhZ2U6IF92eGV0YWJsZS50KCd2eGUudGFibGUuZXhwU3VjY2VzcycpLCBzdGF0dXM6ICdzdWNjZXNzJyB9KVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAoc2hvd01zZykge1xyXG4gICAgX3Z4ZXRhYmxlLm1vZGFsLm1lc3NhZ2UoeyBpZDogbXNnS2V5LCBtZXNzYWdlOiBfdnhldGFibGUudCgndnhlLnRhYmxlLmV4cExvYWRpbmcnKSwgc3RhdHVzOiAnbG9hZGluZycsIGR1cmF0aW9uOiAtMSB9KVxyXG4gICAgc2V0VGltZW91dChleHBvcnRNZXRob2QsIDE1MDApXHJcbiAgfSBlbHNlIHtcclxuICAgIGV4cG9ydE1ldGhvZCgpXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkb3dubG9hZEZpbGUgKGJsb2I6IEJsb2IsIG9wdGlvbnM6IEV4cG9ydE9wdG9ucykge1xyXG4gIGlmICh3aW5kb3cuQmxvYikge1xyXG4gICAgY29uc3QgeyBmaWxlbmFtZSwgdHlwZSB9ID0gb3B0aW9uc1xyXG4gICAgaWYgKG5hdmlnYXRvci5tc1NhdmVCbG9iKSB7XHJcbiAgICAgIG5hdmlnYXRvci5tc1NhdmVCbG9iKGJsb2IsIGAke2ZpbGVuYW1lfS4ke3R5cGV9YClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGxpbmtFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgIGxpbmtFbGVtLnRhcmdldCA9ICdfYmxhbmsnXHJcbiAgICAgIGxpbmtFbGVtLmRvd25sb2FkID0gYCR7ZmlsZW5hbWV9LiR7dHlwZX1gXHJcbiAgICAgIGxpbmtFbGVtLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGlua0VsZW0pXHJcbiAgICAgIGxpbmtFbGVtLmNsaWNrKClcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rRWxlbSlcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgY29uc29sZS5lcnJvcihfdnhldGFibGUudCgndnhlLmVycm9yLm5vdEV4cCcpKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVwbGFjZURvdWJsZVF1b3RhdGlvbiAodmFsOiBzdHJpbmcpIHtcclxuICByZXR1cm4gdmFsLnJlcGxhY2UoL15cIi8sICcnKS5yZXBsYWNlKC9cIiQvLCAnJylcclxufVxyXG5cclxuZnVuY3Rpb24gcGFyc2VDc3YgKGNvbHVtbnM6IENvbHVtbkNvbmZpZ1tdLCBjb250ZW50OiBzdHJpbmcpIHtcclxuICBjb25zdCBsaXN0ID0gY29udGVudC5zcGxpdCgnXFxuJylcclxuICBjb25zdCBmaWVsZHM6IHN0cmluZ1tdID0gW11cclxuICBjb25zdCByb3dzOiBhbnlbXSA9IFtdXHJcbiAgaWYgKGxpc3QubGVuZ3RoKSB7XHJcbiAgICBjb25zdCByTGlzdCA9IGxpc3Quc2xpY2UoMSlcclxuICAgIGxpc3RbMF0uc3BsaXQoJywnKS5tYXAocmVwbGFjZURvdWJsZVF1b3RhdGlvbilcclxuICAgIHJMaXN0LmZvckVhY2goKHIpID0+IHtcclxuICAgICAgaWYgKHIpIHtcclxuICAgICAgICBjb25zdCBpdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cclxuICAgICAgICByLnNwbGl0KCcsJykuZm9yRWFjaCgodmFsLCBjb2xJbmRleCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpZWxkc1tjb2xJbmRleF0pIHtcclxuICAgICAgICAgICAgaXRlbVtmaWVsZHNbY29sSW5kZXhdXSA9IHJlcGxhY2VEb3VibGVRdW90YXRpb24odmFsKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcm93cy5wdXNoKGl0ZW0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHJldHVybiB7IGZpZWxkcywgcm93cyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoZWNrSW1wb3J0RGF0YSAoY29sdW1uczogQ29sdW1uQ29uZmlnW10sIGZpZWxkczogc3RyaW5nW10sIHJvd3M6IGFueVtdKSB7XHJcbiAgY29uc3QgdGFibGVGaWVsZHM6IHN0cmluZ1tdID0gW11cclxuICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgY29uc3QgZmllbGQgPSBjb2x1bW4ucHJvcGVydHlcclxuICAgIGlmIChmaWVsZCkge1xyXG4gICAgICB0YWJsZUZpZWxkcy5wdXNoKGZpZWxkKVxyXG4gICAgfVxyXG4gIH0pXHJcbiAgcmV0dXJuIHRhYmxlRmllbGRzLmV2ZXJ5KChmaWVsZCkgPT4gZmllbGRzLmluY2x1ZGVzKGZpZWxkKSlcclxufVxyXG5cclxuZnVuY3Rpb24gaW1wb3J0WExTWCAocGFyYW1zOiBJbnRlcmNlcHRvckltcG9ydFBhcmFtcykge1xyXG4gIGNvbnN0IHsgY29sdW1ucywgb3B0aW9ucywgZmlsZSB9ID0gcGFyYW1zXHJcbiAgY29uc3Qgc2hvd01zZyA9IG9wdGlvbnMubWVzc2FnZSAhPT0gZmFsc2VcclxuICBjb25zdCAkdGFibGU6IGFueSA9IHBhcmFtcy4kdGFibGVcclxuICBjb25zdCB7IF9pbXBvcnRSZXNvbHZlIH0gPSAkdGFibGVcclxuICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxyXG4gIGZpbGVSZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnJlYWQoZS50YXJnZXQucmVzdWx0LCB7IHR5cGU6ICdiaW5hcnknIH0pXHJcbiAgICBjb25zdCBjc3ZEYXRhOiBzdHJpbmcgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2Nzdih3b3JrYm9vay5TaGVldHMuU2hlZXQxKVxyXG4gICAgY29uc3QgeyBmaWVsZHMsIHJvd3MgfSA9IHBhcnNlQ3N2KGNvbHVtbnMsIGNzdkRhdGEpXHJcbiAgICBjb25zdCBzdGF0dXMgPSBjaGVja0ltcG9ydERhdGEoY29sdW1ucywgZmllbGRzLCByb3dzKVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICAkdGFibGUuY3JlYXRlRGF0YShyb3dzKVxyXG4gICAgICAgIC50aGVuKChkYXRhOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PT0gJ2FwcGVuZCcpIHtcclxuICAgICAgICAgICAgJHRhYmxlLmluc2VydEF0KGRhdGEsIC0xKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJHRhYmxlLnJlbG9hZERhdGEoZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICBpZiAoc2hvd01zZykge1xyXG4gICAgICAgIF92eGV0YWJsZS5tb2RhbC5tZXNzYWdlKHsgbWVzc2FnZTogWEVVdGlscy50ZW1wbGF0ZShfdnhldGFibGUudCgndnhlLnRhYmxlLmltcFN1Y2Nlc3MnKSwgW3Jvd3MubGVuZ3RoXSksIHN0YXR1czogJ3N1Y2Nlc3MnIH0pXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzaG93TXNnKSB7XHJcbiAgICAgICAgX3Z4ZXRhYmxlLm1vZGFsLm1lc3NhZ2UoeyBtZXNzYWdlOiBfdnhldGFibGUudCgndnhlLmVycm9yLmltcEZpZWxkcycpLCBzdGF0dXM6ICdlcnJvcicgfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKF9pbXBvcnRSZXNvbHZlKSB7XHJcbiAgICAgIF9pbXBvcnRSZXNvbHZlKHN0YXR1cylcclxuICAgICAgJHRhYmxlLl9pbXBvcnRSZXNvbHZlID0gbnVsbFxyXG4gICAgfVxyXG4gIH1cclxuICBmaWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKVxyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVJbXBvcnRFdmVudCAocGFyYW1zOiBJbnRlcmNlcHRvckltcG9ydFBhcmFtcykge1xyXG4gIGlmIChwYXJhbXMub3B0aW9ucy50eXBlID09PSAneGxzeCcpIHtcclxuICAgIGltcG9ydFhMU1gocGFyYW1zKVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBoYW5kbGVFeHBvcnRFdmVudCAocGFyYW1zOiBJbnRlcmNlcHRvckV4cG9ydFBhcmFtcykge1xyXG4gIGlmIChwYXJhbXMub3B0aW9ucy50eXBlID09PSAneGxzeCcpIHtcclxuICAgIGV4cG9ydFhMU1gocGFyYW1zKVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog5Z+65LqOIHZ4ZS10YWJsZSDooajmoLznmoTlop7lvLrmj5Lku7bvvIzmlK/mjIHlr7zlh7ogeGxzeCDmoLzlvI9cclxuICovXHJcbmV4cG9ydCBjb25zdCBWWEVUYWJsZVBsdWdpbkV4cG9ydFhMU1ggPSB7XHJcbiAgaW5zdGFsbCAoeHRhYmxlOiB0eXBlb2YgVlhFVGFibGUpIHtcclxuICAgIGNvbnN0IHsgaW50ZXJjZXB0b3IgfSA9IHh0YWJsZVxyXG4gICAgX3Z4ZXRhYmxlID0geHRhYmxlXHJcbiAgICBPYmplY3QuYXNzaWduKHh0YWJsZS50eXBlcywgeyB4bHN4OiAxIH0pXHJcbiAgICBpbnRlcmNlcHRvci5taXhpbih7XHJcbiAgICAgICdldmVudC5pbXBvcnQnOiBoYW5kbGVJbXBvcnRFdmVudCxcclxuICAgICAgJ2V2ZW50LmV4cG9ydCc6IGhhbmRsZUV4cG9ydEV2ZW50XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG5cclxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5WWEVUYWJsZSkge1xyXG4gIHdpbmRvdy5WWEVUYWJsZS51c2UoVlhFVGFibGVQbHVnaW5FeHBvcnRYTFNYKVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBWWEVUYWJsZVBsdWdpbkV4cG9ydFhMU1hcclxuIl19 diff --git a/dist/index.js b/dist/index.js index 1631463..d45e3b3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -119,7 +119,7 @@ var sheet = _xlsx["default"].utils.json_to_sheet((isHeader ? [colHead] : []).concat(rowList).concat(footList), { skipHeader: true - }); // 列宽 + }); // 设置列宽 sheet['!cols'] = sheetCols; // 转换数据 @@ -134,7 +134,7 @@ var blob = new Blob([toBuffer(wbout)], { type: 'application/octet-stream' - }); // 保存导出 + }); // 导出 xlsx downloadFile(blob, options); @@ -156,7 +156,7 @@ duration: -1 }); - setTimeout(exportMethod, 1000); + setTimeout(exportMethod, 1500); } else { exportMethod(); } diff --git a/dist/index.min.js b/dist/index.min.js index 559ccbb..42c5e66 100644 --- a/dist/index.min.js +++ b/dist/index.min.js @@ -1 +1 @@ -!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export-xlsx",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var n={exports:{}};t(n.exports,e.XEUtils,e.XLSX),e.VXETablePluginExportXLSX=n.exports.default}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(e,g,h){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}var y;function n(e){var o="xlsx",a=e.$table,r=e.options,i=e.columns,t=e.datas,s=r.sheetName,l=r.isHeader,n=r.isFooter,u=r.original,f=r.footerFilterMethod,c=!1!==r.message,d={},p=[],m=[];l&&i.forEach(function(e){d[e.id]=u?e.property:e.getTitle(),m.push({wpx:g.default.toInteger(.8*e.renderWidth)})});var x=t.map(function(t){return i.forEach(function(e){t[e.id]=function(e,t){if(t)switch(e.cellType){case"string":break;case"number":if(!isNaN(t))return Number(t);break;default:if(t.length<12&&!isNaN(t))return Number(t)}return t}(e,t[e.id])}),t});if(n){var v=a.getTableData().footerData;(f?v.filter(f):v).forEach(function(n){var o={};i.forEach(function(e){var t;o[e.id]=(t=e,n[a.$getColumnIndex(t)])}),p.push(o)})}function b(){var e=h.default.utils.book_new(),t=h.default.utils.json_to_sheet((l?[d]:[]).concat(x).concat(p),{skipHeader:!0});t["!cols"]=m,h.default.utils.book_append_sheet(e,t,s);var n=h.default.write(e,{bookType:"xlsx",bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var n=t.filename,o=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,"".concat(n,".").concat(o));else{var a=document.createElement("a");a.target="_blank",a.download="".concat(n,".").concat(o),a.href=URL.createObjectURL(e),document.body.appendChild(a),a.click(),document.body.removeChild(a)}}else console.error(y.t("vxe.error.notExp"))}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),o=0;o!==e.length;++o)n[o]=255&e.charCodeAt(o);return t}(n)],{type:"application/octet-stream"}),r),c&&(y.modal.close(o),y.modal.message({message:y.t("vxe.table.expSuccess"),status:"success"}))}c?(y.modal.message({id:o,message:y.t("vxe.table.expLoading"),status:"loading",duration:-1}),setTimeout(b,1e3)):b()}function p(e){return e.replace(/^"/,"").replace(/"$/,"")}function o(e){var l=e.columns,u=e.options,t=e.file,f=!1!==u.message,c=e.$table,d=c._importResolve,n=new FileReader;n.onload=function(e){var t,n,o=h.default.read(e.target.result,{type:"binary"}),a=function(e){var t=e.split("\n"),o=[],a=[];if(t.length){var n=t.slice(1);t[0].split(",").map(p),n.forEach(function(e){if(e){var n={};e.split(",").forEach(function(e,t){o[t]&&(n[o[t]]=p(e))}),a.push(n)}})}return{fields:o,rows:a}}(h.default.utils.sheet_to_csv(o.Sheets.Sheet1)),r=a.fields,i=a.rows,s=(t=r,n=[],l.forEach(function(e){var t=e.property;t&&n.push(t)}),n.every(function(e){return t.includes(e)}));s?(c.createData(i).then(function(e){"append"===u.mode?c.insertAt(e,-1):c.reloadData(e)}),f&&y.modal.message({message:g.default.template(y.t("vxe.table.impSuccess"),[i.length]),status:"success"})):f&&y.modal.message({message:y.t("vxe.error.impFields"),status:"error"}),d&&(d(s),c._importResolve=null)},n.readAsBinaryString(t)}function a(e){if("xlsx"===e.options.type)return o(e),!1}function r(e){if("xlsx"===e.options.type)return n(e),!1}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExportXLSX=void 0,g=t(g),h=t(h);var i={install:function(e){var t=e.interceptor;y=e,Object.assign(e.types,{xlsx:1}),t.mixin({"event.import":a,"event.export":r})}};e.VXETablePluginExportXLSX=i,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(i);var s=i;e.default=s}); \ No newline at end of file +!function(e,t){if("function"==typeof define&&define.amd)define("vxe-table-plugin-export-xlsx",["exports","xe-utils","xlsx"],t);else if("undefined"!=typeof exports)t(exports,require("xe-utils"),require("xlsx"));else{var n={exports:{}};t(n.exports,e.XEUtils,e.XLSX),e.VXETablePluginExportXLSX=n.exports.default}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(e,g,h){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}var y;function n(e){var o="xlsx",a=e.$table,r=e.options,i=e.columns,t=e.datas,s=r.sheetName,l=r.isHeader,n=r.isFooter,u=r.original,f=r.footerFilterMethod,c=!1!==r.message,d={},p=[],m=[];l&&i.forEach(function(e){d[e.id]=u?e.property:e.getTitle(),m.push({wpx:g.default.toInteger(.8*e.renderWidth)})});var x=t.map(function(t){return i.forEach(function(e){t[e.id]=function(e,t){if(t)switch(e.cellType){case"string":break;case"number":if(!isNaN(t))return Number(t);break;default:if(t.length<12&&!isNaN(t))return Number(t)}return t}(e,t[e.id])}),t});if(n){var v=a.getTableData().footerData;(f?v.filter(f):v).forEach(function(n){var o={};i.forEach(function(e){var t;o[e.id]=(t=e,n[a.$getColumnIndex(t)])}),p.push(o)})}function b(){var e=h.default.utils.book_new(),t=h.default.utils.json_to_sheet((l?[d]:[]).concat(x).concat(p),{skipHeader:!0});t["!cols"]=m,h.default.utils.book_append_sheet(e,t,s);var n=h.default.write(e,{bookType:"xlsx",bookSST:!1,type:"binary"});!function(e,t){if(window.Blob){var n=t.filename,o=t.type;if(navigator.msSaveBlob)navigator.msSaveBlob(e,"".concat(n,".").concat(o));else{var a=document.createElement("a");a.target="_blank",a.download="".concat(n,".").concat(o),a.href=URL.createObjectURL(e),document.body.appendChild(a),a.click(),document.body.removeChild(a)}}else console.error(y.t("vxe.error.notExp"))}(new Blob([function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),o=0;o!==e.length;++o)n[o]=255&e.charCodeAt(o);return t}(n)],{type:"application/octet-stream"}),r),c&&(y.modal.close(o),y.modal.message({message:y.t("vxe.table.expSuccess"),status:"success"}))}c?(y.modal.message({id:o,message:y.t("vxe.table.expLoading"),status:"loading",duration:-1}),setTimeout(b,1500)):b()}function p(e){return e.replace(/^"/,"").replace(/"$/,"")}function o(e){var l=e.columns,u=e.options,t=e.file,f=!1!==u.message,c=e.$table,d=c._importResolve,n=new FileReader;n.onload=function(e){var t,n,o=h.default.read(e.target.result,{type:"binary"}),a=function(e){var t=e.split("\n"),o=[],a=[];if(t.length){var n=t.slice(1);t[0].split(",").map(p),n.forEach(function(e){if(e){var n={};e.split(",").forEach(function(e,t){o[t]&&(n[o[t]]=p(e))}),a.push(n)}})}return{fields:o,rows:a}}(h.default.utils.sheet_to_csv(o.Sheets.Sheet1)),r=a.fields,i=a.rows,s=(t=r,n=[],l.forEach(function(e){var t=e.property;t&&n.push(t)}),n.every(function(e){return t.includes(e)}));s?(c.createData(i).then(function(e){"append"===u.mode?c.insertAt(e,-1):c.reloadData(e)}),f&&y.modal.message({message:g.default.template(y.t("vxe.table.impSuccess"),[i.length]),status:"success"})):f&&y.modal.message({message:y.t("vxe.error.impFields"),status:"error"}),d&&(d(s),c._importResolve=null)},n.readAsBinaryString(t)}function a(e){if("xlsx"===e.options.type)return o(e),!1}function r(e){if("xlsx"===e.options.type)return n(e),!1}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginExportXLSX=void 0,g=t(g),h=t(h);var i={install:function(e){var t=e.interceptor;y=e,Object.assign(e.types,{xlsx:1}),t.mixin({"event.import":a,"event.export":r})}};e.VXETablePluginExportXLSX=i,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use(i);var s=i;e.default=s}); \ No newline at end of file diff --git a/index.ts b/index.ts index a079e1f..9574be3 100644 --- a/index.ts +++ b/index.ts @@ -81,13 +81,13 @@ function exportXLSX (params: InterceptorExportParams) { const exportMethod = () => { const book = XLSX.utils.book_new() const sheet = XLSX.utils.json_to_sheet((isHeader ? [colHead] : []).concat(rowList).concat(footList), { skipHeader: true }) - // 列宽 + // 设置列宽 sheet['!cols'] = sheetCols // 转换数据 XLSX.utils.book_append_sheet(book, sheet, sheetName) const wbout = XLSX.write(book, { bookType: 'xlsx', bookSST: false, type: 'binary' }) const blob = new Blob([toBuffer(wbout)], { type: 'application/octet-stream' }) - // 保存导出 + // 导出 xlsx downloadFile(blob, options) if (showMsg) { _vxetable.modal.close(msgKey) @@ -96,7 +96,7 @@ function exportXLSX (params: InterceptorExportParams) { } if (showMsg) { _vxetable.modal.message({ id: msgKey, message: _vxetable.t('vxe.table.expLoading'), status: 'loading', duration: -1 }) - setTimeout(exportMethod, 1000) + setTimeout(exportMethod, 1500) } else { exportMethod() } diff --git a/package.json b/package.json index 767047e..cb6d7f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vxe-table-plugin-export-xlsx", - "version": "1.3.12", + "version": "1.5.0", "description": "基于 vxe-table 表格的增强插件,支持导出 xlsx 格式", "scripts": { "lib": "gulp build"