vxe-table 4.1.17-beta.2 → 4.1.18-beta.2

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 (49) hide show
  1. package/README.en.md +3 -1
  2. package/README.md +3 -1
  3. package/README.zh-TW.md +3 -1
  4. package/es/edit/src/hook.js +20 -10
  5. package/es/export/src/hook.js +16 -9
  6. package/es/footer/src/footer.js +12 -10
  7. package/es/grid/src/grid.js +3 -2
  8. package/es/header/src/header.js +15 -13
  9. package/es/input/src/input.js +11 -21
  10. package/es/modal/src/modal.js +1 -1
  11. package/es/table/src/columnInfo.js +1 -0
  12. package/es/table/src/emits.js +3 -1
  13. package/es/table/src/table.js +9 -8
  14. package/lib/edit/src/hook.js +30 -12
  15. package/lib/edit/src/hook.min.js +1 -1
  16. package/lib/export/src/hook.js +15 -10
  17. package/lib/export/src/hook.min.js +1 -1
  18. package/lib/footer/src/footer.js +11 -9
  19. package/lib/footer/src/footer.min.js +1 -1
  20. package/lib/grid/src/grid.js +3 -2
  21. package/lib/grid/src/grid.min.js +1 -1
  22. package/lib/header/src/header.js +14 -12
  23. package/lib/header/src/header.min.js +1 -1
  24. package/lib/index.umd.js +115 -78
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/input/src/input.js +15 -21
  27. package/lib/input/src/input.min.js +1 -1
  28. package/lib/modal/src/modal.js +1 -2
  29. package/lib/modal/src/modal.min.js +1 -1
  30. package/lib/table/src/columnInfo.js +1 -0
  31. package/lib/table/src/columnInfo.min.js +1 -1
  32. package/lib/table/src/emits.js +1 -1
  33. package/lib/table/src/emits.min.js +1 -1
  34. package/lib/table/src/table.js +21 -8
  35. package/lib/table/src/table.min.js +1 -1
  36. package/package.json +2 -2
  37. package/packages/edit/src/hook.ts +19 -10
  38. package/packages/export/src/hook.ts +26 -19
  39. package/packages/footer/src/footer.ts +12 -10
  40. package/packages/grid/src/grid.ts +3 -2
  41. package/packages/header/src/header.ts +15 -13
  42. package/packages/input/src/input.ts +12 -18
  43. package/packages/modal/src/modal.ts +1 -1
  44. package/packages/table/src/columnInfo.ts +1 -0
  45. package/packages/table/src/emits.ts +3 -1
  46. package/packages/table/src/table.ts +10 -8
  47. package/types/grid.d.ts +1 -0
  48. package/types/plugins/pro.d.ts +143 -0
  49. package/types/table.d.ts +14 -2
package/README.en.md CHANGED
@@ -103,13 +103,15 @@ createApp(App).use(VXETable).mount('#app')
103
103
 
104
104
  ### CDN
105
105
 
106
+ It is not recommended to use the public CDN address for production, because the connection may fail at any time, causing the project to hang up;
107
+ Remember to lock the version number by using CDN to avoid being affected by incompatible updates.
108
+
106
109
  ```HTML
107
110
  <!-- Style -->
108
111
  <link rel="stylesheet" href="https://unpkg.com/vxe-table@next/lib/style.css">
109
112
  <!-- Script -->
110
113
  <script src="https://unpkg.com/xe-utils"></script>
111
114
  <script src="https://unpkg.com/vxe-table@next"></script>
112
- <!-- It is recommended that users introduced by CDN lock the version on the link address to avoid the impact of incompatible updates -->
113
115
  ```
114
116
 
115
117
  ## Example
package/README.md CHANGED
@@ -108,13 +108,15 @@ createApp(App).use(VXETable).mount('#app')
108
108
 
109
109
  ### CDN
110
110
 
111
+ 不建议将公共的 CDN 地址用于生产,因为该连接随时都可能会失效,导致项目挂掉;
112
+ 使用 CDN 方式记得锁定版本号,避免受到非兼容性更新的影响
113
+
111
114
  ```HTML
112
115
  <!-- 引入样式 -->
113
116
  <link rel="stylesheet" href="https://unpkg.com/vxe-table@next/lib/style.css">
114
117
  <!-- 引入脚本 -->
115
118
  <script src="https://unpkg.com/xe-utils"></script>
116
119
  <script src="https://unpkg.com/vxe-table@next"></script>
117
- <!-- 建议使用 CDN 方式引入的用户在链接地址上锁定版本,避免受到非兼容性更新的影响 -->
118
120
  ```
119
121
 
120
122
  ## 示例
package/README.zh-TW.md CHANGED
@@ -106,13 +106,15 @@ createApp(App).use(VXETable).mount('#app')
106
106
 
107
107
  ### CDN
108
108
 
109
+ 不建議將公共的CDN地址用於生產,因為該連接隨時都可能會失效,導致項目掛掉;
110
+ 使用CDN管道記得鎖定版本號,避免受到非相容性更新的影響
111
+
109
112
  ```HTML
110
113
  <!-- 引入樣式 -->
111
114
  <link rel="stylesheet" href="https://unpkg.com/vxe-table@next/lib/style.css">
112
115
  <!-- 引入腳本 -->
113
116
  <script src="https://unpkg.com/xe-utils"></script>
114
117
  <script src="https://unpkg.com/vxe-table@next"></script>
115
- <!-- 建議使用 CDN 管道引入的用戶在連結位址上鎖定版本,避免受到非相容性更新的影響 -->
116
118
  ```
117
119
 
118
120
  ## 示例
