vxe-table 3.18.14 → 3.18.16

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 (71) hide show
  1. package/README.md +1 -1
  2. package/es/grid/src/grid.js +4 -1
  3. package/es/grid/style.css +0 -1
  4. package/es/grid/style.min.css +1 -1
  5. package/es/index.css +1 -1
  6. package/es/index.min.css +1 -1
  7. package/es/locale/lang/en-US.js +2 -2
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/table/module/filter/panel.js +2 -1
  11. package/es/table/module/menu/mixin.js +9 -3
  12. package/es/table/module/menu/panel.js +136 -118
  13. package/es/table/src/header.js +4 -1
  14. package/es/table/src/methods.js +15 -12
  15. package/es/table/src/table.js +52 -28
  16. package/es/table/src/util.js +15 -0
  17. package/es/ui/index.js +8 -5
  18. package/es/ui/src/log.js +1 -1
  19. package/es/vxe-grid/style.css +0 -1
  20. package/es/vxe-grid/style.min.css +1 -1
  21. package/lib/grid/src/grid.js +3 -1
  22. package/lib/grid/src/grid.min.js +1 -1
  23. package/lib/grid/style/style.css +0 -1
  24. package/lib/grid/style/style.min.css +1 -1
  25. package/lib/index.css +1 -1
  26. package/lib/index.min.css +1 -1
  27. package/lib/index.umd.js +132 -51
  28. package/lib/index.umd.min.js +1 -1
  29. package/lib/locale/lang/en-US.js +2 -2
  30. package/lib/locale/lang/en-US.min.js +1 -1
  31. package/lib/locale/lang/en-US.umd.js +2 -2
  32. package/lib/style.css +1 -1
  33. package/lib/style.min.css +1 -1
  34. package/lib/table/module/filter/panel.js +3 -2
  35. package/lib/table/module/filter/panel.min.js +1 -1
  36. package/lib/table/module/menu/mixin.js +12 -3
  37. package/lib/table/module/menu/mixin.min.js +1 -1
  38. package/lib/table/module/menu/panel.js +34 -12
  39. package/lib/table/module/menu/panel.min.js +1 -1
  40. package/lib/table/src/header.js +3 -1
  41. package/lib/table/src/header.min.js +1 -1
  42. package/lib/table/src/methods.js +14 -11
  43. package/lib/table/src/methods.min.js +1 -1
  44. package/lib/table/src/table.js +35 -15
  45. package/lib/table/src/table.min.js +1 -1
  46. package/lib/table/src/util.js +21 -0
  47. package/lib/table/src/util.min.js +1 -1
  48. package/lib/ui/index.js +8 -5
  49. package/lib/ui/index.min.js +1 -1
  50. package/lib/ui/src/log.js +1 -1
  51. package/lib/ui/src/log.min.js +1 -1
  52. package/lib/vxe-grid/style/style.css +0 -1
  53. package/lib/vxe-grid/style/style.min.css +1 -1
  54. package/package.json +1 -1
  55. package/packages/grid/src/grid.ts +4 -1
  56. package/packages/locale/lang/en-US.ts +2 -2
  57. package/packages/table/module/filter/panel.ts +2 -1
  58. package/packages/table/module/menu/mixin.ts +11 -3
  59. package/packages/table/module/menu/panel.ts +137 -117
  60. package/packages/table/src/header.ts +3 -1
  61. package/packages/table/src/methods.ts +15 -12
  62. package/packages/table/src/table.ts +53 -29
  63. package/packages/table/src/util.ts +17 -0
  64. package/packages/ui/index.ts +7 -4
  65. package/styles/components/grid.scss +0 -1
  66. /package/es/{iconfont.1758158482285.ttf → iconfont.1758344480506.ttf} +0 -0
  67. /package/es/{iconfont.1758158482285.woff → iconfont.1758344480506.woff} +0 -0
  68. /package/es/{iconfont.1758158482285.woff2 → iconfont.1758344480506.woff2} +0 -0
  69. /package/lib/{iconfont.1758158482285.ttf → iconfont.1758344480506.ttf} +0 -0
  70. /package/lib/{iconfont.1758158482285.woff → iconfont.1758344480506.woff} +0 -0
  71. /package/lib/{iconfont.1758158482285.woff2 → iconfont.1758344480506.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_vn=require("../../../ui/src/vn"),_log=require("../../../ui/src/log");let{getI18n,getIcon,renderer,globalMixins}=_ui.VxeUI;function renderOptions(l,i,e,t){var r=l.$xeTable;let a=l.filterStore,{column:n,multiple:s,maxHeight:o}=a;var c=n?n.slots:null,c=c?c.filter:null,p=Object.assign({},r._currFilterParams,{$panel:l,$table:r}),t=t?t.renderTableFilter||t.renderFilter:null;return c?[i("div",{class:"vxe-table--filter-template",style:o?{maxHeight:o+"px"}:{}},r.callSlot(c,p,i))]:t?[i("div",{class:"vxe-table--filter-template",style:o?{maxHeight:o+"px"}:{}},(0,_vn.getSlotVNs)(t.call(r,i,e,p)))]:(c=s?a.isAllSelected:!a.options.some(e=>e._checked),t=s&&a.isIndeterminate,[i("ul",{class:"vxe-table--filter-header"},[i("li",{class:["vxe-table--filter-option",{"is--checked":c,"is--indeterminate":t}],attrs:{title:getI18n(s?"vxe.table.allTitle":"vxe.table.allFilter")},on:{click:e=>{l.changeAllOption(e,!a.isAllSelected)}}},(s?[i("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:c?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),i("ul",{class:"vxe-table--filter-body",style:o?{maxHeight:o+"px"}:{}},a.options.map(t=>{var e=t._checked;return i("li",{class:["vxe-table--filter-option",{"is--checked":e}],attrs:{title:t.label},on:{click:e=>{l.changeOption(e,!t._checked,t)}}},(s?[i("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])}function renderFooter(e,t){var l=e.filterStore,{column:i,multiple:r}=l,a=e.$xeTable.computeFilterOpts,n=e.computeHasCheckOption,i=i.filterRender,i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null,n=!n&&!l.isAllSelected&&!l.isIndeterminate;return r&&(!i||!1!==i.showTableFilterFooter&&!1!==i.showFilterFooter&&!1!==i.isFooter)?[t("div",{class:"vxe-table--filter-footer"},[t("button",{class:{"is--disabled":n},attrs:{disabled:n},on:{click:e.confirmFilter}},a.confirmButtonText||getI18n("vxe.table.confirmFilter")),t("button",{on:{click:e.resetFilter}},a.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]}var _default=exports.default={name:"VxeTableFilterPanel",mixins:[globalMixins.sizeMixin],props:{filterStore:Object},inject:{$xeTable:{default:null}},computed:{computeHasCheckOption(){var e=this.filterStore;return e&&e.options.some(e=>e.checked)}},mounted(){var e=this.$xeTable.computeFilterOpts.transfer,t=this.$refs.refElem;e&&t&&document.body.appendChild(t)},beforeDestroy(){var e=this.$refs.refElem;e&&e.parentNode&&e.parentNode.removeChild(e)},render(e){var t=this,l=t.$xeTable,i=l,r=t.filterStore,{visible:a,multiple:n,column:s}=r,o=s?s.filterRender:null,c=(0,_utils.isEnableConf)(o)?renderer.get(o.name):null,p=c?c.tableFilterClassName||c.filterClassName:"",i=Object.assign({},i._currFilterParams,{$panel:t,$table:l}),u=l,d=t.computeSize,l=l.computeFilterOpts.destroyOnClose;return e("div",{ref:"refElem",class:["vxe-table--filter-wrapper","filter--prevent-default",c&&c.className?c.className:"",(0,_utils.getClass)(p,i),{["size--"+d]:d,"is--animat":u.animat,"is--multiple":n,"is--active":a}],style:r.style},r.visible&&(!l||a)&&s?renderOptions(t,e,o,c).concat(renderFooter(t,e)):[])},methods:{filterCheckAllEvent(e,t){var l=this.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},changeRadioOption(e,t,l){var i=this.$parent,r=this.filterStore;r.options.forEach(e=>{e._checked=!1}),l._checked=t,i.checkFilterOptions(),this.confirmFilter(e)},changeMultipleOption(e,t,l){var i=this.$parent;l._checked=t,i.checkFilterOptions()},changeAllOption(e,t){this.filterStore.multiple?this.filterCheckAllEvent(e,t):this.resetFilter(e)},changeOption(e,t,l){this.filterStore.multiple?this.changeMultipleOption(e,t,l):this.changeRadioOption(e,t,l)},confirmFilter(e){var t=this.$parent;e||(0,_log.warnLog)("vxe.error.delFunc",["confirmFilter","saveFilterPanelByEvent"]),t.handleFilterConfirmFilter(e||new Event("click"))},resetFilter(e){this.$parent.handleFilterResetFilter(e)}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_vn=require("../../../ui/src/vn"),_log=require("../../../ui/src/log");let{getI18n,getIcon,renderer,globalMixins}=_ui.VxeUI;function renderOptions(l,i,e,t){var r=l.$xeTable;let a=l.filterStore,{column:s,multiple:n,maxHeight:o}=a;var c=s?s.slots:null,c=c?c.filter:null,p=Object.assign({},r._currFilterParams,{$panel:l,$table:r}),t=t?t.renderTableFilter||t.renderFilter:null;return c?[i("div",{class:"vxe-table--filter-template",style:o?{maxHeight:o+"px"}:{}},r.callSlot(c,p,i))]:t?[i("div",{class:"vxe-table--filter-template",style:o?{maxHeight:o+"px"}:{}},(0,_vn.getSlotVNs)(t.call(r,i,e,p)))]:(c=n?a.isAllSelected:!a.options.some(e=>e._checked),t=n&&a.isIndeterminate,[i("ul",{class:"vxe-table--filter-header"},[i("li",{class:["vxe-table--filter-option",{"is--checked":c,"is--indeterminate":t}],attrs:{title:getI18n(n?"vxe.table.allTitle":"vxe.table.allFilter")},on:{click:e=>{l.changeAllOption(e,!a.isAllSelected)}}},(n?[i("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:c?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),i("ul",{class:"vxe-table--filter-body",style:o?{maxHeight:o+"px"}:{}},a.options.map(t=>{var e=t._checked;return i("li",{class:["vxe-table--filter-option",{"is--checked":e}],attrs:{title:t.label},on:{click:e=>{l.changeOption(e,!t._checked,t)}}},(n?[i("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([i("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])}function renderFooter(e,t){var l=e.filterStore,{column:i,multiple:r}=l,a=e.$xeTable.computeFilterOpts,s=e.computeHasCheckOption,i=i.filterRender,i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null,s=!s&&!l.isAllSelected&&!l.isIndeterminate;return r&&(!i||!1!==i.showTableFilterFooter&&!1!==i.showFilterFooter&&!1!==i.isFooter)?[t("div",{class:"vxe-table--filter-footer"},[t("button",{class:{"is--disabled":s},attrs:{disabled:s},on:{click:e.confirmFilter}},a.confirmButtonText||getI18n("vxe.table.confirmFilter")),t("button",{on:{click:e.resetFilter}},a.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]}var _default=exports.default={name:"VxeTableFilterPanel",mixins:[globalMixins.sizeMixin],props:{filterStore:Object},inject:{$xeTable:{default:null}},computed:{computeHasCheckOption(){var e=this.filterStore;return e&&e.options.some(e=>e.checked)}},mounted(){var e=this.$xeTable.computeFilterOpts.transfer,t=this.$refs.refElem;e&&t&&document.body.appendChild(t)},beforeDestroy(){var e=this.$refs.refElem;e&&e.parentNode&&e.parentNode.removeChild(e)},render(e){var t=this,l=t.$xeTable,i=l,r=t.filterStore,{visible:a,multiple:s,column:n}=r,o=n?n.filterRender:null,c=(0,_utils.isEnableConf)(o)?renderer.get(o.name):null,p=c?c.tableFilterClassName||c.filterClassName:"",i=Object.assign({},i._currFilterParams,{$panel:t,$table:l}),u=l,d=t.computeSize,{destroyOnClose:l,className:h}=l.computeFilterOpts;return e("div",{ref:"refElem",class:["vxe-table--filter-wrapper","filter--prevent-default",h,c&&c.className?c.className:"",(0,_utils.getClass)(p,i),{["size--"+d]:d,"is--animat":u.animat,"is--multiple":s,"is--active":a}],style:r.style},r.visible&&(!l||a)&&n?renderOptions(t,e,o,c).concat(renderFooter(t,e)):[])},methods:{filterCheckAllEvent(e,t){var l=this.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},changeRadioOption(e,t,l){var i=this.$parent,r=this.filterStore;r.options.forEach(e=>{e._checked=!1}),l._checked=t,i.checkFilterOptions(),this.confirmFilter(e)},changeMultipleOption(e,t,l){var i=this.$parent;l._checked=t,i.checkFilterOptions()},changeAllOption(e,t){this.filterStore.multiple?this.filterCheckAllEvent(e,t):this.resetFilter(e)},changeOption(e,t,l){this.filterStore.multiple?this.changeMultipleOption(e,t,l):this.changeRadioOption(e,t,l)},confirmFilter(e){var t=this.$parent;e||(0,_log.warnLog)("vxe.error.delFunc",["confirmFilter","saveFilterPanelByEvent"]),t.handleFilterConfirmFilter(e||new Event("click"))},resetFilter(e){this.$parent.handleFilterResetFilter(e)}}};
@@ -205,7 +205,10 @@ var _default = exports.default = {
205
205
  const isContentMenu = $xeTable.computeIsContentMenu;
206
206
  const menuOpts = $xeTable.computeMenuOpts;
207
207
  const config = menuOpts[type];
208
- const visibleMethod = menuOpts.visibleMethod;
208
+ const {
209
+ transfer,
210
+ visibleMethod
211
+ } = menuOpts;
209
212
  if (config) {
210
213
  const {
211
214
  options,
@@ -219,14 +222,20 @@ var _default = exports.default = {
219
222
  if (!visibleMethod || visibleMethod(params)) {
220
223
  evnt.preventDefault();
221
224
  $xeTable.updateZindex();
225
+ const el = $xeTable.$refs.refElem;
226
+ const tableRect = el.getBoundingClientRect();
222
227
  const {
223
228
  scrollTop,
224
229
  scrollLeft,
225
230
  visibleHeight,
226
231
  visibleWidth
227
232
  } = (0, _dom.getDomNode)();
228
- let top = evnt.clientY + scrollTop;
229
- let left = evnt.clientX + scrollLeft;
233
+ let top = evnt.clientY - tableRect.y;
234
+ let left = evnt.clientX - tableRect.x;
235
+ if (transfer) {
236
+ top = evnt.clientY + scrollTop;
237
+ left = evnt.clientX + scrollLeft;
238
+ }
230
239
  const handleVisible = () => {
231
240
  internalData._currMenuParams = params;
232
241
  Object.assign(ctxMenuStore, {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI;var _default=exports.default={methods:{_closeMenu(){return Object.assign(this.ctxMenuStore,{visible:!1,selected:null,selectChild:null,showChild:!1}),this.$nextTick()},moveCtxMenu(e,t,l,n,o,i){let r;var s=_xeUtils.default.findIndexOf(i,e=>t[l]===e);if(n)o&&(0,_utils.hasChildrenList)(t.selected)?t.showChild=!0:(t.showChild=!1,t.selectChild=null);else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_UP)){for(let e=s-1;0<=e;e--)if(!1!==i[e].visible){r=i[e];break}t[l]=r||i[i.length-1]}else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_DOWN)){for(let e=s+1;e<i.length;e++)if(!1!==i[e].visible){r=i[e];break}t[l]=r||i[0]}else t[l]&&(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ENTER)||globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.SPACEBAR))&&this.ctxMenuLinkEvent(e,t[l])},handleGlobalContextmenuEvent(t){var l=this,n=l.$xeGrid,o=l.$xeGantt,e=l;let i=l.xID;var{mouseConfig:r,menuConfig:s}=l,{editStore:u,ctxMenuStore:d}=l,a=e.visibleColumn,c=l.$refs.refTableFilter,h=l.$refs.refTableMenu,v=l.computeMouseOpts,f=l.computeMenuOpts,g=l.$refs.refElem,u=u.selected,m=["header","body","footer"];if((0,_utils.isEnableConf)(s)){if(d.visible&&h&&(0,_dom.getEventTargetNode)(t,h.$el).flag)return void t.preventDefault();if(e._keyCtx){s="body",d={type:s,$table:l,$grid:n,$gantt:o,keyboard:!0,columns:a.slice(0),$event:t};if(r&&v.area){h=l.getActiveCellArea();if(h&&h.row&&h.column)return d.row=h.row,d.column=h.column,void l.handleOpenMenuEvent(t,s,d)}else if(r&&v.selected&&u.row&&u.column)return d.row=u.row,d.column=u.column,void l.handleOpenMenuEvent(t,s,d)}for(let e=0;e<m.length;e++){var x=m[e],p=(0,_dom.getEventTargetNode)(t,g,`vxe-${x}--column`,e=>e.parentNode.parentNode.parentNode.getAttribute("xid")===i),b={type:x,$table:l,$grid:n,$gantt:o,columns:a.slice(0),$event:t};if(p.flag){var p=p.targetElem,E=l.getColumnNode(p),E=E?E.item:null;let e=x+"-";E&&Object.assign(b,{column:E,columnIndex:l.getColumnIndex(E),cell:p}),"body"===x&&(p=(E=l.getRowNode(p.parentNode))?E.item:null,e="",p)&&(b.row=p,b.rowIndex=l.getRowIndex(p));E=e+"cell-menu";return l.handleOpenMenuEvent(t,x,b),void(l.$listeners[e+"cell-context-menu"]?((0,_log.warnLog)("vxe.error.delEvent",[e+"cell-context-menu",e+"cell-menu"]),l.dispatchEvent(e+"cell-context-menu",b,t)):l.dispatchEvent(E,b,t))}if((0,_dom.getEventTargetNode)(t,l.$el,`vxe-table--${x}-wrapper`,e=>e.getAttribute("xid")===i).flag)return void("cell"===f.trigger?t.preventDefault():l.handleOpenMenuEvent(t,x,b))}}c&&!(0,_dom.getEventTargetNode)(t,c.$el).flag&&l.closeFilter(),l.closeMenu()},handleOpenMenuEvent(l,n,h){let v=this;var o=v;let f=v,g=o.ctxMenuStore;var o=v.computeIsContentMenu,e=v.computeMenuOpts,n=e[n];let i=e.visibleMethod;if(n){let{options:t,disabled:e}=n;e?l.preventDefault():o&&t&&t.length&&(h.options=t,v.preventEvent(l,"event.showMenu",h,()=>{if(!i||i(h)){l.preventDefault(),v.updateZindex();let{scrollTop:o,scrollLeft:i,visibleHeight:r,visibleWidth:s}=(0,_dom.getDomNode)(),u=l.clientY+o,d=l.clientX+i,n=()=>{f._currMenuParams=h,Object.assign(g,{visible:!0,list:t,selected:null,selectChild:null,showChild:!1,style:{zIndex:f.tZindex,top:u+"px",left:d+"px"}}),v.$nextTick(()=>{var e=v.$refs.refTableMenu.$el,t=e.clientHeight,l=e.clientWidth,{boundingTop:e,boundingLeft:n}=(0,_dom.getAbsolutePos)(e),e=e+t-r,n=n+l-s;-10<e&&(g.style.top=Math.max(o+2,u-t-2)+"px"),-10<n&&(g.style.left=Math.max(i+2,d-l-2)+"px")})},{keyboard:e,row:a,column:c}=h;e&&a&&c?v.scrollToRow(a,c).then(()=>{var e,t,l=v.getCellElement(a,c);l&&({boundingTop:e,boundingLeft:t}=(0,_dom.getAbsolutePos)(l),u=e+o+Math.floor(l.offsetHeight/2),d=t+i+Math.floor(l.offsetWidth/2)),n()}):n()}else v.closeMenu()}))}v.closeFilter()},ctxMenuMouseoverEvent(e,t,l){let d=e.currentTarget;var n=this.ctxMenuStore;e.preventDefault(),e.stopPropagation(),n.selected=t,(n.selectChild=l)||(n.showChild=(0,_utils.hasChildrenList)(t),n.showChild&&this.$nextTick(()=>{var o=d.nextElementSibling;if(o){var{boundingTop:i,boundingLeft:r,visibleHeight:s,visibleWidth:u}=(0,_dom.getAbsolutePos)(d),i=i+d.offsetHeight;let e="",t="",l=(r+d.offsetWidth+o.offsetWidth>u-10&&(e="auto",t=d.offsetWidth+"px"),""),n="";i+o.offsetHeight>s-10&&(l="auto",n="0"),o.style.left=e,o.style.right=t,o.style.top=l,o.style.bottom=n}}))},ctxMenuMouseoutEvent(e,t){var l=this.ctxMenuStore;t.children||(l.selected=null),l.selectChild=null},ctxMenuLinkEvent(e,t){var l,n=this,o=n.$xeGrid,i=n.$xeGantt,r=n;t.disabled||!t.code&&t.children&&t.children.length||(l=menus.get(t.code),r=Object.assign({},r._currMenuParams,{menu:t,$table:n,$grid:o,$gantt:i,$event:e}),l&&l.menuMethod&&l.menuMethod(r,e),n.$listeners["context-menu-click"]?((0,_log.warnLog)("vxe.error.delEvent",["context-menu-click","menu-click"]),n.dispatchEvent("context-menu-click",r,e)):n.dispatchEvent("menu-click",r,e),n.closeMenu())}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI;var _default=exports.default={methods:{_closeMenu(){return Object.assign(this.ctxMenuStore,{visible:!1,selected:null,selectChild:null,showChild:!1}),this.$nextTick()},moveCtxMenu(e,t,l,n,o,i){let r;var s=_xeUtils.default.findIndexOf(i,e=>t[l]===e);if(n)o&&(0,_utils.hasChildrenList)(t.selected)?t.showChild=!0:(t.showChild=!1,t.selectChild=null);else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_UP)){for(let e=s-1;0<=e;e--)if(!1!==i[e].visible){r=i[e];break}t[l]=r||i[i.length-1]}else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_DOWN)){for(let e=s+1;e<i.length;e++)if(!1!==i[e].visible){r=i[e];break}t[l]=r||i[0]}else t[l]&&(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ENTER)||globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.SPACEBAR))&&this.ctxMenuLinkEvent(e,t[l])},handleGlobalContextmenuEvent(t){var l=this,n=l.$xeGrid,o=l.$xeGantt,e=l;let i=l.xID;var{mouseConfig:r,menuConfig:s}=l,{editStore:u,ctxMenuStore:d}=l,a=e.visibleColumn,c=l.$refs.refTableFilter,v=l.$refs.refTableMenu,f=l.computeMouseOpts,h=l.computeMenuOpts,g=l.$refs.refElem,u=u.selected,m=["header","body","footer"];if((0,_utils.isEnableConf)(s)){if(d.visible&&v&&(0,_dom.getEventTargetNode)(t,v.$el).flag)return void t.preventDefault();if(e._keyCtx){s="body",d={type:s,$table:l,$grid:n,$gantt:o,keyboard:!0,columns:a.slice(0),$event:t};if(r&&f.area){v=l.getActiveCellArea();if(v&&v.row&&v.column)return d.row=v.row,d.column=v.column,void l.handleOpenMenuEvent(t,s,d)}else if(r&&f.selected&&u.row&&u.column)return d.row=u.row,d.column=u.column,void l.handleOpenMenuEvent(t,s,d)}for(let e=0;e<m.length;e++){var x=m[e],p=(0,_dom.getEventTargetNode)(t,g,`vxe-${x}--column`,e=>e.parentNode.parentNode.parentNode.getAttribute("xid")===i),b={type:x,$table:l,$grid:n,$gantt:o,columns:a.slice(0),$event:t};if(p.flag){var p=p.targetElem,E=l.getColumnNode(p),E=E?E.item:null;let e=x+"-";E&&Object.assign(b,{column:E,columnIndex:l.getColumnIndex(E),cell:p}),"body"===x&&(p=(E=l.getRowNode(p.parentNode))?E.item:null,e="",p)&&(b.row=p,b.rowIndex=l.getRowIndex(p));E=e+"cell-menu";return l.handleOpenMenuEvent(t,x,b),void(l.$listeners[e+"cell-context-menu"]?((0,_log.warnLog)("vxe.error.delEvent",[e+"cell-context-menu",e+"cell-menu"]),l.dispatchEvent(e+"cell-context-menu",b,t)):l.dispatchEvent(E,b,t))}if((0,_dom.getEventTargetNode)(t,l.$el,`vxe-table--${x}-wrapper`,e=>e.getAttribute("xid")===i).flag)return void("cell"===h.trigger?t.preventDefault():l.handleOpenMenuEvent(t,x,b))}}c&&!(0,_dom.getEventTargetNode)(t,c.$el).flag&&l.closeFilter(),l.closeMenu()},handleOpenMenuEvent(v,t,f){let h=this;var n=h;let g=h,m=n.ctxMenuStore;var n=h.computeIsContentMenu,e=h.computeMenuOpts,t=e[t];let{transfer:x,visibleMethod:o}=e;if(t){let{options:l,disabled:e}=t;e?v.preventDefault():n&&l&&l.length&&(f.options=l,h.preventEvent(v,"event.showMenu",f,()=>{if(!o||o(f)){v.preventDefault(),h.updateZindex();var t=h.$refs.refElem.getBoundingClientRect();let{scrollTop:o,scrollLeft:i,visibleHeight:r,visibleWidth:s}=(0,_dom.getDomNode)(),u=v.clientY-t.y,d=v.clientX-t.x,n=(x&&(u=v.clientY+o,d=v.clientX+i),()=>{g._currMenuParams=f,Object.assign(m,{visible:!0,list:l,selected:null,selectChild:null,showChild:!1,style:{zIndex:g.tZindex,top:u+"px",left:d+"px"}}),h.$nextTick(()=>{var e=h.$refs.refTableMenu.$el,t=e.clientHeight,l=e.clientWidth,{boundingTop:e,boundingLeft:n}=(0,_dom.getAbsolutePos)(e),e=e+t-r,n=n+l-s;-10<e&&(m.style.top=Math.max(o+2,u-t-2)+"px"),-10<n&&(m.style.left=Math.max(i+2,d-l-2)+"px")})}),{keyboard:e,row:a,column:c}=f;e&&a&&c?h.scrollToRow(a,c).then(()=>{var e,t,l=h.getCellElement(a,c);l&&({boundingTop:e,boundingLeft:t}=(0,_dom.getAbsolutePos)(l),u=e+o+Math.floor(l.offsetHeight/2),d=t+i+Math.floor(l.offsetWidth/2)),n()}):n()}else h.closeMenu()}))}h.closeFilter()},ctxMenuMouseoverEvent(e,t,l){let d=e.currentTarget;var n=this.ctxMenuStore;e.preventDefault(),e.stopPropagation(),n.selected=t,(n.selectChild=l)||(n.showChild=(0,_utils.hasChildrenList)(t),n.showChild&&this.$nextTick(()=>{var o=d.nextElementSibling;if(o){var{boundingTop:i,boundingLeft:r,visibleHeight:s,visibleWidth:u}=(0,_dom.getAbsolutePos)(d),i=i+d.offsetHeight;let e="",t="",l=(r+d.offsetWidth+o.offsetWidth>u-10&&(e="auto",t=d.offsetWidth+"px"),""),n="";i+o.offsetHeight>s-10&&(l="auto",n="0"),o.style.left=e,o.style.right=t,o.style.top=l,o.style.bottom=n}}))},ctxMenuMouseoutEvent(e,t){var l=this.ctxMenuStore;t.children||(l.selected=null),l.selectChild=null},ctxMenuLinkEvent(e,t){var l,n=this,o=n.$xeGrid,i=n.$xeGantt,r=n;t.disabled||!t.code&&t.children&&t.children.length||(l=menus.get(t.code),r=Object.assign({},r._currMenuParams,{menu:t,$table:n,$grid:o,$gantt:i,$event:e}),l&&l.menuMethod&&l.menuMethod(r,e),n.$listeners["context-menu-click"]?((0,_log.warnLog)("vxe.error.delEvent",["context-menu-click","menu-click"]),n.dispatchEvent("context-menu-click",r,e)):n.dispatchEvent("menu-click",r,e),n.closeMenu())}}};
@@ -16,30 +16,52 @@ var _default = exports.default = {
16
16
  ctxMenuStore: Object,
17
17
  ctxMenuOpts: Object
18
18
  },
19
+ inject: {
20
+ $xeTable: {
21
+ default: null
22
+ }
23
+ },
19
24
  mounted() {
20
- document.body.appendChild(this.$el);
25
+ const $xeMenuPanel = this;
26
+ const $xeTable = $xeMenuPanel.$xeTable;
27
+ const menuOpts = $xeTable.computeMenuOpts;
28
+ const {
29
+ transfer
30
+ } = menuOpts;
31
+ const el = this.$refs.refElem;
32
+ if (transfer && el) {
33
+ document.body.appendChild(el);
34
+ }
21
35
  },
22
36
  beforeDestroy() {
23
- const {
24
- $el
25
- } = this;
26
- if ($el.parentNode) {
27
- $el.parentNode.removeChild($el);
37
+ const el = this.$refs.refElem;
38
+ if (el && el.parentNode) {
39
+ el.parentNode.removeChild(el);
28
40
  }
29
41
  },
30
42
  render(h) {
31
- const $xeTable = this.$parent;
43
+ const $xeMenuPanel = this;
44
+ const $xeTable = $xeMenuPanel.$xeTable;
32
45
  const tableReactData = $xeTable;
33
46
  const {
34
47
  ctxMenuStore
35
48
  } = tableReactData;
36
49
  const menuOpts = $xeTable.computeMenuOpts;
50
+ const {
51
+ destroyOnClose
52
+ } = menuOpts;
53
+ const {
54
+ visible,
55
+ list,
56
+ className
57
+ } = ctxMenuStore;
37
58
  return h('div', {
38
- class: ['vxe-table--context-menu-wrapper', menuOpts.className, {
39
- 'is--visible': ctxMenuStore.visible
59
+ ref: 'refElem',
60
+ class: ['vxe-table--context-menu-wrapper', className, {
61
+ 'is--visible': visible
40
62
  }],
41
63
  style: ctxMenuStore.style
42
- }, ctxMenuStore.list.map((options, gIndex) => {
64
+ }, (destroyOnClose ? visible : true) ? list.map((options, gIndex) => {
43
65
  return options.every(item => item.visible === false) ? renderEmptyElement($xeTable) : h('ul', {
44
66
  class: 'vxe-context-menu--option-wrapper',
45
67
  key: gIndex
@@ -48,7 +70,7 @@ var _default = exports.default = {
48
70
  const prefixOpts = Object.assign({}, item.prefixConfig);
49
71
  const suffixOpts = Object.assign({}, item.suffixConfig);
50
72
  const menuContent = (0, _utils.getFuncText)(item.name);
51
- return item.visible === false ? null : h('li', {
73
+ return item.visible === false ? renderEmptyElement($xeTable) : h('li', {
52
74
  class: [item.className, {
53
75
  'link--disabled': item.disabled,
54
76
  'link--active': item === ctxMenuStore.selected
@@ -123,6 +145,6 @@ var _default = exports.default = {
123
145
  }), childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : renderEmptyElement($xeTable)])])]);
124
146
  })) : null]);
125
147
  }));
126
- }));
148
+ }) : []);
127
149
  }
128
150
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_utils=require("../../../ui/src/utils");let{getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default={name:"VxeTableMenuPanel",props:{ctxMenuStore:Object,ctxMenuOpts:Object},mounted(){document.body.appendChild(this.$el)},beforeDestroy(){var e=this.$el;e.parentNode&&e.parentNode.removeChild(e)},render(o){let r=this.$parent;let u=r.ctxMenuStore;var e=r.computeMenuOpts;return o("div",{class:["vxe-table--context-menu-wrapper",e.className,{"is--visible":u.visible}],style:u.style},u.list.map((e,a)=>e.every(e=>!1===e.visible)?renderEmptyElement(r):o("ul",{class:"vxe-context-menu--option-wrapper",key:a},e.map((i,c)=>{var e=i.children&&i.children.some(e=>!1!==e.visible),t=Object.assign({},i.prefixConfig),n=Object.assign({},i.suffixConfig),s=(0,_utils.getFuncText)(i.name);return!1===i.visible?null:o("li",{class:[i.className,{"link--disabled":i.disabled,"link--active":i===u.selected}],key:a+"_"+c},[o("a",{class:"vxe-context-menu--link",on:{click(e){r.ctxMenuLinkEvent(e,i)},mouseover(e){r.ctxMenuMouseoverEvent(e,i)},mouseout(e){r.ctxMenuMouseoutEvent(e,i)}}},[o("div",{class:["vxe-context-menu--link-prefix",t.className||""]},[o("i",{class:t.icon||i.prefixIcon}),t.content?o("span",{},""+t.content):renderEmptyElement(r)]),o("span",{class:"vxe-context-menu--link-content",attrs:{title:s}},s),o("div",{class:["vxe-context-menu--link-suffix",n.className||""]},[o("i",{class:n.icon||i.suffixIcon||(e?getIcon().TABLE_MENU_OPTIONS:"")}),n.content?o("span",""+n.content):renderEmptyElement(r)])]),e?o("ul",{class:["vxe-table--context-menu-clild-wrapper",{"is--show":i===u.selected&&u.showChild}]},i.children.map((t,e)=>{var n=Object.assign({},t.prefixConfig),s=Object.assign({},t.suffixConfig),l=(0,_utils.getFuncText)(t.name);return!1===t.visible?null:o("li",{class:[t.className,{"link--disabled":t.disabled,"link--active":t===u.selectChild}],key:a+`_${c}_`+e},[o("a",{class:"vxe-context-menu--link",on:{click(e){r.ctxMenuLinkEvent(e,t)},mouseover(e){r.ctxMenuMouseoverEvent(e,i,t)},mouseout(e){r.ctxMenuMouseoutEvent(e,i)}}},[o("div",{class:["vxe-context-menu--link-prefix",n.className||""]},[o("i",{class:n.icon||t.prefixIcon}),n.content?o("span",""+n.content):renderEmptyElement(r)]),o("span",{class:"vxe-context-menu--link-content",attrs:{title:l}},l),o("div",{class:["vxe-context-menu--link-suffix",s.className||""]},[o("i",{class:s.icon}),s.content?o("span",""+s.content):renderEmptyElement(r)])])])})):null])}))))}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../../ui"),_utils=require("../../../ui/src/utils");let{getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default={name:"VxeTableMenuPanel",props:{ctxMenuStore:Object,ctxMenuOpts:Object},inject:{$xeTable:{default:null}},mounted(){var e=this.$xeTable.computeMenuOpts.transfer,t=this.$refs.refElem;e&&t&&document.body.appendChild(t)},beforeDestroy(){var e=this.$refs.refElem;e&&e.parentNode&&e.parentNode.removeChild(e)},render(o){let r=this.$xeTable,u=r.ctxMenuStore;var e=r.computeMenuOpts.destroyOnClose,{visible:t,list:n,className:s}=u;return o("div",{ref:"refElem",class:["vxe-table--context-menu-wrapper",s,{"is--visible":t}],style:u.style},!e||t?n.map((e,a)=>e.every(e=>!1===e.visible)?renderEmptyElement(r):o("ul",{class:"vxe-context-menu--option-wrapper",key:a},e.map((i,c)=>{var e=i.children&&i.children.some(e=>!1!==e.visible),t=Object.assign({},i.prefixConfig),n=Object.assign({},i.suffixConfig),s=(0,_utils.getFuncText)(i.name);return!1===i.visible?renderEmptyElement(r):o("li",{class:[i.className,{"link--disabled":i.disabled,"link--active":i===u.selected}],key:a+"_"+c},[o("a",{class:"vxe-context-menu--link",on:{click(e){r.ctxMenuLinkEvent(e,i)},mouseover(e){r.ctxMenuMouseoverEvent(e,i)},mouseout(e){r.ctxMenuMouseoutEvent(e,i)}}},[o("div",{class:["vxe-context-menu--link-prefix",t.className||""]},[o("i",{class:t.icon||i.prefixIcon}),t.content?o("span",{},""+t.content):renderEmptyElement(r)]),o("span",{class:"vxe-context-menu--link-content",attrs:{title:s}},s),o("div",{class:["vxe-context-menu--link-suffix",n.className||""]},[o("i",{class:n.icon||i.suffixIcon||(e?getIcon().TABLE_MENU_OPTIONS:"")}),n.content?o("span",""+n.content):renderEmptyElement(r)])]),e?o("ul",{class:["vxe-table--context-menu-clild-wrapper",{"is--show":i===u.selected&&u.showChild}]},i.children.map((t,e)=>{var n=Object.assign({},t.prefixConfig),s=Object.assign({},t.suffixConfig),l=(0,_utils.getFuncText)(t.name);return!1===t.visible?null:o("li",{class:[t.className,{"link--disabled":t.disabled,"link--active":t===u.selectChild}],key:a+`_${c}_`+e},[o("a",{class:"vxe-context-menu--link",on:{click(e){r.ctxMenuLinkEvent(e,t)},mouseover(e){r.ctxMenuMouseoverEvent(e,i,t)},mouseout(e){r.ctxMenuMouseoutEvent(e,i)}}},[o("div",{class:["vxe-context-menu--link-prefix",n.className||""]},[o("i",{class:n.icon||t.prefixIcon}),n.content?o("span",""+n.content):renderEmptyElement(r)]),o("span",{class:"vxe-context-menu--link-content",attrs:{title:l}},l),o("div",{class:["vxe-context-menu--link-suffix",s.className||""]},[o("i",{class:s.icon}),s.content?o("span",""+s.content):renderEmptyElement(r)])])])})):null])}))):[])}};
@@ -198,7 +198,9 @@ function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, co
198
198
  } else {
199
199
  tcStyle.minHeight = `${currCellHeight}px`;
200
200
  }
201
- if (isColGroup && !isLastRow) {
201
+ if (showCustomHeader) {
202
+ // custom
203
+ } else if (isColGroup && !isLastRow) {
202
204
  const firstCol = getColumnFirstChild(column);
203
205
  const lastCol = getColumnLastChild(column);
204
206
  if (firstCol && lastCol && firstCol.id !== lastCol.id) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}function renderRows(T,e,R,I,l,O,k){let z=e.$parent,L=z.$xeGrid,M=z.$xeGantt;var r=z,a=z,t=z;let U=e.fixedType,{resizable:F,columnKey:A,showCustomHeader:X,headerCellClassName:G,headerCellStyle:q,showHeaderOverflow:N,headerAlign:W,align:B,mouseConfig:V}=r,{currentColumn:K,dragCol:P,scrollXLoad:j,scrollYLoad:Y,overflowX:J,mergeHeadFlag:de,tableColumn:ne}=a,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:oe,mergeHeaderCellMaps:se}=t,ue=z.computeVirtualXOpts,ee=z.computeColumnOpts,le=z.computeColumnDragOpts,ce=z.computeCellOpts;e=z.computeDefaultRowHeight;let re=z.computeHeaderCellOpts,ae=(0,_util.getCalcHeight)(re.height)||e,{disabledMethod:te,isCrossDrag:pe,isPeerDrag:he}=le,ie=O===l.length-1;return k.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,c=Q[u]||{},o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=J&&!o&&(U?e.fixed!==U:!!e.fixed),h=(_xeUtils.default.isBoolean(re.padding)?re:ce).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?N:a,t=t||(s?s.tableHeaderCellAlign:"")||W||i||(s?s.tableCellAlign:"")||B,i="ellipsis"===a,s="title"===a,a=!0===a||"tooltip"===a,m=s||a||i;let f=!1,g=null;d&&(g=d[0],f=d.some(e=>e.checked));var x=c.index,c=X?l:c._index;let v={$table:z,$grid:L,$gantt:M,$rowIndex:O,column:e,columnIndex:x,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:U,type:cellType,isHidden:p,hasFilter:f};x={colid:u};let C=!1;if(X||(x.colspan=1<e.colSpan?e.colSpan:null,x.rowspan=1<e.rowSpan?e.rowSpan:null),de&&oe.length&&(X||ie)){var b=se[O+":"+(X?l:c)];if(b){var{rowspan:b,colspan:w}=b;if(!b||!w)return null;1<b&&(C=!0,x.rowspan=b),1<w&&(C=!0,x.colspan=w)}}b={click:e=>z.triggerHeaderCellClickEvent(e,v),dblclick:e=>z.triggerHeaderCellDblclickEvent(e,v)},w=ee.drag&&"cell"===le.trigger;let H=!1;w&&(H=!(!te||!te(v))),(V||w)&&(b.mousedown=e=>z.triggerHeaderCellMousedownEvent(e,v)),ee.drag&&(b.dragstart=z.handleHeaderCellDragDragstartEvent,b.dragend=z.handleHeaderCellDragDragendEvent,b.dragover=z.handleHeaderCellDragDragoverEvent,w)&&(b.mouseup=z.handleHeaderCellDragMouseupEvent);var w=l===k.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:ee.resizable||F,_=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let $=!1;!I||!J||R||C||P&&P.id===u||j&&10<ne.length&&!e.fixed&&!ue.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&($=!0);var E,S,D,c={};return m?c.height=ae+"px":c.minHeight=ae+"px",o&&!ie&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],D=Q[E.id],S)&&D&&(c.width=D.oLeft-S.oLeft+E.renderWidth+"px"),T("th",{class:["vxe-table--column vxe-header--column",u,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":w,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":m,"fixed--width":!_,"is--padding":h,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":f,"is--drag-active":ee.drag&&!e.fixed&&!H&&(pe||he||!e.parentId),"is--drag-disabled":ee.drag&&H,"col--current":K===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(G,v)],attrs:x,style:q?_xeUtils.default.isFunction(q)?q(v):q:void 0,on:b,key:X?""+u+l:A||j||Y||ee.useKey||ee.drag||o?u:l},[T("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":a,"c--ellipsis":i}],style:c},$||I&&p?[]:[T("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(T,v))]),p||!y||X&&!ie?renderEmptyElement(z):T("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>z.handleColResizeMousedownEvent(e,U,v),dblclick:e=>z.handleColResizeDblclickEvent(e,v)}})])})}function renderHeads(a,t,i,d,n){let o=t.$parent;var e=o;let s=t.fixedType,{headerRowClassName:u,headerRowStyle:c}=e;return n.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(a,t,i,d,n,l,e))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:h,overflowX:m,scrollXLoad:f,dragCol:g}=a,{visibleColumn:t,fullColumnIdData:x}=t,v=l.computeMouseOpts;let C=s,b=o,w=!1;return a?b=t:(f&&u&&(c||p||(w=!0)),w&&(h||!d&&m)||(b=t),d&&w&&(b=n||[]),C=[b]),d||a||f&&g&&2<b.length&&(s=x[g.id])&&(u=s._index,c=b[0],p=b[b.length-1],h=x[c.id],m=x[p.id],h)&&m&&(t=h._index,f=m._index,u<t?(b=[g].concat(b),C=[[g].concat(C[0])].concat(C.slice(1))):f<u&&(b=b.concat([g]),C=[C[0].concat([g])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area",attrs:{xid:i}},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent,l=e.showCustomHeader,{collectColumn:r,visibleColumn:a}=e,t=this.tableGroupColumn,i=e.isGroup;let d=i?(0,_util.convertHeaderColumnToRows)(t):[],n=[];l&&1<d.length&&(n=(0,_util.convertHeaderToGridRows)(d),d=n),this.headerColumn=d,e.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:r,visibleColumn:a},null)}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}function renderRows(T,e,R,I,l,O,k){let z=e.$parent,L=z.$xeGrid,M=z.$xeGantt;var r=z,a=z,t=z;let U=e.fixedType,{resizable:F,columnKey:A,showCustomHeader:X,headerCellClassName:G,headerCellStyle:q,showHeaderOverflow:N,headerAlign:W,align:B,mouseConfig:V}=r,{currentColumn:K,dragCol:P,scrollXLoad:j,scrollYLoad:Y,overflowX:J,mergeHeadFlag:de,tableColumn:ne}=a,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:oe,mergeHeaderCellMaps:se}=t,ue=z.computeVirtualXOpts,ee=z.computeColumnOpts,le=z.computeColumnDragOpts,ce=z.computeCellOpts;e=z.computeDefaultRowHeight;let re=z.computeHeaderCellOpts,ae=(0,_util.getCalcHeight)(re.height)||e,{disabledMethod:te,isCrossDrag:pe,isPeerDrag:he}=le,ie=O===l.length-1;return k.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,c=Q[u]||{},o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=J&&!o&&(U?e.fixed!==U:!!e.fixed),h=(_xeUtils.default.isBoolean(re.padding)?re:ce).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?N:a,t=t||(s?s.tableHeaderCellAlign:"")||W||i||(s?s.tableCellAlign:"")||B,i="ellipsis"===a,s="title"===a,a=!0===a||"tooltip"===a,m=s||a||i;let f=!1,g=null;d&&(g=d[0],f=d.some(e=>e.checked));var x=c.index,c=X?l:c._index;let v={$table:z,$grid:L,$gantt:M,$rowIndex:O,column:e,columnIndex:x,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:U,type:cellType,isHidden:p,hasFilter:f};x={colid:u};let C=!1;if(X||(x.colspan=1<e.colSpan?e.colSpan:null,x.rowspan=1<e.rowSpan?e.rowSpan:null),de&&oe.length&&(X||ie)){var b=se[O+":"+(X?l:c)];if(b){var{rowspan:b,colspan:w}=b;if(!b||!w)return null;1<b&&(C=!0,x.rowspan=b),1<w&&(C=!0,x.colspan=w)}}b={click:e=>z.triggerHeaderCellClickEvent(e,v),dblclick:e=>z.triggerHeaderCellDblclickEvent(e,v)},w=ee.drag&&"cell"===le.trigger;let H=!1;w&&(H=!(!te||!te(v))),(V||w)&&(b.mousedown=e=>z.triggerHeaderCellMousedownEvent(e,v)),ee.drag&&(b.dragstart=z.handleHeaderCellDragDragstartEvent,b.dragend=z.handleHeaderCellDragDragendEvent,b.dragover=z.handleHeaderCellDragDragoverEvent,w)&&(b.mouseup=z.handleHeaderCellDragMouseupEvent);var w=l===k.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:ee.resizable||F,_=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let $=!1;!I||!J||R||C||P&&P.id===u||j&&10<ne.length&&!e.fixed&&!ue.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&($=!0);var E,S,D,c={};return m?c.height=ae+"px":c.minHeight=ae+"px",X||o&&!ie&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],D=Q[E.id],S)&&D&&(c.width=D.oLeft-S.oLeft+E.renderWidth+"px"),T("th",{class:["vxe-table--column vxe-header--column",u,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":w,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":m,"fixed--width":!_,"is--padding":h,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":f,"is--drag-active":ee.drag&&!e.fixed&&!H&&(pe||he||!e.parentId),"is--drag-disabled":ee.drag&&H,"col--current":K===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(G,v)],attrs:x,style:q?_xeUtils.default.isFunction(q)?q(v):q:void 0,on:b,key:X?""+u+l:A||j||Y||ee.useKey||ee.drag||o?u:l},[T("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":a,"c--ellipsis":i}],style:c},$||I&&p?[]:[T("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(T,v))]),p||!y||X&&!ie?renderEmptyElement(z):T("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>z.handleColResizeMousedownEvent(e,U,v),dblclick:e=>z.handleColResizeDblclickEvent(e,v)}})])})}function renderHeads(a,t,i,d,n){let o=t.$parent;var e=o;let s=t.fixedType,{headerRowClassName:u,headerRowStyle:c}=e;return n.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(a,t,i,d,n,l,e))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:h,overflowX:m,scrollXLoad:f,dragCol:g}=a,{visibleColumn:t,fullColumnIdData:x}=t,v=l.computeMouseOpts;let C=s,b=o,w=!1;return a?b=t:(f&&u&&(c||p||(w=!0)),w&&(h||!d&&m)||(b=t),d&&w&&(b=n||[]),C=[b]),d||a||f&&g&&2<b.length&&(s=x[g.id])&&(u=s._index,c=b[0],p=b[b.length-1],h=x[c.id],m=x[p.id],h)&&m&&(t=h._index,f=m._index,u<t?(b=[g].concat(b),C=[[g].concat(C[0])].concat(C.slice(1))):f<u&&(b=b.concat([g]),C=[C[0].concat([g])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area",attrs:{xid:i}},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent,l=e.showCustomHeader,{collectColumn:r,visibleColumn:a}=e,t=this.tableGroupColumn,i=e.isGroup;let d=i?(0,_util.convertHeaderColumnToRows)(t):[],n=[];l&&1<d.length&&(n=(0,_util.convertHeaderToGridRows)(d),d=n),this.headerColumn=d,e.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:r,visibleColumn:a},null)}}};
@@ -4170,6 +4170,7 @@ function initColumnHierarchy($xeTable) {
4170
4170
  internalData.fullColumnFieldData = fullColFieldData;
4171
4171
  }
4172
4172
  function handleInitColumn($xeTable, collectColumn) {
4173
+ const props = $xeTable;
4173
4174
  const $xeToolbar = $xeTable.$refs.$xeToolbar;
4174
4175
  const reactData = $xeTable;
4175
4176
  const internalData = $xeTable;
@@ -4208,6 +4209,10 @@ function handleInitColumn($xeTable, collectColumn) {
4208
4209
  if ($xeTable.handleUpdateCustomColumn) {
4209
4210
  $xeTable.handleUpdateCustomColumn();
4210
4211
  }
4212
+ const columnOpts = $xeTable.computeColumnOpts;
4213
+ if (props.showCustomHeader && reactData.isGroup && (columnOpts.resizable || props.resizable)) {
4214
+ (0, _log.warnLog)('vxe.error.notConflictProp', ['show-custom-header & colgroup', 'column-config.resizable=false']);
4215
+ }
4211
4216
  reactData.isColLoading = false;
4212
4217
  return handleLazyRecalculate($xeTable, false, true, true);
4213
4218
  });
@@ -6673,18 +6678,16 @@ const Methods = {
6673
6678
  clientX: dragClientX
6674
6679
  } = evnt;
6675
6680
  const dragBtnElem = evnt.target;
6681
+ let cell = dragBtnElem.parentElement;
6676
6682
  let resizeColumn = column;
6677
6683
  const isDragGroupCol = column.children && column.children.length;
6678
6684
  if (isDragGroupCol) {
6679
- _xeUtils.default.eachTree(column.children, childColumn => {
6680
- resizeColumn = childColumn;
6681
- });
6682
- }
6683
- let cell = dragBtnElem.parentElement;
6684
- if (isDragGroupCol) {
6685
- const trEl = cell ? cell.parentElement : null;
6686
- const theadEl = trEl ? trEl.parentElement : null;
6687
- cell = theadEl ? theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`) : null;
6685
+ resizeColumn = (0, _util.getLastChildColumn)(column);
6686
+ if (isDragGroupCol) {
6687
+ const trEl = cell ? cell.parentElement : null;
6688
+ const theadEl = trEl ? trEl.parentElement : null;
6689
+ cell = theadEl ? theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`) : null;
6690
+ }
6688
6691
  }
6689
6692
  if (!cell) {
6690
6693
  return;
@@ -12274,7 +12277,7 @@ const Methods = {
12274
12277
  const xThreshold = $xeTable.computeScrollXThreshold;
12275
12278
  isLeft = scrollLeft <= 0;
12276
12279
  if (!isLeft) {
12277
- isRight = scrollLeft + bodyWidth >= scrollWidth;
12280
+ isRight = scrollLeft + bodyWidth >= scrollWidth - 1;
12278
12281
  }
12279
12282
  if (scrollLeft > lastScrollLeft) {
12280
12283
  direction = 'right';
@@ -12294,7 +12297,7 @@ const Methods = {
12294
12297
  const yThreshold = $xeTable.computeScrollYThreshold;
12295
12298
  isTop = scrollTop <= 0;
12296
12299
  if (!isTop) {
12297
- isBottom = scrollTop + bodyHeight >= scrollHeight;
12300
+ isBottom = scrollTop + bodyHeight >= scrollHeight - 1;
12298
12301
  }
12299
12302
  if (scrollTop > lastScrollTop) {
12300
12303
  direction = 'bottom';