vxe-table 3.18.0-beta.8 → 3.18.0

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.
@@ -145,6 +145,182 @@ function handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRigh
145
145
  });
146
146
  return params;
147
147
  }
148
+ function handleCheckboxRangeEvent($xeTable, evnt, params) {
149
+ const internalData = $xeTable;
150
+ const {
151
+ elemStore
152
+ } = internalData;
153
+ const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
154
+ const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
155
+ const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
156
+ const {
157
+ column,
158
+ cell
159
+ } = params;
160
+ if (column.type === 'checkbox') {
161
+ let bodyWrapperElem = bodyScrollElem;
162
+ if (leftScrollElem && column.fixed === 'left') {
163
+ bodyWrapperElem = leftScrollElem;
164
+ } else if (rightScrollElem && column.fixed === 'right') {
165
+ bodyWrapperElem = rightScrollElem;
166
+ }
167
+ if (!bodyWrapperElem) {
168
+ return;
169
+ }
170
+ const el = $xeTable.$refs.refElem;
171
+ const disX = evnt.clientX;
172
+ const disY = evnt.clientY;
173
+ const checkboxRangeElem = bodyWrapperElem.querySelector('.vxe-table--checkbox-range');
174
+ const trElem = cell.parentNode;
175
+ const selectRecords = $xeTable.getCheckboxRecords();
176
+ let lastRangeRows = [];
177
+ const marginSize = 1;
178
+ const offsetRest = getTargetOffset(evnt.target, bodyWrapperElem);
179
+ const startTop = offsetRest.offsetTop + evnt.offsetY;
180
+ const startLeft = offsetRest.offsetLeft + evnt.offsetX;
181
+ const startScrollTop = bodyWrapperElem.scrollTop;
182
+ const rowHeight = trElem.offsetHeight;
183
+ const trRect = trElem.getBoundingClientRect();
184
+ const offsetClientTop = disY - trRect.y;
185
+ let mouseScrollTimeout = null;
186
+ let isMouseScrollDown = false;
187
+ let mouseScrollSpaceSize = 1;
188
+ const triggerEvent = (type, evnt) => {
189
+ $xeTable.dispatchEvent(`checkbox-range-${type}`, {
190
+ records: () => $xeTable.getCheckboxRecords(),
191
+ reserves: () => $xeTable.getCheckboxReserveRecords()
192
+ }, evnt);
193
+ };
194
+ const handleChecked = evnt => {
195
+ const {
196
+ clientX,
197
+ clientY
198
+ } = evnt;
199
+ const offsetLeft = clientX - disX;
200
+ const offsetTop = clientY - disY + (bodyWrapperElem.scrollTop - startScrollTop);
201
+ let rangeHeight = Math.abs(offsetTop);
202
+ let rangeWidth = Math.abs(offsetLeft);
203
+ let rangeTop = startTop;
204
+ let rangeLeft = startLeft;
205
+ if (offsetTop < marginSize) {
206
+ // 向上
207
+ rangeTop += offsetTop;
208
+ if (rangeTop < marginSize) {
209
+ rangeTop = marginSize;
210
+ rangeHeight = startTop;
211
+ }
212
+ } else {
213
+ // 向下
214
+ rangeHeight = Math.min(rangeHeight, bodyWrapperElem.scrollHeight - startTop - marginSize);
215
+ }
216
+ if (offsetLeft < marginSize) {
217
+ // 向左
218
+ rangeLeft += offsetLeft;
219
+ if (rangeWidth > startLeft) {
220
+ rangeLeft = marginSize;
221
+ rangeWidth = startLeft;
222
+ }
223
+ } else {
224
+ // 向右
225
+ rangeWidth = Math.min(rangeWidth, bodyWrapperElem.clientWidth - startLeft - marginSize);
226
+ }
227
+ checkboxRangeElem.style.height = `${rangeHeight}px`;
228
+ checkboxRangeElem.style.width = `${rangeWidth}px`;
229
+ checkboxRangeElem.style.left = `${rangeLeft}px`;
230
+ checkboxRangeElem.style.top = `${rangeTop}px`;
231
+ checkboxRangeElem.style.display = 'block';
232
+ const rangeRows = getCheckboxRangeRows($xeTable, evnt, params, trElem, trRect, offsetClientTop, offsetTop < marginSize ? -rangeHeight : rangeHeight);
233
+ // 至少滑动 10px 才能有效匹配
234
+ if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
235
+ const isControlKey = (0, _dom.hasControlKey)(evnt);
236
+ lastRangeRows = rangeRows;
237
+ if (isControlKey) {
238
+ rangeRows.forEach(row => {
239
+ $xeTable.handleBatchSelectRows([row], selectRecords.indexOf(row) === -1);
240
+ });
241
+ } else {
242
+ $xeTable.setAllCheckboxRow(false);
243
+ $xeTable.handleCheckedCheckboxRow(rangeRows, true, false);
244
+ }
245
+ triggerEvent('change', evnt);
246
+ }
247
+ };
248
+ // 停止鼠标滚动
249
+ const stopMouseScroll = () => {
250
+ clearTimeout(mouseScrollTimeout);
251
+ mouseScrollTimeout = null;
252
+ };
253
+ // 开始鼠标滚动
254
+ const startMouseScroll = evnt => {
255
+ stopMouseScroll();
256
+ mouseScrollTimeout = setTimeout(() => {
257
+ if (mouseScrollTimeout) {
258
+ const {
259
+ scrollLeft,
260
+ scrollTop,
261
+ clientHeight,
262
+ scrollHeight
263
+ } = bodyWrapperElem;
264
+ const topSize = Math.ceil(mouseScrollSpaceSize * 50 / rowHeight);
265
+ if (isMouseScrollDown) {
266
+ if (scrollTop + clientHeight < scrollHeight) {
267
+ $xeTable.scrollTo(scrollLeft, scrollTop + topSize);
268
+ startMouseScroll(evnt);
269
+ handleChecked(evnt);
270
+ } else {
271
+ stopMouseScroll();
272
+ }
273
+ } else {
274
+ if (scrollTop) {
275
+ $xeTable.scrollTo(scrollLeft, scrollTop - topSize);
276
+ startMouseScroll(evnt);
277
+ handleChecked(evnt);
278
+ } else {
279
+ stopMouseScroll();
280
+ }
281
+ }
282
+ }
283
+ }, 50);
284
+ };
285
+ (0, _dom.addClass)(el, 'drag--range');
286
+ document.onmousemove = evnt => {
287
+ evnt.preventDefault();
288
+ evnt.stopPropagation();
289
+ const {
290
+ clientY
291
+ } = evnt;
292
+ const {
293
+ boundingTop
294
+ } = (0, _dom.getAbsolutePos)(bodyWrapperElem);
295
+ // 如果超过可视区,触发滚动
296
+ if (clientY < boundingTop) {
297
+ isMouseScrollDown = false;
298
+ mouseScrollSpaceSize = boundingTop - clientY;
299
+ if (!mouseScrollTimeout) {
300
+ startMouseScroll(evnt);
301
+ }
302
+ } else if (clientY > boundingTop + bodyWrapperElem.clientHeight) {
303
+ isMouseScrollDown = true;
304
+ mouseScrollSpaceSize = clientY - boundingTop - bodyWrapperElem.clientHeight;
305
+ if (!mouseScrollTimeout) {
306
+ startMouseScroll(evnt);
307
+ }
308
+ } else if (mouseScrollTimeout) {
309
+ stopMouseScroll();
310
+ }
311
+ handleChecked(evnt);
312
+ };
313
+ document.onmouseup = evnt => {
314
+ stopMouseScroll();
315
+ (0, _dom.removeClass)(el, 'drag--range');
316
+ checkboxRangeElem.removeAttribute('style');
317
+ document.onmousemove = null;
318
+ document.onmouseup = null;
319
+ triggerEvent('end', evnt);
320
+ };
321
+ triggerEvent('start', evnt);
322
+ }
323
+ }
148
324
  var _default = exports.default = {
149
325
  methods: {
150
326
  // 处理 Tab 键移动
@@ -375,204 +551,27 @@ var _default = exports.default = {
375
551
  },
376
552
  handleCellMousedownEvent(evnt, params) {
377
553
  const $xeTable = this;
554
+ const props = $xeTable;
378
555
  const {
379
556
  editConfig,
380
- editOpts,
381
- handleSelected,
382
557
  checkboxConfig,
383
- checkboxOpts,
384
- mouseConfig,
385
- mouseOpts
386
- } = this;
558
+ mouseConfig
559
+ } = props;
560
+ const checkboxOpts = $xeTable.computeCheckboxOpts;
561
+ const mouseOpts = $xeTable.computeMouseOpts;
562
+ const editOpts = $xeTable.computeEditOpts;
387
563
  if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaModnEvent) {
388
564
  return $xeTable.triggerCellAreaModnEvent(evnt, params);
389
565
  } else {
390
566
  if (checkboxConfig && checkboxOpts.range) {
391
- this.handleCheckboxRangeEvent(evnt, params);
567
+ handleCheckboxRangeEvent($xeTable, evnt, params);
392
568
  }
393
569
  if (mouseConfig && mouseOpts.selected) {
394
570
  if (!editConfig || editOpts.mode === 'cell') {
395
- handleSelected(params, evnt);
571
+ $xeTable.handleSelected(params, evnt);
396
572
  }
397
573
  }
398
574
  }
399
- },
400
- handleCheckboxRangeEvent(evnt, params) {
401
- const $xeTable = this;
402
- const internalData = $xeTable;
403
- const {
404
- elemStore
405
- } = internalData;
406
- const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
407
- const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
408
- const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
409
- const {
410
- column,
411
- cell
412
- } = params;
413
- if (column.type === 'checkbox') {
414
- let bodyWrapperElem = bodyScrollElem;
415
- if (leftScrollElem && column.fixed === 'left') {
416
- bodyWrapperElem = leftScrollElem;
417
- } else if (rightScrollElem && column.fixed === 'right') {
418
- bodyWrapperElem = rightScrollElem;
419
- }
420
- if (!bodyWrapperElem) {
421
- return;
422
- }
423
- const el = $xeTable.$refs.refElem;
424
- const disX = evnt.clientX;
425
- const disY = evnt.clientY;
426
- const checkboxRangeElem = bodyWrapperElem.querySelector('.vxe-table--checkbox-range');
427
- const trElem = cell.parentNode;
428
- const selectRecords = this.getCheckboxRecords();
429
- let lastRangeRows = [];
430
- const marginSize = 1;
431
- const offsetRest = getTargetOffset(evnt.target, bodyWrapperElem);
432
- const startTop = offsetRest.offsetTop + evnt.offsetY;
433
- const startLeft = offsetRest.offsetLeft + evnt.offsetX;
434
- const startScrollTop = bodyWrapperElem.scrollTop;
435
- const rowHeight = trElem.offsetHeight;
436
- const trRect = trElem.getBoundingClientRect();
437
- const offsetClientTop = disY - trRect.y;
438
- let mouseScrollTimeout = null;
439
- let isMouseScrollDown = false;
440
- let mouseScrollSpaceSize = 1;
441
- const triggerEvent = (type, evnt) => {
442
- this.emitEvent(`checkbox-range-${type}`, {
443
- records: () => this.getCheckboxRecords(),
444
- reserves: () => this.getCheckboxReserveRecords()
445
- }, evnt);
446
- };
447
- const handleChecked = evnt => {
448
- const {
449
- clientX,
450
- clientY
451
- } = evnt;
452
- const offsetLeft = clientX - disX;
453
- const offsetTop = clientY - disY + (bodyWrapperElem.scrollTop - startScrollTop);
454
- let rangeHeight = Math.abs(offsetTop);
455
- let rangeWidth = Math.abs(offsetLeft);
456
- let rangeTop = startTop;
457
- let rangeLeft = startLeft;
458
- if (offsetTop < marginSize) {
459
- // 向上
460
- rangeTop += offsetTop;
461
- if (rangeTop < marginSize) {
462
- rangeTop = marginSize;
463
- rangeHeight = startTop;
464
- }
465
- } else {
466
- // 向下
467
- rangeHeight = Math.min(rangeHeight, bodyWrapperElem.scrollHeight - startTop - marginSize);
468
- }
469
- if (offsetLeft < marginSize) {
470
- // 向左
471
- rangeLeft += offsetLeft;
472
- if (rangeWidth > startLeft) {
473
- rangeLeft = marginSize;
474
- rangeWidth = startLeft;
475
- }
476
- } else {
477
- // 向右
478
- rangeWidth = Math.min(rangeWidth, bodyWrapperElem.clientWidth - startLeft - marginSize);
479
- }
480
- checkboxRangeElem.style.height = `${rangeHeight}px`;
481
- checkboxRangeElem.style.width = `${rangeWidth}px`;
482
- checkboxRangeElem.style.left = `${rangeLeft}px`;
483
- checkboxRangeElem.style.top = `${rangeTop}px`;
484
- checkboxRangeElem.style.display = 'block';
485
- const rangeRows = getCheckboxRangeRows(this, evnt, params, trElem, trRect, offsetClientTop, offsetTop < marginSize ? -rangeHeight : rangeHeight);
486
- // 至少滑动 10px 才能有效匹配
487
- if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
488
- const isControlKey = (0, _dom.hasControlKey)(evnt);
489
- lastRangeRows = rangeRows;
490
- if (isControlKey) {
491
- rangeRows.forEach(row => {
492
- $xeTable.handleBatchSelectRows([row], selectRecords.indexOf(row) === -1);
493
- });
494
- } else {
495
- this.setAllCheckboxRow(false);
496
- this.handleCheckedCheckboxRow(rangeRows, true, false);
497
- }
498
- triggerEvent('change', evnt);
499
- }
500
- };
501
- // 停止鼠标滚动
502
- const stopMouseScroll = () => {
503
- clearTimeout(mouseScrollTimeout);
504
- mouseScrollTimeout = null;
505
- };
506
- // 开始鼠标滚动
507
- const startMouseScroll = evnt => {
508
- stopMouseScroll();
509
- mouseScrollTimeout = setTimeout(() => {
510
- if (mouseScrollTimeout) {
511
- const {
512
- scrollLeft,
513
- scrollTop,
514
- clientHeight,
515
- scrollHeight
516
- } = bodyWrapperElem;
517
- const topSize = Math.ceil(mouseScrollSpaceSize * 50 / rowHeight);
518
- if (isMouseScrollDown) {
519
- if (scrollTop + clientHeight < scrollHeight) {
520
- this.scrollTo(scrollLeft, scrollTop + topSize);
521
- startMouseScroll(evnt);
522
- handleChecked(evnt);
523
- } else {
524
- stopMouseScroll();
525
- }
526
- } else {
527
- if (scrollTop) {
528
- this.scrollTo(scrollLeft, scrollTop - topSize);
529
- startMouseScroll(evnt);
530
- handleChecked(evnt);
531
- } else {
532
- stopMouseScroll();
533
- }
534
- }
535
- }
536
- }, 50);
537
- };
538
- (0, _dom.addClass)(el, 'drag--range');
539
- document.onmousemove = evnt => {
540
- evnt.preventDefault();
541
- evnt.stopPropagation();
542
- const {
543
- clientY
544
- } = evnt;
545
- const {
546
- boundingTop
547
- } = (0, _dom.getAbsolutePos)(bodyWrapperElem);
548
- // 如果超过可视区,触发滚动
549
- if (clientY < boundingTop) {
550
- isMouseScrollDown = false;
551
- mouseScrollSpaceSize = boundingTop - clientY;
552
- if (!mouseScrollTimeout) {
553
- startMouseScroll(evnt);
554
- }
555
- } else if (clientY > boundingTop + bodyWrapperElem.clientHeight) {
556
- isMouseScrollDown = true;
557
- mouseScrollSpaceSize = clientY - boundingTop - bodyWrapperElem.clientHeight;
558
- if (!mouseScrollTimeout) {
559
- startMouseScroll(evnt);
560
- }
561
- } else if (mouseScrollTimeout) {
562
- stopMouseScroll();
563
- }
564
- handleChecked(evnt);
565
- };
566
- document.onmouseup = evnt => {
567
- stopMouseScroll();
568
- (0, _dom.removeClass)(el, 'drag--range');
569
- checkboxRangeElem.removeAttribute('style');
570
- document.onmousemove = null;
571
- document.onmouseup = null;
572
- triggerEvent('end', evnt);
573
- };
574
- triggerEvent('start', evnt);
575
- }
576
575
  }
