vxe-table 3.12.15 → 3.12.17

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.
Files changed (48) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/edit/mixin.js +224 -158
  6. package/es/table/src/body.js +60 -47
  7. package/es/table/src/methods.js +166 -36
  8. package/es/table/src/table.js +101 -23
  9. package/es/table/style.css +26 -0
  10. package/es/table/style.min.css +1 -1
  11. package/es/ui/index.js +1 -1
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-table/style.css +26 -0
  14. package/es/vxe-table/style.min.css +1 -1
  15. package/lib/index.css +1 -1
  16. package/lib/index.min.css +1 -1
  17. package/lib/index.umd.js +730 -391
  18. package/lib/index.umd.min.js +1 -1
  19. package/lib/style.css +1 -1
  20. package/lib/style.min.css +1 -1
  21. package/lib/table/module/edit/mixin.js +278 -215
  22. package/lib/table/module/edit/mixin.min.js +1 -1
  23. package/lib/table/src/body.js +71 -59
  24. package/lib/table/src/body.min.js +1 -1
  25. package/lib/table/src/methods.js +199 -37
  26. package/lib/table/src/methods.min.js +1 -1
  27. package/lib/table/src/table.js +126 -24
  28. package/lib/table/src/table.min.js +1 -1
  29. package/lib/table/style/style.css +26 -0
  30. package/lib/table/style/style.min.css +1 -1
  31. package/lib/ui/index.js +1 -1
  32. package/lib/ui/index.min.js +1 -1
  33. package/lib/ui/src/log.js +1 -1
  34. package/lib/ui/src/log.min.js +1 -1
  35. package/lib/vxe-table/style/style.css +26 -0
  36. package/lib/vxe-table/style/style.min.css +1 -1
  37. package/package.json +1 -1
  38. package/packages/table/module/edit/mixin.ts +242 -159
  39. package/packages/table/src/body.ts +62 -48
  40. package/packages/table/src/methods.ts +170 -36
  41. package/packages/table/src/table.ts +108 -24
  42. package/styles/components/table.scss +26 -0
  43. /package/es/{iconfont.1739257460253.ttf → iconfont.1739428244406.ttf} +0 -0
  44. /package/es/{iconfont.1739257460253.woff → iconfont.1739428244406.woff} +0 -0
  45. /package/es/{iconfont.1739257460253.woff2 → iconfont.1739428244406.woff2} +0 -0
  46. /package/lib/{iconfont.1739257460253.ttf → iconfont.1739428244406.ttf} +0 -0
  47. /package/lib/{iconfont.1739257460253.woff → iconfont.1739428244406.woff} +0 -0
  48. /package/lib/{iconfont.1739257460253.woff2 → iconfont.1739428244406.woff2} +0 -0
@@ -16,6 +16,27 @@ const {
16
16
  renderer,
17
17
  getI18n
18
18
  } = _ui.VxeUI;
19
+ function getEditColumnModel(row, column) {
20
+ const {
21
+ model,
22
+ editRender
23
+ } = column;
24
+ if (editRender) {
25
+ model.value = (0, _util.getCellValue)(row, column);
26
+ model.update = false;
27
+ }
28
+ }
29
+ function setEditColumnModel(row, column) {
30
+ const {
31
+ model,
32
+ editRender
33
+ } = column;
34
+ if (editRender && model.update) {
35
+ (0, _util.setCellValue)(row, column, model.value);
36
+ model.update = false;
37
+ model.value = null;
38
+ }
39
+ }
19
40
  function removeCellSelectedClass($xeTable) {
20
41
  const el = $xeTable.$refs.refElem;
21
42
  if (el) {
@@ -25,6 +46,28 @@ function removeCellSelectedClass($xeTable) {
25
46
  }
26
47
  }
27
48
  }
49
+ function syncActivedCell($xeTable) {
50
+ const reactData = $xeTable;
51
+ const {
52
+ editStore,
53
+ tableColumn
54
+ } = reactData;
55
+ const editOpts = $xeTable.computeEditOpts;
56
+ const {
57
+ actived
58
+ } = editStore;
59
+ const {
60
+ row,
61
+ column
62
+ } = actived;
63
+ if (row || column) {
64
+ if (editOpts.mode === 'row') {
65
+ tableColumn.forEach(column => setEditColumnModel(row, column));
66
+ } else {
67
+ setEditColumnModel(row, column);
68
+ }
69
+ }
70
+ }
28
71
  function insertTreeRow(_vm, newRecords, isAppend) {
29
72
  const {
30
73
  tableFullTreeData,
@@ -75,7 +118,8 @@ function insertTreeRow(_vm, newRecords, isAppend) {
75
118
  level: parentLevel + 1,
76
119
  height: 0,
77
120
  resizeHeight: 0,
78
- oTop: 0
121
+ oTop: 0,
122
+ expandHeight: 0
79
123
  };
80
124
  fullDataRowIdData[rowid] = rest;
81
125
  fullAllDataRowIdData[rowid] = rest;
@@ -100,7 +144,8 @@ function insertTreeRow(_vm, newRecords, isAppend) {
100
144
  level: 0,
101
145
  height: 0,
102
146
  resizeHeight: 0,
103
- oTop: 0
147
+ oTop: 0,
148
+ expandHeight: 0
104
149
  };
105
150
  fullDataRowIdData[rowid] = rest;
106
151
  fullAllDataRowIdData[rowid] = rest;
@@ -159,7 +204,8 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
159
204
  level: 0,
160
205
  height: 0,
161
206
  resizeHeight: 0,
162
- oTop: 0
207
+ oTop: 0,
208
+ expandHeight: 0
163
209
  };
164
210
  fullDataRowIdData[rowid] = rest;
165
211
  fullAllDataRowIdData[rowid] = rest;
@@ -197,7 +243,8 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
197
243
  level: 0,
198
244
  height: 0,
199
245
  resizeHeight: 0,
200
- oTop: 0
246
+ oTop: 0,
247
+ expandHeight: 0
201
248
  };
