vxe-table 4.11.16 → 4.11.18

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 (61) hide show
  1. package/es/grid/src/grid.js +15 -29
  2. package/es/style.css +1 -1
  3. package/es/table/module/custom/panel.js +19 -21
  4. package/es/table/module/edit/hook.js +3 -5
  5. package/es/table/module/export/export-panel.js +17 -19
  6. package/es/table/module/export/hook.js +5 -11
  7. package/es/table/module/export/import-panel.js +11 -13
  8. package/es/table/module/validator/hook.js +1 -3
  9. package/es/table/render/index.js +90 -61
  10. package/es/table/src/columnInfo.js +26 -28
  11. package/es/table/src/table.js +132 -89
  12. package/es/toolbar/src/toolbar.js +16 -24
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/lib/grid/src/grid.js +15 -29
  16. package/lib/grid/src/grid.min.js +1 -1
  17. package/lib/index.umd.js +361 -312
  18. package/lib/index.umd.min.js +1 -1
  19. package/lib/style.css +1 -1
  20. package/lib/table/module/custom/panel.js +21 -23
  21. package/lib/table/module/custom/panel.min.js +1 -1
  22. package/lib/table/module/edit/hook.js +3 -5
  23. package/lib/table/module/edit/hook.min.js +1 -1
  24. package/lib/table/module/export/export-panel.js +17 -19
  25. package/lib/table/module/export/export-panel.min.js +1 -1
  26. package/lib/table/module/export/hook.js +5 -11
  27. package/lib/table/module/export/hook.min.js +1 -1
  28. package/lib/table/module/export/import-panel.js +11 -13
  29. package/lib/table/module/export/import-panel.min.js +1 -1
  30. package/lib/table/module/validator/hook.js +1 -3
  31. package/lib/table/module/validator/hook.min.js +1 -1
  32. package/lib/table/render/index.js +98 -66
  33. package/lib/table/render/index.min.js +1 -1
  34. package/lib/table/src/columnInfo.js +30 -32
  35. package/lib/table/src/columnInfo.min.js +1 -1
  36. package/lib/table/src/table.js +138 -85
  37. package/lib/table/src/table.min.js +1 -1
  38. package/lib/toolbar/src/toolbar.js +16 -24
  39. package/lib/toolbar/src/toolbar.min.js +1 -1
  40. package/lib/ui/index.js +1 -1
  41. package/lib/ui/index.min.js +1 -1
  42. package/lib/ui/src/log.js +1 -1
  43. package/lib/ui/src/log.min.js +1 -1
  44. package/package.json +2 -2
  45. package/packages/grid/src/grid.ts +16 -29
  46. package/packages/table/module/custom/panel.ts +19 -21
  47. package/packages/table/module/edit/hook.ts +3 -5
  48. package/packages/table/module/export/export-panel.ts +17 -19
  49. package/packages/table/module/export/hook.ts +5 -11
  50. package/packages/table/module/export/import-panel.ts +11 -13
  51. package/packages/table/module/validator/hook.ts +1 -3
  52. package/packages/table/render/index.ts +89 -59
  53. package/packages/table/src/columnInfo.ts +26 -28
  54. package/packages/table/src/table.ts +128 -85
  55. package/packages/toolbar/src/toolbar.ts +16 -24
  56. /package/es/{iconfont.1741051544689.ttf → iconfont.1741224125327.ttf} +0 -0
  57. /package/es/{iconfont.1741051544689.woff → iconfont.1741224125327.woff} +0 -0
  58. /package/es/{iconfont.1741051544689.woff2 → iconfont.1741224125327.woff2} +0 -0
  59. /package/lib/{iconfont.1741051544689.ttf → iconfont.1741224125327.ttf} +0 -0
  60. /package/lib/{iconfont.1741051544689.woff → iconfont.1741224125327.woff} +0 -0
  61. /package/lib/{iconfont.1741051544689.woff2 → iconfont.1741224125327.woff2} +0 -0
