vxe-table 4.14.6 → 4.14.8

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 (140) hide show
  1. package/es/grid/src/grid.js +19 -3
  2. package/es/locale/lang/ar-EG.js +1 -1
  3. package/es/locale/lang/de-DE.js +1 -1
  4. package/es/locale/lang/en-US.js +1 -1
  5. package/es/locale/lang/es-ES.js +1 -1
  6. package/es/locale/lang/fr-FR.js +1 -1
  7. package/es/locale/lang/hu-HU.js +1 -1
  8. package/es/locale/lang/hy-AM.js +1 -1
  9. package/es/locale/lang/id-ID.js +1 -1
  10. package/es/locale/lang/it-IT.js +1 -1
  11. package/es/locale/lang/ja-JP.js +1 -1
  12. package/es/locale/lang/ko-KR.js +1 -1
  13. package/es/locale/lang/ms-MY.js +1 -1
  14. package/es/locale/lang/nb-NO.js +1 -1
  15. package/es/locale/lang/pt-BR.js +1 -1
  16. package/es/locale/lang/ru-RU.js +1 -1
  17. package/es/locale/lang/th-TH.js +1 -1
  18. package/es/locale/lang/ug-CN.js +1 -1
  19. package/es/locale/lang/uk-UA.js +1 -1
  20. package/es/locale/lang/uz-UZ.js +1 -1
  21. package/es/locale/lang/vi-VN.js +1 -1
  22. package/es/locale/lang/zh-CHT.js +1 -1
  23. package/es/locale/lang/zh-CN.js +1 -1
  24. package/es/style.css +1 -1
  25. package/es/table/src/cell.js +5 -5
  26. package/es/table/src/table.js +61 -16
  27. package/es/ui/index.js +2 -1
  28. package/es/ui/src/log.js +1 -1
  29. package/lib/grid/src/grid.js +19 -3
  30. package/lib/grid/src/grid.min.js +1 -1
  31. package/lib/index.umd.js +33 -15
  32. package/lib/index.umd.min.js +1 -1
  33. package/lib/locale/lang/ar-EG.js +1 -1
  34. package/lib/locale/lang/ar-EG.min.js +1 -1
  35. package/lib/locale/lang/ar-EG.umd.js +1 -1
  36. package/lib/locale/lang/de-DE.js +1 -1
  37. package/lib/locale/lang/de-DE.min.js +1 -1
  38. package/lib/locale/lang/de-DE.umd.js +1 -1
  39. package/lib/locale/lang/en-US.js +1 -1
  40. package/lib/locale/lang/en-US.min.js +1 -1
  41. package/lib/locale/lang/en-US.umd.js +1 -1
  42. package/lib/locale/lang/es-ES.js +1 -1
  43. package/lib/locale/lang/es-ES.min.js +1 -1
  44. package/lib/locale/lang/es-ES.umd.js +1 -1
  45. package/lib/locale/lang/fr-FR.js +1 -1
  46. package/lib/locale/lang/fr-FR.min.js +1 -1
  47. package/lib/locale/lang/fr-FR.umd.js +1 -1
  48. package/lib/locale/lang/hu-HU.js +1 -1
  49. package/lib/locale/lang/hu-HU.min.js +1 -1
  50. package/lib/locale/lang/hu-HU.umd.js +1 -1
  51. package/lib/locale/lang/hy-AM.js +1 -1
  52. package/lib/locale/lang/hy-AM.min.js +1 -1
  53. package/lib/locale/lang/hy-AM.umd.js +1 -1
  54. package/lib/locale/lang/id-ID.js +1 -1
  55. package/lib/locale/lang/id-ID.min.js +1 -1
  56. package/lib/locale/lang/id-ID.umd.js +1 -1
  57. package/lib/locale/lang/it-IT.js +1 -1
  58. package/lib/locale/lang/it-IT.min.js +1 -1
  59. package/lib/locale/lang/it-IT.umd.js +1 -1
  60. package/lib/locale/lang/ja-JP.js +1 -1
  61. package/lib/locale/lang/ja-JP.min.js +1 -1
  62. package/lib/locale/lang/ja-JP.umd.js +1 -1
  63. package/lib/locale/lang/ko-KR.js +1 -1
  64. package/lib/locale/lang/ko-KR.min.js +1 -1
  65. package/lib/locale/lang/ko-KR.umd.js +1 -1
  66. package/lib/locale/lang/ms-MY.js +1 -1
  67. package/lib/locale/lang/ms-MY.min.js +1 -1
  68. package/lib/locale/lang/ms-MY.umd.js +1 -1
  69. package/lib/locale/lang/nb-NO.js +1 -1
  70. package/lib/locale/lang/nb-NO.min.js +1 -1
  71. package/lib/locale/lang/nb-NO.umd.js +1 -1
  72. package/lib/locale/lang/pt-BR.js +1 -1
  73. package/lib/locale/lang/pt-BR.min.js +1 -1
  74. package/lib/locale/lang/pt-BR.umd.js +1 -1
  75. package/lib/locale/lang/ru-RU.js +1 -1
  76. package/lib/locale/lang/ru-RU.min.js +1 -1
  77. package/lib/locale/lang/ru-RU.umd.js +1 -1
  78. package/lib/locale/lang/th-TH.js +1 -1
  79. package/lib/locale/lang/th-TH.min.js +1 -1
  80. package/lib/locale/lang/th-TH.umd.js +1 -1
  81. package/lib/locale/lang/ug-CN.js +1 -1
  82. package/lib/locale/lang/ug-CN.min.js +1 -1
  83. package/lib/locale/lang/ug-CN.umd.js +1 -1
  84. package/lib/locale/lang/uk-UA.js +1 -1
  85. package/lib/locale/lang/uk-UA.min.js +1 -1
  86. package/lib/locale/lang/uk-UA.umd.js +1 -1
  87. package/lib/locale/lang/uz-UZ.js +1 -1
  88. package/lib/locale/lang/uz-UZ.min.js +1 -1
  89. package/lib/locale/lang/uz-UZ.umd.js +1 -1
  90. package/lib/locale/lang/vi-VN.js +1 -1
  91. package/lib/locale/lang/vi-VN.min.js +1 -1
  92. package/lib/locale/lang/vi-VN.umd.js +1 -1
  93. package/lib/locale/lang/zh-CHT.js +1 -1
  94. package/lib/locale/lang/zh-CHT.min.js +1 -1
  95. package/lib/locale/lang/zh-CHT.umd.js +1 -1
  96. package/lib/locale/lang/zh-CN.js +1 -1
  97. package/lib/locale/lang/zh-CN.min.js +1 -1
  98. package/lib/locale/lang/zh-CN.umd.js +1 -1
  99. package/lib/style.css +1 -1
  100. package/lib/table/src/cell.js +5 -4
  101. package/lib/table/src/cell.min.js +1 -1
  102. package/lib/table/src/table.js +5 -5
  103. package/lib/table/src/table.min.js +1 -1
  104. package/lib/ui/index.js +2 -1
  105. package/lib/ui/index.min.js +1 -1
  106. package/lib/ui/src/log.js +1 -1
  107. package/lib/ui/src/log.min.js +1 -1
  108. package/package.json +1 -1
  109. package/packages/grid/src/grid.ts +24 -4
  110. package/packages/locale/lang/ar-EG.ts +1 -1
  111. package/packages/locale/lang/de-DE.ts +1 -1
  112. package/packages/locale/lang/en-US.ts +1 -1
  113. package/packages/locale/lang/es-ES.ts +1 -1
  114. package/packages/locale/lang/fr-FR.ts +1 -1
  115. package/packages/locale/lang/hu-HU.ts +1 -1
  116. package/packages/locale/lang/hy-AM.ts +1 -1
  117. package/packages/locale/lang/id-ID.ts +1 -1
  118. package/packages/locale/lang/it-IT.ts +1 -1
  119. package/packages/locale/lang/ja-JP.ts +1 -1
  120. package/packages/locale/lang/ko-KR.ts +1 -1
  121. package/packages/locale/lang/ms-MY.ts +1 -1
  122. package/packages/locale/lang/nb-NO.ts +1 -1
  123. package/packages/locale/lang/pt-BR.ts +1 -1
  124. package/packages/locale/lang/ru-RU.ts +1 -1
  125. package/packages/locale/lang/th-TH.ts +1 -1
  126. package/packages/locale/lang/ug-CN.ts +1 -1
  127. package/packages/locale/lang/uk-UA.ts +1 -1
  128. package/packages/locale/lang/uz-UZ.ts +1 -1
  129. package/packages/locale/lang/vi-VN.ts +1 -1
  130. package/packages/locale/lang/zh-CHT.ts +1 -1
  131. package/packages/locale/lang/zh-CN.ts +1 -1
  132. package/packages/table/src/cell.ts +5 -5
  133. package/packages/table/src/table.ts +70 -15
  134. package/packages/ui/index.ts +1 -0
  135. /package/es/{iconfont.1753347689662.ttf → iconfont.1753525794121.ttf} +0 -0
  136. /package/es/{iconfont.1753347689662.woff → iconfont.1753525794121.woff} +0 -0
  137. /package/es/{iconfont.1753347689662.woff2 → iconfont.1753525794121.woff2} +0 -0
  138. /package/lib/{iconfont.1753347689662.ttf → iconfont.1753525794121.ttf} +0 -0
  139. /package/lib/{iconfont.1753347689662.woff → iconfont.1753525794121.woff} +0 -0
  140. /package/lib/{iconfont.1753347689662.woff2 → iconfont.1753525794121.woff2} +0 -0