202
249
  fullDataRowIdData[rowid] = rest;
203
250
  fullAllDataRowIdData[rowid] = rest;
@@ -258,7 +305,8 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
258
305
  level: parentLevel + 1,
259
306
  height: 0,
260
307
  resizeHeight: 0,
261
- oTop: 0
308
+ oTop: 0,
309
+ expandHeight: 0
262
310
  };
263
311
  fullDataRowIdData[rowid] = rest;
264
312
  fullAllDataRowIdData[rowid] = rest;
@@ -379,6 +427,214 @@ function handleInsertChildRowAt($xeTable, records, parentRow, targetRow, isInser
379
427
  rows: []
380
428
  });
381
429
  }
430
+ function handleClearEdit($xeTable, evnt, targetRow) {
431
+ const props = $xeTable;
432
+ const reactData = $xeTable;
433
+ const {
434
+ mouseConfig
435
+ } = props;
436
+ const {
437
+ editStore
438
+ } = reactData;
439
+ const {
440
+ actived,
441
+ focused
442
+ } = editStore;
443
+ const {
444
+ row,
445
+ column
446
+ } = actived;
447
+ const validOpts = $xeTable.computeValidOpts;
448
+ const mouseOpts = $xeTable.computeMouseOpts;
449
+ if (row || column) {
450
+ if (targetRow && (0, _util.getRowid)($xeTable, targetRow) !== (0, _util.getRowid)($xeTable, row)) {
451
+ return $xeTable.$nextTick();
452
+ }
453
+ syncActivedCell($xeTable);
454
+ actived.args = null;
455
+ actived.row = null;
456
+ actived.column = null;
457
+ $xeTable.updateFooter();
458
+ $xeTable.dispatchEvent('edit-closed', {
459
+ row,
460
+ rowIndex: $xeTable.getRowIndex(row),
461
+ $rowIndex: $xeTable.getVMRowIndex(row),
462
+ column,
463
+ columnIndex: $xeTable.getColumnIndex(column),
464
+ $columnIndex: $xeTable.getVMColumnIndex(column)
465
+ }, evnt || null);
466
+ }
467
+ focused.row = null;
468
+ focused.column = null;
469
+ if (validOpts.autoClear) {
470
+ if (validOpts.msgMode !== 'full' || getConfig().cellVaildMode === 'obsolete') {
471
+ if ($xeTable.clearValidate) {
472
+ return $xeTable.clearValidate();
473
+ }
474
+ }
475
+ }
476
+ return $xeTable.$nextTick().then(() => {
477
+ if (mouseConfig && mouseOpts.area && $xeTable.handleRecalculateCellAreas) {
478
+ return $xeTable.handleRecalculateCellAreas();
479
+ }
480
+ });
481
+ }
482
+ function handleEditActive($xeTable, params, evnt, isFocus) {
483
+ const props = $xeTable;
484
+ const reactData = $xeTable;
485
+ const {
486
+ editConfig,
487
+ mouseConfig
488
+ } = props;
489
+ const {
490
+ editStore,
491
+ tableColumn
492
+ } = reactData;
493
+ const editOpts = $xeTable.computeEditOpts;
494
+ const {
495
+ mode
496
+ } = editOpts;
497
+ const {
498
+ actived,
499
+ focused
500
+ } = editStore;
501
+ const {
502
+ row,
503
+ column
504
+ } = params;
505
+ const {
506
+ editRender
507
+ } = column;
508
+ const cell = params.cell || $xeTable.getCellElement(row, column);
509
+ const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
510
+ params.cell = cell;
511
+ if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
512
+ // 激活编辑
513
+ if (!$xeTable.isPendingByRow(row)) {
514
+ if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
515
+ // 判断是否禁用编辑
516
+ let type = 'edit-disabled';
517
+ if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
518
+ $table: $xeTable,
519
+ $grid: $xeTable.xegrid
520
+ }))) {
521
+ if (mouseConfig) {
522
+ $xeTable.clearSelected();
523
+ if ($xeTable.clearCellAreas) {
524
+ $xeTable.clearCellAreas();
525
+ $xeTable.clearCopyCellArea();
526
+ }
527
+ }
528
+ $xeTable.closeTooltip();
529
+ if (actived.column) {
530
+ handleClearEdit($xeTable, evnt);
531
+ }
532
+ type = 'edit-activated';
533
+ column.renderHeight = cell.offsetHeight;
534
+ actived.args = params;
535
+ actived.row = row;
536
+ actived.column = column;
537
+ if (mode === 'row') {
538
+ tableColumn.forEach(column => getEditColumnModel(row, column));
539
+ } else {
540
+ getEditColumnModel(row, column);
541
+ }
542
+ const afterEditMethod = editOpts.afterEditMethod;
543
+ $xeTable.$nextTick(() => {
544
+ if (isFocus) {
545
+ $xeTable.handleFocus(params, evnt);
546
+ }
547
+ if (afterEditMethod) {
548
+ afterEditMethod(Object.assign(Object.assign({}, params), {
549
+ $table: $xeTable,
550
+ $grid: $xeTable.xegrid
551
+ }));
552
+ }
553
+ });
554
+ }
555
+ $xeTable.dispatchEvent(type, {
556
+ row,
557
+ rowIndex: $xeTable.getRowIndex(row),
558
+ $rowIndex: $xeTable.getVMRowIndex(row),
559
+ column,
560
+ columnIndex: $xeTable.getColumnIndex(column),
561
+ $columnIndex: $xeTable.getVMColumnIndex(column)
562
+ }, evnt);
563
+ // v4已废弃
564
+ if (type === 'edit-activated') {
565
+ $xeTable.dispatchEvent('edit-actived', {
566
+ row,
567
+ rowIndex: $xeTable.getRowIndex(row),
568
+ $rowIndex: $xeTable.getVMRowIndex(row),
569
+ column,
570
+ columnIndex: $xeTable.getColumnIndex(column),
571
+ $columnIndex: $xeTable.getVMColumnIndex(column)
572
+ }, evnt);
573
+ }
574
+ } else {
575
+ const {
576
+ column: oldColumn
577
+ } = actived;
578
+ if (mouseConfig) {
579
+ $xeTable.clearSelected();
580
+ if ($xeTable.clearCellAreas) {
581
+ $xeTable.clearCellAreas();
582
+ $xeTable.clearCopyCellArea();
583
+ }
584
+ }
585
+ if (oldColumn !== column) {
586
+ const {
587
+ model: oldModel
588
+ } = oldColumn;
589
+ if (oldModel.update) {
590
+ (0, _util.setCellValue)(row, oldColumn, oldModel.value);
591
+ }
592
+ if ($xeTable.clearValidate) {
593
+ $xeTable.clearValidate(row, column);
594
+ }
595
+ }
596
+ column.renderHeight = cell.offsetHeight;
597
+ actived.args = params;
598
+ actived.column = column;
599
+ if (isFocus) {
600
+ setTimeout(() => {
601
+ $xeTable.handleFocus(params, evnt);
602
+ });
603
+ }
604
+ }
605
+ focused.column = null;
606
+ focused.row = null;
607
+ $xeTable.focus();
608
+ }
609
+ }
610
+ return $xeTable.$nextTick();
611
+ }
612
+ function handleEditCell($xeTable, row, fieldOrColumn, isPos) {
613
+ const props = $xeTable;
614
+ const internalData = $xeTable;
615
+ const {
616
+ editConfig
617
+ } = props;
618
+ const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
619
+ if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
620
+ return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
621
+ const cell = $xeTable.getCellElement(row, column);
622
+ if (cell) {
623
+ handleEditActive($xeTable, {
624
+ row,
625
+ rowIndex: $xeTable.getRowIndex(row),
626
+ column,
627
+ columnIndex: $xeTable.getColumnIndex(column),
628
+ cell,
629
+ $table: $xeTable
630
+ }, null, false);
631
+ internalData._lastCallTime = Date.now();
632
+ }
633
+ return $xeTable.$nextTick();
634
+ });
635
+ }
636
+ return $xeTable.$nextTick();
637
+ }
382
638
  var _default = exports.default = {
383
639
  methods: {
384
640
  /**
@@ -657,6 +913,7 @@ var _default = exports.default = {
657
913
  * 如果是树表格,子节点更改状态不会影响父节点的更新状态
658
914
  */
659
915
  _getUpdateRecords() {
916
+ const $xeTable = this;
660
917
  const {
661
918
  keepSource,
662
919
  tableFullData,
@@ -674,7 +931,7 @@ var _default = exports.default = {
674
931
  column
675
932
  } = actived;
676
933
  if (row || column) {
677
- this._syncActivedCell();
934
+ syncActivedCell($xeTable);
678
935
  }
679
936
  if (treeConfig) {
680
937
  return _xeUtils.default.filterTree(tableFullData, row => isUpdateByRow(row), treeOpts);
@@ -687,105 +944,8 @@ var _default = exports.default = {
687
944
  * 处理激活编辑
688
945
  */
689
946
  handleEdit(params, evnt) {
690
- const {
691
- editStore,
692
- editOpts,
693
- tableColumn,
694
- editConfig,
695
- mouseConfig
696
- } = this;
697
- const {
698
- mode
699
- } = editOpts;
700
- const {
701
- actived,
702
- focused
703
- } = editStore;
704
- const {
705
- row,
706
- column
707
- } = params;
708
- const {
709
- editRender
710
- } = column;
711
- const cell = params.cell = params.cell || this.getCellElement(row, column);
712
- const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
713
- if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
714
- // 激活编辑
715
- if (!this.hasPendingByRow(row)) {
716
- if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
717
- // 判断是否禁用编辑
718
- let type = 'edit-disabled';
719
- if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
720
- $table: this,
721
- $grid: this.$xegrid
722
- }))) {
723
- if (mouseConfig) {
724
- this.clearSelected(evnt);
725
- this.clearCellAreas(evnt);
726
- this.clearCopyCellArea(evnt);
727
- }
728
- this.closeTooltip();
729
- if (actived.column) {
730
- this.handleClearEdit(evnt);
731
- }
732
- type = 'edit-activated';
733
- column.renderHeight = cell.offsetHeight;
734
- actived.args = params;
735
- actived.row = row;
736
- actived.column = column;
737
- if (mode === 'row') {
738
- tableColumn.forEach(column => this._getColumnModel(row, column));
739
- } else {
740
- this._getColumnModel(row, column);
741
- }
742
- const afterEditMethod = editOpts.afterEditMethod;
743
- this.$nextTick(() => {
744
- this.handleFocus(params, evnt);
745
- if (afterEditMethod) {
746
- afterEditMethod(Object.assign(Object.assign({}, params), {
747
- $table: this,
748
- $grid: this.$xegrid
749
- }));
750
- }
751
- });
752
- }
753
- this.emitEvent(type, params, evnt);
754
- // v4已废弃
755
- if (type === 'edit-activated') {
756
- this.emitEvent('edit-actived', params, evnt);
757
- }
758
- } else {
759
- const {
760
- column: oldColumn
761
- } = actived;
762
- if (mouseConfig) {
763
- this.clearSelected(evnt);
764
- this.clearCellAreas(evnt);
765
- this.clearCopyCellArea(evnt);
766
- }
767
- if (oldColumn !== column) {
768
- const {
769
- model: oldModel
770
- } = oldColumn;
771
- if (oldModel.update) {
772
- (0, _util.setCellValue)(row, oldColumn, oldModel.value);
773
- }
774
- this.clearValidate();
775
- }
776
- column.renderHeight = cell.offsetHeight;
777
- actived.args = params;
778
- actived.column = column;
779
- setTimeout(() => {
780
- this.handleFocus(params, evnt);
781
- });
782
- }
783
- focused.column = null;
784
- focused.row = null;
785
- this.focus();
786
- }
787
- }
788
- return this.$nextTick();
947
+ const $xeTable = this;
948
+ return handleEditActive($xeTable, params, evnt, true);
789
949
  },
