vxe-table 4.12.0-beta.2 → 4.12.0-beta.21

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 (160) hide show
  1. package/es/grid/src/grid.js +61 -44
  2. package/es/locale/lang/ar-EG.js +7 -1
  3. package/es/locale/lang/de-DE.js +7 -1
  4. package/es/locale/lang/en-US.js +7 -1
  5. package/es/locale/lang/es-ES.js +7 -1
  6. package/es/locale/lang/fr-FR.js +7 -1
  7. package/es/locale/lang/hu-HU.js +7 -1
  8. package/es/locale/lang/hy-AM.js +7 -1
  9. package/es/locale/lang/id-ID.js +7 -1
  10. package/es/locale/lang/it-IT.js +7 -1
  11. package/es/locale/lang/ja-JP.js +7 -1
  12. package/es/locale/lang/ko-KR.js +7 -1
  13. package/es/locale/lang/nb-NO.js +7 -1
  14. package/es/locale/lang/pt-BR.js +7 -1
  15. package/es/locale/lang/ru-RU.js +7 -1
  16. package/es/locale/lang/th-TH.js +7 -1
  17. package/es/locale/lang/ug-CN.js +7 -1
  18. package/es/locale/lang/uk-UA.js +7 -1
  19. package/es/locale/lang/vi-VN.js +7 -1
  20. package/es/locale/lang/zh-CHT.js +7 -1
  21. package/es/locale/lang/zh-CN.js +7 -1
  22. package/es/style.css +1 -1
  23. package/es/table/module/edit/hook.js +8 -10
  24. package/es/table/module/filter/panel.js +12 -2
  25. package/es/table/module/keyboard/hook.js +47 -4
  26. package/es/table/module/validator/hook.js +2 -2
  27. package/es/table/render/index.js +91 -60
  28. package/es/table/src/body.js +22 -17
  29. package/es/table/src/cell.js +25 -20
  30. package/es/table/src/footer.js +9 -4
  31. package/es/table/src/header.js +2 -2
  32. package/es/table/src/props.js +4 -0
  33. package/es/table/src/table.js +616 -411
  34. package/es/table/src/util.js +58 -3
  35. package/es/ui/index.js +1 -1
  36. package/es/ui/src/log.js +1 -1
  37. package/helper/vetur/attributes.json +1 -1
  38. package/helper/vetur/tags.json +1 -1
  39. package/lib/grid/src/grid.js +58 -48
  40. package/lib/grid/src/grid.min.js +1 -1
  41. package/lib/index.umd.js +1281 -12149
  42. package/lib/index.umd.min.js +1 -1
  43. package/lib/locale/lang/ar-EG.js +7 -1
  44. package/lib/locale/lang/ar-EG.min.js +1 -1
  45. package/lib/locale/lang/de-DE.js +7 -1
  46. package/lib/locale/lang/de-DE.min.js +1 -1
  47. package/lib/locale/lang/en-US.js +7 -1
  48. package/lib/locale/lang/en-US.min.js +1 -1
  49. package/lib/locale/lang/en-US.umd.js +7 -1
  50. package/lib/locale/lang/es-ES.js +7 -1
  51. package/lib/locale/lang/es-ES.min.js +1 -1
  52. package/lib/locale/lang/es-ES.umd.js +7 -1
  53. package/lib/locale/lang/fr-FR.js +7 -1
  54. package/lib/locale/lang/fr-FR.min.js +1 -1
  55. package/lib/locale/lang/hu-HU.js +7 -1
  56. package/lib/locale/lang/hu-HU.min.js +1 -1
  57. package/lib/locale/lang/hu-HU.umd.js +7 -1
  58. package/lib/locale/lang/hy-AM.js +7 -1
  59. package/lib/locale/lang/hy-AM.min.js +1 -1
  60. package/lib/locale/lang/id-ID.js +7 -1
  61. package/lib/locale/lang/id-ID.min.js +1 -1
  62. package/lib/locale/lang/it-IT.js +7 -1
  63. package/lib/locale/lang/it-IT.min.js +1 -1
  64. package/lib/locale/lang/ja-JP.js +7 -1
  65. package/lib/locale/lang/ja-JP.min.js +1 -1
  66. package/lib/locale/lang/ja-JP.umd.js +7 -1
  67. package/lib/locale/lang/ko-KR.js +7 -1
  68. package/lib/locale/lang/ko-KR.min.js +1 -1
  69. package/lib/locale/lang/ko-KR.umd.js +7 -1
  70. package/lib/locale/lang/nb-NO.js +7 -1
  71. package/lib/locale/lang/nb-NO.min.js +1 -1
  72. package/lib/locale/lang/pt-BR.js +7 -1
  73. package/lib/locale/lang/pt-BR.min.js +1 -1
  74. package/lib/locale/lang/pt-BR.umd.js +7 -1
  75. package/lib/locale/lang/ru-RU.js +7 -1
  76. package/lib/locale/lang/ru-RU.min.js +1 -1
  77. package/lib/locale/lang/ru-RU.umd.js +7 -1
  78. package/lib/locale/lang/th-TH.js +7 -1
  79. package/lib/locale/lang/th-TH.min.js +1 -1
  80. package/lib/locale/lang/ug-CN.js +7 -1
  81. package/lib/locale/lang/ug-CN.min.js +1 -1
  82. package/lib/locale/lang/uk-UA.js +7 -1
  83. package/lib/locale/lang/uk-UA.min.js +1 -1
  84. package/lib/locale/lang/uk-UA.umd.js +7 -1
  85. package/lib/locale/lang/vi-VN.js +7 -1
  86. package/lib/locale/lang/vi-VN.min.js +1 -1
  87. package/lib/locale/lang/zh-CHT.js +7 -1
  88. package/lib/locale/lang/zh-CHT.min.js +1 -1
  89. package/lib/locale/lang/zh-CN.js +7 -1
  90. package/lib/locale/lang/zh-CN.min.js +1 -1
  91. package/lib/locale/lang/zh-CN.umd.js +7 -1
  92. package/lib/style.css +1 -1
  93. package/lib/table/module/edit/hook.js +10 -11
  94. package/lib/table/module/edit/hook.min.js +1 -1
  95. package/lib/table/module/filter/panel.js +8 -2
  96. package/lib/table/module/filter/panel.min.js +1 -1
  97. package/lib/table/module/keyboard/hook.js +51 -4
  98. package/lib/table/module/keyboard/hook.min.js +1 -1
  99. package/lib/table/module/validator/hook.js +3 -3
  100. package/lib/table/module/validator/hook.min.js +1 -1
  101. package/lib/table/render/index.js +100 -65
  102. package/lib/table/render/index.min.js +1 -1
  103. package/lib/table/src/body.js +27 -17
  104. package/lib/table/src/body.min.js +1 -1
  105. package/lib/table/src/cell.js +37 -21
  106. package/lib/table/src/cell.min.js +1 -1
  107. package/lib/table/src/footer.js +9 -3
  108. package/lib/table/src/footer.min.js +1 -1
  109. package/lib/table/src/header.js +2 -1
  110. package/lib/table/src/header.min.js +1 -1
  111. package/lib/table/src/props.js +4 -0
  112. package/lib/table/src/props.min.js +1 -1
  113. package/lib/table/src/table.js +727 -445
  114. package/lib/table/src/table.min.js +1 -1
  115. package/lib/table/src/util.js +65 -6
  116. package/lib/table/src/util.min.js +1 -1
  117. package/lib/ui/index.js +1 -1
  118. package/lib/ui/index.min.js +1 -1
  119. package/lib/ui/src/log.js +1 -1
  120. package/lib/ui/src/log.min.js +1 -1
  121. package/package.json +2 -2
  122. package/packages/grid/src/grid.ts +65 -50
  123. package/packages/locale/lang/ar-EG.ts +7 -1
  124. package/packages/locale/lang/de-DE.ts +7 -1
  125. package/packages/locale/lang/en-US.ts +7 -1
  126. package/packages/locale/lang/es-ES.ts +7 -1
  127. package/packages/locale/lang/fr-FR.ts +7 -1
  128. package/packages/locale/lang/hu-HU.ts +7 -1
  129. package/packages/locale/lang/hy-AM.ts +7 -1
  130. package/packages/locale/lang/id-ID.ts +7 -1
  131. package/packages/locale/lang/it-IT.ts +7 -1
  132. package/packages/locale/lang/ja-JP.ts +7 -1
  133. package/packages/locale/lang/ko-KR.ts +7 -1
  134. package/packages/locale/lang/nb-NO.ts +7 -1
  135. package/packages/locale/lang/pt-BR.ts +7 -1
  136. package/packages/locale/lang/ru-RU.ts +7 -1
  137. package/packages/locale/lang/th-TH.ts +7 -1
  138. package/packages/locale/lang/ug-CN.ts +7 -1
  139. package/packages/locale/lang/uk-UA.ts +7 -1
  140. package/packages/locale/lang/vi-VN.ts +7 -1
  141. package/packages/locale/lang/zh-CHT.ts +7 -1
  142. package/packages/locale/lang/zh-CN.ts +7 -1
  143. package/packages/table/module/edit/hook.ts +8 -10
  144. package/packages/table/module/filter/panel.ts +12 -2
  145. package/packages/table/module/keyboard/hook.ts +47 -6
  146. package/packages/table/module/validator/hook.ts +2 -2
  147. package/packages/table/render/index.ts +90 -59
  148. package/packages/table/src/body.ts +21 -16
  149. package/packages/table/src/cell.ts +25 -20
  150. package/packages/table/src/footer.ts +9 -4
  151. package/packages/table/src/header.ts +2 -2
  152. package/packages/table/src/props.ts +4 -0
  153. package/packages/table/src/table.ts +625 -411
  154. package/packages/table/src/util.ts +66 -3
  155. /package/es/{iconfont.1741080000843.ttf → iconfont.1742437957812.ttf} +0 -0
  156. /package/es/{iconfont.1741080000843.woff → iconfont.1742437957812.woff} +0 -0
  157. /package/es/{iconfont.1741080000843.woff2 → iconfont.1742437957812.woff2} +0 -0
  158. /package/lib/{iconfont.1741080000843.ttf → iconfont.1742437957812.ttf} +0 -0
  159. /package/lib/{iconfont.1741080000843.woff → iconfont.1742437957812.woff} +0 -0
  160. /package/lib/{iconfont.1741080000843.woff2 → iconfont.1742437957812.woff2} +0 -0
