vxe-table 3.13.21 → 3.13.22

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.
@@ -178,15 +178,22 @@ var _default = exports.default = {
178
178
  },
179
179
  // 处理当前行方向键移动
180
180
  moveCurrentRow(isUpArrow, isDwArrow, evnt) {
181
+ const $xeTable = this;
182
+ const props = $xeTable;
183
+ const reactData = $xeTable;
184
+ const internalData = $xeTable;
185
+ const {
186
+ treeConfig
187
+ } = props;
188
+ const {
189
+ currentRow
190
+ } = reactData;
181
191
  const {
182
- currentRow,
183
- treeConfig,
184
- treeOpts,
185
192
  afterFullData
186
- } = this;
193
+ } = internalData;
194
+ const treeOpts = $xeTable.computeTreeOpts;
187
195
  const childrenField = treeOpts.children || treeOpts.childrenField;
188
196
  let targetRow;
189
- evnt.preventDefault();
190
197
  if (currentRow) {
191
198
  if (treeConfig) {
192
199
  const {
@@ -201,7 +208,7 @@ var _default = exports.default = {
201
208
  targetRow = items[index + 1];
202
209
  }
203
210
  } else {
204
- const _rowIndex = this.getVTRowIndex(currentRow);
211
+ const _rowIndex = $xeTable.getVTRowIndex(currentRow);
205
212
  if (isUpArrow && _rowIndex > 0) {
206
213
  targetRow = afterFullData[_rowIndex - 1];
207
214
  } else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
@@ -212,11 +219,47 @@ var _default = exports.default = {
212
219
  targetRow = afterFullData[0];
213
220
  }
214
221
  if (targetRow) {
222
+ evnt.preventDefault();
223
+ const params = {
224
+ $table: $xeTable,
225
+ row: targetRow,
226
+ rowIndex: $xeTable.getRowIndex(targetRow),
227
+ $rowIndex: $xeTable.getVMRowIndex(targetRow)
228
+ };
229
+ $xeTable.scrollToRow(targetRow).then(() => $xeTable.triggerCurrentRowEvent(evnt, params));
230
+ }
231
+ },
232
+ // 处理当前列方向键移动
233
+ moveCurrentColumn(isLeftArrow, isRightArrow, evnt) {
234
+ const $xeTable = this;
235
+ const reactData = $xeTable;
236
+ const internalData = $xeTable;
237
+ const {
238
+ currentColumn
239
+ } = reactData;
240
+ const {
241
+ visibleColumn
242
+ } = internalData;
243
+ let targetCol = null;
244
+ if (currentColumn) {
245
+ const _columnIndex = $xeTable.getVTColumnIndex(currentColumn);
246
+ if (isLeftArrow && _columnIndex > 0) {
247
+ targetCol = visibleColumn[_columnIndex - 1];
248
+ } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
249
+ targetCol = visibleColumn[_columnIndex + 1];
250
+ }
251
+ } else {
252
+ targetCol = visibleColumn[0];
253
+ }
254
+ if (targetCol) {
255
+ evnt.preventDefault();
215
256
  const params = {
216
- $table: this,
217
- row: targetRow
257
+ $table: $xeTable,
258
+ column: targetCol,
259
+ columnIndex: $xeTable.getColumnIndex(targetCol),
260
+ $columnIndex: $xeTable.getVMColumnIndex(targetCol)
218
261
  };
219
- this.scrollToRow(targetRow).then(() => this.triggerCurrentRowEvent(evnt, params));
262
+ $xeTable.scrollToColumn(targetCol).then(() => $xeTable.triggerCurrentColumnEvent(evnt, params));
220
263
  }
221
264
  },
222
265
  // 处理可编辑方向键移动
@@ -1 +1 @@
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 getTargetOffset(e,t){let l=0,o=0;var i,r,n=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(n&&(i=getComputedStyle(e),l-=_xeUtils.default.toNumber(i.paddingTop),o-=_xeUtils.default.toNumber(i.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,n&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));return{offsetTop:l,offsetLeft:o}}function getCheckboxRangeRows(t,e,l,o,i,r,n){var s=t.showOverflow,{fullAllDataRowIdData:h,isResizeCellHeight:a}=t,d=t.computeRowOpts,c=t.computeCellOpts,u=t.computeDefaultRowHeight,l=l.row;let g=0,f=[],m=0;var x=0<n,p=t.scrollYLoad,w=t.afterFullData;if(m=x?r+n:i.height-r+Math.abs(n),p){i=t.getVTRowIndex(l);if(!(a||c.height||d.height)&&s)f=x?w.slice(i,i+Math.ceil(m/u)):w.slice(i-Math.floor(m/u),i+1);else if(x)for(let e=i;e<w.length;e++){var v=w[e],b=h[t.getRowid(v)]||{};if(g+=b.resizeHeight||c.height||d.height||b.height||u,f.push(v),g>m)return f}else for(let e=i;0<=e;e--){var R=w[e],C=h[t.getRowid(R)]||{};if(g+=C.resizeHeight||c.height||d.height||C.height||u,f.push(R),g>m)return f}}else for(var T=x?"next":"previous";o&&g<m;){var _=t.getRowNode(o);_&&(f.push(_.item),g+=o.offsetHeight,o=o[T+"ElementSibling"])}return f}var _default=exports.default={methods:{moveTabSelected(e,t,l){var{afterFullData:o,visibleColumn:i,editConfig:r,editOpts:n}=this;let s,h,a,d=Object.assign({},e);var e=this.getVTRowIndex(d.row),c=this.getVTColumnIndex(d.column),t=(l.preventDefault(),t?c<=0?0<e&&(h=e-1,s=o[h],a=i.length-1):a=c-1:c>=i.length-1?e<o.length-1&&(h=e+1,s=o[h],a=0):a=c+1,i[a]);t&&(s?(d.rowIndex=h,d.row=s):d.rowIndex=e,d.columnIndex=a,d.column=t,d.cell=this.getCellElement(d.row,d.column),r?"click"!==n.trigger&&"dblclick"!==n.trigger||("row"===n.mode?this.handleEdit(d,l):this.scrollToRow(d.row,d.column).then(()=>this.handleSelected(d,l))):this.scrollToRow(d.row,d.column).then(()=>this.handleSelected(d,l)))},moveCurrentRow(e,t,l){let{currentRow:o,treeConfig:i,treeOpts:r,afterFullData:n}=this;var s,h=r.children||r.childrenField;let a;if(l.preventDefault(),o?i?({index:h,items:s}=_xeUtils.default.findTree(n,e=>e===o,{children:h}),e&&0<h?a=s[h-1]:t&&h<s.length-1&&(a=s[h+1])):(s=this.getVTRowIndex(o),e&&0<s?a=n[s-1]:t&&s<n.length-1&&(a=n[s+1])):a=n[0],a){let e={$table:this,row:a};this.scrollToRow(a).then(()=>this.triggerCurrentRowEvent(l,e))}},moveSelected(e,t,l,o,i,r){var{afterFullData:n,visibleColumn:s}=this;let h=Object.assign({},e);var e=this.getVTRowIndex(h.row),a=this.getVTColumnIndex(h.column);r.preventDefault(),l&&0<e?(h.rowIndex=e-1,h.row=n[h.rowIndex]):i&&e<n.length-1?(h.rowIndex=e+1,h.row=n[h.rowIndex]):t&&a?(h.columnIndex=a-1,h.column=s[h.columnIndex]):o&&a<s.length-1&&(h.columnIndex=a+1,h.column=s[h.columnIndex]),this.scrollToRow(h.row,h.column).then(()=>{h.cell=this.getCellElement(h.row,h.column),this.handleSelected(h,r)})},handleCellMousedownEvent(e,t){var{editConfig:l,editOpts:o,handleSelected:i,checkboxConfig:r,checkboxOpts:n,mouseConfig:s,mouseOpts:h}=this;if(s&&h.area&&this.handleMousedownCellAreaEvent)return this.handleMousedownCellAreaEvent(e,t);r&&n.range&&this.handleCheckboxRangeEvent(e,t),s&&h.selected&&(l&&"cell"!==o.mode||i(t,e))},handleCheckboxRangeEvent(e,y){let E=this;var t=E.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:i,cell:r}=y;if("checkbox"===i.type){let I=l;if(o&&"left"===i.fixed?I=o:t&&"right"===i.fixed&&(I=t),I){let t=E.$refs.refElem,s=e.clientX,h=e.clientY,a=I.querySelector(".vxe-table--checkbox-range"),d=r.parentNode,c=this.getCheckboxRecords(),u=[],g=1;l=getTargetOffset(e.target,I);let f=l.offsetTop+e.offsetY,m=l.offsetLeft+e.offsetX,x=I.scrollTop,n=d.offsetHeight,p=d.getBoundingClientRect(),w=h-p.y,v=null,b=!1,R=1,C=(e,t)=>{this.emitEvent("checkbox-range-"+e,{records:this.getCheckboxRecords(),reserves:this.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-s,l=l-h+(I.scrollTop-x);let o=Math.abs(l),i=Math.abs(t),r=f,n=m;l<g?(r+=l)<g&&(r=g,o=f):o=Math.min(o,I.scrollHeight-f-g),t<g?(n+=t,i>m&&(n=g,i=m)):i=Math.min(i,I.clientWidth-m-g),a.style.height=o+"px",a.style.width=i+"px",a.style.left=n+"px",a.style.top=r+"px",a.style.display="block";t=getCheckboxRangeRows(this,e,y,d,p,w,l<g?-o:o);10<o&&t.length!==u.length&&(u=t,e.ctrlKey?t.forEach(e=>{E.handleBatchSelectRows([e],-1===c.indexOf(e))}):(this.setAllCheckboxRow(!1),this.handleCheckedCheckboxRow(t,!0,!1)),C("change",e))},_=()=>{clearTimeout(v),v=null},k=r=>{_(),v=setTimeout(()=>{var e,t,l,o,i;v&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=I,i=Math.ceil(50*R/n),b?t+l<o?(this.scrollTo(e,t+i),k(r),T(r)):_():t?(this.scrollTo(e,t-i),k(r),T(r)):_())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(I).boundingTop;t<l?(b=!1,R=l-t,v||k(e)):t>l+I.clientHeight?(b=!0,R=t-l-I.clientHeight,v||k(e)):v&&_(),T(e)},document.onmouseup=e=>{_(),(0,_dom.removeClass)(t,"drag--range"),a.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,C("end",e)},C("start",e)}}}}};
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 getTargetOffset(e,t){let l=0,o=0;var n,r,i=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(i&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,i&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));return{offsetTop:l,offsetLeft:o}}function getCheckboxRangeRows(t,e,l,o,n,r,i){var s=t.showOverflow,{fullAllDataRowIdData:h,isResizeCellHeight:a}=t,d=t.computeRowOpts,u=t.computeCellOpts,c=t.computeDefaultRowHeight,l=l.row;let g=0,f=[],m=0;var x=0<i,p=t.scrollYLoad,v=t.afterFullData;if(m=x?r+i:n.height-r+Math.abs(i),p){n=t.getVTRowIndex(l);if(!(a||u.height||d.height)&&s)f=x?v.slice(n,n+Math.ceil(m/c)):v.slice(n-Math.floor(m/c),n+1);else if(x)for(let e=n;e<v.length;e++){var w=v[e],C=h[t.getRowid(w)]||{};if(g+=C.resizeHeight||u.height||d.height||C.height||c,f.push(w),g>m)return f}else for(let e=n;0<=e;e--){var b=v[e],R=h[t.getRowid(b)]||{};if(g+=R.resizeHeight||u.height||d.height||R.height||c,f.push(b),g>m)return f}}else for(var T=x?"next":"previous";o&&g<m;){var I=t.getRowNode(o);I&&(f.push(I.item),g+=o.offsetHeight,o=o[T+"ElementSibling"])}return f}var _default=exports.default={methods:{moveTabSelected(e,t,l){var{afterFullData:o,visibleColumn:n,editConfig:r,editOpts:i}=this;let s,h,a,d=Object.assign({},e);var e=this.getVTRowIndex(d.row),u=this.getVTColumnIndex(d.column),t=(l.preventDefault(),t?u<=0?0<e&&(h=e-1,s=o[h],a=n.length-1):a=u-1:u>=n.length-1?e<o.length-1&&(h=e+1,s=o[h],a=0):a=u+1,n[a]);t&&(s?(d.rowIndex=h,d.row=s):d.rowIndex=e,d.columnIndex=a,d.column=t,d.cell=this.getCellElement(d.row,d.column),r?"click"!==i.trigger&&"dblclick"!==i.trigger||("row"===i.mode?this.handleEdit(d,l):this.scrollToRow(d.row,d.column).then(()=>this.handleSelected(d,l))):this.scrollToRow(d.row,d.column).then(()=>this.handleSelected(d,l)))},moveCurrentRow(e,t,l){let o=this;var n=o,r=o,i=o,n=n.treeConfig;let s=r.currentRow;var r=i.afterFullData,i=o.computeTreeOpts,i=i.children||i.childrenField;let h;if(s?n?({index:n,items:i}=_xeUtils.default.findTree(r,e=>e===s,{children:i}),e&&0<n?h=i[n-1]:t&&n<i.length-1&&(h=i[n+1])):(i=o.getVTRowIndex(s),e&&0<i?h=r[i-1]:t&&i<r.length-1&&(h=r[i+1])):h=r[0],h){l.preventDefault();let e={$table:o,row:h,rowIndex:o.getRowIndex(h),$rowIndex:o.getVMRowIndex(h)};o.scrollToRow(h).then(()=>o.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){let o=this;var n=o.currentColumn,r=o.visibleColumn;let i=null;if(n?(n=o.getVTColumnIndex(n),e&&0<n?i=r[n-1]:t&&n<r.length-1&&(i=r[n+1])):i=r[0],i){l.preventDefault();let e={$table:o,column:i,columnIndex:o.getColumnIndex(i),$columnIndex:o.getVMColumnIndex(i)};o.scrollToColumn(i).then(()=>o.triggerCurrentColumnEvent(l,e))}},moveSelected(e,t,l,o,n,r){var{afterFullData:i,visibleColumn:s}=this;let h=Object.assign({},e);var e=this.getVTRowIndex(h.row),a=this.getVTColumnIndex(h.column);r.preventDefault(),l&&0<e?(h.rowIndex=e-1,h.row=i[h.rowIndex]):n&&e<i.length-1?(h.rowIndex=e+1,h.row=i[h.rowIndex]):t&&a?(h.columnIndex=a-1,h.column=s[h.columnIndex]):o&&a<s.length-1&&(h.columnIndex=a+1,h.column=s[h.columnIndex]),this.scrollToRow(h.row,h.column).then(()=>{h.cell=this.getCellElement(h.row,h.column),this.handleSelected(h,r)})},handleCellMousedownEvent(e,t){var{editConfig:l,editOpts:o,handleSelected:n,checkboxConfig:r,checkboxOpts:i,mouseConfig:s,mouseOpts:h}=this;if(s&&h.area&&this.handleMousedownCellAreaEvent)return this.handleMousedownCellAreaEvent(e,t);r&&i.range&&this.handleCheckboxRangeEvent(e,t),s&&h.selected&&(l&&"cell"!==o.mode||n(t,e))},handleCheckboxRangeEvent(e,y){let E=this;var t=E.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:n,cell:r}=y;if("checkbox"===n.type){let k=l;if(o&&"left"===n.fixed?k=o:t&&"right"===n.fixed&&(k=t),k){let t=E.$refs.refElem,s=e.clientX,h=e.clientY,a=k.querySelector(".vxe-table--checkbox-range"),d=r.parentNode,u=this.getCheckboxRecords(),c=[],g=1;l=getTargetOffset(e.target,k);let f=l.offsetTop+e.offsetY,m=l.offsetLeft+e.offsetX,x=k.scrollTop,i=d.offsetHeight,p=d.getBoundingClientRect(),v=h-p.y,w=null,C=!1,b=1,R=(e,t)=>{this.emitEvent("checkbox-range-"+e,{records:this.getCheckboxRecords(),reserves:this.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-s,l=l-h+(k.scrollTop-x);let o=Math.abs(l),n=Math.abs(t),r=f,i=m;l<g?(r+=l)<g&&(r=g,o=f):o=Math.min(o,k.scrollHeight-f-g),t<g?(i+=t,n>m&&(i=g,n=m)):n=Math.min(n,k.clientWidth-m-g),a.style.height=o+"px",a.style.width=n+"px",a.style.left=i+"px",a.style.top=r+"px",a.style.display="block";t=getCheckboxRangeRows(this,e,y,d,p,v,l<g?-o:o);10<o&&t.length!==c.length&&(c=t,e.ctrlKey?t.forEach(e=>{E.handleBatchSelectRows([e],-1===u.indexOf(e))}):(this.setAllCheckboxRow(!1),this.handleCheckedCheckboxRow(t,!0,!1)),R("change",e))},I=()=>{clearTimeout(w),w=null},_=r=>{I(),w=setTimeout(()=>{var e,t,l,o,n;w&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=k,n=Math.ceil(50*b/i),C?t+l<o?(this.scrollTo(e,t+n),_(r),T(r)):I():t?(this.scrollTo(e,t-n),_(r),T(r)):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?(C=!1,b=l-t,w||_(e)):t>l+k.clientHeight?(C=!0,b=t-l-k.clientHeight,w||_(e)):w&&I(),T(e)},document.onmouseup=e=>{I(),(0,_dom.removeClass)(t,"drag--range"),a.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,R("end",e)},R("start",e)}}}}};
@@ -5840,8 +5840,9 @@ const Methods = {
5840
5840
  // 如果按下了方向键
5841
5841
  if (selected.row && selected.column) {
5842
5842
  this.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
5843
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
5844
- // 当前行按键上下移动
5843
+ }
5844
+ // 当前行按键上下移动
5845
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
5845
5846
  this.moveCurrentRow(isUpArrow, isDwArrow, evnt);
5846
5847
  }
5847
5848
  }