@@ -69,18 +69,19 @@ var editHook = {
69
69
  function insertTreeRow(newRecords, isAppend) {
70
70
  var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
71
71
  var treeOpts = computeTreeOpts.value;
72
+ var rowField = treeOpts.rowField, parentField = treeOpts.parentField, children = treeOpts.children, mapChildren = treeOpts.mapChildren;
72
73
  var funcName = isAppend ? 'push' : 'unshift';
73
74
  newRecords.forEach(function (item) {
74
- var parentRowId = item[treeOpts.parentField];
75
+ var parentRowId = item[parentField];
75
76
  var rowid = getRowid($xetable, item);
76
- var matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, function (item) { return parentRowId === item[treeOpts.rowField]; }, treeOpts) : null;
77
+ var matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, function (item) { return parentRowId === item[rowField]; }, { children: mapChildren }) : null;
77
78
  if (matchObj) {
78
79
  var parentRow = matchObj.item;
79
80
  var parentRest = fullAllDataRowIdData[getRowid($xetable, parentRow)];
80
81
  var parentLevel = parentRest ? parentRest.level : 0;
81
- var parentChilds = parentRow[treeOpts.children];
82
+ var parentChilds = parentRow[children];
82
83
  if (!XEUtils.isArray(parentChilds)) {
83
- parentChilds = parentRow[treeOpts.children] = [];
84
+ parentChilds = parentRow[children] = [];
84
85
  }
85
86
  parentChilds[funcName](item);
86
87
  var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parent, level: parentLevel + 1 };
@@ -124,7 +125,7 @@ var editHook = {
124
125
  var mergeList = reactData.mergeList, editStore = reactData.editStore;
125
126
  var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
126
127
  var treeOpts = computeTreeOpts.value;
127
- var transform = treeOpts.transform;
128
+ var transform = treeOpts.transform, rowField = treeOpts.rowField, mapChildren = treeOpts.mapChildren;
128
129
  if (!XEUtils.isArray(records)) {
129
130
  records = [records];
130
131
  }
@@ -167,7 +168,7 @@ var editHook = {
167
168
  else {
168
169
  // 如果为虚拟树
169
170
  if (treeConfig && transform) {
170
- var matchObj_1 = XEUtils.findTree(tableFullTreeData, function (item) { return row[treeOpts.rowField] === item[treeOpts.rowField]; }, treeOpts);
171
+ var matchObj_1 = XEUtils.findTree(tableFullTreeData, function (item) { return row[rowField] === item[rowField]; }, { children: mapChildren });
171
172
  if (matchObj_1) {
172
173
  var parentRow_1 = matchObj_1.parent;
173
174
  var parentChilds_1 = matchObj_1.items;
@@ -177,13 +178,13 @@ var editHook = {
177
178
  var rowid = getRowid($xetable, item);
178
179
  if (process.env.NODE_ENV === 'development') {
179
180
  if (item[treeOpts.parentField]) {
180
- if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[treeOpts.rowField]) {
181
- errLog('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[treeOpts.rowField]]);
181
+ if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[rowField]) {
182
+ errLog('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[rowField]]);
182
183
  }
183
184
  }
184
185
  }
185
186
  if (parentRow_1) {
186
- item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
187
+ item[treeOpts.parentField] = parentRow_1[rowField];
187
188
  }
188
189
  parentChilds_1.splice(matchObj_1.index + i, 0, item);
189
190
  var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds_1, parent: parentRow_1, level: parentLevel_1 + 1 };
@@ -202,7 +203,16 @@ var editHook = {
202
203
  if (treeConfig) {
203
204
  throw new Error(getLog('vxe.error.noTree', ['insert']));
204
205
  }
205
- var afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
206
+ var afIndex_1 = -1;
207
+ // 如果是可视索引
208
+ if (XEUtils.isNumber(row)) {
209
+ if (row < afterFullData.length) {
210
+ afIndex_1 = row;
211
+ }
212
+ }
213
+ else {
214
+ afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
215
+ }
206
216
  if (afIndex_1 === -1) {
207
217
  throw new Error(errLog('vxe.error.unableInsert'));
208
218
  }
@@ -265,11 +265,18 @@ var tableExportHook = {
265
265
  var treeOpts = computeTreeOpts.value;
266
266
  return row[treeOpts.children] && row[treeOpts.children].length;
267
267
  };
268
- var getSeq = function (row, rowIndex, column, columnIndex) {
268
+ var getSeq = function (row, $rowIndex, column, $columnIndex) {
269
269
  var seqOpts = computeSeqOpts.value;
270
270
  var seqMethod = seqOpts.seqMethod || column.seqMethod;
271
271
  if (seqMethod) {
272
- return seqMethod({ row: row, rowIndex: rowIndex, column: column, columnIndex: columnIndex });
272
+ return seqMethod({
273
+ row: row,
274
+ rowIndex: $xetable.getRowIndex(row),
275
+ $rowIndex: $rowIndex,
276
+ column: column,
277
+ columnIndex: $xetable.getColumnIndex(column),
278
+ $columnIndex: $columnIndex
279
+ });
273
280
  }
274
281
  return $xetable.getRowSeq(row);
275
282
  };
@@ -277,7 +284,7 @@ var tableExportHook = {
277
284
  return XEUtils.isBoolean(cellValue) ? (cellValue ? 'TRUE' : 'FALSE') : cellValue;
278
285
  };
279
286
  var getLabelData = function (opts, columns, datas) {
280
- var isAllExpand = opts.isAllExpand;
287
+ var isAllExpand = opts.isAllExpand, mode = opts.mode;
281
288
  var treeConfig = props.treeConfig;
282
289
  var radioOpts = computeRadioOpts.value;
283
290
  var checkboxOpts = computeCheckboxOpts.value;
@@ -289,7 +296,7 @@ var tableExportHook = {
289
296
  // 如果是树表格只允许导出数据源
290
297
  var rest_1 = [];
291
298
  var expandMaps_1 = new Map();
292
- XEUtils.eachTree(datas, function (item, rowIndex, items, path, parent, nodes) {
299
+ XEUtils.eachTree(datas, function (item, $rowIndex, items, path, parent, nodes) {
293
300
  var row = item._row || item;
294
301
  var parentRow = parent && parent._row ? parent._row : parent;
295
302
  if ((isAllExpand || !parentRow || (expandMaps_1.has(parentRow) && $xetable.isTreeExpandByRow(parentRow)))) {
@@ -300,7 +307,7 @@ var tableExportHook = {
300
307
  _hasChild: hasRowChild,
301
308
  _expand: hasRowChild && $xetable.isTreeExpandByRow(row)
302
309
  };
303
- columns.forEach(function (column, columnIndex) {
310
+ columns.forEach(function (column, $columnIndex) {
304
311
  var cellValue = '';
305
312
  var renderOpts = column.editRender || column.cellRender;
306
313
  var exportLabelMethod = column.exportMethod;
@@ -316,7 +323,7 @@ var tableExportHook = {
316
323
  else {
317
324
  switch (column.type) {
318
325
  case 'seq':
319
- cellValue = getSeq(row, rowIndex, column, columnIndex);
326
+ cellValue = mode === 'all' ? path.map(function (num, i) { return i % 2 === 0 ? (Number(num) + 1) : '.'; }).join('') : getSeq(row, $rowIndex, column, $columnIndex);
320
327
  break;
321
328
  case 'checkbox':
322
329
  cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row));
@@ -355,11 +362,11 @@ var tableExportHook = {
355
362
  }, treeOpts);
356
363
  return rest_1;
357
364
  }
358
- return datas.map(function (row, rowIndex) {
365
+ return datas.map(function (row, $rowIndex) {
359
366
  var item = {
360
367
  _row: row
361
368
  };
362
- columns.forEach(function (column, columnIndex) {
369
+ columns.forEach(function (column, $columnIndex) {
363
370
  var cellValue = '';
364
371
  var renderOpts = column.editRender || column.cellRender;
365
372
  var exportLabelMethod = column.exportMethod;
@@ -375,7 +382,7 @@ var tableExportHook = {
375
382
  else {
376
383
  switch (column.type) {
377
384
  case 'seq':
378
- cellValue = getSeq(row, rowIndex, column, columnIndex);
385
+ cellValue = mode === 'all' ? $rowIndex + 1 : getSeq(row, $rowIndex, column, $columnIndex);
379
386
  break;
380
387
  case 'checkbox':
381
388
  cellValue = toBooleanValue($xetable.isCheckedByCheckboxRow(row));
@@ -9,7 +9,7 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { createCommentVNode, defineComponent, h, ref, inject, nextTick } from 'vue';
12
+ import { createCommentVNode, defineComponent, h, ref, inject, nextTick, onMounted } from 'vue';
13
13
  import XEUtils from 'xe-utils';
14
14
  import { getPropClass } from '../../table/src/util';
15
15
  import { updateCellTitle } from '../../tools/dom';
@@ -78,15 +78,17 @@ export default defineComponent({
78
78
  }
79
79
  $xetable.dispatchEvent('scroll', { type: renderType, fixed: fixedType, scrollTop: bodyElem.scrollTop, scrollLeft: scrollLeft, isX: isX, isY: false }, evnt);
80
80
  };
81
- nextTick(function () {
82
- var fixedType = props.fixedType;
83
- var elemStore = tableInternalData.elemStore;
84
- var prefix = (fixedType || 'main') + "-footer-";
85
- elemStore[prefix + "wrapper"] = refElem.value;
86
- elemStore[prefix + "table"] = refFooterTable.value;
87
- elemStore[prefix + "colgroup"] = refFooterColgroup.value;
88
- elemStore[prefix + "list"] = refFooterTFoot.value;
89
- elemStore[prefix + "xSpace"] = refFooterXSpace.value;
81
+ onMounted(function () {
82
+ nextTick(function () {
83
+ var fixedType = props.fixedType;
84
+ var elemStore = tableInternalData.elemStore;
85
+ var prefix = (fixedType || 'main') + "-footer-";
86
+ elemStore[prefix + "wrapper"] = refElem.value;
87
+ elemStore[prefix + "table"] = refFooterTable.value;
88
+ elemStore[prefix + "colgroup"] = refFooterColgroup.value;
89
+ elemStore[prefix + "list"] = refFooterTFoot.value;
90
+ elemStore[prefix + "xSpace"] = refFooterXSpace.value;
91
+ });
90
92
  });
91
93
  var renderVN = function () {
92
94
  var fixedType = props.fixedType, fixedColumn = props.fixedColumn, tableColumn = props.tableColumn, footerTableData = props.footerTableData;
@@ -25,7 +25,7 @@ import tableComponentEmits from '../../table/src/emits';
25
25
  import { useSize } from '../../hooks/size';
26
26
  import { GlobalEvent, hasEventKey, EVENT_KEYS } from '../../tools/event';
27
27
  var tableComponentPropKeys = Object.keys(tableComponentProps);
28
- var tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'createData', 'createRow', 'revertData', 'clearData', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getData', 'getCheckboxRecords', 'getRowById', 'getRowid', 'getTableData', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'isCheckedByCheckboxRow', 'isIndeterminateByCheckboxRow', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'setRadioRow', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'sort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'focus', 'blur', 'connect'];
28
+ var tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'createData', 'createRow', 'revertData', 'clearData', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getData', 'getCheckboxRecords', 'getParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'isCheckedByCheckboxRow', 'isIndeterminateByCheckboxRow', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'setRadioRow', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'sort', 'clearSort', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'openTooltip', 'focus', 'blur', 'connect'];
29
29
  var gridComponentEmits = __spreadArray(__spreadArray([], tableComponentEmits), [
30
30
  'page-change',
31
31
  'form-submit',
@@ -689,6 +689,7 @@ export default defineComponent({
689
689
  }
690
690
  sortList = defaultSort.map(function (item) {
691
691
  return {
692
+ field: item.field,
692
693
  property: item.field,
693
694
  order: item.order
694
695
  };
@@ -1059,7 +1060,7 @@ export default defineComponent({
1059
1060
  var proxyOpts = computeProxyOpts.value;
1060
1061
  var formOpts = computeFormOpts.value;
1061
1062
  if (proxyConfig && (data || (proxyOpts.form && formOpts.data))) {
1062
- errLog('errConflicts', ['grid.data', 'grid.proxy-config']);
1063
+ errLog('vxe.error.errConflicts', ['grid.data', 'grid.proxy-config']);
1063
1064
  }
1064
1065
  if (columns && columns.length) {
1065
1066
  $xegrid.loadColumn(columns);
@@ -9,7 +9,7 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { createCommentVNode, defineComponent, h, ref, inject, nextTick, watch } from 'vue';
12
+ import { createCommentVNode, defineComponent, h, ref, inject, nextTick, watch, onMounted } from 'vue';
13
13
  import XEUtils from 'xe-utils';
14
14
  import { convertToRows } from './util';
15
15
  import { getColMinWidth } from '../../table/src/util';
@@ -130,18 +130,20 @@ export default defineComponent({
130
130
  }
131
131
  };
132
132
  watch(function () { return props.tableColumn; }, uploadColumn);
133
- nextTick(function () {
134
- var fixedType = props.fixedType;
135
- var internalData = $xetable.internalData;
136
- var elemStore = internalData.elemStore;
137
- var prefix = (fixedType || 'main') + "-header-";
138
- elemStore[prefix + "wrapper"] = refElem.value;
139
- elemStore[prefix + "table"] = refHeaderTable.value;
140
- elemStore[prefix + "colgroup"] = refHeaderColgroup.value;
141
- elemStore[prefix + "list"] = refHeaderTHead.value;
142
- elemStore[prefix + "xSpace"] = refHeaderXSpace.value;
143
- elemStore[prefix + "repair"] = refHeaderBorderRepair.value;
144
- uploadColumn();
133
+ onMounted(function () {
134
+ nextTick(function () {
135
+ var fixedType = props.fixedType;
136
+ var internalData = $xetable.internalData;
137
+ var elemStore = internalData.elemStore;
138
+ var prefix = (fixedType || 'main') + "-header-";
139
+ elemStore[prefix + "wrapper"] = refElem.value;
140
+ elemStore[prefix + "table"] = refHeaderTable.value;
141
+ elemStore[prefix + "colgroup"] = refHeaderColgroup.value;
142
+ elemStore[prefix + "list"] = refHeaderTHead.value;
143
+ elemStore[prefix + "xSpace"] = refHeaderXSpace.value;
144
+ elemStore[prefix + "repair"] = refHeaderBorderRepair.value;
145
+ uploadColumn();
146
+ });
145
147
  });
146
148
  var renderVN = function () {
147
149
  var fixedType = props.fixedType, fixedColumn = props.fixedColumn, tableColumn = props.tableColumn;
@@ -137,6 +137,13 @@ export default defineComponent({
137
137
  getRefMaps: function () { return refMaps; }
138
138
  };
139
139
  var inputMethods = {};
140
+ var parseDate = function (value, format) {
141
+ var type = props.type;
142
+ if (type === 'time') {
143
+ return toStringTimeDate(value);
144
+ }
145
+ return XEUtils.toStringDate(value, format);
146
+ };
140
147
  var computeIsDateTimeType = computed(function () {
141
148
  var type = props.type;
142
149
  return type === 'time' || type === 'datetime';
@@ -187,18 +194,12 @@ export default defineComponent({
187
194
  return type === 'time' ? 'HH:mm:ss' : (props.valueFormat || (type === 'datetime' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'));
188
195
  });
189
196
  var computeDateValue = computed(function () {
190
- var modelValue = props.modelValue, type = props.type;
197
+ var modelValue = props.modelValue;
191
198
  var isDatePickerType = computeIsDatePickerType.value;
192
199
  var dateValueFormat = computeDateValueFormat.value;
193
200
  var val = null;
194
201
  if (modelValue && isDatePickerType) {
195
- var date = void 0;
196
- if (type === 'time') {
197
- date = toStringTimeDate(modelValue);
198
- }
199
- else {
200
- date = XEUtils.toStringDate(modelValue, dateValueFormat);
201
- }
202
+ var date = parseDate(modelValue, dateValueFormat);
202
203
  if (XEUtils.isValidDate(date)) {
203
204
  val = date;
204
205
  }
@@ -618,12 +619,7 @@ export default defineComponent({
618
619
  var dValue = null;
619
620
  var dLabel = '';
620
621
  if (value) {
621
- if (type === 'time') {
622
- dValue = toStringTimeDate(value);
623
- }
624
- else {
625
- dValue = XEUtils.toStringDate(value, valueFormat);
626
- }
622
+ dValue = parseDate(value, valueFormat);
627
623
  }
628
624
  if (XEUtils.isValidDate(dValue)) {
629
625
  dLabel = XEUtils.toDateString(dValue, dateLabelFormat, { firstDay: firstDayOfWeek });
@@ -742,13 +738,7 @@ export default defineComponent({
742
738
  }
743
739
  else if (isDatePickerType) {
744
740
  if (inputValue) {
745
- var inpDateVal = void 0;
746
- if (type === 'time') {
747
- inpDateVal = toStringTimeDate(inputValue);
748
- }
749
- else {
750
- inpDateVal = XEUtils.toStringDate(inputValue, dateLabelFormat);
751
- }
741
+ var inpDateVal = parseDate(inputValue, dateLabelFormat);
752
742
  if (XEUtils.isValidDate(inpDateVal)) {
753
743
  if (type === 'time') {
754
744
  inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat);
@@ -285,7 +285,7 @@ export default defineComponent({
285
285
  var maximize = function () {
286
286
  return nextTick().then(function () {
287
287
  if (!reactData.zoomLocat) {
288
- var marginSize = XEUtils.toNumber(props.marginSize);
288
+ var marginSize = Math.max(0, XEUtils.toNumber(props.marginSize));
289
289
  var boxElem = getBox();
290
290
  var _a = getDomNode(), visibleHeight = _a.visibleHeight, visibleWidth = _a.visibleWidth;
291
291
  reactData.zoomLocat = {
@@ -52,6 +52,7 @@ var ColumnInfo = /** @class */ (function () {
52
52
  // 基本属性
53
53
  type: _vm.type,
54
54
  property: _vm.field,
55
+ field: _vm.field,
55
56
  title: _vm.title,
56
57
  width: _vm.width,
57
58
  minWidth: _vm.minWidth,
@@ -54,5 +54,7 @@ export default [
54
54
  'cell-area-selection-start',
55
55
  'cell-area-selection-end',
56
56
  'cell-area-extension-start',
57
- 'cell-area-extension-end'
57
+ 'cell-area-extension-end',
58
+ 'cell-area-arrows-start',
59
+ 'cell-area-arrows-end'
58
60
  ];
@@ -1169,7 +1169,7 @@ export default defineComponent({
1169
1169
  var filterColumns_1 = [];
1170
1170
  var orderColumns_1 = [];
1171
1171
  tableFullColumn.forEach(function (column) {
1172
- var sortable = column.sortable, order = column.order, filters = column.filters;
1172
+ var property = column.property, sortable = column.sortable, order = column.order, filters = column.filters;
1173
1173
  if (!allRemoteFilter && filters && filters.length) {
1174
1174
  var valueList_1 = [];
1175
1175
  var itemList_1 = [];
@@ -1184,7 +1184,7 @@ export default defineComponent({
1184
1184
  }
1185
1185
  }
1186
1186
  if (!allRemoteSort && sortable && order) {
1187
- orderColumns_1.push({ column: column, property: column.property, order: order });
1187
+ orderColumns_1.push({ column: column, field: property, property: property, order: order });
1188
1188
  }
1189
1189
  });
1190
1190
  // 处理筛选
@@ -2741,15 +2741,16 @@ export default defineComponent({
2741
2741
  */
2742
2742
  getCheckboxRecords: function (isFull) {
2743
2743
  var treeConfig = props.treeConfig;
2744
- var tableFullData = internalData.tableFullData, afterFullData = internalData.afterFullData;
2744
+ var tableFullData = internalData.tableFullData, afterFullData = internalData.afterFullData, afterTreeFullData = internalData.afterTreeFullData, tableFullTreeData = internalData.tableFullTreeData;
2745
2745
  var treeOpts = computeTreeOpts.value;
2746
2746
  var checkboxOpts = computeCheckboxOpts.value;
2747
+ var transform = treeOpts.transform, children = treeOpts.children, mapChildren = treeOpts.mapChildren;
2747
2748
  var property = checkboxOpts.checkField;
2748
2749
  var rowList = [];
2749
- var currTableData = isFull ? tableFullData : afterFullData;
2750
+ var currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData);
2750
2751
  if (property) {
2751
2752
  if (treeConfig) {
2752
- rowList = XEUtils.filterTree(currTableData, function (row) { return XEUtils.get(row, property); }, treeOpts);
2753
+ rowList = XEUtils.filterTree(currTableData, function (row) { return XEUtils.get(row, property); }, { children: transform ? mapChildren : children });
2753
2754
  }
2754
2755
  else {
2755
2756
  rowList = currTableData.filter(function (row) { return XEUtils.get(row, property); });
@@ -2758,7 +2759,7 @@ export default defineComponent({
2758
2759
  else {
2759
2760
  var selection_1 = reactData.selection;
2760
2761
  if (treeConfig) {
2761
- rowList = XEUtils.filterTree(currTableData, function (row) { return $xetable.findRowIndexOf(selection_1, row) > -1; }, treeOpts);
2762
+ rowList = XEUtils.filterTree(currTableData, function (row) { return $xetable.findRowIndexOf(selection_1, row) > -1; }, { children: transform ? mapChildren : children });
2762
2763
  }
2763
2764
  else {
2764
2765
  rowList = currTableData.filter(function (row) { return $xetable.findRowIndexOf(selection_1, row) > -1; });
@@ -3414,9 +3415,9 @@ export default defineComponent({
3414
3415
  var sortList = [];
3415
3416
  var tableFullColumn = internalData.tableFullColumn;
3416
3417
  tableFullColumn.forEach(function (column) {
3417
- var order = column.order;
3418
+ var property = column.property, order = column.order;
3418
3419
  if (column.sortable && order) {
3419
- sortList.push({ column: column, property: column.property, order: order });
3420
+ sortList.push({ column: column, field: property, property: property, order: order });
3420
3421
  }
3421
3422
  });
3422
3423
  return sortList;
@@ -118,22 +118,28 @@ var editHook = {
118
118
  fullDataRowIdData = internalData.fullDataRowIdData,
119
119
  fullAllDataRowIdData = internalData.fullAllDataRowIdData;
120
120
  var treeOpts = computeTreeOpts.value;
121
+ var rowField = treeOpts.rowField,
122
+ parentField = treeOpts.parentField,
123
+ children = treeOpts.children,
124
+ mapChildren = treeOpts.mapChildren;
121
125
  var funcName = isAppend ? 'push' : 'unshift';
122
126
  newRecords.forEach(function (item) {
123
- var parentRowId = item[treeOpts.parentField];
127
+ var parentRowId = item[parentField];
124
128
  var rowid = (0, _util.getRowid)($xetable, item);
125
129
  var matchObj = parentRowId ? _xeUtils.default.findTree(tableFullTreeData, function (item) {
126
- return parentRowId === item[treeOpts.rowField];
127
- }, treeOpts) : null;
130
+ return parentRowId === item[rowField];
131
+ }, {
132
+ children: mapChildren
133
+ }) : null;
128
134
 
129
135
  if (matchObj) {
130
136
  var parentRow = matchObj.item;
131
137
  var parentRest = fullAllDataRowIdData[(0, _util.getRowid)($xetable, parentRow)];
132
138
  var parentLevel = parentRest ? parentRest.level : 0;
133
- var parentChilds = parentRow[treeOpts.children];
139
+ var parentChilds = parentRow[children];
134
140
 
135
141
  if (!_xeUtils.default.isArray(parentChilds)) {
136
- parentChilds = parentRow[treeOpts.children] = [];
142
+ parentChilds = parentRow[children] = [];
137
143
  }
138
144
 
139
145
  parentChilds[funcName](item);
@@ -206,7 +212,9 @@ var editHook = {
206
212
  fullDataRowIdData = internalData.fullDataRowIdData,
207
213
  fullAllDataRowIdData = internalData.fullAllDataRowIdData;
208
214
  var treeOpts = computeTreeOpts.value;
209
- var transform = treeOpts.transform;
215
+ var transform = treeOpts.transform,
216
+ rowField = treeOpts.rowField,
217
+ mapChildren = treeOpts.mapChildren;
210
218
 
211
219
  if (!_xeUtils.default.isArray(records)) {
212
220
  records = [records];
@@ -254,8 +262,10 @@ var editHook = {
254
262
  // 如果为虚拟树
255
263
  if (treeConfig && transform) {
256
264
  var matchObj_1 = _xeUtils.default.findTree(tableFullTreeData, function (item) {
257
- return row[treeOpts.rowField] === item[treeOpts.rowField];
258
- }, treeOpts);
265
+ return row[rowField] === item[rowField];
266
+ }, {
267
+ children: mapChildren
268
+ });
259
269
 
260
270
  if (matchObj_1) {
261
271
  var parentRow_1 = matchObj_1.parent;
@@ -267,14 +277,14 @@ var editHook = {
267
277
 
268
278
  if (process.env.NODE_ENV === 'development') {
269
279
  if (item[treeOpts.parentField]) {
270
- if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[treeOpts.rowField]) {
271
- (0, _utils.errLog)('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[treeOpts.rowField]]);
280
+ if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[rowField]) {
281
+ (0, _utils.errLog)('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[rowField]]);
272
282
  }
273
283
  }
274
284
  }
275
285
 
276
286
  if (parentRow_1) {
277
- item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
287
+ item[treeOpts.parentField] = parentRow_1[rowField];
278
288
  }
279
289
 
280
290
  parentChilds_1.splice(matchObj_1.index + i, 0, item);
@@ -304,7 +314,15 @@ var editHook = {
304
314
  throw new Error((0, _utils.getLog)('vxe.error.noTree', ['insert']));
305
315
  }
306
316
 
307
- var afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
317
+ var afIndex_1 = -1; // 如果是可视索引
318
+
319
+ if (_xeUtils.default.isNumber(row)) {
320
+ if (row < afterFullData.length) {
321
+ afIndex_1 = row;
322
+ }
323
+ } else {
324
+ afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
325
+ }
308
326
 
309
327
  if (afIndex_1 === -1) {
310
328
  throw new Error((0, _utils.errLog)('vxe.error.unableInsert'));
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(x){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var h=x.props,R=x.reactData,_=x.internalData,o=x.getRefMaps().refElem,e=x.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,w=e.computeCheckboxOpts,C=e.computeTreeOpts,g={},m={};function a(){var e=R.editStore,t=R.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function b(e,t){var a=_.tableFullTreeData,i=_.afterFullData,u=_.fullDataRowIdData,c=_.fullAllDataRowIdData,d=C.value,s=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[d.parentField],n=(0,_util.getRowid)(x,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d.rowField]},d):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(x,t)])?r.level:0,r=t[d.children],(r=!_xeUtils.default.isArray(r)?t[d.children]=[]:r)[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[s](e),a[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e})}return g={insert:function(e){return g.insertAt(e,null)},insertAt:function(e,t){var r=h.treeConfig,l=R.mergeList,n=R.editStore,o=_.tableFullTreeData,a=_.afterFullData,i=_.tableFullData,u=_.fullDataRowIdData,c=_.fullAllDataRowIdData,d=C.value,s=d.transform,f=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return x.defineField(Object.assign({},e))});if(t)if(-1===t)r&&s?b(f,!0):(a.push.apply(a,f),i.push.apply(i,f),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>a.length&&(e.rowspan=r+f.length)}));else if(r&&s){var v,p,w,g=_xeUtils.default.findTree(o,function(e){return t[d.rowField]===e[d.rowField]},d);g?(v=g.parent,p=g.items,o=c[(0,_util.getRowid)(x,v)],w=o?o.level:0,f.forEach(function(e,t){var r=(0,_util.getRowid)(x,e);"development"===process.env.NODE_ENV&&e[d.parentField]&&v&&e[d.parentField]!==v[d.rowField]&&(0,_utils.errLog)("vxe.error.errProp",[d.parentField+"="+e[d.parentField],d.parentField+"="+v[d.rowField]]),v&&(e[d.parentField]=v[d.rowField]),p.splice(g.index+t,0,e);e={row:e,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:p,parent:v,level:w+1};u[r]=e,c[r]=e})):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),b(f,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var m=x.findRowIndexOf(a,t);if(-1===m)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));a.splice.apply(a,__spreadArray([m,0],f)),i.splice.apply(i,__spreadArray([x.findRowIndexOf(i,t),0],f)),l.forEach(function(e){var t=e.row,r=e.rowspan;m<t?e.row=t+f.length:m<t+r&&(e.rowspan=r+f.length)})}else r&&s?b(f,!1):(a.unshift.apply(a,f),i.unshift.apply(i,f),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+f.length)}));return(n=n.insertList).unshift.apply(n,f),x.updateFooter(),x.cacheRowMap(),x.handleTableData(r&&s),r&&s||x.updateAfterDataIndex(),x.checkSelectionStatus(),R.scrollYLoad&&x.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return x.updateCellAreas(),x.recalculate()}).then(function(){return{row:f.length?f[f.length-1]:null,rows:f}})},remove:function(e){var t=h.treeConfig,r=R.mergeList,l=R.editStore,n=R.selection,o=_.tableFullTreeData,a=_.afterFullData,i=_.tableFullData,u=w.value,c=C.value,d=c.transform,s=l.actived,f=l.removeList,v=l.insertList,u=u.checkField,p=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(function(e){x.isInsertByRow(e)||f.push(e)}),u||e.forEach(function(e){e=x.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),i===e?(e=p=i.slice(0),_.tableFullData=[],_.afterFullData=[],x.clearMergeCells()):t&&d?e.forEach(function(e){var t=(0,_util.getRowid)(x,e),r=_xeUtils.default.findTree(o,function(e){return t===(0,_util.getRowid)(x,e)},c);r&&(r=r.items.splice(r.index,1),p.push(r[0]));e=x.findRowIndexOf(a,e);-1<e&&a.splice(e,1)}):e.forEach(function(e){var t=x.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),p.push(t[0]));var l=x.findRowIndexOf(a,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),a.splice(l,1))}),s.row&&-1<x.findRowIndexOf(e,s.row)&&g.clearActived(),e.forEach(function(e){e=x.findRowIndexOf(v,e);-1<e&&v.splice(e,1)}),x.updateFooter(),x.cacheRowMap(),x.handleTableData(t&&d),t&&d||x.updateAfterDataIndex(),x.checkSelectionStatus(),R.scrollYLoad&&x.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return x.updateCellAreas(),x.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},removeCheckboxRow:function(){return g.remove(x.getCheckboxRecords()).then(function(e){return x.clearCheckboxRow(),e})},removeRadioRow:function(){var e=x.getRadioRecord();return g.remove(e||[]).then(function(e){return x.clearRadioRow(),e})},removeCurrentRow:function(){var e=x.getCurrentRecord();return g.remove(e||[]).then(function(e){return x.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:g.getInsertRecords(),removeRecords:g.getRemoveRecords(),updateRecords:g.getUpdateRecords()}},getInsertRecords:function(){var e=h.treeConfig,t=R.editStore,r=_.tableFullTreeData,l=_.tableFullData,n=C.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(x,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(x,e)},n)&&o.push(e)}):t.forEach(function(e){-1<x.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return R.editStore.removeList},getUpdateRecords:function(){var e=h.keepSource,t=h.treeConfig,r=_.tableFullData,l=C.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return x.isUpdateByRow(e)},l):r.filter(function(e){return x.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=R.editStore,t=_.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<x.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=R.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=R.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,x.updateFooter(),x.dispatchEvent("edit-closed",{row:r,rowIndex:x.getRowIndex(r),$rowIndex:x.getVMRowIndex(r),column:l,columnIndex:x.getColumnIndex(l),$columnIndex:x.getVMColumnIndex(l)},e||null)),(x.clearValidate?x.clearValidate():(0,_vue.nextTick)()).then(function(){return x.recalculate()})},clearSelected:function(){var e=R.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return R.editStore.actived.row===e},setActiveRow:function(e){var t=_.visibleColumn;return x.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=h.editConfig,l=_xeUtils.default.isString(e)?x.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?x.scrollToRow(t,l).then(function(){var e=x.getCell(t,l);return e&&(m.handleActived({row:t,rowIndex:x.getRowIndex(t),column:l,columnIndex:x.getColumnIndex(l),cell:e,$table:x}),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=R.tableData,l=_.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?x.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=x.findRowIndexOf(r,e))&&t&&(r=x.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},x.handleSelected(r,{}))),(0,_vue.nextTick)()}},m={handleActived:function(e,t){var r,l=h.editConfig,n=h.mouseConfig,o=R.editStore,a=R.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||x.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(g.clearSelected(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea())),x.closeTooltip(),g.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){m.handleFocus(e,t)})),x.dispatchEvent(r,{row:s,rowIndex:x.getRowIndex(s),$rowIndex:x.getVMRowIndex(s),column:f,columnIndex:x.getColumnIndex(f),$columnIndex:x.getVMColumnIndex(f)},t)):(r=d.column,n&&(g.clearSelected(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),x.clearValidate&&x.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){m.handleFocus(e,t)})),x.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):x.scrollToRow(l,n))},handleSelected:function(e,t){var r=h.mouseConfig,l=R.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(g.clearActived(t),g.clearSelected(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&m.addCellSelectedClass(),x.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=R.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=x.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},g),m)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(R){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var _=R.props,C=R.reactData,b=R.internalData,o=R.getRefMaps().refElem,e=R.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,w=e.computeCheckboxOpts,I=e.computeTreeOpts,g={},m={};function a(){var e=C.editStore,t=C.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function A(e,t){var a=b.tableFullTreeData,i=b.afterFullData,u=b.fullDataRowIdData,c=b.fullAllDataRowIdData,r=I.value,d=r.rowField,s=r.parentField,f=r.children,v=r.mapChildren,p=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[s],n=(0,_util.getRowid)(R,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d]},{children:v}):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(R,t)])?r.level:0,r=t[f],(r=!_xeUtils.default.isArray(r)?t[f]=[]:r)[p](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[p](e),a[p](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e})}return g={insert:function(e){return g.insertAt(e,null)},insertAt:function(e,t){var r=_.treeConfig,l=C.mergeList,n=C.editStore,o=b.tableFullTreeData,a=b.afterFullData,i=b.tableFullData,u=b.fullDataRowIdData,c=b.fullAllDataRowIdData,d=I.value,s=d.transform,f=d.rowField,v=d.mapChildren,p=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return R.defineField(Object.assign({},e))});if(t)if(-1===t)r&&s?A(p,!0):(a.push.apply(a,p),i.push.apply(i,p),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>a.length&&(e.rowspan=r+p.length)}));else if(r&&s){var w,g,m,h=_xeUtils.default.findTree(o,function(e){return t[f]===e[f]},{children:v});h?(w=h.parent,g=h.items,v=c[(0,_util.getRowid)(R,w)],m=v?v.level:0,p.forEach(function(e,t){var r=(0,_util.getRowid)(R,e);"development"===process.env.NODE_ENV&&e[d.parentField]&&w&&e[d.parentField]!==w[f]&&(0,_utils.errLog)("vxe.error.errProp",[d.parentField+"="+e[d.parentField],d.parentField+"="+w[f]]),w&&(e[d.parentField]=w[f]),g.splice(h.index+t,0,e);e={row:e,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:g,parent:w,level:m+1};u[r]=e,c[r]=e})):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),A(p,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var x=-1;if(_xeUtils.default.isNumber(t)?t<a.length&&(x=t):x=R.findRowIndexOf(a,t),-1===x)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));a.splice.apply(a,__spreadArray([x,0],p)),i.splice.apply(i,__spreadArray([R.findRowIndexOf(i,t),0],p)),l.forEach(function(e){var t=e.row,r=e.rowspan;x<t?e.row=t+p.length:x<t+r&&(e.rowspan=r+p.length)})}else r&&s?A(p,!1):(a.unshift.apply(a,p),i.unshift.apply(i,p),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+p.length)}));return(n=n.insertList).unshift.apply(n,p),R.updateFooter(),R.cacheRowMap(),R.handleTableData(r&&s),r&&s||R.updateAfterDataIndex(),R.checkSelectionStatus(),C.scrollYLoad&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},remove:function(e){var t=_.treeConfig,r=C.mergeList,l=C.editStore,n=C.selection,o=b.tableFullTreeData,a=b.afterFullData,i=b.tableFullData,u=w.value,c=I.value,d=c.transform,s=l.actived,f=l.removeList,v=l.insertList,u=u.checkField,p=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(function(e){R.isInsertByRow(e)||f.push(e)}),u||e.forEach(function(e){e=R.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),i===e?(e=p=i.slice(0),b.tableFullData=[],b.afterFullData=[],R.clearMergeCells()):t&&d?e.forEach(function(e){var t=(0,_util.getRowid)(R,e),r=_xeUtils.default.findTree(o,function(e){return t===(0,_util.getRowid)(R,e)},c);r&&(r=r.items.splice(r.index,1),p.push(r[0]));e=R.findRowIndexOf(a,e);-1<e&&a.splice(e,1)}):e.forEach(function(e){var t=R.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),p.push(t[0]));var l=R.findRowIndexOf(a,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),a.splice(l,1))}),s.row&&-1<R.findRowIndexOf(e,s.row)&&g.clearActived(),e.forEach(function(e){e=R.findRowIndexOf(v,e);-1<e&&v.splice(e,1)}),R.updateFooter(),R.cacheRowMap(),R.handleTableData(t&&d),t&&d||R.updateAfterDataIndex(),R.checkSelectionStatus(),C.scrollYLoad&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},removeCheckboxRow:function(){return g.remove(R.getCheckboxRecords()).then(function(e){return R.clearCheckboxRow(),e})},removeRadioRow:function(){var e=R.getRadioRecord();return g.remove(e||[]).then(function(e){return R.clearRadioRow(),e})},removeCurrentRow:function(){var e=R.getCurrentRecord();return g.remove(e||[]).then(function(e){return R.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:g.getInsertRecords(),removeRecords:g.getRemoveRecords(),updateRecords:g.getUpdateRecords()}},getInsertRecords:function(){var e=_.treeConfig,t=C.editStore,r=b.tableFullTreeData,l=b.tableFullData,n=I.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(R,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(R,e)},n)&&o.push(e)}):t.forEach(function(e){-1<R.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return C.editStore.removeList},getUpdateRecords:function(){var e=_.keepSource,t=_.treeConfig,r=b.tableFullData,l=I.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return R.isUpdateByRow(e)},l):r.filter(function(e){return R.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=C.editStore,t=b.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<R.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=C.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=C.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:r,rowIndex:R.getRowIndex(r),$rowIndex:R.getVMRowIndex(r),column:l,columnIndex:R.getColumnIndex(l),$columnIndex:R.getVMColumnIndex(l)},e||null)),(R.clearValidate?R.clearValidate():(0,_vue.nextTick)()).then(function(){return R.recalculate()})},clearSelected:function(){var e=C.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return C.editStore.actived.row===e},setActiveRow:function(e){var t=b.visibleColumn;return R.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=_.editConfig,l=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?R.scrollToRow(t,l).then(function(){var e=R.getCell(t,l);return e&&(m.handleActived({row:t,rowIndex:R.getRowIndex(t),column:l,columnIndex:R.getColumnIndex(l),cell:e,$table:R}),b._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=C.tableData,l=b.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=R.findRowIndexOf(r,e))&&t&&(r=R.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},R.handleSelected(r,{}))),(0,_vue.nextTick)()}},m={handleActived:function(e,t){var r,l=_.editConfig,n=_.mouseConfig,o=C.editStore,a=C.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||R.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(g.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),R.closeTooltip(),g.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){m.handleFocus(e,t)})),R.dispatchEvent(r,{row:s,rowIndex:R.getRowIndex(s),$rowIndex:R.getVMRowIndex(s),column:f,columnIndex:R.getColumnIndex(f),$columnIndex:R.getVMColumnIndex(f)},t)):(r=d.column,n&&(g.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),R.clearValidate&&R.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){m.handleFocus(e,t)})),R.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):R.scrollToRow(l,n))},handleSelected:function(e,t){var r=_.mouseConfig,l=C.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(g.clearActived(t),g.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&m.addCellSelectedClass(),R.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=C.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=R.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},g),m)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;