| 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={source:"table",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],b=(0,_dom.getEventTargetNode)(t,g,`vxe-${x}--column`,e=>e.parentNode.parentNode.parentNode.getAttribute("xid")===i),p={source:"table",type:x,$table:l,$grid:n,$gantt:o,columns:a.slice(0),$event:t};if(b.flag){var b=b.targetElem,E=l.getColumnNode(b),E=E?E.item:null;let e=x+"-";E&&Object.assign(p,{column:E,columnIndex:l.getColumnIndex(E),cell:b}),"body"===x&&(b=(E=l.getRowNode(b.parentNode))?E.item:null,e="",b)&&(p.row=b,p.rowIndex=l.getRowIndex(b));E=e+"cell-menu";return l.handleOpenMenuEvent(t,x,p),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",p,t)):l.dispatchEvent(E,p,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,p))}}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())}}};
|