vxe-table 3.17.6 → 3.17.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/es/grid/src/grid.js +47 -29
  2. package/es/style.css +1 -1
  3. package/es/table/module/export/mixin.js +3 -1
  4. package/es/table/src/methods.js +147 -48
  5. package/es/table/src/props.js +1 -1
  6. package/es/table/src/table.js +12 -12
  7. package/es/table/src/util.js +0 -4
  8. package/es/toolbar/src/toolbar.js +2 -2
  9. package/es/ui/index.js +13 -4
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/grid/src/grid.js +49 -26
  12. package/lib/grid/src/grid.min.js +1 -1
  13. package/lib/index.umd.js +13627 -13483
  14. package/lib/index.umd.min.js +1 -1
  15. package/lib/style.css +1 -1
  16. package/lib/table/module/export/mixin.js +5 -1
  17. package/lib/table/module/export/mixin.min.js +1 -1
  18. package/lib/table/src/methods.js +158 -49
  19. package/lib/table/src/methods.min.js +1 -1
  20. package/lib/table/src/props.js +2 -2
  21. package/lib/table/src/props.min.js +1 -1
  22. package/lib/table/src/table.js +13 -13
  23. package/lib/table/src/table.min.js +1 -1
  24. package/lib/table/src/util.js +0 -4
  25. package/lib/table/src/util.min.js +1 -1
  26. package/lib/toolbar/src/toolbar.js +2 -0
  27. package/lib/toolbar/src/toolbar.min.js +1 -1
  28. package/lib/ui/index.js +12 -3
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/package.json +1 -1
  33. package/packages/grid/src/grid.ts +49 -30
  34. package/packages/table/module/export/mixin.ts +5 -3
  35. package/packages/table/src/methods.ts +157 -52
  36. package/packages/table/src/props.ts +1 -1
  37. package/packages/table/src/table.ts +12 -14
  38. package/packages/table/src/util.ts +0 -4
  39. package/packages/toolbar/src/toolbar.ts +2 -2
  40. package/packages/ui/index.ts +12 -2
  41. package/packages/ui/src/dom.ts +1 -1
  42. package/styles/cssvar.scss +0 -2
  43. /package/es/{iconfont.1754534807189.ttf → iconfont.1754905462391.ttf} +0 -0
  44. /package/es/{iconfont.1754534807189.woff → iconfont.1754905462391.woff} +0 -0
  45. /package/es/{iconfont.1754534807189.woff2 → iconfont.1754905462391.woff2} +0 -0
  46. /package/lib/{iconfont.1754534807189.ttf → iconfont.1754905462391.ttf} +0 -0
  47. /package/lib/{iconfont.1754534807189.woff → iconfont.1754905462391.woff} +0 -0
  48. /package/lib/{iconfont.1754534807189.woff2 → iconfont.1754905462391.woff2} +0 -0