790
950
  /**
791
951
  * @deprecated
@@ -794,46 +954,14 @@ var _default = exports.default = {
794
954
  return this.handleEdit(params, evnt);
795
955
  },
796
956
  _getColumnModel(row, column) {
797
- const {
798
- model,
799
- editRender
800
- } = column;
801
- if (editRender) {
802
- model.value = (0, _util.getCellValue)(row, column);
803
- model.update = false;
804
- }
957
+ getEditColumnModel(row, column);
805
958
  },
806
959
  _setColumnModel(row, column) {
807
- const {
808
- model,
809
- editRender
810
- } = column;
811
- if (editRender && model.update) {
812
- (0, _util.setCellValue)(row, column, model.value);
813
- model.update = false;
814
- model.value = null;
815
- }
960
+ setEditColumnModel(row, column);
816
961
  },
817
962
  _syncActivedCell() {
818
- const {
819
- tableColumn,
820
- editStore,
821
- editOpts
822
- } = this;
823
- const {
824
- actived
825
- } = editStore;
826
- const {
827
- row,
828
- column
829
- } = actived;
830
- if (row || column) {
831
- if (editOpts.mode === 'row') {
832
- tableColumn.forEach(column => this._setColumnModel(row, column));
833
- } else {
834
- this._setColumnModel(row, column);
835
- }
836
- }
963
+ const $xeTable = this;
964
+ syncActivedCell($xeTable);
837
965
  },
838
966
  _clearActived(row) {
839
967
  if (process.env.NODE_ENV === 'development') {
@@ -846,63 +974,15 @@ var _default = exports.default = {
846
974
  * 清除激活的编辑
847
975
  */