@@ -1241,14 +1241,12 @@ export default defineComponent({
1241
1241
  if ((expandColumn && expandOpts.mode !== 'fixed') && mouseOpts.area) {
1242
1242
  errLog('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
1243
1243
  }
1244
- if (process.env.NODE_ENV === 'development') {
1245
- if (htmlColumn) {
1246
- if (!columnOpts.useKey) {
1247
- errLog('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1248
- }
1249
- if (!rowOpts.useKey) {
1250
- errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1251
- }
1244
+ if (htmlColumn) {
1245
+ if (!columnOpts.useKey) {
1246
+ errLog('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1247
+ }
1248
+ if (!rowOpts.useKey) {
1249
+ errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1252
1250
  }
1253
1251
  }
1254
1252
  reactData.isGroup = isGroup;
@@ -2626,28 +2624,26 @@ export default defineComponent({
2626
2624
  if (treeConfig) {
2627
2625
  if (transform) {
2628
2626
  // 树结构自动转换
2629
- if (process.env.NODE_ENV === 'development') {
2630
- if (!treeOpts.rowField) {
2631
- errLog('vxe.error.reqProp', ['tree-config.rowField']);
2632
- }
2633
- if (!treeOpts.parentField) {
2634
- errLog('vxe.error.reqProp', ['tree-config.parentField']);
2635
- }
2636
- if (!childrenField) {
2637
- errLog('vxe.error.reqProp', ['tree-config.childrenField']);
2638
- }
2639
- if (!treeOpts.mapChildrenField) {
2640
- errLog('vxe.error.reqProp', ['tree-config.mapChildrenField']);
2641
- }
2642
- if (childrenField === treeOpts.mapChildrenField) {
2643
- errLog('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
2644
- }
2645
- // fullData.forEach(row => {
2646
- // if (row[treeOpts.children] && row[treeOpts.children].length) {
2647
- // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
2648
- // }
2649
- // })
2627
+ if (!treeOpts.rowField) {
2628
+ errLog('vxe.error.reqProp', ['tree-config.rowField']);
2629
+ }
2630
+ if (!treeOpts.parentField) {
2631
+ errLog('vxe.error.reqProp', ['tree-config.parentField']);
2650
2632
  }
2633
+ if (!childrenField) {
2634
+ errLog('vxe.error.reqProp', ['tree-config.childrenField']);
2635
+ }
2636
+ if (!treeOpts.mapChildrenField) {
2637
+ errLog('vxe.error.reqProp', ['tree-config.mapChildrenField']);
2638
+ }
2639
+ if (childrenField === treeOpts.mapChildrenField) {
2640
+ errLog('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
2641
+ }
2642
+ // fullData.forEach(row => {
2643
+ // if (row[treeOpts.children] && row[treeOpts.children].length) {
2644
+ // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
2645
+ // }
2646
+ // })
2651
2647
  treeData = XEUtils.toArrayTree(fullData, {
2652
2648
  key: treeOpts.rowField,
2653
2649
  parentKey: treeOpts.parentField,
@@ -2712,16 +2708,14 @@ export default defineComponent({
2712
2708
  // }
2713
2709
  // }
2714
2710
  // }
2715
- if (process.env.NODE_ENV === 'development') {
2716
- if (!(props.height || props.maxHeight)) {
2717
- errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2718
- }
2719
- // if (!props.showOverflow) {
2720
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2721
- // }
2722
- if (props.spanMethod) {
2723
- warnLog('vxe.error.scrollErrProp', ['table.span-method']);
2724
- }
2711
+ if (!(props.height || props.maxHeight)) {
2712
+ errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2713
+ }
2714
+ // if (!props.showOverflow) {
2715
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2716
+ // }
2717
+ if (props.spanMethod) {
2718
+ errLog('vxe.error.scrollErrProp', ['table.span-method']);
2725
2719
  }
2726
2720
  }
2727
2721
  handleReserveStatus();
@@ -3698,11 +3692,13 @@ export default defineComponent({
3698
3692
  * 如果还额外传了 field 则还原指定的单元格数据
3699
3693
  */
3700
3694
  revertData(rows, field) {
3701
- const { keepSource } = props;
3702
- const { tableSourceData, sourceDataRowIdData } = internalData;
3695
+ const { keepSource, treeConfig } = props;
3696
+ const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData;
3697
+ const treeOpts = computeTreeOpts.value;
3698
+ const { transform } = treeOpts;
3703
3699
  if (!keepSource) {
3704
3700
  if (process.env.NODE_ENV === 'development') {
3705
- warnLog('vxe.error.reqProp', ['keep-source']);
3701
+ errLog('vxe.error.reqProp', ['keep-source']);
3706
3702
  }
3707
3703
  return nextTick();
3708
3704
  }
@@ -3715,26 +3711,51 @@ export default defineComponent({
3715
3711
  else {
3716
3712
  targetRows = XEUtils.toArray($xeTable.getUpdateRecords());
3717
3713
  }
3714
+ let reDelFlag = false;
3718
3715
  if (targetRows.length) {
3719
- targetRows.forEach((row) => {
3720
- if (!tableMethods.isInsertByRow(row)) {
3721
- const rowid = getRowid($xeTable, row);
3722
- const oRow = sourceDataRowIdData[rowid];
3723
- if (oRow && row) {
3724
- if (field) {
3725
- XEUtils.set(row, field, XEUtils.clone(XEUtils.get(oRow, field), true));
3726
- }
3727
- else {
3728
- XEUtils.destructuring(row, XEUtils.clone(oRow, true));
3716
+ targetRows.forEach((item) => {
3717
+ const rowid = getRowid($xeTable, item);
3718
+ const rowRest = fullAllDataRowIdData[rowid];
3719
+ if (rowRest) {
3720
+ const row = rowRest.row;
3721
+ if (!$xeTable.isInsertByRow(row)) {
3722
+ const oRow = sourceDataRowIdData[rowid];
3723
+ if (oRow && row) {
3724
+ if (field) {
3725
+ XEUtils.set(row, field, XEUtils.clone(XEUtils.get(oRow, field), true));
3726
+ }
3727
+ else {
3728
+ XEUtils.destructuring(row, XEUtils.clone(oRow, true));
3729
+ }
3730
+ if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3731
+ tableFullData.unshift(row);
3732
+ afterFullData.unshift(row);
3733
+ reDelFlag = true;
3734
+ }
3729
3735
  }
3730
3736
  }
3731
3737
  }
3732
3738
  });
3733
3739
  }
3734
3740
  if (rows) {
3735
- return nextTick();
3741
+ if (reDelFlag) {
3742
+ $xeTable.updateFooter();
3743
+ $xeTable.cacheRowMap(false);
3744
+ $xeTable.handleTableData(treeConfig && transform);
3745
+ if (!(treeConfig && transform)) {
3746
+ $xeTable.updateAfterDataIndex();
3747
+ }
3748
+ $xeTable.checkSelectionStatus();
3749
+ if (reactData.scrollYLoad) {
3750
+ $xeTable.updateScrollYSpace();
3751
+ }
3752
+ }
3753
+ return nextTick().then(() => {
3754
+ $xeTable.updateCellAreas();
3755
+ return $xeTable.recalculate();
3756
+ });
3736
3757
  }
3737
- return tableMethods.reloadData(tableSourceData);
3758
+ return $xeTable.reloadData(tableSourceData);
3738
3759
  },
3739
3760
  /**
3740
3761
  * 清空单元格内容
@@ -3854,6 +3875,11 @@ export default defineComponent({
3854
3875
  const rowid = getRowid($xeTable, row);
3855
3876
  return !!editStore.insertMaps[rowid];
3856
3877
  },
3878
+ isRemoveByRow(row) {
3879
+ const { editStore } = reactData;
3880
+ const rowid = getRowid($xeTable, row);
3881
+ return !!editStore.removeMaps[rowid];
3882
+ },
3857
3883
  /**
3858
3884
  * 删除所有新增的临时数据
3859
3885
  * @returns
@@ -6570,7 +6596,16 @@ export default defineComponent({
6570
6596
  if (el) {
6571
6597
  const parentElem = el.parentNode;
6572
6598
  const parentPaddingSize = height === '100%' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0;
6573
- return Math.floor($xeGrid ? $xeGrid.getParentHeight() : XEUtils.toNumber(getComputedStyle(parentElem).height) - parentPaddingSize);
6599
+ let parentWrapperHeight = 0;
6600
+ if (parentElem) {
6601
+ if ($xeGrid && hasClass(parentElem, 'vxe-grid--table-wrapper')) {
6602
+ parentWrapperHeight = $xeGrid.getParentHeight();
6603
+ }
6604
+ else {
6605
+ parentWrapperHeight = parentElem.clientHeight;
6606
+ }
6607
+ }
6608
+ return Math.floor(parentWrapperHeight - parentPaddingSize);
6574
6609
  }
6575
6610
  return 0;
6576
6611
  },
@@ -6657,14 +6692,15 @@ export default defineComponent({
6657
6692
  */
6658
6693
  cacheRowMap() {
6659
6694
  const { treeConfig } = props;
6660
- const treeOpts = computeTreeOpts.value;
6695
+ const { treeExpandedMaps } = reactData;
6661
6696
  const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
6697
+ const treeOpts = computeTreeOpts.value;
6662
6698
  const childrenField = treeOpts.children || treeOpts.childrenField;
6663
6699
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
6664
6700
  const rowkey = getRowkey($xeTable);
6665
- const isLazy = treeConfig && treeOpts.lazy;
6666
- const fullAllDataRowIdMaps = {};
6701
+ const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
6667
6702
  const fullDataRowIdMaps = {};
6703
+ const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
6668
6704
  const handleRow = (row, index, items, path, parentRow, nodes) => {
6669
6705
  let rowid = getRowid($xeTable, row);
6670
6706
  const seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
@@ -6673,13 +6709,23 @@ export default defineComponent({
6673
6709
  rowid = getRowUniqueId();
6674
6710
  XEUtils.set(row, rowkey, rowid);
6675
6711
  }
6676
- if (isLazy && row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
6677
- row[childrenField] = null;
6712
+ if (treeConfig && treeOpts.lazy) {
6713
+ const treeExpRest = treeExpandedMaps[rowid];
6714
+ if (row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
6715
+ row[childrenField] = null;
6716
+ }
6717
+ if (treeExpRest) {
6718
+ if (!row[childrenField] || !row[childrenField].length) {
6719
+ delete treeTempExpandedMaps[rowid];
6720
+ }
6721
+ }
6678
6722
  }
6679
6723
  let rowRest = fullAllDataRowIdData[rowid];
6680
6724
  if (!rowRest) {
6681
6725
  rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
6682
6726
  }
6727
+ rowRest.treeLoaded = false;
6728
+ rowRest.expandLoaded = false;
6683
6729
  rowRest.row = row;
6684
6730
  rowRest.items = items;
6685
6731
  rowRest.parent = parentRow;
@@ -6688,14 +6734,15 @@ export default defineComponent({
6688
6734
  fullDataRowIdMaps[rowid] = rowRest;
6689
6735
  fullAllDataRowIdMaps[rowid] = rowRest;
6690
6736
  };
6691
- internalData.fullDataRowIdData = fullDataRowIdMaps;
6692
- internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
6693
6737
  if (treeConfig) {
6694
6738
  XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField });
6695
6739
  }
6696
6740
  else {
6697
6741
  tableFullData.forEach(handleRow);
6698
6742
  }
6743
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
6744
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
6745
+ reactData.treeExpandedMaps = treeTempExpandedMaps;
6699
6746
  },
6700
6747
  cacheSourceMap(fullData) {
6701
6748
  const { treeConfig } = props;
@@ -9217,18 +9264,16 @@ export default defineComponent({
9217
9264
  }
9218
9265
  };
9219
9266
  // 检测对应模块是否安装
9220
- if (process.env.NODE_ENV === 'development') {
9221
- 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
9222
- $xeTable[name] = function () {
9223
- errLog('vxe.error.reqModule', ['VxeTableExportModule']);
9224
- };
9225
- });
9226
- 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
9227
- $xeTable[name] = function () {
9228
- errLog('vxe.error.reqModule', ['VxeTableValidatorModule']);
9229
- };
9230
- });
9231
- }
9267
+ 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
9268
+ $xeTable[name] = function () {
9269
+ errLog('vxe.error.reqModule', ['VxeTableExportModule']);
9270
+ };
9271
+ });
9272
+ 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
9273
+ $xeTable[name] = function () {
9274
+ errLog('vxe.error.reqModule', ['VxeTableValidatorModule']);
9275
+ };
9276
+ });
9232
9277
  Object.assign($xeTable, tableMethods, tablePrivateMethods);
9233
9278
  /**
9234
9279
  * 渲染浮固定列
@@ -10189,23 +10234,21 @@ export default defineComponent({
10189
10234
  globalEvents.off($xeTable, 'contextmenu');
10190
10235
  tablePrivateMethods.preventEvent(null, 'unmounted', { $table: $xeTable });
10191
10236
  });
10192
- if (process.env.NODE_ENV === 'development') {
10193
- nextTick(() => {
10194
- if (props.loading) {
10195
- if (!VxeUILoadingComponent && !slots.loading) {
10196
- errLog('vxe.error.reqComp', ['vxe-loading']);
10197
- }
10237
+ nextTick(() => {
10238
+ if (props.loading) {
10239
+ if (!VxeUILoadingComponent && !slots.loading) {
10240
+ errLog('vxe.error.reqComp', ['vxe-loading']);
10198
10241
  }
10199
- if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
10200
- (props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip') ||
10201
- (props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') ||
10202
- props.tooltipConfig || props.editRules) {
10203
- if (!VxeUITooltipComponent) {
10204
- errLog('vxe.error.reqComp', ['vxe-tooltip']);
10205
- }
10242
+ }
10243
+ if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
10244
+ (props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip') ||
10245
+ (props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') ||
10246
+ props.tooltipConfig || props.editRules) {
10247
+ if (!VxeUITooltipComponent) {
10248
+ errLog('vxe.error.reqComp', ['vxe-tooltip']);
10206
10249
  }
10207
- });
10208
- }
10250
+ }
10251
+ });
10209
10252
  provide('$xeColgroup', null);
10210
10253
  provide('$xeTable', $xeTable);
10211
10254
  $xeTable.renderVN = renderVN;
@@ -186,9 +186,7 @@ export default defineComponent({
186
186
  tCommandMethod(params);
187
187
  }
188
188
  else {
189
- if (process.env.NODE_ENV === 'development') {
190
- errLog('vxe.error.notCommands', [code]);
191
- }
189
+ errLog('vxe.error.notCommands', [code]);
192
190
  }
193
191
  }
194
192
  $xeToolbar.dispatchEvent('button-click', params, evnt);
@@ -212,9 +210,7 @@ export default defineComponent({
212
210
  tCommandMethod(params);
213
211
  }
214
212
  else {
215
- if (process.env.NODE_ENV === 'development') {
216
- errLog('vxe.error.notCommands', [code]);
217
- }
213
+ errLog('vxe.error.notCommands', [code]);
218
214
  }
219
215
  }
220
216
  $xeToolbar.dispatchEvent('tool-click', params, evnt);
@@ -541,25 +537,21 @@ export default defineComponent({
541
537
  warnLog('vxe.error.notFunc', ['queryMethod']);
542
538
  }
543
539
  const customOpts = computeCustomOpts.value;
544
- if (process.env.NODE_ENV === 'development') {
545
- if (customOpts.isFooter) {
546
- warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
547
- }
548
- if (customOpts.showFooter) {
549
- warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']);
550
- }
551
- if (customOpts.immediate) {
552
- warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']);
553
- }
554
- if (customOpts.trigger) {
555
- warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']);
556
- }
540
+ if (customOpts.isFooter) {
541
+ warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
557
542
  }
558
- if (process.env.NODE_ENV === 'development') {
559
- if (props.refresh || props.import || props.export || props.print || props.zoom) {
560
- if (!VxeUIButtonComponent) {
561
- errLog('vxe.error.reqComp', ['vxe-button']);
562
- }
543
+ if (customOpts.showFooter) {
544
+ warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter']);
545
+ }
546
+ if (customOpts.immediate) {
547
+ warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate']);
548
+ }
549
+ if (customOpts.trigger) {
550
+ warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger']);
551
+ }
552
+ if (props.refresh || props.import || props.export || props.print || props.zoom) {
553
+ if (!VxeUIButtonComponent) {
554
+ errLog('vxe.error.reqComp', ['vxe-button']);
563
555
  }
564
556
  }
565
557
  });
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "4.11.16";
3
+ export const version = "4.11.18";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"4.11.16"}`;
3
+ const version = `table v${"4.11.18"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -492,9 +492,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
492
492
  if (slots[funcSlot]) {
493
493
  return slots[funcSlot];
494
494
  } else {
495
- if (process.env.NODE_ENV === 'development') {
496
- (0, _log.errLog)('vxe.error.notSlot', [funcSlot]);
497
- }
495
+ (0, _log.errLog)('vxe.error.notSlot', [funcSlot]);
498
496
  }
499
497
  } else {
500
498
  return funcSlot;
@@ -1076,9 +1074,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1076
1074
  };
1077
1075
  });
1078
1076
  } else {
1079
- if (process.env.NODE_ENV === 'development') {
1080
- (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.query']);
1081
- }
1077
+ (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.query']);
1082
1078
  }
1083
1079
  break;
1084
1080
  }
@@ -1164,9 +1160,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1164
1160
  }
1165
1161
  }
1166
1162
  } else {
1167
- if (process.env.NODE_ENV === 'development') {
1168
- (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.delete']);
1169
- }
1163
+ (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.delete']);
1170
1164
  }
1171
1165
  break;
1172
1166
  }
@@ -1268,9 +1262,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1268
1262
  }
1269
1263
  });
1270
1264
  } else {
1271
- if (process.env.NODE_ENV === 'development') {
1272
- (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.save']);
1273
- }
1265
+ (0, _log.errLog)('vxe.error.notFunc', ['proxy-config.ajax.save']);
1274
1266
  }
1275
1267
  break;
1276
1268
  }
@@ -1287,9 +1279,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
1287
1279
  $table: $xeTable
1288
1280
  }, ...args);
1289
1281
  } else {
1290
- if (process.env.NODE_ENV === 'development') {
1291
- (0, _log.errLog)('vxe.error.notCommands', [code]);
1292
- }
1282
+ (0, _log.errLog)('vxe.error.notCommands', [code]);
1293
1283
  }
1294
1284
  }
1295
1285
  }
@@ -1492,24 +1482,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
1492
1482
  });
1493
1483
  initPages();
1494
1484
  (0, _vue.onMounted)(() => {
1495
- if (process.env.NODE_ENV === 'development') {
1496
- (0, _vue.nextTick)(() => {
1497
- if (props.formConfig) {
1498
- if (!VxeUIFormComponent) {
1499
- (0, _log.errLog)('vxe.error.reqComp', ['vxe-form']);
1500
- }
1501
- }
1502
- if (props.pagerConfig) {
1503
- if (!VxeUIPagerComponent) {
1504
- (0, _log.errLog)('vxe.error.reqComp', ['vxe-pager']);
1505
- }
1506
- }
1507
- });
1508
- }
1509
1485
  (0, _vue.nextTick)(() => {
1510
1486
  const {
1511
1487
  columns
1512
1488
  } = props;
1489
+ if (props.formConfig) {
1490
+ if (!VxeUIFormComponent) {
1491
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-form']);
1492
+ }
1493
+ }
1494
+ if (props.pagerConfig) {
1495
+ if (!VxeUIPagerComponent) {
1496
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-pager']);
1497
+ }
1498
+ }
1513
1499
  // const { data, columns, proxyConfig } = props
1514
1500
  // const proxyOpts = computeProxyOpts.value
1515
1501
  // const formOpts = computeFormOpts.value
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","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","getCustomStoreData","openTooltip","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(j,e){let t,{slots:s,emit:r}=e;var R=_xeUtils.default.uniqueId();let n=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(j).computeSize,D=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=T.value;if(t&&t[o])return t[o](...e)}}),t};let S=o(tableComponentMethodKeys),V=(tableComponentMethodKeys.forEach(o=>{S[o]=(...e)=>{var t=T.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),j.proxyConfig))),B=(0,_vue.computed)(()=>{var e=V.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),q=(0,_vue.computed)(()=>V.value.showActiveMsg),M=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,j.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,j.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,j.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,j.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=j,{isZMax:o,tZindex:r}=D,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),k=(0,_vue.computed)(()=>{let t={},o=j;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),P=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=j,{isZMax:i,tableLoading:n,tablePage:l,tableData:s}=D,u=k.value,d=V.value,g=M.value,c=Object.assign({},u);return i&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||n,c.data=s,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),U=(0,_vue.computed)(()=>{var e=j.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var Z=(0,_vue.computed)(()=>{var e=M.value;return""+e.currentPage+e.pageSize});let K={refElem:u,refTable:T,refForm:d,refToolbar:i,refPager:g},A={computeProxyOpts:V,computePagerOpts:M,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:a},L={xID:R,props:j,context:e,reactData:D,getRefMaps:()=>K,getComputeMaps:()=>A},b=()=>{var e=F.value;j.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=T.value,t=i.value;e&&t&&e.connect(t)})},N=()=>{var e=j.proxyConfig,t=D.formData,o=V.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=()=>{var e=D.tablePage,t=j.pagerConfig,o=M.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},z=(e,t)=>{var o=V.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):r)||getI18n(t)},H=(e,t,o)=>{var r=q.value,a=S.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},G=e=>{var t=j.proxyConfig,o=D.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var n=V.value;o.currentPage=a,o.pageSize=i,$.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(n)&&$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,r)})},Q=t=>{var e=T.value,o=j.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=V.value;e.value.remote&&(D.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(D.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("sort-change",t,t.$event)},W=t=>{var e=T.value,o=j.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=V.value;e.value.remote&&(D.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(D.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)})),$.dispatchEvent("filter-change",t,t.$event)},Y=t=>{var e=j.proxyConfig,o=V.value;e&&(0,_utils.isEnableConf)(o)&&$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),$.dispatchEvent("form-submit",t,t.$event)},J=e=>{var t=j.proxyConfig;let o=e.$event;var r=V.value,a=T.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),$.dispatchEvent("form-reset",e,o)},X=e=>{$.dispatchEvent("form-submit-invalid",e,e.$event)},ee=e=>{var t=e.$event;(0,_vue.nextTick)(()=>S.recalculate(!0)),$.dispatchEvent("form-toggle-collapse",e,t),$.dispatchEvent("form-collapse",e,t)},te=e=>{var t=D.isZMax;return(e?!t:t)&&(D.isZMax=!t,D.tZindex<(0,_utils.getLastZIndex)())&&(D.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>S.recalculate(!0)).then(()=>(setTimeout(()=>S.recalculate(!0),15),D.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=()=>{var{formConfig:e,proxyConfig:o}=j,r=D.formData,a=V.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||s.form){let e=[];if(s.form)e=s.form({$grid:L});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:L,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign({ref:d},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:Y,onReset:J,onSubmitInvalid:X,onCollapse:ee}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},re=()=>{var t,o,r=j.toolbarConfig,a=F.value;if(r&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:L}):(r={},(o=a.slots)&&(t=h(o,"buttons"),o=h(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:i},a),r))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},ae=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:L})):(0,_vue.createCommentVNode)(),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},ne=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},le=()=>{var e=j.proxyConfig,t=P.value,o=V.value,r=Object.assign({},de),a=s.empty,i=s.loading,n=s.rowDragIcon||s["row-drag-icon"],l=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Q),o.filter)&&(r.onFilterChange=W),{});return a&&(e.empty=a),i&&(e.loading=i),n&&(e.rowDragIcon=n),l&&(e.columnDragIcon=l),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:T},t),r),e)])},se=()=>s.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:L})):(0,_vue.createCommentVNode)(),ue=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=j,i=V.value,n=M.value;if(a&&(0,_utils.isEnableConf)(n)||s.pager){let e=[];return s.pager?e=s.pager({$grid:L}):(a={},(o=n.slots)&&(t=h(o,"left"),o=h(o,"right"),t&&(a.left=t),o)&&(a.right=o),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},n),r&&(0,_utils.isEnableConf)(i)?D.tablePage:{}),{onPageChange:G}),a))),(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(re());break;case"Top":t.push(ae());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),le(),ne()]));break;case"Bottom":t.push(se());break;case"Pager":t.push(ue());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},de={},ge=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);de[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=j,o=D.proxyInited,r=V.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),a[o]=e}}),D.formData=a}o||!(D.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>$.commitProxy("_init")).then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ce=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&D.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let $={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:L},t))},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:n,editRules:g,validConfig:c}=j,l=D.tablePage,v=q.value,m=B.value;var o=V.value;let s=M.value;var r=F.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=T.value;var E=N();let R=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,R=r?r.item:null,t):(R=t).code;var a=R?R.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=q.value,O=T.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),S.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return H(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let a=h.querySuccess,i=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;let t=[],o=[],e={};if(n&&((k||P)&&(l.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},l)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let r={code:w,button:R,isInited:k,isReload:P,$grid:L,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:E,options:O};return D.sortData=t,D.filterData=o,D.tableLoading=!0,Promise.resolve((u||O)(r,...d)).then(e=>{var t,o;return D.tableLoading=!1,e?n&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o||"page.total"))||0,l.total=_xeUtils.default.toNumber(o),t=C.result,D.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:L}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/l.pageSize),1),l.currentPage>t&&(l.currentPage=t)):(o=C.list,D.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):e)||[]):D.tableData=[],p&&p(r,...d),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0}}).catch(e=>(D.tableLoading=!1,i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=S.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let o={$grid:L,code:w,button:R,body:U,form:E,options:r};if(e.length)return H(w,"vxe.grid.deleteSelectRecord",()=>t.length?(D.tableLoading=!0,Promise.resolve((f||r)(o,...d)).then(e=>(D.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):$.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(D.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=h.save,s=h.saveSuccess,u=h.saveError;if(l){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,n={$grid:L,code:w,button:R,body:t,form:E,options:l},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(D.tableLoading=!0,Promise.resolve((b||l)(n,...d)).then(e=>(D.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:z(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(n,...d):$.commitProxy("query"),s&&s(Object.assign(Object.assign({},n),{response:e})),{status:!0})).catch(e=>(D.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:z(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},n),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:R,$grid:L,$table:y},...d):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return D.isZMax?$.revert():$.maximize()},isMaximized(){return D.isZMax},maximize(){return te(!0)},revert(){return te()},getFormData:N,getFormItems(e){var t=x.value,o=j.formConfig,r=t.items;let a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=T.value;return j.proxyConfig?(e=D.sortData,{data:D.tableData,filter:D.filterData,form:N(),sort:e.length?e[0]:{},sorts:e,pager:D.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y=("development"===process.env.NODE_ENV&&($.loadColumn=e=>{var t=T.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},$.reloadColumn=e=>(S.clearAll(),$.loadColumn(e))),{extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=D.isZMax,t=u.value,o=c.value,r=v.value,a=m.value,i=p.value,n=f.value;return(e?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(n)},getParentHeight(){var e=u.value;return e?(D.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-y.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){let o=e.code;return $.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&$.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){$.zoom(),$.dispatchEvent("zoom",{type:D.isZMax?"max":"revert"},e)}}),E=(Object.assign(L,S,$,y),(0,_vue.ref)(0));(0,_vue.watch)(()=>j.columns?j.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>j.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>L.loadColumn(j.columns||[]))}),(0,_vue.watch)(()=>j.toolbarConfig,()=>{b()}),(0,_vue.watch)(Z,()=>{_()}),(0,_vue.watch)(()=>j.proxyConfig,()=>{ge()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(L))&&_xeUtils.default.isObject(e)&&Object.assign(L,e)}),_(),(0,_vue.onMounted)(()=>{"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{j.formConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),j.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),(0,_vue.nextTick)(()=>{var e=j.columns;e&&e.length&&L.loadColumn(e),b(),ge()}),globalEvents.on(L,"keydown",ce)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(L,"keydown")});return L.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!j.animat,"is--round":j.round,"is--maximize":D.isZMax,"is--loading":j.loading||D.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(L),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(L)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",L),L},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table")),_toolbar=_interopRequireDefault(require("../../toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","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","getCustomStoreData","openTooltip","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(j,e){let t,{slots:s,emit:r}=e;var E=_xeUtils.default.uniqueId();let l=_ui.VxeUI.getComponent("VxeForm"),n=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(j).computeSize,T=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),d=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)();var o=e=>{let t={};return e.forEach(o=>{t[o]=(...e)=>{var t=S.value;if(t&&t[o])return t[o](...e)}}),t};let D=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{D[o]=(...e)=>{var t=S.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),j.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),M=(0,_vue.computed)(()=>q.value.showActiveMsg),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,j.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,j.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,j.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,j.zoomConfig)),I=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=j,{isZMax:o,tZindex:r}=T,a={};return o?a.zIndex=r:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),k=(0,_vue.computed)(()=>{let t={},o=j;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),P=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=j,{isZMax:i,tableLoading:l,tablePage:n,tableData:s}=T,u=k.value,d=q.value,g=V.value,c=Object.assign({},u);return i&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||l,c.data=s,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),U=(0,_vue.computed)(()=>{var e=j.layouts;let t=[],o=[],r=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(o=t[0],r=t[1]||[],a=t[2]||[]):r=t),{headKeys:o,bodyKeys:r,footKeys:a}});var N=(0,_vue.computed)(()=>{var e=V.value;return""+e.currentPage+e.pageSize});let K={refElem:u,refTable:S,refForm:d,refToolbar:i,refPager:g},A={computeProxyOpts:q,computePagerOpts:V,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:a},L={xID:E,props:j,context:e,reactData:T,getRefMaps:()=>K,getComputeMaps:()=>A},b=()=>{var e=F.value;j.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=i.value;e&&t&&e.connect(t)})},z=()=>{var e=j.proxyConfig,t=T.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},_=()=>{var e=T.tablePage,t=j.pagerConfig,o=V.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},$=(e,t)=>{var o=q.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):r)||getI18n(t)},H=(e,t,o)=>{var r=M.value,a=D.getCheckboxRecords();if(r)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return o()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&o();return Promise.resolve()},G=e=>{var t=j.proxyConfig,o=T.tablePage;let{$event:r,currentPage:a,pageSize:i}=e;var l=q.value;o.currentPage=a,o.pageSize=i,B.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(l)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,r)})},Q=t=>{var e=S.value,o=j.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(T.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("sort-change",t,t.$event)},W=t=>{var e=S.value,o=j.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(T.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(T.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("filter-change",t,t.$event)},Y=t=>{var e=j.proxyConfig,o=q.value;e&&(0,_utils.isEnableConf)(o)&&B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),B.dispatchEvent("form-submit",t,t.$event)},J=e=>{var t=j.proxyConfig;let o=e.$event;var r=q.value,a=S.value;t&&(0,_utils.isEnableConf)(r)&&(a.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),B.dispatchEvent("form-reset",e,o)},X=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},ee=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},te=e=>{var t=T.isZMax;return(e?!t:t)&&(T.isZMax=!t,T.tZindex<(0,_utils.getLastZIndex)())&&(T.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),T.isZMax))},h=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},oe=()=>{var{formConfig:e,proxyConfig:o}=j,r=T.formData,a=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(i)||s.form){let e=[];if(s.form)e=s.form({$grid:L});else if(i.items){let t={};if(!i.inited){i.inited=!0;let t=a.beforeItem;a&&t&&i.items.forEach(e=>{t({$grid:L,item:e})})}i.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:d},Object.assign({},i,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:i.data})),{onSubmit:Y,onReset:J,onSubmitInvalid:X,onCollapse:ee}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},re=()=>{var t,o,r=j.toolbarConfig,a=F.value;if(r&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:L}):(r={},(o=a.slots)&&(t=h(o,"buttons"),o=h(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:i},a),r))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},ae=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:L})):(0,_vue.createCommentVNode)(),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},le=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:L})):(0,_vue.createCommentVNode)()},ne=()=>{var e=j.proxyConfig,t=P.value,o=q.value,r=Object.assign({},de),a=s.empty,i=s.loading,l=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Q),o.filter)&&(r.onFilterChange=W),{});return a&&(e.empty=a),i&&(e.loading=i),l&&(e.rowDragIcon=l),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:S},t),r),e)])},se=()=>s.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:L})):(0,_vue.createCommentVNode)(),ue=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=j,i=q.value,l=V.value;if(a&&(0,_utils.isEnableConf)(l)||s.pager){let e=[];return s.pager?e=s.pager({$grid:L}):(a={},(o=l.slots)&&(t=h(o,"left"),o=h(o,"right"),t&&(a.left=t),o)&&(a.right=o),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign(Object.assign({ref:g},l),r&&(0,_utils.isEnableConf)(i)?T.tablePage:{}),{onPageChange:G}),a))),(0,_vue.h)("div",{ref:p,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},C=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(re());break;case"Top":t.push(ae());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),ne(),le()]));break;case"Bottom":t.push(se());break;case"Pager":t.push(ue());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},de={},ge=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);de[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=j,o=T.proxyInited,r=q.value,i=x.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(i)&&r.form&&i.items){let a={};i.items.forEach(t=>{var{field:o,itemRender:r}=t;if(o){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),a[o]=e}}),T.formData=a}o||!(T.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>B.commitProxy("_init")).then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ce=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&T.isZMax&&!1!==t.escRestore&&y.triggerZoomEvent(e)};let B={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:L},t))},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:l,editRules:g,validConfig:c}=j,n=T.tablePage,v=M.value,m=Z.value;var o=q.value;let s=V.value;var r=F.value;let{beforeQuery:u,afterQuery:f,beforeDelete:p,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=o,C=o.response||o.props||{},y=S.value;var R=z();let E=null,w=null;w=_xeUtils.default.isString(t)?(o=r.buttons,r=e&&(0,_utils.isEnableConf)(r)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,E=r?r.item:null,t):(E=t).code;var a=E?E.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=M.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return H(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let a=h.querySuccess,i=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;let t=[],o=[],e={};if(l&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(o=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),o=y.getCheckedFilters()));let r={code:w,button:E,isInited:k,isReload:P,$grid:L,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:R,options:O};return T.sortData=t,T.filterData=o,T.tableLoading=!0,Promise.resolve((u||O)(r,...d)).then(e=>{var t,o;return T.tableLoading=!1,e?l&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=C.result,T.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:L}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=C.list,T.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:L}):_xeUtils.default.get(e,o):e)||[]):T.tableData=[],f&&f(r,...d),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0}}).catch(e=>(T.tableLoading=!1,i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=h.delete,a=h.deleteSuccess,i=h.deleteError;if(r){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let o={$grid:L,code:w,button:E,body:U,form:R,options:r};if(e.length)return H(w,"vxe.grid.deleteSelectRecord",()=>t.length?(T.tableLoading=!0,Promise.resolve((p||r)(o,...d)).then(e=>(T.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(o,...d):B.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),i&&i(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:i}=t,l={$grid:L,code:w,button:E,body:t,form:R,options:n},e=(o.length&&(t.pendingRecords=i.filter(e=>-1===y.findRowIndexOf(o,e))),i.length&&(t.insertRecords=o.filter(e=>-1===y.findRowIndexOf(i,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||a.length||t.pendingRecords.length?(T.tableLoading=!0,Promise.resolve((b||n)(l,...d)).then(e=>(T.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(l,...d):B.commitProxy("query"),s&&s(Object.assign(Object.assign({},l),{response:e})),{status:!0})).catch(e=>(T.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},l),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:E,$grid:L,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return T.isZMax?B.revert():B.maximize()},isMaximized(){return T.isZMax},maximize(){return te(!0)},revert(){return te()},getFormData:z,getFormItems(e){var t=x.value,o=j.formConfig,r=t.items;let a=[];return _xeUtils.default.eachTree(o&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=S.value;return j.proxyConfig?(e=T.sortData,{data:T.tableData,filter:T.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:T.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},y=("development"===process.env.NODE_ENV&&(B.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},B.reloadColumn=e=>(D.clearAll(),B.loadColumn(e))),{extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=T.isZMax,t=u.value,o=c.value,r=v.value,a=m.value,i=f.value,l=p.value;return(e?0:(0,_dom.getPaddingTopBottomSize)(t.parentNode))+(0,_dom.getPaddingTopBottomSize)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(l)},getParentHeight(){var e=u.value;return e?(T.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-y.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){let o=e.code;return B.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&B.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){y.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){y.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){B.zoom(),B.dispatchEvent("zoom",{type:T.isZMax?"max":"revert"},e)}}),R=(Object.assign(L,D,B,y),(0,_vue.ref)(0));(0,_vue.watch)(()=>j.columns?j.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>j.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>L.loadColumn(j.columns||[]))}),(0,_vue.watch)(()=>j.toolbarConfig,()=>{b()}),(0,_vue.watch)(N,()=>{_()}),(0,_vue.watch)(()=>j.proxyConfig,()=>{ge()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(L))&&_xeUtils.default.isObject(e)&&Object.assign(L,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=j.columns;j.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),j.pagerConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&L.loadColumn(e),b(),ge()}),globalEvents.on(L,"keydown",ce)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(L,"keydown")});return L.renderVN=()=>{var e=O.value,t=I.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!j.animat,"is--round":j.round,"is--maximize":T.isZMax,"is--loading":j.loading||T.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},C(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},r({})):renderEmptyElement(L),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},C(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(L)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},C(o))]})())},(0,_vue.provide)("$xeGrid",L),L},render(){return this.renderVN()}});