@@ -1 +1 @@
1
- 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}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","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(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:p,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:n}=m.getComputeMaps(),I={},g={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(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")},d=()=>{var{editStore:e,tableColumn:t}=C,l=p.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))},b=(e,t)=>{let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(m,o)],i=i?i.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=i,s[r]=i}})},s=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:i,tableFullData:a,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,p=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(p,!1):(p.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,i.unshift(e),a.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+p.length)}));else if(-1===l)o&&n?b(p,!0):(p.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,i.push(e),a.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+p.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,i=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let a=t?t.level:0;if(p.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),i.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var h=t.items;let e=t.index;d&&(e+=1),h.splice(e,0,...p)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(p,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=m.findRowIndexOf(i,l),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...p);t=m.findRowIndexOf(a,l);-1<t?a.splice(t+(d?1:0),0,...p):a.push(...p),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+p.length:t+l>r&&(e.rowspan=l+p.length)})}let x=r.insertMaps;return p.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:i,rowField:a,parentField:n}=E.value;return o&&i?(_xeUtils.default.isArray(e)||(e=[e]),s(e.map(e=>Object.assign({},e,{[n]:t[a]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},A=(e,t)=>{var l=C.editStore,{actived:l,focused:r}=l,{row:o,column:i}=l,a=n.value;if(o||i){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:o,rowIndex:m.getRowIndex(o),$rowIndex:m.getVMRowIndex(o),column:i,columnIndex:m.getColumnIndex(i),$columnIndex:m.getVMColumnIndex(i)},e||null)}return r.row=null,r.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(0,_vue.nextTick)().then(()=>m.updateCellAreas())},a=(l,r,o,e)=>{var{editConfig:t,mouseConfig:i}=R,{editStore:a,tableColumn:n}=C,d=p.value,s=d.mode,{actived:a,focused:u}=a;let{row:c,column:g}=l;var v=g.editRender,w=l.cell||m.getCellElement(c,g),f=d.beforeEditMethod||d.activeMethod;if((l.cell=w)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(v)&&!m.isPendingByRow(c)){if(a.row!==c||"cell"===s&&a.column!==g){let t="edit-disabled";if(!f||f(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){i&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),a.column&&A(r),t="edit-activated",g.renderHeight=w.offsetHeight,a.args=l,a.row=c,a.column=g,"row"===s?n.forEach(e=>h(c,e)):h(c,g);let e=d.afterEditMethod;(0,_vue.nextTick)(()=>{o&&m.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:c,rowIndex:m.getRowIndex(c),$rowIndex:m.getVMRowIndex(c),column:g,columnIndex:m.getColumnIndex(g),$columnIndex:m.getVMColumnIndex(g)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:c,rowIndex:m.getRowIndex(c),$rowIndex:m.getVMRowIndex(c),column:g,columnIndex:m.getColumnIndex(g),$columnIndex:m.getVMColumnIndex(g)},r)}else{t=a.column;i&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),t!==g&&(v=t.model,v.update&&(0,_util.setCellValue)(c,t,v.value),m.clearValidate)&&m.clearValidate(c,g),g.renderHeight=w.offsetHeight,a.args=l,a.column=g,e&&setTimeout(()=>{m.handleFocus(l,r)})}u.column=null,u.row=null,m.focus()}return(0,_vue.nextTick)()},u=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)?Promise.resolve(l?m.scrollToRow(t,o):null).then(()=>{var e=m.getCellElement(t,o);return e&&(a({row:t,rowIndex:m.getRowIndex(t),column:o,columnIndex:m.getColumnIndex(o),cell:e,$table:m},null,l,l),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return s(e,null)},insertAt(e,t){return s(e,t)},insertNextAt(e,t){return s(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:i,afterFullData:a,tableFullData:n}=_;var d=x.value,s=E.value;let{transform:u,mapChildrenField:c}=s,g=s.children||s.childrenField,{actived:v,removeMaps:w}=r,f=Object.assign({},r.insertMaps),p=Object.assign({},C.pendingRowMaps);s=d.checkField;let h=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=h=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:g})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),h.push(t[0]));let r=m.findRowIndexOf(a,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)}),a.splice(r,1))}),v.row&&-1<m.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],p[e]&&delete p[e]}),r.insertMaps=f,C.pendingRowMaps=p,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.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 A(null,e)},clearSelected(){var e=C.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=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),u(e,r,o)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return u(e,t,!0)},setSelectCell(e,t){var l=C.tableData,r=p.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return a(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:A,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=p.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!i.fixed&&m.scrollToRow(o,i)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let i=p.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(A(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
1
+ 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}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","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(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:p,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:n}=m.getComputeMaps(),I={},g={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(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")},d=()=>{var{editStore:e,tableColumn:t}=C,l=p.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))},b=(e,t)=>{let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(m,o)],i=i?i.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=i,s[r]=i}})},s=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:i,tableFullData:a,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,p=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(p,!1):(p.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,i.unshift(e),a.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+p.length)}));else if(-1===l)o&&n?b(p,!0):(p.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,i.push(e),a.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+p.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,i=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let a=t?t.level:0;if(p.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),i.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var h=t.items;let e=t.index;d&&(e+=1),h.splice(e,0,...p)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(p,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=m.findRowIndexOf(i,l),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...p);t=m.findRowIndexOf(a,l);-1<t?a.splice(t+(d?1:0),0,...p):a.push(...p),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+p.length:t+l>r&&(e.rowspan=l+p.length)})}let x=r.insertMaps;return p.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:i,rowField:a,parentField:n}=E.value;return o&&i?(_xeUtils.default.isArray(e)||(e=[e]),s(e.map(e=>Object.assign({},e,{[n]:t[a]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},F=(e,t)=>{var l=C.editStore,{actived:l,focused:r}=l,{row:o,column:i}=l,a=n.value;if(o||i){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:o,rowIndex:m.getRowIndex(o),$rowIndex:m.getVMRowIndex(o),column:i,columnIndex:m.getColumnIndex(i),$columnIndex:m.getVMColumnIndex(i)},e||null)}return r.row=null,r.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(0,_vue.nextTick)().then(()=>m.updateCellAreas())},a=(l,r,o,e)=>{var{editConfig:t,mouseConfig:i}=R,{editStore:a,tableColumn:n}=C,d=p.value,s=d.mode,{actived:a,focused:u}=a;let{row:c,column:g}=l;var v=g.editRender,w=l.cell||m.getCellElement(c,g),f=d.beforeEditMethod||d.activeMethod;if((l.cell=w)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(v)&&!m.isPendingByRow(c)){if(a.row!==c||"cell"===s&&a.column!==g){let t="edit-disabled";if(!f||f(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){i&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),a.column&&F(r),t="edit-activated",g.renderHeight=w.offsetHeight,a.args=l,a.row=c,a.column=g,"row"===s?n.forEach(e=>h(c,e)):h(c,g);let e=d.afterEditMethod;(0,_vue.nextTick)(()=>{o&&m.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:c,rowIndex:m.getRowIndex(c),$rowIndex:m.getVMRowIndex(c),column:g,columnIndex:m.getColumnIndex(g),$columnIndex:m.getVMColumnIndex(g)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:c,rowIndex:m.getRowIndex(c),$rowIndex:m.getVMRowIndex(c),column:g,columnIndex:m.getColumnIndex(g),$columnIndex:m.getVMColumnIndex(g)},r)}else{t=a.column;i&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),t!==g&&(v=t.model,v.update&&(0,_util.setCellValue)(c,t,v.value),m.clearValidate)&&m.clearValidate(c,g),g.renderHeight=w.offsetHeight,a.args=l,a.column=g,e&&setTimeout(()=>{m.handleFocus(l,r)})}u.column=null,u.row=null,m.focus()}return(0,_vue.nextTick)()},u=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)?Promise.resolve(l?m.scrollToRow(t,o):null).then(()=>{var e=m.getCellElement(t,o);return e&&(a({row:t,rowIndex:m.getRowIndex(t),column:o,columnIndex:m.getColumnIndex(o),cell:e,$table:m},null,l,l),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return s(e,null)},insertAt(e,t){return s(e,t)},insertNextAt(e,t){return s(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig;let{mergeList:l,editStore:r}=C,{tableFullTreeData:o,selectCheckboxMaps:i,afterFullData:a,tableFullData:n,pendingRowMaps:d}=_;var s=x.value,u=E.value;let{transform:c,mapChildrenField:g}=u,v=u.children||u.childrenField,{actived:w,removeMaps:f}=r,p=Object.assign({},r.insertMaps);u=s.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),f[t]=e)}),u||(e.forEach(e=>{e=(0,_util.getRowid)(m,e);i[e]&&delete i[e]}),C.updateCheckboxFlag++),n===e?(e=h=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&c?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(m,e),{children:g}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(m,e),{children:v})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),h.push(t[0]));let r=m.findRowIndexOf(a,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)}),a.splice(r,1))}),w.row&&-1<m.findRowIndexOf(e,w.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);p[e]&&delete p[e],d[e]&&delete d[e]}),r.insertMaps=p,C.pendingRowFlag++,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&c),t&&c||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.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 F(null,e)},clearSelected(){var e=C.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=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),u(e,r,o)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return u(e,t,!0)},setSelectCell(e,t){var l=C.tableData,r=p.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return a(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:F,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=p.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!i.fixed&&m.scrollToRow(o,i)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let i=p.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(F(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
@@ -113,11 +113,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
113
113
  const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
114
114
  if (filterSlot) {
115
115
  return [(0, _vue.h)('div', {
116
- class: 'vxe-table--filter-template'
116
+ class: 'vxe-table--filter-template',
117
+ style: maxHeight ? {
118
+ maxHeight: `${maxHeight}px`
119
+ } : {}
117
120
  }, $xeTable.callSlot(filterSlot, params))];
118
121
  } else if (rtFilter) {
119
122
  return [(0, _vue.h)('div', {
120
- class: 'vxe-table--filter-template'
123
+ class: 'vxe-table--filter-template',
124
+ style: maxHeight ? {
125
+ maxHeight: `${maxHeight}px`
126
+ } : {}
121
127
  }, (0, _vn.getSlotVNs)(rtFilter(filterRender, params)))];
122
128
  }
123
129
  const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn");let{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(u){let v=(0,_vue.inject)("$xeTable",{}),{reactData:d,internalData:p,getComputeMaps:e}=v,_=e().computeFilterOpts,h=(0,_vue.computed)(()=>{var e=u.filterStore;return e&&e.options.some(e=>e.checked)}),i=(e,t)=>{var l=u.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},b=e=>{v.handleFilterConfirmFilter(e)};let m=e=>{v.handleFilterResetFilter(e)};let f=(e,t,l)=>{v.handleFilterChangeOption(e,t,l)},C=(e,t)=>{var l=u.filterStore;l.multiple?i(0,t):m(e)},x={changeRadioOption:(e,t,l)=>{v.handleFilterChangeRadioOption(e,t,l)},changeMultipleOption:(e,t,l)=>{v.handleFilterChangeMultipleOption(e,t,l)},changeAllOption:C,changeOption:f,confirmFilter:b,resetFilter:m};return()=>{var e=u.filterStore,t=d.initStore,{visible:l,multiple:i,column:r}=e,a=r?r.filterRender:null,n=(0,_utils.isEnableConf)(a)?renderer.get(a.name):null,s=n?n.tableFilterClassName||n.filterClassName:"",o=Object.assign({},p._currFilterParams,{$panel:x,$table:v}),c=_.value.destroyOnClose;return(0,_vue.h)("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",(0,_dom.getPropClass)(s,o),{"is--animat":v.props.animat,"is--multiple":i,"is--active":l}],style:e.style},t.filter&&(!c||l)&&r?((e,t)=>{let l=u.filterStore,{column:i,multiple:r,maxHeight:a}=l;var n=i?i.slots:null,n=n?n.filter:null,s=Object.assign({},p._currFilterParams,{$panel:x,$table:v}),t=t?t.renderTableFilter||t.renderFilter:null;return n?[(0,_vue.h)("div",{class:"vxe-table--filter-template"},v.callSlot(n,s))]:t?[(0,_vue.h)("div",{class:"vxe-table--filter-template"},(0,_vn.getSlotVNs)(t(e,s)))]:(n=r?l.isAllSelected:!l.options.some(e=>e._checked),t=r&&l.isIndeterminate,[(0,_vue.h)("ul",{class:"vxe-table--filter-header"},[(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":n,"is--indeterminate":t}],title:getI18n(r?"vxe.table.allTitle":"vxe.table.allFilter"),onClick:e=>{C(e,!l.isAllSelected)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:n?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),(0,_vue.h)("ul",{class:"vxe-table--filter-body",style:a?{maxHeight:a+"px"}:{}},l.options.map(t=>{var e=t._checked;return(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":t._checked}],title:t.label,onClick:e=>{f(e,!t._checked,t)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])})(a,n).concat((()=>{var e=u.filterStore,{column:t,multiple:l}=e,i=_.value,r=h.value,t=t.filterRender,t=(0,_utils.isEnableConf)(t)?renderer.get(t.name):null,r=!r&&!e.isAllSelected&&!e.isIndeterminate;return l&&(!t||!1!==t.showTableFilterFooter&&!1!==t.showFilterFooter&&!1!==t.isFooter)?[(0,_vue.h)("div",{class:"vxe-table--filter-footer"},[(0,_vue.h)("button",{class:{"is--disabled":r},disabled:r,onClick:b},i.confirmButtonText||getI18n("vxe.table.confirmFilter")),(0,_vue.h)("button",{onClick:m},i.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]})()):[])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn");let{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(u){let v=(0,_vue.inject)("$xeTable",{}),{reactData:d,internalData:p,getComputeMaps:e}=v,_=e().computeFilterOpts,h=(0,_vue.computed)(()=>{var e=u.filterStore;return e&&e.options.some(e=>e.checked)}),i=(e,t)=>{var l=u.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},m=e=>{v.handleFilterConfirmFilter(e)};let b=e=>{v.handleFilterResetFilter(e)};let x=(e,t,l)=>{v.handleFilterChangeOption(e,t,l)},f=(e,t)=>{var l=u.filterStore;l.multiple?i(0,t):b(e)},C={changeRadioOption:(e,t,l)=>{v.handleFilterChangeRadioOption(e,t,l)},changeMultipleOption:(e,t,l)=>{v.handleFilterChangeMultipleOption(e,t,l)},changeAllOption:f,changeOption:x,confirmFilter:m,resetFilter:b};return()=>{var e=u.filterStore,t=d.initStore,{visible:l,multiple:i,column:r}=e,a=r?r.filterRender:null,n=(0,_utils.isEnableConf)(a)?renderer.get(a.name):null,s=n?n.tableFilterClassName||n.filterClassName:"",o=Object.assign({},p._currFilterParams,{$panel:C,$table:v}),c=_.value.destroyOnClose;return(0,_vue.h)("div",{class:["vxe-table--filter-wrapper","filter--prevent-default",(0,_dom.getPropClass)(s,o),{"is--animat":v.props.animat,"is--multiple":i,"is--active":l}],style:e.style},t.filter&&(!c||l)&&r?((e,t)=>{let l=u.filterStore,{column:i,multiple:r,maxHeight:a}=l;var n=i?i.slots:null,n=n?n.filter:null,s=Object.assign({},p._currFilterParams,{$panel:C,$table:v}),t=t?t.renderTableFilter||t.renderFilter:null;return n?[(0,_vue.h)("div",{class:"vxe-table--filter-template",style:a?{maxHeight:a+"px"}:{}},v.callSlot(n,s))]:t?[(0,_vue.h)("div",{class:"vxe-table--filter-template",style:a?{maxHeight:a+"px"}:{}},(0,_vn.getSlotVNs)(t(e,s)))]:(n=r?l.isAllSelected:!l.options.some(e=>e._checked),t=r&&l.isIndeterminate,[(0,_vue.h)("ul",{class:"vxe-table--filter-header"},[(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":n,"is--indeterminate":t}],title:getI18n(r?"vxe.table.allTitle":"vxe.table.allFilter"),onClick:e=>{f(e,!l.isAllSelected)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:n?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),(0,_vue.h)("ul",{class:"vxe-table--filter-body",style:a?{maxHeight:a+"px"}:{}},l.options.map(t=>{var e=t._checked;return(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":t._checked}],title:t.label,onClick:e=>{x(e,!t._checked,t)}},(r?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])})(a,n).concat((()=>{var e=u.filterStore,{column:t,multiple:l}=e,i=_.value,r=h.value,t=t.filterRender,t=(0,_utils.isEnableConf)(t)?renderer.get(t.name):null,r=!r&&!e.isAllSelected&&!e.isIndeterminate;return l&&(!t||!1!==t.showTableFilterFooter&&!1!==t.showFilterFooter&&!1!==t.isFooter)?[(0,_vue.h)("div",{class:"vxe-table--filter-footer"},[(0,_vue.h)("button",{class:{"is--disabled":r},disabled:r,onClick:m},i.confirmButtonText||getI18n("vxe.table.confirmFilter")),(0,_vue.h)("button",{onClick:b},i.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]})()):[])}}});
@@ -48,8 +48,11 @@ hooks.add('tableKeyboardModule', {
48
48
  computeMouseOpts,
49
49
  computeTreeOpts,
50
50
  computeRowOpts,
51
+ computeColumnOpts,
51
52
  computeCellOpts,
52
- computeDefaultRowHeight
53
+ computeDefaultRowHeight,
54
+ computeCurrentRowOpts,
55
+ computeCurrentColumnOpts
53
56
  } = $xeTable.getComputeMaps();
54
57
  function getCheckboxRangeRows(evnt, params, targetTrElem, trRect, offsetClientTop, moveRange) {
55
58
  const {
@@ -334,6 +337,10 @@ hooks.add('tableKeyboardModule', {
334
337
  visibleColumn
335
338
  } = internalData;
336
339
  const editOpts = computeEditOpts.value;
340
+ const rowOpts = computeRowOpts.value;
341
+ const currentRowOpts = computeCurrentRowOpts.value;
342
+ const columnOpts = computeColumnOpts.value;
343
+ const currentColumnOpts = computeCurrentColumnOpts.value;
337
344
  let targetRow;
338
345
  let targetRowIndex;
339
346
  let targetColumnIndex;
@@ -376,16 +383,26 @@ hooks.add('tableKeyboardModule', {
376
383
  params.columnIndex = targetColumnIndex;
377
384
  params.column = targetColumn;
378
385
  params.cell = $xeTable.getCellElement(params.row, params.column);
386
+ if (rowOpts.isCurrent && currentRowOpts.isFollowSelected) {
387
+ $xeTable.triggerCurrentRowEvent(evnt, params);
388
+ }
389
+ if (columnOpts.isCurrent && currentColumnOpts.isFollowSelected) {
390
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
391
+ }
379
392
  if (editConfig) {
380
393
  if (editOpts.trigger === 'click' || editOpts.trigger === 'dblclick') {
381
394
  if (editOpts.mode === 'row') {
382
395
  $xeTable.handleEdit(params, evnt);
383
396
  } else {
384
- $xeTable.scrollToRow(params.row, params.column).then(() => $xeTable.handleSelected(params, evnt));
397
+ $xeTable.scrollToRow(params.row, params.column).then(() => {
398
+ $xeTable.handleSelected(params, evnt);
399
+ });
385
400
  }
386
401
  }
387
402
  } else {
388
- $xeTable.scrollToRow(params.row, params.column).then(() => $xeTable.handleSelected(params, evnt));
403
+ $xeTable.scrollToRow(params.row, params.column).then(() => {
404
+ $xeTable.handleSelected(params, evnt);
405
+ });
389
406
  }
390
407
  }
391
408
  },
@@ -403,7 +420,6 @@ hooks.add('tableKeyboardModule', {
403
420
  const treeOpts = computeTreeOpts.value;
404
421
  const childrenField = treeOpts.children || treeOpts.childrenField;
405
422
  let targetRow;
406
- evnt.preventDefault();
407
423
  if (currentRow) {
408
424
  if (treeConfig) {
409
425
  const {
@@ -429,6 +445,7 @@ hooks.add('tableKeyboardModule', {
429
445
  targetRow = afterFullData[0];
430
446
  }
431
447
  if (targetRow) {
448
+ evnt.preventDefault();
432
449
  const params = {
433
450
  $table: $xeTable,
434
451
  row: targetRow,
@@ -438,6 +455,36 @@ hooks.add('tableKeyboardModule', {
438
455
  $xeTable.scrollToRow(targetRow).then(() => $xeTable.triggerCurrentRowEvent(evnt, params));
439
456
  }
440
457
  },
458
+ // 处理当前列方向键移动
459
+ moveCurrentColumn(isLeftArrow, isRightArrow, evnt) {
460
+ const {
461
+ currentColumn
462
+ } = reactData;
463
+ const {
464
+ visibleColumn
465
+ } = internalData;
466
+ let targetCol = null;
467
+ if (currentColumn) {
468
+ const _columnIndex = $xeTable.getVTColumnIndex(currentColumn);
469
+ if (isLeftArrow && _columnIndex > 0) {
470
+ targetCol = visibleColumn[_columnIndex - 1];
471
+ } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
472
+ targetCol = visibleColumn[_columnIndex + 1];
473
+ }
474
+ } else {
475
+ targetCol = visibleColumn[0];
476
+ }
477
+ if (targetCol) {
478
+ evnt.preventDefault();
479
+ const params = {
480
+ $table: $xeTable,
481
+ column: targetCol,
482
+ columnIndex: $xeTable.getColumnIndex(targetCol),
483
+ $columnIndex: $xeTable.getVMColumnIndex(targetCol)
484
+ };
485
+ $xeTable.scrollToColumn(targetCol).then(() => $xeTable.triggerCurrentColumnEvent(evnt, params));
486
+ }
487
+ },
441
488
  // 处理可编辑方向键移动
442
489
  moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
443
490
  const {
@@ -1 +1 @@
1
- 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}}let hooks=_ui.VxeUI.hooks;function getTargetOffset(e,t){let l=0,o=0;var r,n,a=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(a&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,a&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}hooks.add("tableKeyboardModule",{setupTable(M){let{props:E,reactData:D,internalData:O}=M,S=M.getRefMaps().refElem,{computeEditOpts:h,computeCheckboxOpts:u,computeMouseOpts:s,computeTreeOpts:c,computeRowOpts:H,computeCellOpts:V,computeDefaultRowHeight:q}=M.getComputeMaps();let d=(e,y)=>{var t=O.elemStore,l=(0,_util.getRefElem)(t["main-body-scroll"]),o=(0,_util.getRefElem)(t["left-body-scroll"]),t=(0,_util.getRefElem)(t["right-body-scroll"]),{column:r,cell:n}=y;if("checkbox"===r.type){let k=l;if(o&&"left"===r.fixed?k=o:t&&"right"===r.fixed&&(k=t),k){let t=S.value,i=e.clientX,u=e.clientY,s=k.querySelector(".vxe-table--checkbox-range"),c=n.parentElement,d=M.getCheckboxRecords(),h=[],g=1;l=getTargetOffset(e.target,k);let f=l.offsetTop+e.offsetY,m=l.offsetLeft+e.offsetX,p=k.scrollTop,a=c.offsetHeight,v=c.getBoundingClientRect(),x=u-v.y,w=null,b=!1,R=1,C=(e,t)=>{M.dispatchEvent("checkbox-range-"+e,{records:M.getCheckboxRecords(),reserves:M.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-u+(k.scrollTop-p);let o=Math.abs(l),r=Math.abs(t),n=f,a=m;l<g?(n+=l)<g&&(n=g,o=f):o=Math.min(o,k.scrollHeight-f-g),t<g?(a+=t,r>m&&(a=g,r=m)):r=Math.min(r,k.clientWidth-m-g),s.style.height=o+"px",s.style.width=r+"px",s.style.left=a+"px",s.style.top=n+"px",s.style.display="block";t=((e,t,l,o,r)=>{var n=E.showOverflow,{fullAllDataRowIdData:a,isResizeCellHeight:i}=O,u=H.value,s=V.value,c=q.value,e=e.row;let d=0,h=[],g=0;var f=0<r,m=D.scrollYLoad,p=O.afterFullData;if(g=f?o+r:l.height-o+Math.abs(r),m){l=M.getVTRowIndex(e);if(!(i||s.height||u.height)&&n)h=f?p.slice(l,l+Math.ceil(g/c)):p.slice(l-Math.floor(g/c),l+1);else if(f)for(let e=l;e<p.length;e++){var v=p[e],x=a[M.getRowid(v)]||{};if(d+=x.resizeHeight||s.height||u.height||x.height||c,h.push(v),d>g)return h}else for(let e=l;0<=e;e--){var w=p[e],b=a[M.getRowid(w)]||{};if(d+=b.resizeHeight||s.height||u.height||b.height||c,h.push(w),d>g)return h}}else for(var R=f?"next":"previous";t&&d<g;){var C=M.getRowNode(t);C&&(h.push(C.item),d+=t.offsetHeight,t=t[R+"ElementSibling"])}return h})(y,c,v,x,l<g?-o:o);10<o&&t.length!==h.length&&(h=t,e.ctrlKey?t.forEach(e=>{M.handleBatchSelectRows([e],-1===d.indexOf(e))}):(M.setAllCheckboxRow(!1),M.handleCheckedCheckboxRow(t,!0,!1)),C("change",e))},I=()=>{clearTimeout(w),w=null},_=n=>{I(),w=setTimeout(()=>{var e,t,l,o,r;w&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=k,r=Math.ceil(50*R/a),b?t+l<o?(M.scrollTo(e,t+r),_(n),T(n)):I():t?(M.scrollTo(e,t-r),_(n),T(n)):I())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(k).boundingTop;t<l?(b=!1,R=l-t,w||_(e)):t>l+k.clientHeight?(b=!0,R=t-l-k.clientHeight,w||_(e)):w&&I(),T(e)},document.onmouseup=e=>{I(),(0,_dom.removeClass)(t,"drag--range"),s.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,C("end",e)},C("start",e)}}};return{moveTabSelected(e,t,l){var o=E.editConfig,{afterFullData:r,visibleColumn:n}=O,a=h.value;let i,u,s,c=Object.assign({},e);var e=M.getVTRowIndex(c.row),d=M.getVTColumnIndex(c.column),t=(l.preventDefault(),t?d<=0?0<e&&(u=e-1,i=r[u],s=n.length-1):s=d-1:d>=n.length-1?e<r.length-1&&(u=e+1,i=r[u],s=0):s=d+1,n[s]);t&&(i?(c.rowIndex=u,c.row=i):c.rowIndex=e,c.columnIndex=s,c.column=t,c.cell=M.getCellElement(c.row,c.column),o?"click"!==a.trigger&&"dblclick"!==a.trigger||("row"===a.mode?M.handleEdit(c,l):M.scrollToRow(c.row,c.column).then(()=>M.handleSelected(c,l))):M.scrollToRow(c.row,c.column).then(()=>M.handleSelected(c,l)))},moveCurrentRow(e,t,l){var o=E.treeConfig;let r=D.currentRow;var n=O.afterFullData,a=c.value,a=a.children||a.childrenField;let i;if(l.preventDefault(),r?o?({index:o,items:a}=_xeUtils.default.findTree(n,e=>e===r,{children:a}),e&&0<o?i=a[o-1]:t&&o<a.length-1&&(i=a[o+1])):(a=M.getVTRowIndex(r),e&&0<a?i=n[a-1]:t&&a<n.length-1&&(i=n[a+1])):i=n[0],i){let e={$table:M,row:i,rowIndex:M.getRowIndex(i),$rowIndex:M.getVMRowIndex(i)};M.scrollToRow(i).then(()=>M.triggerCurrentRowEvent(l,e))}},moveSelected(e,t,l,o,r,n){var{afterFullData:a,visibleColumn:i}=O;let u=Object.assign({},e);var e=M.getVTRowIndex(u.row),s=M.getVTColumnIndex(u.column);n.preventDefault(),l&&0<e?(u.rowIndex=e-1,u.row=a[u.rowIndex]):r&&e<a.length-1?(u.rowIndex=e+1,u.row=a[u.rowIndex]):t&&s?(u.columnIndex=s-1,u.column=i[u.columnIndex]):o&&s<i.length-1&&(u.columnIndex=s+1,u.column=i[u.columnIndex]),M.scrollToRow(u.row,u.column).then(()=>{u.cell=M.getCellElement(u.row,u.column),M.handleSelected(u,n)})},handleCellMousedownEvent:(e,t)=>{var{editConfig:l,checkboxConfig:o,mouseConfig:r}=E,n=u.value,a=s.value,i=h.value;if(r&&a.area&&M.handleCellAreaMousedownEvent)return M.handleCellAreaMousedownEvent(e,t);o&&n.range&&d(e,t),r&&a.selected&&(l&&"cell"!==i.mode||M.handleSelected(t,e))}}}});
1
+ 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}}let hooks=_ui.VxeUI.hooks;function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}hooks.add("tableKeyboardModule",{setupTable(M){let{props:y,reactData:D,internalData:O}=M,S=M.getRefMaps().refElem,{computeEditOpts:p,computeCheckboxOpts:a,computeMouseOpts:s,computeTreeOpts:c,computeRowOpts:H,computeColumnOpts:v,computeCellOpts:V,computeDefaultRowHeight:q,computeCurrentRowOpts:x,computeCurrentColumnOpts:w}=M.getComputeMaps();let d=(e,k)=>{var t=O.elemStore,l=(0,_util.getRefElem)(t["main-body-scroll"]),o=(0,_util.getRefElem)(t["left-body-scroll"]),t=(0,_util.getRefElem)(t["right-body-scroll"]),{column:r,cell:n}=k;if("checkbox"===r.type){let E=l;if(o&&"left"===r.fixed?E=o:t&&"right"===r.fixed&&(E=t),E){let t=S.value,i=e.clientX,a=e.clientY,s=E.querySelector(".vxe-table--checkbox-range"),c=n.parentElement,d=M.getCheckboxRecords(),g=[],h=1;l=getTargetOffset(e.target,E);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,p=E.scrollTop,u=c.offsetHeight,v=c.getBoundingClientRect(),x=a-v.y,w=null,C=!1,b=1,R=(e,t)=>{M.dispatchEvent("checkbox-range-"+e,{records:M.getCheckboxRecords(),reserves:M.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-a+(E.scrollTop-p);let o=Math.abs(l),r=Math.abs(t),n=m,u=f;l<h?(n+=l)<h&&(n=h,o=m):o=Math.min(o,E.scrollHeight-m-h),t<h?(u+=t,r>f&&(u=h,r=f)):r=Math.min(r,E.clientWidth-f-h),s.style.height=o+"px",s.style.width=r+"px",s.style.left=u+"px",s.style.top=n+"px",s.style.display="block";t=((e,t,l,o,r)=>{var n=y.showOverflow,{fullAllDataRowIdData:u,isResizeCellHeight:i}=O,a=H.value,s=V.value,c=q.value,e=e.row;let d=0,g=[],h=0;var m=0<r,f=D.scrollYLoad,p=O.afterFullData;if(h=m?o+r:l.height-o+Math.abs(r),f){l=M.getVTRowIndex(e);if(!(i||s.height||a.height)&&n)g=m?p.slice(l,l+Math.ceil(h/c)):p.slice(l-Math.floor(h/c),l+1);else if(m)for(let e=l;e<p.length;e++){var v=p[e],x=u[M.getRowid(v)]||{};if(d+=x.resizeHeight||s.height||a.height||x.height||c,g.push(v),d>h)return g}else for(let e=l;0<=e;e--){var w=p[e],C=u[M.getRowid(w)]||{};if(d+=C.resizeHeight||s.height||a.height||C.height||c,g.push(w),d>h)return g}}else for(var b=m?"next":"previous";t&&d<h;){var R=M.getRowNode(t);R&&(g.push(R.item),d+=t.offsetHeight,t=t[b+"ElementSibling"])}return g})(k,c,v,x,l<h?-o:o);10<o&&t.length!==g.length&&(g=t,e.ctrlKey?t.forEach(e=>{M.handleBatchSelectRows([e],-1===d.indexOf(e))}):(M.setAllCheckboxRow(!1),M.handleCheckedCheckboxRow(t,!0,!1)),R("change",e))},I=()=>{clearTimeout(w),w=null},_=n=>{I(),w=setTimeout(()=>{var e,t,l,o,r;w&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=E,r=Math.ceil(50*b/u),C?t+l<o?(M.scrollTo(e,t+r),_(n),T(n)):I():t?(M.scrollTo(e,t-r),_(n),T(n)):I())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(E).boundingTop;t<l?(C=!1,b=l-t,w||_(e)):t>l+E.clientHeight?(C=!0,b=t-l-E.clientHeight,w||_(e)):w&&I(),T(e)},document.onmouseup=e=>{I(),(0,_dom.removeClass)(t,"drag--range"),s.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,R("end",e)},R("start",e)}}};return{moveTabSelected(e,t,l){var o=y.editConfig,{afterFullData:r,visibleColumn:n}=O,u=p.value,i=H.value,a=x.value,s=v.value,c=w.value;let d,g,h,m=Object.assign({},e);var e=M.getVTRowIndex(m.row),f=M.getVTColumnIndex(m.column),t=(l.preventDefault(),t?f<=0?0<e&&(g=e-1,d=r[g],h=n.length-1):h=f-1:f>=n.length-1?e<r.length-1&&(g=e+1,d=r[g],h=0):h=f+1,n[h]);t&&(d?(m.rowIndex=g,m.row=d):m.rowIndex=e,m.columnIndex=h,m.column=t,m.cell=M.getCellElement(m.row,m.column),i.isCurrent&&a.isFollowSelected&&M.triggerCurrentRowEvent(l,m),s.isCurrent&&c.isFollowSelected&&M.triggerCurrentColumnEvent(l,m),o?"click"!==u.trigger&&"dblclick"!==u.trigger||("row"===u.mode?M.handleEdit(m,l):M.scrollToRow(m.row,m.column).then(()=>{M.handleSelected(m,l)})):M.scrollToRow(m.row,m.column).then(()=>{M.handleSelected(m,l)}))},moveCurrentRow(e,t,l){var o=y.treeConfig;let r=D.currentRow;var n=O.afterFullData,u=c.value,u=u.children||u.childrenField;let i;if(r?o?({index:o,items:u}=_xeUtils.default.findTree(n,e=>e===r,{children:u}),e&&0<o?i=u[o-1]:t&&o<u.length-1&&(i=u[o+1])):(u=M.getVTRowIndex(r),e&&0<u?i=n[u-1]:t&&u<n.length-1&&(i=n[u+1])):i=n[0],i){l.preventDefault();let e={$table:M,row:i,rowIndex:M.getRowIndex(i),$rowIndex:M.getVMRowIndex(i)};M.scrollToRow(i).then(()=>M.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){var o=D.currentColumn,r=O.visibleColumn;let n=null;if(o?(o=M.getVTColumnIndex(o),e&&0<o?n=r[o-1]:t&&o<r.length-1&&(n=r[o+1])):n=r[0],n){l.preventDefault();let e={$table:M,column:n,columnIndex:M.getColumnIndex(n),$columnIndex:M.getVMColumnIndex(n)};M.scrollToColumn(n).then(()=>M.triggerCurrentColumnEvent(l,e))}},moveSelected(e,t,l,o,r,n){var{afterFullData:u,visibleColumn:i}=O;let a=Object.assign({},e);var e=M.getVTRowIndex(a.row),s=M.getVTColumnIndex(a.column);n.preventDefault(),l&&0<e?(a.rowIndex=e-1,a.row=u[a.rowIndex]):r&&e<u.length-1?(a.rowIndex=e+1,a.row=u[a.rowIndex]):t&&s?(a.columnIndex=s-1,a.column=i[a.columnIndex]):o&&s<i.length-1&&(a.columnIndex=s+1,a.column=i[a.columnIndex]),M.scrollToRow(a.row,a.column).then(()=>{a.cell=M.getCellElement(a.row,a.column),M.handleSelected(a,n)})},handleCellMousedownEvent:(e,t)=>{var{editConfig:l,checkboxConfig:o,mouseConfig:r}=y,n=a.value,u=s.value,i=p.value;if(r&&u.area&&M.handleCellAreaMousedownEvent)return M.handleCellAreaMousedownEvent(e,t);o&&n.range&&d(e,t),r&&u.selected&&(l&&"cell"!==i.mode||M.handleSelected(t,e))}}}});
@@ -108,11 +108,11 @@ hooks.add('tableValidatorModule', {
108
108
  treeConfig
109
109
  } = props;
110
110
  const {
111
- editStore,
112
- pendingRowMaps
111
+ editStore
113
112
  } = reactData;
114
113
  const {
115
- afterFullData
114
+ afterFullData,
115
+ pendingRowMaps
116
116
  } = internalData;
117
117
  const {
118
118
  removeMaps
@@ -1 +1 @@
1
- var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,validators,hooks}=_ui.VxeUI;class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}let tableValidatorMethodKeys=["fullValidate","validate","fullValidateField","validateField","clearValidate"];hooks.add("tableValidatorModule",{setupTable(p){let{props:h,reactData:_,internalData:x}=p,g=p.getRefMaps().refValidTooltip,{computeValidOpts:w,computeTreeOpts:R,computeEditOpts:r}=p.getComputeMaps(),U={},V={},E,t=(e,t,u,a)=>{let s={},{editRules:o,treeConfig:r}=h,{editStore:l,pendingRowMaps:n}=_;var i=x.afterFullData;let d=l.removeMaps;var c=R.value,c=c.children||c.childrenField;let g=w.value,v,f=(!0===e?v=i:e&&(_xeUtils.default.isFunction(e)?u=e:v=_xeUtils.default.isArray(e)?e:[e]),v=v||(p.getInsertRecords?p.getInsertRecords().concat(p.getUpdateRecords()):[]),[]),m=(x._lastCallTime=Date.now(),E=!1,U.clearValidate(),{});if(o){let l=t&&t.length?t:p.getColumns();i=i=>{var e=(0,_util.getRowid)(p,i);if(!d[e]&&!n[e]&&(a||!E)){let e=[];l.forEach(t=>{let r=_xeUtils.default.isString(t)?t:t.field;!a&&E||!_xeUtils.default.has(o,r)||e.push(V.validCellRules("all",i,t).catch(({rule:e,rules:l})=>{l={rule:e,rules:l,rowIndex:p.getRowIndex(i),row:i,columnIndex:p.getColumnIndex(t),column:t,field:r,$table:p};if(s[r]||(s[r]=[]),m[(0,_util.getRowid)(p,i)+":"+t.id]={column:t,row:i,rule:e,content:e.content},s[r].push(l),!a)return E=!0,Promise.reject(l)}))}),f.push(Promise.all(e))}};return r?_xeUtils.default.eachTree(v,i,{children:c}):v.forEach(i),Promise.all(f).then(()=>{let e=Object.keys(s);var l,t,r;return _.validErrorMaps=(l=m,"single"===w.value.msgMode?(t={},(r=Object.keys(l)).length&&(t[r=r[0]]=l[r]),t):l),(0,_vue.nextTick)().then(()=>{if(e.length)return Promise.reject(s[e[0]][0]);u&&u()})}).catch(a=>new Promise((e,l)=>{let t=()=>{(0,_vue.nextTick)(()=>{u?(u(s),e()):("obsolete"===getConfig().validToReject?l:e)(s)})};var r,i=()=>{var l;a.cell=p.getCellElement(a.row,a.column),(0,_dom.scrollToView)(a.cell),l=a,new Promise(e=>{!1===w.value.autoPos?(p.dispatchEvent("valid-error",l,null),e()):p.handleEdit(l,{type:"valid-error",trigger:"call"}).then(()=>{e(V.showValidTooltip(l))})}).then(t)};!1===g.autoPos?t():(r=a.row,p.scrollToRow(r,a.column).then(i))}))}return _.validErrorMaps={},(0,_vue.nextTick)().then(()=>{u&&u()})},f=(U={fullValidate(e,l){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(l)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),t(e,null,l,!0)},validate(e,l){return t(e,null,l)},fullValidateField(e,l){l=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(p,e));return l.length?t(e,l,null,!0):(0,_vue.nextTick)()},validateField(e,l){l=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(p,e));return l.length?t(e,l,null):(0,_vue.nextTick)()},clearValidate(e,l){var r=_.validErrorMaps,t=g.value,i=w.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[];let a=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(p,e)),u={};if(t&&t.reactData.visible&&t.close(),"single"===i.msgMode)_.validErrorMaps={};else{if(e.length&&a.length)u=Object.assign({},r),e.forEach(l=>{a.forEach(e=>{e=(0,_util.getRowid)(p,l)+":"+e.id;u[e]&&delete u[e]})});else if(e.length){let t=e.map(e=>""+(0,_util.getRowid)(p,e));_xeUtils.default.each(r,(e,l)=>{-1<t.indexOf(l.split(":")[0])&&(u[l]=e)})}else if(a.length){let t=a.map(e=>""+e.id);_xeUtils.default.each(r,(e,l)=>{-1<t.indexOf(l.split(":")[1])&&(u[l]=e)})}_.validErrorMaps=u}return(0,_vue.nextTick)()}},(e,l)=>{var{type:e,min:t,max:r,pattern:i}=e,e="number"===e,a=e?_xeUtils.default.toNumber(l):_xeUtils.default.getSize(l);return!(!e||!isNaN(l))||!_xeUtils.default.eqNull(t)&&a<_xeUtils.default.toNumber(t)||!_xeUtils.default.eqNull(r)&&a>_xeUtils.default.toNumber(r)||!(!i||(_xeUtils.default.isRegExp(i)?i:new RegExp(i)).test(l))});return V={validCellRules(e,d,c,l){var t=h.editRules,r=c.field;let g=[],v=[];if(r&&t){let n=_xeUtils.default.get(t,r);if(n){let o=_xeUtils.default.isUndefined(l)?_xeUtils.default.get(d,r):l;n.forEach(l=>{let{type:t,trigger:r,required:i,validator:a}=l;if("all"===e||!r||e===r)if(a){var u={cellValue:o,rule:l,rules:n,row:d,rowIndex:p.getRowIndex(d),column:c,columnIndex:p.getColumnIndex(c),field:c.field,$table:p,$grid:p.xegrid};let e;_xeUtils.default.isString(a)?(s=validators.get(a))?(s=s.tableCellValidatorMethod||s.cellValidatorMethod)?e=s(u):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(u),e&&(_xeUtils.default.isError(e)?(E=!0,g.push(new Rule({type:"custom",trigger:r,content:e.message,rule:new Rule(l)}))):e.catch&&v.push(e.catch(e=>{E=!0,g.push(new Rule({type:"custom",trigger:r,content:e&&e.message?e.message:l.content||l.message,rule:new Rule(l)}))})))}else{var s="array"===t,u=_xeUtils.default.isArray(o);let e=!0;e=s||u?!u||!o.length:_xeUtils.default.isString(o)?(0,_utils.eqEmptyValue)(o.trim()):(0,_utils.eqEmptyValue)(o),(i?e||f(l,o):!e&&f(l,o))&&(E=!0,g.push(new Rule(l)))}})}}return Promise.all(v).then(()=>{var e;if(g.length)return e={rules:g,rule:g[0]},Promise.reject(e)})},hasCellRules(l,e,t){var r=h.editRules,t=t.field;return!(!t||!r)&&(r=_xeUtils.default.get(r,t))&&!!_xeUtils.default.find(r,e=>"all"===l||!e.trigger||l===e.trigger)},triggerValidate(i){var{editConfig:e,editRules:l}=h,a=_.editStore,a=a.actived;let u=r.value;var t=w.value;if(l&&"single"===t.msgMode&&(_.validErrorMaps={}),e&&l&&a.row){let{row:l,column:t,cell:r}=a.args;if(V.hasCellRules(i,l,t))return V.validCellRules(i,l,t).then(()=>{"row"===u.mode&&U.clearValidate(l,t)}).catch(({rule:e})=>e.trigger&&i!==e.trigger?Promise.resolve():(e={rule:e,row:l,column:t,cell:r},V.showValidTooltip(e),Promise.reject(e)))}return Promise.resolve()},showValidTooltip(e){var l=h.height,{tableData:t,validStore:r,validErrorMaps:i}=_,{rule:a,row:u,column:s,cell:o}=e,n=w.value,d=g.value,c=a.content;return r.visible=!0,"single"===n.msgMode?_.validErrorMaps={[(0,_util.getRowid)(p,u)+":"+s.id]:{column:s,row:u,rule:a,content:c}}:_.validErrorMaps=Object.assign({},i,{[(0,_util.getRowid)(p,u)+":"+s.id]:{column:s,row:u,rule:a,content:c}}),p.dispatchEvent("valid-error",e,null),d&&("tooltip"===n.message||"default"===n.message&&!l&&t.length<2)?d.open(o,c):(0,_vue.nextTick)()}},Object.assign(Object.assign({},U),V)},setupGrid(e){return e.extendTableMethods(tableValidatorMethodKeys)}});
1
+ var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,validators,hooks}=_ui.VxeUI;class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}let tableValidatorMethodKeys=["fullValidate","validate","fullValidateField","validateField","clearValidate"];hooks.add("tableValidatorModule",{setupTable(v){let{props:p,reactData:h,internalData:_}=v,g=v.getRefMaps().refValidTooltip,{computeValidOpts:x,computeTreeOpts:w,computeEditOpts:r}=v.getComputeMaps(),R={},U={},V,t=(e,t,u,a)=>{let s={},{editRules:o,treeConfig:r}=p;var i=h.editStore;let{afterFullData:l,pendingRowMaps:n}=_,d=i.removeMaps;i=w.value,i=i.children||i.childrenField;let c=x.value,g,f=(!0===e?g=l:e&&(_xeUtils.default.isFunction(e)?u=e:g=_xeUtils.default.isArray(e)?e:[e]),g=g||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]),[]),m=(_._lastCallTime=Date.now(),V=!1,R.clearValidate(),{});if(o){let l=t&&t.length?t:v.getColumns();e=i=>{var e=(0,_util.getRowid)(v,i);if(!d[e]&&!n[e]&&(a||!V)){let e=[];l.forEach(t=>{let r=_xeUtils.default.isString(t)?t:t.field;!a&&V||!_xeUtils.default.has(o,r)||e.push(U.validCellRules("all",i,t).catch(({rule:e,rules:l})=>{l={rule:e,rules:l,rowIndex:v.getRowIndex(i),row:i,columnIndex:v.getColumnIndex(t),column:t,field:r,$table:v};if(s[r]||(s[r]=[]),m[(0,_util.getRowid)(v,i)+":"+t.id]={column:t,row:i,rule:e,content:e.content},s[r].push(l),!a)return V=!0,Promise.reject(l)}))}),f.push(Promise.all(e))}};return r?_xeUtils.default.eachTree(g,e,{children:i}):g.forEach(e),Promise.all(f).then(()=>{let e=Object.keys(s);var l,t,r;return h.validErrorMaps=(l=m,"single"===x.value.msgMode?(t={},(r=Object.keys(l)).length&&(t[r=r[0]]=l[r]),t):l),(0,_vue.nextTick)().then(()=>{if(e.length)return Promise.reject(s[e[0]][0]);u&&u()})}).catch(a=>new Promise((e,l)=>{let t=()=>{(0,_vue.nextTick)(()=>{u?(u(s),e()):("obsolete"===getConfig().validToReject?l:e)(s)})};var r,i=()=>{var l;a.cell=v.getCellElement(a.row,a.column),(0,_dom.scrollToView)(a.cell),l=a,new Promise(e=>{!1===x.value.autoPos?(v.dispatchEvent("valid-error",l,null),e()):v.handleEdit(l,{type:"valid-error",trigger:"call"}).then(()=>{e(U.showValidTooltip(l))})}).then(t)};!1===c.autoPos?t():(r=a.row,v.scrollToRow(r,a.column).then(i))}))}return h.validErrorMaps={},(0,_vue.nextTick)().then(()=>{u&&u()})},m=(R={fullValidate(e,l){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(l)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),t(e,null,l,!0)},validate(e,l){return t(e,null,l)},fullValidateField(e,l){l=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(v,e));return l.length?t(e,l,null,!0):(0,_vue.nextTick)()},validateField(e,l){l=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(v,e));return l.length?t(e,l,null):(0,_vue.nextTick)()},clearValidate(e,l){var r=h.validErrorMaps,t=g.value,i=x.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[];let a=(_xeUtils.default.isArray(l)?l:l?[l]:[]).map(e=>(0,_util.handleFieldOrColumn)(v,e)),u={};if(t&&t.reactData.visible&&t.close(),"single"===i.msgMode)h.validErrorMaps={};else{if(e.length&&a.length)u=Object.assign({},r),e.forEach(l=>{a.forEach(e=>{e=(0,_util.getRowid)(v,l)+":"+e.id;u[e]&&delete u[e]})});else if(e.length){let t=e.map(e=>""+(0,_util.getRowid)(v,e));_xeUtils.default.each(r,(e,l)=>{-1<t.indexOf(l.split(":")[0])&&(u[l]=e)})}else if(a.length){let t=a.map(e=>""+e.id);_xeUtils.default.each(r,(e,l)=>{-1<t.indexOf(l.split(":")[1])&&(u[l]=e)})}h.validErrorMaps=u}return(0,_vue.nextTick)()}},(e,l)=>{var{type:e,min:t,max:r,pattern:i}=e,e="number"===e,a=e?_xeUtils.default.toNumber(l):_xeUtils.default.getSize(l);return!(!e||!isNaN(l))||!_xeUtils.default.eqNull(t)&&a<_xeUtils.default.toNumber(t)||!_xeUtils.default.eqNull(r)&&a>_xeUtils.default.toNumber(r)||!(!i||(_xeUtils.default.isRegExp(i)?i:new RegExp(i)).test(l))});return U={validCellRules(e,d,c,l){var t=p.editRules,r=c.field;let g=[],f=[];if(r&&t){let n=_xeUtils.default.get(t,r);if(n){let o=_xeUtils.default.isUndefined(l)?_xeUtils.default.get(d,r):l;n.forEach(l=>{let{type:t,trigger:r,required:i,validator:a}=l;if("all"===e||!r||e===r)if(a){var u={cellValue:o,rule:l,rules:n,row:d,rowIndex:v.getRowIndex(d),column:c,columnIndex:v.getColumnIndex(c),field:c.field,$table:v,$grid:v.xegrid};let e;_xeUtils.default.isString(a)?(s=validators.get(a))?(s=s.tableCellValidatorMethod||s.cellValidatorMethod)?e=s(u):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(u),e&&(_xeUtils.default.isError(e)?(V=!0,g.push(new Rule({type:"custom",trigger:r,content:e.message,rule:new Rule(l)}))):e.catch&&f.push(e.catch(e=>{V=!0,g.push(new Rule({type:"custom",trigger:r,content:e&&e.message?e.message:l.content||l.message,rule:new Rule(l)}))})))}else{var s="array"===t,u=_xeUtils.default.isArray(o);let e=!0;e=s||u?!u||!o.length:_xeUtils.default.isString(o)?(0,_utils.eqEmptyValue)(o.trim()):(0,_utils.eqEmptyValue)(o),(i?e||m(l,o):!e&&m(l,o))&&(V=!0,g.push(new Rule(l)))}})}}return Promise.all(f).then(()=>{var e;if(g.length)return e={rules:g,rule:g[0]},Promise.reject(e)})},hasCellRules(l,e,t){var r=p.editRules,t=t.field;return!(!t||!r)&&(r=_xeUtils.default.get(r,t))&&!!_xeUtils.default.find(r,e=>"all"===l||!e.trigger||l===e.trigger)},triggerValidate(i){var{editConfig:e,editRules:l}=p,a=h.editStore,a=a.actived;let u=r.value;var t=x.value;if(l&&"single"===t.msgMode&&(h.validErrorMaps={}),e&&l&&a.row){let{row:l,column:t,cell:r}=a.args;if(U.hasCellRules(i,l,t))return U.validCellRules(i,l,t).then(()=>{"row"===u.mode&&R.clearValidate(l,t)}).catch(({rule:e})=>e.trigger&&i!==e.trigger?Promise.resolve():(e={rule:e,row:l,column:t,cell:r},U.showValidTooltip(e),Promise.reject(e)))}return Promise.resolve()},showValidTooltip(e){var l=p.height,{tableData:t,validStore:r,validErrorMaps:i}=h,{rule:a,row:u,column:s,cell:o}=e,n=x.value,d=g.value,c=a.content;return r.visible=!0,"single"===n.msgMode?h.validErrorMaps={[(0,_util.getRowid)(v,u)+":"+s.id]:{column:s,row:u,rule:a,content:c}}:h.validErrorMaps=Object.assign({},i,{[(0,_util.getRowid)(v,u)+":"+s.id]:{column:s,row:u,rule:a,content:c}}),v.dispatchEvent("valid-error",e,null),d&&("tooltip"===n.message||"default"===n.message&&!l&&t.length<2)?d.open(o,c):(0,_vue.nextTick)()}},Object.assign(Object.assign({},R),U)},setupGrid(e){return e.extendTableMethods(tableValidatorMethodKeys)}});
@@ -11,7 +11,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
11
11
  const {
12
12
  getConfig,
13
13
  renderer,
14
- getI18n
14
+ getI18n,
15
+ getComponent
15
16
  } = _ui.VxeUI;
16
17
  const componentDefaultModelProp = 'modelValue';
17
18
  const defaultCompProps = {};
@@ -40,7 +41,7 @@ function getOldComponentName(name) {
40
41
  function getDefaultComponent({
41
42
  name
42
43
  }) {
43
- return (0, _vue.resolveComponent)(name);
44
+ return getComponent(name);
44
45
  }
45
46
  /**
46
47
  * 已废弃
@@ -397,7 +398,7 @@ function oldEditRender(renderOpts, params) {
397
398
  * @deprecated
398
399
  */
399
400
  function oldButtonEditRender(renderOpts, params) {
400
- return [(0, _vue.h)((0, _vue.resolveComponent)('vxe-button'), Object.assign(Object.assign({}, getCellEditProps(renderOpts, params, null)), getComponentOns(renderOpts, params)))];
401
+ return [(0, _vue.h)(getComponent('vxe-button'), Object.assign(Object.assign({}, getCellEditProps(renderOpts, params, null)), getComponentOns(renderOpts, params)))];
401
402
  }
402
403
  /**
403
404
  * 已废弃
@@ -649,6 +650,69 @@ function handleExportTreeSelectMethod(params) {
649
650
  } = params;
650
651
  return options.original ? (0, _util.getCellValue)(row, column) : getTreeSelectCellValue(column.editRender || column.cellRender, params);
651
652
  }
653
+ function handleNumberCell(renderOpts, params) {
654
+ const {
655
+ props = {},
656
+ showNegativeStatus
657
+ } = renderOpts;
658
+ const {
659
+ row,
660
+ column
661
+ } = params;
662
+ const {
663
+ type
664
+ } = props;
665
+ let cellValue = _xeUtils.default.get(row, column.field);
666
+ let isNegative = false;
667
+ if (!(0, _utils.isEmptyValue)(cellValue)) {
668
+ const numberInputConfig = getConfig().numberInput || {};
669
+ if (type === 'float') {
670
+ const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true);
671
+ const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 1);
672
+ cellValue = _xeUtils.default.toFixed(_xeUtils.default.floor(cellValue, digits), digits);
673
+ if (!autoFill) {
674
+ cellValue = _xeUtils.default.toNumber(cellValue);
675
+ }
676
+ if (showNegativeStatus) {
677
+ if (cellValue < 0) {
678
+ isNegative = true;
679
+ }
680
+ }
681
+ } else if (type === 'amount') {
682
+ const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true);
683
+ const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 2);
684
+ const showCurrency = handleDefaultValue(props.showCurrency, numberInputConfig.showCurrency, false);
685
+ cellValue = _xeUtils.default.toNumber(cellValue);
686
+ if (showNegativeStatus) {
687
+ if (cellValue < 0) {
688
+ isNegative = true;
689
+ }
690
+ }
691
+ cellValue = _xeUtils.default.commafy(cellValue, {
692
+ digits
693
+ });
694
+ if (!autoFill) {
695
+ const [iStr, dStr] = cellValue.split('.');
696
+ if (dStr) {
697
+ const dRest = dStr.replace(/0+$/, '');
698
+ cellValue = dRest ? [iStr, '.', dRest].join('') : iStr;
699
+ }
700
+ }
701
+ if (showCurrency) {
702
+ cellValue = `${props.currencySymbol || numberInputConfig.currencySymbol || getI18n('vxe.numberInput.currencySymbol') || ''}${cellValue}`;
703
+ }
704
+ } else {
705
+ if (showNegativeStatus) {
706
+ if (_xeUtils.default.toNumber(cellValue) < 0) {
707
+ isNegative = true;
708
+ }
709
+ }
710
+ }
711
+ }
712
+ return getCellLabelVNs(renderOpts, params, cellValue, isNegative ? {
713
+ class: 'is--negative'
714
+ } : {});
715
+ }
652
716
  /**
653
717
  * 表格 - 渲染器
654
718
  */
@@ -718,72 +782,22 @@ renderer.mixin({
718
782
  renderTableFilter: defaultFilterRender,
719
783
  tableFilterDefaultMethod: handleInputFilterMethod
720
784
  },
721
- VxeNumberInput: {
722
- tableAutoFocus: 'input',
723
- renderTableEdit: defaultEditRender,
724
- renderTableCell(renderOpts, params) {
725
- const {
726
- props = {},
727
- showNegativeStatus
728
- } = renderOpts;
785
+ FormatNumberInput: {
786
+ renderTableDefault: handleNumberCell,
787
+ tableFilterDefaultMethod: handleInputFilterMethod,
788
+ tableExportMethod(params) {
729
789
  const {
730
790
  row,
731
791
  column
732
792
  } = params;
733
- const {
734
- type
735
- } = props;
736
- let cellValue = _xeUtils.default.get(row, column.field);
737
- let isNegative = false;
738
- if (!(0, _utils.isEmptyValue)(cellValue)) {
739
- const numberInputConfig = getConfig().numberInput || {};
740
- if (type === 'float') {
741
- const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true);
742
- const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 1);
743
- cellValue = _xeUtils.default.toFixed(_xeUtils.default.floor(cellValue, digits), digits);
744
- if (!autoFill) {
745
- cellValue = _xeUtils.default.toNumber(cellValue);
746
- }
747
- if (showNegativeStatus) {
748
- if (cellValue < 0) {
749
- isNegative = true;
750
- }
751
- }
752
- } else if (type === 'amount') {
753
- const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true);
754
- const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 2);
755
- const showCurrency = handleDefaultValue(props.showCurrency, numberInputConfig.showCurrency, false);
756
- cellValue = _xeUtils.default.toNumber(cellValue);
757
- if (showNegativeStatus) {
758
- if (cellValue < 0) {
759
- isNegative = true;
760
- }
761
- }
762
- cellValue = _xeUtils.default.commafy(cellValue, {
763
- digits
764
- });
765
- if (!autoFill) {
766
- const [iStr, dStr] = cellValue.split('.');
767
- if (dStr) {
768
- const dRest = dStr.replace(/0+$/, '');
769
- cellValue = dRest ? [iStr, '.', dRest].join('') : iStr;
770
- }
771
- }
772
- if (showCurrency) {
773
- cellValue = `${props.currencySymbol || numberInputConfig.currencySymbol || getI18n('vxe.numberInput.currencySymbol') || ''}${cellValue}`;
774
- }
775
- } else {
776
- if (showNegativeStatus) {
777
- if (_xeUtils.default.toNumber(cellValue) < 0) {
778
- isNegative = true;
779
- }
780
- }
781
- }
782
- }
783
- return getCellLabelVNs(renderOpts, params, cellValue, isNegative ? {
784
- class: 'is--negative'
785
- } : {});
786
- },
793
+ const cellValue = _xeUtils.default.get(row, column.field);
794
+ return cellValue;
795
+ }
796
+ },
797
+ VxeNumberInput: {
798
+ tableAutoFocus: 'input',
799
+ renderTableEdit: defaultEditRender,
800
+ renderTableCell: handleNumberCell,
787
801
  renderTableFooter(renderOpts, params) {
788
802
  const {
789
803
  props = {}
@@ -922,11 +936,22 @@ renderer.mixin({
922
936
  tableFilterDefaultMethod: handleFilterMethod,
923
937
  tableExportMethod: handleExportSelectMethod
924
938
  },
939
+ /**
940
+ * 已废弃,被 FormatSelect 替换
941
+ * @deprecated
942
+ */
925
943
  formatOption: {
926
944
  renderTableDefault(renderOpts, params) {
927
945
  return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params));
928
946
  }
929
947
  },
948
+ FormatSelect: {
949
+ renderTableDefault(renderOpts, params) {
950
+ return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params));
951
+ },
952
+ tableFilterDefaultMethod: handleFilterMethod,
953
+ tableExportMethod: handleExportSelectMethod
954
+ },
930
955
  VxeTreeSelect: {
931
956
  tableAutoFocus: 'input',
932
957
  renderTableEdit: defaultTableOrTreeSelectEditRender,
@@ -935,11 +960,21 @@ renderer.mixin({
935
960
  },
936
961
  tableExportMethod: handleExportTreeSelectMethod
937
962
  },
963
+ /**
964
+ * 已废弃,被 FormatTreeSelect 替换
965
+ * @deprecated
966
+ */
938
967
  formatTree: {
939
968
  renderTableDefault(renderOpts, params) {
940
969
  return getCellLabelVNs(renderOpts, params, getTreeSelectCellValue(renderOpts, params));
941
970
  }
942
971
  },
972
+ FormatTreeSelect: {
973
+ renderTableDefault(renderOpts, params) {
974
+ return getCellLabelVNs(renderOpts, params, getTreeSelectCellValue(renderOpts, params));
975
+ },
976
+ tableExportMethod: handleExportTreeSelectMethod
977
+ },
943
978
  VxeTableSelect: {
944
979
  tableAutoFocus: 'input',
945
980
  renderTableEdit: defaultTableOrTreeSelectEditRender,