848
976
  _clearEdit(row) {
849
- return this.handleClearEdit(null, row);
977
+ const $xeTable = this;
978
+ return handleClearEdit($xeTable, null, row);
850
979
  },
851
980
  /**
852
981
  * 取消编辑
853
982
  */
854
983
  handleClearEdit(evnt, targetRow) {
855
984
  const $xeTable = this;
856
- const props = $xeTable;
857
- const reactData = $xeTable;
858
- const {
859
- mouseConfig
860
- } = props;
861
- const {
862
- editStore
863
- } = reactData;
864
- const {
865
- actived,
866
- focused
867
- } = editStore;
868
- const {
869
- row,
870
- column
871
- } = actived;
872
- const validOpts = $xeTable.validOpts;
873
- const mouseOpts = $xeTable.computeMouseOpts;
874
- if (row || column) {
875
- if (targetRow && (0, _util.getRowid)($xeTable, targetRow) !== (0, _util.getRowid)($xeTable, row)) {
876
- return $xeTable.$nextTick();
877
- }
878
- $xeTable._syncActivedCell();
879
- actived.args = null;
880
- actived.row = null;
881
- actived.column = null;
882
- $xeTable.updateFooter();
883
- $xeTable.emitEvent('edit-closed', {
884
- row,
885
- rowIndex: $xeTable.getRowIndex(row),
886
- $rowIndex: $xeTable.getVMRowIndex(row),
887
- column,
888
- columnIndex: $xeTable.getColumnIndex(column),
889
- $columnIndex: $xeTable.getVMColumnIndex(column)
890
- }, evnt);
891
- }
892
- focused.row = null;
893
- focused.column = null;
894
- if (validOpts.autoClear) {
895
- if (validOpts.msgMode !== 'full' || getConfig().cellVaildMode === 'obsolete') {
896
- if ($xeTable.clearValidate) {
897
- return $xeTable.clearValidate();
898
- }
899
- }
900
- }
901
- return $xeTable.$nextTick().then(() => {
902
- if (mouseConfig && mouseOpts.area && $xeTable.handleRecalculateCellAreas) {
903
- return $xeTable.handleRecalculateCellAreas();
904
- }
905
- });
985
+ return handleClearEdit($xeTable, evnt, targetRow);
906
986
  },