577
576
  }
578
577
  };
@@ -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}}let browseObj=_xeUtils.default.browse();function getTargetOffset(e,t){let l=0,o=0;var r,n,i=!browseObj.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(i&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,i&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}function getCheckboxRangeRows(t,e,l,o,r,n,i){var u=t.showOverflow,{fullAllDataRowIdData:s,isResizeCellHeight:c}=t,d=t.computeRowOpts,h=t.computeCellOpts,a=t.computeDefaultRowHeight,l=l.row;let g=0,m=[],f=0;var C=0<i,p=t.scrollYLoad,w=t.afterFullData;if(f=C?n+i:r.height-n+Math.abs(i),p){r=t.getVTRowIndex(l);if(!(c||h.height||d.height)&&u)m=C?w.slice(r,r+Math.ceil(f/a)):w.slice(r-Math.floor(f/a),r+1);else if(C)for(let e=r;e<w.length;e++){var v=w[e],x=s[t.getRowid(v)]||{};if(g+=x.resizeHeight||h.height||d.height||x.height||a,m.push(v),g>f)return m}else for(let e=r;0<=e;e--){var R=w[e],b=s[t.getRowid(R)]||{};if(g+=b.resizeHeight||h.height||d.height||b.height||a,m.push(R),g>f)return m}}else for(var T=C?"next":"previous";o&&g<f;){var O=t.getRowNode(o);O&&(m.push(O.item),g+=o.offsetHeight,o=o[T+"ElementSibling"])}return m}function handleMoveSelected(e,t,l,o,r,n,i){var{afterFullData:u,visibleColumn:s}=e;let c=Object.assign({},l);var l=e.getVTRowIndex(c.row),d=e.getVTColumnIndex(c.column);return t.preventDefault(),r&&0<l?(c.rowIndex=l-1,c.row=u[c.rowIndex]):i&&l<u.length-1?(c.rowIndex=l+1,c.row=u[c.rowIndex]):o&&d?(c.columnIndex=d-1,c.column=s[c.columnIndex]):n&&d<s.length-1&&(c.columnIndex=d+1,c.column=s[c.columnIndex]),e.scrollToRow(c.row,c.column).then(()=>{c.cell=e.getCellElement(c.row,c.column),e.handleSelected(c,t)}),c}var _default=exports.default={methods:{moveTabSelected(e,t,l){let o=this;var r=o.editConfig,{afterFullData:n,visibleColumn:i}=o,u=o.computeEditOpts,s=o.computeRowOpts,c=o.computeCurrentRowOpts,d=o.computeColumnOpts,h=o.computeCurrentColumnOpts;let a,g,m,f=Object.assign({},e);var e=o.getVTRowIndex(f.row),C=o.getVTColumnIndex(f.column),t=(l.preventDefault(),t?C<=0?0<e&&(g=e-1,a=n[g],m=i.length-1):m=C-1:C>=i.length-1?e<n.length-1&&(g=e+1,a=n[g],m=0):m=C+1,i[m]);t&&(a?(f.rowIndex=g,f.row=a):f.rowIndex=e,f.columnIndex=m,f.column=t,f.cell=o.getCellElement(f.row,f.column),s.isCurrent&&c.isFollowSelected&&o.triggerCurrentRowEvent(l,f),d.isCurrent&&h.isFollowSelected&&o.triggerCurrentColumnEvent(l,f),r?"click"!==u.trigger&&"dblclick"!==u.trigger||("row"===u.mode?o.handleEdit(f,l):o.scrollToRow(f.row,f.column).then(()=>{o.handleSelected(f,l)})):o.scrollToRow(f.row,f.column).then(()=>{o.handleSelected(f,l)}))},moveCurrentRow(e,t,l){let o=this;var r=o,n=o,i=o,r=r.treeConfig;let u=n.currentRow;var n=i.afterFullData,i=o.computeTreeOpts,i=i.children||i.childrenField;let s;if(u?r?({index:r,items:i}=_xeUtils.default.findTree(n,e=>e===u,{children:i}),e&&0<r?s=i[r-1]:t&&r<i.length-1&&(s=i[r+1])):(i=o.getVTRowIndex(u),e&&0<i?s=n[i-1]:t&&i<n.length-1&&(s=n[i+1])):s=n[0],s){l.preventDefault();let e={$table:o,row:s,rowIndex:o.getRowIndex(s),$rowIndex:o.getVMRowIndex(s)};o.scrollToRow(s).then(()=>o.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){let o=this;var r=o.currentColumn,n=o.visibleColumn;let i=null;if(r?(r=o.getVTColumnIndex(r),e&&0<r?i=n[r-1]:t&&r<n.length-1&&(i=n[r+1])):i=n[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))}},moveArrowSelected(e,t,l,o,r,n){var i=this,{highlightCurrentRow:u,highlightCurrentColumn:s}=i,c=i.computeRowOpts,d=i.computeCurrentRowOpts,h=i.computeColumnOpts,a=i.computeCurrentColumnOpts,e=handleMoveSelected(i,n,e,t,l,o,r);(c.isCurrent||u)&&(d.isFollowSelected?i.triggerCurrentRowEvent(n,e):(l||r)&&(c.isCurrent||u)&&i.moveCurrentRow(l,r,n)),(h.isCurrent||s)&&(a.isFollowSelected?i.triggerCurrentColumnEvent(n,e):(t||o)&&(h.isCurrent||s)&&i.moveCurrentColumn(t,o,n))},moveEnterSelected(e,t,l,o,r,n){var i=this,{highlightCurrentRow:u,highlightCurrentColumn:s}=i,c=i.computeRowOpts,d=i.computeCurrentRowOpts,h=i.computeColumnOpts,a=i.computeCurrentColumnOpts,e=handleMoveSelected(i,n,e,t,l,o,r);(c.isCurrent||u)&&d.isFollowSelected&&i.triggerCurrentRowEvent(n,e),(h.isCurrent||s)&&a.isFollowSelected&&i.triggerCurrentColumnEvent(n,e)},moveSelected(e,t,l,o,r,n){handleMoveSelected(this,n,e,t,l,o,r)},handleCellMousedownEvent(e,t){var{editConfig:l,editOpts:o,handleSelected:r,checkboxConfig:n,checkboxOpts:i,mouseConfig:u,mouseOpts:s}=this;if(u&&s.area&&this.triggerCellAreaModnEvent)return this.triggerCellAreaModnEvent(e,t);n&&i.range&&this.handleCheckboxRangeEvent(e,t),u&&s.selected&&(l&&"cell"!==o.mode||r(t,e))},handleCheckboxRangeEvent(e,S){let _=this;var t=_.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}=S;if("checkbox"===r.type){let E=l;if(o&&"left"===r.fixed?E=o:t&&"right"===r.fixed&&(E=t),E){let t=_.$refs.refElem,u=e.clientX,s=e.clientY,c=E.querySelector(".vxe-table--checkbox-range"),d=n.parentNode,h=this.getCheckboxRecords(),a=[],g=1;l=getTargetOffset(e.target,E);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,C=E.scrollTop,i=d.offsetHeight,p=d.getBoundingClientRect(),w=s-p.y,v=null,x=!1,R=1,b=(e,t)=>{this.emitEvent("checkbox-range-"+e,{records:()=>this.getCheckboxRecords(),reserves:()=>this.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-u,l=l-s+(E.scrollTop-C);let o=Math.abs(l),r=Math.abs(t),n=m,i=f;l<g?(n+=l)<g&&(n=g,o=m):o=Math.min(o,E.scrollHeight-m-g),t<g?(i+=t,r>f&&(i=g,r=f)):r=Math.min(r,E.clientWidth-f-g),c.style.height=o+"px",c.style.width=r+"px",c.style.left=i+"px",c.style.top=n+"px",c.style.display="block";t=getCheckboxRangeRows(this,e,S,d,p,w,l<g?-o:o);10<o&&t.length!==a.length&&(l=(0,_dom.hasControlKey)(e),a=t,l?t.forEach(e=>{_.handleBatchSelectRows([e],-1===h.indexOf(e))}):(this.setAllCheckboxRow(!1),this.handleCheckedCheckboxRow(t,!0,!1)),b("change",e))},O=()=>{clearTimeout(v),v=null},I=n=>{O(),v=setTimeout(()=>{var e,t,l,o,r;v&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=E,r=Math.ceil(50*R/i),x?t+l<o?(this.scrollTo(e,t+r),I(n),T(n)):O():t?(this.scrollTo(e,t-r),I(n),T(n)):O())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(E).boundingTop;t<l?(x=!1,R=l-t,v||I(e)):t>l+E.clientHeight?(x=!0,R=t-l-E.clientHeight,v||I(e)):v&&O(),T(e)},document.onmouseup=e=>{O(),(0,_dom.removeClass)(t,"drag--range"),c.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,b("end",e)},b("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}}let browseObj=_xeUtils.default.browse();function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!browseObj.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}function getCheckboxRangeRows(t,e,l,o,r,n,u){var i=t.showOverflow,{fullAllDataRowIdData:s,isResizeCellHeight:c}=t,d=t.computeRowOpts,a=t.computeCellOpts,g=t.computeDefaultRowHeight,l=l.row;let h=0,m=[],f=0;var C=0<u,p=t.scrollYLoad,w=t.afterFullData;if(f=C?n+u:r.height-n+Math.abs(u),p){r=t.getVTRowIndex(l);if(!(c||a.height||d.height)&&i)m=C?w.slice(r,r+Math.ceil(f/g)):w.slice(r-Math.floor(f/g),r+1);else if(C)for(let e=r;e<w.length;e++){var v=w[e],x=s[t.getRowid(v)]||{};if(h+=x.resizeHeight||a.height||d.height||x.height||g,m.push(v),h>f)return m}else for(let e=r;0<=e;e--){var R=w[e],b=s[t.getRowid(R)]||{};if(h+=b.resizeHeight||a.height||d.height||b.height||g,m.push(R),h>f)return m}}else for(var T=C?"next":"previous";o&&h<f;){var O=t.getRowNode(o);O&&(m.push(O.item),h+=o.offsetHeight,o=o[T+"ElementSibling"])}return m}function handleMoveSelected(e,t,l,o,r,n,u){var{afterFullData:i,visibleColumn:s}=e;let c=Object.assign({},l);var l=e.getVTRowIndex(c.row),d=e.getVTColumnIndex(c.column);return t.preventDefault(),r&&0<l?(c.rowIndex=l-1,c.row=i[c.rowIndex]):u&&l<i.length-1?(c.rowIndex=l+1,c.row=i[c.rowIndex]):o&&d?(c.columnIndex=d-1,c.column=s[c.columnIndex]):n&&d<s.length-1&&(c.columnIndex=d+1,c.column=s[c.columnIndex]),e.scrollToRow(c.row,c.column).then(()=>{c.cell=e.getCellElement(c.row,c.column),e.handleSelected(c,t)}),c}function handleCheckboxRangeEvent(S,e,_){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}=_;if("checkbox"===r.type){let E=l;if(o&&"left"===r.fixed?E=o:t&&"right"===r.fixed&&(E=t),E){let t=S.$refs.refElem,i=e.clientX,s=e.clientY,c=E.querySelector(".vxe-table--checkbox-range"),d=n.parentNode,a=S.getCheckboxRecords(),g=[],h=1;l=getTargetOffset(e.target,E);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,C=E.scrollTop,u=d.offsetHeight,p=d.getBoundingClientRect(),w=s-p.y,v=null,x=!1,R=1,b=(e,t)=>{S.dispatchEvent("checkbox-range-"+e,{records:()=>S.getCheckboxRecords(),reserves:()=>S.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-s+(E.scrollTop-C);let o=Math.abs(l),r=Math.abs(t),n=m,u=f;l<h?(n+=l)<h&&(n=h,o=m):o=Math.min(o,E.scrollHeight-m-h),t<h?(u+=t,r>f&&(u=h,r=f)):r=Math.min(r,E.clientWidth-f-h),c.style.height=o+"px",c.style.width=r+"px",c.style.left=u+"px",c.style.top=n+"px",c.style.display="block";t=getCheckboxRangeRows(S,e,_,d,p,w,l<h?-o:o);10<o&&t.length!==g.length&&(l=(0,_dom.hasControlKey)(e),g=t,l?t.forEach(e=>{S.handleBatchSelectRows([e],-1===a.indexOf(e))}):(S.setAllCheckboxRow(!1),S.handleCheckedCheckboxRow(t,!0,!1)),b("change",e))},O=()=>{clearTimeout(v),v=null},I=n=>{O(),v=setTimeout(()=>{var e,t,l,o,r;v&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=E,r=Math.ceil(50*R/u),x?t+l<o?(S.scrollTo(e,t+r),I(n),T(n)):O():t?(S.scrollTo(e,t-r),I(n),T(n)):O())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(E).boundingTop;t<l?(x=!1,R=l-t,v||I(e)):t>l+E.clientHeight?(x=!0,R=t-l-E.clientHeight,v||I(e)):v&&O(),T(e)},document.onmouseup=e=>{O(),(0,_dom.removeClass)(t,"drag--range"),c.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,s=o.computeRowOpts,c=o.computeCurrentRowOpts,d=o.computeColumnOpts,a=o.computeCurrentColumnOpts;let g,h,m,f=Object.assign({},e);var e=o.getVTRowIndex(f.row),C=o.getVTColumnIndex(f.column),t=(l.preventDefault(),t?C<=0?0<e&&(h=e-1,g=n[h],m=u.length-1):m=C-1:C>=u.length-1?e<n.length-1&&(h=e+1,g=n[h],m=0):m=C+1,u[m]);t&&(g?(f.rowIndex=h,f.row=g):f.rowIndex=e,f.columnIndex=m,f.column=t,f.cell=o.getCellElement(f.row,f.column),s.isCurrent&&c.isFollowSelected&&o.triggerCurrentRowEvent(l,f),d.isCurrent&&a.isFollowSelected&&o.triggerCurrentColumnEvent(l,f),r?"click"!==i.trigger&&"dblclick"!==i.trigger||("row"===i.mode?o.handleEdit(f,l):o.scrollToRow(f.row,f.column).then(()=>{o.handleSelected(f,l)})):o.scrollToRow(f.row,f.column).then(()=>{o.handleSelected(f,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 s;if(i?r?({index:r,items:u}=_xeUtils.default.findTree(n,e=>e===i,{children:u}),e&&0<r?s=u[r-1]:t&&r<u.length-1&&(s=u[r+1])):(u=o.getVTRowIndex(i),e&&0<u?s=n[u-1]:t&&u<n.length-1&&(s=n[u+1])):s=n[0],s){l.preventDefault();let e={$table:o,row:s,rowIndex:o.getRowIndex(s),$rowIndex:o.getVMRowIndex(s)};o.scrollToRow(s).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:s}=u,c=u.computeRowOpts,d=u.computeCurrentRowOpts,a=u.computeColumnOpts,g=u.computeCurrentColumnOpts,e=handleMoveSelected(u,n,e,t,l,o,r);(c.isCurrent||i)&&(d.isFollowSelected?u.triggerCurrentRowEvent(n,e):(l||r)&&(c.isCurrent||i)&&u.moveCurrentRow(l,r,n)),(a.isCurrent||s)&&(g.isFollowSelected?u.triggerCurrentColumnEvent(n,e):(t||o)&&(a.isCurrent||s)&&u.moveCurrentColumn(t,o,n))},moveEnterSelected(e,t,l,o,r,n){var u=this,{highlightCurrentRow:i,highlightCurrentColumn:s}=u,c=u.computeRowOpts,d=u.computeCurrentRowOpts,a=u.computeColumnOpts,g=u.computeCurrentColumnOpts,e=handleMoveSelected(u,n,e,t,l,o,r);(c.isCurrent||i)&&d.isFollowSelected&&u.triggerCurrentRowEvent(n,e),(a.isCurrent||s)&&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,s=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"!==s.mode||l.handleSelected(t,e))}}};
@@ -1875,6 +1875,17 @@ var _default = exports.default = {
1875
1875
  this.preventEvent(null, 'activated');
1876
1876
  },
1877
1877
  deactivated() {
1878
+ const $xeTable = this;
1879
+ const reactData = $xeTable;
1880
+ const internalData = $xeTable;
1881
+ const {
1882
+ filterStore
1883
+ } = reactData;
1884
+ if (filterStore.visible) {
1885
+ $xeTable.clearFilter();
1886
+ }
1887
+ $xeTable.closeTooltip();
1888
+ internalData.isActivated = false;
1878
1889
  this.preventEvent(null, 'deactivated');
1879
1890
  },
1880
1891
  beforeDestroy() {