@@ -389,7 +389,7 @@ export const Cell = {
389
389
  const { computeAggregateOpts } = $table.getComputeMaps();
390
390
  const aggregateOpts = computeAggregateOpts.value;
391
391
  const { mode, showTotal, totalMethod, countFields, contentMethod, mapChildrenField } = aggregateOpts;
392
- const aggMethod = aggregateOpts.aggregateMethod || aggregateOpts.countMethod;
392
+ const aggCalcMethod = aggregateOpts.calcValuesMethod || aggregateOpts.countMethod || aggregateOpts.aggregateMethod;
393
393
  const groupField = aggRow.groupField;
394
394
  const groupContent = aggRow.groupContent;
395
395
  const childList = mapChildrenField ? (aggRow[mapChildrenField] || []) : [];
@@ -423,9 +423,9 @@ export const Cell = {
423
423
  cellValue = $table.getPivotTableAggregateCellAggValue(params);
424
424
  }
425
425
  else if (aggFunc === true || (countFields && countFields.includes(field))) {
426
- if (aggMethod) {
426
+ if (aggCalcMethod) {
427
427
  ctParams.aggValue = childCount;
428
- cellValue = `${aggMethod(ctParams)}`;
428
+ cellValue = `${aggCalcMethod(ctParams)}`;
429
429
  }
430
430
  }
431
431
  }
@@ -478,14 +478,14 @@ export const Cell = {
478
478
  const { rowGroupExpandedFlag } = tableReactData;
479
479
  const { rowGroupExpandedMaps } = tableInternalData;
480
480
  const aggregateOpts = computeAggregateOpts.value;
481
- const { padding, indent } = aggregateOpts;
481
+ const { mode, padding, indent } = aggregateOpts;
482
482
  const rowid = getRowid($table, row);
483
483
  const isExpand = !!rowGroupExpandedFlag && !!rowGroupExpandedMaps[rowid];
484
484
  return h('div', {
485
485
  class: ['vxe-row-group--tree-node', {
486
486
  'is--expanded': isExpand
487
487
  }],
488
- style: padding && indent
488
+ style: mode !== 'column' && padding && indent
489
489
  ? {
490
490
  paddingLeft: `${level * indent}px`
491
491
  }
@@ -1322,16 +1322,23 @@ export default defineVxeComponent({
1322
1322
  return rest;
1323
1323
  };
1324
1324
  const handleSortEvent = (evnt, sortConfs, isUpdate) => {
1325
+ const { tableFullColumn } = internalData;
1325
1326
  const sortOpts = computeSortOpts.value;
1326
1327
  const { multiple, remote, orders } = sortOpts;
1327
1328
  if (!XEUtils.isArray(sortConfs)) {
1328
1329
  sortConfs = [sortConfs];
1329
1330
  }
1330
1331
  if (sortConfs && sortConfs.length) {
1332
+ const orderActiveMaps = {};
1331
1333
  if (!multiple) {
1332
1334
  sortConfs = [sortConfs[0]];
1333
- clearAllSort();
1335
+ tableFullColumn.forEach((column) => {
1336
+ if (column.order) {
1337
+ orderActiveMaps[column.id] = column;
1338
+ }
1339
+ });
1334
1340
  }
1341
+ const sortColMpps = {};
1335
1342
  let firstColumn = null;
1336
1343
  sortConfs.forEach((confs, index) => {
1337
1344
  let { field, order } = confs;
@@ -1350,8 +1357,16 @@ export default defineVxeComponent({
1350
1357
  column.order = order;
1351
1358
  }
1352
1359
  column.sortTime = Date.now() + index;
1360
+ sortColMpps[column.id] = column;
1353
1361
  }
1354
1362
  });
1363
+ if (!multiple) {
1364
+ XEUtils.each(orderActiveMaps, (oaCol, oaId) => {
1365
+ if (!sortColMpps[oaId]) {
1366
+ oaCol.order = null;
1367
+ }
1368
+ });
1369
+ }
1355
1370
  if (isUpdate) {
1356
1371
  if (!remote) {
1357
1372
  $xeTable.handleTableData(true);
@@ -5769,8 +5784,8 @@ export default defineVxeComponent({
5769
5784
  setSort(sortConfs, isUpdate) {
5770
5785
  return handleSortEvent(null, sortConfs, isUpdate);
5771
5786
  },
5772
- setSortByEvent(evnt, sortConfs, isUpdate) {
5773
- return handleSortEvent(evnt, sortConfs, isUpdate);
5787
+ setSortByEvent(evnt, sortConfs) {
5788
+ return handleSortEvent(evnt, sortConfs, true);
5774
5789
  },
5775
5790
  /**
5776
5791
  * 清空指定列的排序条件
@@ -5799,6 +5814,7 @@ export default defineVxeComponent({
5799
5814
  clearSortByEvent(evnt, fieldOrColumn) {
5800
5815
  const { tableFullColumn } = internalData;
5801
5816
  const sortOpts = computeSortOpts.value;
5817
+ const { multiple } = sortOpts;
5802
5818
  const sortCols = [];
5803
5819
  let column = null;
5804
5820
  if (evnt) {
@@ -5819,13 +5835,16 @@ export default defineVxeComponent({
5819
5835
  if (!sortOpts.remote) {
5820
5836
  $xeTable.handleTableData(true);
5821
5837
  }
5822
- if (sortCols.length) {
5823
- const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] };
5824
- dispatchEvent('clear-all-sort', params, evnt);
5838
+ if (!multiple) {
5839
+ column = sortCols[0];
5825
5840
  }
5826
- else if (column) {
5841
+ if (column) {
5827
5842
  $xeTable.handleColumnSortEvent(evnt, column);
5828
5843
  }
5844
+ if (multiple && sortCols.length) {
5845
+ const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] };
5846
+ dispatchEvent('clear-all-sort', params, evnt);
5847
+ }
5829
5848
  }
5830
5849
  return nextTick().then(() => {
5831
5850
  updateRowOffsetTop();
@@ -5855,13 +5874,11 @@ export default defineVxeComponent({
5855
5874
  }
5856
5875
  return sortList;
5857
5876
  },
5858
- setFilterByEvent(evnt, fieldOrColumn, options, isUpdate) {
5877
+ setFilterByEvent(evnt, fieldOrColumn, options) {
5859
5878
  const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5860
5879
  if (column && column.filters) {
5861
5880
  column.filters = toFilters(options || []);
5862
- if (isUpdate) {
5863
- return $xeTable.handleColumnConfirmFilter(column, evnt);
5864
- }
5881
+ return $xeTable.handleColumnConfirmFilter(column, evnt);
5865
5882
  }
5866
5883
  return nextTick();
5867
5884
  },
@@ -5905,6 +5922,7 @@ export default defineVxeComponent({
5905
5922
  const { filterStore } = reactData;
5906
5923
  const { tableFullColumn } = internalData;
5907
5924
  const filterOpts = computeFilterOpts.value;
5925
+ const { multiple } = filterOpts;
5908
5926
  const filterCols = [];
5909
5927
  let column = null;
5910
5928
  if (fieldOrColumn) {
@@ -5935,13 +5953,37 @@ export default defineVxeComponent({
5935
5953
  if (!filterOpts.remote) {
5936
5954
  $xeTable.updateData();
5937
5955
  }
5938
- if (filterCols.length) {
5956
+ if (!multiple) {
5957
+ column = filterCols[0];
5958
+ }
5959
+ if (column) {
5960
+ const filterList = () => $xeTable.getCheckedFilters();
5961
+ const values = [];
5962
+ const datas = [];
5963
+ column.filters.forEach((item) => {
5964
+ if (item.checked) {
5965
+ values.push(item.value);
5966
+ datas.push(item.data);
5967
+ }
5968
+ });
5969
+ const params = {
5970
+ $table: $xeTable,
5971
+ $event: evnt,
5972
+ column,
5973
+ field: column.field,
5974
+ property: column.field,
5975
+ values,
5976
+ datas,
5977
+ filters: filterList,
5978
+ filterList
5979
+ };
5980
+ $xeTable.dispatchEvent('filter-change', params, evnt);
5981
+ $xeTable.dispatchEvent('clear-filter', params, evnt);
5982
+ }
5983
+ if (multiple && filterCols.length) {
5939
5984
  const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] };
5940
5985
  dispatchEvent('clear-all-filter', params, evnt);
5941
5986
  }
5942
- else if (column) {
5943
- $xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt);
5944
- }
5945
5987
  return nextTick();
5946
5988
  },
5947
5989
  /**
@@ -11729,7 +11771,10 @@ export default defineVxeComponent({
11729
11771
  warnLog('vxe.error.delProp', ['row-group-config.countFields', 'column.agg-func']);
11730
11772
  }
11731
11773
  if (aggregateOpts.aggregateMethod) {
11732
- warnLog('vxe.error.delProp', ['row-group-config.aggregateMethod', 'aggregate-config.countMethod']);
11774
+ warnLog('vxe.error.delProp', ['row-group-config.aggregateMethod', 'aggregate-config.calcValuesMethod']);
11775
+ }
11776
+ if (aggregateOpts.countMethod) {
11777
+ warnLog('vxe.error.delProp', ['aggregate-config.countMethod', 'aggregate-config.calcValuesMethod']);
11733
11778
  }
11734
11779
  if (props.treeConfig && treeOpts.children) {
11735
11780
  warnLog('vxe.error.delProp', ['tree-config.children', 'tree-config.childrenField']);
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.14.6";
3
+ export const version = "4.14.8";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -138,6 +138,7 @@ VxeUI.setConfig({
138
138
  // filterMethod: null,
139
139
  // destroyOnClose: false,
140
140
  // isEvery: false,
141
+ multiple: true,
141
142
  showIcon: true
142
143
  },
143
144
  aggregateConfig: {
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.14.6"}`;
3
+ const version = `table v${"4.14.8"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -29,7 +29,7 @@ const {
29
29
  renderEmptyElement
30
30
  } = _ui.VxeUI;
31
31
  const tableComponentPropKeys = Object.keys(_props.default);
32
- const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', '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', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'sort', 'setSort', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', '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', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
32
+ const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', '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', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', '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', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
33
33
  const 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'];
34
34
  var _default = exports.default = (0, _comp.defineVxeComponent)({
35
35
  name: 'VxeGrid',
@@ -412,7 +412,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
412
412
  });
413
413
  }
414
414
  };
415
- const sortChangeEvent = params => {
415
+ const handleSortEvent = params => {
416
416
  const $xeTable = refTable.value;
417
417
  const {
418
418
  proxyConfig
@@ -432,9 +432,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
432
432
  });
433
433
  }
434
434
  }
435
+ };
436
+ const sortChangeEvent = params => {
437
+ handleSortEvent(params);
435
438
  $xeGrid.dispatchEvent('sort-change', params, params.$event);
436
439
  };
437
- const filterChangeEvent = params => {
440
+ const clearAllSortEvent = params => {
441
+ handleSortEvent(params);
442
+ $xeGrid.dispatchEvent('clear-all-sort', params, params.$event);
443
+ };
444
+ const handleFilterEvent = params => {
438
445
  const $xeTable = refTable.value;
439
446
  const {
440
447
  proxyConfig
@@ -454,8 +461,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
454
461
  });
455
462
  }
456
463
  }
464
+ };
465
+ const filterChangeEvent = params => {
466
+ handleFilterEvent(params);
457
467
  $xeGrid.dispatchEvent('filter-change', params, params.$event);
458
468
  };
469
+ const clearAllFilterEvent = params => {
470
+ handleFilterEvent(params);
471
+ $xeGrid.dispatchEvent('clear-all-filter', params, params.$event);
472
+ };
459
473
  const submitFormEvent = params => {
460
474
  const {
461
475
  proxyConfig
@@ -727,9 +741,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
727
741
  if (proxyConfig && (0, _utils.isEnableConf)(proxyOpts)) {
728
742
  if (proxyOpts.sort) {
729
743
  tableOns.onSortChange = sortChangeEvent;
744
+ tableOns.onClearAllSort = clearAllSortEvent;
730
745
  }
731
746
  if (proxyOpts.filter) {
732
747
  tableOns.onFilterChange = filterChangeEvent;
748
+ tableOns.onClearAllFilter = clearAllFilterEvent;
733
749
  }
734
750
  }
735
751
  const slotObj = {};
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/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","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","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","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","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","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","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,_comp.defineVxeComponent)({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(T,e){let t,{slots:u,emit:r}=e;var E=_xeUtils.default.uniqueId();let i=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),w=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],O=useFns.useSize(T).computeSize,j=(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}}),s=(0,_vue.ref)(),D=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(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=D.value;if(t&&t[o])return t[o](...e)}}),t};let M=o(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(o=>{M[o]=(...e)=>{var t=D.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),F=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg}),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),P=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:o,tZindex:r}=j,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}),I=(0,_vue.computed)(()=>{let t={},o=T;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,editConfig:o,proxyConfig:r}=T,{isZMax:a,tablePage:l}=j,i=I.value,n=q.value,s=L.value,u=b.value,d=Object.assign({},i);return a&&(i.maxHeight?d.maxHeight="100%":d.height="100%"),r&&(0,_utils.isEnableConf)(n)&&(d.loading=u,t)&&n.seq&&(0,_utils.isEnableConf)(s)&&(d.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),o&&(d.editConfig=Object.assign({},o)),d}),U=(0,_vue.computed)(()=>{var e=T.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 S=(0,_vue.computed)(()=>L.value.currentPage),K=(0,_vue.computed)(()=>L.value.pageSize),H=(0,_vue.computed)(()=>L.value.total);let b=(0,_vue.computed)(()=>{var{loading:e,proxyConfig:t}=T,o=j.tableLoading,r=q.value,a=r.showLoading;return e||o&&a&&t&&(0,_utils.isEnableConf)(r)}),G={refElem:s,refTable:D,refForm:n,refToolbar:d,refPager:g},N={computeProxyOpts:q,computePagerOpts:L,computeFormOpts:x,computeToolbarOpts:V,computeZoomOpts:a},B={xID:E,props:T,context:e,reactData:j,getRefMaps:()=>G,getComputeMaps:()=>N},_=()=>{var e=V.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=D.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,o=q.value,r=x.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},h=e=>{var t=j.tablePage,o=T.pagerConfig,r=L.value;o&&(0,_utils.isEnableConf)(r)&&(e?r[e]&&(t[e]=_xeUtils.default.toNumber(r[e])):({currentPage:o,pageSize:e,total:r}=r,o&&(t.currentPage=o),e&&(t.pageSize=e),r&&(t.pageSize=r)))},$=(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:B}):_xeUtils.default.get(e,o):r)||getI18n(t)},Q=(e,t,o)=>{var r=F.value,a=M.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()},W=e=>{var t=T.proxyConfig,o=j.tablePage;let{$event:r,currentPage:a,pageSize:l}=e;var i=q.value;o.currentPage=a,o.pageSize=l,B.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(i)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,r)})},Y=t=>{var e=D.value,o=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,r=q.value;e.value.remote&&(j.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("sort-change",t,t.$event)},J=t=>{var e=D.value,o=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,r=q.value;e.value.remote&&(j.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)})),B.dispatchEvent("filter-change",t,t.$event)},X=t=>{var e=T.proxyConfig,o=q.value;j.tableLoading||(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))},ee=e=>{var t=D.value,o=T.proxyConfig;let r=e.$event;var a=q.value;o&&(0,_utils.isEnableConf)(a)&&(t.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),B.dispatchEvent("form-reset",e,r)},te=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},oe=e=>{var t=e.$event;B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},re=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>B.recalculate(!0)).then(()=>(setTimeout(()=>B.recalculate(!0),15),j.isZMax))},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},ae=e=>{let o={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?o[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o},le=()=>{var{formConfig:e,proxyConfig:o}=T,r=j.formData,a=q.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:B});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:B,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),i&&e.push((0,_vue.h)(i,Object.assign(Object.assign({ref:n},Object.assign({},l,{data:o&&(0,_utils.isEnableConf)(a)&&a.form?r:l.data})),{onSubmit:X,onReset:ee,onSubmitInvalid:te,onCollapse:oe}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(B)},ie=()=>{var t,o,r,a,l,i,n=T.toolbarConfig,s=V.value;if(n&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:B}):(n={},(i=s.slots)&&(t=C(i,"buttons"),o=C(i,"buttonPrefix"),r=C(i,"buttonSuffix"),a=C(i,"tools"),l=C(i,"toolPrefix"),i=C(i,"toolSuffix"),t&&(n.buttons=t),o&&(n.buttonPrefix=o),r&&(n.buttonSuffix=r),a&&(n.tools=a),l&&(n.toolPrefix=l),i)&&(n.toolSuffix=i),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),n))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(B)},ne=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},e({$grid:B})):renderEmptyElement(B)},se=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:B})):renderEmptyElement(B)},ue=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:B})):renderEmptyElement(B)},de=()=>{var e=T.proxyConfig,t=k.value,o=q.value,r=Object.assign({},ve),a=u.empty,l=u.loading,i=u.rowDragIcon||u["row-drag-icon"],n=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=Y),o.filter)&&(r.onFilterChange=J),{});return a&&(e.empty=a),l&&(e.loading=l),i&&(e.rowDragIcon=i),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:D},t),r),e)])},ge=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:B})):renderEmptyElement(B),ce=()=>{var{proxyConfig:e,pagerConfig:t}=T,o=q.value,r=L.value,a=u.pager;return t&&(0,_utils.isEnableConf)(r)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:B}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},r),e&&(0,_utils.isEnableConf)(o)?j.tablePage:{}),{onPageChange:W}),ae(r.slots)):renderEmptyElement(B)]):renderEmptyElement(B)},y=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(le());break;case"Toolbar":t.push(ie());break;case"Top":t.push(ne());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[se(),de(),ue()]));break;case"Bottom":t.push(ge());break;case"Pager":t.push(ce());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ve={},me=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ve[e]=(...e)=>r(t,...e)}),()=>{var e=x.value;if(e.items){let a={};return e.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}}),a}return{}}),pe=()=>{var{proxyConfig:e,formConfig:t}=T,o=j.proxyInited,r=q.value,a=x.value;e&&(0,_utils.isEnableConf)(r)&&(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items&&(j.formData=me()),o||!(j.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>A.commitProxy("initial")).then(e=>{A.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},fe=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&B.triggerZoomEvent(e)};let A={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:B},t))},getEl(){return s.value},commitProxy(t,...d){let{proxyConfig:r,toolbarConfig:e,pagerConfig:n,editRules:g,validConfig:c}=T,s=j.tablePage,v=F.value,m=Z.value;var u=q.value;let p=L.value;var o,a=V.value;let{beforeQuery:f,afterQuery:x,beforeDelete:i,afterDelete:b,beforeSave:_,afterSave:h,ajax:C={}}=u,y=u.response||u.props||{},R=D.value,E=z(),w=null,O=null;O=_xeUtils.default.isString(t)?(o=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,w=a?a.item:null,t):(w=t).code;var l=w?w.params:null;switch(O){case"insert":return R.insert({});case"insert_edit":return R.insert({}).then(({row:e})=>R.setEditRow(e,!0));case"insert_actived":return R.insert({}).then(({row:e})=>R.setEditRow(e,!0));case"mark_cancel":U=O,k=F.value,P=D.value,(I=P.getCheckboxRecords()).length?(P.togglePendingRow(I),M.clearCheckboxRow()):k&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:U,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return Q(O,"vxe.grid.removeSelectRecord",()=>R.removeCheckboxRow());case"import":R.importData(l);break;case"open_import":R.openImport(l);break;case"export":R.exportData(l);break;case"open_export":R.openExport(l);break;case"reset_custom":return R.resetCustom(!0);case"initial":case"reload":case"query":{var P=C.query;let i=C.querySuccess,t=C.queryError;if(P){var I="initial"===O,k="reload"===O;if(!I&&j.tableLoading)return(0,_vue.nextTick)();let o=[],a=[],e={};if(n&&((I||k)&&(s.currentPage=1),(0,_utils.isEnableConf)(p))&&(e=Object.assign({},s)),I){if(r&&(0,_utils.isEnableConf)(u)&&u.form&&(E=me(),j.formData=E),R){let{tableFullColumn:e,fullColumnFieldData:r}=R.internalData;var U=R.getComputeMaps().computeSortOpts;let t=U.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),o=t.map(e=>{var{field:e,order:t}=e,o=r[e];return o&&(o=o.column)&&(o.order=t),{field:e,property:e,order:t}})),a=R.getCheckedFilters()}}else R&&(k?R.clearAll():(o=R.getSortColumns(),a=R.getCheckedFilters()));let l={code:O,button:w,isInited:I,isReload:k,$grid:B,page:e,sort:o.length?o[0]:{},sorts:o,filters:a,form:E,options:P};return j.sortData=o,j.filterData=a,j.tableLoading=!0,Promise.resolve((f||P)(l,...d)).then(e=>{let t=[];var o,r;return j.tableLoading=!1,e&&(n&&(0,_utils.isEnableConf)(p)?(r=y.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$grid:B}):_xeUtils.default.get(e,r||"page.total"))||0,s.total=_xeUtils.default.toNumber(r),o=y.result,t=(_xeUtils.default.isFunction(o)?o({data:e,$grid:B}):_xeUtils.default.get(e,o||"result"))||[],o=Math.max(Math.ceil(r/s.pageSize),1),s.currentPage>o&&(s.currentPage=o)):(r=y.list,t=(r?_xeUtils.default.isFunction(r)?r({data:e,$grid:B}):_xeUtils.default.get(e,r):e)||[])),R?R.loadData(t):(0,_vue.nextTick)(()=>{R&&R.loadData(t)}),x&&x(l,...d),i&&i(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=C.delete,a=C.deleteSuccess,l=C.deleteError;if(r){let e=M.getCheckboxRecords(),t=e.filter(e=>!R.isInsertByRow(e));var S={removeRecords:t};let o={$grid:B,code:O,button:w,body:S,form:E,options:r};if(e.length)return Q(O,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((i||r)(o,...d)).then(e=>(j.tableLoading=!1,R.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),b?b(o,...d):A.commitProxy("query"),a&&a(Object.assign(Object.assign({},o),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},o),{response:e})),{status:!1}))):R.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=C.save,s=C.saveSuccess,u=C.saveError;if(n){let t=R.getRecordset(),{insertRecords:o,removeRecords:r,updateRecords:a,pendingRecords:l}=t,i={$grid:B,code:O,button:w,body:t,form:E,options:n},e=(o.length&&(t.pendingRecords=l.filter(e=>-1===R.findRowIndexOf(o,e))),l.length&&(t.insertRecords=o.filter(e=>-1===R.findRowIndexOf(l,e))),Promise.resolve());return(e=g?R[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?(j.tableLoading=!0,Promise.resolve((_||n)(i,...d)).then(e=>(j.tableLoading=!1,R.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),h?h(i,...d):A.commitProxy("query"),s&&s(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var S=commands.get(O);S&&((S=S.tableCommandMethod||S.commandMethod)?S({code:O,button:w,$grid:B,$table:R},...d):(0,_log.errLog)("vxe.error.notCommands",[O]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?A.revert():A.maximize()},isMaximized(){return j.isZMax},maximize(){return re(!0)},revert(){return re()},getFormData:z,getFormItems(e){var t=x.value,o=T.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=D.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},xe={extendTableMethods:o,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,o,r,a,l,i=j.isZMax,n=s.value;return n?(e=c.value,t=v.value,o=m.value,r=p.value,a=f.value,l=n.parentElement,(!i&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-xe.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){B.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){B.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){B.zoom(),B.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}};Object.assign(B,M,A,xe,{loadColumn(e){var t=D.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return B.clearAll(),B.loadColumn(e)}});let R=(0,_vue.ref)(0);return(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{R.value++}),(0,_vue.watch)(()=>T.columns,()=>{R.value++}),(0,_vue.watch)(R,()=>{(0,_vue.nextTick)(()=>B.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{_()}),(0,_vue.watch)(S,()=>{h("currentPage")}),(0,_vue.watch)(K,()=>{h("pageSize")}),(0,_vue.watch)(H,()=>{h("total")}),(0,_vue.watch)(()=>T.proxyConfig,()=>{pe()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(B))&&_xeUtils.default.isObject(e)&&Object.assign(B,e)}),h(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns,t=q.value;T.formConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),e&&e.length&&B.loadColumn(e),_(),pe()}),globalEvents.on(B,"keydown",fe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(B,"keydown")}),B.renderVN=()=>{var e=O.value,t=P.value,o=b.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":o}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:o}=U.value,r=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},y(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(B),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},y(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(B)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},y(o))]})())},(0,_vue.provide)("$xeGrid",B),B},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/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","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","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","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","setFilterByEvent","sort","setSort","setSortByEvent","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","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","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","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,_comp.defineVxeComponent)({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(T,e){let t,{slots:u,emit:o}=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(T).computeSize,j=(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}}),s=(0,_vue.ref)(),D=(0,_vue.ref)(),i=(0,_vue.ref)(),d=(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 r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=D.value;if(t&&t[r])return t[r](...e)}}),t};let M=r(tableComponentMethodKeys),q=(tableComponentMethodKeys.forEach(r=>{M[r]=(...e)=>{var t=D.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),Z=(0,_vue.computed)(()=>{var e=q.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),F=(0,_vue.computed)(()=>{var e=q.value;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg}),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),V=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),P=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(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}),I=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,editConfig:r,proxyConfig:o}=T,{isZMax:a,tablePage:l}=j,n=I.value,i=q.value,s=L.value,u=b.value,d=Object.assign({},n);return a&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),o&&(0,_utils.isEnableConf)(i)&&(d.loading=u,t)&&i.seq&&(0,_utils.isEnableConf)(s)&&(d.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),r&&(d.editConfig=Object.assign({},r)),d}),U=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||w).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var S=(0,_vue.computed)(()=>L.value.currentPage),K=(0,_vue.computed)(()=>L.value.pageSize),H=(0,_vue.computed)(()=>L.value.total);let b=(0,_vue.computed)(()=>{var{loading:e,proxyConfig:t}=T,r=j.tableLoading,o=q.value,a=o.showLoading;return e||r&&a&&t&&(0,_utils.isEnableConf)(o)}),G={refElem:s,refTable:D,refForm:i,refToolbar:d,refPager:g},N={computeProxyOpts:q,computePagerOpts:L,computeFormOpts:x,computeToolbarOpts:V,computeZoomOpts:a},B={xID:R,props:T,context:e,reactData:j,getRefMaps:()=>G,getComputeMaps:()=>N},_=()=>{var e=V.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=D.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,r=q.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},h=e=>{var t=j.tablePage,r=T.pagerConfig,o=L.value;r&&(0,_utils.isEnableConf)(o)&&(e?o[e]&&(t[e]=_xeUtils.default.toNumber(o[e])):({currentPage:r,pageSize:e,total:o}=o,r&&(t.currentPage=r),e&&(t.pageSize=e),o&&(t.pageSize=o)))},$=(e,t)=>{var r=q.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:B}):_xeUtils.default.get(e,r):o)||getI18n(t)},Q=(e,t,r)=>{var o=F.value,a=M.getCheckboxRecords();if(o)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 r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},W=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var n=q.value;r.currentPage=a,r.pageSize=l,B.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(n)&&B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,o)})},Y=t=>{var e=D.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=q.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)}))},J=e=>{Y(e),B.dispatchEvent("sort-change",e,e.$event)},X=e=>{Y(e),B.dispatchEvent("clear-all-sort",e,e.$event)},ee=t=>{var e=D.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=q.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,B.commitProxy("query").then(e=>{B.dispatchEvent("proxy-query",e,t.$event)}))},te=e=>{ee(e),B.dispatchEvent("filter-change",e,e.$event)},re=e=>{ee(e),B.dispatchEvent("clear-all-filter",e,e.$event)},oe=t=>{var e=T.proxyConfig,r=q.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&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))},ae=e=>{var t=D.value,r=T.proxyConfig;let o=e.$event;var a=q.value;r&&(0,_utils.isEnableConf)(a)&&(t.clearScroll(),B.commitProxy("reload").then(e=>{B.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)})),B.dispatchEvent("form-reset",e,o)},le=e=>{B.dispatchEvent("form-submit-invalid",e,e.$event)},ne=e=>{var t=e.$event;B.dispatchEvent("form-toggle-collapse",e,t),B.dispatchEvent("form-collapse",e,t)},ie=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>B.recalculate(!0)).then(()=>(setTimeout(()=>B.recalculate(!0),15),j.isZMax))},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},se=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?r[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},ue=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=q.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:B});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:B,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign({ref:i},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:oe,onReset:ae,onSubmitInvalid:le,onCollapse:ne}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(B)},de=()=>{var t,r,o,a,l,n,i=T.toolbarConfig,s=V.value;if(i&&(0,_utils.isEnableConf)(s)||u.toolbar){let e=[];return u.toolbar?e=u.toolbar({$grid:B}):(i={},(n=s.slots)&&(t=C(n,"buttons"),r=C(n,"buttonPrefix"),o=C(n,"buttonSuffix"),a=C(n,"tools"),l=C(n,"toolPrefix"),n=C(n,"toolSuffix"),t&&(i.buttons=t),r&&(i.buttonPrefix=r),o&&(i.buttonSuffix=o),a&&(i.tools=a),l&&(i.toolPrefix=l),n)&&(i.toolSuffix=n),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},s),{slots:void 0}),i))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(B)},ge=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},e({$grid:B})):renderEmptyElement(B)},ce=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:B})):renderEmptyElement(B)},ve=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:B})):renderEmptyElement(B)},me=()=>{var e=T.proxyConfig,t=k.value,r=q.value,o=Object.assign({},xe),a=u.empty,l=u.loading,n=u.rowDragIcon||u["row-drag-icon"],i=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=J,o.onClearAllSort=X),r.filter)&&(o.onFilterChange=te,o.onClearAllFilter=re),{});return a&&(e.empty=a),l&&(e.loading=l),n&&(e.rowDragIcon=n),i&&(e.columnDragIcon=i),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:D},t),o),e)])},pe=()=>u.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},u.bottom({$grid:B})):renderEmptyElement(B),fe=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=q.value,o=L.value,a=u.pager;return t&&(0,_utils.isEnableConf)(o)||u.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:B}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:W}),se(o.slots)):renderEmptyElement(B)]):renderEmptyElement(B)},y=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(ue());break;case"Toolbar":t.push(de());break;case"Top":t.push(ge());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ce(),me(),ve()]));break;case"Bottom":t.push(pe());break;case"Pager":t.push(fe());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},xe={},be=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);xe[e]=(...e)=>o(t,...e)}),()=>{var e=x.value;if(e.items){let a={};return e.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),a}return{}}),_e=()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=q.value,a=x.value;e&&(0,_utils.isEnableConf)(o)&&(t&&(0,_utils.isEnableConf)(a)&&o.form&&a.items&&(j.formData=be()),r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>A.commitProxy("initial")).then(e=>{A.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},he=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&B.triggerZoomEvent(e)};let A={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:B},t))},getEl(){return s.value},commitProxy(t,...d){let{proxyConfig:o,toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=T,s=j.tablePage,v=F.value,m=Z.value;var u=q.value;let p=L.value;var r,a=V.value;let{beforeQuery:f,afterQuery:x,beforeDelete:n,afterDelete:b,beforeSave:_,afterSave:h,ajax:C={}}=u,y=u.response||u.props||{},E=D.value,R=z(),w=null,O=null;O=_xeUtils.default.isString(t)?(r=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,w=a?a.item:null,t):(w=t).code;var l=w?w.params:null;switch(O){case"insert":return E.insert({});case"insert_edit":return E.insert({}).then(({row:e})=>E.setEditRow(e,!0));case"insert_actived":return E.insert({}).then(({row:e})=>E.setEditRow(e,!0));case"mark_cancel":U=O,k=F.value,P=D.value,(I=P.getCheckboxRecords()).length?(P.togglePendingRow(I),M.clearCheckboxRow()):k&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:U,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return Q(O,"vxe.grid.removeSelectRecord",()=>E.removeCheckboxRow());case"import":E.importData(l);break;case"open_import":E.openImport(l);break;case"export":E.exportData(l);break;case"open_export":E.openExport(l);break;case"reset_custom":return E.resetCustom(!0);case"initial":case"reload":case"query":{var P=C.query;let n=C.querySuccess,t=C.queryError;if(P){var I="initial"===O,k="reload"===O;if(!I&&j.tableLoading)return(0,_vue.nextTick)();let r=[],a=[],e={};if(i&&((I||k)&&(s.currentPage=1),(0,_utils.isEnableConf)(p))&&(e=Object.assign({},s)),I){if(o&&(0,_utils.isEnableConf)(u)&&u.form&&(R=be(),j.formData=R),E){let{tableFullColumn:e,fullColumnFieldData:o}=E.internalData;var U=E.getComputeMaps().computeSortOpts;let t=U.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),r=t.map(e=>{var{field:e,order:t}=e,r=o[e];return r&&(r=r.column)&&(r.order=t),{field:e,property:e,order:t}})),a=E.getCheckedFilters()}}else E&&(k?E.clearAll():(r=E.getSortColumns(),a=E.getCheckedFilters()));let l={code:O,button:w,isInited:I,isReload:k,$grid:B,page:e,sort:r.length?r[0]:{},sorts:r,filters:a,form:R,options:P};return j.sortData=r,j.filterData=a,j.tableLoading=!0,Promise.resolve((f||P)(l,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(p)?(o=y.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:B}):_xeUtils.default.get(e,o||"page.total"))||0,s.total=_xeUtils.default.toNumber(o),r=y.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:B}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/s.pageSize),1),s.currentPage>r&&(s.currentPage=r)):(o=y.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:B}):_xeUtils.default.get(e,o):e)||[])),E?E.loadData(t):(0,_vue.nextTick)(()=>{E&&E.loadData(t)}),x&&x(l,...d),n&&n(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=C.delete,a=C.deleteSuccess,l=C.deleteError;if(o){let e=M.getCheckboxRecords(),t=e.filter(e=>!E.isInsertByRow(e));var S={removeRecords:t};let r={$grid:B,code:O,button:w,body:S,form:R,options:o};if(e.length)return Q(O,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((n||o)(r,...d)).then(e=>(j.tableLoading=!1,E.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),b?b(r,...d):A.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):E.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let i=C.save,s=C.saveSuccess,u=C.saveError;if(i){let t=E.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,n={$grid:B,code:O,button:w,body:t,form:R,options:i},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===E.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===E.findRowIndexOf(l,e))),Promise.resolve());return(e=g?E[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((_||i)(n,...d)).then(e=>(j.tableLoading=!1,E.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),h?h(n,...d):A.commitProxy("query"),s&&s(Object.assign(Object.assign({},n),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:O,content:$(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:O,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var S=commands.get(O);S&&((S=S.tableCommandMethod||S.commandMethod)?S({code:O,button:w,$grid:B,$table:E},...d):(0,_log.errLog)("vxe.error.notCommands",[O]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?A.revert():A.maximize()},isMaximized(){return j.isZMax},maximize(){return ie(!0)},revert(){return ie()},getFormData:z,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=D.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},Ce={extendTableMethods:r,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,r,o,a,l,n=j.isZMax,i=s.value;return i?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=i.parentElement,(!n&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(i)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-Ce.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return B.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&B.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){B.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){B.triggerToolbarCommitEvent(e,t),B.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){B.zoom(),B.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}};Object.assign(B,M,A,Ce,{loadColumn(e){var t=D.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return B.clearAll(),B.loadColumn(e)}});let E=(0,_vue.ref)(0);return(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>T.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>B.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{_()}),(0,_vue.watch)(S,()=>{h("currentPage")}),(0,_vue.watch)(K,()=>{h("pageSize")}),(0,_vue.watch)(H,()=>{h("total")}),(0,_vue.watch)(()=>T.proxyConfig,()=>{_e()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(B))&&_xeUtils.default.isObject(e)&&Object.assign(B,e)}),h(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns,t=q.value;T.formConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),e&&e.length&&B.loadColumn(e),_(),_e()}),globalEvents.on(B,"keydown",he)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(B,"keydown")}),B.renderVN=()=>{var e=O.value,t=P.value,r=b.value;return(0,_vue.h)("div",{ref:s,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":r}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=U.value,o=u.asideLeft||u["aside-left"],a=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},y(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(B),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},y(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(B)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},y(r))]})())},(0,_vue.provide)("$xeGrid",B),B},render(){return this.renderVN()}});