{"version":3,"sources":["webpack:///./src/shared/Export2Excel.js","webpack:///./src/shared/Blob.js"],"names":["generateArray","table","out","rows","querySelectorAll","ranges","R","length","outRow","row","columns","C","cell","colspan","getAttribute","rowspan","cellValue","innerText","forEach","range","s","r","e","c","i","push","k","datenum","v","date1904","epoch","Date","parse","UTC","sheet_from_array_of_arrays","data","opts","ws","col_data","font","bold","fill","fgColor","rgb","color","cell_ref","XLSX","utils","encode_cell","t","z","SSF","_table","encode_range","Workbook","this","SheetNames","Sheets","s2ab","buf","ArrayBuffer","view","Uint8Array","charCodeAt","export_table_to_excel","id","theTable","document","getElementById","console","log","oo","ws_name","wb","wbout","write","bookType","bookSST","type","saveAs","Blob","export_json_to_excel","th","jsonData","defaultTitle","wsName","loading","unshift","title","close","export_json_to_excel_by_list","dt","fileName","p","sheetName","sheetStyle","wch","require","URL","webkitURL","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","get_class","object","Object","prototype","toString","call","match","FakeBlobBuilder","FakeBlob","encoding","size","FBB_proto","FB_proto","FileReaderSync","FileException","code","name","file_ex_codes","split","file_ex_code","real_URL","real_create_object_URL","createObjectURL","real_revoke_object_URL","revokeObjectURL","btoa","atob","origin","fake","uri","uri_origin","uri_info","createElementNS","href","protocol","toLowerCase","blob","data_URI_header","decodeURIComponent","encodeURIComponent","object_URL","substring","append","bb","str","buf_len","String","fromCharCode","fr","readAsBinaryString","unescape","getBlob","arguments","join","slice","start","end","args","blobParts","options","builder","len","buffer","webkitSlice","getPrototypeOf","__proto__","self","window"],"mappings":"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","file":"js/chunk-098ffa12.66ba7a70.js","sourcesContent":["/* eslint-disable */\nrequire('script-loader!file-saver');\n// require('script-loader!src/vendor/Blob');\nrequire('./Blob');\nrequire('script-loader!xlsx/dist/xlsx.core.min');\nimport XLSX from 'xlsx-style';\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue;\n\n //Skip ranges\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null);\n }\n });\n\n //Handle Row Span\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n };\n\n //Handle Value\n outRow.push(cellValue !== \"\" ? cellValue : null);\n\n //Handle Colspan\n if (colspan)\n for (var k = 0; k < colspan - 1; ++k) outRow.push(null);\n }\n out.push(outRow);\n }\n return [out, ranges];\n};\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n for (var R = 0; R != data.length; ++R) {\n let col_data = data[R];\n if (opts) {\n col_data = data[R].data\n }\n for (var C = 0; C != col_data.length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: col_data[C]\n };\n cell.s = {};\n if (R == 0) {\n cell.s.font = { bold: true };\n }\n if (opts) {\n cell.s.fill = { fgColor: { rgb: data[R].color } };\n }\n if (cell.v == null) continue;\n var cell_ref = XLSX.utils.encode_cell({\n c: C,\n r: R\n });\n\n if (typeof cell.v === 'number') cell.t = 'n';\n else if (typeof cell.v === 'boolean') cell.t = 'b';\n else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = XLSX.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n\n ws[cell_ref] = cell;\n }\n }\n if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n return buf;\n}\n\nexport function export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n console.log('a')\n var oo = generateArray(theTable);\n var ranges = oo[1];\n\n /* original data */\n var data = oo[0];\n var ws_name = \"SheetJS\";\n\n\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n ws['!merges'] = ranges;\n\n /* add worksheet to workbook */\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n\n var wbout = XLSX.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n\n saveAs(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\")\n}\n\nfunction formatJson(jsonData) {\n console.log(jsonData)\n}\n\nexport function export_json_to_excel(th, jsonData, defaultTitle, wsName, loading) {\n\n /* original data */\n\n var data = jsonData;\n data.unshift(th);\n var ws_name = \"Sheet1\";\n if (wsName) {\n ws_name = wsName\n }\n\n var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);\n\n\n /* add worksheet to workbook */\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n\n var wbout = XLSX.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n var title = defaultTitle || '列表'\n saveAs(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), title + \".xlsx\")\n loading.close()\n}\n\nexport function export_json_to_excel_by_list(dt, fileName, loading) {\n var wb = new Workbook();\n for (var i in dt) {\n let p = dt[i];\n var ws_name = p.sheetName || \"Sheet1\";\n var ws = sheet_from_array_of_arrays(p.data, p.sheetStyle);\n ws[\"!cols\"] = [{ wch: 80 }]\n if (p.sheetName == \"资源成本\") {\n ws[\"!cols\"].push({ wch: 40 })\n }\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n }\n var wbout = XLSX.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n var title = fileName || '列表'\n saveAs(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream;\"\n }), title + \".xlsx\")\n loading.close()\n}\n","/* eslint-disable */\n/* Blob.js*/\n\n/*global self, unescape */\n/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true,\n plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */\n\n(function (view) {\n \"use strict\";\n \n view.URL = view.URL || view.webkitURL;\n \n if (view.Blob && view.URL) {\n try {\n new Blob;\n return;\n } catch (e) {\n }\n }\n \n // Internally we use a BlobBuilder implementation to base Blob off of\n // in order to support older browsers that only have BlobBuilder\n var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || (function (view) {\n var\n get_class = function (object) {\n return Object.prototype.toString.call(object).match(/^\\[object\\s(.*)\\]$/)[1];\n }\n , FakeBlobBuilder = function BlobBuilder() {\n this.data = [];\n }\n , FakeBlob = function Blob(data, type, encoding) {\n this.data = data;\n this.size = data.length;\n this.type = type;\n this.encoding = encoding;\n }\n , FBB_proto = FakeBlobBuilder.prototype\n , FB_proto = FakeBlob.prototype\n , FileReaderSync = view.FileReaderSync\n , FileException = function (type) {\n this.code = this[this.name = type];\n }\n , file_ex_codes = (\n \"NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR \"\n + \"NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR\"\n ).split(\" \")\n , file_ex_code = file_ex_codes.length\n , real_URL = view.URL || view.webkitURL || view\n , real_create_object_URL = real_URL.createObjectURL\n , real_revoke_object_URL = real_URL.revokeObjectURL\n , URL = real_URL\n , btoa = view.btoa\n , atob = view.atob\n \n , ArrayBuffer = view.ArrayBuffer\n , Uint8Array = view.Uint8Array\n \n , origin = /^[\\w-]+:\\/*\\[?[\\w\\.:-]+\\]?(?::[0-9]+)?/\n ;\n FakeBlob.fake = FB_proto.fake = true;\n while (file_ex_code--) {\n FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1;\n }\n // Polyfill URL\n if (!real_URL.createObjectURL) {\n URL = view.URL = function (uri) {\n var\n uri_info = document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n , uri_origin\n ;\n uri_info.href = uri;\n if (!(\"origin\" in uri_info)) {\n if (uri_info.protocol.toLowerCase() === \"data:\") {\n uri_info.origin = null;\n } else {\n uri_origin = uri.match(origin);\n uri_info.origin = uri_origin && uri_origin[1];\n }\n }\n return uri_info;\n };\n }\n URL.createObjectURL = function (blob) {\n var\n type = blob.type\n , data_URI_header\n ;\n if (type === null) {\n type = \"application/octet-stream\";\n }\n if (blob instanceof FakeBlob) {\n data_URI_header = \"data:\" + type;\n if (blob.encoding === \"base64\") {\n return data_URI_header + \";base64,\" + blob.data;\n } else if (blob.encoding === \"URI\") {\n return data_URI_header + \",\" + decodeURIComponent(blob.data);\n }\n if (btoa) {\n return data_URI_header + \";base64,\" + btoa(blob.data);\n } else {\n return data_URI_header + \",\" + encodeURIComponent(blob.data);\n }\n } else if (real_create_object_URL) {\n return real_create_object_URL.call(real_URL, blob);\n }\n };\n URL.revokeObjectURL = function (object_URL) {\n if (object_URL.substring(0, 5) !== \"data:\" && real_revoke_object_URL) {\n real_revoke_object_URL.call(real_URL, object_URL);\n }\n };\n FBB_proto.append = function (data/*, endings*/) {\n var bb = this.data;\n // decode data to a binary string\n if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) {\n var\n str = \"\"\n , buf = new Uint8Array(data)\n , i = 0\n , buf_len = buf.length\n ;\n for (; i < buf_len; i++) {\n str += String.fromCharCode(buf[i]);\n }\n bb.push(str);\n } else if (get_class(data) === \"Blob\" || get_class(data) === \"File\") {\n if (FileReaderSync) {\n var fr = new FileReaderSync;\n bb.push(fr.readAsBinaryString(data));\n } else {\n // async FileReader won't work as BlobBuilder is sync\n throw new FileException(\"NOT_READABLE_ERR\");\n }\n } else if (data instanceof FakeBlob) {\n if (data.encoding === \"base64\" && atob) {\n bb.push(atob(data.data));\n } else if (data.encoding === \"URI\") {\n bb.push(decodeURIComponent(data.data));\n } else if (data.encoding === \"raw\") {\n bb.push(data.data);\n }\n } else {\n if (typeof data !== \"string\") {\n data += \"\"; // convert unsupported types to strings\n }\n // decode UTF-16 to binary string\n bb.push(unescape(encodeURIComponent(data)));\n }\n };\n FBB_proto.getBlob = function (type) {\n if (!arguments.length) {\n type = null;\n }\n return new FakeBlob(this.data.join(\"\"), type, \"raw\");\n };\n FBB_proto.toString = function () {\n return \"[object BlobBuilder]\";\n };\n FB_proto.slice = function (start, end, type) {\n var args = arguments.length;\n if (args < 3) {\n type = null;\n }\n return new FakeBlob(\n this.data.slice(start, args > 1 ? end : this.data.length)\n , type\n , this.encoding\n );\n };\n FB_proto.toString = function () {\n return \"[object Blob]\";\n };\n FB_proto.close = function () {\n this.size = 0;\n delete this.data;\n };\n return FakeBlobBuilder;\n }(view));\n \n view.Blob = function (blobParts, options) {\n var type = options ? (options.type || \"\") : \"\";\n var builder = new BlobBuilder();\n if (blobParts) {\n for (var i = 0, len = blobParts.length; i < len; i++) {\n if (Uint8Array && blobParts[i] instanceof Uint8Array) {\n builder.append(blobParts[i].buffer);\n }\n else {\n builder.append(blobParts[i]);\n }\n }\n }\n var blob = builder.getBlob(type);\n if (!blob.slice && blob.webkitSlice) {\n blob.slice = blob.webkitSlice;\n }\n return blob;\n };\n \n var getPrototypeOf = Object.getPrototypeOf || function (object) {\n return object.__proto__;\n };\n view.Blob.prototype = getPrototypeOf(new view.Blob());\n }(\n typeof self !== \"undefined\" && self\n || typeof window !== \"undefined\" && window\n || this\n ));"],"sourceRoot":""}