vxe-table 3.13.20 → 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.
- package/es/grid/src/grid.js +64 -48
- package/es/style.css +1 -1
- package/es/table/module/keyboard/mixin.js +50 -6
- package/es/table/src/methods.js +17 -11
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +71 -65
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +150 -91
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/mixin.js +52 -9
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/src/methods.js +22 -13
- package/lib/table/src/methods.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +74 -56
- package/packages/table/module/keyboard/mixin.ts +52 -8
- package/packages/table/src/methods.ts +19 -11
- /package/es/{iconfont.1741333380103.ttf → iconfont.1741665630674.ttf} +0 -0
- /package/es/{iconfont.1741333380103.woff → iconfont.1741665630674.woff} +0 -0
- /package/es/{iconfont.1741333380103.woff2 → iconfont.1741665630674.woff2} +0 -0
- /package/lib/{iconfont.1741333380103.ttf → iconfont.1741665630674.ttf} +0 -0
- /package/lib/{iconfont.1741333380103.woff → iconfont.1741665630674.woff} +0 -0
- /package/lib/{iconfont.1741333380103.woff2 → iconfont.1741665630674.woff2} +0 -0
|
@@ -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
|
-
} =
|
|
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 =
|
|
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:
|
|
217
|
-
|
|
257
|
+
$table: $xeTable,
|
|
258
|
+
column: targetCol,
|
|
259
|
+
columnIndex: $xeTable.getColumnIndex(targetCol),
|
|
260
|
+
$columnIndex: $xeTable.getVMColumnIndex(targetCol)
|
|
218
261
|
};
|
|
219
|
-
|
|
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
|
|
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)}}}}};
|
package/lib/table/src/methods.js
CHANGED
|
@@ -3011,24 +3011,26 @@ const Methods = {
|
|
|
3011
3011
|
reactData.treeExpandedMaps = treeTempExpandedMaps;
|
|
3012
3012
|
},
|
|
3013
3013
|
cacheSourceMap(fullData) {
|
|
3014
|
+
const $xeTable = this;
|
|
3015
|
+
const props = $xeTable;
|
|
3016
|
+
const internalData = $xeTable;
|
|
3017
|
+
const {
|
|
3018
|
+
treeConfig
|
|
3019
|
+
} = props;
|
|
3020
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
3014
3021
|
let {
|
|
3015
|
-
treeConfig,
|
|
3016
|
-
treeOpts,
|
|
3017
3022
|
sourceDataRowIdData
|
|
3018
|
-
} =
|
|
3023
|
+
} = internalData;
|
|
3019
3024
|
const sourceData = _xeUtils.default.clone(fullData, true);
|
|
3020
|
-
const rowkey = (0, _util.getRowkey)(
|
|
3021
|
-
sourceDataRowIdData =
|
|
3025
|
+
const rowkey = (0, _util.getRowkey)($xeTable);
|
|
3026
|
+
sourceDataRowIdData = internalData.sourceDataRowIdData = {};
|
|
3022
3027
|
const handleSourceRow = row => {
|
|
3023
|
-
let rowid = (0, _util.getRowid)(
|
|
3028
|
+
let rowid = (0, _util.getRowid)($xeTable, row);
|
|
3024
3029
|
if ((0, _utils.eqEmptyValue)(rowid)) {
|
|
3025
3030
|
rowid = (0, _util.getRowUniqueId)();
|
|
3026
3031
|
_xeUtils.default.set(row, rowkey, rowid);
|
|
3027
3032
|
}
|
|
3028
|
-
sourceDataRowIdData[rowid] =
|
|
3029
|
-
row,
|
|
3030
|
-
rowid
|
|
3031
|
-
};
|
|
3033
|
+
sourceDataRowIdData[rowid] = row;
|
|
3032
3034
|
};
|
|
3033
3035
|
// 源数据缓存
|
|
3034
3036
|
if (treeConfig) {
|
|
@@ -3039,7 +3041,7 @@ const Methods = {
|
|
|
3039
3041
|
} else {
|
|
3040
3042
|
sourceData.forEach(handleSourceRow);
|
|
3041
3043
|
}
|
|
3042
|
-
|
|
3044
|
+
internalData.tableSourceData = sourceData;
|
|
3043
3045
|
},
|
|
3044
3046
|
getParams() {
|
|
3045
3047
|
return this.params;
|
|
@@ -3417,6 +3419,9 @@ const Methods = {
|
|
|
3417
3419
|
keepSource,
|
|
3418
3420
|
treeConfig
|
|
3419
3421
|
} = props;
|
|
3422
|
+
const {
|
|
3423
|
+
editStore
|
|
3424
|
+
} = reactData;
|
|
3420
3425
|
const {
|
|
3421
3426
|
fullAllDataRowIdData,
|
|
3422
3427
|
fullDataRowIdData,
|
|
@@ -3425,6 +3430,7 @@ const Methods = {
|
|
|
3425
3430
|
tableFullData,
|
|
3426
3431
|
afterFullData
|
|
3427
3432
|
} = internalData;
|
|
3433
|
+
const removeTempMaps = Object.assign({}, editStore.removeMaps);
|
|
3428
3434
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
3429
3435
|
const {
|
|
3430
3436
|
transform
|
|
@@ -3459,6 +3465,7 @@ const Methods = {
|
|
|
3459
3465
|
_xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
|
|
3460
3466
|
}
|
|
3461
3467
|
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3468
|
+
delete removeTempMaps[rowid];
|
|
3462
3469
|
tableFullData.unshift(row);
|
|
3463
3470
|
afterFullData.unshift(row);
|
|
3464
3471
|
reDelFlag = true;
|
|
@@ -3470,6 +3477,7 @@ const Methods = {
|
|
|
3470
3477
|
}
|
|
3471
3478
|
if (rows) {
|
|
3472
3479
|
if (reDelFlag) {
|
|
3480
|
+
editStore.removeMaps = removeTempMaps;
|
|
3473
3481
|
$xeTable.updateFooter();
|
|
3474
3482
|
$xeTable.cacheRowMap(false);
|
|
3475
3483
|
$xeTable.handleTableData(treeConfig && transform);
|
|
@@ -5832,8 +5840,9 @@ const Methods = {
|
|
|
5832
5840
|
// 如果按下了方向键
|
|
5833
5841
|
if (selected.row && selected.column) {
|
|
5834
5842
|
this.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
5835
|
-
}
|
|
5836
|
-
|
|
5843
|
+
}
|
|
5844
|
+
// 当前行按键上下移动
|
|
5845
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
5837
5846
|
this.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
5838
5847
|
}
|
|
5839
5848
|
}
|