@@ -1307,6 +1307,7 @@ var _default = exports.default = {
1307
1307
  const reactData = $xeTable;
1308
1308
  const internalData = $xeTable;
1309
1309
  const $xeGrid = $xeTable.$xeGrid;
1310
+ const $xeGantt = $xeTable.$xeGantt;
1310
1311
  const {
1311
1312
  treeConfig,
1312
1313
  showHeader,
@@ -1561,6 +1562,7 @@ var _default = exports.default = {
1561
1562
  const params = {
1562
1563
  $table: $xeTable,
1563
1564
  $grid: $xeGrid,
1565
+ $gantt: $xeGantt,
1564
1566
  sort: sortData.length ? sortData[0] : {},
1565
1567
  sorts: sortData,
1566
1568
  filters: gridReactData.filterData,
@@ -1571,7 +1573,9 @@ var _default = exports.default = {
1571
1573
  const listProp = resConfigs.list;
1572
1574
  handleOptions.data = (listProp ? _xeUtils.default.isFunction(listProp) ? listProp({
1573
1575
  data: rest,
1574
- $grid: $xeGrid
1576
+ $table: $xeTable,
1577
+ $grid: $xeGrid,
1578
+ $gantt: $xeGantt
1575
1579
  }) : _xeUtils.default.get(rest, listProp) : rest) || [];
1576
1580
  if (afterQueryAll) {
1577
1581
  afterQueryAll(params);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util2=require("./util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer}=_ui.VxeUI,htmlCellElem,csvBOM="\ufeff",enterSymbol="\r\n";function hasTreeChildren(e,t){e=e.computeTreeOpts,e=e.children||e.childrenField;return t[e]&&t[e].length}function getSeq(e,t,l,r,o,a){var i=e.computeSeqOpts.seqMethod||o.seqMethod;return i?i({$table:e,row:l,rowIndex:e.getRowIndex(l),$rowIndex:r,column:o,columnIndex:e.getColumnIndex(o),$columnIndex:a}):t}function defaultFilterExportColumn(e){return!!e.field||-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}let toStringValue=e=>(0,_utils.eqEmptyValue)(e)?"":""+e;function getBodyLabelData(h,m,x,e){let{isAllExpand:g,mode:f}=m;var t=h.treeConfig;let v=h.computeRadioOpts,b=h.computeCheckboxOpts;var l=h.computeTreeOpts;let _=h.computeColumnOpts;if(htmlCellElem=htmlCellElem||document.createElement("div"),t){t=l.children||l.childrenField;let c=[],u={},p={},i=(0,_util.createHandleGetRowId)(h).handleGetRowId;return _xeUtils.default.eachTree(e,(e,s,t,n,l,r)=>{let d=e._row||e;var o=i(d);if(!p[o]){e=l&&l._row?l._row:l,l=e?i(e):"";if(g||!e||u[l]&&h.isTreeExpandByRow(e)){var a=hasTreeChildren(h,d);let i={_row:d,_level:r.length-1,_hasChild:a,_expand:a&&h.isTreeExpandByRow(d)};x.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||_.exportMethod;if(o=(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)||_.exportMethod)l=o({$table:h,row:d,column:e,options:m});else switch(e.type){case"seq":var a=n.map((e,t)=>t%2==0?Number(e)+1:".").join("");l="all"===f?a:getSeq(h,a,d,s,e,t);break;case"checkbox":l=toBooleanValue(h.isCheckedByCheckboxRow(d)),i._checkboxLabel=b.labelField?_xeUtils.default.get(d,b.labelField):"",i._checkboxDisabled=b.checkMethod&&!b.checkMethod({$table:h,row:d});break;case"radio":l=toBooleanValue(h.isCheckedByRadioRow(d)),i._radioLabel=v.labelField?_xeUtils.default.get(d,v.labelField):"",i._radioDisabled=v.checkMethod&&!v.checkMethod({$table:h,row:d});break;default:m.original?l=(0,_util.getCellValue)(d,e):(l=h.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=h.getCellElement(d,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}i[e.id]=toStringValue(l)}),p[o]=!0,l&&(u[l]=!0),c.push(Object.assign(i,d))}}},{children:t}),c}return e.map((i,s)=>{let n={_row:i};return x.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||_.exportMethod;if(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)l=o({$table:h,row:i,column:e,options:m});else switch(e.type){case"seq":var a=s+1;l="all"===f?a:getSeq(h,a,i,s,e,t);break;case"checkbox":l=toBooleanValue(h.isCheckedByCheckboxRow(i)),n._checkboxLabel=b.labelField?_xeUtils.default.get(i,b.labelField):"",n._checkboxDisabled=b.checkMethod&&!b.checkMethod({$table:h,row:i});break;case"radio":l=toBooleanValue(h.isCheckedByRadioRow(i)),n._radioLabel=v.labelField?_xeUtils.default.get(i,v.labelField):"",n._radioDisabled=v.checkMethod&&!v.checkMethod({$table:h,row:i});break;default:m.original?l=(0,_util.getCellValue)(i,e):(l=h.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=h.getCellElement(i,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}n[e.id]=toStringValue(l)}),n})}function getExportData(l,e){let{columns:t,dataFilterMethod:r}=e,o=e.data;return r&&(o=o.filter((e,t)=>r({$table:l,row:e,$rowIndex:t}))),getBodyLabelData(l,e,t,o)}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}function getHeaderTitle(e,t,l){var r=e.computeColumnOpts,r=l.headerExportMethod||r.headerExportMethod;return r?r({column:l,options:t,$table:e}):(t.isTitle?l.getTitle():l.field)||""}function getFooterCellValue(e,t,l,r){var o=e.computeColumnOpts,a=r.editRender||r.cellRender;let i=r.footerExportMethod;i=(i=!i&&a&&a.name&&(a=renderer.get(a.name))?a.tableFooterExportMethod||a.footerExportMethod||a.footerCellExportMethod:i)||o.footerExportMethod;a=e.getVTColumnIndex(r);return i?i({$table:e,items:l,itemIndex:a,row:l,_columnIndex:a,column:r,options:t}):_xeUtils.default.isArray(l)?_xeUtils.default.toValueString(l[a]):_xeUtils.default.get(l,r.field)}function getFooterData(l,e,t){let r=e.footerFilterMethod;return r?t.filter((e,t)=>r({$table:l,items:e,$rowIndex:t})):t}function getCsvCellTypeLabel(e,t){if(t){if("seq"===e.type)return` `+t;switch(e.cellType){case"string":if(isNaN(t))break;return` `+t;case"number":break;default:if(12<=t.length&&!isNaN(t))return` `+t}}return t}function toTxtCellLabel(e){return/[",\s\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function toCsv(l,r,e,t){var o=l;let a=csvBOM;return r.isHeader&&(a+=e.map(e=>toTxtCellLabel(getHeaderTitle(l,r,e))).join(",")+enterSymbol),t.forEach(t=>{a+=e.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),r.isFooter&&(t=o.footerTableData,getFooterData(l,r,t).forEach(t=>{a+=e.map(e=>toTxtCellLabel(getFooterCellValue(l,r,t,e))).join(",")+enterSymbol})),a}function toTxt(l,r,e,t){var o=l;let a="";return r.isHeader&&(a+=e.map(e=>toTxtCellLabel(getHeaderTitle(l,r,e))).join("\t")+enterSymbol),t.forEach(t=>{a+=e.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),r.isFooter&&(t=o.footerTableData,getFooterData(l,r,t).forEach(t=>{a+=e.map(e=>toTxtCellLabel(getFooterCellValue(l,r,t,e))).join("\t")+enterSymbol})),a}function hasEllipsis(e,t,l,r){t=t[l],l=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?r:t;let o="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;var{scrollXLoad:r,scrollYLoad:t}=e;return o=r||t?o||!0:o}function toHtml(d,s,e,t){var l=d;let{id:c,border:r,treeConfig:o,headerAlign:n,align:u,footerAlign:a,showOverflow:p,showHeaderOverflow:h}=d,{isAllSelected:m,isIndeterminate:i}=l,x=d.mergeBodyCellMaps,g=d.computeTreeOpts,{print:f,isHeader:v,isFooter:b,isColgroup:_,isMerge:y,colgroups:$,original:C}=s,w="check-all",T=[`<table class="${["vxe-table","border--"+toTableBorder(r),f?"is--print":"",v?"is--header":""].filter(e=>e).join(" ")}" border="0" cellspacing="0" cellpadding="0">`,`<colgroup>${e.map(e=>`<col style="width:${e.renderWidth}px">`).join("")}</colgroup>`];v&&(T.push("<thead>"),_&&!C?$.forEach(e=>{T.push(`<tr>${e.map(t=>{var e=t.headerAlign||t.align||n||u,l=hasEllipsis(d,t,"showHeaderOverflow",h)?["col--ellipsis"]:[],r=getHeaderTitle(d,s,t);let o=0,a=0;_xeUtils.default.eachTree([t],e=>{e.childNodes&&t.childNodes.length||a++,o+=e.renderWidth},{children:"childNodes"});var i=o-a;return e&&l.push("col--"+e),"checkbox"===t.type?`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}"><div ${f?"":`style="width: ${i}px"`}><input type="checkbox" class="${w}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}" title="${r}"><div ${f?"":`style="width: ${i}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`)}):T.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||n||u,l=hasEllipsis(d,e,"showHeaderOverflow",h)?["col--ellipsis"]:[],r=getHeaderTitle(d,s,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" class="${w}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`),T.push("</thead>")),t.length&&(T.push("<tbody>"),o?t.forEach(o=>{T.push("<tr>"+e.map(t=>{var e=t.align||u,l=hasEllipsis(d,t,"showOverflow",p)?["col--ellipsis"]:[],r=o[t.id];if(e&&l.push("col--"+e),t.treeNode){let e="";return o._hasChild&&(e=`<i class="${o._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-icon"}"></i>`),l.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*g.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${c}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*g.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*g.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${r}</div></div></div></td>`}return"radio"===t.type?`<td class="${l.join(" ")}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><input type="radio" name="radio_${c}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{T.push("<tr>"+e.map(e=>{var t=e.id,l=e.align||u,r=hasEllipsis(d,e,"showOverflow",p)?["col--ellipsis"]:[],t=n[t];let o=1,a=1;if(y){var i=d.getVTRowIndex(n._row),s=d.getVTColumnIndex(e),i=x[i+":"+s];if(i){var{rowspan:s,colspan:i}=i;if(!s||!i)return"";1<s&&(o=s),1<i&&(a=i)}}return l&&r.push("col--"+l),"radio"===e.type?`<td class="${r.join(" ")}" rowspan="${o}" colspan="${a}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><input type="radio" name="radio_${c}" ${n._radioDisabled?"disabled ":""}${getBooleanValue(t)?"checked":""}><span>${n._radioLabel}</span></div></td>`:"checkbox"===e.type?`<td class="${r.join(" ")}" rowspan="${o}" colspan="${a}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" ${n._checkboxDisabled?"disabled ":""}${getBooleanValue(t)?"checked":""}><span>${n._checkboxLabel}</span></div></td>`:`<td class="${r.join(" ")}" rowspan="${o}" colspan="${a}" title="${t}"><div ${f?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(t,!0)}</div></td>`}).join("")+"</tr>")}),T.push("</tbody>")),b&&(t=l.footerTableData,(l=getFooterData(d,s,t)).length)&&(T.push("<tfoot>"),l.forEach(o=>{T.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||u,l=hasEllipsis(d,e,"showOverflow",p)?["col--ellipsis"]:[],r=getFooterCellValue(d,s,o,e);return t&&l.push("col--"+t),`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")}</tr>`)}),T.push("</tfoot>"));t=!m&&i?`<script>(function(){var a=document.querySelector(".${w}");if(a){a.indeterminate=true}})()</script>`:"";return T.push("</table>",t),f?T.join(""):(0,_util2.createHtmlPage)(s,T.join(""))}function toXML(l,r,e,t){var o=l;let a=['<?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="${r.sheetName}">`,"<Table>",e.map(e=>`<Column ss:Width="${e.renderWidth}"/>`).join("")].join("");return r.isHeader&&(a+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${getHeaderTitle(l,r,e)}</Data></Cell>`).join("")}</Row>`),t.forEach(t=>{a+="<Row>"+e.map(e=>`<Cell><Data ss:Type="String">${t[e.id]}</Data></Cell>`).join("")+"</Row>"}),r.isFooter&&(t=o.footerTableData,getFooterData(l,r,t).forEach(t=>{a+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${getFooterCellValue(l,r,t,e)}</Data></Cell>`).join("")}</Row>`})),a+"</Table></Worksheet></Workbook>"}function getContent(e,t,l,r){if(l.length)switch(t.type){case"csv":return toCsv(e,t,l,r);case"txt":return toTxt(e,t,l,r);case"html":return toHtml(e,t,l,r);case"xml":return toXML(e,t,l,r)}return""}function downloadFile(e,t,l){var{filename:r,type:o,download:a}=t;if(!a)return a=(0,_util2.getExportBlobByContent)(l,t),Promise.resolve({type:o,content:l,blob:a});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:r,type:o,content:l}).then(()=>{!1!==t.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})}function clearColumnConvert(e){_xeUtils.default.eachTree(e,e=>{delete e._level,delete e._colSpan,delete e._rowSpan,delete e._children,delete e.childNodes},{children:"children"})}function handleExport(l,r){let o=l.$xeGrid,{remote:a,columns:i,colgroups:s,exportMethod:n,afterExportMethod:t}=r;return new Promise(t=>{if(a){var e={options:r,$table:l,$grid:o};t(n?n(e):e)}else{let e=getExportData(l,r);t(l.preventEvent(null,"event.export",{options:r,columns:i,colgroups:s,datas:e},()=>downloadFile(l,r,getContent(l,r,i,e))))}}).then(e=>(clearColumnConvert(i),r.print||t&&t({status:!0,options:r,$table:l,$grid:o}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(i),r.print||t&&t({status:!1,options:r,$table:l,$grid:o});return Promise.reject({status:!1})})}function getElementsByTagName(e,t){return e.getElementsByTagName(t)}function getTxtCellKey(e){return`#${e}@`+_xeUtils.default.uniqueId()}function replaceTxtCell(e,t){return e.replace(/#\d+@\d+/g,e=>_xeUtils.default.hasOwnProp(t,e)?t[e]:e)}function getTxtCellValue(e,t){return replaceTxtCell(e,t).replace(/^"+$/g,e=>'"'.repeat(Math.ceil(e.length/2)))}function toExportField(e,t){var{fieldMaps:e,titleMaps:l}=e;return e[t]||(e=l[t])&&e.field&&(t=e.field),t}function parseCsvAndTxt(t,e,a){e=e.split(enterSymbol);let i=[],s=[];if(e.length){let r={},o=Date.now();e.forEach(e=>{if(e){let l={};e=(e=e.replace(/("")|(\n)/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=t?'"':"\n",l}).replace(/"(.*?)"/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=replaceTxtCell(t,r),l})).split(a);s.length?(e.forEach((e,t)=>{t<s.length&&(l[s[t]]=getTxtCellValue(e.trim(),r))}),i.push(l)):s=e.map(e=>toExportField(t,getTxtCellValue(e.trim(),r)))}})}return{fields:s,rows:i}}function parseCsv(e,t){return parseCsvAndTxt(e,t,",")}function parseTxt(e,t){return parseCsvAndTxt(e,t,"\t")}function parseHTML(t,e){var l,e=getElementsByTagName((new DOMParser).parseFromString(e,"text/html"),"body");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"table")).length&&(l=getElementsByTagName(e[0],"thead")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),e=>{o.push(toExportField(t,e.textContent||""))})}),(l=getElementsByTagName(e[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{let l={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),(e,t)=>{o[t]&&(l[o[t]]=e.textContent||"")}),r.push(l)}),{fields:o,rows:r}}function parseXML(t,e){var e=getElementsByTagName((new DOMParser).parseFromString(e,"application/xml"),"Worksheet");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"Table")).length&&(e=getElementsByTagName(e[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(e[0],"Cell"),e=>{o.push(toExportField(t,e.textContent||""))}),_xeUtils.default.arrayEach(e,(e,t)=>{if(t){let l={};t=getElementsByTagName(e,"Cell");_xeUtils.default.arrayEach(t,(e,t)=>{o[t]&&(l[o[t]]=e.textContent)}),r.push(l)}})),{fields:o,rows:r}}function handleImport(l,e,r){let{tableFullColumn:t,_importResolve:o,_importReject:a}=l,i={fields:[],rows:[]},s={},n={};t.forEach(e=>{var t=e.field,l=e.getTitle();t&&(s[t]=e),l&&(n[e.getTitle()]=e)});var d={fieldMaps:s,titleMaps:n};switch(r.type){case"csv":i=parseCsv(d,e);break;case"txt":i=parseTxt(d,e);break;case"html":i=parseHTML(d,e);break;case"xml":i=parseXML(d,e)}let{fields:c,rows:u}=i;c.some(e=>s[e]||n[e])?l.createData(u).then(e=>{let t;return"insert"!==r.mode&&"insertBottom"!==r.mode||(t=l.insertAt(e,-1)),t="insertTop"===r.mode?l.insert(e):l.reloadData(e),!1!==r.message&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[u.length]),status:"success"})),t.then(()=>{o&&o({status:!0})})}):!1!==r.message&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:getI18n("vxe.error.impFields"),status:"error"}),a)&&a({status:!1})}function handleFileImport(a,i,s){let n=a;var e=a.computeImportOpts;let{importMethod:d,afterImportMethod:t}=s,{type:c,filename:u}=(0,_utils.parseFile)(i);return d||_xeUtils.default.includes(_xeUtils.default.keys(e._typeMaps),c)?new Promise((t,l)=>{let e=e=>{t(e),a._importResolve=null,a._importReject=null},r=e=>{l(e),a._importResolve=null,a._importReject=null};if(a._importResolve=e,a._importReject=r,window.FileReader){let t=Object.assign({mode:"insertTop"},s,{type:c,filename:u});var o;t.remote?d?Promise.resolve(d({file:i,options:t,$table:a})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=n.tableFullColumn,a.preventEvent(null,"event.import",{file:i,options:t,columns:o},()=>{var e=new FileReader;e.onerror=()=>{(0,_log.errLog)("vxe.error.notType",[c]),r({status:!1})},e.onload=e=>{handleImport(a,e.target.result,t)},e.readAsText(i,t.encoding||"UTF-8")}))}else(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:s,$table:a})}).catch(e=>(t&&t({status:!1,options:s,$table:a}),Promise.reject(e))):(!1!==s.message&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:getI18n("vxe.error.notType",[c]),status:"error"})),Promise.reject({status:!1}))}function handleCloseExport(){return _ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve()}function handleFilterColumns(e,r,t){return t.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?r.id===e.id:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?r.id===t:e&&l?r.field===e&&r.type===l:e?r.field===e:!!l&&r.type===l)})}function handleFilterFields(e,t,l,r){return(!r||!_xeUtils.default.includes(r,t.field))&&(l?!!_xeUtils.default.includes(l,t.field):e.original?!!t.field:defaultFilterExportColumn(t))}function handleExportAndPrint(s,e,t){var l=s.$xeGrid,{treeConfig:r,showHeader:o,showFooter:a}=s,{initStore:i,isGroup:n,footerTableData:d,exportStore:c,exportParams:u}=s,{collectColumn:p,mergeBodyList:h,mergeFooterList:m}=s,x=s.computeExportOpts,g=s.computeCustomOpts,f=s.getCheckboxRecords(),v=l?l.computeProxyOpts:{},d=!!d.length,h=!(!h.length&&!m.length);let b=Object.assign({message:!0,isHeader:o,isTitle:o,isFooter:a,isColgroup:n,isMerge:h,useStyle:!0,current:"current",modes:(v.ajax&&v.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"])},e);m=b.types||_xeUtils.default.keys(x._typeMaps),o=b.modes||[];let _=g.checkMethod;a=p.slice(0);let{columns:y,excludeFields:$,includeFields:C}=b;v=m.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),e=o.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});_xeUtils.default.eachTree(a,(e,t,l,r,o)=>{var a=e.children&&0<e.children.length;let i=!1;i=y&&y.length?handleFilterColumns(b,e,y):$||C?handleFilterFields(b,e,C,$):e.visible&&(a||defaultFilterExportColumn(e)),e.checked=i,e.halfChecked=!1,e.disabled=o&&o.disabled||!!_&&!_({$table:s,column:e})}),Object.assign(c,{columns:a,typeList:v,modeList:e,hasFooter:d,hasMerge:h,hasTree:r,isPrint:t,hasColgroup:n,visible:!0}),Object.assign(u,{mode:f.length?"selected":"current"},b);let{filename:w,sheetName:T,mode:E,type:F}=u;return w&&(_xeUtils.default.isFunction(w)?u.filename=w({options:b,$table:s,$grid:l}):u.filename=""+w),T&&(_xeUtils.default.isFunction(T)?u.sheetName=T({options:b,$table:s,$grid:l}):u.sheetName=""+T),e.some(e=>e.value===E)||(u.mode=e[0].value),v.some(e=>e.value===F)||(u.type=v[0].value),i.export=!0,s.$nextTick()}let getConvertColumns=e=>{let t=[];return e.forEach(e=>{e.childNodes&&e.childNodes.length?(t.push(e),t.push(...getConvertColumns(e.childNodes))):t.push(e)}),t},convertToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l._level=e._level+1,t<l._level)&&(t=l._level),l.childNodes&&l.childNodes.length){let t=0;l.childNodes.forEach(e=>{r(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getConvertColumns(e).forEach(e=>{e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=t-e._level+1,l[e._level-1].push(e)}),l};var _default=exports.default={methods:{_exportData(e){let s=this;var t=s,l=s,r=s;let n=s.$xeGrid;var{treeConfig:t,showHeader:d,showFooter:c}=t,l=l.isGroup;let{tableFullColumn:a,afterFullData:o,afterTreeFullData:i,collectColumn:u,mergeBodyList:p,mergeFooterList:h}=r;var r=s.computeExportOpts,m=s.computeTreeOpts;let x=n?n.computeProxyOpts:{};var g=!(!p.length&&!h.length);let f=Object.assign({message:!0,isHeader:d,isTitle:d,isFooter:c,isColgroup:l,isMerge:g,useStyle:!0,current:"current",modes:(x.ajax&&x.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"]),download:!0,type:"csv"},r,e),{filename:v,sheetName:b,type:_,mode:y,columns:$,original:C,columnFilterMethod:w,beforeExportMethod:T,includeFields:E,excludeFields:F}=f,M=[],k=s.getCheckboxRecords(),U=(y=y||(k.length?"selected":"current"),!1),I=[],j=(I=$&&$.length?(U=!0,$):_xeUtils.default.searchTree(u,e=>{var t=e.children&&0<e.children.length;let l=!1;return l=$&&$.length?handleFilterColumns(f,e,$):F||E?handleFilterFields(f,e,E,F):e.visible&&(t||defaultFilterExportColumn(e))},{children:"children",mapChildren:"childNodes",original:!0}),Object.assign({},f,{filename:"",sheetName:""})),O=(U||w||(w=({column:e})=>(!F||!_xeUtils.default.includes(F,e.field))&&(E?!!_xeUtils.default.includes(E,e.field):C?!!e.field:defaultFilterExportColumn(e)),j.columnFilterMethod=w),M=I?(j._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(I,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=s.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=s.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=s.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!w||w({$table:s,column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(l?u:a,(e,t)=>e.visible&&(!w||w({$table:s,column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(M,e=>{e.children&&e.children.length||O.push(e)},{children:"childNodes"}),j.columns=O,j.colgroups=convertToRows(M),v&&(_xeUtils.default.isFunction(v)?j.filename=v({options:f,$table:s,$grid:n}):j.filename=""+v),j.filename||(j.filename=getI18n(j.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),b&&(_xeUtils.default.isFunction(b)?j.sheetName=b({options:f,$table:s,$grid:n}):j.sheetName=""+b),j.sheetName||(j.sheetName=document.title||""),!j.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(r._typeMaps),_))return(0,_log.errLog)("vxe.error.notType",[_]),["xlsx","pdf"].includes(_)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(j.print||T&&T({options:j,$table:s,$grid:n}),j.data)j._isCustomData=!0;else if(j.data=[],"selected"===y)-1<["html","pdf"].indexOf(_)&&t?j.data=_xeUtils.default.searchTree(s.getTableData().fullData,e=>-1<s.findRowIndexOf(k,e),Object.assign({},m,{data:"_row"})):j.data=k;else if("all"===y){if(n||(0,_log.errLog)("vxe.error.errProp",["all","mode=current,selected"]),n&&!j.remote){d=n;let e=n.computeProxyOpts;c=d.sortData;let{beforeQueryAll:t,afterQueryAll:r,ajax:l={}}=e,o=e.response||e.props||{};g=l.queryAll;let a=l.queryAllSuccess,i=l.queryAllError;if(g||(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),g){let l={$table:s,$grid:n,sort:c.length?c[0]:{},sorts:c,filters:d.filterData,form:d.formData,options:j};return Promise.resolve((t||g)(l)).then(e=>{var t=o.list;return j.data=(t?_xeUtils.default.isFunction(t)?t({data:e,$grid:n}):_xeUtils.default.get(e,t):e)||[],r&&r(l),a&&a(Object.assign(Object.assign({},l),{response:e})),handleExport(s,j)}).catch(e=>{i&&i(Object.assign(Object.assign({},l),{response:e}))})}}}else"current"===y&&(j.data=t?i:o);return handleExport(s,j)},_importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:this}),handleFileImport(this,e,t)},_importData(e){let t=this;var l=this.importOpts;let r=Object.assign({types:_xeUtils.default.keys(l._typeMaps)},l,e),{beforeImportMethod:o,afterImportMethod:a}=r;return o&&o({options:r,$table:this}),_ui.VxeUI.readFile(r).catch(e=>(a&&a({status:!1,options:r,$table:t}),Promise.reject(e))).then(e=>{e=e.file;return handleFileImport(t,e,r)})},_saveFile(e){return _ui.VxeUI.saveFile(e)},_readFile(e){return _ui.VxeUI.readFile(e)},_print(e){let l=this;var t=l.$xeGrid;let r=Object.assign({original:!1},this.printOpts,e,{type:"html",download:!1,remote:!1,print:!0});e=r.sheetName;let o="",a=(o=(o=e?_xeUtils.default.isFunction(e)?e({options:r,$table:l,$grid:t}):""+e:o)||document.title||"",r.beforePrintMethod),i=r.html||r.content;return new Promise((e,t)=>{_ui.VxeUI.print?i?e(_ui.VxeUI.print({title:o,html:i,customStyle:r.style,beforeMethod:a?({html:e})=>a({html:e,content:e,options:r,$table:l}):void 0})):e(l.exportData(r).then(({content:e})=>_ui.VxeUI.print({title:o,html:e,customStyle:r.style,beforeMethod:a?({html:e})=>a({html:e,content:e,options:r,$table:l}):void 0}))):t({status:!1})})},_getPrintHtml(e){var t=this.computePrintOpts,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return this.exportData(t).then(({content:e})=>({html:e}))},_closeImport(){return _ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_IMPORT_MODAL"):Promise.resolve()},_openImport(e){var{treeConfig:t,importConfig:l}=this;let{initStore:r,importStore:o,importParams:a}=this;var i=this.computeImportOpts,i=Object.assign({mode:"insertTop",message:!0,types:_xeUtils.default.keys(i._typeMaps),modes:["insertTop","covering"]},i,e),e=i.types||[],s=i.modes||[];!t?(l||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),t=e.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),l=s.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.import.modes."+e)}),Object.assign(o,{file:null,type:"",filename:"",modeList:l,typeList:t,visible:!0}),Object.assign(a,i),l.some(e=>e.value===a.mode)||(a.mode=l[0].value),r.import=!0):i.message&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.treeNotImp"),status:"error"})},_closeExport:handleCloseExport,_openExport(e){var t=this.computeExportOpts,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);return this.exportConfig||(0,_log.errLog)("vxe.error.reqProp",["export-config"]),handleExportAndPrint(this,t)},_closePrint:handleCloseExport,_openPrint(e){var t=this.computePrintOpts,t=Object.assign({message:!0},t,e);return this.printConfig||(0,_log.errLog)("vxe.error.reqProp",["print-config"]),handleExportAndPrint(this,t,!0)}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util2=require("./util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer}=_ui.VxeUI,htmlCellElem,csvBOM="\ufeff",enterSymbol="\r\n";function hasTreeChildren(e,t){e=e.computeTreeOpts,e=e.children||e.childrenField;return t[e]&&t[e].length}function getSeq(e,t,l,r,o,a){var i=e.computeSeqOpts.seqMethod||o.seqMethod;return i?i({$table:e,row:l,rowIndex:e.getRowIndex(l),$rowIndex:r,column:o,columnIndex:e.getColumnIndex(o),$columnIndex:a}):t}function defaultFilterExportColumn(e){return!!e.field||-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}let toStringValue=e=>(0,_utils.eqEmptyValue)(e)?"":""+e;function getBodyLabelData(h,m,x,e){let{isAllExpand:g,mode:f}=m;var t=h.treeConfig;let v=h.computeRadioOpts,b=h.computeCheckboxOpts;var l=h.computeTreeOpts;let _=h.computeColumnOpts;if(htmlCellElem=htmlCellElem||document.createElement("div"),t){t=l.children||l.childrenField;let c=[],u={},p={},i=(0,_util.createHandleGetRowId)(h).handleGetRowId;return _xeUtils.default.eachTree(e,(e,s,t,n,l,r)=>{let d=e._row||e;var o=i(d);if(!p[o]){e=l&&l._row?l._row:l,l=e?i(e):"";if(g||!e||u[l]&&h.isTreeExpandByRow(e)){var a=hasTreeChildren(h,d);let i={_row:d,_level:r.length-1,_hasChild:a,_expand:a&&h.isTreeExpandByRow(d)};x.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||_.exportMethod;if(o=(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)||_.exportMethod)l=o({$table:h,row:d,column:e,options:m});else switch(e.type){case"seq":var a=n.map((e,t)=>t%2==0?Number(e)+1:".").join("");l="all"===f?a:getSeq(h,a,d,s,e,t);break;case"checkbox":l=toBooleanValue(h.isCheckedByCheckboxRow(d)),i._checkboxLabel=b.labelField?_xeUtils.default.get(d,b.labelField):"",i._checkboxDisabled=b.checkMethod&&!b.checkMethod({$table:h,row:d});break;case"radio":l=toBooleanValue(h.isCheckedByRadioRow(d)),i._radioLabel=v.labelField?_xeUtils.default.get(d,v.labelField):"",i._radioDisabled=v.checkMethod&&!v.checkMethod({$table:h,row:d});break;default:m.original?l=(0,_util.getCellValue)(d,e):(l=h.getCellLabel(d,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=h.getCellElement(d,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}i[e.id]=toStringValue(l)}),p[o]=!0,l&&(u[l]=!0),c.push(Object.assign(i,d))}}},{children:t}),c}return e.map((i,s)=>{let n={_row:i};return x.forEach((e,t)=>{let l="";var r=e.editRender||e.cellRender;let o=e.exportMethod||_.exportMethod;if(o=!o&&r&&r.name&&(r=renderer.get(r.name))?r.tableExportMethod||r.exportMethod:o)l=o({$table:h,row:i,column:e,options:m});else switch(e.type){case"seq":var a=s+1;l="all"===f?a:getSeq(h,a,i,s,e,t);break;case"checkbox":l=toBooleanValue(h.isCheckedByCheckboxRow(i)),n._checkboxLabel=b.labelField?_xeUtils.default.get(i,b.labelField):"",n._checkboxDisabled=b.checkMethod&&!b.checkMethod({$table:h,row:i});break;case"radio":l=toBooleanValue(h.isCheckedByRadioRow(i)),n._radioLabel=v.labelField?_xeUtils.default.get(i,v.labelField):"",n._radioDisabled=v.checkMethod&&!v.checkMethod({$table:h,row:i});break;default:m.original?l=(0,_util.getCellValue)(i,e):(l=h.getCellLabel(i,e),"html"===e.type?(htmlCellElem.innerHTML=l,l=htmlCellElem.innerText.trim()):(a=h.getCellElement(i,e))&&!(0,_dom.hasClass)(a,"is--progress")&&(l=a.innerText.trim()))}n[e.id]=toStringValue(l)}),n})}function getExportData(l,e){let{columns:t,dataFilterMethod:r}=e,o=e.data;return r&&(o=o.filter((e,t)=>r({$table:l,row:e,$rowIndex:t}))),getBodyLabelData(l,e,t,o)}function getBooleanValue(e){return"TRUE"===e||"true"===e||!0===e}function getHeaderTitle(e,t,l){var r=e.computeColumnOpts,r=l.headerExportMethod||r.headerExportMethod;return r?r({column:l,options:t,$table:e}):(t.isTitle?l.getTitle():l.field)||""}function getFooterCellValue(e,t,l,r){var o=e.computeColumnOpts,a=r.editRender||r.cellRender;let i=r.footerExportMethod;i=(i=!i&&a&&a.name&&(a=renderer.get(a.name))?a.tableFooterExportMethod||a.footerExportMethod||a.footerCellExportMethod:i)||o.footerExportMethod;a=e.getVTColumnIndex(r);return i?i({$table:e,items:l,itemIndex:a,row:l,_columnIndex:a,column:r,options:t}):_xeUtils.default.isArray(l)?_xeUtils.default.toValueString(l[a]):_xeUtils.default.get(l,r.field)}function getFooterData(l,e,t){let r=e.footerFilterMethod;return r?t.filter((e,t)=>r({$table:l,items:e,$rowIndex:t})):t}function getCsvCellTypeLabel(e,t){if(t){if("seq"===e.type)return` `+t;switch(e.cellType){case"string":if(isNaN(t))break;return` `+t;case"number":break;default:if(12<=t.length&&!isNaN(t))return` `+t}}return t}function toTxtCellLabel(e){return/[",\s\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function toCsv(l,r,e,t){var o=l;let a=csvBOM;return r.isHeader&&(a+=e.map(e=>toTxtCellLabel(getHeaderTitle(l,r,e))).join(",")+enterSymbol),t.forEach(t=>{a+=e.map(e=>toTxtCellLabel(getCsvCellTypeLabel(e,t[e.id]))).join(",")+enterSymbol}),r.isFooter&&(t=o.footerTableData,getFooterData(l,r,t).forEach(t=>{a+=e.map(e=>toTxtCellLabel(getFooterCellValue(l,r,t,e))).join(",")+enterSymbol})),a}function toTxt(l,r,e,t){var o=l;let a="";return r.isHeader&&(a+=e.map(e=>toTxtCellLabel(getHeaderTitle(l,r,e))).join("\t")+enterSymbol),t.forEach(t=>{a+=e.map(e=>toTxtCellLabel(t[e.id])).join("\t")+enterSymbol}),r.isFooter&&(t=o.footerTableData,getFooterData(l,r,t).forEach(t=>{a+=e.map(e=>toTxtCellLabel(getFooterCellValue(l,r,t,e))).join("\t")+enterSymbol})),a}function hasEllipsis(e,t,l,r){t=t[l],l=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?r:t;let o="title"===l||(!0===l||"tooltip"===l)||"ellipsis"===l;var{scrollXLoad:r,scrollYLoad:t}=e;return o=r||t?o||!0:o}function toHtml(d,s,e,t){var l=d;let{id:c,border:r,treeConfig:o,headerAlign:n,align:u,footerAlign:a,showOverflow:p,showHeaderOverflow:h}=d,{isAllSelected:m,isIndeterminate:i}=l,x=d.mergeBodyCellMaps,g=d.computeTreeOpts,{print:f,isHeader:v,isFooter:b,isColgroup:_,isMerge:$,colgroups:y,original:C}=s,w="check-all",T=[`<table class="${["vxe-table","border--"+toTableBorder(r),f?"is--print":"",v?"is--header":""].filter(e=>e).join(" ")}" border="0" cellspacing="0" cellpadding="0">`,`<colgroup>${e.map(e=>`<col style="width:${e.renderWidth}px">`).join("")}</colgroup>`];v&&(T.push("<thead>"),_&&!C?y.forEach(e=>{T.push(`<tr>${e.map(t=>{var e=t.headerAlign||t.align||n||u,l=hasEllipsis(d,t,"showHeaderOverflow",h)?["col--ellipsis"]:[],r=getHeaderTitle(d,s,t);let o=0,a=0;_xeUtils.default.eachTree([t],e=>{e.childNodes&&t.childNodes.length||a++,o+=e.renderWidth},{children:"childNodes"});var i=o-a;return e&&l.push("col--"+e),"checkbox"===t.type?`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}"><div ${f?"":`style="width: ${i}px"`}><input type="checkbox" class="${w}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" colspan="${t._colSpan}" rowspan="${t._rowSpan}" title="${r}"><div ${f?"":`style="width: ${i}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`)}):T.push(`<tr>${e.map(e=>{var t=e.headerAlign||e.align||n||u,l=hasEllipsis(d,e,"showHeaderOverflow",h)?["col--ellipsis"]:[],r=getHeaderTitle(d,s,e);return t&&l.push("col--"+t),"checkbox"===e.type?`<th class="${l.join(" ")}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" class="${w}" ${m?"checked":""}><span>${r}</span></div></th>`:`<th class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><span>${(0,_utils.formatText)(r,!0)}</span></div></th>`}).join("")}</tr>`),T.push("</thead>")),t.length&&(T.push("<tbody>"),o?t.forEach(o=>{T.push("<tr>"+e.map(t=>{var e=t.align||u,l=hasEllipsis(d,t,"showOverflow",p)?["col--ellipsis"]:[],r=o[t.id];if(e&&l.push("col--"+e),t.treeNode){let e="";return o._hasChild&&(e=`<i class="${o._expand?"vxe-table--tree-fold-icon":"vxe-table--tree-unfold-icon"}"></i>`),l.push("vxe-table--tree-node"),"radio"===t.type?`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*g.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${c}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._radioLabel}</span></div></div></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*g.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._checkboxLabel}</span></div></div></div></td>`:`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><div class="vxe-table--tree-node-wrapper" style="padding-left: ${o._level*g.indent}px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${r}</div></div></div></td>`}return"radio"===t.type?`<td class="${l.join(" ")}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><input type="radio" name="radio_${c}" ${o._radioDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._radioLabel}</span></div></td>`:"checkbox"===t.type?`<td class="${l.join(" ")}"><div ${f?"":`style="width: ${t.renderWidth}px"`}><input type="checkbox" ${o._checkboxDisabled?"disabled ":""}${getBooleanValue(r)?"checked":""}><span>${o._checkboxLabel}</span></div></td>`:`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${t.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")+"</tr>")}):t.forEach(n=>{T.push("<tr>"+e.map(e=>{var t=e.id,l=e.align||u,r=hasEllipsis(d,e,"showOverflow",p)?["col--ellipsis"]:[],t=n[t];let o=1,a=1;if($){var i=d.getVTRowIndex(n._row),s=d.getVTColumnIndex(e),i=x[i+":"+s];if(i){var{rowspan:s,colspan:i}=i;if(!s||!i)return"";1<s&&(o=s),1<i&&(a=i)}}return l&&r.push("col--"+l),"radio"===e.type?`<td class="${r.join(" ")}" rowspan="${o}" colspan="${a}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><input type="radio" name="radio_${c}" ${n._radioDisabled?"disabled ":""}${getBooleanValue(t)?"checked":""}><span>${n._radioLabel}</span></div></td>`:"checkbox"===e.type?`<td class="${r.join(" ")}" rowspan="${o}" colspan="${a}"><div ${f?"":`style="width: ${e.renderWidth}px"`}><input type="checkbox" ${n._checkboxDisabled?"disabled ":""}${getBooleanValue(t)?"checked":""}><span>${n._checkboxLabel}</span></div></td>`:`<td class="${r.join(" ")}" rowspan="${o}" colspan="${a}" title="${t}"><div ${f?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(t,!0)}</div></td>`}).join("")+"</tr>")}),T.push("</tbody>")),b&&(t=l.footerTableData,(l=getFooterData(d,s,t)).length)&&(T.push("<tfoot>"),l.forEach(o=>{T.push(`<tr>${e.map(e=>{var t=e.footerAlign||e.align||a||u,l=hasEllipsis(d,e,"showOverflow",p)?["col--ellipsis"]:[],r=getFooterCellValue(d,s,o,e);return t&&l.push("col--"+t),`<td class="${l.join(" ")}" title="${r}"><div ${f?"":`style="width: ${e.renderWidth}px"`}>${(0,_utils.formatText)(r,!0)}</div></td>`}).join("")}</tr>`)}),T.push("</tfoot>"));t=!m&&i?`<script>(function(){var a=document.querySelector(".${w}");if(a){a.indeterminate=true}})()</script>`:"";return T.push("</table>",t),f?T.join(""):(0,_util2.createHtmlPage)(s,T.join(""))}function toXML(l,r,e,t){var o=l;let a=['<?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="${r.sheetName}">`,"<Table>",e.map(e=>`<Column ss:Width="${e.renderWidth}"/>`).join("")].join("");return r.isHeader&&(a+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${getHeaderTitle(l,r,e)}</Data></Cell>`).join("")}</Row>`),t.forEach(t=>{a+="<Row>"+e.map(e=>`<Cell><Data ss:Type="String">${t[e.id]}</Data></Cell>`).join("")+"</Row>"}),r.isFooter&&(t=o.footerTableData,getFooterData(l,r,t).forEach(t=>{a+=`<Row>${e.map(e=>`<Cell><Data ss:Type="String">${getFooterCellValue(l,r,t,e)}</Data></Cell>`).join("")}</Row>`})),a+"</Table></Worksheet></Workbook>"}function getContent(e,t,l,r){if(l.length)switch(t.type){case"csv":return toCsv(e,t,l,r);case"txt":return toTxt(e,t,l,r);case"html":return toHtml(e,t,l,r);case"xml":return toXML(e,t,l,r)}return""}function downloadFile(e,t,l){var{filename:r,type:o,download:a}=t;if(!a)return a=(0,_util2.getExportBlobByContent)(l,t),Promise.resolve({type:o,content:l,blob:a});_ui.VxeUI.saveFile&&_ui.VxeUI.saveFile({filename:r,type:o,content:l}).then(()=>{!1!==t.message&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:getI18n("vxe.table.expSuccess"),status:"success"})})}function clearColumnConvert(e){_xeUtils.default.eachTree(e,e=>{delete e._level,delete e._colSpan,delete e._rowSpan,delete e._children,delete e.childNodes},{children:"children"})}function handleExport(l,r){let o=l.$xeGrid,{remote:a,columns:i,colgroups:s,exportMethod:n,afterExportMethod:t}=r;return new Promise(t=>{if(a){var e={options:r,$table:l,$grid:o};t(n?n(e):e)}else{let e=getExportData(l,r);t(l.preventEvent(null,"event.export",{options:r,columns:i,colgroups:s,datas:e},()=>downloadFile(l,r,getContent(l,r,i,e))))}}).then(e=>(clearColumnConvert(i),r.print||t&&t({status:!0,options:r,$table:l,$grid:o}),Object.assign({status:!0},e))).catch(()=>{clearColumnConvert(i),r.print||t&&t({status:!1,options:r,$table:l,$grid:o});return Promise.reject({status:!1})})}function getElementsByTagName(e,t){return e.getElementsByTagName(t)}function getTxtCellKey(e){return`#${e}@`+_xeUtils.default.uniqueId()}function replaceTxtCell(e,t){return e.replace(/#\d+@\d+/g,e=>_xeUtils.default.hasOwnProp(t,e)?t[e]:e)}function getTxtCellValue(e,t){return replaceTxtCell(e,t).replace(/^"+$/g,e=>'"'.repeat(Math.ceil(e.length/2)))}function toExportField(e,t){var{fieldMaps:e,titleMaps:l}=e;return e[t]||(e=l[t])&&e.field&&(t=e.field),t}function parseCsvAndTxt(t,e,a){e=e.split(enterSymbol);let i=[],s=[];if(e.length){let r={},o=Date.now();e.forEach(e=>{if(e){let l={};e=(e=e.replace(/("")|(\n)/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=t?'"':"\n",l}).replace(/"(.*?)"/g,(e,t)=>{var l=getTxtCellKey(o);return r[l]=replaceTxtCell(t,r),l})).split(a);s.length?(e.forEach((e,t)=>{t<s.length&&(l[s[t]]=getTxtCellValue(e.trim(),r))}),i.push(l)):s=e.map(e=>toExportField(t,getTxtCellValue(e.trim(),r)))}})}return{fields:s,rows:i}}function parseCsv(e,t){return parseCsvAndTxt(e,t,",")}function parseTxt(e,t){return parseCsvAndTxt(e,t,"\t")}function parseHTML(t,e){var l,e=getElementsByTagName((new DOMParser).parseFromString(e,"text/html"),"body");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"table")).length&&(l=getElementsByTagName(e[0],"thead")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{_xeUtils.default.arrayEach(getElementsByTagName(e,"th"),e=>{o.push(toExportField(t,e.textContent||""))})}),(l=getElementsByTagName(e[0],"tbody")).length)&&_xeUtils.default.arrayEach(getElementsByTagName(l[0],"tr"),e=>{let l={};_xeUtils.default.arrayEach(getElementsByTagName(e,"td"),(e,t)=>{o[t]&&(l[o[t]]=e.textContent||"")}),r.push(l)}),{fields:o,rows:r}}function parseXML(t,e){var e=getElementsByTagName((new DOMParser).parseFromString(e,"application/xml"),"Worksheet");let r=[],o=[];return e.length&&(e=getElementsByTagName(e[0],"Table")).length&&(e=getElementsByTagName(e[0],"Row")).length&&(_xeUtils.default.arrayEach(getElementsByTagName(e[0],"Cell"),e=>{o.push(toExportField(t,e.textContent||""))}),_xeUtils.default.arrayEach(e,(e,t)=>{if(t){let l={};t=getElementsByTagName(e,"Cell");_xeUtils.default.arrayEach(t,(e,t)=>{o[t]&&(l[o[t]]=e.textContent)}),r.push(l)}})),{fields:o,rows:r}}function handleImport(l,e,r){let{tableFullColumn:t,_importResolve:o,_importReject:a}=l,i={fields:[],rows:[]},s={},n={};t.forEach(e=>{var t=e.field,l=e.getTitle();t&&(s[t]=e),l&&(n[e.getTitle()]=e)});var d={fieldMaps:s,titleMaps:n};switch(r.type){case"csv":i=parseCsv(d,e);break;case"txt":i=parseTxt(d,e);break;case"html":i=parseHTML(d,e);break;case"xml":i=parseXML(d,e)}let{fields:c,rows:u}=i;c.some(e=>s[e]||n[e])?l.createData(u).then(e=>{let t;return"insert"!==r.mode&&"insertBottom"!==r.mode||(t=l.insertAt(e,-1)),t="insertTop"===r.mode?l.insert(e):l.reloadData(e),!1!==r.message&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:getI18n("vxe.table.impSuccess",[u.length]),status:"success"})),t.then(()=>{o&&o({status:!0})})}):!1!==r.message&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:getI18n("vxe.error.impFields"),status:"error"}),a)&&a({status:!1})}function handleFileImport(a,i,s){let n=a;var e=a.computeImportOpts;let{importMethod:d,afterImportMethod:t}=s,{type:c,filename:u}=(0,_utils.parseFile)(i);return d||_xeUtils.default.includes(_xeUtils.default.keys(e._typeMaps),c)?new Promise((t,l)=>{let e=e=>{t(e),a._importResolve=null,a._importReject=null},r=e=>{l(e),a._importResolve=null,a._importReject=null};if(a._importResolve=e,a._importReject=r,window.FileReader){let t=Object.assign({mode:"insertTop"},s,{type:c,filename:u});var o;t.remote?d?Promise.resolve(d({file:i,options:t,$table:a})).then(()=>{e({status:!0})}).catch(()=>{e({status:!0})}):e({status:!0}):(o=n.tableFullColumn,a.preventEvent(null,"event.import",{file:i,options:t,columns:o},()=>{var e=new FileReader;e.onerror=()=>{(0,_log.errLog)("vxe.error.notType",[c]),r({status:!1})},e.onload=e=>{handleImport(a,e.target.result,t)},e.readAsText(i,t.encoding||"UTF-8")}))}else(0,_log.errLog)("vxe.error.notExp"),e({status:!0})}).then(()=>{t&&t({status:!0,options:s,$table:a})}).catch(e=>(t&&t({status:!1,options:s,$table:a}),Promise.reject(e))):(!1!==s.message&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:getI18n("vxe.error.notType",[c]),status:"error"})),Promise.reject({status:!1}))}function handleCloseExport(){return _ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_EXPORT_MODAL"):Promise.resolve()}function handleFilterColumns(e,r,t){return t.some(e=>{var t,l;return(0,_util.isColumnInfo)(e)?r.id===e.id:_xeUtils.default.isString(e)?r.field===e:(t=e.id||e.colId,l=e.type,e=e.field,t?r.id===t:e&&l?r.field===e&&r.type===l:e?r.field===e:!!l&&r.type===l)})}function handleFilterFields(e,t,l,r){return(!r||!_xeUtils.default.includes(r,t.field))&&(l?!!_xeUtils.default.includes(l,t.field):e.original?!!t.field:defaultFilterExportColumn(t))}function handleExportAndPrint(s,e,t){var l=s.$xeGrid,{treeConfig:r,showHeader:o,showFooter:a}=s,{initStore:i,isGroup:n,footerTableData:d,exportStore:c,exportParams:u}=s,{collectColumn:p,mergeBodyList:h,mergeFooterList:m}=s,x=s.computeExportOpts,g=s.computeCustomOpts,f=s.getCheckboxRecords(),v=l?l.computeProxyOpts:{},d=!!d.length,h=!(!h.length&&!m.length);let b=Object.assign({message:!0,isHeader:o,isTitle:o,isFooter:a,isColgroup:n,isMerge:h,useStyle:!0,current:"current",modes:(v.ajax&&v.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"])},e);m=b.types||_xeUtils.default.keys(x._typeMaps),o=b.modes||[];let _=g.checkMethod;a=p.slice(0);let{columns:$,excludeFields:y,includeFields:C}=b;v=m.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),e=o.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.export.modes."+e)});_xeUtils.default.eachTree(a,(e,t,l,r,o)=>{var a=e.children&&0<e.children.length;let i=!1;i=$&&$.length?handleFilterColumns(b,e,$):y||C?handleFilterFields(b,e,C,y):e.visible&&(a||defaultFilterExportColumn(e)),e.checked=i,e.halfChecked=!1,e.disabled=o&&o.disabled||!!_&&!_({$table:s,column:e})}),Object.assign(c,{columns:a,typeList:v,modeList:e,hasFooter:d,hasMerge:h,hasTree:r,isPrint:t,hasColgroup:n,visible:!0}),Object.assign(u,{mode:f.length?"selected":"current"},b);let{filename:w,sheetName:T,mode:E,type:F}=u;return w&&(_xeUtils.default.isFunction(w)?u.filename=w({options:b,$table:s,$grid:l}):u.filename=""+w),T&&(_xeUtils.default.isFunction(T)?u.sheetName=T({options:b,$table:s,$grid:l}):u.sheetName=""+T),e.some(e=>e.value===E)||(u.mode=e[0].value),v.some(e=>e.value===F)||(u.type=v[0].value),i.export=!0,s.$nextTick()}let getConvertColumns=e=>{let t=[];return e.forEach(e=>{e.childNodes&&e.childNodes.length?(t.push(e),t.push(...getConvertColumns(e.childNodes))):t.push(e)}),t},convertToRows=e=>{let t=1,r=(l,e)=>{if(e&&(l._level=e._level+1,t<l._level)&&(t=l._level),l.childNodes&&l.childNodes.length){let t=0;l.childNodes.forEach(e=>{r(e,l),t+=e._colSpan}),l._colSpan=t}else l._colSpan=1},l=(e.forEach(e=>{e._level=1,r(e)}),[]);for(let e=0;e<t;e++)l.push([]);return getConvertColumns(e).forEach(e=>{e.childNodes&&e.childNodes.length?e._rowSpan=1:e._rowSpan=t-e._level+1,l[e._level-1].push(e)}),l};var _default=exports.default={methods:{_exportData(e){let s=this;var t=s,l=s,r=s;let n=s.$xeGrid,d=s.$xeGantt;var{treeConfig:t,showHeader:c,showFooter:u}=t,l=l.isGroup;let{tableFullColumn:a,afterFullData:o,afterTreeFullData:i,collectColumn:p,mergeBodyList:h,mergeFooterList:m}=r;var r=s.computeExportOpts,x=s.computeTreeOpts;let g=n?n.computeProxyOpts:{};var f=!(!h.length&&!m.length);let v=Object.assign({message:!0,isHeader:c,isTitle:c,isFooter:u,isColgroup:l,isMerge:f,useStyle:!0,current:"current",modes:(g.ajax&&g.ajax.queryAll?["all"]:[]).concat(["current","selected","empty"]),download:!0,type:"csv"},r,e),{filename:b,sheetName:_,type:$,mode:y,columns:C,original:w,columnFilterMethod:T,beforeExportMethod:E,includeFields:F,excludeFields:M}=v,k=[],U=s.getCheckboxRecords(),I=(y=y||(U.length?"selected":"current"),!1),j=[],O=(j=C&&C.length?(I=!0,C):_xeUtils.default.searchTree(p,e=>{var t=e.children&&0<e.children.length;let l=!1;return l=C&&C.length?handleFilterColumns(v,e,C):M||F?handleFilterFields(v,e,F,M):e.visible&&(t||defaultFilterExportColumn(e))},{children:"children",mapChildren:"childNodes",original:!0}),Object.assign({},v,{filename:"",sheetName:""})),L=(I||T||(T=({column:e})=>(!M||!_xeUtils.default.includes(M,e.field))&&(F?!!_xeUtils.default.includes(F,e.field):w?!!e.field:defaultFilterExportColumn(e)),O.columnFilterMethod=T),k=j?(O._isCustomColumn=!0,_xeUtils.default.searchTree(_xeUtils.default.mapTree(j,e=>{let r;if(e){if((0,_util.isColumnInfo)(e))r=e;else if(_xeUtils.default.isString(e))r=s.getColumnByField(e);else{var o=e.id||e.colId;let t=e.type,l=e.field;o?r=s.getColumnById(o):l&&t?r=a.find(e=>e.field===l&&e.type===t):l?r=s.getColumnByField(l):t&&(r=a.find(e=>e.type===t))}return r||{}}},{children:"childNodes",mapChildren:"_children"}),(e,t)=>(0,_util.isColumnInfo)(e)&&(!T||T({$table:s,column:e,$columnIndex:t})),{children:"_children",mapChildren:"childNodes",original:!0})):_xeUtils.default.searchTree(l?p:a,(e,t)=>e.visible&&(!T||T({$table:s,column:e,$columnIndex:t})),{children:"children",mapChildren:"childNodes",original:!0}),[]);if(_xeUtils.default.eachTree(k,e=>{e.children&&e.children.length||L.push(e)},{children:"childNodes"}),O.columns=L,O.colgroups=convertToRows(k),b&&(_xeUtils.default.isFunction(b)?O.filename=b({options:v,$table:s,$grid:n}):O.filename=""+b),O.filename||(O.filename=getI18n(O.original?"vxe.table.expOriginFilename":"vxe.table.expFilename",[_xeUtils.default.toDateString(Date.now(),"yyyyMMddHHmmss")])),_&&(_xeUtils.default.isFunction(_)?O.sheetName=_({options:v,$table:s,$grid:n}):O.sheetName=""+_),O.sheetName||(O.sheetName=document.title||""),!O.exportMethod&&!_xeUtils.default.includes(_xeUtils.default.keys(r._typeMaps),$))return(0,_log.errLog)("vxe.error.notType",[$]),["xlsx","pdf"].includes($)&&(0,_log.warnLog)("vxe.error.reqPlugin",[4,"plugin-export-xlsx"]),Promise.reject({status:!1});if(O.print||E&&E({options:O,$table:s,$grid:n}),O.data)O._isCustomData=!0;else if(O.data=[],"selected"===y)-1<["html","pdf"].indexOf($)&&t?O.data=_xeUtils.default.searchTree(s.getTableData().fullData,e=>-1<s.findRowIndexOf(U,e),Object.assign({},x,{data:"_row"})):O.data=U;else if("all"===y){if(n||(0,_log.errLog)("vxe.error.errProp",["all","mode=current,selected"]),n&&!O.remote){c=n;let e=n.computeProxyOpts;u=c.sortData;let{beforeQueryAll:t,afterQueryAll:r,ajax:l={}}=e,o=e.response||e.props||{};f=l.queryAll;let a=l.queryAllSuccess,i=l.queryAllError;if(f||(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.queryAll"]),f){let l={$table:s,$grid:n,$gantt:d,sort:u.length?u[0]:{},sorts:u,filters:c.filterData,form:c.formData,options:O};return Promise.resolve((t||f)(l)).then(e=>{var t=o.list;return O.data=(t?_xeUtils.default.isFunction(t)?t({data:e,$table:s,$grid:n,$gantt:d}):_xeUtils.default.get(e,t):e)||[],r&&r(l),a&&a(Object.assign(Object.assign({},l),{response:e})),handleExport(s,O)}).catch(e=>{i&&i(Object.assign(Object.assign({},l),{response:e}))})}}}else"current"===y&&(O.data=t?i:o);return handleExport(s,O)},_importByFile(e,t){var t=Object.assign({},t),l=t.beforeImportMethod;return l&&l({options:t,$table:this}),handleFileImport(this,e,t)},_importData(e){let t=this;var l=this.importOpts;let r=Object.assign({types:_xeUtils.default.keys(l._typeMaps)},l,e),{beforeImportMethod:o,afterImportMethod:a}=r;return o&&o({options:r,$table:this}),_ui.VxeUI.readFile(r).catch(e=>(a&&a({status:!1,options:r,$table:t}),Promise.reject(e))).then(e=>{e=e.file;return handleFileImport(t,e,r)})},_saveFile(e){return _ui.VxeUI.saveFile(e)},_readFile(e){return _ui.VxeUI.readFile(e)},_print(e){let l=this;var t=l.$xeGrid;let r=Object.assign({original:!1},this.printOpts,e,{type:"html",download:!1,remote:!1,print:!0});e=r.sheetName;let o="",a=(o=(o=e?_xeUtils.default.isFunction(e)?e({options:r,$table:l,$grid:t}):""+e:o)||document.title||"",r.beforePrintMethod),i=r.html||r.content;return new Promise((e,t)=>{_ui.VxeUI.print?i?e(_ui.VxeUI.print({title:o,html:i,customStyle:r.style,beforeMethod:a?({html:e})=>a({html:e,content:e,options:r,$table:l}):void 0})):e(l.exportData(r).then(({content:e})=>_ui.VxeUI.print({title:o,html:e,customStyle:r.style,beforeMethod:a?({html:e})=>a({html:e,content:e,options:r,$table:l}):void 0}))):t({status:!1})})},_getPrintHtml(e){var t=this.computePrintOpts,t=Object.assign({original:!1},t,e,{type:"html",download:!1,remote:!1,print:!0});return this.exportData(t).then(({content:e})=>({html:e}))},_closeImport(){return _ui.VxeUI.modal?_ui.VxeUI.modal.close("VXE_IMPORT_MODAL"):Promise.resolve()},_openImport(e){var{treeConfig:t,importConfig:l}=this;let{initStore:r,importStore:o,importParams:a}=this;var i=this.computeImportOpts,i=Object.assign({mode:"insertTop",message:!0,types:_xeUtils.default.keys(i._typeMaps),modes:["insertTop","covering"]},i,e),e=i.types||[],s=i.modes||[];!t?(l||(0,_log.errLog)("vxe.error.reqProp",["import-config"]),t=e.map(e=>({value:e,label:getI18n("vxe.export.types."+e)})),l=s.map(e=>e&&e.value?{value:e.value,label:e.label||e.value}:{value:e,label:getI18n("vxe.import.modes."+e)}),Object.assign(o,{file:null,type:"",filename:"",modeList:l,typeList:t,visible:!0}),Object.assign(a,i),l.some(e=>e.value===a.mode)||(a.mode=l[0].value),r.import=!0):i.message&&_ui.VxeUI.modal.message({content:getI18n("vxe.error.treeNotImp"),status:"error"})},_closeExport:handleCloseExport,_openExport(e){var t=this.computeExportOpts,t=Object.assign({message:!0,types:_xeUtils.default.keys(t._typeMaps)},t,e);return this.exportConfig||(0,_log.errLog)("vxe.error.reqProp",["export-config"]),handleExportAndPrint(this,t)},_closePrint:handleCloseExport,_openPrint(e){var t=this.computePrintOpts,t=Object.assign({message:!0},t,e);return this.printConfig||(0,_log.errLog)("vxe.error.reqProp",["print-config"]),handleExportAndPrint(this,t,!0)}}};
