vxe-table 4.7.86 → 4.7.88

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.
@@ -362,13 +362,13 @@ export default defineComponent({
362
362
  return '';
363
363
  });
364
364
  const computeValidOpts = computed(() => {
365
- return Object.assign({}, XEUtils.clone(getConfig().table.validConfig, true), props.validConfig);
365
+ return Object.assign({}, getConfig().table.validConfig, props.validConfig);
366
366
  });
367
367
  const computeSXOpts = computed(() => {
368
- return Object.assign({}, XEUtils.clone(getConfig().table.scrollX, true), props.scrollX);
368
+ return Object.assign({}, getConfig().table.scrollX, props.scrollX);
369
369
  });
370
370
  const computeSYOpts = computed(() => {
371
- return Object.assign({}, XEUtils.clone(getConfig().table.scrollY, true), props.scrollY);
371
+ return Object.assign({}, getConfig().table.scrollY, props.scrollY);
372
372
  });
373
373
  const computeRowHeightMaps = computed(() => {
374
374
  return {
@@ -379,29 +379,29 @@ export default defineComponent({
379
379
  };
380
380
  });
381
381
  const computeColumnOpts = computed(() => {
382
- return Object.assign({}, XEUtils.clone(getConfig().table.columnConfig, true), props.columnConfig);
382
+ return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
383
383
  });
384
384
  const computeRowOpts = computed(() => {
385
- return Object.assign({}, XEUtils.clone(getConfig().table.rowConfig, true), props.rowConfig);
385
+ return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
386
386
  });
387
387
  const computeResizeOpts = computed(() => {
388
- return Object.assign({}, XEUtils.clone(getConfig().table.resizeConfig, true), props.resizeConfig);
388
+ return Object.assign({}, getConfig().table.resizeConfig, props.resizeConfig);
389
389
  });
390
390
  const computeResizableOpts = computed(() => {
391
- return Object.assign({}, XEUtils.clone(getConfig().table.resizableConfig, true), props.resizableConfig);
391
+ return Object.assign({}, getConfig().table.resizableConfig, props.resizableConfig);
392
392
  });
393
393
  const computeSeqOpts = computed(() => {
394
- return Object.assign({ startIndex: 0 }, XEUtils.clone(getConfig().table.seqConfig, true), props.seqConfig);
394
+ return Object.assign({ startIndex: 0 }, getConfig().table.seqConfig, props.seqConfig);
395
395
  });
396
396
  const computeRadioOpts = computed(() => {
397
- return Object.assign({}, XEUtils.clone(getConfig().table.radioConfig, true), props.radioConfig);
397
+ return Object.assign({}, getConfig().table.radioConfig, props.radioConfig);
398
398
  });
399
399
  const computeCheckboxOpts = computed(() => {
400
- return Object.assign({}, XEUtils.clone(getConfig().table.checkboxConfig, true), props.checkboxConfig);
400
+ return Object.assign({}, getConfig().table.checkboxConfig, props.checkboxConfig);
401
401
  });
402
402
  let computeTooltipOpts = ref();
403
403
  computeTooltipOpts = computed(() => {
404
- return Object.assign({}, XEUtils.clone(getConfig().tooltip, true), XEUtils.clone(getConfig().table.tooltipConfig, true), props.tooltipConfig);
404
+ return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig);
405
405
  });
406
406
  const computeTipConfig = computed(() => {
407
407
  const tooltipOpts = computeTooltipOpts.value;
@@ -412,31 +412,31 @@ export default defineComponent({
412
412
  return Object.assign({ isArrow: false }, tooltipOpts);
413
413
  });
414
414
  const computeEditOpts = computed(() => {
415
- return Object.assign({}, XEUtils.clone(getConfig().table.editConfig, true), props.editConfig);
415
+ return Object.assign({}, getConfig().table.editConfig, props.editConfig);
416
416
  });
417
417
  const computeSortOpts = computed(() => {
418
- return Object.assign({ orders: ['asc', 'desc', null] }, XEUtils.clone(getConfig().table.sortConfig, true), props.sortConfig);
418
+ return Object.assign({ orders: ['asc', 'desc', null] }, getConfig().table.sortConfig, props.sortConfig);
419
419
  });
420
420
  const computeFilterOpts = computed(() => {
421
- return Object.assign({}, XEUtils.clone(getConfig().table.filterConfig, true), props.filterConfig);
421
+ return Object.assign({}, getConfig().table.filterConfig, props.filterConfig);
422
422
  });
423
423
  const computeMouseOpts = computed(() => {
424
- return Object.assign({}, XEUtils.clone(getConfig().table.mouseConfig, true), props.mouseConfig);
424
+ return Object.assign({}, getConfig().table.mouseConfig, props.mouseConfig);
425
425
  });
426
426
  const computeAreaOpts = computed(() => {
427
- return Object.assign({}, XEUtils.clone(getConfig().table.areaConfig, true), props.areaConfig);
427
+ return Object.assign({}, getConfig().table.areaConfig, props.areaConfig);
428
428
  });
429
429
  const computeKeyboardOpts = computed(() => {
430
- return Object.assign({}, XEUtils.clone(getConfig().table.keyboardConfig, true), props.keyboardConfig);
430
+ return Object.assign({}, getConfig().table.keyboardConfig, props.keyboardConfig);
431
431
  });
432
432
  const computeClipOpts = computed(() => {
433
- return Object.assign({}, XEUtils.clone(getConfig().table.clipConfig, true), props.clipConfig);
433
+ return Object.assign({}, getConfig().table.clipConfig, props.clipConfig);
434
434
  });
435
435
  const computeFNROpts = computed(() => {
436
- return Object.assign({}, XEUtils.clone(getConfig().table.fnrConfig, true), props.fnrConfig);
436
+ return Object.assign({}, getConfig().table.fnrConfig, props.fnrConfig);
437
437
  });
438
438
  const computeMenuOpts = computed(() => {
439
- return Object.assign({}, XEUtils.clone(getConfig().table.menuConfig, true), props.menuConfig);
439
+ return Object.assign({}, getConfig().table.menuConfig, props.menuConfig);
440
440
  });
441
441
  const computeHeaderMenu = computed(() => {
442
442
  const menuOpts = computeMenuOpts.value;
@@ -471,31 +471,31 @@ export default defineComponent({
471
471
  return rest;
472
472
  });
473
473
  const computeExportOpts = computed(() => {
474
- return Object.assign({}, XEUtils.clone(getConfig().table.exportConfig, true), props.exportConfig);
474
+ return Object.assign({}, getConfig().table.exportConfig, props.exportConfig);
475
475
  });
476
476
  const computeImportOpts = computed(() => {
477
- return Object.assign({}, XEUtils.clone(getConfig().table.importConfig, true), props.importConfig);
477
+ return Object.assign({}, getConfig().table.importConfig, props.importConfig);
478
478
  });
479
479
  const computePrintOpts = computed(() => {
480
- return Object.assign({}, XEUtils.clone(getConfig().table.printConfig, true), props.printConfig);
480
+ return Object.assign({}, getConfig().table.printConfig, props.printConfig);
481
481
  });
482
482
  const computeExpandOpts = computed(() => {
483
- return Object.assign({}, XEUtils.clone(getConfig().table.expandConfig, true), props.expandConfig);
483
+ return Object.assign({}, getConfig().table.expandConfig, props.expandConfig);
484
484
  });
485
485
  const computeTreeOpts = computed(() => {
486
- return Object.assign({}, XEUtils.clone(getConfig().table.treeConfig, true), props.treeConfig);
486
+ return Object.assign({}, getConfig().table.treeConfig, props.treeConfig);
487
487
  });
488
488
  const computeEmptyOpts = computed(() => {
489
- return Object.assign({}, XEUtils.clone(getConfig().table.emptyRender, true), props.emptyRender);
489
+ return Object.assign({}, getConfig().table.emptyRender, props.emptyRender);
490
490
  });
491
491
  const computeLoadingOpts = computed(() => {
492
- return Object.assign({}, XEUtils.clone(getConfig().table.loadingConfig, true), props.loadingConfig);
492
+ return Object.assign({}, getConfig().table.loadingConfig, props.loadingConfig);
493
493
  });
494
494
  const computeCellOffsetWidth = computed(() => {
495
495
  return props.border ? Math.max(2, Math.ceil(reactData.scrollbarWidth / reactData.tableColumn.length)) : 1;
496
496
  });
497
497
  const computeCustomOpts = computed(() => {
498
- return Object.assign({}, XEUtils.clone(getConfig().table.customConfig, true), props.customConfig);
498
+ return Object.assign({}, getConfig().table.customConfig, props.customConfig);
499
499
  });
500
500
  const computeAutoWidthColumnList = computed(() => {
501
501
  const { visibleColumn } = internalData;
@@ -724,7 +724,7 @@ export default defineComponent({
724
724
  }
725
725
  return { rowHeight: 0, visibleSize: 8 };
726
726
  };
727
- const calculateMergerOffserIndex = (list, offsetItem, type) => {
727
+ const calculateMergerOffsetIndex = (list, offsetItem, type) => {
728
728
  for (let mcIndex = 0, len = list.length; mcIndex < len; mcIndex++) {
729
729
  const mergeItem = list[mcIndex];
730
730
  const { startIndex, endIndex } = offsetItem;
@@ -1059,7 +1059,9 @@ export default defineComponent({
1059
1059
  }
1060
1060
  else {
1061
1061
  const labelEl = cellEl.firstChild;
1062
- titleWidth = labelEl.offsetWidth;
1062
+ if (labelEl) {
1063
+ titleWidth = labelEl.offsetWidth;
1064
+ }
1063
1065
  }
1064
1066
  if (titleWidth) {
1065
1067
  colWidth = Math.max(colWidth, Math.ceil(titleWidth) + 4);
@@ -1294,6 +1296,7 @@ export default defineComponent({
1294
1296
  const { treeConfig } = props;
1295
1297
  const { treeExpandedMaps } = reactData;
1296
1298
  const treeOpts = computeTreeOpts.value;
1299
+ const childrenField = treeOpts.children || treeOpts.childrenField;
1297
1300
  if (treeConfig && treeOpts.transform) {
1298
1301
  const fullData = [];
1299
1302
  const expandMaps = {};
@@ -1304,7 +1307,7 @@ export default defineComponent({
1304
1307
  expandMaps[rowid] = 1;
1305
1308
  fullData.push(row);
1306
1309
  }
1307
- }, { children: treeOpts.mapChildrenField });
1310
+ }, { children: childrenField });
1308
1311
  internalData.afterFullData = fullData;
1309
1312
  updateScrollYStatus(fullData);
1310
1313
  return fullData;
@@ -1321,6 +1324,7 @@ export default defineComponent({
1321
1324
  const filterOpts = computeFilterOpts.value;
1322
1325
  const sortOpts = computeSortOpts.value;
1323
1326
  const treeOpts = computeTreeOpts.value;
1327
+ const childrenField = treeOpts.children || treeOpts.childrenField;
1324
1328
  const { transform } = treeOpts;
1325
1329
  const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
1326
1330
  const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts;
@@ -1379,7 +1383,12 @@ export default defineComponent({
1379
1383
  };
1380
1384
  if (treeConfig && transform) {
1381
1385
  // 筛选虚拟树
1382
- tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, Object.assign(Object.assign({}, treeOpts), { original: true }));
1386
+ tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
1387
+ original: true,
1388
+ isEvery: true,
1389
+ children: treeOpts.mapChildrenField,
1390
+ mapChildren: childrenField
1391
+ });
1383
1392
  tableData = tableTree;
1384
1393
  }
1385
1394
  else {
@@ -1390,7 +1399,12 @@ export default defineComponent({
1390
1399
  else {
1391
1400
  if (treeConfig && transform) {
1392
1401
  // 还原虚拟树
1393
- tableTree = XEUtils.searchTree(tableFullTreeData, () => true, Object.assign(Object.assign({}, treeOpts), { original: true }));
1402
+ tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
1403
+ original: true,
1404
+ isEvery: true,
1405
+ children: treeOpts.mapChildrenField,
1406
+ mapChildren: childrenField
1407
+ });
1394
1408
  tableData = tableTree;
1395
1409
  }
1396
1410
  else {
@@ -1427,7 +1441,12 @@ export default defineComponent({
1427
1441
  else {
1428
1442
  if (treeConfig && transform) {
1429
1443
  // 还原虚拟树
1430
- tableTree = XEUtils.searchTree(tableFullTreeData, () => true, Object.assign(Object.assign({}, treeOpts), { original: true }));
1444
+ tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
1445
+ original: true,
1446
+ isEvery: true,
1447
+ children: treeOpts.mapChildrenField,
1448
+ mapChildren: childrenField
1449
+ });
1431
1450
  tableData = tableTree;
1432
1451
  }
1433
1452
  else {
@@ -2354,7 +2373,7 @@ export default defineComponent({
2354
2373
  startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
2355
2374
  endIndex: toVisibleIndex + visibleSize + offsetSize
2356
2375
  };
2357
- calculateMergerOffserIndex(mergeList.concat(mergeFooterList), offsetItem, 'col');
2376
+ calculateMergerOffsetIndex(mergeList.concat(mergeFooterList), offsetItem, 'col');
2358
2377
  const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
2359
2378
  if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
2360
2379
  if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
@@ -2641,7 +2660,7 @@ export default defineComponent({
2641
2660
  startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize),
2642
2661
  endIndex: toVisibleIndex + visibleSize + offsetSize
2643
2662
  };
2644
- calculateMergerOffserIndex(mergeList, offsetItem, 'row');
2663
+ calculateMergerOffsetIndex(mergeList, offsetItem, 'row');
2645
2664
  const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
2646
2665
  if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
2647
2666
  if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
@@ -5402,11 +5421,13 @@ export default defineComponent({
5402
5421
  cacheRowMap(isSource) {
5403
5422
  const { treeConfig } = props;
5404
5423
  const treeOpts = computeTreeOpts.value;
5405
- let { fullDataRowIdData, fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
5424
+ const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
5406
5425
  const childrenField = treeOpts.children || treeOpts.childrenField;
5407
5426
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
5408
5427
  const rowkey = getRowkey($xeTable);
5409
5428
  const isLazy = treeConfig && treeOpts.lazy;
5429
+ const fullAllDataRowIdMaps = {};
5430
+ const fullDataRowIdMaps = {};
5410
5431
  const handleRow = (row, index, items, path, parent, nodes) => {
5411
5432
  let rowid = getRowid($xeTable, row);
5412
5433
  const seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
@@ -5418,16 +5439,20 @@ export default defineComponent({
5418
5439
  if (isLazy && row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
5419
5440
  row[childrenField] = null;
5420
5441
  }
5421
- const rest = { row, rowid, seq, index: treeConfig && parent ? -1 : index, _index: -1, $index: -1, items, parent, level };
5442
+ let cacheItem = fullAllDataRowIdData[rowid];
5443
+ if (!cacheItem) {
5444
+ cacheItem = { row, rowid, seq, index: -1, _index: -1, $index: -1, items, parent, level };
5445
+ }
5422
5446
  if (isSource) {
5423
- fullDataRowIdData[rowid] = rest;
5447
+ cacheItem.index = treeConfig && parent ? -1 : index;
5448
+ fullDataRowIdMaps[rowid] = cacheItem;
5424
5449
  }
5425
- fullAllDataRowIdData[rowid] = rest;
5450
+ fullAllDataRowIdMaps[rowid] = cacheItem;
5426
5451
  };
5427
5452
  if (isSource) {
5428
- fullDataRowIdData = internalData.fullDataRowIdData = {};
5453
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
5429
5454
  }
5430
- fullAllDataRowIdData = internalData.fullAllDataRowIdData = {};
5455
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
5431
5456
  if (treeConfig) {
5432
5457
  XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField });
5433
5458
  }
@@ -362,30 +362,37 @@ export function rowToVisible($xeTable, row) {
362
362
  export function colToVisible($xeTable, column) {
363
363
  const { reactData, internalData } = $xeTable;
364
364
  const { refTableBody } = $xeTable.getRefMaps();
365
- const { scrollXLoad } = reactData;
365
+ const { columnStore, scrollXLoad } = reactData;
366
366
  const { visibleColumn } = internalData;
367
+ const { leftList, rightList } = columnStore;
367
368
  const tableBody = refTableBody.value;
368
369
  const bodyElem = tableBody ? tableBody.$el : null;
370
+ let offsetFixedLeft = 0;
371
+ leftList.forEach(item => {
372
+ offsetFixedLeft += item.renderWidth;
373
+ });
374
+ let offsetFixedRight = 0;
375
+ rightList.forEach(item => {
376
+ offsetFixedRight += item.renderWidth;
377
+ });
369
378
  if (bodyElem) {
379
+ const bodyWidth = bodyElem.clientWidth;
380
+ const bodySrcollLeft = bodyElem.scrollLeft;
370
381
  const tdElem = bodyElem.querySelector(`.${column.id}`);
371
382
  if (tdElem) {
372
- const bodyWidth = bodyElem.clientWidth;
373
- const bodySrcollLeft = bodyElem.scrollLeft;
374
383
  const tdOffsetParent = tdElem.offsetParent;
375
384
  const tdOffsetLeft = tdElem.offsetLeft + (tdOffsetParent ? tdOffsetParent.offsetLeft : 0);
376
385
  const tdWidth = tdElem.clientWidth;
377
- // 检测行是否在可视区中
378
- if (tdOffsetLeft < bodySrcollLeft || tdOffsetLeft > bodySrcollLeft + bodyWidth) {
379
- // 向左定位
380
- return $xeTable.scrollTo(tdOffsetLeft);
386
+ // 检测是否在可视区中
387
+ if (tdOffsetLeft < (bodySrcollLeft + offsetFixedLeft)) {
388
+ return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - 1);
381
389
  }
382
- else if (tdOffsetLeft + tdWidth >= bodyWidth + bodySrcollLeft) {
383
- // 向右定位
384
- return $xeTable.scrollTo(bodySrcollLeft + tdWidth);
390
+ else if ((tdOffsetLeft + tdWidth) >= (bodyWidth + bodySrcollLeft - offsetFixedRight)) {
391
+ return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - offsetFixedRight + 1);
385
392
  }
386
393
  }
387
394
  else {
388
- // 如果是虚拟渲染跨行滚动
395
+ // 检测是否在虚拟渲染可视区中
389
396
  if (scrollXLoad) {
390
397
  let scrollLeft = 0;
391
398
  for (let index = 0; index < visibleColumn.length; index++) {
@@ -395,7 +402,10 @@ export function colToVisible($xeTable, column) {
395
402
  }
396
403
  scrollLeft += currCol.renderWidth;
397
404
  }
398
- return $xeTable.scrollTo(scrollLeft);
405
+ if (scrollLeft < bodySrcollLeft) {
406
+ return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - 1);
407
+ }
408
+ return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - offsetFixedRight + 1);
399
409
  }
400
410
  }
401
411
  }
package/es/ui/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "4.7.86";
3
+ export const version = "4.7.88";
4
4
  VxeUI.version = version;
5
- VxeUI.tableVersion = "4.7.86";
5
+ VxeUI.tableVersion = "4.7.88";
6
6
  VxeUI.setConfig({
7
7
  emptyCell: ' ',
8
8
  table: {
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.7.86"}`;
3
+ const version = `table v${"4.7.88"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -116,16 +116,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
116
116
  return proxyOpts.showActiveMsg;
117
117
  });
118
118
  const computePagerOpts = (0, _vue.computed)(() => {
119
- return Object.assign({}, _xeUtils.default.clone(getConfig().grid.pagerConfig, true), props.pagerConfig);
119
+ return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig);
120
120
  });
121
121
  const computeFormOpts = (0, _vue.computed)(() => {
122
- return Object.assign({}, _xeUtils.default.clone(getConfig().grid.formConfig, true), props.formConfig);
122
+ return Object.assign({}, getConfig().grid.formConfig, props.formConfig);
123
123
  });
124
124
  const computeToolbarOpts = (0, _vue.computed)(() => {
125
- return Object.assign({}, _xeUtils.default.clone(getConfig().grid.toolbarConfig, true), props.toolbarConfig);
125
+ return Object.assign({}, getConfig().grid.toolbarConfig, props.toolbarConfig);
126
126
  });
127
127
  const computeZoomOpts = (0, _vue.computed)(() => {
128
- return Object.assign({}, _xeUtils.default.clone(getConfig().grid.zoomConfig, true), props.zoomConfig);
128
+ return Object.assign({}, getConfig().grid.zoomConfig, props.zoomConfig);
129
129
  });
130
130
  const computeStyles = (0, _vue.computed)(() => {
131
131
  return reactData.isZMax ? {
@@ -1 +1 @@
1
- "use strict";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}}const{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_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","getData","getCheckboxRecords","getParentRow","getRowSeq","getRowById","getRowid","getTableData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","isCheckedByCheckboxRow","isIndeterminateByCheckboxRow","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","setRadioRow","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","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(G,e){const{slots:i,emit:r}=e;var y=_xeUtils.default.uniqueId();const l=_ui.VxeUI.getComponent("VxeForm"),u=_ui.VxeUI.getComponent("VxePager"),R=useFns.useSize(G)["computeSize"],Q=(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}}),d=(0,_vue.ref)(),W=(0,_vue.ref)(),g=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),p=(0,_vue.ref)(),x=(0,_vue.ref)();var t=e=>{const t={};return e.forEach(o=>{t[o]=(...e)=>{var t=W.value;if(t&&t[o])return t[o](...e)}}),t};const Y=t(tableComponentMethodKeys),J=(tableComponentMethodKeys.forEach(o=>{Y[o]=(...e)=>{var t=W.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),G.proxyConfig))),ie=(0,_vue.computed)(()=>{var e=J.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),X=(0,_vue.computed)(()=>{return J.value.showActiveMsg}),ee=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.pagerConfig,!0),G.pagerConfig)),b=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.formConfig,!0),G.formConfig)),te=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.toolbarConfig,!0),G.toolbarConfig)),o=(0,_vue.computed)(()=>Object.assign({},_xeUtils.default.clone(getConfig().grid.zoomConfig,!0),G.zoomConfig)),w=(0,_vue.computed)(()=>Q.isZMax?{zIndex:Q.tZindex}:null),O=(0,_vue.computed)(()=>{const t={},o=G;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=G,{isZMax:n,tableLoading:s,tablePage:i,tableData:l}=Q,u=O.value,d=J.value,g=ee.value,c=Object.assign({},u);return n&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||s,c.data=l,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(i.currentPage-1)*i.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),k=(0,_vue.computed)(()=>{var e=G["layouts"];return e&&e.length?e:getConfig().grid.layouts||["Form","Toolbar","Top","Table","Bottom","Pager"]}),U={refElem:d,refTable:W,refForm:g,refToolbar:n,refPager:c},P={computeProxyOpts:J,computePagerOpts:ee,computeFormOpts:b,computeToolbarOpts:te,computeZoomOpts:o},oe={xID:y,props:G,context:e,reactData:Q,getRefMaps:()=>U,getComputeMaps:()=>P},a=()=>{var e=te.value;G.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=W.value,t=n.value;e&&t&&e.connect(t)})},re=()=>{var e=G["proxyConfig"],t=Q["formData"],o=J.value,r=b.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},s=()=>{var e=Q["tablePage"],t=G["pagerConfig"],o=ee.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},ae=(e,t)=>{var o=J.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):r)||getI18n(t)},ne=(e,t,o)=>{var r=X.value,a=Y.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()},j=e=>{var t=G["proxyConfig"],o=Q["tablePage"];const{$event:r,currentPage:a,pageSize:n}=e;var s=J.value;o.currentPage=a,o.pageSize=n,se.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(s)&&se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,r)})},T=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeSortOpts"],r=J.value;e.value.remote&&(Q.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("sort-change",t,t.$event)},D=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeFilterOpts"],r=J.value;e.value.remote&&(Q.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("filter-change",t,t.$event)},V=t=>{var e=G["proxyConfig"],o=J.value;e&&(0,_utils.isEnableConf)(o)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),se.dispatchEvent("form-submit",t,t.$event)},S=e=>{var t=G["proxyConfig"];const o=e["$event"];var r=J.value;t&&(0,_utils.isEnableConf)(r)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)}),se.dispatchEvent("form-reset",e,o)},q=e=>{se.dispatchEvent("form-submit-invalid",e,e.$event)},M=e=>{var t=e["$event"];(0,_vue.nextTick)(()=>Y.recalculate(!0)),se.dispatchEvent("form-toggle-collapse",e,t),se.dispatchEvent("form-collapse",e,t)},_=e=>{var t=Q["isZMax"];return(e?!t:t)&&(Q.isZMax=!t,Q.tZindex<(0,_utils.getLastZIndex)())&&(Q.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>Y.recalculate(!0)).then(()=>Q.isZMax)},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(i[e])return i[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},F=()=>{var{formConfig:e,proxyConfig:t}=G,o=Q["formData"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(a)||i.form){let e=[];if(i.form)e=i.form({$grid:oe});else if(a.items){const n={};if(!a.inited){a.inited=!0;const s=r.beforeItem;r&&s&&a.items.forEach(e=>{s({$grid:oe,item:e})})}a.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(n[e]=i[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:g},Object.assign({},a,{data:t&&(0,_utils.isEnableConf)(r)&&r.form?o:a.data})),{onSubmit:V,onReset:S,onSubmitInvalid:q,onCollapse:M}),n))}return(0,_vue.h)("div",{ref:v,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},N=()=>{var t,o,r=G["toolbarConfig"],a=te.value;if(r&&(0,_utils.isEnableConf)(a)||i.toolbar){let e=[];return i.toolbar?e=i.toolbar({$grid:oe}):(r={},(o=a.slots)&&(t=C(o,"buttons"),o=C(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:n},a),r))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},L=()=>i.top?(0,_vue.h)("div",{ref:f,key:"top",class:"vxe-grid--top-wrapper"},i.top({$grid:oe})):(0,_vue.createCommentVNode)(),$=()=>{var e=i.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},z=()=>{var e=i.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},Z=()=>{var e=G["proxyConfig"],t=I.value,o=J.value,r=Object.assign({},H);const a=i.empty,n=i.loading;e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=T),o.filter)&&(r.onFilterChange=D);e={};return a&&(e.empty=()=>a({$grid:oe})),n&&(e.loading=()=>n({$grid:oe})),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:W},t),r),e)])},B=()=>i.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},i.bottom({$grid:oe})):(0,_vue.createCommentVNode)(),A=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=G,n=J.value,s=ee.value;if(a&&(0,_utils.isEnableConf)(s)||i.pager){let e=[];return i.pager?e=i.pager({$grid:oe}):(a={},(o=s.slots)&&(t=C(o,"left"),o=C(o,"right"),t&&(a.left=t),o)&&(a.right=o),u&&e.push((0,_vue.h)(u,Object.assign(Object.assign(Object.assign({ref:c},s),r&&(0,_utils.isEnableConf)(n)?Q.tablePage:{}),{onPageChange:j}),a))),(0,_vue.h)("div",{ref:x,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},H={},K=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);H[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=G,o=Q["proxyInited"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items){const n={};a.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)),n[o]=e}}),Q.formData=n}o||!(Q.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>se.commitProxy("_init")).then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),le=e=>{var t=o.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&Q.isZMax&&!1!==t.escRestore&&h.triggerZoomEvent(e)};const se={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:oe},t))},commitProxy(t,...r){const{toolbarConfig:q,pagerConfig:a,editRules:M,validConfig:F}=G,n=Q["tablePage"],N=X.value,o=ie.value;var e=J.value;const L=ee.value;var s=te.value;const{beforeQuery:$,afterQuery:z,beforeDelete:Z,afterDelete:B,beforeSave:A,afterSave:H,ajax:i={}}=e,l=e.response||e.props||{},u=W.value;var d=re();let g=null,c=null;c=_xeUtils.default.isString(t)?(e=s["buttons"],s=q&&(0,_utils.isEnableConf)(s)&&e?_xeUtils.default.findTree(e,e=>e.code===t,{children:"dropdowns"}):null,g=s?s.item:null,t):(g=t).code;var v=g?g.params:null;switch(c){case"insert":return u.insert({});case"insert_edit":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"insert_actived":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"mark_cancel":f=c,x=X.value,m=W.value,(p=m.getCheckboxRecords()).length?(m.togglePendingRow(p),Y.clearCheckboxRow()):x&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:f,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return ne(c,"vxe.grid.removeSelectRecord",()=>u.removeCheckboxRow());case"import":u.importData(v);break;case"open_import":u.openImport(v);break;case"export":u.exportData(v);break;case"open_export":u.openExport(v);break;case"reset_custom":return u.resetColumn(!0);case"_init":case"reload":case"query":{var m=i.query;const _=i.querySuccess,C=i.queryError;if(m){var f,p="_init"===c,x="reload"===c;let t=[],o=[],e={};if(a&&((p||x)&&(n.currentPage=1),(0,_utils.isEnableConf)(L))&&(e=Object.assign({},n)),p){let e=null;u&&(f=u.getComputeMaps()["computeSortOpts"],b=f.value,e=b.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),u&&(o=u.getCheckedFilters())}else u&&(x?u.clearAll():(t=u.getSortColumns(),o=u.getCheckedFilters()));const h={code:c,button:g,isInited:p,isReload:x,$grid:oe,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:d,options:m};return Q.sortData=t,Q.filterData=o,Q.tableLoading=!0,Promise.resolve(($||m)(h,...r)).then(e=>{var t,o;return Q.tableLoading=!1,e?a&&(0,_utils.isEnableConf)(L)?(o=l.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=l.result,Q.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:oe}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=l.list,Q.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):e)||[]):Q.tableData=[],z&&z(h,...r),_&&_(Object.assign(Object.assign({},h),{response:e})),{status:!0}}).catch(e=>(Q.tableLoading=!1,C&&C(Object.assign(Object.assign({},h),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{const E=i.delete,y=i.deleteSuccess,R=i.deleteError;if(E){const w=Y.getCheckboxRecords(),O=w.filter(e=>!u.isInsertByRow(e));var b={removeRecords:O};const I={$grid:oe,code:c,button:g,body:b,form:d,options:E};if(w.length)return ne(c,"vxe.grid.deleteSelectRecord",()=>O.length?(Q.tableLoading=!0,Promise.resolve((Z||E)(I,...r)).then(e=>(Q.tableLoading=!1,u.setPendingRow(O,!1),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.delSuccess"),status:"success"}),B?B(I,...r):se.commitProxy("query"),y&&y(Object.assign(Object.assign({},I),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),R&&R(Object.assign(Object.assign({},I),{response:e})),{status:!1}))):u.remove(w));N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,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":{const k=i.save,U=i.saveSuccess,P=i.saveError;if(k){const j=u.getRecordset(),{insertRecords:T,removeRecords:K,updateRecords:D,pendingRecords:V}=j,S={$grid:oe,code:c,button:g,body:j,form:d,options:k};T.length&&(j.pendingRecords=V.filter(e=>-1===u.findRowIndexOf(T,e))),V.length&&(j.insertRecords=T.filter(e=>-1===u.findRowIndexOf(V,e)));let e=Promise.resolve();return(e=M?u[F&&"full"===F.msgMode?"fullValidate":"validate"](j.insertRecords.concat(D)):e).then(e=>{if(!e)return j.insertRecords.length||K.length||D.length||j.pendingRecords.length?(Q.tableLoading=!0,Promise.resolve((A||k)(S,...r)).then(e=>(Q.tableLoading=!1,u.clearPendingRow(),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.saveSuccess"),status:"success"}),H?H(S,...r):se.commitProxy("query"),U&&U(Object.assign(Object.assign({},S),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),P&&P(Object.assign(Object.assign({},S),{response:e})),{status:!1}))):void(N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,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 b=commands.get(c);b&&((b=b.tableCommandMethod||b.commandMethod)?b({code:c,button:g,$grid:oe,$table:u},...r):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[c]))}return(0,_vue.nextTick)()},zoom(){return Q.isZMax?se.revert():se.maximize()},isMaximized(){return Q.isZMax},maximize(){return _(!0)},revert(){return _()},getFormData:re,getFormItems(e){var t=b.value,o=G["formConfig"],r=t["items"];const 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=W.value;return G.proxyConfig?(e=Q["sortData"],{data:Q.tableData,filter:Q.filterData,form:re(),sort:e.length?e[0]:{},sorts:e,pager:Q.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},h=("development"===process.env.NODE_ENV&&(se.loadColumn=e=>{var t=W.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},se.reloadColumn=e=>(Y.clearAll(),se.loadColumn(e))),{extendTableMethods:t,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=G["height"],t=Q["isZMax"],o=d.value,r=v.value,a=m.value,n=f.value,s=p.value,i=x.value;return(t||"auto"!==e&&"100%"!==e?0:(0,_dom.getPaddingTopBottomSize)(o.parentNode))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)},getParentHeight(){var e=d.value;return e?(Q.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-h.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){const o=e["code"];return se.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&se.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){se.zoom(),se.dispatchEvent("zoom",{type:Q.isZMax?"max":"revert"},e)}}),E=(Object.assign(oe,Y,se,h),(0,_vue.ref)(0));(0,_vue.watch)(()=>G.columns?G.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>G.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>oe.loadColumn(G.columns||[]))}),(0,_vue.watch)(()=>G.toolbarConfig,()=>{a()}),(0,_vue.watch)(()=>G.pagerConfig,()=>{s()}),(0,_vue.watch)(()=>G.proxyConfig,()=>{K()}),hooks.forEach(e=>{var e=e["setupGrid"];e&&(e=e(oe))&&_xeUtils.default.isObject(e)&&Object.assign(oe,e)}),s(),(0,_vue.onMounted)(()=>{"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{G.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),G.pagerConfig&&!u&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),(0,_vue.nextTick)(()=>{var e=G["columns"];e&&e.length&&oe.loadColumn(e),a(),K()}),globalEvents.on(oe,"keydown",le)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(oe,"keydown")});return oe.renderVN=()=>{var e=R.value,t=w.value;return(0,_vue.h)("div",{ref:d,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!G.animat,"is--round":G.round,"is--maximize":Q.isZMax,"is--loading":G.loading||Q.tableLoading}],style:t},(()=>{const t=[];return k.value.forEach(e=>{switch(e){case"Form":t.push(F());break;case"Toolbar":t.push(N());break;case"Top":t.push(L());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[$(),Z(),z()]));break;case"Bottom":t.push(B());break;case"Pager":t.push(A());break;default:"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t})())},(0,_vue.provide)("$xeGrid",oe),oe},render(){return this.renderVN()}});
1
+ "use strict";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}}const{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS}=_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","getData","getCheckboxRecords","getParentRow","getRowSeq","getRowById","getRowid","getTableData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","isCheckedByCheckboxRow","isIndeterminateByCheckboxRow","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","setRadioRow","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","getPendingRecords","clearPendingRow","sort","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(G,e){const{slots:i,emit:r}=e;var y=_xeUtils.default.uniqueId();const l=_ui.VxeUI.getComponent("VxeForm"),u=_ui.VxeUI.getComponent("VxePager"),R=useFns.useSize(G)["computeSize"],Q=(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}}),d=(0,_vue.ref)(),W=(0,_vue.ref)(),g=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)(),x=(0,_vue.ref)();var t=e=>{const t={};return e.forEach(o=>{t[o]=(...e)=>{var t=W.value;if(t&&t[o])return t[o](...e)}}),t};const Y=t(tableComponentMethodKeys),J=(tableComponentMethodKeys.forEach(o=>{Y[o]=(...e)=>{var t=W.value;if(t&&t[o])return t&&t[o](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),G.proxyConfig))),ie=(0,_vue.computed)(()=>{var e=J.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),X=(0,_vue.computed)(()=>{return J.value.showActiveMsg}),ee=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,G.pagerConfig)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,G.formConfig)),te=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,G.toolbarConfig)),o=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,G.zoomConfig)),w=(0,_vue.computed)(()=>Q.isZMax?{zIndex:Q.tZindex}:null),O=(0,_vue.computed)(()=>{const t={},o=G;return tableComponentPropKeys.forEach(e=>{t[e]=o[e]}),t}),I=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:o,editConfig:r,proxyConfig:a}=G,{isZMax:n,tableLoading:s,tablePage:i,tableData:l}=Q,u=O.value,d=J.value,g=ee.value,c=Object.assign({},u);return n&&(u.maxHeight?c.maxHeight="100%":c.height="100%"),a&&(0,_utils.isEnableConf)(d)&&(c.loading=o||s,c.data=l,t)&&d.seq&&(0,_utils.isEnableConf)(g)&&(c.seqConfig=Object.assign({},e,{startIndex:(i.currentPage-1)*i.pageSize})),r&&(c.editConfig=Object.assign({},r)),c}),k=(0,_vue.computed)(()=>{var e=G["layouts"];return e&&e.length?e:getConfig().grid.layouts||["Form","Toolbar","Top","Table","Bottom","Pager"]}),P={refElem:d,refTable:W,refForm:g,refToolbar:n,refPager:c},U={computeProxyOpts:J,computePagerOpts:ee,computeFormOpts:b,computeToolbarOpts:te,computeZoomOpts:o},oe={xID:y,props:G,context:e,reactData:Q,getRefMaps:()=>P,getComputeMaps:()=>U},a=()=>{var e=te.value;G.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=W.value,t=n.value;e&&t&&e.connect(t)})},re=()=>{var e=G["proxyConfig"],t=Q["formData"],o=J.value,r=b.value;return e&&(0,_utils.isEnableConf)(o)&&o.form?t:r.data},s=()=>{var e=Q["tablePage"],t=G["pagerConfig"],o=ee.value,{currentPage:r,pageSize:a}=o;t&&(0,_utils.isEnableConf)(o)&&(r&&(e.currentPage=r),a)&&(e.pageSize=a)},ae=(e,t)=>{var o=J.value,o=(o.response||o.props||{}).message;let r;return(r=e&&o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):r)||getI18n(t)},ne=(e,t,o)=>{var r=X.value,a=Y.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()},j=e=>{var t=G["proxyConfig"],o=Q["tablePage"];const{$event:r,currentPage:a,pageSize:n}=e;var s=J.value;o.currentPage=a,o.pageSize=n,se.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(s)&&se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,r)})},T=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeSortOpts"],r=J.value;e.value.remote&&(Q.sortData=t.sortList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("sort-change",t,t.$event)},D=t=>{var e=W.value,o=G["proxyConfig"],e=e.getComputeMaps()["computeFilterOpts"],r=J.value;e.value.remote&&(Q.filterData=t.filterList,o)&&(0,_utils.isEnableConf)(r)&&(Q.tablePage.currentPage=1,se.commitProxy("query").then(e=>{se.dispatchEvent("proxy-query",e,t.$event)})),se.dispatchEvent("filter-change",t,t.$event)},V=t=>{var e=G["proxyConfig"],o=J.value;e&&(0,_utils.isEnableConf)(o)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),se.dispatchEvent("form-submit",t,t.$event)},S=e=>{var t=G["proxyConfig"];const o=e["$event"];var r=J.value;t&&(0,_utils.isEnableConf)(r)&&se.commitProxy("reload").then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),o)}),se.dispatchEvent("form-reset",e,o)},q=e=>{se.dispatchEvent("form-submit-invalid",e,e.$event)},M=e=>{var t=e["$event"];(0,_vue.nextTick)(()=>Y.recalculate(!0)),se.dispatchEvent("form-toggle-collapse",e,t),se.dispatchEvent("form-collapse",e,t)},_=e=>{var t=Q["isZMax"];return(e?!t:t)&&(Q.isZMax=!t,Q.tZindex<(0,_utils.getLastZIndex)())&&(Q.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>Y.recalculate(!0)).then(()=>Q.isZMax)},C=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(i[e])return i[e];"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notSlot",[e])}return null},F=()=>{var{formConfig:e,proxyConfig:t}=G,o=Q["formData"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(a)||i.form){let e=[];if(i.form)e=i.form({$grid:oe});else if(a.items){const n={};if(!a.inited){a.inited=!0;const s=r.beforeItem;r&&s&&a.items.forEach(e=>{s({$grid:oe,item:e})})}a.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]&&(n[e]=i[e])})}),l&&e.push((0,_vue.h)(l,Object.assign(Object.assign({ref:g},Object.assign({},a,{data:t&&(0,_utils.isEnableConf)(r)&&r.form?o:a.data})),{onSubmit:V,onReset:S,onSubmitInvalid:q,onCollapse:M}),n))}return(0,_vue.h)("div",{ref:v,key:"form",class:"vxe-grid--form-wrapper"},e)}return(0,_vue.createCommentVNode)()},N=()=>{var t,o,r=G["toolbarConfig"],a=te.value;if(r&&(0,_utils.isEnableConf)(a)||i.toolbar){let e=[];return i.toolbar?e=i.toolbar({$grid:oe}):(r={},(o=a.slots)&&(t=C(o,"buttons"),o=C(o,"tools"),t&&(r.buttons=t),o)&&(r.tools=o),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:n},a),r))),(0,_vue.h)("div",{ref:m,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return(0,_vue.createCommentVNode)()},L=()=>i.top?(0,_vue.h)("div",{ref:p,key:"top",class:"vxe-grid--top-wrapper"},i.top({$grid:oe})):(0,_vue.createCommentVNode)(),$=()=>{var e=i.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},z=()=>{var e=i.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:oe})):(0,_vue.createCommentVNode)()},Z=()=>{var e=G["proxyConfig"],t=I.value,o=J.value,r=Object.assign({},H);const a=i.empty,n=i.loading;e&&(0,_utils.isEnableConf)(o)&&(o.sort&&(r.onSortChange=T),o.filter)&&(r.onFilterChange=D);e={};return a&&(e.empty=()=>a({$grid:oe})),n&&(e.loading=()=>n({$grid:oe})),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:W},t),r),e)])},B=()=>i.bottom?(0,_vue.h)("div",{ref:f,key:"bottom",class:"vxe-grid--bottom-wrapper"},i.bottom({$grid:oe})):(0,_vue.createCommentVNode)(),A=()=>{var t,o,{proxyConfig:r,pagerConfig:a}=G,n=J.value,s=ee.value;if(a&&(0,_utils.isEnableConf)(s)||i.pager){let e=[];return i.pager?e=i.pager({$grid:oe}):(a={},(o=s.slots)&&(t=C(o,"left"),o=C(o,"right"),t&&(a.left=t),o)&&(a.right=o),u&&e.push((0,_vue.h)(u,Object.assign(Object.assign(Object.assign({ref:c},s),r&&(0,_utils.isEnableConf)(n)?Q.tablePage:{}),{onPageChange:j}),a))),(0,_vue.h)("div",{ref:x,key:"pager",class:"vxe-grid--pager-wrapper"},e)}return(0,_vue.createCommentVNode)()},H={},K=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);H[e]=(...e)=>r(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=G,o=Q["proxyInited"],r=J.value,a=b.value;if(e&&(0,_utils.isEnableConf)(r)){if(t&&(0,_utils.isEnableConf)(a)&&r.form&&a.items){const n={};a.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)),n[o]=e}}),Q.formData=n}o||!(Q.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>se.commitProxy("_init")).then(e=>{se.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),le=e=>{var t=o.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&Q.isZMax&&!1!==t.escRestore&&h.triggerZoomEvent(e)};const se={dispatchEvent:(e,t,o)=>{r(e,createEvent(o,{$grid:oe},t))},commitProxy(t,...r){const{toolbarConfig:q,pagerConfig:a,editRules:M,validConfig:F}=G,n=Q["tablePage"],N=X.value,o=ie.value;var e=J.value;const L=ee.value;var s=te.value;const{beforeQuery:$,afterQuery:z,beforeDelete:Z,afterDelete:B,beforeSave:A,afterSave:H,ajax:i={}}=e,l=e.response||e.props||{},u=W.value;var d=re();let g=null,c=null;c=_xeUtils.default.isString(t)?(e=s["buttons"],s=q&&(0,_utils.isEnableConf)(s)&&e?_xeUtils.default.findTree(e,e=>e.code===t,{children:"dropdowns"}):null,g=s?s.item:null,t):(g=t).code;var v=g?g.params:null;switch(c){case"insert":return u.insert({});case"insert_edit":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"insert_actived":return u.insert({}).then(({row:e})=>u.setEditRow(e));case"mark_cancel":p=c,x=X.value,m=W.value,(f=m.getCheckboxRecords()).length?(m.togglePendingRow(f),Y.clearCheckboxRow()):x&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:p,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return ne(c,"vxe.grid.removeSelectRecord",()=>u.removeCheckboxRow());case"import":u.importData(v);break;case"open_import":u.openImport(v);break;case"export":u.exportData(v);break;case"open_export":u.openExport(v);break;case"reset_custom":return u.resetColumn(!0);case"_init":case"reload":case"query":{var m=i.query;const _=i.querySuccess,C=i.queryError;if(m){var p,f="_init"===c,x="reload"===c;let t=[],o=[],e={};if(a&&((f||x)&&(n.currentPage=1),(0,_utils.isEnableConf)(L))&&(e=Object.assign({},n)),f){let e=null;u&&(p=u.getComputeMaps()["computeSortOpts"],b=p.value,e=b.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),u&&(o=u.getCheckedFilters())}else u&&(x?u.clearAll():(t=u.getSortColumns(),o=u.getCheckedFilters()));const h={code:c,button:g,isInited:f,isReload:x,$grid:oe,page:e,sort:t.length?t[0]:{},sorts:t,filters:o,form:d,options:m};return Q.sortData=t,Q.filterData=o,Q.tableLoading=!0,Promise.resolve(($||m)(h,...r)).then(e=>{var t,o;return Q.tableLoading=!1,e?a&&(0,_utils.isEnableConf)(L)?(o=l.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),t=l.result,Q.tableData=(_xeUtils.default.isFunction(t)?t({data:e,$grid:oe}):_xeUtils.default.get(e,t||"result"))||[],t=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>t&&(n.currentPage=t)):(o=l.list,Q.tableData=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:oe}):_xeUtils.default.get(e,o):e)||[]):Q.tableData=[],z&&z(h,...r),_&&_(Object.assign(Object.assign({},h),{response:e})),{status:!0}}).catch(e=>(Q.tableLoading=!1,C&&C(Object.assign(Object.assign({},h),{response:e})),{status:!1}))}"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{const E=i.delete,y=i.deleteSuccess,R=i.deleteError;if(E){const w=Y.getCheckboxRecords(),O=w.filter(e=>!u.isInsertByRow(e));var b={removeRecords:O};const I={$grid:oe,code:c,button:g,body:b,form:d,options:E};if(w.length)return ne(c,"vxe.grid.deleteSelectRecord",()=>O.length?(Q.tableLoading=!0,Promise.resolve((Z||E)(I,...r)).then(e=>(Q.tableLoading=!1,u.setPendingRow(O,!1),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.delSuccess"),status:"success"}),B?B(I,...r):se.commitProxy("query"),y&&y(Object.assign(Object.assign({},I),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),R&&R(Object.assign(Object.assign({},I),{response:e})),{status:!1}))):u.remove(w));N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,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":{const k=i.save,P=i.saveSuccess,U=i.saveError;if(k){const j=u.getRecordset(),{insertRecords:T,removeRecords:K,updateRecords:D,pendingRecords:V}=j,S={$grid:oe,code:c,button:g,body:j,form:d,options:k};T.length&&(j.pendingRecords=V.filter(e=>-1===u.findRowIndexOf(T,e))),V.length&&(j.insertRecords=T.filter(e=>-1===u.findRowIndexOf(V,e)));let e=Promise.resolve();return(e=M?u[F&&"full"===F.msgMode?"fullValidate":"validate"](j.insertRecords.concat(D)):e).then(e=>{if(!e)return j.insertRecords.length||K.length||D.length||j.pendingRecords.length?(Q.tableLoading=!0,Promise.resolve((A||k)(S,...r)).then(e=>(Q.tableLoading=!1,u.clearPendingRow(),o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:ae(e,"vxe.grid.saveSuccess"),status:"success"}),H?H(S,...r):se.commitProxy("query"),P&&P(Object.assign(Object.assign({},S),{response:e})),{status:!0})).catch(e=>(Q.tableLoading=!1,o&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,content:ae(e,"vxe.grid.operError"),status:"error"}),U&&U(Object.assign(Object.assign({},S),{response:e})),{status:!1}))):void(N&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:c,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 b=commands.get(c);b&&((b=b.tableCommandMethod||b.commandMethod)?b({code:c,button:g,$grid:oe,$table:u},...r):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notCommands",[c]))}return(0,_vue.nextTick)()},zoom(){return Q.isZMax?se.revert():se.maximize()},isMaximized(){return Q.isZMax},maximize(){return _(!0)},revert(){return _()},getFormData:re,getFormItems(e){var t=b.value,o=G["formConfig"],r=t["items"];const 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=W.value;return G.proxyConfig?(e=Q["sortData"],{data:Q.tableData,filter:Q.filterData,form:re(),sort:e.length?e[0]:{},sorts:e,pager:Q.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},h=("development"===process.env.NODE_ENV&&(se.loadColumn=e=>{var t=W.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||i[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},se.reloadColumn=e=>(Y.clearAll(),se.loadColumn(e))),{extendTableMethods:t,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e=G["height"],t=Q["isZMax"],o=d.value,r=v.value,a=m.value,n=p.value,s=f.value,i=x.value;return(t||"auto"!==e&&"100%"!==e?0:(0,_dom.getPaddingTopBottomSize)(o.parentNode))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)},getParentHeight(){var e=d.value;return e?(Q.isZMax?(0,_dom.getDomNode)().visibleHeight:_xeUtils.default.toNumber(getComputedStyle(e.parentNode).height))-h.getExcludeHeight():0},triggerToolbarCommitEvent(e,t){const o=e["code"];return se.commitProxy(e,t).then(e=>{o&&e&&e.status&&["query","reload","delete","save"].includes(o)&&se.dispatchEvent("delete"===o||"save"===o?"proxy-"+o:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===o}),t)})},triggerToolbarBtnEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){h.triggerToolbarCommitEvent(e,t),se.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){se.zoom(),se.dispatchEvent("zoom",{type:Q.isZMax?"max":"revert"},e)}}),E=(Object.assign(oe,Y,se,h),(0,_vue.ref)(0));(0,_vue.watch)(()=>G.columns?G.columns.length:-1,()=>{E.value++}),(0,_vue.watch)(()=>G.columns,()=>{E.value++}),(0,_vue.watch)(E,()=>{(0,_vue.nextTick)(()=>oe.loadColumn(G.columns||[]))}),(0,_vue.watch)(()=>G.toolbarConfig,()=>{a()}),(0,_vue.watch)(()=>G.pagerConfig,()=>{s()}),(0,_vue.watch)(()=>G.proxyConfig,()=>{K()}),hooks.forEach(e=>{var e=e["setupGrid"];e&&(e=e(oe))&&_xeUtils.default.isObject(e)&&Object.assign(oe,e)}),s(),(0,_vue.onMounted)(()=>{"development"===process.env.NODE_ENV&&(0,_vue.nextTick)(()=>{G.formConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),G.pagerConfig&&!u&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),(0,_vue.nextTick)(()=>{var e=G["columns"];e&&e.length&&oe.loadColumn(e),a(),K()}),globalEvents.on(oe,"keydown",le)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(oe,"keydown")});return oe.renderVN=()=>{var e=R.value,t=w.value;return(0,_vue.h)("div",{ref:d,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!G.animat,"is--round":G.round,"is--maximize":Q.isZMax,"is--loading":G.loading||Q.tableLoading}],style:t},(()=>{const t=[];return k.value.forEach(e=>{switch(e){case"Form":t.push(F());break;case"Toolbar":t.push(N());break;case"Top":t.push(L());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[$(),Z(),z()]));break;case"Bottom":t.push(B());break;case"Pager":t.push(A());break;default:"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t})())},(0,_vue.provide)("$xeGrid",oe),oe},render(){return this.renderVN()}});