vxe-table 4.8.16 → 4.9.1

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 (135) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/README.zh-TW.md +1 -1
  4. package/es/locale/lang/en-US.js +1 -0
  5. package/es/locale/lang/es-ES.js +1 -0
  6. package/es/locale/lang/hu-HU.js +1 -0
  7. package/es/locale/lang/ja-JP.js +1 -0
  8. package/es/locale/lang/ko-KR.js +1 -0
  9. package/es/locale/lang/pt-BR.js +1 -0
  10. package/es/locale/lang/ru-RU.js +1 -0
  11. package/es/locale/lang/uk-UA.js +1 -0
  12. package/es/locale/lang/vi-VN.js +1 -0
  13. package/es/locale/lang/zh-CHT.js +1 -0
  14. package/es/locale/lang/zh-CN.js +1 -0
  15. package/es/style.css +1 -1
  16. package/es/style.min.css +1 -1
  17. package/es/table/module/custom/hook.js +4 -0
  18. package/es/table/module/edit/hook.js +53 -34
  19. package/es/table/module/filter/hook.js +2 -3
  20. package/es/table/module/keyboard/hook.js +2 -2
  21. package/es/table/src/body.js +31 -24
  22. package/es/table/src/cell.js +99 -59
  23. package/es/table/src/emits.js +3 -0
  24. package/es/table/src/footer.js +177 -147
  25. package/es/table/src/header.js +144 -107
  26. package/es/table/src/props.js +5 -1
  27. package/es/table/src/table.js +346 -108
  28. package/es/table/src/util.js +9 -0
  29. package/es/table/style.css +33 -20
  30. package/es/table/style.min.css +1 -1
  31. package/es/ui/index.js +9 -4
  32. package/es/ui/src/log.js +1 -1
  33. package/es/vxe-table/style.css +33 -20
  34. package/es/vxe-table/style.min.css +1 -1
  35. package/helper/vetur/attributes.json +1 -1
  36. package/helper/vetur/tags.json +1 -1
  37. package/lib/index.umd.js +1035 -573
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/locale/lang/en-US.js +1 -0
  40. package/lib/locale/lang/en-US.min.js +1 -1
  41. package/lib/locale/lang/en-US.umd.js +1 -0
  42. package/lib/locale/lang/es-ES.js +1 -0
  43. package/lib/locale/lang/es-ES.min.js +1 -1
  44. package/lib/locale/lang/es-ES.umd.js +1 -0
  45. package/lib/locale/lang/hu-HU.js +1 -0
  46. package/lib/locale/lang/hu-HU.min.js +1 -1
  47. package/lib/locale/lang/hu-HU.umd.js +1 -0
  48. package/lib/locale/lang/ja-JP.js +1 -0
  49. package/lib/locale/lang/ja-JP.min.js +1 -1
  50. package/lib/locale/lang/ja-JP.umd.js +1 -0
  51. package/lib/locale/lang/ko-KR.js +1 -0
  52. package/lib/locale/lang/ko-KR.min.js +1 -1
  53. package/lib/locale/lang/ko-KR.umd.js +1 -0
  54. package/lib/locale/lang/pt-BR.js +1 -0
  55. package/lib/locale/lang/pt-BR.min.js +1 -1
  56. package/lib/locale/lang/pt-BR.umd.js +1 -0
  57. package/lib/locale/lang/ru-RU.js +1 -0
  58. package/lib/locale/lang/ru-RU.min.js +1 -1
  59. package/lib/locale/lang/ru-RU.umd.js +1 -0
  60. package/lib/locale/lang/uk-UA.js +1 -0
  61. package/lib/locale/lang/uk-UA.min.js +1 -1
  62. package/lib/locale/lang/uk-UA.umd.js +1 -0
  63. package/lib/locale/lang/vi-VN.js +1 -0
  64. package/lib/locale/lang/vi-VN.min.js +1 -1
  65. package/lib/locale/lang/zh-CHT.js +1 -0
  66. package/lib/locale/lang/zh-CHT.min.js +1 -1
  67. package/lib/locale/lang/zh-CN.js +1 -0
  68. package/lib/locale/lang/zh-CN.min.js +1 -1
  69. package/lib/locale/lang/zh-CN.umd.js +1 -0
  70. package/lib/style.css +1 -1
  71. package/lib/style.min.css +1 -1
  72. package/lib/table/module/custom/hook.js +4 -0
  73. package/lib/table/module/custom/hook.min.js +1 -1
  74. package/lib/table/module/edit/hook.js +63 -42
  75. package/lib/table/module/edit/hook.min.js +1 -1
  76. package/lib/table/module/filter/hook.js +1 -2
  77. package/lib/table/module/filter/hook.min.js +1 -1
  78. package/lib/table/module/keyboard/hook.js +2 -2
  79. package/lib/table/module/keyboard/hook.min.js +1 -1
  80. package/lib/table/src/body.js +34 -21
  81. package/lib/table/src/body.min.js +1 -1
  82. package/lib/table/src/cell.js +110 -51
  83. package/lib/table/src/cell.min.js +1 -1
  84. package/lib/table/src/emits.js +1 -1
  85. package/lib/table/src/emits.min.js +1 -1
  86. package/lib/table/src/footer.js +222 -183
  87. package/lib/table/src/footer.min.js +1 -1
  88. package/lib/table/src/header.js +188 -150
  89. package/lib/table/src/header.min.js +1 -1
  90. package/lib/table/src/props.js +5 -1
  91. package/lib/table/src/props.min.js +1 -1
  92. package/lib/table/src/table.js +380 -110
  93. package/lib/table/src/table.min.js +1 -1
  94. package/lib/table/src/util.js +10 -0
  95. package/lib/table/src/util.min.js +1 -1
  96. package/lib/table/style/style.css +33 -20
  97. package/lib/table/style/style.min.css +1 -1
  98. package/lib/ui/index.js +9 -4
  99. package/lib/ui/index.min.js +1 -1
  100. package/lib/ui/src/log.js +1 -1
  101. package/lib/ui/src/log.min.js +1 -1
  102. package/lib/vxe-table/style/style.css +33 -20
  103. package/lib/vxe-table/style/style.min.css +1 -1
  104. package/package.json +3 -3
  105. package/packages/locale/lang/en-US.ts +1 -0
  106. package/packages/locale/lang/es-ES.ts +1 -0
  107. package/packages/locale/lang/hu-HU.ts +1 -0
  108. package/packages/locale/lang/ja-JP.ts +1 -0
  109. package/packages/locale/lang/ko-KR.ts +1 -0
  110. package/packages/locale/lang/pt-BR.ts +1 -0
  111. package/packages/locale/lang/ru-RU.ts +1 -0
  112. package/packages/locale/lang/uk-UA.ts +1 -0
  113. package/packages/locale/lang/vi-VN.ts +1 -0
  114. package/packages/locale/lang/zh-CHT.ts +1 -0
  115. package/packages/locale/lang/zh-CN.ts +1 -0
  116. package/packages/table/module/custom/hook.ts +4 -0
  117. package/packages/table/module/edit/hook.ts +54 -34
  118. package/packages/table/module/filter/hook.ts +2 -3
  119. package/packages/table/module/keyboard/hook.ts +2 -2
  120. package/packages/table/src/body.ts +46 -31
  121. package/packages/table/src/cell.ts +140 -92
  122. package/packages/table/src/emits.ts +3 -0
  123. package/packages/table/src/footer.ts +189 -152
  124. package/packages/table/src/header.ts +157 -116
  125. package/packages/table/src/props.ts +5 -1
  126. package/packages/table/src/table.ts +358 -109
  127. package/packages/table/src/util.ts +10 -0
  128. package/packages/ui/index.ts +8 -3
  129. package/styles/components/table.scss +42 -35
  130. /package/es/{iconfont.1731633504443.ttf → iconfont.1731937248477.ttf} +0 -0
  131. /package/es/{iconfont.1731633504443.woff → iconfont.1731937248477.woff} +0 -0
  132. /package/es/{iconfont.1731633504443.woff2 → iconfont.1731937248477.woff2} +0 -0
  133. /package/lib/{iconfont.1731633504443.ttf → iconfont.1731937248477.ttf} +0 -0
  134. /package/lib/{iconfont.1731633504443.woff → iconfont.1731937248477.woff} +0 -0
  135. /package/lib/{iconfont.1731633504443.woff2 → iconfont.1731937248477.woff2} +0 -0
