vhb-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
1 lines • 33.6 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-h-b-table/src/conf")),_vHBTable=_interopRequireDefault(require("../../v-h-b-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){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&&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}.vhb-table{border-collapse:collapse;text-align:left;border-spacing:0}.vhb-table:not(.is--print){table-layout:fixed}.vhb-table,.vhb-table th,.vhb-table td,.vhb-table td{border-color:#D0D0D0;border-style:solid;border-width:0}.vhb-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}.vhb-table td>div,.vhb-table th>div{padding:.5em .4em}.col--center{text-align:center}.col--right{text-align:right}.vhb-table:not(.is--print) .col--ellipsis>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.vhb-table--tree-node{text-align:left}.vhb-table--tree-node-wrapper{position:relative}.vhb-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}.vhb-table--tree-unfold-icon,.vhb-table--tree-fold-icon{position:absolute;width:0;height:0;border-style:solid;border-width:.5em;border-right-color:transparent;border-bottom-color:transparent}.vhb-table--tree-unfold-icon{left:.3em;top:0;border-left-color:#939599;border-top-color:transparent}.vhb-table--tree-fold-icon{left:0;top:.3em;border-left-color:transparent;border-top-color:#939599}.vhb-table--tree-cell{display:block;padding-left:1.5em}.vhb-table input[type="checkbox"]{margin:0}.vhb-table input[type="checkbox"],.vhb-table input[type="radio"],.vhb-table input[type="checkbox"]+span,.vhb-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="vhb-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){var o=e.treeOpts;return t[o.children]&&0<t[o.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(u,p,l,e){var f=p.isAllExpand,h=p.mode,t=u.treeConfig,o=u.treeOpts,m=u.radioOpts,b=u.checkboxOpts;if(htmlCellElem||(htmlCellElem=document.createElement("div")),t){var v=[],g=new Map;return _xeUtils.default.eachTree(e,function(e,i,t,c,o,r){var s=e._row||e,n=o&&o._row?o._row:o;if(f||!n||g.has(n)&&u.isTreeExpandByRow(n)){var a=hasTreeChildren(u,s),d={_row:s,_level:r.length-1,_hasChild:a,_expand:a&&u.isTreeExpandByRow(s)};l.forEach(function(e,t){var o="",r=e.editRender||e.cellRender,n=e.exportMethod;if(!n&&r&&r.name){var a=_vHBTable.default.renderer.get(r.name);a&&(n=a.exportMethod||a.cellExportMethod)}if(n)o=n({$table:u,row:s,column:e,options:p});else switch(e.type){case"seq":o="all"===h?c.map(function(e,t){return t%2==0?Number(e)+1:"."}).join(""):getSeq(u,s,i,e,t);break;case"checkbox":o=toBooleanValue(u.isCheckedByCheckboxRow(s)),d._checkboxLabel=b.labelField?_xeUtils.default.get(s,b.labelField):"",d._checkboxDisabled=b.checkMethod&&!b.checkMethod({row:s});break;case"radio":o=toBooleanValue(u.isCheckedByRadioRow(s)),d._radioLabel=m.labelField?_xeUtils.default.get(s,m.labelField):"",d._radioDisabled=m.checkMethod&&!m.checkMethod({row:s});break;default:if(p.original)o=_utils.default.getCellValue(s,e);else if(o=u.getCellLabel(s,e),"html"===e.type)htmlCellElem.innerHTML=o,o=htmlCellElem.innerText.trim();else{var l=u.getCell(s,e);l&&(o=l.innerText.trim())}}d[e.id]=_xeUtils.default.toValueString(o)}),g.set(s,1),v.push(Object.assign(d,s))}},o),v}return e.map(function(i,c){var s={_row:i};return l.forEach(function(e,t){var o="",r=e.editRender||e.cellRender,n=e.exportMethod;if(!n&&r&&r.name){var a=_vHBTable.default.renderer.get(r.name);a&&(n=a.exportMethod||a.cellExportMethod)}if(n)o=n({$table:u,row:i,column:e,options:p});else switch(e.type){case"seq":o="all"===h?c+1:getSeq(u,i,c,e,t);break;case"checkbox":o=toBooleanValue(u.isCheckedByCheckboxRow(i)),s._checkboxLabel=b.labelField?_xeUtils.default.get(i,b.labelField):"",s._checkboxDisabled=b.checkMethod&&!b.checkMethod({row:i});break;case"radio":o=toBooleanValue(u.isCheckedByRadioRow(i)),s._radioLabel=m.labelField?_xeUtils.default.get(i,m.labelField):"",s._radioDisabled=m.checkMethod&&!m.checkMethod({row:i});break;default:if(p.original)o=_utils.default.getCellValue(i,e);else if(o=u.getCellLabel(i,e),"html"===e.type)htmlCellElem.innerHTML=o,o=htmlCellElem.innerText.trim();else{var l=u.getCell(i,e);l&&(o=l.innerText.trim())}}s[e.id]=_xeUtils.default.toValueString(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 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;if(!a&&n&&n.name){var l=_vHBTable.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}):_xeUtils.default.toValueString(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){if("seq"===e.type)return"\t".concat(t);switch(e.cellType){case"string":if(!isNaN(t))return"\t".concat(t);break;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;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.footerTableData;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.footerTableData;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=_xeUtils.default.isUndefined(n)||_xeUtils.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,b=p.mergeList,v=i.print,u=i.isHeader,g=i.isFooter,x=i.isColgroup,y=i.isMerge,_=i.colgroups,w=i.original,T="check-all",C=["vhb-table","border--".concat(toTableBorder(o)),v?"is--print":"",u?"is--header":""].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&&!w?_.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;_xeUtils.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(v?"":'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(v?"":'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(v?"":'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(v?"":'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="'.concat(a._expand?"vhb-table--tree-fold-icon":"vhb-table--tree-unfold-icon",'"></i>')),o.push("vhb-table--tree-node"),"radio"===e.type?'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><div class="vhb-table--tree-node-wrapper" style="padding-left: ').concat(a._level*l.indent,'px"><div class="vhb-table--tree-icon-wrapper">').concat(n,'</div><div class="vhb-table--tree-cell"><input type="radio" name="radio_').concat(f,'" ').concat(a._radioDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(a._radioLabel,"</span></div></div></div></td>"):"checkbox"===e.type?'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><div class="vhb-table--tree-node-wrapper" style="padding-left: ').concat(a._level*l.indent,'px"><div class="vhb-table--tree-icon-wrapper">').concat(n,'</div><div class="vhb-table--tree-cell"><input type="checkbox" ').concat(a._checkboxDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(a._checkboxLabel,"</span></div></div></div></td>"):'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><div class="vhb-table--tree-node-wrapper" style="padding-left: ').concat(a._level*l.indent,'px"><div class="vhb-table--tree-icon-wrapper">').concat(n,'</div><div class="vhb-table--tree-cell">').concat(r,"</div></div></div></td>")}return"radio"===e.type?'<td class="'.concat(o.join(" "),'"><div ').concat(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="radio" name="radio_').concat(f,'" ').concat(a._radioDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(a._radioLabel,"</span></div></td>"):"checkbox"===e.type?'<td class="'.concat(o.join(" "),'"><div ').concat(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="checkbox" ').concat(a._checkboxDisabled?"disabled ":"").concat(getBooleanValue(r)?"checked":"","><span>").concat(a._checkboxLabel,"</span></div></td>"):'<td class="'.concat(o.join(" "),'" title="').concat(r,'"><div ').concat(v?"":'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&&b.length){var l=p.getVTRowIndex(u._row),i=p.getVTColumnIndex(e),c=(0,_util.mergeBodyMethod)(b,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(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="radio" name="radio_').concat(f,'" ').concat(u._radioDisabled?"disabled ":"").concat(getBooleanValue(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(v?"":'style="width: '.concat(e.renderWidth,'px"'),'><input type="checkbox" ').concat(u._checkboxDisabled?"disabled ":"").concat(getBooleanValue(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(v?"":'style="width: '.concat(e.renderWidth,'px"'),">").concat(formatText(r,!0),"</div></td>")}).join("")+"</tr>")}),E.push("</tbody>")),g){var F=p.footerTableData,k=getFooterData(i,F);k.length&&(E.push("<tfoot>"),k.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(v?"":'style="width: '.concat(e.renderWidth,'px"'),">").concat(formatText(r,!0),"</div></td>")}).join(""),"</tr>"))}),E.push("</tfoot>"))}var B=!c&&n?'<script>(function(){var a=document.querySelector(".'.concat(T,'");if(a){a.indeterminate=true}})()<\/script>'):"";return E.push("</table>",B),v?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.footerTableData;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(_xeUtils.default.toValueString(r),e);if(navigator.msSaveBlob)navigator.msSaveBlob(a,n);else{var l=URL.createObjectURL(a),i=document.createElement("a");i.target="_blank",i.download=n,i.href=l,document.body.appendChild(i),i.click(),document.body.removeChild(i),requestAnimationFrame(function(){i.parentNode&&i.parentNode.removeChild(i),URL.revokeObjectURL(l)})}return Promise.resolve()}return Promise.reject(new Error(_utils.default.getLog("vhb.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&&("development"===process.env.NODE_ENV&&(_vHBTable.default.modal||(0,_log.errLog)("vhb.error.reqModule",["Modal"])),_vHBTable.default.modal.message({content:_conf.default.i18n("vhb.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){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(_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 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){_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),function(e){_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),function(e){n.push(e.textContent)})});var i=getElementsByTagName(a[0],"tbody");i.length&&_xeUtils.default.arrayEach(getElementsByTagName(i[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)})}}}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&&(_xeUtils.default.arrayEach(getElementsByTagName(l[0],"Cell"),function(e){a.push(e.textContent)}),_xeUtils.default.arrayEach(l,function(e,t){if(t){var o={},r=getElementsByTagName(e,"Cell");_xeUtils.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&&("development"===process.env.NODE_ENV&&(_vHBTable.default.modal||(0,_log.errLog)("vhb.error.reqModule",["Modal"])),_vHBTable.default.modal.message({content:_conf.default.i18n("vhb.table.impSuccess",[s.length]),status:"success"})),t.then(function(){n&&n({status:!0})})}):!1!==r.message&&("development"===process.env.NODE_ENV&&(_vHBTable.default.modal||(0,_log.errLog)("vhb.error.reqModule",["Modal"])),_vHBTable.default.modal.message({content:_conf.default.i18n("vhb.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;if(c||_xeUtils.default.includes(_vHBTable.default.config.importTypes,s))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:s,filename:d});n.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)("vhb.error.notType",[s]),r({status:!1})},e.onload=function(e){handleImport(a,e.target.result,n)},e.readAsText(l,n.encoding||"UTF-8")})}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vhb.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&&(_vHBTable.default.modal||(0,_log.errLog)("vhb.error.reqModule",["Modal"])),_vHBTable.default.modal.message({content:_conf.default.i18n("vhb.error.notType",[s]),status:"error"}));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="vhb-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=_utils.default.parseFile(o[n]).type;if(!_xeUtils.default.includes(c,a)){t=a;break}}t?(!1!==d.message&&("development"===process.env.NODE_ENV&&(_vHBTable.default.modal||(0,_log.errLog)("vhb.error.reqModule",["Modal"])),_vHBTable.default.modal.message({content:_conf.default.i18n("vhb.error.notType",[t]),status:"error"})),i({status:!1,files:o,file:r})):l({status:!0,files:o,file:r})},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&&(o=r({content:o,options:t,$table:e})||"");var n=getExportBlobByContent(o=createHtmlPage(t,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(n))}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(),p=!!l.length,f=i,h=!f&&c.length,m=Object.assign({message:!0,isHeader:!0},t),b=m.types||_vHBTable.default.config.exportTypes,v=m.modes,g=n.checkMethod,x=a.slice(0),y=m.columns,_=b.map(function(e){return{value:e,label:"vhb.export.types.".concat(e)}}),w=v.map(function(e){return{value:e,label:"vhb.export.modes.".concat(e)}});return _xeUtils.default.eachTree(x,function(n,e,t,o,r){(n.children&&n.children.length||defaultFilterExportColumn(n))&&(n.checked=y?y.some(function(e){if((0,_util.isColumnInfo)(e))return n===e;if(_xeUtils.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||!!g&&!g({column:n}))}),Object.assign(e.exportStore,{columns:x,typeList:_,modeList:w,hasFooter:p,hasMerge:h,hasTree:f,isPrint:o,hasColgroup:s,visible:!0}),r.export||Object.assign(d,{mode:u.length?"selected":"current"},m),-1===v.indexOf(d.mode)&&(d.mode=v[0]),-1===b.indexOf(d.type)&&(d.type=b[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){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,isAllExpand:!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,b=[],v=f&&f.length?f:null,g=d.columnFilterMethod;v||g||(g=h?function(e){return e.column.property}:function(e){return defaultFilterExportColumn(e.column)}),b=v?_xeUtils.default.searchTree(_xeUtils.default.mapTree(v,function(e){var t;if(e){if((0,_util.isColumnInfo)(e))t=e;else if(_xeUtils.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(0,_util.isColumnInfo)(e)&&(!g||g({column:e,$columnIndex:t}))},{children:"_children",mapChildren:"childNodes",original:!0}):_xeUtils.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(_xeUtils.default.eachTree(b,function(e){e.children&&e.children.length||x.push(e)},{children:"childNodes"}),d.columns=x,d.colgroups=convertToRows(b),d.filename||(d.filename=_conf.default.i18n(d.original?"vhb.table.expOriginFilename":"vhb.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),d.sheetName||(d.sheetName=document.title),!d.exportMethod&&!_xeUtils.default.includes(_vHBTable.default.config.exportTypes,u)){"development"===process.env.NODE_ENV&&(0,_log.errLog)("vhb.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=_xeUtils.default.searchTree(this.getTableData().fullData,function(e){return-1<y.indexOf(e)},Object.assign({},c,{data:"_row"})):d.data=y}else if("all"===p&&("development"===process.env.NODE_ENV&&(t||(0,_log.warnLog)("vhb.error.errProp",["all","mode=current,selected"])),t&&!d.remote)){var _=t.proxyOpts,w=_.beforeQueryAll,T=_.afterQueryAll,C=_.ajax,E=void 0===C?{}:C,F=_.props,k=void 0===F?{}:F,B=E.queryAll;if("development"===process.env.NODE_ENV&&(B||(0,_log.warnLog)("vhb.error.notFunc",["proxy-config.ajax.queryAll"])),B){var L={$table:this,$grid:t,sort:t.sortData,filters:t.filterData,form:t.formData,target:B,options:d};return Promise.resolve((w||B)(L)).catch(function(e){return e}).then(function(e){return d.data=(k.list?_xeUtils.default.get(e,k.list):e)||[],T&&T(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:_vHBTable.default.config.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:_vHBTable.default.config.importTypes},e,this.importOpts),o=t.types;if(!!this.getTreeStatus())t.message&&_vHBTable.default.modal.message({content:_conf.default.i18n("vhb.error.treeNotImp"),status:"error"});else{this.importConfig||(0,_log.errLog)("vhb.error.reqProp",["import-config"]);var r=o.map(function(e){return{value:e,label:"vhb.export.types.".concat(e)}}),n=t.modes.map(function(e){return{value:e,label:"vhb.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.NODE_ENV&&(this.exportConfig||(0,_log.errLog)("vhb.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)("vhb.error.reqProp",["print-config"])),handleExportAndPrint(this,Object.assign({},t,e),!0)}}};exports.default=_default;