vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 33.3 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.handlePrint=handlePrint,exports.readLocalFile=readLocalFile,exports.saveLocalFile=saveLocalFile;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_utils=_interopRequireDefault(require("../../tools/utils")),_util=require("../../table/src/util"),_dom=require("../../tools/dom"),_log=require("../../tools/log");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){var o;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(o="Object"===(o=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name: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&&null!=e[Symbol.iterator]||null!=e["@@iterator"])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=_utils.default.formatText,defaultHtmlStyle='body{margin:0;color:#333333;font-size:14px;font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STHeiti,MingLiu}body *{-webkit-box-sizing:border-box;box-sizing:border-box}.vxe-table{border-collapse:collapse;text-align:left;border-spacing:0}.vxe-table:not(.is--print){table-layout:fixed}.vxe-table,.vxe-table th,.vxe-table td,.vxe-table td{border-color:#D0D0D0;border-style:solid;border-width:0}.vxe-table.is--print{width:100%}.border--default,.border--full,.border--outer{border-top-width:1px}.border--default,.border--full,.border--outer{border-left-width:1px}.border--outer,.border--default th,.border--default td,.border--full th,.border--full td,.border--outer th,.border--inner th,.border--inner td{border-bottom-width:1px}.border--default,.border--outer,.border--full th,.border--full td{border-right-width:1px}.border--default th,.border--full th,.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-unfold-icon,.vxe-table--tree-fold-icon{position:absolute;width:0;height:0;border-style:solid;border-width:.5em;border-right-color:transparent;border-bottom-color:transparent}.vxe-table--tree-unfold-icon{left:.3em;top:0;border-left-color:#939599;border-top-color:transparent}.vxe-table--tree-fold-icon{left:0;top:.3em;border-left-color:transparent;border-top-color:#939599}.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,";charset=utf-8;")}):null}function hasTreeChildren(e,t){e=e.treeOpts;return t[e.children]&&0<t[e.children].length}function getSeq(e,t,o,r,n){var a=e.seqOpts.seqMethod||r.seqMethod;return a?a({row:t,rowIndex:e.getRowIndex(t),$rowIndex:o,column:r,columnIndex:e.getColumnIndex(r),$columnIndex:n}):e.getRowSeq(t)}function defaultFilterExportColumn(e){return e.property||-1<["seq","checkbox","radio"].indexOf(e.type)}function toTableBorder(e){return!0===e?"full":e||"default"}function toBooleanValue(e){return _xeUtils.default.isBoolean(e)?e?"TRUE":"FALSE":e}function getLabelData(d,u,n,e){var a,p,f=u.isAllExpand,m=u.mode,t=d.treeConfig,o=d.treeOpts,h=d.radioOpts,b=d.checkboxOpts;return htmlCellElem=htmlCellElem||document.createElement("div"),t?(a=[],p=new Map,_xeUtils.default.eachTree(e,function(e,l,t,i,o,r){var c,s=e._row||e,e=o&&o._row?o._row:o;(f||!e||p.has(e)&&d.isTreeExpandByRow(e))&&(o=hasTreeChildren(d,s),c={_row:s,_level:r.length-1,_hasChild:o,_expand:o&&d.isTreeExpandByRow(s)},n.forEach(function(e,t){var o,r="",n=e.editRender||e.cellRender,a=e.exportMethod;if(a=!a&&n&&n.name&&(n=_vXETable.default.renderer.get(n.name))?n.exportMethod||n.cellExportMethod:a)r=a({$table:d,row:s,column:e,options:u});else switch(e.type){case"seq":r="all"===m?i.map(function(e,t){return t%2==0?Number(e)+1:"."}).join(""):getSeq(d,s,l,e,t);break;case"checkbox":r=toBooleanValue(d.isCheckedByCheckboxRow(s)),c._checkboxLabel=b.labelField?_xeUtils.default.get(s,b.labelField):"",c._checkboxDisabled=b.checkMethod&&!b.checkMethod({row:s});break;case"radio":r=toBooleanValue(d.isCheckedByRadioRow(s)),c._radioLabel=h.labelField?_xeUtils.default.get(s,h.labelField):"",c._radioDisabled=h.checkMethod&&!h.checkMethod({row:s});break;default:u.original?r=_utils.default.getCellValue(s,e):(r=d.getCellLabel(s,e),"html"===e.type?(htmlCellElem.innerHTML=r,r=htmlCellElem.innerText.trim()):(o=d.getCell(s,e))&&(r=o.innerText.trim()))}c[e.id]=_xeUtils.default.toValueString(r)}),p.set(s,1),a.push(Object.assign(c,s)))},o),a):e.map(function(l,i){var c={_row:l};return n.forEach(function(e,t){var o,r="",n=e.editRender||e.cellRender,a=e.exportMethod;if(a=!a&&n&&n.name&&(n=_vXETable.default.renderer.get(n.name))?n.exportMethod||n.cellExportMethod:a)r=a({$table:d,row:l,column:e,options:u});else switch(e.type){case"seq":r="all"===m?i+1:getSeq(d,l,i,e,t);break;case"checkbox":r=toBooleanValue(d.isCheckedByCheckboxRow(l)),c._checkboxLabel=b.labelField?_xeUtils.default.get(l,b.labelField):"",c._checkboxDisabled=b.checkMethod&&!b.checkMethod({row:l});break;case"radio":r=toBooleanValue(d.isCheckedByRadioRow(l)),c._radioLabel=h.labelField?_xeUtils.default.get(l,h.labelField):"",c._radioDisabled=h.checkMethod&&!h.checkMethod({row:l});break;default:u.original?r=_utils.default.getCellValue(l,e):(r=d.getCellLabel(l,e),"html"===e.type?(htmlCellElem.innerHTML=r,r=htmlCellElem.innerText.trim()):(o=d.getCell(l,e))&&(r=o.innerText.trim()))}c[e.id]=_xeUtils.default.toValueString(r)}),c})}function getExportData(e,t){var o=t.columns,r=t.dataFilterMethod,n=t.data;return getLabelData(e,t,o,n=r?n.filter(function(e,t){return r({row:e,$rowIndex:t})}):n)}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}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,n=(!a&&n&&n.name&&(n=_vXETable.default.renderer.get(n.name))&&(a=n.footerExportMethod||n.footerCellExportMethod),e.getVTColumnIndex(r));return a?a({$table:e,items:o,itemIndex:n,_columnIndex:n,column:r,options:t}):_xeUtils.default.toValueString(o[n])}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){if("seq"===e.type)return"\t".concat(t);switch(e.cellType){case"string":if(isNaN(t))break;return"\t".concat(t);case"number":break;default:if(12<=t.length&&!isNaN(t))return"\t".concat(t)}}return t}function toTxtCellLabel(e){return/[",\s\n]/.test(e)?'"'.concat(e.replace(/"/g,'""'),'"'):e}function toCsv(o,r,e,t){var n=csvBOM;return 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&&(t=o.footerTableData,getFooterData(r,t).forEach(function(t){n+=e.map(function(e){return toTxtCellLabel(getFooterCellValue(o,r,t,e))}).join(",")+enterSymbol})),n}function toTxt(o,r,e,t){var n="";return 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&&(t=o.footerTableData,getFooterData(r,t).forEach(function(t){n+=e.map(function(e){return toTxtCellLabel(getFooterCellValue(o,r,t,e))}).join(",")+enterSymbol})),n}function hasEllipsis(e,t,o,r){t=t[o],o=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?r:t,r="title"===o||(!0===o||"tooltip"===o)||"ellipsis"===o;return r=e.scrollXLoad||e.scrollYLoad?r||!0:r}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(s,i,e,t){var d=s.id,o=s.border,r=s.treeConfig,a=s.treeOpts,c=s.isAllSelected,n=s.isIndeterminate,u=s.headerAlign,p=s.align,l=s.footerAlign,f=s.showOverflow,m=s.showHeaderOverflow,h=s.mergeList,b=i.print,g=i.isHeader,x=i.isFooter,v=i.isColgroup,y=i.isMerge,_=i.colgroups,w=i.original,T="check-all",o=["vxe-table","border--".concat(toTableBorder(o)),b?"is--print":"",g?"is--header":""].filter(function(e){return e}),E=['<table class="'.concat(o.join(" "),'" border="0" cellspacing="0" cellpadding="0">'),"<colgroup>".concat(e.map(function(e){return'<col style="width:'.concat(e.renderWidth,'px">')}).join(""),"</colgroup>")],v=(g&&(E.push("<thead>"),v&&!w?_.forEach(function(e){E.push("<tr>".concat(e.map(function(t){var e=t.headerAlign||t.align||u||p,o=hasEllipsis(s,t,"showHeaderOverflow",m)?["col--ellipsis"]:[],r=getHeaderTitle(i,t),n=0,a=0,l=(_xeUtils.default.eachTree([t],function(e){e.childNodes&&t.childNodes.length||a++,n+=e.renderWidth},{children:"childNodes"}),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(T,'" ').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||u||p,o=hasEllipsis(s,e,"showHeaderOverflow",m)?["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(T,'" ').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(n){E.push("<tr>"+e.map(function(e){var t=e.align||p,o=hasEllipsis(s,e,"showOverflow",f)?["col--ellipsis"]:[],r=n[e.id];return t&&o.push("col--".concat(t)),e.treeNode?(t="",n._hasChild&&(t='<i class="'.concat(n._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-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(n._level*a.indent,'px"><div class="vxe-table--tree-icon-wrapper">').concat(t,'</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_').concat(d,'" ').concat(n._radioDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(n._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(n._level*a.indent,'px"><div class="vxe-table--tree-icon-wrapper">').concat(t,'</div><div class="vxe-table--tree-cell"><input type="checkbox" ').concat(n._checkboxDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(n._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(n._level*a.indent,'px"><div class="vxe-table--tree-icon-wrapper">').concat(t,'</div><div class="vxe-table--tree-cell">').concat(r,"</div></div></div></td>")):"radio"===e.type?'<td class="'.concat(o.join(" "),'"><div ').concat(b?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="radio" name="radio_').concat(d,'" ').concat(n._radioDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(n._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(n._checkboxDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(n._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(c){E.push("<tr>"+e.map(function(e){var t=e.align||p,o=hasEllipsis(s,e,"showOverflow",f)?["col--ellipsis"]:[],r=c[e.id],n=1,a=1;if(y&&h.length){var l=s.getVTRowIndex(c._row),i=s.getVTColumnIndex(e),l=(0,_util.mergeBodyMethod)(h,l,i);if(l){i=l.rowspan,l=l.colspan;if(!i||!l)return"";1<i&&(n=i),1<l&&(a=l)}}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(d,'" ').concat(c._radioDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(c._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(c._checkboxDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(c._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>")),x&&(o=s.footerTableData,(g=getFooterData(i,o)).length)&&(E.push("<tfoot>"),g.forEach(function(n){E.push("<tr>".concat(e.map(function(e){var t=e.footerAlign||e.align||l||p,o=hasEllipsis(s,e,"showOverflow",f)?["col--ellipsis"]:[],r=getFooterCellValue(s,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>")),!c&&n?'<script>(function(){var a=document.querySelector(".'.concat(T,'");if(a){a.indeterminate=true}})()<\/script>'):"");return E.push("</table>",v),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("");return 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&&(t=o.footerTableData,getFooterData(r,t).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>")})),"".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,o,r=e.filename,n=e.type,a=e.content,r="".concat(r,".").concat(n);return window.Blob?(n=a instanceof Blob?a:getExportBlobByContent(_xeUtils.default.toValueString(a),e),navigator.msSaveBlob?navigator.msSaveBlob(n,r):(t=URL.createObjectURL(n),(o=document.createElement("a")).target="_blank",o.download=r,o.href=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),requestAnimationFrame(function(){o.parentNode&&o.parentNode.removeChild(o),URL.revokeObjectURL(t)})),Promise.resolve()):Promise.reject(new Error((0,_log.getLog)("vxe.error.notExp")))}function downloadFile(e,t,o){var r,n=t.filename,a=t.type;if(!t.download)return r=getExportBlobByContent(o,t),Promise.resolve({type:a,content:o,blob:r});saveLocalFile({filename:n,type:a,content:o}).then(function(){!1!==t.message&&("development"!==process.env.NODE_ENV||_vXETable.default.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_vXETable.default.modal.message({content:_conf.default.i18n("vxe.table.expSuccess"),status:"success"}))})}function clearColumnConvert(e){_xeUtils.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){var t,o;a?(t={options:n,$table:r,$grid:r.$xegrid},e(c?c(t):t)):(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(_xeUtils.default.uniqueId())}function replaceTxtCell(e,t){return e.replace(/#\d+@\d+/g,function(e){return _xeUtils.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 n,a,t=t.split(enterSymbol),l=[],i=[];return t.length&&(n={},a=Date.now(),t.forEach(function(e){var o;e&&(o={},e=(e=e.replace(/("")|(\n)/g,function(e,t){var o=getTxtCellKey(a);return n[o]=t?'"':"\n",o}).replace(/"(.*?)"/g,function(e,t){var o=getTxtCellKey(a);return n[o]=replaceTxtCell(t,n),o})).split(r),i.length?(e.forEach(function(e,t){t<i.length&&(o[i[t]]=getTxtCellValue(e,n))}),l.push(o)):i=e.map(function(e){return getTxtCellValue(e.trim(),n)}))})),{fields:i,rows:l}}function parseCsv(e,t){return parseCsvAndTxt(e,t,",")}function parseTxt(e,t){return parseCsvAndTxt(e,t,"\t")}function parseHTML(e,t){var o,t=getElementsByTagName((new DOMParser).parseFromString(t,"text/html"),"body"),r=[],n=[];return t.length&&(t=getElementsByTagName(t[0],"table")).length&&(o=getElementsByTagName(t[0],"thead")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(o[0],"tr"),function(e){_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),function(e){n.push(e.textContent)})}),(o=getElementsByTagName(t[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(o[0],"tr"),function(e){var o={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),function(e,t){n[t]&&(o[n[t]]=e.textContent||"")}),r.push(o)}),{fields:n,rows:r}}function parseXML(e,t){var t=getElementsByTagName((new DOMParser).parseFromString(t,"application/xml"),"Worksheet"),r=[],n=[];return t.length&&(t=getElementsByTagName(t[0],"Table")).length&&(t=getElementsByTagName(t[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(t[0],"Cell"),function(e){n.push(e.textContent)}),_xeUtils.default.arrayEach(t,function(e,t){var o;t&&(o={},t=getElementsByTagName(e,"Cell"),_xeUtils.default.arrayEach(t,function(e,t){n[t]&&(o[n[t]]=e.textContent)}),r.push(o))})),{fields:n,rows:r}}function checkImportData(e,t){var o=[];return e.forEach(function(e){e=e.property;e&&o.push(e)}),t.some(function(e){return-1<o.indexOf(e)})}function handleImport(t,e,o){var r=t.tableFullColumn,n=t._importResolve,a=t._importReject,l={fields:[],rows:[]};switch(o.type){case"csv":l=parseCsv(r,e);break;case"txt":l=parseTxt(r,e);break;case"html":l=parseHTML(r,e);break;case"xml":l=parseXML(r,e)}var i=l,c=i.fields,s=i.rows;checkImportData(r,c)?t.createData(s).then(function(e){e="insert"===o.mode?t.insert(e):t.reloadData(e);return!1!==o.message&&("development"!==process.env.NODE_ENV||_vXETable.default.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_vXETable.default.modal.message({content:_conf.default.i18n("vxe.table.impSuccess",[s.length]),status:"success"})),e.then(function(){n&&n({status:!0})})}):!1!==o.message&&("development"!==process.env.NODE_ENV||_vXETable.default.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_vXETable.default.modal.message({content:_conf.default.i18n("vxe.error.impFields"),status:"error"}),a)&&a({status:!1})}function handleFileImport(a,l,i){var c=i.importMethod,t=i.afterImportMethod,e=_utils.default.parseFile(l),s=e.type,d=e.filename;return c||_xeUtils.default.includes(_vXETable.default.config.importTypes,s)?new Promise(function(t,o){function e(e){t(e),a._importResolve=null,a._importReject=null}function r(e){o(e),a._importResolve=null,a._importReject=null}var n;a._importResolve=e,a._importReject=r,window.FileReader?(n=Object.assign({mode:"insert"},i,{type:s,filename:d})).remote?c?Promise.resolve(c({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(){(0,_log.errLog)("vxe.error.notType",[s]),r({status:!1})},e.onload=function(e){handleImport(a,e.target.result,n)},e.readAsText(l,n.encoding||"UTF-8")}):("development"===process.env.NODE_ENV&&(0,_log.errLog)("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)}):(!1!==i.message&&("development"!==process.env.NODE_ENV||_vXETable.default.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_vXETable.default.modal.message({content:_conf.default.i18n("vxe.error.notType",[s]),status:"error"})),Promise.reject({status:!1}))}function readLocalFile(){var s=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(a,l){var i=s.types||[],c=!i.length||i.some(function(e){return"*"===e});fileInput.multiple=!!s.multiple,fileInput.accept=c?"":".".concat(i.join(", .")),fileInput.onchange=function(e){var t,o=e.target.files,e=o[0];if(!c)for(var r=0;r<o.length;r++){var n=_utils.default.parseFile(o[r]).type;if(!_xeUtils.default.includes(i,n)){t=n;break}}t?(!1!==s.message&&("development"!==process.env.NODE_ENV||_vXETable.default.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_vXETable.default.modal.message({content:_conf.default.i18n("vxe.error.notType",[t]),status:"error"})),l({status:!1,files:o,file:e})):a({status:!0,files:o,file:e})},fileForm.reset(),fileInput.click()})}function removePrintFrame(){if(printFrame){if(printFrame.parentNode){try{printFrame.contentDocument.write("")}catch(e){}printFrame.parentNode.removeChild(printFrame)}printFrame=null}}function appendPrintFrame(){printFrame.parentNode||document.body.appendChild(printFrame)}function afterPrintEvent(){requestAnimationFrame(removePrintFrame)}function handlePrint(e,t,o){var r=t.beforePrintMethod,r=getExportBlobByContent(o=createHtmlPage(t,o=r?r({content:o,options:t,$table:e})||"":o),t);_dom.browse.msie?(removePrintFrame(),printFrame=createFrame(),appendPrintFrame(),printFrame.contentDocument.write(o),printFrame.contentDocument.execCommand("print")):(printFrame||((printFrame=createFrame()).onload=function(e){e.target.src&&(e.target.contentWindow.onafterprint=afterPrintEvent,e.target.contentWindow.print())}),appendPrintFrame(),printFrame.src=URL.createObjectURL(r))}function handleExportAndPrint(e,t,o){var r=e.initStore,n=e.customOpts,a=e.collectColumn,l=e.footerTableData,i=e.treeConfig,c=e.mergeList,s=e.isGroup,d=e.exportParams,u=e.getCheckboxRecords(),l=!!l.length,c=!i&&c.length,t=Object.assign({message:!0,isHeader:!0},t),p=t.types||_vXETable.default.config.exportTypes,f=t.modes,m=n.checkMethod,n=a.slice(0),h=t.columns,a=p.map(function(e){return{value:e,label:"vxe.export.types.".concat(e)}}),b=f.map(function(e){return{value:e,label:"vxe.export.modes.".concat(e)}});return _xeUtils.default.eachTree(n,function(r,e,t,o,n){(r.children&&r.children.length||defaultFilterExportColumn(r))&&(r.checked=h?h.some(function(e){var t,o;return(0,_util.isColumnInfo)(e)?r===e:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,o=e.type,e=e.property||e.field,t?r.id===t:e&&o?r.property===e&&r.type===o:e?r.property===e:!!o&&r.type===o)}):r.visible,r.halfChecked=!1,r.disabled=n&&n.disabled||!!m&&!m({column:r}))}),Object.assign(e.exportStore,{columns:n,typeList:a,modeList:b,hasFooter:l,hasMerge:c,hasTree:i,isPrint:o,hasColgroup:s,visible:!0}),Object.assign(d,{mode:u.length?"selected":"current"},t),-1===f.indexOf(d.mode)&&(d.mode=f[0]),-1===p.indexOf(d.type)&&(d.type=p[0]),r.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){for(var n=1,t=function t(o,e){var r;e&&(o._level=e._level+1,n<o._level)&&(n=o._level),o.childNodes&&o.childNodes.length?(r=0,o.childNodes.forEach(function(e){t(e,o),r+=e._colSpan}),o._colSpan=r):o._colSpan=1},o=(e.forEach(function(e){e._level=1,t(e)}),[]),r=0;r<n;r++)o.push([]);return getConvertColumns(e).forEach(function(e){e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=n-e._level+1,o[e._level-1].push(e)}),o},_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,isAllExpand:!1,download:!0,type:"csv",mode:"current"},s,{print:!1},e),s=d.type,e=d.mode,u=d.columns,p=d.original,f=d.beforeExportMethod,m=[],u=u&&u.length?u:null,h=d.columnFilterMethod,b=(u||(h=h||(p?function(e){return e.column.property}:function(e){return defaultFilterExportColumn(e.column)})),m=u?_xeUtils.default.searchTree(_xeUtils.default.mapTree(u,function(e){var t,o,r,n;if(e)return(0,_util.isColumnInfo)(e)?t=e:_xeUtils.default.isString(e)?t=a.getColumnByField(e):(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}))),t||{}},{children:"childNodes",mapChildren:"_children"}),function(e,t){return(0,_util.isColumnInfo)(e)&&(!h||h({column:e,$columnIndex:t}))},{children:"_children",mapChildren:"childNodes",original:!0}):_xeUtils.default.searchTree(o?r:l,function(e,t){return e.visible&&(!h||h({column:e,$columnIndex:t}))},{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(m,function(e){e.children&&e.children.length||b.push(e)},{children:"childNodes"}),d.columns=b,d.colgroups=convertToRows(m),d.filename||(d.filename=_conf.default.i18n(d.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),d.sheetName||(d.sheetName=document.title),!d.exportMethod&&!_xeUtils.default.includes(_vXETable.default.config.exportTypes,s))return"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notType",[s]),Promise.reject({status:!1});if(d.print||f&&f({options:d,$table:this,$grid:t}),!d.data)if(d.data=n,"selected"===e){var g=this.getCheckboxRecords();-1<["html","pdf"].indexOf(s)&&i?d.data=_xeUtils.default.searchTree(this.getTableData().fullData,function(e){return-1<g.indexOf(e)},Object.assign({},c,{data:"_row"})):d.data=g}else if("all"===e&&("development"!==process.env.NODE_ENV||t||(0,_log.warnLog)("vxe.error.errProp",["all","mode=current,selected"]),t)&&!d.remote){var x,p=t.proxyOpts,u=p.beforeQueryAll,v=p.afterQueryAll,o=p.ajax,r=p.props,y=void 0===r?{}:r,m=(void 0===o?{}:o).queryAll;if("development"!==process.env.NODE_ENV||m||(0,_log.warnLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),m)return x={$table:this,$grid:t,sort:t.sortData,filters:t.filterData,form:t.formData,target:m,options:d},Promise.resolve((u||m)(x)).catch(function(e){return e}).then(function(e){return d.data=(y.list?_xeUtils.default.get(e,y.list):e)||[],v&&v(x),handleExport(a,d)})}return handleExport(this,d)},_importByFile:function(e,t){var t=Object.assign({},t),o=t.beforeImportMethod;return o&&o({options:t,$table:this}),handleFileImport(this,e,t)},_importData:function(e){var t=this,o=Object.assign({types:_vXETable.default.config.importTypes},this.importOpts,e),e=o.beforeImportMethod,r=o.afterImportMethod;return e&&e({options:o,$table:this}),readLocalFile(o).catch(function(e){return r&&r({status:!1,options:o,$table:t}),Promise.reject(e)}).then(function(e){e=e.file;return handleFileImport(t,e,o)})},_saveFile:function(e){return saveLocalFile(e)},_readFile:function(e){return readLocalFile(e)},_print:function(e){var t=this,o=Object.assign({original:!1},this.printOpts,e,{type:"html",download:!1,remote:!1,print:!0});return o.sheetName||(o.sheetName=document.title),new Promise(function(e){o.content?e(handlePrint(t,o,o.content)):e(t.exportData(o).then(function(e){e=e.content;return handlePrint(t,o,e)}))})},_openImport:function(e){var t,e=Object.assign({mode:"insert",message:!0,types:_vXETable.default.config.importTypes},e,this.importOpts),o=e.types;!this.getTreeStatus()?(this.importConfig||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),o=o.map(function(e){return{value:e,label:"vxe.export.types.".concat(e)}}),t=e.modes.map(function(e){return{value:e,label:"vxe.import.modes.".concat(e)}}),Object.assign(this.importStore,{file:null,type:"",filename:"",modeList:t,typeList:o,visible:!0}),Object.assign(this.importParams,e),this.initStore.import=!0):e.message&&_vXETable.default.modal.message({content:_conf.default.i18n("vxe.error.treeNotImp"),status:"error"})},_openExport:function(e){var t=this.exportOpts;return"development"!==process.env.NODE_ENV||this.exportConfig||(0,_log.errLog)("vxe.error.reqProp",["export-config"]),handleExportAndPrint(this,Object.assign({},t,e))},_openPrint:function(e){var t=this.printOpts;return"development"!==process.env.NODE_ENV||this.printConfig||(0,_log.errLog)("vxe.error.reqProp",["print-config"]),handleExportAndPrint(this,Object.assign({},t,e),!0)}}};exports.default=_default;