vxe-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
1 lines • 31.7 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveLocalFile=saveLocalFile,exports.readLocalFile=readLocalFile,exports.handlePrint=handlePrint,exports.default=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_conf=_interopRequireDefault(require("../../conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_tools=require("../../tools"),_util=require("../../table/src/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(e,t):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=new Array(t);o<t;o++)r[o]=e[o];return r}var htmlCellElem,fileForm,fileInput,printFrame,formatText=_tools.UtilTools.formatText,defaultHtmlStyle='body{margin:0;color:#333333}body *{-webkit-box-sizing:border-box;box-sizing:border-box}.vxe-table{border:0;border-collapse:separate;text-align:left;font-size:14px;border-spacing:0}.vxe-table:not(.is--print){table-layout:fixed}.vxe-table.is--print{width:100%}.vxe-table.border--default,.vxe-table.border--full,.vxe-table.border--outer{border-top:1px solid #e8eaec}.vxe-table.border--default,.vxe-table.border--full,.vxe-table.border--outer{border-left:1px solid #e8eaec}.vxe-table.border--outer,.vxe-table.border--default th,.vxe-table.border--default td,.vxe-table.border--full th,.vxe-table.border--full td,.vxe-table.border--outer th,.vxe-table.border--inner th,.vxe-table.border--inner td{border-bottom:1px solid #e8eaec}.vxe-table.border--default,.vxe-table.border--outer,.vxe-table.border--full th,.vxe-table.border--full td{border-right:1px solid #e8eaec}.vxe-table.border--default th,.vxe-table.border--full th,.vxe-table.border--outer th{background-color:#f8f8f9}.vxe-table td>div,.vxe-table th>div{padding:.5em .4em}.col--center{text-align:center}.col--right{text-align:right}.vxe-table:not(.is--print) .col--ellipsis>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.vxe-table--tree-node{text-align:left}.vxe-table--tree-node-wrapper{position:relative}.vxe-table--tree-icon-wrapper{position:absolute;top:50%;width:1em;height:1em;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-table--tree-icon{position:absolute;left:0;top:.3em;width:0;height:0;border-style:solid;border-width:.5em;border-top-color:#939599;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vxe-table--tree-cell{display:block;padding-left:1.5em}.vxe-table input[type="checkbox"]{margin:0}.vxe-table input[type="checkbox"],.vxe-table input[type="radio"],.vxe-table input[type="checkbox"]+span,.vxe-table input[type="radio"]+span{vertical-align:middle;padding-left: 0.4em}',csvBOM="\ufeff",enterSymbol="\r\n";function createFrame(){var e=document.createElement("iframe");return e.className="vxe-table--print-frame",e}function getExportBlobByContent(e,t){return window.Blob?new Blob([e],{type:"text/".concat(t.type)}):null}function hasTreeChildren(e,t){var o=e.treeOpts;return t[o.children]&&t[o.children].length}function getSeq(e,t,o,r,n){var a=e.seqOpts,l=a.seqMethod||r.seqMethod;return l?l({row:t,rowIndex:o,column:r,columnIndex:n}):a.startIndex+o+1}function defaultFilterExportColumn(e){return e.property||-1<["seq","checkbox","radio"].indexOf(e.type)}function toTableBorder(e){return!0===e?"full":e||"default"}function getLabelData(d,u,n,e){var t=d.treeConfig,o=d.treeOpts,p=d.radioOpts,f=d.checkboxOpts;if(htmlCellElem||(htmlCellElem=document.createElement("div")),t){var a=[];return _ctor.default.eachTree(e,function(i,c,e,t,o,r){var s={_row:i,_level:r.length-1,_hasChild:hasTreeChildren(d,i)};n.forEach(function(e,t){var o="",r=e.editRender||e.cellRender,n=e.exportMethod;if(!n&&r&&r.name){var a=_vXETable.default.renderer.get(r.name);a&&(n=a.exportMethod||a.cellExportMethod)}if(n)o=n({$table:d,row:i,column:e,options:u});else switch(e.type){case"seq":o=getSeq(d,i,c,e,t);break;case"checkbox":o=d.isCheckedByCheckboxRow(i),s._checkboxLabel=f.labelField?_ctor.default.get(i,f.labelField):"",s._checkboxDisabled=f.checkMethod&&!f.checkMethod({row:i});break;case"radio":o=d.isCheckedByRadioRow(i),s._radioLabel=p.labelField?_ctor.default.get(i,p.labelField):"",s._radioDisabled=p.checkMethod&&!p.checkMethod({row:i});break;default:if(u.original)o=_tools.UtilTools.getCellValue(i,e);else if(o=_tools.UtilTools.getCellLabel(i,e,{$table:d}),"html"===e.type)htmlCellElem.innerHTML=o,o=htmlCellElem.innerText.trim();else{var l=d.getCell(i,e);l&&(o=l.innerText.trim())}}s[e.id]=_ctor.default.toString(o)}),a.push(Object.assign(s,i))},o),a}return e.map(function(i,c){var s={_row:i};return n.forEach(function(e,t){var o="",r=e.editRender||e.cellRender,n=e.exportMethod;if(!n&&r&&r.name){var a=_vXETable.default.renderer.get(r.name);a&&(n=a.exportMethod||a.cellExportMethod)}if(n)o=n({$table:d,row:i,column:e,options:u});else switch(e.type){case"seq":o=getSeq(d,i,c,e,t);break;case"checkbox":o=d.isCheckedByCheckboxRow(i),s._checkboxLabel=f.labelField?_ctor.default.get(i,f.labelField):"",s._checkboxDisabled=f.checkMethod&&!f.checkMethod({row:i});break;case"radio":o=d.isCheckedByRadioRow(i),s._radioLabel=p.labelField?_ctor.default.get(i,p.labelField):"",s._radioDisabled=p.checkMethod&&!p.checkMethod({row:i});break;default:if(u.original)o=_tools.UtilTools.getCellValue(i,e);else if(o=_tools.UtilTools.getCellLabel(i,e,{$table:d}),"html"===e.type)htmlCellElem.innerHTML=o,o=htmlCellElem.innerText.trim();else{var l=d.getCell(i,e);l&&(o=l.innerText.trim())}}s[e.id]=_ctor.default.toString(o)}),s})}function getExportData(e,t){var o=t.columns,r=t.dataFilterMethod,n=t.data;return r&&(n=n.filter(function(e,t){return r({row:e,$rowIndex:t})})),getLabelData(e,t,o,n)}function getHeaderTitle(e,t){return(e.original?t.property:t.getTitle())||""}function getFooterCellValue(e,t,o,r){var n=r.editRender||r.cellRender,a=r.footerExportMethod;if(!a&&n&&n.name){var l=_vXETable.default.renderer.get(n.name);l&&(a=l.footerExportMethod||l.footerCellExportMethod)}var i=e.getVTColumnIndex(r);return a?a({$table:e,items:o,itemIndex:i,_columnIndex:i,column:r,options:t}):_ctor.default.toString(o[i])}function getFooterData(e,t){var o=e.footerFilterMethod;return o?t.filter(function(e,t){return o({items:e,$rowIndex:t})}):t}function getCsvCellTypeLabel(e,t){if(t)switch(e.cellType){case"string":if(!isNaN(t))return"\t"+t;break;case"number":break;default:if(12<=t.length&&!isNaN(t))return"\t"+t}return t}function toTxtCellLabel(e){return/[",]/.test(e)?'"'.concat(e.replace(/"/g,'""'),'"'):e}function toCsv(o,r,e,t){var n=csvBOM;if(r.isHeader&&(n+=e.map(function(e){return toTxtCellLabel(getHeaderTitle(r,e))}).join(",")+enterSymbol),t.forEach(function(t){n+=e.map(function(e){return toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))}).join(",")+enterSymbol}),r.isFooter){var a=o.footerData;getFooterData(r,a).forEach(function(t){n+=e.map(function(e){return toTxtCellLabel(getFooterCellValue(o,r,t,e))}).join(",")+enterSymbol})}return n}function toTxt(o,r,e,t){var n="";if(r.isHeader&&(n+=e.map(function(e){return toTxtCellLabel(getHeaderTitle(r,e))}).join("\t")+enterSymbol),t.forEach(function(t){n+=e.map(function(e){return toTxtCellLabel(t[e.id])}).join("\t")+enterSymbol}),r.isFooter){var a=o.footerData;getFooterData(r,a).forEach(function(t){n+=e.map(function(e){return toTxtCellLabel(getFooterCellValue(o,r,t,e))}).join(",")+enterSymbol})}return n}function hasEllipsis(e,t,o,r){var n=t[o],a=_ctor.default.isUndefined(n)||_ctor.default.isNull(n)?r:n,l="title"===a||(!0===a||"tooltip"===a)||"ellipsis"===a;return!e.scrollXLoad&&!e.scrollYLoad||l||(l=!0),l}function createHtmlPage(e,t){var o=e.style;return["<!DOCTYPE html><html>","<head>",'<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">',"<title>".concat(e.sheetName,"</title>"),"<style>".concat(defaultHtmlStyle,"</style>"),o?"<style>".concat(o,"</style>"):"","</head>","<body>".concat(t,"</body>"),"</html>"].join("")}function toHtml(p,i,e,t){var f=p.id,o=p.border,r=p.treeConfig,l=p.treeOpts,c=p.isAllSelected,n=p.isIndeterminate,s=p.headerAlign,h=p.align,a=p.footerAlign,m=p.showOverflow,d=p.showHeaderOverflow,v=p.mergeList,b=i.print,u=i.isHeader,g=i.isFooter,x=i.isColgroup,y=i.isMerge,_=i.colgroups,T=i.original,w="check-all",C=["vxe-table","border--".concat(toTableBorder(o)),b?"is--print":"",u?"show--head":""].filter(function(e){return e}),E=['<table class="'.concat(C.join(" "),'" border="0" cellspacing="0" cellpadding="0">'),"<colgroup>".concat(e.map(function(e){return'<col style="width:'.concat(e.renderWidth,'px">')}).join(""),"</colgroup>")];if(u&&(E.push("<thead>"),x&&!T?_.forEach(function(e){E.push("<tr>".concat(e.map(function(t){var e=t.headerAlign||t.align||s||h,o=hasEllipsis(p,t,"showHeaderOverflow",d)?["col--ellipsis"]:[],r=getHeaderTitle(i,t),n=0,a=0;_ctor.default.eachTree([t],function(e){e.childNodes&&t.childNodes.length||a++,n+=e.renderWidth},{children:"childNodes"});var l=n-a;return e&&o.push("col--".concat(e)),"checkbox"===t.type?'<th class="'.concat(o.join(" "),'" colspan="').concat(t._colSpan,'" rowspan="').concat(t._rowSpan,'"><div ').concat(b?"":'style="width: '.concat(l,'px"'),'><input type="checkbox" class="').concat(w,'" ').concat(c?"checked":"","><span>").concat(r,"</span></div></th>"):'<th class="'.concat(o.join(" "),'" colspan="').concat(t._colSpan,'" rowspan="').concat(t._rowSpan,'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(l,'px"'),"><span>").concat(formatText(r,!0),"</span></div></th>")}).join(""),"</tr>"))}):E.push("<tr>".concat(e.map(function(e){var t=e.headerAlign||e.align||s||h,o=hasEllipsis(p,e,"showHeaderOverflow",d)?["col--ellipsis"]:[],r=getHeaderTitle(i,e);return t&&o.push("col--".concat(t)),"checkbox"===e.type?'<th class="'.concat(o.join(" "),'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="checkbox" class="').concat(w,'" ').concat(c?"checked":"","><span>").concat(r,"</span></div></th>"):'<th class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),"><span>").concat(formatText(r,!0),"</span></div></th>")}).join(""),"</tr>")),E.push("</thead>")),t.length&&(E.push("<tbody>"),r?t.forEach(function(a){E.push("<tr>"+e.map(function(e){var t=e.align||h,o=hasEllipsis(p,e,"showOverflow",m)?["col--ellipsis"]:[],r=a[e.id];if(t&&o.push("col--".concat(t)),e.treeNode){var n="";return a._hasChild&&(n='<i class="vxe-table--tree-icon"></i>'),o.push("vxe-table--tree-node"),"radio"===e.type?'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><div class="vxe-table--tree-node-wrapper" style="padding-left: ').concat(a._level*l.indent,'px"><div class="vxe-table--tree-icon-wrapper">').concat(n,'</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_').concat(f,'" ').concat(a._radioDisabled?"disabled ":"").concat(!0===r||"true"===r?"checked":"","><span>").concat(a._radioLabel,"</span></div></div></div></td>"):"checkbox"===e.type?'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><div class="vxe-table--tree-node-wrapper" style="padding-left: ').concat(a._level*l.indent,'px"><div class="vxe-table--tree-icon-wrapper">').concat(n,'</div><div class="vxe-table--tree-cell"><input type="checkbox" ').concat(a._checkboxDisabled?"disabled ":"").concat(!0===r||"true"===r?"checked":"","><span>").concat(a._checkboxLabel,"</span></div></div></div></td>"):'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><div class="vxe-table--tree-node-wrapper" style="padding-left: ').concat(a._level*l.indent,'px"><div class="vxe-table--tree-icon-wrapper">').concat(n,'</div><div class="vxe-table--tree-cell">').concat(r,"</div></div></div></td>")}return"radio"===e.type?'<td class="'.concat(o.join(" "),'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="radio" name="radio_').concat(f,'" ').concat(a._radioDisabled?"disabled ":"").concat(!0===r||"true"===r?"checked":"","><span>").concat(a._radioLabel,"</span></div></td>"):"checkbox"===e.type?'<td class="'.concat(o.join(" "),'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="checkbox" ').concat(a._checkboxDisabled?"disabled ":"").concat(!0===r||"true"===r?"checked":"","><span>").concat(a._checkboxLabel,"</span></div></td>"):'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),">").concat(formatText(r,!0),"</div></td>")}).join("")+"</tr>")}):t.forEach(function(u){E.push("<tr>"+e.map(function(e){var t=e.align||h,o=hasEllipsis(p,e,"showOverflow",m)?["col--ellipsis"]:[],r=u[e.id],n=1,a=1;if(y&&v.length){var l=p.getVTRowIndex(u._row),i=p.getVTColumnIndex(e),c=(0,_util.mergeBodyMethod)(v,l,i);if(c){var s=c.rowspan,d=c.colspan;if(!s||!d)return"";1<s&&(n=s),1<d&&(a=d)}}return t&&o.push("col--".concat(t)),"radio"===e.type?'<td class="'.concat(o.join(" "),'" rowspan="').concat(n,'" colspan="').concat(a,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="radio" name="radio_').concat(f,'" ').concat(u._radioDisabled?"disabled ":"").concat(!0===r||"true"===r?"checked":"","><span>").concat(u._radioLabel,"</span></div></td>"):"checkbox"===e.type?'<td class="'.concat(o.join(" "),'" rowspan="').concat(n,'" colspan="').concat(a,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="checkbox" ').concat(u._checkboxDisabled?"disabled ":"").concat(!0===r||"true"===r?"checked":"","><span>").concat(u._checkboxLabel,"</span></div></td>"):'<td class="'.concat(o.join(" "),'" rowspan="').concat(n,'" colspan="').concat(a,'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),">").concat(formatText(r,!0),"</div></td>")}).join("")+"</tr>")}),E.push("</tbody>")),g){var k=p.footerData,F=getFooterData(i,k);F.length&&(E.push("<tfoot>"),F.forEach(function(n){E.push("<tr>".concat(e.map(function(e){var t=e.footerAlign||e.align||a||h,o=hasEllipsis(p,e,"showOverflow",m)?["col--ellipsis"]:[],r=getFooterCellValue(p,i,n,e);return t&&o.push("col--".concat(t)),'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),">").concat(formatText(r,!0),"</div></td>")}).join(""),"</tr>"))}),E.push("</tfoot>"))}var j=!c&&n?'<script>(function(){var a=document.querySelector(".'.concat(w,'");if(a){a.indeterminate=true}})()<\/script>'):"";return E.push("</table>",j),b?E.join(""):createHtmlPage(i,E.join(""))}function toXML(o,r,e,t){var n=['<?xml version="1.0"?>','<?mso-application progid="Excel.Sheet"?>','<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">','<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">',"<Version>16.00</Version>","</DocumentProperties>",'<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">',"<WindowHeight>7920</WindowHeight>","<WindowWidth>21570</WindowWidth>","<WindowTopX>32767</WindowTopX>","<WindowTopY>32767</WindowTopY>","<ProtectStructure>False</ProtectStructure>","<ProtectWindows>False</ProtectWindows>","</ExcelWorkbook>",'<Worksheet ss:Name="'.concat(r.sheetName,'">'),"<Table>",e.map(function(e){return'<Column ss:Width="'.concat(e.renderWidth,'"/>')}).join("")].join("");if(r.isHeader&&(n+="<Row>".concat(e.map(function(e){return'<Cell><Data ss:Type="String">'.concat(getHeaderTitle(r,e),"</Data></Cell>")}).join(""),"</Row>")),t.forEach(function(t){n+="<Row>"+e.map(function(e){return'<Cell><Data ss:Type="String">'.concat(t[e.id],"</Data></Cell>")}).join("")+"</Row>"}),r.isFooter){var a=o.footerData;getFooterData(r,a).forEach(function(t){n+="<Row>".concat(e.map(function(e){return'<Cell><Data ss:Type="String">'.concat(getFooterCellValue(o,r,t,e),"</Data></Cell>")}).join(""),"</Row>")})}return"".concat(n,"</Table></Worksheet></Workbook>")}function getContent(e,t,o,r){if(o.length)switch(t.type){case"csv":return toCsv(e,t,o,r);case"txt":return toTxt(e,t,o,r);case"html":return toHtml(e,t,o,r);case"xml":return toXML(e,t,o,r)}return""}function saveLocalFile(e){var t=e.filename,o=e.type,r=e.content,n="".concat(t,".").concat(o);if(window.Blob){var a=r instanceof Blob?r:getExportBlobByContent(_ctor.default.toString(r),e);if(navigator.msSaveBlob)navigator.msSaveBlob(a,n);else{var l=document.createElement("a");l.target="_blank",l.download=n,l.href=URL.createObjectURL(a),document.body.appendChild(l),l.click(),document.body.removeChild(l)}return Promise.resolve()}return Promise.reject(new Error(_tools.UtilTools.getLog("vxe.error.notExp")))}function downloadFile(e,t,o){var r=t.filename,n=t.type;if(!t.download){var a=getExportBlobByContent(o,t);return Promise.resolve({type:n,content:o,blob:a})}saveLocalFile({filename:r,type:n,content:o}).then(function(){!1!==t.message&&_vXETable.default.modal.message({message:_conf.default.i18n("vxe.table.expSuccess"),status:"success"})})}function clearColumnConvert(e){_ctor.default.eachTree(e,function(e){delete e._level,delete e._colSpan,delete e._rowSpan,delete e._children,delete e.childNodes},{children:"children"})}function handleExport(r,n){var a=n.remote,l=n.columns,i=n.colgroups,c=n.exportMethod,t=n.afterExportMethod;return new Promise(function(e){if(a){var t={options:n,$table:r,$grid:r.$xegrid};e(c?c(t):t)}else{var o=getExportData(r,n);e(r.preventEvent(null,"event.export",{options:n,columns:l,colgroups:i,datas:o},function(){return downloadFile(r,n,getContent(r,n,l,o))}))}}).then(function(e){return clearColumnConvert(l),n.print||t&&t({status:!0,options:n,$table:r,$grid:r.$xegrid}),Object.assign({status:!0},e)}).catch(function(){clearColumnConvert(l),n.print||t&&t({status:!1,options:n,$table:r,$grid:r.$xegrid});return Promise.reject({status:!1})})}function getElementsByTagName(e,t){return e.getElementsByTagName(t)}function getTxtCellKey(e){return"#".concat(e,"@").concat(_ctor.default.uniqueId())}function replaceTxtCell(e,t){return e.replace(/#\d+@\d+/g,function(e){return _ctor.default.hasOwnProp(t,e)?t[e]:e})}function getTxtCellValue(e,t){return replaceTxtCell(e,t).replace(/^"+$/g,function(e){return'"'.repeat(Math.ceil(e.length/2))})}function parseCsvAndTxt(e,t,r){var o=t.split(enterSymbol),n=[],a=[];if(o.length){var l={},i=Date.now();o.forEach(function(e){if(e){var o={},t=(e=e.replace(/("")|(\n)/g,function(e,t){var o=getTxtCellKey(i);return l[o]=t?'"':"\n",o}).replace(/"(.*?)"/g,function(e,t){var o=getTxtCellKey(i);return l[o]=replaceTxtCell(t,l),o})).split(r);a.length?(t.forEach(function(e,t){t<a.length&&(o[a[t]]=getTxtCellValue(e,l))}),n.push(o)):a=t.map(function(e){return getTxtCellValue(e.trim(),l)})}})}return{fields:a,rows:n}}function parseCsv(e,t){return parseCsvAndTxt(e,t,",")}function parseTxt(e,t){return parseCsvAndTxt(e,t,"\t")}function parseHTML(e,t){var o=getElementsByTagName((new DOMParser).parseFromString(t,"text/html"),"body"),r=[],n=[];if(o.length){var a=getElementsByTagName(o[0],"table");if(a.length){var l=getElementsByTagName(a[0],"thead");if(l.length){_ctor.default.arrayEach(getElementsByTagName(l[0],"tr"),function(e){_ctor.default.arrayEach(getElementsByTagName(e,"th"),function(e){n.push(e.textContent)})});var i=getElementsByTagName(a[0],"tbody");i.length&&_ctor.default.arrayEach(getElementsByTagName(i[0],"tr"),function(e){var o={};_ctor.default.arrayEach(getElementsByTagName(e,"td"),function(e,t){n[t]&&(o[n[t]]=e.textContent||"")}),r.push(o)})}}}return{fields:n,rows:r}}function parseXML(e,t){var o=getElementsByTagName((new DOMParser).parseFromString(t,"application/xml"),"Worksheet"),n=[],a=[];if(o.length){var r=getElementsByTagName(o[0],"Table");if(r.length){var l=getElementsByTagName(r[0],"Row");l.length&&(_ctor.default.arrayEach(getElementsByTagName(l[0],"Cell"),function(e){a.push(e.textContent)}),_ctor.default.arrayEach(l,function(e,t){if(t){var o={},r=getElementsByTagName(e,"Cell");_ctor.default.arrayEach(r,function(e,t){a[t]&&(o[a[t]]=e.textContent)}),n.push(o)}}))}}return{fields:a,rows:n}}function checkImportData(e,t){var o=[];return e.forEach(function(e){var t=e.property;t&&o.push(t)}),t.some(function(e){return-1<o.indexOf(e)})}function handleImport(o,e,r){var t=o.tableFullColumn,n=o._importResolve,a=o._importReject,l={fields:[],rows:[]};switch(r.type){case"csv":l=parseCsv(t,e);break;case"txt":l=parseTxt(t,e);break;case"html":l=parseHTML(t,e);break;case"xml":l=parseXML(t,e)}var i=l,c=i.fields,s=i.rows;checkImportData(t,c)?o.createData(s).then(function(e){var t;return t="insert"===r.mode?o.insert(e):o.reloadData(e),!1!==r.message&&_vXETable.default.modal.message({message:_conf.default.i18n("vxe.table.impSuccess",[s.length]),status:"success"}),t.then(function(){n&&n({status:!0})})}):!1!==r.message&&(_vXETable.default.modal.message({message:_conf.default.i18n("vxe.error.impFields"),status:"error"}),a&&a({status:!1}))}function handleFileImport(a,l,i){var t=i.afterImportMethod,e=_tools.UtilTools.parseFile(l),c=e.type,s=e.filename;if(_ctor.default.includes(_vXETable.default.importTypes,c))return new Promise(function(t,o){var e=function(e){t(e),a._importResolve=null,a._importReject=null},r=function(e){o(e),a._importResolve=null,a._importReject=null};if(a._importResolve=e,a._importReject=r,window.FileReader){var n=Object.assign({mode:"insert"},i,{type:c,filename:s});n.remote?n.importMethod?Promise.resolve(n.importMethod({file:l,options:n,$table:a})).then(function(){e({status:!0})}).catch(function(){e({status:!0})}):e({status:!0}):a.preventEvent(null,"event.import",{file:l,options:n,columns:a.tableFullColumn},function(){var e=new FileReader;e.onerror=function(){_tools.UtilTools.error("vxe.error.notType",[c]),r({status:!1})},e.onload=function(e){handleImport(a,e.target.result,n)},e.readAsText(l,"UTF-8")})}else"development"===process.env.VUE_APP_VXE_TABLE_ENV&&_tools.UtilTools.error("vxe.error.notExp"),e({status:!0})}).then(function(){t&&t({status:!0,options:i,$table:a})}).catch(function(e){return t&&t({status:!1,options:i,$table:a}),Promise.reject(e)});"development"===process.env.VUE_APP_VXE_TABLE_ENV&&_tools.UtilTools.error("vxe.error.notType",[c]);return Promise.reject({status:!1})}function readLocalFile(){var d=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return fileForm||(fileForm=document.createElement("form"),fileInput=document.createElement("input"),fileForm.className="vxe-table--file-form",fileInput.name="file",fileInput.type="file",fileForm.appendChild(fileInput),document.body.appendChild(fileForm)),new Promise(function(l,i){var c=d.types||[],s=!c.length||c.some(function(e){return"*"===e});fileInput.multiple=!!d.multiple,fileInput.accept=s?"":".".concat(c.join(", .")),fileInput.onchange=function(e){var t,o=e.target.files,r=o[0];if(!s)for(var n=0;n<o.length;n++){var a=_tools.UtilTools.parseFile(o[n]).type;if(!_ctor.default.includes(c,a)){t=a;break}}t?(!1!==d.message&&_vXETable.default.modal.message({message:_conf.default.i18n("vxe.error.notType",[t]),status:"error"}),i({status:!1,files:o,file:r})):l({status:!0,files:o,file:r})},fileForm.reset(),fileInput.click()})}function handlePrint(e,t,o){var r=t.beforePrintMethod;r&&(o=r({content:o,options:t,$table:e})||"");var n=getExportBlobByContent(o=createHtmlPage(t,o),t);if(_tools.DomTools.browse.msie){if(printFrame){try{printFrame.contentDocument.write(""),printFrame.contentDocument.clear()}catch(e){}document.body.removeChild(printFrame)}printFrame=createFrame(),document.body.appendChild(printFrame),printFrame.contentDocument.write(o),printFrame.contentDocument.execCommand("print")}else printFrame||((printFrame=createFrame()).onload=function(e){e.target.src&&e.target.contentWindow.print()},document.body.appendChild(printFrame)),printFrame.src=URL.createObjectURL(n)}function handleExportAndPrint(e,t,o){var r=e.customOpts,n=e.collectColumn,a=e.footerData,l=e.treeConfig,i=e.mergeList,c=e.isGroup,s=e.getCheckboxRecords(),d=!!a.length,u=!l&&i.length,p=Object.assign({message:!0,isHeader:!0},t),f=p.types||_vXETable.default.exportTypes,h=r.checkMethod,m=n.slice(0),v=p.columns,b=f.map(function(e){return{value:e,label:"vxe.export.types.".concat(e)}}),g=p.modes.map(function(e){return{value:e,label:"vxe.export.modes.".concat(e)}});return _ctor.default.eachTree(m,function(n,e,t,o,r){(n.children&&n.children.length||defaultFilterExportColumn(n))&&(n.checked=v?v.some(function(e){if(_tools.UtilTools.isColumn(e))return n===e;if(_ctor.default.isString(e))return n.field===e;var t=e.id||e.colId,o=e.type,r=e.property||e.field;return t?n.id===t:r&&o?n.property===r&&n.type===o:r?n.property===r:o?n.type===o:void 0}):n.visible,n.halfChecked=!1,n.disabled=r&&r.disabled||!!h&&!h({column:n}))}),Object.assign(e.exportStore,{columns:m,typeList:b,modeList:g,hasFooter:d,hasMerge:u,isPrint:o,hasColgroup:c,visible:!0}),Object.assign(e.exportParams,{filename:p.filename||"",sheetName:p.sheetName||"",type:p.type||b[0].value,mode:s.length?"selected":"current",original:p.original,message:p.message,isHeader:p.isHeader,isFooter:d&&(!_ctor.default.isBoolean(p.isFooter)||p.isFooter),isColgroup:!_ctor.default.isBoolean(p.isColgroup)||p.isColgroup,isMerge:u&&p.isMerge,isPrint:p.isPrint}),e.initStore.export=!0,e.$nextTick()}var getConvertColumns=function t(e){var o=[];return e.forEach(function(e){e.childNodes&&e.childNodes.length?(o.push(e),o.push.apply(o,_toConsumableArray(t(e.childNodes)))):o.push(e)}),o},convertToRows=function(e){var n=1;e.forEach(function(e){e._level=1,function t(o,e){if(e&&(o._level=e._level+1,n<o._level&&(n=o._level)),o.childNodes&&o.childNodes.length){var r=0;o.childNodes.forEach(function(e){t(e,o),r+=e._colSpan}),o._colSpan=r}else o._colSpan=1}(e)});for(var t=[],o=0;o<n;o++)t.push([]);return getConvertColumns(e).forEach(function(e){e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=n-e._level+1,t[e._level-1].push(e)}),t},_default={methods:{_exportData:function(e){var a=this,t=this.$xegrid,o=this.isGroup,r=this.tableGroupColumn,l=this.tableFullColumn,n=this.afterFullData,i=this.treeConfig,c=this.treeOpts,s=this.exportOpts,d=Object.assign({isHeader:!0,isFooter:!0,isColgroup:!0,isMerge:!1,download:!0,type:"csv",mode:"current"},s,{print:!1},e),u=d.type,p=d.mode,f=d.columns,h=d.original,m=d.beforeExportMethod,v=[],b=f&&f.length?f:null,g=d.columnFilterMethod;b||g||(g=h?function(e){return e.column.property}:function(e){return defaultFilterExportColumn(e.column)}),v=b?_ctor.default.searchTree(_ctor.default.mapTree(b,function(e){var t;if(e){if(_tools.UtilTools.isColumn(e))t=e;else if(_ctor.default.isString(e))t=a.getColumnByField(e);else{var o=e.id||e.colId,r=e.type,n=e.property||e.field;o?t=a.getColumnById(o):n&&r?t=l.find(function(e){return e.property===n&&e.type===r}):n?t=a.getColumnByField(n):r&&(t=l.find(function(e){return e.type===r}))}return t||{}}},{children:"childNodes",mapChildren:"_children"}),function(e,t){return _tools.UtilTools.isColumn(e)&&(!g||g({column:e,$columnIndex:t}))},{children:"_children",mapChildren:"childNodes",original:!0}):_ctor.default.searchTree(o?r:l,function(e,t){return e.visible&&(!g||g({column:e,$columnIndex:t}))},{children:"children",mapChildren:"childNodes",original:!0});var x=[];if(_ctor.default.eachTree(v,function(e){e.children&&e.children.length||x.push(e)},{children:"childNodes"}),d.columns=x,d.colgroups=convertToRows(v),d.filename||(d.filename=_conf.default.i18n(d.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_ctor.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),d.sheetName||(d.sheetName=document.title),!_ctor.default.includes(_vXETable.default.exportTypes,u)){"development"===process.env.VUE_APP_VXE_TABLE_ENV&&_tools.UtilTools.error("vxe.error.notType",[u]);return Promise.reject({status:!1})}if(d.print||m&&m({options:d,$table:this,$grid:t}),!d.data)if(d.data=n,"selected"===p){var y=this.getCheckboxRecords();-1<["html","pdf"].indexOf(u)&&i?d.data=_ctor.default.searchTree(this.getTableData().fullData,function(e){return-1<y.indexOf(e)},c):d.data=y}else if("all"===p&&t&&!d.remote){var _=t.proxyOpts,T=_.beforeQueryAll,w=_.afterQueryAll,C=_.ajax,E=void 0===C?{}:C,k=_.props,F=void 0===k?{}:k,j=E.queryAll;if(j){var L={$table:this,$grid:t,sort:t.sortData,filters:t.filterData,form:t.formData,target:j,options:d};return Promise.resolve((T||j)(L)).catch(function(e){return e}).then(function(e){return d.data=(F.list?_ctor.default.get(e,F.list):e)||[],w&&w(L),handleExport(a,d)})}}return handleExport(this,d)},_importByFile:function(e,t){var o=Object.assign({},t),r=o.beforeImportMethod;return r&&r({options:o,$table:this}),handleFileImport(this,e,o)},_importData:function(e){var o=this,r=Object.assign({types:_vXETable.default.importTypes},this.importOpts,e),t=r.beforeImportMethod,n=r.afterImportMethod;return t&&t({options:r,$table:this}),readLocalFile(r).catch(function(e){return n&&n({status:!1,options:r,$table:o}),Promise.reject(e)}).then(function(e){var t=e.file;return handleFileImport(o,t,r)})},_saveFile:function(e){return saveLocalFile(e)},_readFile:function(e){return readLocalFile(e)},_print:function(e){var o=this,r=Object.assign({original:!1},this.printOpts,e,{type:"html",download:!1,remote:!1,print:!0});return r.sheetName||(r.sheetName=document.title),new Promise(function(e){r.content?e(handlePrint(o,r,r.content)):e(o.exportData(r).then(function(e){var t=e.content;return handlePrint(o,r,t)}))})},_openImport:function(e){var t=Object.assign({mode:"insert",message:!0,types:_vXETable.default.importTypes},e,this.importOpts),o=t.types;if(!!this.getTreeStatus())t.message&&_vXETable.default.modal.message({message:_conf.default.i18n("vxe.error.treeNotImp"),status:"error"});else{this.importConfig||_tools.UtilTools.error("vxe.error.reqProp",["import-config"]);var r=o.map(function(e){return{value:e,label:"vxe.export.types.".concat(e)}}),n=t.modes.map(function(e){return{value:e,label:"vxe.import.modes.".concat(e)}});Object.assign(this.importStore,{file:null,type:"",filename:"",modeList:n,typeList:r,visible:!0}),Object.assign(this.importParams,t),this.initStore.import=!0}},_openExport:function(e){var t=this.exportOpts;return"development"===process.env.VUE_APP_VXE_TABLE_ENV&&(this.exportConfig||_tools.UtilTools.error("vxe.error.reqProp",["export-config"])),handleExportAndPrint(this,Object.assign({},t,e))},_openPrint:function(e){var t=this.printOpts;return"development"===process.env.VUE_APP_VXE_TABLE_ENV&&(this.printConfig||_tools.UtilTools.error("vxe.error.reqProp",["print-config"])),handleExportAndPrint(this,Object.assign({},t,e),!0)}}};exports.default=_default;