907
987
  _getActiveRecord() {
908
988
  if (process.env.NODE_ENV === 'development') {
@@ -1019,11 +1099,12 @@ var _default = exports.default = {
1019
1099
  * 激活行编辑
1020
1100
  */
1021
1101
  _setEditRow(row, fieldOrColumn) {
1102
+ const $xeTable = this;
1022
1103
  let column = _xeUtils.default.find(this.visibleColumn, column => (0, _utils.isEnableConf)(column.editRender));
1023
1104
  if (fieldOrColumn) {
1024
1105
  column = _xeUtils.default.isString(fieldOrColumn) ? this.getColumnByField(fieldOrColumn) : fieldOrColumn;
1025
1106
  }
1026
- return this.setEditCell(row, column);
1107
+ return handleEditCell($xeTable, row, column, false);
1027
1108
  },
1028
1109
  _setActiveCell(row, fieldOrColumn) {
1029
1110
  if (process.env.NODE_ENV === 'development') {
@@ -1036,27 +1117,8 @@ var _default = exports.default = {
1036
1117
  * 激活单元格编辑
1037
1118
  */
1038
1119
  _setEditCell(row, fieldOrColumn) {
1039
- const {
1040
- editConfig
1041
- } = this;
1042
- const column = _xeUtils.default.isString(fieldOrColumn) ? this.getColumnByField(fieldOrColumn) : fieldOrColumn;
1043
- if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
1044
- return this.scrollToRow(row, true).then(() => {
1045
- const cell = this.getCellElement(row, column);
1046
- if (cell) {
1047
- this.handleEdit({
1048
- row,
1049
- rowIndex: this.getRowIndex(row),
1050
- column,
1051
- columnIndex: this.getColumnIndex(column),
1052
- cell,
1053
- $table: this
1054
- });
1055
- this.lastCallTime = Date.now();
1056
- }
1057
- });
1058
- }
1059
- return this.$nextTick();
1120
+ const $xeTable = this;
1121
+ return handleEditCell($xeTable, row, fieldOrColumn, true);
1060
1122
  },
1061
1123
  /**
1062
1124
  * 只对 trigger=dblclick 有效,选中单元格
@@ -1088,6 +1150,7 @@ var _default = exports.default = {
1088
1150
  * 处理选中源
1089
1151
  */
1090
1152
  handleSelected(params, evnt) {
1153
+ const $xeTable = this;
1091
1154
  const {
1092
1155
  mouseConfig,
1093
1156
  mouseOpts,
@@ -1106,7 +1169,7 @@ var _default = exports.default = {
1106
1169
  const selectMethod = () => {
1107
1170
  if (isMouseSelected && (selected.row !== row || selected.column !== column)) {
1108
1171
  if (actived.row !== row || (editOpts.mode === 'cell' ? actived.column !== column : false)) {
1109
- this.handleClearEdit(evnt);
1172
+ handleClearEdit($xeTable, evnt);
1110
1173
  this.clearSelected(evnt);
1111
1174
  this.clearCellAreas(evnt);
1112
1175
  this.clearCopyCellArea(evnt);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,getI18n}=_ui.VxeUI;function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function insertTreeRow(s,e,t){let{tableFullTreeData:n,afterFullData:a,fullDataRowIdData:d,fullAllDataRowIdData:c,treeOpts:l}=s,{rowField:u,parentField:h,mapChildrenField:f}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(s,l),i=t?_xeUtils.default.findTree(n,e=>t===e[u],{children:f}):null;if(i){var i=i.item,o=c[(0,_util.getRowid)(s,i)],o=o?o.level:0;let e=i[g],t=i[f];_xeUtils.default.isArray(e)||(e=i[g]=[]),_xeUtils.default.isArray(t)||(t=i[g]=[]),e[w](l),t[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:i,level:o+1,height:0,resizeHeight:0,oTop:0};d[r]=i,c[r]=i}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),a[w](l),n[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:n,parent:null,level:0,height:0,resizeHeight:0,oTop:0};d[r]=o,c[r]=o}})}function handleInsertRowAt(a,t,l,d){let i=a.treeConfig;var{mergeList:e,editStore:r}=a;let{tableFullTreeData:c,afterFullData:o,tableFullData:s,fullDataRowIdData:u,fullAllDataRowIdData:h}=a,f=a.computeTreeOpts,{transform:n,rowField:g,mapChildrenField:w}=f,v=f.children||f.childrenField,m=(_xeUtils.default.isArray(t)||(t=[t]),a.defineField(t.map(e=>Object.assign(i&&n?{[w]:[],[v]:[]}:{},e))));if(_xeUtils.default.eqNull(l))i&&n?insertTreeRow(a,m,!1):(m.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,h[t]=l,o.unshift(e),s.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+m.length)}));else if(-1===l)i&&n?insertTreeRow(a,m,!0):(m.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,h[t]=l,o.push(e),s.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>o.length&&(e.rowspan=l+m.length)}));else if(i&&n){let n=_xeUtils.default.findTree(c,e=>l[g]===e[g],{children:w});if(n){let i=n.parent,o=i?i[w]:c;t=h[(0,_util.getRowid)(a,i)];let s=t?t.level:0;if(m.forEach((e,t)=>{var l=(0,_util.getRowid)(a,e);"development"===process.env.NODE_ENV&&e[f.parentField]&&i&&e[f.parentField]!==i[g]&&(0,_log.errLog)("vxe.error.errProp",[f.parentField+"="+e[f.parentField],f.parentField+"="+i[g]]),i&&(e[f.parentField]=i[g]);let r=n.index+t;d&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:i,level:s+1,height:0,resizeHeight:0,oTop:0};u[l]=t,h[l]=t}),i){t=_xeUtils.default.findTree(c,e=>l[g]===e[g],{children:v});if(t){var p=t.items;let e=t.index;d&&(e+=1),p.splice(e,0,...m)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,m,!0)}else{if(i)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<o.length&&(r=l):r=a.findRowIndexOf(o,l),-1===(r=d?Math.min(o.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));o.splice(r,0,...m);t=a.findRowIndexOf(s,l);-1<t?s.splice(t+(d?1:0),0,...m):s.push(...m),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+m.length:t+l>r&&(e.rowspan=l+m.length)})}let _=r.insertMaps;return m.forEach(e=>{var t=(0,_util.getRowid)(a,e);_[t]=e}),a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(i&&n),i&&n||a.updateAfterDataIndex(),a.updateFooter(),a.checkSelectionStatus(),a.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))}function handleInsertChildRowAt(e,t,l,r,i){var o=e.treeConfig;let{transform:s,rowField:n,parentField:a}=e.computeTreeOpts;return o&&s?handleInsertRowAt(e,(t=_xeUtils.default.isArray(t)?t:[t]).map(e=>Object.assign({},e,{[a]:l[n]})),r,i):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let l=this;var t=l,r=l,i=l,t=t.treeConfig;let{mergeList:o,editStore:s,selectCheckboxMaps:n}=r,{tableFullTreeData:a,afterFullData:d,tableFullData:c}=i;var i=l.computeCheckboxOpts,u=l.computeTreeOpts;let{transform:h,mapChildrenField:f}=u,g=u.children||u.childrenField,{actived:w,removeMaps:v,insertMaps:m}=s;u=i.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.forEach(e=>{var t;l.isInsertByRow(e)||(t=(0,_util.getRowid)(l,e),v[t]=e)}),!u){let t=Object.assign({},n);e.forEach(e=>{e=(0,_util.getRowid)(this,e);t[e]&&delete t[e]}),this.selectCheckboxMaps=t}return c===e?(e=p=c.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&h?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(this,e),{children:f}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(this,e),{children:g})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(d,e));-1<l&&d.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),p.push(t[0]));let r=this.findRowIndexOf(d,e);-1<r&&(o.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),d.splice(r,1))}),w.row&&-1<l.findRowIndexOf(e,w.row)&&l.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(l,e);m[e]&&delete m[e]}),l.updateFooter(),l.cacheRowMap(!1),l.handleTableData(t&&h),t&&h||l.updateAfterDataIndex(),l.checkSelectionStatus(),r.scrollYLoad&&l.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},_removeCheckboxRow(){return this.remove(this.getCheckboxRecords()).then(e=>(this.clearCheckboxRow(),e))},_removeRadioRow(){var e=this.getRadioRecord();return this.remove(e||[]).then(e=>(this.clearRadioRow(),e))},_removeCurrentRow(){var e=this.getCurrentRecord();return this.remove(e||[]).then(e=>(this.clearCurrentRow(),e))},_getRecordset(){var e=this.getRemoveRecords(),t=this.getPendingRecords();let l=e.concat(t);var r=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},_getInsertRecords(){var e=this.editStore;let l=this.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){let{keepSource:e,tableFullData:t,isUpdateByRow:l,treeConfig:r,treeOpts:i,editStore:o}=this;var s,n;return e?(s=o.actived,{row:s,column:n}=s,(s||n)&&this._syncActivedCell(),r?_xeUtils.default.filterTree(t,e=>l(e),i):t.filter(e=>l(e))):[]},handleEdit(l,r){var{editStore:i,editOpts:o,tableColumn:s,editConfig:e,mouseConfig:n}=this,a=o.mode,{actived:i,focused:t}=i;let{row:d,column:c}=l;var u=c.editRender,h=l.cell=l.cell||this.getCellElement(d,c),f=o.beforeEditMethod||o.activeMethod;if(h&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!this.hasPendingByRow(d)){if(i.row!==d||"cell"===a&&i.column!==c){let t="edit-disabled";if(!f||f(Object.assign(Object.assign({},l),{$table:this,$grid:this.$xegrid}))){n&&(this.clearSelected(r),this.clearCellAreas(r),this.clearCopyCellArea(r)),this.closeTooltip(),i.column&&this.handleClearEdit(r),t="edit-activated",c.renderHeight=h.offsetHeight,i.args=l,i.row=d,i.column=c,"row"===a?s.forEach(e=>this._getColumnModel(d,e)):this._getColumnModel(d,c);let e=o.afterEditMethod;this.$nextTick(()=>{this.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:this,$grid:this.$xegrid}))})}this.emitEvent(t,l,r),"edit-activated"===t&&this.emitEvent("edit-actived",l,r)}else{e=i.column;n&&(this.clearSelected(r),this.clearCellAreas(r),this.clearCopyCellArea(r)),e!==c&&(u=e.model,u.update&&(0,_util.setCellValue)(d,e,u.value),this.clearValidate()),c.renderHeight=h.offsetHeight,i.args=l,i.column=c,setTimeout(()=>{this.handleFocus(l,r)})}t.column=null,t.row=null,this.focus()}return this.$nextTick()},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},_setColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},_syncActivedCell(){var{tableColumn:e,editStore:t,editOpts:l}=this,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===l.mode?e.forEach(e=>this._setColumnModel(r,e)):this._setColumnModel(r,i))},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return this.handleClearEdit(null,e)},handleClearEdit(e,t){let l=this;var r=l,i=l;let o=r.mouseConfig;var r=i.editStore,{actived:i,focused:r}=r,{row:s,column:n}=i,a=l.validOpts;let d=l.computeMouseOpts;if(s||n){if(t&&(0,_util.getRowid)(l,t)!==(0,_util.getRowid)(l,s))return l.$nextTick();l._syncActivedCell(),i.args=null,i.row=null,i.column=null,l.updateFooter(),l.emitEvent("edit-closed",{row:s,rowIndex:l.getRowIndex(s),$rowIndex:l.getVMRowIndex(s),column:n,columnIndex:l.getColumnIndex(n),$columnIndex:l.getVMColumnIndex(n)},e)}return r.row=null,r.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&l.clearValidate?l.clearValidate():l.$nextTick().then(()=>{if(o&&d.area&&l.handleRecalculateCellAreas)return l.handleRecalculateCellAreas()})},_getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},_getEditRecord(){var{$el:e,editStore:t,afterFullData:l}=this,t=t.actived,{args:t,row:r}=t;return t&&-1<this.findRowIndexOf(l,r)&&e.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},t):null},_isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){return this.editStore.actived.row===e},handleFocus(r){var i=this.editOpts,{row:o,column:s,cell:n}=r,a=s.editRender;if((0,_utils.isEnableConf)(a)){var d=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;i.autoFocus&&(!e&&d&&(e=d.tableAutoFocus||d.tableAutofocus||d.autoFocus||d.autofocus),!t&&d&&(t=d.tableAutoSelect||d.autoSelect||d.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((a=l.createTextRange()).collapse(!1),a.select()):i.autoPos&&!s.fixed&&this.scrollToRow(o,s)}},_setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t){let l=_xeUtils.default.find(this.visibleColumn,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),this.setEditCell(e,l)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(t,e){var l=this.editConfig;let r=_xeUtils.default.isString(e)?this.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?this.scrollToRow(t,!0).then(()=>{var e=this.getCellElement(t,r);e&&(this.handleEdit({row:t,rowIndex:this.getRowIndex(t),column:r,columnIndex:this.getColumnIndex(r),cell:e,$table:this}),this.lastCallTime=Date.now())}):this.$nextTick()},_setSelectCell(e,t){var{tableData:l,editOpts:r,visibleColumn:i}=this,t=_xeUtils.default.isString(t)?this.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=this.findRowIndexOf(l,e))&&(l=this.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:i.indexOf(t),cell:l},this.handleSelected(e,{})),this.$nextTick()},handleSelected(e,t){let{mouseConfig:l,mouseOpts:r,editOpts:i,editStore:o}=this,{actived:s,selected:n}=o,{row:a,column:d}=e,c=l&&r.selected;return!c||n.row===a&&n.column===d||(s.row!==a||"cell"===i.mode&&s.column!==d)&&(this.handleClearEdit(t),this.clearSelected(t),this.clearCellAreas(t),this.clearCopyCellArea(t),n.args=e,n.row=a,n.column=d,c&&this.addCellSelectedClass(),this.focus(),t)&&this.emitEvent("cell-selected",e,t),this.$nextTick()},_getSelectedCell(){var{args:e,column:t}=this.editStore.selected;return e&&t?Object.assign({},e):null},_clearSelected(){var e=this.editStore.selected;return e.row=null,e.column=null,this.reColTitleSdCls(),removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,getI18n}=_ui.VxeUI;function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,i))}function insertTreeRow(n,e,t){let{tableFullTreeData:d,afterFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:c,treeOpts:l}=n,{rowField:u,parentField:h,mapChildrenField:g}=l,f=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),i=t?_xeUtils.default.findTree(d,e=>t===e[u],{children:g}):null;if(i){var i=i.item,o=c[(0,_util.getRowid)(n,i)],o=o?o.level:0;let e=i[f],t=i[g];_xeUtils.default.isArray(e)||(e=i[f]=[]),_xeUtils.default.isArray(t)||(t=i[f]=[]),e[w](l),t[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:i,level:o+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,c[r]=i}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),a[w](l),d[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:d,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,c[r]=o}})}function handleInsertRowAt(a,t,l,s){let i=a.treeConfig;var{mergeList:e,editStore:r}=a;let{tableFullTreeData:c,afterFullData:o,tableFullData:n,fullDataRowIdData:u,fullAllDataRowIdData:h}=a,g=a.computeTreeOpts,{transform:d,rowField:f,mapChildrenField:w}=g,m=g.children||g.childrenField,v=(_xeUtils.default.isArray(t)||(t=[t]),a.defineField(t.map(e=>Object.assign(i&&d?{[w]:[],[m]:[]}:{},e))));if(_xeUtils.default.eqNull(l))i&&d?insertTreeRow(a,v,!1):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,h[t]=l,o.unshift(e),n.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+v.length)}));else if(-1===l)i&&d?insertTreeRow(a,v,!0):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,h[t]=l,o.push(e),n.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>o.length&&(e.rowspan=l+v.length)}));else if(i&&d){let d=_xeUtils.default.findTree(c,e=>l[f]===e[f],{children:w});if(d){let i=d.parent,o=i?i[w]:c;t=h[(0,_util.getRowid)(a,i)];let n=t?t.level:0;if(v.forEach((e,t)=>{var l=(0,_util.getRowid)(a,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&i&&e[g.parentField]!==i[f]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+i[f]]),i&&(e[g.parentField]=i[f]);let r=d.index+t;s&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:i,level:n+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,h[l]=t}),i){t=_xeUtils.default.findTree(c,e=>l[f]===e[f],{children:m});if(t){var p=t.items;let e=t.index;s&&(e+=1),p.splice(e,0,...v)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,v,!0)}else{if(i)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<o.length&&(r=l):r=a.findRowIndexOf(o,l),-1===(r=s?Math.min(o.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));o.splice(r,0,...v);t=a.findRowIndexOf(n,l);-1<t?n.splice(t+(s?1:0),0,...v):n.push(...v),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+v.length:t+l>r&&(e.rowspan=l+v.length)})}let x=r.insertMaps;return v.forEach(e=>{var t=(0,_util.getRowid)(a,e);x[t]=e}),a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(i&&d),i&&d||a.updateAfterDataIndex(),a.updateFooter(),a.checkSelectionStatus(),a.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate())).then(()=>({row:v.length?v[v.length-1]:null,rows:v}))}function handleInsertChildRowAt(e,t,l,r,i){var o=e.treeConfig;let{transform:n,rowField:d,parentField:a}=e.computeTreeOpts;return o&&n?handleInsertRowAt(e,(t=_xeUtils.default.isArray(t)?t:[t]).map(e=>Object.assign({},e,{[a]:l[d]})),r,i):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))}function handleClearEdit(e,t,l){let r=e.mouseConfig;var i=e.editStore,{actived:i,focused:o}=i,{row:n,column:d}=i,a=e.computeValidOpts;let s=e.computeMouseOpts;if(n||d){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,n))return e.$nextTick();syncActivedCell(e),i.args=null,i.row=null,i.column=null,e.updateFooter(),e.dispatchEvent("edit-closed",{row:n,rowIndex:e.getRowIndex(n),$rowIndex:e.getVMRowIndex(n),column:d,columnIndex:e.getColumnIndex(d),$columnIndex:e.getVMColumnIndex(d)},t||null)}return o.row=null,o.column=null,a.autoClear&&("full"!==a.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>{if(r&&s.area&&e.handleRecalculateCellAreas)return e.handleRecalculateCellAreas()})}function handleEditActive(l,r,i,o){var{editConfig:e,mouseConfig:n}=l,{editStore:d,tableColumn:a}=l,s=l.computeEditOpts,c=s.mode,{actived:d,focused:t}=d;let{row:u,column:h}=r;var g=h.editRender,f=r.cell||l.getCellElement(u,h),w=s.beforeEditMethod||s.activeMethod;if((r.cell=f)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(g)&&!l.isPendingByRow(u)){if(d.row!==u||"cell"===c&&d.column!==h){let t="edit-disabled";if(!w||w(Object.assign(Object.assign({},r),{$table:l,$grid:l.xegrid}))){n&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),d.column&&handleClearEdit(l,i),t="edit-activated",h.renderHeight=f.offsetHeight,d.args=r,d.row=u,d.column=h,"row"===c?a.forEach(e=>getEditColumnModel(u,e)):getEditColumnModel(u,h);let e=s.afterEditMethod;l.$nextTick(()=>{o&&l.handleFocus(r,i),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:l.xegrid}))})}l.dispatchEvent(t,{row:u,rowIndex:l.getRowIndex(u),$rowIndex:l.getVMRowIndex(u),column:h,columnIndex:l.getColumnIndex(h),$columnIndex:l.getVMColumnIndex(h)},i),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:u,rowIndex:l.getRowIndex(u),$rowIndex:l.getVMRowIndex(u),column:h,columnIndex:l.getColumnIndex(h),$columnIndex:l.getVMColumnIndex(h)},i)}else{e=d.column;n&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),e!==h&&(g=e.model,g.update&&(0,_util.setCellValue)(u,e,g.value),l.clearValidate)&&l.clearValidate(u,h),h.renderHeight=f.offsetHeight,d.args=r,d.column=h,o&&setTimeout(()=>{l.handleFocus(r,i)})}t.column=null,t.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let i=t;var o=t.editConfig;let n=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&n&&(0,_utils.isEnableConf)(o)&&(0,_utils.isEnableConf)(n.editRender)?Promise.resolve(r?t.scrollToRow(l,n):null).then(()=>{var e=t.getCellElement(l,n);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:n,columnIndex:t.getColumnIndex(n),cell:e,$table:t},null,!1),i._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let l=this;var t=l,r=l,i=l,t=t.treeConfig;let{mergeList:o,editStore:n,selectCheckboxMaps:d}=r,{tableFullTreeData:a,afterFullData:s,tableFullData:c}=i;var i=l.computeCheckboxOpts,u=l.computeTreeOpts;let{transform:h,mapChildrenField:g}=u,f=u.children||u.childrenField,{actived:w,removeMaps:m,insertMaps:v}=n;u=i.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.forEach(e=>{var t;l.isInsertByRow(e)||(t=(0,_util.getRowid)(l,e),m[t]=e)}),!u){let t=Object.assign({},d);e.forEach(e=>{e=(0,_util.getRowid)(this,e);t[e]&&delete t[e]}),this.selectCheckboxMaps=t}return c===e?(e=p=c.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&h?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(this,e),{children:g}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(this,e),{children:f})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),p.push(t[0]));let r=this.findRowIndexOf(s,e);-1<r&&(o.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),w.row&&-1<l.findRowIndexOf(e,w.row)&&l.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(l,e);v[e]&&delete v[e]}),l.updateFooter(),l.cacheRowMap(!1),l.handleTableData(t&&h),t&&h||l.updateAfterDataIndex(),l.checkSelectionStatus(),r.scrollYLoad&&l.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},_removeCheckboxRow(){return this.remove(this.getCheckboxRecords()).then(e=>(this.clearCheckboxRow(),e))},_removeRadioRow(){var e=this.getRadioRecord();return this.remove(e||[]).then(e=>(this.clearRadioRow(),e))},_removeCurrentRow(){var e=this.getCurrentRecord();return this.remove(e||[]).then(e=>(this.clearCurrentRow(),e))},_getRecordset(){var e=this.getRemoveRecords(),t=this.getPendingRecords();let l=e.concat(t);var r=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},_getInsertRecords(){var e=this.editStore;let l=this.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){var e,t;let{keepSource:l,tableFullData:r,isUpdateByRow:i,treeConfig:o,treeOpts:n,editStore:d}=this;return l?(e=d.actived,{row:e,column:t}=e,(e||t)&&syncActivedCell(this),o?_xeUtils.default.filterTree(r,e=>i(e),n):r.filter(e=>i(e))):[]},handleEdit(e,t){return handleEditActive(this,e,t,!0)},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},_getEditRecord(){var{$el:e,editStore:t,afterFullData:l}=this,t=t.actived,{args:t,row:r}=t;return t&&-1<this.findRowIndexOf(l,r)&&e.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},t):null},_isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){return this.editStore.actived.row===e},handleFocus(r){var i=this.editOpts,{row:o,column:n,cell:d}=r,a=n.editRender;if((0,_utils.isEnableConf)(a)){var s=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;i.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?d.querySelector("input,textarea"):d.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((a=l.createTextRange()).collapse(!1),a.select()):i.autoPos&&!n.fixed&&this.scrollToRow(o,n)}},_setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t){let l=_xeUtils.default.find(this.visibleColumn,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,l,!1)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t){return handleEditCell(this,e,t,!0)},_setSelectCell(e,t){var{tableData:l,editOpts:r,visibleColumn:i}=this,t=_xeUtils.default.isString(t)?this.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=this.findRowIndexOf(l,e))&&(l=this.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:i.indexOf(t),cell:l},this.handleSelected(e,{})),this.$nextTick()},handleSelected(e,t){let l=this,{mouseConfig:r,mouseOpts:i,editOpts:o,editStore:n}=this,{actived:d,selected:a}=n,{row:s,column:c}=e,u=r&&i.selected;return!u||a.row===s&&a.column===c||(d.row!==s||"cell"===o.mode&&d.column!==c)&&(handleClearEdit(l,t),this.clearSelected(t),this.clearCellAreas(t),this.clearCopyCellArea(t),a.args=e,a.row=s,a.column=c,u&&this.addCellSelectedClass(),this.focus(),t)&&this.emitEvent("cell-selected",e,t),this.$nextTick()},_getSelectedCell(){var{args:e,column:t}=this.editStore.selected;return e&&t?Object.assign({},e):null},_clearSelected(){var e=this.editStore.selected;return e.row=null,e.column=null,this.reColTitleSdCls(),removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};