| 1 |
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getCheckboxRangeRows(t,e,l,o,r,n,u){var i=t.showOverflow,{fullAllDataRowIdData:c,isResizeCellHeight:s}=t,d=t.computeRowOpts,h=t.computeCellOpts,g=t.computeDefaultRowHeight,l=l.row;let a=0,m=[],C=0;var p=0<u,w=t.scrollYLoad,v=t.afterFullData;if(C=p?n+u:r.height-n+Math.abs(u),w){r=t.getVTRowIndex(l);if(!(s||h.height||d.height)&&i)m=p?v.slice(r,r+Math.ceil(C/g)):v.slice(r-Math.floor(C/g),r+1);else if(p)for(let e=r;e<v.length;e++){var f=v[e],x=c[t.getRowid(f)]||{};if(a+=x.resizeHeight||h.height||d.height||x.height||g,m.push(f),a>C)return m}else for(let e=r;0<=e;e--){var R=v[e],b=c[t.getRowid(R)]||{};if(a+=b.resizeHeight||h.height||d.height||b.height||g,m.push(R),a>C)return m}}else for(var I=p?"next":"previous";o&&a<C;){var E=t.getRowNode(o);E&&(m.push(E.item),a+=o.offsetHeight,o=o[I+"ElementSibling"])}return m}function handleMoveSelected(e,t,l,o,r,n,u){var{afterFullData:i,visibleColumn:c}=e;let s=Object.assign({},l);var l=e.getVTRowIndex(s.row),d=e.getVTColumnIndex(s.column);return t.preventDefault(),r&&0<l?(s.rowIndex=l-1,s.row=i[s.rowIndex]):u&&l<i.length-1?(s.rowIndex=l+1,s.row=i[s.rowIndex]):o&&d?(s.columnIndex=d-1,s.column=c[s.columnIndex]):n&&d<c.length-1&&(s.columnIndex=d+1,s.column=c[s.columnIndex]),e.scrollToRow(s.row,s.column).then(()=>{s.cell=e.getCellElement(s.row,s.column),e.handleSelected(s,t)}),s}function handleCheckboxRangeEvent(S,e,M){var t=S.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}=M;if("checkbox"===r.type){let T=l;if(o&&"left"===r.fixed?T=o:t&&"right"===r.fixed&&(T=t),T){l=T.getBoundingClientRect();let t=S.$refs.refElem,i=e.clientX,c=e.clientY,s=T.querySelector(".vxe-table--checkbox-range"),d=n.parentNode,h=S.getCheckboxRecords(),g=[],a=1,m=e.clientY-l.y+T.scrollTop,C=e.clientX-l.x+T.scrollLeft,p=T.scrollTop,u=d.offsetHeight,w=d.getBoundingClientRect(),v=c-w.y,f=null,x=!1,R=1,b=(e,t)=>{S.dispatchEvent("checkbox-range-"+e,{records:()=>S.getCheckboxRecords(),reserves:()=>S.getCheckboxReserveRecords()},t)},I=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-c+(T.scrollTop-p);let o=Math.abs(l),r=Math.abs(t),n=m,u=C;l<a?(n+=l)<a&&(n=a,o=m):o=Math.min(o,T.scrollHeight-m-a),t<a?(u+=t,r>C&&(u=a,r=C)):r=Math.min(r,T.clientWidth-C-a),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=getCheckboxRangeRows(S,e,M,d,w,v,l<a?-o:o);10<o&&t.length!==g.length&&(l=(0,_dom.hasControlKey)(e),g=t,l?t.forEach(e=>{S.handleBatchSelectRows([e],-1===h.indexOf(e))}):(S.setAllCheckboxRow(!1),S.handleCheckedCheckboxRow(t,!0,!1)),b("change",e))},E=()=>{clearTimeout(f),f=null},O=n=>{E(),f=setTimeout(()=>{var e,t,l,o,r;f&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=T,r=Math.ceil(50*R/u),x?t+l<o?(S.scrollTo(e,t+r),O(n),I(n)):E():t?(S.scrollTo(e,t-r),O(n),I(n)):E())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(T).boundingTop;t<l?(x=!1,R=l-t,f||O(e)):t>l+T.clientHeight?(x=!0,R=t-l-T.clientHeight,f||O(e)):f&&E(),I(e)},document.onmouseup=e=>{E(),(0,_dom.removeClass)(t,"drag--range"),s.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,b("end",e)},b("start",e)}}}var _default=exports.default={methods:{moveTabSelected(e,t,l){let o=this;var r=o.editConfig,{afterFullData:n,visibleColumn:u}=o,i=o.computeEditOpts,c=o.computeRowOpts,s=o.computeCurrentRowOpts,d=o.computeColumnOpts,h=o.computeCurrentColumnOpts;let g,a,m,C=Object.assign({},e);var e=o.getVTRowIndex(C.row),p=o.getVTColumnIndex(C.column),t=(l.preventDefault(),t?p<=0?0<e&&(a=e-1,g=n[a],m=u.length-1):m=p-1:p>=u.length-1?e<n.length-1&&(a=e+1,g=n[a],m=0):m=p+1,u[m]);t&&(g?(C.rowIndex=a,C.row=g):C.rowIndex=e,C.columnIndex=m,C.column=t,C.cell=o.getCellElement(C.row,C.column),c.isCurrent&&s.isFollowSelected&&o.triggerCurrentRowEvent(l,C),d.isCurrent&&h.isFollowSelected&&o.triggerCurrentColumnEvent(l,C),r?"click"!==i.trigger&&"dblclick"!==i.trigger||("row"===i.mode?o.handleEdit(C,l):o.scrollToRow(C.row,C.column).then(()=>{o.handleSelected(C,l)})):o.scrollToRow(C.row,C.column).then(()=>{o.handleSelected(C,l)}))},moveCurrentRow(e,t,l){let o=this;var r=o,n=o,u=o,r=r.treeConfig;let i=n.currentRow;var n=u.afterFullData,u=o.computeTreeOpts,u=u.children||u.childrenField;let c;if(i?r?({index:r,items:u}=_xeUtils.default.findTree(n,e=>e===i,{children:u}),e&&0<r?c=u[r-1]:t&&r<u.length-1&&(c=u[r+1])):(u=o.getVTRowIndex(i),e&&0<u?c=n[u-1]:t&&u<n.length-1&&(c=n[u+1])):c=n[0],c){l.preventDefault();let e={$table:o,row:c,rowIndex:o.getRowIndex(c),$rowIndex:o.getVMRowIndex(c)};o.scrollToRow(c).then(()=>o.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){let o=this;var r=o.currentColumn,n=o.visibleColumn;let u=null;if(r?(r=o.getVTColumnIndex(r),e&&0<r?u=n[r-1]:t&&r<n.length-1&&(u=n[r+1])):u=n[0],u){l.preventDefault();let e={$table:o,column:u,columnIndex:o.getColumnIndex(u),$columnIndex:o.getVMColumnIndex(u)};o.scrollToColumn(u).then(()=>o.triggerCurrentColumnEvent(l,e))}},moveArrowSelected(e,t,l,o,r,n){var u=this,{highlightCurrentRow:i,highlightCurrentColumn:c}=u,s=u.computeRowOpts,d=u.computeCurrentRowOpts,h=u.computeColumnOpts,g=u.computeCurrentColumnOpts,e=handleMoveSelected(u,n,e,t,l,o,r);(s.isCurrent||i)&&(d.isFollowSelected?u.triggerCurrentRowEvent(n,e):(l||r)&&(s.isCurrent||i)&&u.moveCurrentRow(l,r,n)),(h.isCurrent||c)&&(g.isFollowSelected?u.triggerCurrentColumnEvent(n,e):(t||o)&&(h.isCurrent||c)&&u.moveCurrentColumn(t,o,n))},moveEnterSelected(e,t,l,o,r,n){var u=this,{highlightCurrentRow:i,highlightCurrentColumn:c}=u,s=u.computeRowOpts,d=u.computeCurrentRowOpts,h=u.computeColumnOpts,g=u.computeCurrentColumnOpts,e=handleMoveSelected(u,n,e,t,l,o,r);(s.isCurrent||i)&&d.isFollowSelected&&u.triggerCurrentRowEvent(n,e),(h.isCurrent||c)&&g.isFollowSelected&&u.triggerCurrentColumnEvent(n,e)},moveSelected(e,t,l,o,r,n){handleMoveSelected(this,n,e,t,l,o,r)},handleCellMousedownEvent(e,t){var l=this,{editConfig:o,checkboxConfig:r,mouseConfig:n}=l,u=l.computeCheckboxOpts,i=l.computeMouseOpts,c=l.computeEditOpts;if(n&&i.area&&l.triggerCellAreaModnEvent)return l.triggerCellAreaModnEvent(e,t);r&&u.range&&handleCheckboxRangeEvent(l,e,t),n&&i.selected&&(o&&"cell"!==c.mode||l.handleSelected(t,e))}}};
|