@@ -1 +1 @@
1
- "use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(E){const{props:I,reactData:b,internalData:F}=E,o=E.getRefMaps()["refElem"],{computeMouseOpts:u,computeEditOpts:f,computeCheckboxOpts:h,computeTreeOpts:S,computeValidOpts:n}=E.getComputeMaps();let x={},m={};const p=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")};function i(){var{editStore:e,tableColumn:t}=b,l=f.value,e=e["actived"];const{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))}function A(e,t){const{tableFullTreeData:n,afterFullData:i,fullDataRowIdData:d,fullAllDataRowIdData:c}=F;var l=S.value;const{rowField:s,parentField:u,mapChildrenField:v}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{const t=l[u];var r=(0,_util.getRowid)(E,l),o=t?_xeUtils.default.findTree(n,e=>t===e[s],{children:v}):null;if(o){var o=o["item"],a=c[(0,_util.getRowid)(E,o)],a=a?a.level:0;let e=o[g],t=o[v];_xeUtils.default.isArray(e)||(e=o[g]=[]),_xeUtils.default.isArray(t)||(t=o[g]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:e,parent:o,level:a+1,height:0};d[r]=o,c[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),i[w](l),n[w](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:n,parent:null,level:0,height:0};d[r]=a,c[r]=a}})}const r=(t,l,o)=>{const a=I["treeConfig"];var{mergeList:e,editStore:r}=b;const{tableFullTreeData:n,afterFullData:i,tableFullData:d,fullDataRowIdData:c,fullAllDataRowIdData:s}=F,u=S.value,{transform:v,rowField:g,mapChildrenField:w}=u,f=u.children||u.childrenField,m=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(E.defineField(t.map(e=>Object.assign(a&&v?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))a&&v?A(m,!1):(i.unshift(...m),d.unshift(...m),e.forEach(e=>{var t=e["row"];0<t&&(e.row=t+m.length)}));else if(-1===l)a&&v?A(m,!0):(i.push(...m),d.push(...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+m.length)}));else if(a&&v){const x=_xeUtils.default.findTree(n,e=>l[g]===e[g],{children:w});if(x){const R=x["parent"],C=R?R[w]:n;t=s[(0,_util.getRowid)(E,R)];const _=t?t.level:0;if(m.forEach((e,t)=>{var l=(0,_util.getRowid)(E,e);"development"===process.env.NODE_ENV&&e[u.parentField]&&R&&e[u.parentField]!==R[g]&&(0,_log.errLog)("vxe.error.errProp",[u.parentField+"="+e[u.parentField],u.parentField+"="+R[g]]),R&&(e[u.parentField]=R[g]);let r=x.index+t;o&&(r+=1),C.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,items:C,parent:R,level:_+1,height:0};c[l]=t,s[l]=t}),R){t=_xeUtils.default.findTree(n,e=>l[g]===e[g],{children:f});if(t){var p=t.items;let e=t.index;o&&(e+=1),p.splice(e,0,...m)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),A(m,!0)}else{if(a)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=E.findRowIndexOf(i,l),-1===(r=o?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...m),d.splice(E.findRowIndexOf(d,l),0,...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+m.length:t+l>r&&(e.rowspan=l+m.length)})}const h=r["insertMaps"];return m.forEach(e=>{var t=(0,_util.getRowid)(E,e);h[t]=e}),E.cacheRowMap(),E.updateScrollYStatus(),E.handleTableData(a&&v),a&&v||E.updateAfterDataIndex(),E.updateFooter(),E.checkSelectionStatus(),b.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))};return x={insert(e){return r(e,null)},insertAt(e,t){return r(e,t)},insertNextAt(e,t){return r(e,t,!0)},remove(e){var t=I["treeConfig"];const{mergeList:l,editStore:r,selectCheckboxMaps:o}=b,{tableFullTreeData:a,afterFullData:n,tableFullData:i}=F;var d=h.value,c=S.value;const{transform:s,mapChildrenField:u}=c,v=c.children||c.childrenField,{actived:g,removeMaps:w,insertMaps:f}=r;c=d.checkField;let m=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(e=>{var t;E.isInsertByRow(e)||(t=(0,_util.getRowid)(E,e),w[t]=e)}),!c){const p=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(E,e);p[e]&&delete p[e]}),b.selectCheckboxMaps=p}return i===e?(e=m=i.slice(0),F.tableFullData=[],F.afterFullData=[],E.clearMergeCells()):t&&s?e.forEach(e=>{const t=(0,_util.getRowid)(E,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(E,e),{children:u}),l=(l&&(l=l.items.splice(l.index,1),m.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(E,e),{children:v})),l=(l&&l.items.splice(l.index,1),E.findRowIndexOf(n,e));-1<l&&n.splice(l,1)}):e.forEach(e=>{var t=E.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),m.push(t[0]));const r=E.findRowIndexOf(n,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),n.splice(r,1))}),g.row&&-1<E.findRowIndexOf(e,g.row)&&x.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(E,e);f[e]&&delete f[e]}),E.updateFooter(),E.cacheRowMap(),E.handleTableData(t&&s),t&&s||E.updateAfterDataIndex(),E.checkSelectionStatus(),b.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))},removeCheckboxRow(){return x.remove(E.getCheckboxRecords()).then(e=>(E.clearCheckboxRow(),e))},removeRadioRow(){var e=E.getRadioRecord();return x.remove(e||[]).then(e=>(E.clearRadioRow(),e))},removeCurrentRow(){var e=E.getCurrentRecord();return x.remove(e||[]).then(e=>(E.clearCurrentRow(),e))},getRecordset(){var e=x.getRemoveRecords(),t=E.getPendingRecords();const l=e.concat(t);var r=x.getUpdateRecords().filter(t=>!l.some(e=>E.eqRow(e,t)));return{insertRecords:x.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=b["editStore"];const l=F["fullAllDataRowIdData"];e=e.insertMaps;const r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=b["editStore"],e=e["removeMaps"];const t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=I,l=F["tableFullData"],r=S.value;return e?(i(),t?_xeUtils.default.filterTree(l,e=>E.isUpdateByRow(e),r):l.filter(e=>E.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=b["editStore"],t=F["afterFullData"],l=o.value,{args:e,row:r}=e.actived;return e&&-1<E.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=b["editStore"],{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){var t=b["editStore"],{actived:t,focused:l}=t,{row:r,column:o}=t,a=n.value;return(r||o)&&(i(),t.args=null,t.row=null,t.column=null,E.updateFooter(),E.dispatchEvent("edit-closed",{row:r,rowIndex:E.getRowIndex(r),$rowIndex:E.getVMRowIndex(r),column:o,columnIndex:E.getColumnIndex(o),$columnIndex:E.getVMColumnIndex(o)},e||null)),a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&E.clearValidate?E.clearValidate():(l.row=null,(l.column=null,_vue.nextTick)())},clearSelected(){var e=b["editStore"],e=e["selected"];return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=b["editStore"];return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),x.setEditRow(e)},setEditRow(e,t){var l=F["visibleColumn"];let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?E.getColumnByField(t):t),E.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),x.setEditCell(e,t)},setEditCell(t,e){var l=I["editConfig"];const r=_xeUtils.default.isString(e)?E.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?E.scrollToRow(t,r).then(()=>{var e=E.getCellElement(t,r);return e&&(m.handleEdit({row:t,rowIndex:E.getRowIndex(t),column:r,columnIndex:E.getColumnIndex(r),cell:e,$table:E}),F._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=b["tableData"],r=f.value,t=_xeUtils.default.isString(t)?E.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=E.findRowIndexOf(l,e))&&t&&(l=E.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:E.getColumnIndex(t),cell:l},E.handleSelected(e,{})),(0,_vue.nextTick)()}},m={handleEdit(t,l){var{editConfig:e,mouseConfig:r}=I,{editStore:o,tableColumn:a}=b,n=f.value,i=n["mode"],{actived:o,focused:d}=o;const{row:c,column:s}=t;var u=s["editRender"],v=t.cell||E.getCellElement(c,s),g=n.beforeEditMethod||n.activeMethod;if((t.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!E.hasPendingByRow(c)){if(o.row!==c||"cell"===i&&o.column!==s){let e="edit-disabled";if(!g||g(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))){r&&(x.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),E.closeTooltip(),o.column&&x.clearEdit(l),e="edit-activated",s.renderHeight=v.offsetHeight,o.args=t,o.row=c,o.column=s,"row"===i?a.forEach(e=>p(c,e)):p(c,s);const w=n.afterEditMethod;(0,_vue.nextTick)(()=>{m.handleFocus(t,l),w&&w(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))})}E.dispatchEvent(e,{row:c,rowIndex:E.getRowIndex(c),$rowIndex:E.getVMRowIndex(c),column:s,columnIndex:E.getColumnIndex(s),$columnIndex:E.getVMColumnIndex(s)},l),"edit-activated"===e&&E.dispatchEvent("edit-actived",{row:c,rowIndex:E.getRowIndex(c),$rowIndex:E.getVMRowIndex(c),column:s,columnIndex:E.getColumnIndex(s),$columnIndex:E.getVMColumnIndex(s)},l)}else{e=o["column"];r&&(x.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),e!==s&&(u=e["model"],u.update&&(0,_util.setCellValue)(c,e,u.value),E.clearValidate)&&E.clearValidate(c,s),s.renderHeight=v.offsetHeight,o.args=t,o.column=s,setTimeout(()=>{m.handleFocus(t,l)})}d.column=null,d.row=null,E.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return m.handleEdit(e,t)},handleFocus(r){var{row:o,column:a,cell:n}=r,i=a["editRender"],d=f.value;if((0,_utils.isEnableConf)(i)){var c=renderer.get(i.name);let e=i.autofocus||i.autoFocus,t=i.autoSelect||i.autoselect,l;d.autoFocus&&(!e&&c&&(e=c.tableAutoFocus||c.tableAutofocus||c.autofocus),!t&&c&&(t=c.tableAutoSelect||c.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((i=l.createTextRange()).collapse(!1),i.select()):d.autoPos&&!a.fixed&&E.scrollToRow(o,a)}},handleSelected(e,t){var l=I["mouseConfig"],r=b["editStore"],o=u.value;const a=f.value,{actived:n,selected:i}=r,{row:d,column:c}=e,s=l&&o.selected;return!s||i.row===d&&i.column===c||(n.row!==d||"cell"===a.mode&&n.column!==c)&&(x.clearEdit(t),x.clearSelected(),E.clearCellAreas&&(E.clearCellAreas(),E.clearCopyCellArea()),i.args=e,i.row=d,i.column=c,s&&m.addCellSelectedClass(),E.focus(),t)&&E.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=b["editStore"],e=e["selected"],{row:e,column:t}=e;l(),e&&t&&(e=E.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},x),m)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
1
+ "use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(E){const{props:I,reactData:b,internalData:F}=E,o=E.getRefMaps()["refElem"],{computeMouseOpts:u,computeEditOpts:f,computeCheckboxOpts:h,computeTreeOpts:A,computeValidOpts:c}=E.getComputeMaps();let x={},m={};const p=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")};function s(){var{editStore:e,tableColumn:t}=b,l=f.value,e=e["actived"];const{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))}function S(e,t){const{tableFullTreeData:n,afterFullData:i,fullDataRowIdData:d,fullAllDataRowIdData:c}=F;var l=A.value;const{rowField:s,parentField:u,mapChildrenField:v}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{const t=l[u];var r=(0,_util.getRowid)(E,l),o=t?_xeUtils.default.findTree(n,e=>t===e[s],{children:v}):null;if(o){var o=o["item"],a=c[(0,_util.getRowid)(E,o)],a=a?a.level:0;let e=o[g],t=o[v];_xeUtils.default.isArray(e)||(e=o[g]=[]),_xeUtils.default.isArray(t)||(t=o[g]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:e,parent:o,level:a+1,height:0};d[r]=o,c[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),i[w](l),n[w](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:n,parent:null,level:0,height:0};d[r]=a,c[r]=a}})}const r=(t,l,o)=>{const a=I["treeConfig"];var{mergeList:e,editStore:r}=b;const{tableFullTreeData:n,afterFullData:i,tableFullData:d,fullDataRowIdData:c,fullAllDataRowIdData:s}=F,u=A.value,{transform:v,rowField:g,mapChildrenField:w}=u,f=u.children||u.childrenField,m=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(E.defineField(t.map(e=>Object.assign(a&&v?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))a&&v?S(m,!1):(i.unshift(...m),d.unshift(...m),e.forEach(e=>{var t=e["row"];0<t&&(e.row=t+m.length)}));else if(-1===l)a&&v?S(m,!0):(i.push(...m),d.push(...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+m.length)}));else if(a&&v){const x=_xeUtils.default.findTree(n,e=>l[g]===e[g],{children:w});if(x){const R=x["parent"],C=R?R[w]:n;t=s[(0,_util.getRowid)(E,R)];const _=t?t.level:0;if(m.forEach((e,t)=>{var l=(0,_util.getRowid)(E,e);"development"===process.env.NODE_ENV&&e[u.parentField]&&R&&e[u.parentField]!==R[g]&&(0,_log.errLog)("vxe.error.errProp",[u.parentField+"="+e[u.parentField],u.parentField+"="+R[g]]),R&&(e[u.parentField]=R[g]);let r=x.index+t;o&&(r+=1),C.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,items:C,parent:R,level:_+1,height:0};c[l]=t,s[l]=t}),R){t=_xeUtils.default.findTree(n,e=>l[g]===e[g],{children:f});if(t){var p=t.items;let e=t.index;o&&(e+=1),p.splice(e,0,...m)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),S(m,!0)}else{if(a)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=E.findRowIndexOf(i,l),-1===(r=o?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...m),d.splice(E.findRowIndexOf(d,l),0,...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+m.length:t+l>r&&(e.rowspan=l+m.length)})}const h=r["insertMaps"];return m.forEach(e=>{var t=(0,_util.getRowid)(E,e);h[t]=e}),E.cacheRowMap(),E.updateScrollYStatus(),E.handleTableData(a&&v),a&&v||E.updateAfterDataIndex(),E.updateFooter(),E.checkSelectionStatus(),b.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))},R=(e,t)=>{const l=I["mouseConfig"];var r=b["editStore"],{actived:r,focused:o}=r,{row:a,column:n}=r,i=c.value;const d=u.value;if(a||n){if(t&&(0,_util.getRowid)(E,t)!==(0,_util.getRowid)(E,a))return(0,_vue.nextTick)();s(),r.args=null,r.row=null,r.column=null,E.updateFooter(),E.dispatchEvent("edit-closed",{row:a,rowIndex:E.getRowIndex(a),$rowIndex:E.getVMRowIndex(a),column:n,columnIndex:E.getColumnIndex(n),$columnIndex:E.getVMColumnIndex(n)},e||null)}return(0,_vue.nextTick)(()=>{if(l&&d.area&&E.handleRecalculateCellAreas)return E.handleRecalculateCellAreas()}),i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&E.clearValidate?E.clearValidate():(o.row=null,(o.column=null,_vue.nextTick)())};return x={insert(e){return r(e,null)},insertAt(e,t){return r(e,t)},insertNextAt(e,t){return r(e,t,!0)},remove(e){var t=I["treeConfig"];const{mergeList:l,editStore:r,selectCheckboxMaps:o}=b,{tableFullTreeData:a,afterFullData:n,tableFullData:i}=F;var d=h.value,c=A.value;const{transform:s,mapChildrenField:u}=c,v=c.children||c.childrenField,{actived:g,removeMaps:w,insertMaps:f}=r;c=d.checkField;let m=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(e=>{var t;E.isInsertByRow(e)||(t=(0,_util.getRowid)(E,e),w[t]=e)}),!c){const p=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(E,e);p[e]&&delete p[e]}),b.selectCheckboxMaps=p}return i===e?(e=m=i.slice(0),F.tableFullData=[],F.afterFullData=[],E.clearMergeCells()):t&&s?e.forEach(e=>{const t=(0,_util.getRowid)(E,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(E,e),{children:u}),l=(l&&(l=l.items.splice(l.index,1),m.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(E,e),{children:v})),l=(l&&l.items.splice(l.index,1),E.findRowIndexOf(n,e));-1<l&&n.splice(l,1)}):e.forEach(e=>{var t=E.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),m.push(t[0]));const r=E.findRowIndexOf(n,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),n.splice(r,1))}),g.row&&-1<E.findRowIndexOf(e,g.row)&&x.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(E,e);f[e]&&delete f[e]}),E.updateFooter(),E.cacheRowMap(),E.handleTableData(t&&s),t&&s||E.updateAfterDataIndex(),E.checkSelectionStatus(),b.scrollYLoad&&E.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(E.updateCellAreas(),E.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))},removeCheckboxRow(){return x.remove(E.getCheckboxRecords()).then(e=>(E.clearCheckboxRow(),e))},removeRadioRow(){var e=E.getRadioRecord();return x.remove(e||[]).then(e=>(E.clearRadioRow(),e))},removeCurrentRow(){var e=E.getCurrentRecord();return x.remove(e||[]).then(e=>(E.clearCurrentRow(),e))},getRecordset(){var e=x.getRemoveRecords(),t=E.getPendingRecords();const l=e.concat(t);var r=x.getUpdateRecords().filter(t=>!l.some(e=>E.eqRow(e,t)));return{insertRecords:x.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=b["editStore"];const l=F["fullAllDataRowIdData"];e=e.insertMaps;const r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=b["editStore"],e=e["removeMaps"];const t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=I,l=F["tableFullData"],r=A.value;return e?(s(),t?_xeUtils.default.filterTree(l,e=>E.isUpdateByRow(e),r):l.filter(e=>E.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=b["editStore"],t=F["afterFullData"],l=o.value,{args:e,row:r}=e.actived;return e&&-1<E.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=b["editStore"],{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return R(null,e)},clearSelected(){var e=b["editStore"],e=e["selected"];return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=b["editStore"];return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),x.setEditRow(e)},setEditRow(e,t){var l=F["visibleColumn"];let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?E.getColumnByField(t):t),E.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),x.setEditCell(e,t)},setEditCell(t,e){var l=I["editConfig"];const r=_xeUtils.default.isString(e)?E.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?E.scrollToRow(t,r).then(()=>{var e=E.getCellElement(t,r);return e&&(m.handleEdit({row:t,rowIndex:E.getRowIndex(t),column:r,columnIndex:E.getColumnIndex(r),cell:e,$table:E}),F._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=b["tableData"],r=f.value,t=_xeUtils.default.isString(t)?E.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=E.findRowIndexOf(l,e))&&t&&(l=E.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:E.getColumnIndex(t),cell:l},E.handleSelected(e,{})),(0,_vue.nextTick)()}},m={handleEdit(t,l){var{editConfig:e,mouseConfig:r}=I,{editStore:o,tableColumn:a}=b,n=f.value,i=n["mode"],{actived:o,focused:d}=o;const{row:c,column:s}=t;var u=s["editRender"],v=t.cell||E.getCellElement(c,s),g=n.beforeEditMethod||n.activeMethod;if((t.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!E.hasPendingByRow(c)){if(o.row!==c||"cell"===i&&o.column!==s){let e="edit-disabled";if(!g||g(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))){r&&(x.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),E.closeTooltip(),o.column&&R(l),e="edit-activated",s.renderHeight=v.offsetHeight,o.args=t,o.row=c,o.column=s,"row"===i?a.forEach(e=>p(c,e)):p(c,s);const w=n.afterEditMethod;(0,_vue.nextTick)(()=>{m.handleFocus(t,l),w&&w(Object.assign(Object.assign({},t),{$table:E,$grid:E.xegrid}))})}E.dispatchEvent(e,{row:c,rowIndex:E.getRowIndex(c),$rowIndex:E.getVMRowIndex(c),column:s,columnIndex:E.getColumnIndex(s),$columnIndex:E.getVMColumnIndex(s)},l),"edit-activated"===e&&E.dispatchEvent("edit-actived",{row:c,rowIndex:E.getRowIndex(c),$rowIndex:E.getVMRowIndex(c),column:s,columnIndex:E.getColumnIndex(s),$columnIndex:E.getVMColumnIndex(s)},l)}else{e=o["column"];r&&(x.clearSelected(),E.clearCellAreas)&&(E.clearCellAreas(),E.clearCopyCellArea()),e!==s&&(u=e["model"],u.update&&(0,_util.setCellValue)(c,e,u.value),E.clearValidate)&&E.clearValidate(c,s),s.renderHeight=v.offsetHeight,o.args=t,o.column=s,setTimeout(()=>{m.handleFocus(t,l)})}d.column=null,d.row=null,E.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return m.handleEdit(e,t)},handleClearEdit:R,handleFocus(r){var{row:o,column:a,cell:n}=r,i=a["editRender"],d=f.value;if((0,_utils.isEnableConf)(i)){var c=renderer.get(i.name);let e=i.autofocus||i.autoFocus,t=i.autoSelect||i.autoselect,l;d.autoFocus&&(!e&&c&&(e=c.tableAutoFocus||c.tableAutofocus||c.autofocus),!t&&c&&(t=c.tableAutoSelect||c.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((i=l.createTextRange()).collapse(!1),i.select()):d.autoPos&&!a.fixed&&E.scrollToRow(o,a)}},handleSelected(e,t){var l=I["mouseConfig"],r=b["editStore"],o=u.value;const a=f.value,{actived:n,selected:i}=r,{row:d,column:c}=e,s=l&&o.selected;return!s||i.row===d&&i.column===c||(n.row!==d||"cell"===a.mode&&n.column!==c)&&(R(t),x.clearSelected(),E.clearCellAreas&&(E.clearCellAreas(),E.clearCopyCellArea()),i.args=e,i.row=d,i.column=c,s&&m.addCellSelectedClass(),E.focus(),t)&&E.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=b["editStore"],e=e["selected"],{row:e,column:t}=e;l(),e&&t&&(e=E.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},x),m)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
@@ -326,8 +326,7 @@ hooks.add('tableFilterModule', {
326
326
  fixed
327
327
  } = column;
328
328
  return $xeTable.scrollToColumn(column).then(() => {
329
- const headerWrapperRef = elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper'];
330
- const headerWrapperElem = headerWrapperRef ? headerWrapperRef.value : null;
329
+ const headerWrapperElem = (0, _util.getRefElem)(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
331
330
  if (headerWrapperElem) {
332
331
  const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter--btn`);
333
332
  (0, _dom.triggerEvent)(filterBtnElem, 'click');
@@ -1 +1 @@
1
- "use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{renderer,hooks}=_ui.VxeUI,tableFilterMethodKeys=["openFilter","setFilter","clearFilter","getCheckedFilters","updateFilterOptionStatus"];hooks.add("tableFilterModule",{setupTable(F){const{props:d,reactData:_,internalData:n}=F,{refTableHeader:g,refTableBody:b,refTableFilter:k}=F.getRefMaps(),{computeFilterOpts:h,computeMouseOpts:p}=F.getComputeMaps(),i=e=>{var t=_["filterStore"];t.options.forEach(e=>{e.checked=e._checked}),F.confirmFilterEvent(e)},o=(e,t,l)=>{var r=_["filterStore"];r.options.forEach(e=>{e._checked=!1}),l._checked=t,F.checkFilterOptions(),i(e)},a=(e,t,l)=>{l._checked=t,F.checkFilterOptions()};const s={checkFilterOptions(){var e=_["filterStore"];e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(e,d,t){const{initStore:l,filterStore:h}=_;if(h.column===d&&h.visible)h.visible=!1;else{const{target:p,pageX:v}=e,m=(0,_dom.getDomNode)()["visibleWidth"];var{filters:r,filterMultiple:i,filterRender:o}=d,o=(0,_utils.isEnableConf)(o)?renderer.get(o.name):null;const a=d.filterRecoverMethod||(o?o.tableFilterRecoverMethod||o.filterRecoverMethod:null);n._currFilterParams=t,Object.assign(h,{multiple:i,options:r,column:d,style:null}),h.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||a&&a({option:e,column:d,$table:F})}),this.checkFilterOptions(),h.visible=!0,l.filter=!0,(0,_vue.nextTick)(()=>{var r=g.value,i=b.value,r=r?r.$el:null,i=i.$el;if(i){var o=k.value,o=o?o.$el:null;if(o){var a=o.offsetWidth,n=o.offsetHeight,s=o.querySelector(".vxe-table--filter-header"),o=o.querySelector(".vxe-table--filter-footer"),c=a/2,f=i.clientWidth-a-10;let e,t;var u={top:p.offsetTop+p.offsetParent.offsetTop+p.offsetHeight+"px"};let l=null;r=i.clientHeight-(r?r.clientHeight/2:0);r<=n&&(l=Math.max(40,r-(o?o.offsetHeight:0)-(s?s.offsetHeight:0))),"left"===d.fixed?e=p.offsetLeft+p.offsetParent.offsetLeft-c:"right"===d.fixed?t=p.offsetParent.offsetWidth-p.offsetLeft+(p.offsetParent.offsetParent.offsetWidth-p.offsetParent.offsetLeft)-d.renderWidth-c:e=p.offsetLeft+p.offsetParent.offsetLeft-c-i.scrollLeft,e?(0<(n=v+a-c+10-m)&&(e-=n),u.left=Math.min(f,Math.max(10,e))+"px"):t&&(0<(r=v+a-c+10-m)&&(t+=r),u.right=Math.max(10,t)+"px"),h.style=u,h.maxHeight=l}}})}F.dispatchEvent("filter-visible",{column:d,field:d.field,property:d.field,filterList:F.getCheckedFilters(),visible:h.visible},e)},handleClearFilter(e){if(e){var{filters:t,filterRender:l}=e;if(t){l=(0,_utils.isEnableConf)(l)?renderer.get(l.name):null;const r=e.filterResetMethod||(l?l.tableFilterResetMethod||l.filterResetMethod:null);t.forEach(e=>{e._checked=!1,e.checked=!1,r||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),r&&r({options:t,column:e,$table:F})}}},confirmFilterEvent(e){var t=d["mouseConfig"];const{filterStore:l,scrollXLoad:r,scrollYLoad:i}=_;var o=h.value,a=p.value,n=l["column"],s=n["field"];const c=[],f=[];n.filters.forEach(e=>{e.checked&&(c.push(e.value),f.push(e.data))});var u=F.getCheckedFilters(),n={$table:F,$event:e,column:n,field:s,property:s,values:c,datas:f,filters:u,filterList:u};o.remote||(F.handleTableData(!0),F.checkSelectionStatus()),t&&a.area&&F.handleFilterEvent&&F.handleFilterEvent(e,n),F.dispatchEvent("filter-change",n,e),F.closeFilter(),F.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=_;if(r||e||i||t)return(r||e)&&F.updateScrollXSpace(),(i||t)&&F.updateScrollYSpace(),F.refreshScroll()}).then(()=>(F.updateCellAreas(),F.recalculate(!0))).then(()=>{setTimeout(()=>F.recalculate(),50)})},handleFilterChangeRadioOption:o,handleFilterChangeMultipleOption:a,handleFilterChangeOption(e,t,l){var r=_["filterStore"];r.multiple?a(0,t,l):o(e,t,l)},handleFilterConfirmFilter:i,handleFilterResetFilter:e=>{var t=_["filterStore"];F.handleClearFilter(t.column),F.confirmFilterEvent(e)}};return Object.assign(Object.assign({},{openFilter(e){const t=(0,_util.handleFieldOrColumn)(F,e);if(t&&t.filters){const l=n["elemStore"],r=t["fixed"];return F.scrollToColumn(t).then(()=>{var e=l[`${r||"main"}-header-wrapper`]||l["main-header-wrapper"],e=e?e.value:null;e&&(e=e.querySelector(`.vxe-header--column.${t.id} .vxe-filter--btn`),(0,_dom.triggerEvent)(e,"click"))})}return(0,_vue.nextTick)()},setFilter(e,t){e=(0,_util.handleFieldOrColumn)(F,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[])),(0,_vue.nextTick)()},clearFilter(e){var t=_["filterStore"],l=n["tableFullColumn"],r=h.value;let i;return e?(i=(0,_util.handleFieldOrColumn)(F,e))&&s.handleClearFilter(i):l.forEach(s.handleClearFilter),e&&i===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),r.remote?(0,_vue.nextTick)():F.updateData()},getCheckedFilters(){var e=n["tableFullColumn"];const o=[];return e.forEach(e=>{var{field:t,filters:l}=e;const r=[],i=[];l&&l.length&&(l.forEach(e=>{e.checked&&(r.push(e.value),i.push(e.data))}),r.length)&&o.push({column:e,field:t,property:t,values:r,datas:i})}),o},updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,(0,_vue.nextTick)()}}),s)},setupGrid(e){return e.extendTableMethods(tableFilterMethodKeys)}});
1
+ "use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{renderer,hooks}=_ui.VxeUI,tableFilterMethodKeys=["openFilter","setFilter","clearFilter","getCheckedFilters","updateFilterOptionStatus"];hooks.add("tableFilterModule",{setupTable(F){const{props:d,reactData:_,internalData:n}=F,{refTableHeader:g,refTableBody:b,refTableFilter:k}=F.getRefMaps(),{computeFilterOpts:h,computeMouseOpts:p}=F.getComputeMaps(),i=e=>{var t=_["filterStore"];t.options.forEach(e=>{e.checked=e._checked}),F.confirmFilterEvent(e)},o=(e,t,l)=>{var r=_["filterStore"];r.options.forEach(e=>{e._checked=!1}),l._checked=t,F.checkFilterOptions(),i(e)},a=(e,t,l)=>{l._checked=t,F.checkFilterOptions()};const s={checkFilterOptions(){var e=_["filterStore"];e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(e,d,t){const{initStore:l,filterStore:h}=_;if(h.column===d&&h.visible)h.visible=!1;else{const{target:p,pageX:v}=e,m=(0,_dom.getDomNode)()["visibleWidth"];var{filters:r,filterMultiple:i,filterRender:o}=d,o=(0,_utils.isEnableConf)(o)?renderer.get(o.name):null;const a=d.filterRecoverMethod||(o?o.tableFilterRecoverMethod||o.filterRecoverMethod:null);n._currFilterParams=t,Object.assign(h,{multiple:i,options:r,column:d,style:null}),h.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||a&&a({option:e,column:d,$table:F})}),this.checkFilterOptions(),h.visible=!0,l.filter=!0,(0,_vue.nextTick)(()=>{var r=g.value,i=b.value,r=r?r.$el:null,i=i.$el;if(i){var o=k.value,o=o?o.$el:null;if(o){var a=o.offsetWidth,n=o.offsetHeight,s=o.querySelector(".vxe-table--filter-header"),o=o.querySelector(".vxe-table--filter-footer"),c=a/2,f=i.clientWidth-a-10;let e,t;var u={top:p.offsetTop+p.offsetParent.offsetTop+p.offsetHeight+"px"};let l=null;r=i.clientHeight-(r?r.clientHeight/2:0);r<=n&&(l=Math.max(40,r-(o?o.offsetHeight:0)-(s?s.offsetHeight:0))),"left"===d.fixed?e=p.offsetLeft+p.offsetParent.offsetLeft-c:"right"===d.fixed?t=p.offsetParent.offsetWidth-p.offsetLeft+(p.offsetParent.offsetParent.offsetWidth-p.offsetParent.offsetLeft)-d.renderWidth-c:e=p.offsetLeft+p.offsetParent.offsetLeft-c-i.scrollLeft,e?(0<(n=v+a-c+10-m)&&(e-=n),u.left=Math.min(f,Math.max(10,e))+"px"):t&&(0<(r=v+a-c+10-m)&&(t+=r),u.right=Math.max(10,t)+"px"),h.style=u,h.maxHeight=l}}})}F.dispatchEvent("filter-visible",{column:d,field:d.field,property:d.field,filterList:F.getCheckedFilters(),visible:h.visible},e)},handleClearFilter(e){if(e){var{filters:t,filterRender:l}=e;if(t){l=(0,_utils.isEnableConf)(l)?renderer.get(l.name):null;const r=e.filterResetMethod||(l?l.tableFilterResetMethod||l.filterResetMethod:null);t.forEach(e=>{e._checked=!1,e.checked=!1,r||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),r&&r({options:t,column:e,$table:F})}}},confirmFilterEvent(e){var t=d["mouseConfig"];const{filterStore:l,scrollXLoad:r,scrollYLoad:i}=_;var o=h.value,a=p.value,n=l["column"],s=n["field"];const c=[],f=[];n.filters.forEach(e=>{e.checked&&(c.push(e.value),f.push(e.data))});var u=F.getCheckedFilters(),n={$table:F,$event:e,column:n,field:s,property:s,values:c,datas:f,filters:u,filterList:u};o.remote||(F.handleTableData(!0),F.checkSelectionStatus()),t&&a.area&&F.handleFilterEvent&&F.handleFilterEvent(e,n),F.dispatchEvent("filter-change",n,e),F.closeFilter(),F.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=_;if(r||e||i||t)return(r||e)&&F.updateScrollXSpace(),(i||t)&&F.updateScrollYSpace(),F.refreshScroll()}).then(()=>(F.updateCellAreas(),F.recalculate(!0))).then(()=>{setTimeout(()=>F.recalculate(),50)})},handleFilterChangeRadioOption:o,handleFilterChangeMultipleOption:a,handleFilterChangeOption(e,t,l){var r=_["filterStore"];r.multiple?a(0,t,l):o(e,t,l)},handleFilterConfirmFilter:i,handleFilterResetFilter:e=>{var t=_["filterStore"];F.handleClearFilter(t.column),F.confirmFilterEvent(e)}};return Object.assign(Object.assign({},{openFilter(e){const t=(0,_util.handleFieldOrColumn)(F,e);if(t&&t.filters){const l=n["elemStore"],r=t["fixed"];return F.scrollToColumn(t).then(()=>{var e=(0,_util.getRefElem)(l[`${r||"main"}-header-wrapper`]||l["main-header-wrapper"]);e&&(e=e.querySelector(`.vxe-header--column.${t.id} .vxe-filter--btn`),(0,_dom.triggerEvent)(e,"click"))})}return(0,_vue.nextTick)()},setFilter(e,t){e=(0,_util.handleFieldOrColumn)(F,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[])),(0,_vue.nextTick)()},clearFilter(e){var t=_["filterStore"],l=n["tableFullColumn"],r=h.value;let i;return e?(i=(0,_util.handleFieldOrColumn)(F,e))&&s.handleClearFilter(i):l.forEach(s.handleClearFilter),e&&i===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),r.remote?(0,_vue.nextTick)():F.updateData()},getCheckedFilters(){var e=n["tableFullColumn"];const o=[];return e.forEach(e=>{var{field:t,filters:l}=e;const r=[],i=[];l&&l.length&&(l.forEach(e=>{e.checked&&(r.push(e.value),i.push(e.data))}),r.length)&&o.push({column:e,field:t,property:t,values:r,datas:i})}),o},updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,(0,_vue.nextTick)()}}),s)},setupGrid(e){return e.extendTableMethods(tableFilterMethodKeys)}});
@@ -2,6 +2,7 @@
2
2
 
3
3
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
4
4
  var _ui = require("../../../ui");
5
+ var _util = require("../../src/util");
5
6
  var _dom = require("../../../ui/src/dom");
6
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
8
  const {
@@ -101,8 +102,7 @@ hooks.add('tableKeyboardModule', {
101
102
  } = internalData;
102
103
  const disX = evnt.clientX;
103
104
  const disY = evnt.clientY;
104
- const bodyWrapperRef = elemStore[`${column.fixed || 'main'}-body-wrapper`] || elemStore['main-body-wrapper'];
105
- const bodyWrapperElem = bodyWrapperRef ? bodyWrapperRef.value : null;
105
+ const bodyWrapperElem = (0, _util.getRefElem)(elemStore[`${column.fixed || 'main'}-body-wrapper`] || elemStore['main-body-wrapper']);
106
106
  if (!bodyWrapperElem) {
107
107
  return;
108
108
  }
@@ -1 +1 @@
1
- "use strict";var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const hooks=_ui.VxeUI["hooks"];function getTargetOffset(e,t){let o=0,l=0;var n,r,a=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(a&&(n=getComputedStyle(e),o-=_xeUtils.default.toNumber(n.paddingTop),l-=_xeUtils.default.toNumber(n.paddingLeft));e&&e!==t;)o+=e.offsetTop,l+=e.offsetLeft,e=e.offsetParent,a&&(r=getComputedStyle(e),o-=_xeUtils.default.toNumber(r.paddingTop),l-=_xeUtils.default.toNumber(r.paddingLeft));return{offsetTop:o,offsetLeft:l}}hooks.add("tableKeyboardModule",{setupTable(E){const{props:g,reactData:S,internalData:D}=E,a=E.getRefMaps()["refElem"],{computeEditOpts:f,computeCheckboxOpts:s,computeMouseOpts:u,computeTreeOpts:d}=E.getComputeMaps();const i=(e,d)=>{var{column:t,cell:o}=d;if("checkbox"===t.type){const n=a.value;var l=D["elemStore"];const i=e.clientX,g=e.clientY;t=l[`${t.fixed||"main"}-body-wrapper`]||l["main-body-wrapper"];const f=t?t.value:null;if(f){const m=f.querySelector(".vxe-table--checkbox-range"),r=document.onmousemove,h=document.onmouseup,v=o.parentElement,p=E.getCheckboxRecords();let c=[];const x=1;l=getTargetOffset(e.target,f);const w=l.offsetTop+e.offsetY,b=l.offsetLeft+e.offsetX,C=f.scrollTop,T=v.offsetHeight,R=v.getBoundingClientRect(),I=g-R.y;let a=null,s=!1,u=1;const M=(e,t)=>{E.dispatchEvent("checkbox-range-"+e,{records:E.getCheckboxRecords(),reserves:E.getCheckboxReserveRecords()},t)},_=e=>{var{clientX:t,clientY:o}=e,t=t-i,o=o-g+(f.scrollTop-C);let l=Math.abs(o),n=Math.abs(t),r=w,a=b;o<x?(r+=o)<x&&(r=x,l=w):l=Math.min(l,f.scrollHeight-w-x),t<x?(a+=t,n>b&&(a=x,n=b)):n=Math.min(n,f.clientWidth-b-x),m.style.height=l+"px",m.style.width=n+"px",m.style.left=a+"px",m.style.top=r+"px",m.style.display="block";t=function(e,t,o,l,n,r){let a=0,c=[],s=0;var u=0<r,d=S["scrollYLoad"],{afterFullData:i,scrollYStore:g}=D;if(d){s=u?n+r:l.height-n+Math.abs(r);d=E.getVTRowIndex(t.row);c=u?i.slice(d,d+Math.ceil(s/g.rowHeight)):i.slice(d-Math.floor(s/g.rowHeight),d+1)}else{s=u?e.clientY-l.y:l.y-e.clientY+l.height;for(var f=u?"next":"previous";o&&a<s;){var m=E.getRowNode(o);m&&(c.push(m.item),a+=o.offsetHeight,o=o[f+"ElementSibling"])}}return c}(e,d,v,R,I,o<x?-l:l);10<l&&t.length!==c.length&&(c=t,e.ctrlKey?t.forEach(e=>{E.handleSelectRow({row:e},-1===p.indexOf(e))}):(E.setAllCheckboxRow(!1),E.handleCheckedCheckboxRow(t,!0,!1)),M("change",e))},k=()=>{clearTimeout(a),a=null},y=r=>{k(),a=setTimeout(()=>{var e,t,o,l,n;a&&({scrollLeft:e,scrollTop:t,clientHeight:o,scrollHeight:l}=f,n=Math.ceil(50*u/T),s?t+o<l?(E.scrollTo(e,t+n),y(r),_(r)):k():t?(E.scrollTo(e,t-n),y(r),_(r)):k())},50)};(0,_dom.addClass)(n,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e["clientY"],o=(0,_dom.getAbsolutePos)(f)["boundingTop"];t<o?(s=!1,u=o-t,a||y(e)):t>o+f.clientHeight?(s=!0,u=t-o-f.clientHeight,a||y(e)):a&&k(),_(e)},document.onmouseup=e=>{k(),(0,_dom.removeClass)(n,"drag--range"),m.removeAttribute("style"),document.onmousemove=r,document.onmouseup=h,M("end",e)},M("start",e)}}};return{moveTabSelected(e,t,o){var l=g["editConfig"],{afterFullData:n,visibleColumn:r}=D,a=f.value;let c,s,u;const d=Object.assign({},e);var e=E.getVTRowIndex(d.row),i=E.getVTColumnIndex(d.column),t=(o.preventDefault(),t?i<=0?0<e&&(s=e-1,c=n[s],u=r.length-1):u=i-1:i>=r.length-1?e<n.length-1&&(s=e+1,c=n[s],u=0):u=i+1,r[u]);t&&(c?(d.rowIndex=s,d.row=c):d.rowIndex=e,d.columnIndex=u,d.column=t,d.cell=E.getCellElement(d.row,d.column),l?"click"!==a.trigger&&"dblclick"!==a.trigger||("row"===a.mode?E.handleEdit(d,o):E.scrollToRow(d.row,d.column).then(()=>E.handleSelected(d,o))):E.scrollToRow(d.row,d.column).then(()=>E.handleSelected(d,o)))},moveCurrentRow(e,t,o){var l=g["treeConfig"];const n=S["currentRow"];var r=D["afterFullData"],a=d.value,a=a.children||a.childrenField;let c;if(o.preventDefault(),n?l?({index:l,items:a}=_xeUtils.default.findTree(r,e=>e===n,{children:a}),e&&0<l?c=a[l-1]:t&&l<a.length-1&&(c=a[l+1])):(a=E.getVTRowIndex(n),e&&0<a?c=r[a-1]:t&&a<r.length-1&&(c=r[a+1])):c=r[0],c){const s={$table:E,row:c,rowIndex:E.getRowIndex(c),$rowIndex:E.getVMRowIndex(c)};E.scrollToRow(c).then(()=>E.triggerCurrentRowEvent(o,s))}},moveSelected(e,t,o,l,n,r){var{afterFullData:a,visibleColumn:c}=D;const s=Object.assign({},e);var e=E.getVTRowIndex(s.row),u=E.getVTColumnIndex(s.column);r.preventDefault(),o&&0<e?(s.rowIndex=e-1,s.row=a[s.rowIndex]):n&&e<a.length-1?(s.rowIndex=e+1,s.row=a[s.rowIndex]):t&&u?(s.columnIndex=u-1,s.column=c[s.columnIndex]):l&&u<c.length-1&&(s.columnIndex=u+1,s.column=c[s.columnIndex]),E.scrollToRow(s.row,s.column).then(()=>{s.cell=E.getCellElement(s.row,s.column),E.handleSelected(s,r)})},triggerHeaderCellMousedownEvent(e,t){var o,l=g["mouseConfig"],n=u.value;l&&n.area&&E.handleHeaderCellAreaEvent&&(l=e.currentTarget,n=(0,_dom.getEventTargetNode)(e,l,"vxe-cell--sort").flag,o=(0,_dom.getEventTargetNode)(e,l,"vxe-cell--filter").flag,E.handleHeaderCellAreaEvent(e,Object.assign({cell:l,triggerSort:n,triggerFilter:o},t))),E.focus(),E.closeMenu&&E.closeMenu()},triggerCellMousedownEvent(e,t){var o=e.currentTarget;t.cell=o,((e,t)=>{var{editConfig:o,checkboxConfig:l,mouseConfig:n}=g,r=s.value,a=u.value,c=f.value;if(n&&a.area&&E.handleCellAreaEvent)return E.handleCellAreaEvent(e,t);l&&r.range&&i(e,t),n&&a.selected&&(o&&"cell"!==c.mode||E.handleSelected(t,e))})(e,t),E.focus(),E.closeFilter(),E.closeMenu&&E.closeMenu()}}}});
1
+ "use strict";var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const hooks=_ui.VxeUI["hooks"];function getTargetOffset(e,t){let o=0,l=0;var r,n,a=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(a&&(r=getComputedStyle(e),o-=_xeUtils.default.toNumber(r.paddingTop),l-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)o+=e.offsetTop,l+=e.offsetLeft,e=e.offsetParent,a&&(n=getComputedStyle(e),o-=_xeUtils.default.toNumber(n.paddingTop),l-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:o,offsetLeft:l}}hooks.add("tableKeyboardModule",{setupTable(y){const{props:g,reactData:S,internalData:D}=y,a=y.getRefMaps()["refElem"],{computeEditOpts:f,computeCheckboxOpts:s,computeMouseOpts:u,computeTreeOpts:i}=y.getComputeMaps();const d=(e,i)=>{var{column:t,cell:o}=i;if("checkbox"===t.type){const r=a.value;var l=D["elemStore"];const d=e.clientX,g=e.clientY,f=(0,_util.getRefElem)(l[`${t.fixed||"main"}-body-wrapper`]||l["main-body-wrapper"]);if(f){const m=f.querySelector(".vxe-table--checkbox-range"),n=document.onmousemove,h=document.onmouseup,v=o.parentElement,p=y.getCheckboxRecords();let c=[];const x=1;t=getTargetOffset(e.target,f);const w=t.offsetTop+e.offsetY,b=t.offsetLeft+e.offsetX,C=f.scrollTop,T=v.offsetHeight,R=v.getBoundingClientRect(),I=g-R.y;let a=null,s=!1,u=1;const _=(e,t)=>{y.dispatchEvent("checkbox-range-"+e,{records:y.getCheckboxRecords(),reserves:y.getCheckboxReserveRecords()},t)},M=e=>{var{clientX:t,clientY:o}=e,t=t-d,o=o-g+(f.scrollTop-C);let l=Math.abs(o),r=Math.abs(t),n=w,a=b;o<x?(n+=o)<x&&(n=x,l=w):l=Math.min(l,f.scrollHeight-w-x),t<x?(a+=t,r>b&&(a=x,r=b)):r=Math.min(r,f.clientWidth-b-x),m.style.height=l+"px",m.style.width=r+"px",m.style.left=a+"px",m.style.top=n+"px",m.style.display="block";t=function(e,t,o,l,r,n){let a=0,c=[],s=0;var u=0<n,i=S["scrollYLoad"],{afterFullData:d,scrollYStore:g}=D;if(i){s=u?r+n:l.height-r+Math.abs(n);i=y.getVTRowIndex(t.row);c=u?d.slice(i,i+Math.ceil(s/g.rowHeight)):d.slice(i-Math.floor(s/g.rowHeight),i+1)}else{s=u?e.clientY-l.y:l.y-e.clientY+l.height;for(var f=u?"next":"previous";o&&a<s;){var m=y.getRowNode(o);m&&(c.push(m.item),a+=o.offsetHeight,o=o[f+"ElementSibling"])}}return c}(e,i,v,R,I,o<x?-l:l);10<l&&t.length!==c.length&&(c=t,e.ctrlKey?t.forEach(e=>{y.handleSelectRow({row:e},-1===p.indexOf(e))}):(y.setAllCheckboxRow(!1),y.handleCheckedCheckboxRow(t,!0,!1)),_("change",e))},E=()=>{clearTimeout(a),a=null},k=n=>{E(),a=setTimeout(()=>{var e,t,o,l,r;a&&({scrollLeft:e,scrollTop:t,clientHeight:o,scrollHeight:l}=f,r=Math.ceil(50*u/T),s?t+o<l?(y.scrollTo(e,t+r),k(n),M(n)):E():t?(y.scrollTo(e,t-r),k(n),M(n)):E())},50)};(0,_dom.addClass)(r,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e["clientY"],o=(0,_dom.getAbsolutePos)(f)["boundingTop"];t<o?(s=!1,u=o-t,a||k(e)):t>o+f.clientHeight?(s=!0,u=t-o-f.clientHeight,a||k(e)):a&&E(),M(e)},document.onmouseup=e=>{E(),(0,_dom.removeClass)(r,"drag--range"),m.removeAttribute("style"),document.onmousemove=n,document.onmouseup=h,_("end",e)},_("start",e)}}};return{moveTabSelected(e,t,o){var l=g["editConfig"],{afterFullData:r,visibleColumn:n}=D,a=f.value;let c,s,u;const i=Object.assign({},e);var e=y.getVTRowIndex(i.row),d=y.getVTColumnIndex(i.column),t=(o.preventDefault(),t?d<=0?0<e&&(s=e-1,c=r[s],u=n.length-1):u=d-1:d>=n.length-1?e<r.length-1&&(s=e+1,c=r[s],u=0):u=d+1,n[u]);t&&(c?(i.rowIndex=s,i.row=c):i.rowIndex=e,i.columnIndex=u,i.column=t,i.cell=y.getCellElement(i.row,i.column),l?"click"!==a.trigger&&"dblclick"!==a.trigger||("row"===a.mode?y.handleEdit(i,o):y.scrollToRow(i.row,i.column).then(()=>y.handleSelected(i,o))):y.scrollToRow(i.row,i.column).then(()=>y.handleSelected(i,o)))},moveCurrentRow(e,t,o){var l=g["treeConfig"];const r=S["currentRow"];var n=D["afterFullData"],a=i.value,a=a.children||a.childrenField;let c;if(o.preventDefault(),r?l?({index:l,items:a}=_xeUtils.default.findTree(n,e=>e===r,{children:a}),e&&0<l?c=a[l-1]:t&&l<a.length-1&&(c=a[l+1])):(a=y.getVTRowIndex(r),e&&0<a?c=n[a-1]:t&&a<n.length-1&&(c=n[a+1])):c=n[0],c){const s={$table:y,row:c,rowIndex:y.getRowIndex(c),$rowIndex:y.getVMRowIndex(c)};y.scrollToRow(c).then(()=>y.triggerCurrentRowEvent(o,s))}},moveSelected(e,t,o,l,r,n){var{afterFullData:a,visibleColumn:c}=D;const s=Object.assign({},e);var e=y.getVTRowIndex(s.row),u=y.getVTColumnIndex(s.column);n.preventDefault(),o&&0<e?(s.rowIndex=e-1,s.row=a[s.rowIndex]):r&&e<a.length-1?(s.rowIndex=e+1,s.row=a[s.rowIndex]):t&&u?(s.columnIndex=u-1,s.column=c[s.columnIndex]):l&&u<c.length-1&&(s.columnIndex=u+1,s.column=c[s.columnIndex]),y.scrollToRow(s.row,s.column).then(()=>{s.cell=y.getCellElement(s.row,s.column),y.handleSelected(s,n)})},triggerHeaderCellMousedownEvent(e,t){var o,l=g["mouseConfig"],r=u.value;l&&r.area&&y.handleHeaderCellAreaEvent&&(l=e.currentTarget,r=(0,_dom.getEventTargetNode)(e,l,"vxe-cell--sort").flag,o=(0,_dom.getEventTargetNode)(e,l,"vxe-cell--filter").flag,y.handleHeaderCellAreaEvent(e,Object.assign({cell:l,triggerSort:r,triggerFilter:o},t))),y.focus(),y.closeMenu&&y.closeMenu()},triggerCellMousedownEvent(e,t){var o=e.currentTarget;t.cell=o,((e,t)=>{var{editConfig:o,checkboxConfig:l,mouseConfig:r}=g,n=s.value,a=u.value,c=f.value;if(r&&a.area&&y.handleCellAreaEvent)return y.handleCellAreaEvent(e,t);l&&n.range&&d(e,t),r&&a.selected&&(o&&"cell"!==c.mode||y.handleSelected(t,e))})(e,t),y.focus(),y.closeFilter(),y.closeMenu&&y.closeMenu()}}}});
@@ -425,7 +425,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
425
425
  'col--valid-error': !!errorValidItem,
426
426
  'col--current': currentColumn === column
427
427
  }, (0, _dom.getPropClass)(compCellClassName, params), (0, _dom.getPropClass)(className, params), (0, _dom.getPropClass)(allCellClassName, params)],
428
- key: columnKey || columnOpts.useKey || rowOpts.useKey ? colid : $columnIndex
428
+ key: columnKey || columnOpts.useKey || rowOpts.useKey || columnOpts.drag ? colid : $columnIndex
429
429
  }, attrs), {
430
430
  style: Object.assign({
431
431
  height: cellHeight
@@ -451,7 +451,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
451
451
  expandColumn,
452
452
  selectRadioRow,
453
453
  pendingRowMaps,
454
- pendingRowList
454
+ pendingRowList,
455
+ isDragColMove
455
456
  } = tableReactData;
456
457
  const {
457
458
  fullAllDataRowIdData
@@ -461,6 +462,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
461
462
  const treeOpts = computeTreeOpts.value;
462
463
  const editOpts = computeEditOpts.value;
463
464
  const rowOpts = computeRowOpts.value;
465
+ const columnOpts = computeColumnOpts.value;
464
466
  const {
465
467
  transform
466
468
  } = treeOpts;
@@ -531,23 +533,34 @@ var _default = exports.default = (0, _vue.defineComponent)({
531
533
  rowChildren = row[childrenField];
532
534
  isExpandTree = rowChildren && rowChildren.length > 0 && !!treeExpandedMaps[rowid];
533
535
  }
534
- rows.push((0, _vue.h)('tr', Object.assign({
535
- class: ['vxe-body--row', treeConfig ? `row--level-${rowLevel}` : '', {
536
- 'row--stripe': stripe && ($xeTable.getVTRowIndex(row) + 1) % 2 === 0,
537
- 'is--new': isNewRow,
538
- 'is--expand-row': isExpandRow,
539
- 'is--expand-tree': isExpandTree,
540
- 'row--new': isNewRow && (editOpts.showStatus || editOpts.showInsertStatus),
541
- 'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
542
- 'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
543
- 'row--pending': pendingRowList.length && !!pendingRowMaps[rowid]
544
- }, (0, _dom.getPropClass)(rowClassName, params)],
536
+ const trClass = ['vxe-body--row', treeConfig ? `row--level-${rowLevel}` : '', {
537
+ 'row--stripe': stripe && ($xeTable.getVTRowIndex(row) + 1) % 2 === 0,
538
+ 'is--new': isNewRow,
539
+ 'is--expand-row': isExpandRow,
540
+ 'is--expand-tree': isExpandTree,
541
+ 'row--new': isNewRow && (editOpts.showStatus || editOpts.showInsertStatus),
542
+ 'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
543
+ 'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
544
+ 'row--pending': pendingRowList.length && !!pendingRowMaps[rowid]
545
+ }, (0, _dom.getPropClass)(rowClassName, params)];
546
+ const tdVNs = tableColumn.map((column, $columnIndex) => {
547
+ return renderColumn(seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
548
+ });
549
+ rows.push(columnOpts.drag ? (0, _vue.h)(_vue.TransitionGroup, Object.assign({
550
+ name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`,
551
+ tag: 'tr',
552
+ class: trClass,
545
553
  rowid: rowid,
546
554
  style: rowStyle ? _xeUtils.default.isFunction(rowStyle) ? rowStyle(params) : rowStyle : null,
547
555
  key: rowKey || rowOpts.useKey || rowOpts.drag || treeConfig ? rowid : $rowIndex
548
- }, trOn), tableColumn.map((column, $columnIndex) => {
549
- return renderColumn(seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
550
- })));
556
+ }, trOn), {
557
+ default: () => tdVNs
558
+ }) : (0, _vue.h)('tr', Object.assign({
559
+ class: trClass,
560
+ rowid: rowid,
561
+ style: rowStyle ? _xeUtils.default.isFunction(rowStyle) ? rowStyle(params) : rowStyle : null,
562
+ key: rowKey || rowOpts.useKey || rowOpts.drag || treeConfig ? rowid : $rowIndex
563
+ }, trOn), tdVNs));
551
564
  // 如果行被展开了
552
565
  if (isExpandRow) {
553
566
  const expandOpts = computeExpandOpts.value;
@@ -684,10 +697,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
684
697
  const leftElem = leftBody ? leftBody.$el : null;
685
698
  const rightElem = rightBody ? rightBody.$el : null;
686
699
  const bodyElem = tableBody.$el;
687
- const bodyYRef = elemStore['main-body-ySpace'];
688
- const bodyYElem = bodyYRef ? bodyYRef.value : null;
689
- const bodyXRef = elemStore['main-body-xSpace'];
690
- const bodyXElem = bodyXRef ? bodyXRef.value : null;
700
+ const bodyYElem = (0, _util.getRefElem)(elemStore['main-body-ySpace']);
701
+ const bodyXElem = (0, _util.getRefElem)(elemStore['main-body-xSpace']);
691
702
  const bodyHeight = scrollYLoad && bodyYElem ? bodyYElem.clientHeight : bodyElem.clientHeight;
692
703
  const bodyWidth = scrollXLoad && bodyXElem ? bodyXElem.clientWidth : bodyElem.clientWidth;
693
704
  const remainSize = isPrevWheelTop === isTopWheel ? Math.max(0, wheelYSize - wheelYTotal) : 0;
@@ -853,6 +864,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
853
864
  const emptyOpts = computeEmptyOpts.value;
854
865
  const keyboardOpts = computeKeyboardOpts.value;
855
866
  const mouseOpts = computeMouseOpts.value;
867
+ const columnOpts = computeColumnOpts.value;
856
868
  // const isMergeLeftFixedExceeded = computeIsMergeLeftFixedExceeded.value
857
869
  // const isMergeRightFixedExceeded = computeIsMergeRightFixedExceeded.value
858
870
  // 如果是使用优化模式
@@ -929,7 +941,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
929
941
  /**
930
942
  * 内容
931
943
  */
932
- rowOpts.drag ? (0, _vue.h)(_vue.TransitionGroup, {
944
+ rowOpts.drag || columnOpts.drag ? (0, _vue.h)(_vue.TransitionGroup, {
945
+ ref: refBodyTBody,
933
946
  name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`,
934
947
  tag: 'tbody'
935
948
  }, {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,renderer}=_ui.VxeUI,renderType="body",lineOffsetSizes={mini:3,small:2,medium:1};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(y){const ue=(0,_vue.inject)("$xeTable",{}),l=(0,_vue.inject)("xesize",null),{xID:_,props:ce,context:b,reactData:ve,internalData:pe}=ue,{refTableBody:m,refTableHeader:p,refTableFooter:g,refTableLeftBody:f,refTableRightBody:w,refScrollXHandleElem:h,refScrollYHandleElem:x}=ue.getRefMaps(),{computeEditOpts:ge,computeMouseOpts:U,computeSYOpts:he,computeEmptyOpts:q,computeKeyboardOpts:j,computeTooltipOpts:we,computeRadioOpts:e,computeExpandOpts:W,computeTreeOpts:c,computeCheckboxOpts:xe,computeCellOpts:ye,computeValidOpts:_e,computeRowOpts:me,computeColumnOpts:be}=ue.getComputeMaps(),T=(0,_vue.ref)(),C=(0,_vue.ref)(),S=(0,_vue.ref)(),O=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.ref)(),v=()=>{if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0},fe=()=>{var e=ce["delayHover"],{lastScrollTime:l,_isResize:t}=ve;return!!(t||l&&Date.now()<l+e)},$=(e,l)=>{let t=1;if(e){var o=c.value,a=e[o.children||o.childrenField];if(a&&ue.isTreeExpandByRow(e))for(let e=0;e<a.length;e++)t+=$(a[e],l)}return t},Te=e=>{var{row:l,column:t}=e,o=pe["afterFullData"],a=ce["treeConfig"],r=c.value,{slots:t,treeNode:s}=t,n=pe["fullAllDataRowIdData"],n=n[(0,_util.getRowid)(ue,l)];let i=0,d=0,u=[];return n&&(i=n.level,d=n._index,u=n.items),t&&t.line?ue.callSlot(t.line,e):(n=ue.eqRow(o[0],l),a&&s&&(r.showLine||r.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${n?1:((e,l,t)=>{let o=1;return t&&(o=$(l[t-1],e)),ve.rowHeight*o-(t?1:12-v())})(e,u,d)}px`,left:i*r.indent+(i?2-v():0)+16+"px"}})])]:[])},K=(e,l,t,o,a,r,s,n,i,d,U,q)=>{var j=pe["fullAllDataRowIdData"],{columnKey:B,height:u,showOverflow:N,cellClassName:A,cellStyle:c,align:F,spanMethod:Y,mouseConfig:V,editConfig:W,editRules:v,tooltipConfig:K}=ce,{tableData:P,overflowX:p,currentColumn:X,scrollYLoad:z,mergeList:g,editStore:h,isAllOverflow:G,validErrorMaps:x}=ve,J=pe["afterFullData"],m=ye.value,f=_e.value,Q=xe.value,w=ge.value,y=we.value,Z=me.value,_=he.value,ee=be.value,{type:le,cellRender:te,editRender:b,align:T,showOverflow:C,className:oe,treeNode:ae,slots:re}=i,m=m["verticalAlign"],h=h["actived"],_=_["rHeight"],S=Z["height"],O=i.id,R=b||te,R=R?renderer.get(R.name):null,se=R?R.tableCellClassName||R.cellClassName:null,D=R?R.tableCellStyle||R.cellStyle:"";const E=y.showAll;var y=ue.getColumnIndex(i),ne=ue.getVTColumnIndex(i),ie=(0,_utils.isEnableConf)(b);let $=t?i.fixed!==t:i.fixed&&p;p=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?N:C,C="ellipsis"===p;const M="title"===p,I=!0===p||"tooltip"===p;p=M||I||C;let de;var H={},j=j[l],T=T||(R?R.tableCellAlign:"")||F,R=x[l+":"+O],F=v&&f.showMessage&&("default"===f.message?u||1<P.length:"inline"===f.message),x={colid:O};const L={$table:ue,$grid:ue.xegrid,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:r,$rowIndex:s,_rowIndex:n,column:i,columnIndex:y,$columnIndex:d,_columnIndex:ne,fixed:t,type:renderType,isHidden:$,level:o,visibleData:J,data:P,items:q};if((M||I||E||K)&&(H.onMouseenter=e=>{fe()||(M?(0,_dom.updateCellTitle)(e.currentTarget,i):(I||E)&&ue.triggerBodyTooltipEvent(e,L),ue.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},L),e))}),(I||E||K)&&(H.onMouseleave=e=>{fe()||((I||E)&&ue.handleTargetLeaveEvent(e),ue.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},L),e))}),(Q.range||V)&&(H.onMousedown=e=>{ue.triggerCellMousedownEvent(e,L)}),H.onClick=e=>{ue.triggerCellClickEvent(e,L)},H.onDblclick=e=>{ue.triggerCellDblclickEvent(e,L)},g.length){v=(0,_util.mergeBodyMethod)(g,n,ne);if(v){var{rowspan:u,colspan:e}=v;if(!u||!e)return null;1<u&&(x.rowspan=u),1<e&&(x.colspan=e)}}else if(Y){var{rowspan:l=1,colspan:r=1}=Y(L)||{};if(!l||!r)return null;1<l&&(x.rowspan=l),1<r&&(x.colspan=r)}!($=$&&g&&(1<x.colspan||1<x.rowspan)?!1:$)&&W&&(b||te)&&(w.showStatus||w.showUpdateStatus)&&(de=ue.isUpdateByRow(a,i.field));s=[];$&&N&&G?s.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":M,"c--tooltip":I,"c--ellipsis":C}],style:{maxHeight:p&&(_||S)?`${_||S}px`:""}})):(s.push(...Te(L),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":M,"c--tooltip":I,"c--ellipsis":C}],style:{maxHeight:p&&(_||S)?`${_||S}px`:""},title:M?ue.getCellLabel(a,i):null},i.renderCell(L))),F&&R&&(y=R.rule,t=re?re.valid:null,o=Object.assign(Object.assign({},L),R),s.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(f.className,o)],style:y&&y.maxWidth?{width:y.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[t?ue.callSlot(t,o):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let k="";return p&&(_||S)?k=`${_||S}px`:z&&!p&&(k=`${j.height||24}px`),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",O,{["col--"+T]:T,["col--vertical-"+m]:m,["col--"+le]:le,"col--last":d===U.length-1,"col--tree-node":ae,"col--edit":ie,"col--ellipsis":p,"fixed--hidden":$,"col--dirty":de,"col--active":W&&ie&&h.row===a&&(h.column===i||"row"===w.mode),"col--valid-error":!!R,"col--current":X===i},(0,_dom.getPropClass)(se,L),(0,_dom.getPropClass)(oe,L),(0,_dom.getPropClass)(A,L)],key:B||ee.useKey||Z.useKey?O:d},x),{style:Object.assign({height:k},_xeUtils.default.isFunction(D)?D(L):D,_xeUtils.default.isFunction(c)?c(L):c)}),H),s)},V=(x,m,f)=>{const{stripe:w,rowKey:y,highlightHoverRow:_,rowClassName:b,rowStyle:T,showOverflow:C,editConfig:S,treeConfig:O}=ce,{hasFixedColumn:R,treeExpandedMaps:D,scrollYLoad:E,rowExpandedMaps:$,expandColumn:M,selectRadioRow:I,pendingRowMaps:H,pendingRowList:L}=ve,k=pe["fullAllDataRowIdData"],U=xe.value,q=e.value,j=c.value,B=ge.value,N=me.value,A=j["transform"],F=j.children||j.childrenField,Y=[];return m.forEach((t,o)=>{var e={};let a;a=ue.getRowIndex(t),(N.isHover||_)&&(e.onMouseenter=e=>{fe()||ue.triggerHoverEvent(e,{row:t,rowIndex:a})},e.onMouseleave=()=>{fe()||ue.clearHoverRow()}),N.drag&&(e.onDragstart=ue.handleRowDragDragstartEvent,e.onDragend=ue.handleRowDragDragendEvent,e.onDragover=ue.handleRowDragDragoverEvent);const r=(0,_util.getRowid)(ue,t);var l=k[r];let s=0,n=-1,i=0;l&&(s=l.level,n=l.seq,i=l._index);var d,u,c,l={$table:ue,seq:n,rowid:r,fixed:x,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:i},v=M&&!!$[r];let p=!1,g=[],h=!1;S&&(h=ue.isInsertByRow(t)),!O||E||A||(g=t[F],p=g&&0<g.length&&!!D[r]),Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--row",O?"row--level-"+s:"",{"row--stripe":w&&(ue.getVTRowIndex(t)+1)%2==0,"is--new":h,"is--expand-row":v,"is--expand-tree":p,"row--new":h&&(B.showStatus||B.showInsertStatus),"row--radio":q.highlight&&ue.eqRow(I,t),"row--checked":U.highlight&&ue.isCheckedByCheckboxRow(t),"row--pending":L.length&&!!H[r]},(0,_dom.getPropClass)(b,l)],rowid:r,style:T?_xeUtils.default.isFunction(T)?T(l):T:null,key:y||N.useKey||N.drag||O?r:o},e),f.map((e,l)=>K(n,r,x,s,t,a,o,i,e,l,f,m)))),v&&({height:l,padding:v}=W.value,d={},u=(l&&(d.height=l+"px"),O&&(d.paddingLeft=s*j.indent+30+"px"),M)["showOverflow"],u=_xeUtils.default.isUndefined(u)||_xeUtils.default.isNull(u)?C:u,c={$table:ue,seq:n,column:M,fixed:x,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:i},Y.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+r,style:T?_xeUtils.default.isFunction(T)?T(c):T:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":x&&!R,"col--ellipsis":u},colspan:f.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:d},[M.renderData(c)])])]))),p&&Y.push(...V(x,g,f))}),Y},B=e=>{var l=y["fixedType"],{lastScrollTop:t,lastScrollLeft:o}=pe,a=p.value,r=m.value,s=g.value,n=f.value,i=w.value,d=T.value,a=a?a.$el:null,s=s?s.$el:null,r=r.$el,n=n?n.$el:null,i=i?i.$el:null,d=d.scrollTop,u=r.scrollLeft,o=u!==o,t=d!==t,c=h.value,v=x.value;v?v.scrollTop=d:t&&(n&&"left"===l?((0,_dom.setScrollTop)(r,d),(0,_dom.setScrollTop)(i,d)):i&&"right"===l?((0,_dom.setScrollTop)(r,d),(0,_dom.setScrollTop)(n,d)):((0,_dom.setScrollTop)(n,d),(0,_dom.setScrollTop)(i,d)),ue.handleScrollEvent(e,t,o,d,u,{type:renderType,fixed:l})),c?c.scrollLeft=u:o&&((0,_dom.setScrollLeft)(a,u),(0,_dom.setScrollLeft)(s,u),ue.handleScrollEvent(e,t,o,d,u,{type:renderType,fixed:l}))};let M,I=0,H=0,L=0,k=!1;const N=(a,r,e,s,n)=>{var l=pe["elemStore"],{scrollXLoad:t,scrollYLoad:o}=ve,i=m.value,d=f.value,u=w.value;const c=d?d.$el:null,v=u?u.$el:null,p=i.$el;d=l["main-body-ySpace"],u=d?d.value:null,i=l["main-body-xSpace"],d=i?i.value:null;const g=(o&&u?u:p).clientHeight,h=(t&&d?d:p).clientWidth;l=k===r?Math.max(0,I-L):0;k=r,I=Math.abs(r?e-l:e+l),H=0,L=0,clearTimeout(M);const x=()=>{var e,l,t,o;L<I&&(e=y["fixedType"],{scrollTop:o,clientHeight:l,scrollHeight:t}=(H=Math.max(5,Math.floor(1.5*H)),(L+=H)>I&&(H-=L-I),p),o=o+H*(r?-1:1),p.scrollTop=o,c&&(c.scrollTop=o),v&&(v.scrollTop=o),(r?o<t-l:0<=o)&&(M=setTimeout(x,10)),ue.dispatchEvent("scroll",{type:renderType,fixed:e,scrollTop:p.scrollTop,scrollLeft:p.scrollLeft,scrollHeight:p.scrollHeight,scrollWidth:p.scrollWidth,bodyHeight:g,bodyWidth:h,isX:s,isY:n},a))};x()},A=e=>{var{deltaY:l,deltaX:t}=e,o=ce["highlightHoverRow"],a=ve["scrollYLoad"],{lastScrollTop:r,lastScrollLeft:s}=pe,n=me.value,i=m.value,d=T.value,i=i.$el,u=l<0;(u?d.scrollTop<=0:d.scrollTop>=d.scrollHeight-d.clientHeight)||(d=d.scrollTop+l,t=(i=i.scrollLeft+t)!==s,(s=d!==r)&&(e.preventDefault(),pe.lastScrollTop=d,pe.lastScrollLeft=i,ve.lastScrollTime=Date.now(),(n.isHover||o)&&ue.clearHoverRow(),N(e,u,l,t,s),a)&&ue.triggerScrollYEvent(e))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=y["fixedType"],l=pe["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=T,l[e+"table"]=C,l[e+"colgroup"]=S,l[e+"list"]=O,l[e+"xSpace"]=R,l[e+"ySpace"]=D,l[e+"emptyBlock"]=E})}),(0,_vue.onBeforeUnmount)(()=>{clearTimeout(M)}),(0,_vue.onUnmounted)(()=>{var e=y["fixedType"],l=pe["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{let{fixedColumn:e,fixedType:l,tableColumn:t}=y;var{keyboardConfig:o,showOverflow:a,spanMethod:r,mouseConfig:s}=ce;const{tableData:n,mergeList:i,scrollYLoad:d,isAllOverflow:u,isDragRowMove:c}=ve;var v=pe["visibleColumn"],p=b["slots"],g=me.value,h=he.value,x=q.value,m=j.value,f=U.value;l&&(t=ve.expandColumn||!(d||a&&u)||i.length||r||o&&m.isMerge?v:e);let w;a=p?p.empty:null;return w=a?ue.callSlot(a,{$table:ue,$grid:ue.xegrid}):(o=(r=x.name?renderer.get(x.name):null)?r.renderTableEmpty||r.renderTableEmptyView||r.renderEmpty:null)?(0,_vn.getSlotVNs)(o(x,{$table:ue})):ce.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",Object.assign({ref:T,class:["vxe-table--body-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_,onScroll:B},"wheel"===h.mode?{onWheel:A}:{}),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:R,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:D,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:C,class:"vxe-table--body",xid:_,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:S},t.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),g.drag?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-body--row-list"+(c?"":"-disabled"),tag:"tbody"},{default:()=>V(l,n,t)}):(0,_vue.h)("tbody",{ref:O},V(l,n,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&f.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},f.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){ue.triggerCellExtendMousedownEvent(e,{$table:ue,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"})]):null,l?null:(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:E},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},w)])])}}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,renderer}=_ui.VxeUI,renderType="body",lineOffsetSizes={mini:3,small:2,medium:1};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(_){const ue=(0,_vue.inject)("$xeTable",{}),l=(0,_vue.inject)("xesize",null),{xID:b,props:ce,context:T,reactData:ve,internalData:pe}=ue,{refTableBody:m,refTableHeader:p,refTableFooter:g,refTableLeftBody:f,refTableRightBody:w,refScrollXHandleElem:h,refScrollYHandleElem:k}=ue.getRefMaps(),{computeEditOpts:ge,computeMouseOpts:U,computeSYOpts:he,computeEmptyOpts:j,computeKeyboardOpts:q,computeTooltipOpts:ye,computeRadioOpts:e,computeExpandOpts:X,computeTreeOpts:c,computeCheckboxOpts:xe,computeCellOpts:_e,computeValidOpts:be,computeRowOpts:me,computeColumnOpts:fe}=ue.getComputeMaps(),C=(0,_vue.ref)(),S=(0,_vue.ref)(),R=(0,_vue.ref)(),O=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.ref)(),$=(0,_vue.ref)(),v=()=>{if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0},we=()=>{var e=ce["delayHover"],{lastScrollTime:l,_isResize:t}=ve;return!!(t||l&&Date.now()<l+e)},x=(e,l)=>{let t=1;if(e){var o=c.value,a=e[o.children||o.childrenField];if(a&&ue.isTreeExpandByRow(e))for(let e=0;e<a.length;e++)t+=x(a[e],l)}return t},Te=e=>{var{row:l,column:t}=e,o=pe["afterFullData"],a=ce["treeConfig"],r=c.value,{slots:t,treeNode:s}=t,n=pe["fullAllDataRowIdData"],n=n[(0,_util.getRowid)(ue,l)];let i=0,d=0,u=[];return n&&(i=n.level,d=n._index,u=n.items),t&&t.line?ue.callSlot(t.line,e):(n=ue.eqRow(o[0],l),a&&s&&(r.showLine||r.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${n?1:((e,l,t)=>{let o=1;return t&&(o=x(l[t-1],e)),ve.rowHeight*o-(t?1:12-v())})(e,u,d)}px`,left:i*r.indent+(i?2-v():0)+16+"px"}})])]:[])},z=(e,l,t,o,a,r,s,n,i,d,U,j)=>{var q=pe["fullAllDataRowIdData"],{columnKey:B,height:u,showOverflow:N,cellClassName:A,cellStyle:c,align:F,spanMethod:Y,mouseConfig:V,editConfig:K,editRules:v,tooltipConfig:W}=ce,{tableData:P,overflowX:p,currentColumn:X,scrollYLoad:z,mergeList:g,editStore:h,isAllOverflow:G,validErrorMaps:x}=ve,J=pe["afterFullData"],m=_e.value,f=be.value,Q=xe.value,w=ge.value,y=ye.value,Z=me.value,_=he.value,ee=fe.value,{type:le,cellRender:te,editRender:b,align:T,showOverflow:C,className:oe,treeNode:ae,slots:re}=i,m=m["verticalAlign"],h=h["actived"],_=_["rHeight"],S=Z["height"],R=i.id,O=b||te,O=O?renderer.get(O.name):null,se=O?O.tableCellClassName||O.cellClassName:null,D=O?O.tableCellStyle||O.cellStyle:"";const E=y.showAll;var y=ue.getColumnIndex(i),ne=ue.getVTColumnIndex(i),ie=(0,_utils.isEnableConf)(b);let $=t?i.fixed!==t:i.fixed&&p;p=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?N:C,C="ellipsis"===p;const M="title"===p,I=!0===p||"tooltip"===p;p=M||I||C;let de;var H={},q=q[l],T=T||(O?O.tableCellAlign:"")||F,O=x[l+":"+R],F=v&&f.showMessage&&("default"===f.message?u||1<P.length:"inline"===f.message),x={colid:R};const L={$table:ue,$grid:ue.xegrid,isEdit:!1,seq:e,rowid:l,row:a,rowIndex:r,$rowIndex:s,_rowIndex:n,column:i,columnIndex:y,$columnIndex:d,_columnIndex:ne,fixed:t,type:renderType,isHidden:$,level:o,visibleData:J,data:P,items:j};if((M||I||E||W)&&(H.onMouseenter=e=>{we()||(M?(0,_dom.updateCellTitle)(e.currentTarget,i):(I||E)&&ue.triggerBodyTooltipEvent(e,L),ue.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},L),e))}),(I||E||W)&&(H.onMouseleave=e=>{we()||((I||E)&&ue.handleTargetLeaveEvent(e),ue.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},L),e))}),(Q.range||V)&&(H.onMousedown=e=>{ue.triggerCellMousedownEvent(e,L)}),H.onClick=e=>{ue.triggerCellClickEvent(e,L)},H.onDblclick=e=>{ue.triggerCellDblclickEvent(e,L)},g.length){v=(0,_util.mergeBodyMethod)(g,n,ne);if(v){var{rowspan:u,colspan:e}=v;if(!u||!e)return null;1<u&&(x.rowspan=u),1<e&&(x.colspan=e)}}else if(Y){var{rowspan:l=1,colspan:r=1}=Y(L)||{};if(!l||!r)return null;1<l&&(x.rowspan=l),1<r&&(x.colspan=r)}!($=$&&g&&(1<x.colspan||1<x.rowspan)?!1:$)&&K&&(b||te)&&(w.showStatus||w.showUpdateStatus)&&(de=ue.isUpdateByRow(a,i.field));s=[];$&&N&&G?s.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":M,"c--tooltip":I,"c--ellipsis":C}],style:{maxHeight:p&&(_||S)?`${_||S}px`:""}})):(s.push(...Te(L),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":M,"c--tooltip":I,"c--ellipsis":C}],style:{maxHeight:p&&(_||S)?`${_||S}px`:""},title:M?ue.getCellLabel(a,i):null},i.renderCell(L))),F&&O&&(y=O.rule,t=re?re.valid:null,o=Object.assign(Object.assign({},L),O),s.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(f.className,o)],style:y&&y.maxWidth?{width:y.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[t?ue.callSlot(t,o):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},O.content)]])]))));let k="";return p&&(_||S)?k=`${_||S}px`:z&&!p&&(k=`${q.height||24}px`),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",R,{["col--"+T]:T,["col--vertical-"+m]:m,["col--"+le]:le,"col--last":d===U.length-1,"col--tree-node":ae,"col--edit":ie,"col--ellipsis":p,"fixed--hidden":$,"col--dirty":de,"col--active":K&&ie&&h.row===a&&(h.column===i||"row"===w.mode),"col--valid-error":!!O,"col--current":X===i},(0,_dom.getPropClass)(se,L),(0,_dom.getPropClass)(oe,L),(0,_dom.getPropClass)(A,L)],key:B||ee.useKey||Z.useKey||ee.drag?R:d},x),{style:Object.assign({height:k},_xeUtils.default.isFunction(D)?D(L):D,_xeUtils.default.isFunction(c)?c(L):c)}),H),s)},P=(m,f,w)=>{const{stripe:y,rowKey:_,highlightHoverRow:b,rowClassName:T,rowStyle:C,showOverflow:S,editConfig:R,treeConfig:O}=ce,{hasFixedColumn:D,treeExpandedMaps:E,scrollYLoad:$,rowExpandedMaps:M,expandColumn:I,selectRadioRow:H,pendingRowMaps:L,pendingRowList:k,isDragColMove:U}=ve,j=pe["fullAllDataRowIdData"],q=xe.value,B=e.value,N=c.value,A=ge.value,F=me.value,Y=fe.value,V=N["transform"],K=N.children||N.childrenField,W=[];return f.forEach((t,o)=>{var e={};let a;a=ue.getRowIndex(t),(F.isHover||b)&&(e.onMouseenter=e=>{we()||ue.triggerHoverEvent(e,{row:t,rowIndex:a})},e.onMouseleave=()=>{we()||ue.clearHoverRow()}),F.drag&&(e.onDragstart=ue.handleRowDragDragstartEvent,e.onDragend=ue.handleRowDragDragendEvent,e.onDragover=ue.handleRowDragDragoverEvent);const r=(0,_util.getRowid)(ue,t);var l=j[r];let s=0,n=-1,i=0;l&&(s=l.level,n=l.seq,i=l._index);var l={$table:ue,seq:n,rowid:r,fixed:m,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:i},d=I&&!!M[r];let u=!1,c=[],v=!1;R&&(v=ue.isInsertByRow(t)),!O||$||V||(c=t[K],u=c&&0<c.length&&!!E[r]);var p,g,h=["vxe-body--row",O?"row--level-"+s:"",{"row--stripe":y&&(ue.getVTRowIndex(t)+1)%2==0,"is--new":v,"is--expand-row":d,"is--expand-tree":u,"row--new":v&&(A.showStatus||A.showInsertStatus),"row--radio":B.highlight&&ue.eqRow(H,t),"row--checked":q.highlight&&ue.isCheckedByCheckboxRow(t),"row--pending":k.length&&!!L[r]},(0,_dom.getPropClass)(T,l)];const x=w.map((e,l)=>z(n,r,m,s,t,a,o,i,e,l,w,f));W.push(Y.drag?(0,_vue.h)(_vue.TransitionGroup,Object.assign({name:"vxe-header--col-list"+(U?"":"-disabled"),tag:"tr",class:h,rowid:r,style:C?_xeUtils.default.isFunction(C)?C(l):C:null,key:_||F.useKey||F.drag||O?r:o},e),{default:()=>x}):(0,_vue.h)("tr",Object.assign({class:h,rowid:r,style:C?_xeUtils.default.isFunction(C)?C(l):C:null,key:_||F.useKey||F.drag||O?r:o},e),x)),d&&({height:h,padding:l}=X.value,d={},p=(h&&(d.height=h+"px"),O&&(d.paddingLeft=s*N.indent+30+"px"),I)["showOverflow"],p=_xeUtils.default.isUndefined(p)||_xeUtils.default.isNull(p)?S:p,g={$table:ue,seq:n,column:I,fixed:m,type:renderType,level:s,row:t,rowIndex:a,$rowIndex:o,_rowIndex:i},W.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+r,style:C?_xeUtils.default.isFunction(C)?C(g):C:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":m&&!D,"col--ellipsis":p},colspan:w.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":h},style:d},[I.renderData(g)])])]))),u&&W.push(...P(m,c,w))}),W},B=e=>{var l=_["fixedType"],{lastScrollTop:t,lastScrollLeft:o}=pe,a=p.value,r=m.value,s=g.value,n=f.value,i=w.value,d=C.value,a=a?a.$el:null,s=s?s.$el:null,r=r.$el,n=n?n.$el:null,i=i?i.$el:null,d=d.scrollTop,u=r.scrollLeft,o=u!==o,t=d!==t,c=h.value,v=k.value;v?v.scrollTop=d:t&&(n&&"left"===l?((0,_dom.setScrollTop)(r,d),(0,_dom.setScrollTop)(i,d)):i&&"right"===l?((0,_dom.setScrollTop)(r,d),(0,_dom.setScrollTop)(n,d)):((0,_dom.setScrollTop)(n,d),(0,_dom.setScrollTop)(i,d)),ue.handleScrollEvent(e,t,o,d,u,{type:renderType,fixed:l})),c?c.scrollLeft=u:o&&((0,_dom.setScrollLeft)(a,u),(0,_dom.setScrollLeft)(s,u),ue.handleScrollEvent(e,t,o,d,u,{type:renderType,fixed:l}))};let y,M=0,I=0,H=0,L=!1;const N=(a,r,e,s,n)=>{var l=pe["elemStore"],{scrollXLoad:t,scrollYLoad:o}=ve,i=m.value,d=f.value,u=w.value;const c=d?d.$el:null,v=u?u.$el:null,p=i.$el;d=(0,_util.getRefElem)(l["main-body-ySpace"]),u=(0,_util.getRefElem)(l["main-body-xSpace"]);const g=(o&&d?d:p).clientHeight,h=(t&&u?u:p).clientWidth;i=L===r?Math.max(0,M-H):0;L=r,M=Math.abs(r?e-i:e+i),I=0,H=0,clearTimeout(y);const x=()=>{var e,l,t,o;H<M&&(e=_["fixedType"],{scrollTop:o,clientHeight:l,scrollHeight:t}=(I=Math.max(5,Math.floor(1.5*I)),(H+=I)>M&&(I-=H-M),p),o=o+I*(r?-1:1),p.scrollTop=o,c&&(c.scrollTop=o),v&&(v.scrollTop=o),(r?o<t-l:0<=o)&&(y=setTimeout(x,10)),ue.dispatchEvent("scroll",{type:renderType,fixed:e,scrollTop:p.scrollTop,scrollLeft:p.scrollLeft,scrollHeight:p.scrollHeight,scrollWidth:p.scrollWidth,bodyHeight:g,bodyWidth:h,isX:s,isY:n},a))};x()},A=e=>{var{deltaY:l,deltaX:t}=e,o=ce["highlightHoverRow"],a=ve["scrollYLoad"],{lastScrollTop:r,lastScrollLeft:s}=pe,n=me.value,i=m.value,d=C.value,i=i.$el,u=l<0;(u?d.scrollTop<=0:d.scrollTop>=d.scrollHeight-d.clientHeight)||(d=d.scrollTop+l,t=(i=i.scrollLeft+t)!==s,(s=d!==r)&&(e.preventDefault(),pe.lastScrollTop=d,pe.lastScrollLeft=i,ve.lastScrollTime=Date.now(),(n.isHover||o)&&ue.clearHoverRow(),N(e,u,l,t,s),a)&&ue.triggerScrollYEvent(e))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=_["fixedType"],l=pe["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=C,l[e+"table"]=S,l[e+"colgroup"]=R,l[e+"list"]=O,l[e+"xSpace"]=D,l[e+"ySpace"]=E,l[e+"emptyBlock"]=$})}),(0,_vue.onBeforeUnmount)(()=>{clearTimeout(y)}),(0,_vue.onUnmounted)(()=>{var e=_["fixedType"],l=pe["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{let{fixedColumn:e,fixedType:l,tableColumn:t}=_;var{keyboardConfig:o,showOverflow:a,spanMethod:r,mouseConfig:s}=ce;const{tableData:n,mergeList:i,scrollYLoad:d,isAllOverflow:u,isDragRowMove:c}=ve;var v=pe["visibleColumn"],p=T["slots"],g=me.value,h=he.value,x=j.value,m=q.value,f=U.value,w=fe.value;l&&(t=ve.expandColumn||!(d||a&&u)||i.length||r||o&&m.isMerge?v:e);let y;a=p?p.empty:null;return y=a?ue.callSlot(a,{$table:ue,$grid:ue.xegrid}):(o=(r=x.name?renderer.get(x.name):null)?r.renderTableEmpty||r.renderTableEmptyView||r.renderEmpty:null)?(0,_vn.getSlotVNs)(o(x,{$table:ue})):ce.emptyText||getI18n("vxe.table.emptyText"),(0,_vue.h)("div",Object.assign({ref:C,class:["vxe-table--body-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:b,onScroll:B},"wheel"===h.mode?{onWheel:A}:{}),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:D,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:E,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--body",xid:b,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:R},t.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),g.drag||w.drag?(0,_vue.h)(_vue.TransitionGroup,{ref:O,name:"vxe-body--row-list"+(c?"":"-disabled"),tag:"tbody"},{default:()=>P(l,n,t)}):(0,_vue.h)("tbody",{ref:O},P(l,n,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&f.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},f.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){ue.triggerCellExtendMousedownEvent(e,{$table:ue,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"})]):null,l?null:(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:$},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},y)])])}}});