@@ -1235,24 +1235,25 @@ function updateStyle($xeTable) {
1235
1235
  editStore,
1236
1236
  isAllOverflow,
1237
1237
  expandColumn,
1238
- isColLoading
1238
+ isColLoading,
1239
+ tHeaderHeight,
1240
+ tFooterHeight
1239
1241
  } = reactData;
1240
1242
  const {
1241
1243
  visibleColumn,
1242
1244
  tableHeight,
1243
- headerHeight,
1244
- footerHeight,
1245
1245
  elemStore,
1246
1246
  customHeight,
1247
1247
  customMinHeight,
1248
1248
  customMaxHeight
1249
1249
  } = internalData;
1250
+ const $xeGanttView = internalData.xeGanttView;
1250
1251
  const el = $xeTable.$refs.refElem;
1251
- if (!el) {
1252
+ if (!el || !el.clientHeight) {
1252
1253
  return;
1253
1254
  }
1254
1255
  const containerList = ['main', 'left', 'right'];
1255
- const osbWidth = overflowY ? scrollbarWidth : 0;
1256
+ let osbWidth = overflowY ? scrollbarWidth : 0;
1256
1257
  const osbHeight = overflowX ? scrollbarHeight : 0;
1257
1258
  const emptyPlaceholderElem = $xeTable.$refs.refEmptyPlaceholder;
1258
1259
  const mouseOpts = $xeTable.computeMouseOpts;
@@ -1260,36 +1261,45 @@ function updateStyle($xeTable) {
1260
1261
  const bodyWrapperElem = (0, _util.getRefElem)(elemStore['main-body-wrapper']);
1261
1262
  const bodyTableElem = (0, _util.getRefElem)(elemStore['main-body-table']);
1262
1263
  if (emptyPlaceholderElem) {
1263
- emptyPlaceholderElem.style.top = `${headerHeight}px`;
1264
+ emptyPlaceholderElem.style.top = `${tHeaderHeight}px`;
1264
1265
  emptyPlaceholderElem.style.height = bodyWrapperElem ? `${bodyWrapperElem.offsetHeight - osbHeight}px` : '';
1265
1266
  }
1266
- let bodyHeight = 0;
1267
+ const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
1268
+ const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
1269
+ const xScrollbarVisible = overflowX ? 'visible' : 'hidden';
1270
+ let yScrollbarVisible = overflowY ? 'visible' : 'hidden';
1271
+ if ($xeGanttView) {
1272
+ if (!scrollbarYToLeft) {
1273
+ osbWidth = 0;
1274
+ yScrollbarVisible = 'hidden';
1275
+ }
1276
+ }
1277
+ let tbHeight = 0;
1267
1278
  let bodyMaxHeight = 0;
1268
- const bodyMinHeight = customMinHeight - headerHeight - footerHeight - osbHeight;
1279
+ const bodyMinHeight = customMinHeight - tHeaderHeight - tFooterHeight - osbHeight;
1269
1280
  if (customMaxHeight) {
1270
- bodyMaxHeight = Math.max(bodyMinHeight, customMaxHeight - headerHeight - footerHeight - osbHeight);
1281
+ bodyMaxHeight = Math.max(bodyMinHeight, customMaxHeight - tHeaderHeight - tFooterHeight - osbHeight);
1271
1282
  }
1272
1283
  if (customHeight) {
1273
- bodyHeight = customHeight - headerHeight - footerHeight - osbHeight;
1284
+ tbHeight = customHeight - tHeaderHeight - tFooterHeight - osbHeight;
1274
1285
  }
1275
- if (!bodyHeight) {
1286
+ if (!tbHeight) {
1276
1287
  if (bodyTableElem) {
1277
- bodyHeight = bodyTableElem.clientHeight;
1288
+ tbHeight = bodyTableElem.clientHeight;
1278
1289
  }
1279
1290
  }
1280
- if (bodyHeight) {
1291
+ if (tbHeight) {
1281
1292
  if (bodyMaxHeight) {
1282
- bodyHeight = Math.min(bodyMaxHeight, bodyHeight);
1293
+ tbHeight = Math.min(bodyMaxHeight, tbHeight);
1283
1294
  }
1284
- bodyHeight = Math.max(bodyMinHeight, bodyHeight);
1295
+ tbHeight = Math.max(bodyMinHeight, tbHeight);
1285
1296
  }
1286
- const scrollbarXToTop = $xeTable.$refs.computeScrollbarXToTop;
1287
1297
  const xLeftCornerEl = $xeTable.$refs.refScrollXLeftCornerElem;
1288
1298
  const xRightCornerEl = $xeTable.$refs.refScrollXRightCornerElem;
1289
1299
  const scrollXVirtualEl = $xeTable.$refs.refScrollXVirtualElem;
1290
1300
  if (scrollXVirtualEl) {
1291
1301
  scrollXVirtualEl.style.height = `${osbHeight}px`;
1292
- scrollXVirtualEl.style.visibility = overflowX ? 'visible' : 'hidden';
1302
+ scrollXVirtualEl.style.visibility = xScrollbarVisible;
1293
1303
  }
1294
1304
  const xWrapperEl = $xeTable.$refs.refScrollXWrapperElem;
1295
1305
  if (xWrapperEl) {
@@ -1307,30 +1317,31 @@ function updateStyle($xeTable) {
1307
1317
  const scrollYVirtualEl = $xeTable.$refs.refScrollYVirtualElem;
1308
1318
  if (scrollYVirtualEl) {
1309
1319
  scrollYVirtualEl.style.width = `${osbWidth}px`;
1310
- scrollYVirtualEl.style.height = `${bodyHeight + headerHeight + footerHeight}px`;
1311
- scrollYVirtualEl.style.visibility = overflowY ? 'visible' : 'hidden';
1320
+ scrollYVirtualEl.style.height = `${tbHeight + tHeaderHeight + tFooterHeight}px`;
1321
+ scrollYVirtualEl.style.visibility = yScrollbarVisible;
1312
1322
  }
1313
1323
  const yTopCornerEl = $xeTable.$refs.refScrollYTopCornerElem;
1314
1324
  if (yTopCornerEl) {
1315
- yTopCornerEl.style.height = `${headerHeight}px`;
1316
- yTopCornerEl.style.display = overflowY && headerHeight ? 'block' : '';
1325
+ yTopCornerEl.style.height = `${tHeaderHeight}px`;
1326
+ yTopCornerEl.style.display = overflowY && tHeaderHeight ? 'block' : '';
1317
1327
  }
1318
1328
  const yWrapperEl = $xeTable.$refs.refScrollYWrapperElem;
1319
1329
  if (yWrapperEl) {
1320
- yWrapperEl.style.height = `${bodyHeight}px`;
1321
- yWrapperEl.style.top = `${headerHeight}px`;
1330
+ yWrapperEl.style.height = `${tbHeight}px`;
1331
+ yWrapperEl.style.top = `${tHeaderHeight}px`;
1322
1332
  }
1323
1333
  const yBottomCornerEl = $xeTable.$refs.refScrollYBottomCornerElem;
1324
1334
  if (yBottomCornerEl) {
1325
- yBottomCornerEl.style.height = `${footerHeight}px`;
1326
- yBottomCornerEl.style.top = `${headerHeight + bodyHeight}px`;
1327
- yBottomCornerEl.style.display = overflowY && footerHeight ? 'block' : '';
1335
+ yBottomCornerEl.style.height = `${tFooterHeight}px`;
1336
+ yBottomCornerEl.style.top = `${tHeaderHeight + tbHeight}px`;
1337
+ yBottomCornerEl.style.display = overflowY && tFooterHeight ? 'block' : '';
1328
1338
  }
1329
1339
  const rowExpandEl = $xeTable.$refs.refRowExpandElem;
1330
1340
  if (rowExpandEl) {
1331
- rowExpandEl.style.height = `${bodyHeight}px`;
1332
- rowExpandEl.style.top = `${headerHeight}px`;
1341
+ rowExpandEl.style.height = `${tbHeight}px`;
1342
+ rowExpandEl.style.top = `${tHeaderHeight}px`;
1333
1343
  }
1344
+ reactData.tBodyHeight = tbHeight;
1334
1345
  containerList.forEach((name, index) => {
1335
1346
  const fixedType = index > 0 ? name : '';
1336
1347
  const layoutList = ['header', 'body', 'footer'];
@@ -1390,7 +1401,7 @@ function updateStyle($xeTable) {
1390
1401
  }
1391
1402
  }
1392
1403
  if (currScrollElem) {
1393
- currScrollElem.style.height = `${headerHeight}px`;
1404
+ currScrollElem.style.height = `${tHeaderHeight}px`;
1394
1405
  }
1395
1406
  if (tableElem) {
1396
1407
  tableElem.style.width = tWidth ? `${tWidth}px` : '';
@@ -1398,15 +1409,15 @@ function updateStyle($xeTable) {
1398
1409
  } else if (layout === 'body') {
1399
1410
  if (currScrollElem) {
1400
1411
  currScrollElem.style.maxHeight = customMaxHeight ? `${bodyMaxHeight}px` : '';
1401
- currScrollElem.style.height = customHeight ? `${bodyHeight}px` : '';
1412
+ currScrollElem.style.height = customHeight ? `${tbHeight}px` : '';
1402
1413
  currScrollElem.style.minHeight = `${bodyMinHeight}px`;
1403
1414
  }
1404
1415
  // 如果是固定列
1405
1416
  if (fixedWrapperElem) {
1406
1417
  if (wrapperElem) {
1407
- wrapperElem.style.top = `${headerHeight}px`;
1418
+ wrapperElem.style.top = `${tHeaderHeight}px`;
1408
1419
  }
1409
- fixedWrapperElem.style.height = `${customHeight > 0 ? customHeight : tableHeight + headerHeight + footerHeight + osbHeight}px`;
1420
+ fixedWrapperElem.style.height = `${customHeight > 0 ? customHeight : tableHeight + tHeaderHeight + tFooterHeight + osbHeight}px`;
1410
1421
  fixedWrapperElem.style.width = `${fixedColumn.reduce((previous, column) => previous + column.renderWidth, 0)}px`;
1411
1422
  }
1412
1423
  let renderColumnList = tableColumn;
@@ -1478,11 +1489,11 @@ function updateStyle($xeTable) {
1478
1489
  }
1479
1490
  }
1480
1491
  if (currScrollElem) {
1481
- currScrollElem.style.height = `${footerHeight}px`;
1492
+ currScrollElem.style.height = `${tFooterHeight}px`;
1482
1493
  // 如果是固定列
1483
1494
  if (fixedWrapperElem) {
1484
1495
  if (wrapperElem) {
1485
- wrapperElem.style.top = `${customHeight > 0 ? customHeight - footerHeight - osbHeight : tableHeight + headerHeight}px`;
1496
+ wrapperElem.style.top = `${customHeight > 0 ? customHeight - tFooterHeight - osbHeight : tableHeight + tHeaderHeight}px`;
1486
1497
  }
1487
1498
  }
1488
1499
  }
@@ -1498,6 +1509,9 @@ function updateStyle($xeTable) {
1498
1509
  if (mouseConfig && mouseOpts.selected && editStore.selected.row && editStore.selected.column) {
1499
1510
  $xeTable.addCellSelectedClass();
1500
1511
  }
1512
+ if ($xeGanttView) {
1513
+ $xeGanttView.handleUpdateStyle();
1514
+ }
1501
1515
  return $xeTable.$nextTick();
1502
1516
  }
1503
1517
  function checkValidate($xeTable, type) {
@@ -2751,12 +2765,17 @@ function autoCellWidth($xeTable) {
2751
2765
  const calcCellAutoHeight = (rowRest, wrapperEl) => {
2752
2766
  const cellElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);
2753
2767
  let colHeight = rowRest.height;
2768
+ let firstCellStyle = null;
2769
+ let topBottomPadding = 0;
2754
2770
  for (let i = 0; i < cellElemList.length; i++) {
2755
- const cellElem = cellElemList[i];
2756
- const tdEl = cellElem.parentElement;
2757
- const topBottomPadding = Math.ceil(_xeUtils.default.toNumber(tdEl.style.paddingTop) + _xeUtils.default.toNumber(tdEl.style.paddingBottom));
2758
- const cellHeight = cellElem ? cellElem.clientHeight : 0;
2759
- colHeight = Math.max(colHeight - topBottomPadding, Math.ceil(cellHeight));
2771
+ const wrapperElem = cellElemList[i];
2772
+ const cellElem = wrapperElem.parentElement;
2773
+ if (!firstCellStyle) {
2774
+ firstCellStyle = getComputedStyle(cellElem);
2775
+ topBottomPadding = firstCellStyle ? Math.ceil(_xeUtils.default.toNumber(firstCellStyle.paddingTop) + _xeUtils.default.toNumber(firstCellStyle.paddingBottom)) : 0;
2776
+ }
2777
+ const cellHeight = wrapperElem ? wrapperElem.clientHeight : 0;
2778
+ colHeight = Math.max(colHeight, Math.ceil(cellHeight + topBottomPadding));
2760
2779
  }
2761
2780
  return colHeight;
2762
2781
  };
@@ -3208,12 +3227,13 @@ function calcScrollbar($xeTable) {
3208
3227
  reactData.scrollbarHeight = scrollbarOpts.height || xHandleEl.offsetHeight - xHandleEl.clientHeight || 14;
3209
3228
  }
3210
3229
  reactData.overflowX = overflowX;
3211
- const headerHeight = headerTableElem ? headerTableElem.clientHeight : 0;
3212
- const footerHeight = footerTableElem ? footerTableElem.clientHeight : 0;
3230
+ const hHeight = headerTableElem ? headerTableElem.clientHeight : 0;
3231
+ const fHeight = footerTableElem ? footerTableElem.clientHeight : 0;
3213
3232
  internalData.tableHeight = bodyWrapperElem.offsetHeight;
3214
- internalData.headerHeight = headerHeight;
3215
- internalData.footerHeight = footerHeight;
3216
- reactData.parentHeight = Math.max(internalData.headerHeight + footerHeight + 20, $xeTable.getParentHeight());
3233
+ reactData.tHeaderHeight = hHeight;
3234
+ reactData.tFooterHeight = fHeight;
3235
+ reactData.overflowX = overflowX;
3236
+ reactData.parentHeight = Math.max(hHeight + fHeight + 20, $xeTable.getParentHeight());
3217
3237
  }
3218
3238
  if (overflowX) {
3219
3239
  $xeTable.checkScrolling();
@@ -3272,6 +3292,7 @@ function handleLazyRecalculate($xeTable, reFull, reWidth, reHeight) {
3272
3292
  rceTimeout,
3273
3293
  rceRunTime
3274
3294
  } = internalData;
3295
+ const $xeGanttView = internalData.xeGanttView;
3275
3296
  const resizeOpts = $xeTable.computeResizeOpts;
3276
3297
  const refreshDelay = resizeOpts.refreshDelay || 20;
3277
3298
  const el = $xeTable.$refs.refElem;
@@ -3291,6 +3312,9 @@ function handleLazyRecalculate($xeTable, reFull, reWidth, reHeight) {
3291
3312
  } else {
3292
3313
  resolve(handleRecalculateStyle($xeTable, reFull, reWidth, reHeight));
3293
3314
  }
3315
+ if ($xeGanttView) {
3316
+ $xeGanttView.handleLazyRecalculate();
3317
+ }
3294
3318
  internalData.rceTimeout = setTimeout(() => {
3295
3319
  internalData.rceTimeout = undefined;
3296
3320
  handleRecalculateStyle($xeTable, reFull, reWidth, reHeight);
@@ -4181,6 +4205,20 @@ const wheelScrollTopTo = (diffNum, cb) => {
4181
4205
  };
4182
4206
  requestAnimationFrame(step);
4183
4207
  };
4208
+ const syncGanttScrollTop = ($xeTable, scrollTop) => {
4209
+ const internalData = $xeTable;
4210
+ const $xeGanttView = internalData.xeGanttView;
4211
+ if ($xeGanttView) {
4212
+ const ganttInternalData = $xeGanttView.internalData;
4213
+ const {
4214
+ elemStore: ganttElemStore
4215
+ } = ganttInternalData;
4216
+ const ganttBodyScrollElem = (0, _util.getRefElem)(ganttElemStore['main-body-scroll']);
4217
+ if (ganttBodyScrollElem) {
4218
+ ganttBodyScrollElem.scrollTop = scrollTop;
4219
+ }
4220
+ }
4221
+ };
4184
4222
  function updateHeight($xeTable) {
4185
4223
  const reactData = $xeTable;
4186
4224
  const internalData = $xeTable;
@@ -4527,6 +4565,7 @@ const Methods = {
4527
4565
  scrollYStore,
4528
4566
  fullDataRowIdData
4529
4567
  } = internalData;
4568
+ const $xeGanttView = internalData.xeGanttView;
4530
4569
  let fullList = internalData.afterFullData;
4531
4570
  // 是否进行数据处理
4532
4571
  if (force) {
@@ -4547,6 +4586,9 @@ const Methods = {
4547
4586
  });
4548
4587
  reactData.tableData = tableData;
4549
4588
  internalData.visibleDataRowIdData = visibleDataRowIdMaps;
4589
+ if ($xeGanttView) {
4590
+ $xeGanttView.updateViewData();
4591
+ }
4550
4592
  return $xeTable.$nextTick();
4551
4593
  },
4552
4594
  /**
@@ -6551,6 +6593,7 @@ const Methods = {
6551
6593
  },
6552
6594
  handleRowResizeMousedownEvent(evnt, params) {
6553
6595
  const $xeTable = this;
6596
+ const props = $xeTable;
6554
6597
  const reactData = $xeTable;
6555
6598
  const internalData = $xeTable;
6556
6599
  evnt.stopPropagation();
@@ -6558,6 +6601,9 @@ const Methods = {
6558
6601
  const {
6559
6602
  row
6560
6603
  } = params;
6604
+ const {
6605
+ showOverflow
6606
+ } = props;
6561
6607
  const {
6562
6608
  overflowX,
6563
6609
  scrollbarWidth,
@@ -6596,7 +6642,10 @@ const Methods = {
6596
6642
  return;
6597
6643
  }
6598
6644
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
6599
- const currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
6645
+ let currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
6646
+ if (!showOverflow) {
6647
+ currCellHeight = tdEl.clientHeight;
6648
+ }
6600
6649
  const tableRect = tableEl.getBoundingClientRect();
6601
6650
  const trRect = trEl.getBoundingClientRect();
6602
6651
  const targetOffsetY = dragClientY - trRect.y - trEl.clientHeight;
@@ -6781,6 +6830,32 @@ const Methods = {
6781
6830
  });
6782
6831
  return rest;
6783
6832
  },
6833
+ recalcRowHeight(rowOrId) {
6834
+ const $xeTable = this;
6835
+ const reactData = $xeTable;
6836
+ const internalData = $xeTable;
6837
+ const {
6838
+ fullAllDataRowIdData
6839
+ } = internalData;
6840
+ const rows = _xeUtils.default.isArray(rowOrId) ? rowOrId : [rowOrId];
6841
+ const el = $xeTable.$refs.refElem;
6842
+ if (el) {
6843
+ const {
6844
+ handleGetRowId
6845
+ } = (0, _util.createHandleGetRowId)($xeTable);
6846
+ el.setAttribute('data-calc-row', 'Y');
6847
+ rows.forEach(row => {
6848
+ const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : handleGetRowId(row);
6849
+ const rowRest = fullAllDataRowIdData[rowid];
6850
+ if (rowRest) {
6851
+ rowRest.resizeHeight = calcCellAutoHeight(rowRest, el);
6852
+ }
6853
+ el.removeAttribute('data-calc-row');
6854
+ });
6855
+ reactData.calcCellHeightFlag++;
6856
+ }
6857
+ return $xeTable.$nextTick();
6858
+ },
6784
6859
  setRowHeight(rowOrId, height) {
6785
6860
  const $xeTable = this;
6786
6861
  const reactData = $xeTable;
@@ -11648,6 +11723,7 @@ const Methods = {
11648
11723
  }
11649
11724
  (0, _dom.setScrollTop)(yHandleEl, scrollTop);
11650
11725
  (0, _dom.setScrollTop)(rowExpandEl, scrollTop);
11726
+ syncGanttScrollTop($xeTable, scrollTop);
11651
11727
  if (scrollYLoad) {
11652
11728
  $xeTable.triggerScrollYEvent(evnt);
11653
11729
  }
@@ -11876,6 +11952,7 @@ const Methods = {
11876
11952
  (0, _dom.setScrollTop)(leftScrollElem, currTopNum);
11877
11953
  (0, _dom.setScrollTop)(rightScrollElem, currTopNum);
11878
11954
  (0, _dom.setScrollTop)(rowExpandEl, currTopNum);
11955
+ syncGanttScrollTop($xeTable, currTopNum);
11879
11956
  if (scrollYLoad) {
11880
11957
  $xeTable.triggerScrollYEvent(evnt);
11881
11958
  }
@@ -11892,6 +11969,7 @@ const Methods = {
11892
11969
  (0, _dom.setScrollTop)(leftScrollElem, currTopNum);
11893
11970
  (0, _dom.setScrollTop)(rightScrollElem, currTopNum);
11894
11971
  (0, _dom.setScrollTop)(rowExpandEl, currTopNum);
11972
+ syncGanttScrollTop($xeTable, currTopNum);
11895
11973
  if (scrollYLoad) {
11896
11974
  $xeTable.triggerScrollYEvent(evnt);
11897
11975
  }
@@ -11993,6 +12071,7 @@ const Methods = {
11993
12071
  (0, _dom.setScrollTop)(leftScrollElem, scrollTop);
11994
12072
  (0, _dom.setScrollTop)(rightScrollElem, scrollTop);
11995
12073
  (0, _dom.setScrollTop)(rowExpandEl, scrollTop);
12074
+ syncGanttScrollTop($xeTable, scrollTop);
11996
12075
  if (scrollYLoad) {
11997
12076
  $xeTable.triggerScrollYEvent(evnt);
11998
12077
  }
@@ -12033,6 +12112,7 @@ const Methods = {
12033
12112
  elemStore,
12034
12113
  fullColumnIdData
12035
12114
  } = internalData;
12115
+ const $xeGanttView = internalData.xeGanttView;
12036
12116
  const mouseOpts = $xeTable.computeMouseOpts;
12037
12117
  const tableBody = $xeTable.$refs.refTableBody;
12038
12118
  const tableBodyElem = tableBody ? tableBody.$el : null;
@@ -12093,10 +12173,13 @@ const Methods = {
12093
12173
  if (scrollXSpaceEl) {
12094
12174
  scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
12095
12175
  }
12176
+ calcScrollbar($xeTable);
12096
12177
  if (isScrollXBig && mouseOpts.area) {
12097
12178
  (0, _log.errLog)('vxe.error.notProp', ['mouse-config.area']);
12098
12179
  }
12099
- calcScrollbar($xeTable);
12180
+ if ($xeGanttView) {
12181
+ $xeGanttView.updateScrollXSpace();
12182
+ }
12100
12183
  return $xeTable.$nextTick(() => {
12101
12184
  updateStyle($xeTable);
12102
12185
  });
@@ -12129,6 +12212,7 @@ const Methods = {
12129
12212
  fullAllDataRowIdData,
12130
12213
  rowExpandedMaps
12131
12214
  } = internalData;
12215
+ const $xeGanttView = internalData.xeGanttView;
12132
12216
  const {
12133
12217
  startIndex
12134
12218
  } = scrollYStore;
@@ -12220,10 +12304,13 @@ const Methods = {
12220
12304
  reactData.scrollYTop = scrollYTop;
12221
12305
  reactData.scrollYHeight = scrollYHeight;
12222
12306
  reactData.isScrollYBig = isScrollYBig;
12307
+ calcScrollbar($xeTable);
12223
12308
  if (isScrollYBig && mouseOpts.area) {
12224
12309
  (0, _log.errLog)('vxe.error.notProp', ['mouse-config.area']);
12225
12310
  }
12226
- calcScrollbar($xeTable);
12311
+ if ($xeGanttView) {
12312
+ $xeGanttView.updateScrollYSpace();
12313
+ }
12227
12314
  return $xeTable.$nextTick().then(() => {
12228
12315
  updateStyle($xeTable);
12229
12316
  });
@@ -12621,12 +12708,23 @@ const Methods = {
12621
12708
  this.isActivated = false;
12622
12709
  return this.$nextTick();
12623
12710
  },
12624
- // 连接工具栏
12711
+ /**
12712
+ * 已废弃,被 connectToolbar 替换
12713
+ * @deprecated
12714
+ */
12625
12715
  connect($toolbar) {
12716
+ return this.connectToolbar($toolbar);
12717
+ },
12718
+ /**
12719
+ * 连接工具栏
12720
+ * @param $toolbar
12721
+ */
12722
+ connectToolbar($toolbar) {
12723
+ const $xeTable = this;
12626
12724
  if ($toolbar && $toolbar.syncUpdate) {
12627
12725
  $toolbar.syncUpdate({
12628
12726
  collectColumn: this.collectColumn,
12629
- $table: this
12727
+ $table: $xeTable
12630
12728
  });
12631
12729
  this.$toolbar = $toolbar;
12632
12730
  } else {
@@ -12634,6 +12732,17 @@ const Methods = {
12634
12732
  }
12635
12733
  return this.$nextTick();
12636
12734
  },
12735
+ handleConnectGanttView($ganttView) {
12736
+ const $xeTable = this;
12737
+ const internalData = $xeTable;
12738
+ if ($ganttView && $ganttView.connectUpdate) {
12739
+ $ganttView.connectUpdate({
12740
+ $table: $xeTable
12741
+ });
12742
+ internalData.xeGanttView = $ganttView;
12743
+ }
12744
+ return $xeTable.$nextTick();
12745
+ },
12637
12746
  /*************************
12638
12747
  * Publish methods
12639
12748
  *************************/