pro-design-vue 1.3.21 → 1.3.23

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 (127) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +1217 -1585
  3. package/dist/index.full.min.js +7 -9
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +7 -9
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +1218 -1586
  8. package/es/components/config-provider/src/typing.d.ts +1 -0
  9. package/es/components/table/src/components/Body/Body.vue.d.ts +261 -15
  10. package/es/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
  11. package/es/components/table/src/components/Body/BodyEditCell.d.ts +61 -0
  12. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +261 -15
  13. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +261 -15
  14. package/es/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
  15. package/es/components/table/src/components/InteralTable.vue.d.ts +314 -19
  16. package/es/components/table/src/components/Table.d.ts +51 -0
  17. package/es/components/table/src/components/context/TableContext.d.ts +4 -0
  18. package/es/components/table/src/components/interface.d.ts +290 -23
  19. package/es/components/table/src/hooks/useCellProps.d.ts +5 -1
  20. package/es/components/table/src/hooks/useEdit.d.ts +24 -7
  21. package/es/components/table/src/utils/form-model.d.ts +25 -0
  22. package/es/components/table/src/utils/util.d.ts +1 -0
  23. package/es/index.d.ts +271 -5
  24. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs +35 -0
  25. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs.map +1 -0
  26. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs +129 -0
  27. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs.map +1 -0
  28. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs +292 -0
  29. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs.map +1 -0
  30. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +63 -8
  31. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  32. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +24 -18
  33. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  34. package/es/packages/components/table/src/components/Body/{BodyCell.mjs → BodyTextCell.mjs} +25 -155
  35. package/es/packages/components/table/src/components/Body/BodyTextCell.mjs.map +1 -0
  36. package/es/packages/components/table/src/components/InteralTable.vue.mjs +24 -25
  37. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  38. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +36 -97
  39. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  40. package/es/packages/components/table/src/components/Table.mjs +24 -20
  41. package/es/packages/components/table/src/components/Table.mjs.map +1 -1
  42. package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
  43. package/es/packages/components/table/src/components/interface.mjs +24 -0
  44. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  45. package/es/packages/components/table/src/hooks/useCellProps.mjs +8 -0
  46. package/es/packages/components/table/src/hooks/useCellProps.mjs.map +1 -1
  47. package/es/packages/components/table/src/hooks/useEdit.mjs +293 -18
  48. package/es/packages/components/table/src/hooks/useEdit.mjs.map +1 -1
  49. package/es/packages/components/table/src/utils/form-model.mjs +98 -0
  50. package/es/packages/components/table/src/utils/form-model.mjs.map +1 -0
  51. package/es/packages/components/table/src/utils/util.mjs +4 -1
  52. package/es/packages/components/table/src/utils/util.mjs.map +1 -1
  53. package/es/packages/utils/dom.mjs +15 -1
  54. package/es/packages/utils/dom.mjs.map +1 -1
  55. package/es/packages/utils/index.mjs +1 -1
  56. package/es/utils/dom.d.ts +2 -0
  57. package/es/version.d.ts +1 -1
  58. package/es/version.mjs +1 -1
  59. package/es/version.mjs.map +1 -1
  60. package/lib/components/config-provider/src/typing.d.ts +1 -0
  61. package/lib/components/table/src/components/Body/Body.vue.d.ts +261 -15
  62. package/lib/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
  63. package/lib/components/table/src/components/Body/BodyEditCell.d.ts +61 -0
  64. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +261 -15
  65. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +261 -15
  66. package/lib/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
  67. package/lib/components/table/src/components/InteralTable.vue.d.ts +314 -19
  68. package/lib/components/table/src/components/Table.d.ts +51 -0
  69. package/lib/components/table/src/components/context/TableContext.d.ts +4 -0
  70. package/lib/components/table/src/components/interface.d.ts +290 -23
  71. package/lib/components/table/src/hooks/useCellProps.d.ts +5 -1
  72. package/lib/components/table/src/hooks/useEdit.d.ts +24 -7
  73. package/lib/components/table/src/utils/form-model.d.ts +25 -0
  74. package/lib/components/table/src/utils/util.d.ts +1 -0
  75. package/lib/index.d.ts +271 -5
  76. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js +39 -0
  77. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js.map +1 -0
  78. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js +133 -0
  79. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js.map +1 -0
  80. package/lib/packages/components/table/src/components/Body/BodyEditCell.js +297 -0
  81. package/lib/packages/components/table/src/components/Body/BodyEditCell.js.map +1 -0
  82. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +63 -8
  83. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  84. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +22 -16
  85. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  86. package/lib/packages/components/table/src/components/Body/{BodyCell.js → BodyTextCell.js} +24 -154
  87. package/lib/packages/components/table/src/components/Body/BodyTextCell.js.map +1 -0
  88. package/lib/packages/components/table/src/components/InteralTable.vue.js +24 -25
  89. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  90. package/lib/packages/components/table/src/components/InteralTable.vue2.js +36 -97
  91. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  92. package/lib/packages/components/table/src/components/Table.js +24 -20
  93. package/lib/packages/components/table/src/components/Table.js.map +1 -1
  94. package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
  95. package/lib/packages/components/table/src/components/interface.js +24 -0
  96. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  97. package/lib/packages/components/table/src/hooks/useCellProps.js +8 -0
  98. package/lib/packages/components/table/src/hooks/useCellProps.js.map +1 -1
  99. package/lib/packages/components/table/src/hooks/useEdit.js +292 -17
  100. package/lib/packages/components/table/src/hooks/useEdit.js.map +1 -1
  101. package/lib/packages/components/table/src/utils/form-model.js +102 -0
  102. package/lib/packages/components/table/src/utils/form-model.js.map +1 -0
  103. package/lib/packages/components/table/src/utils/util.js +4 -0
  104. package/lib/packages/components/table/src/utils/util.js.map +1 -1
  105. package/lib/packages/utils/dom.js +16 -0
  106. package/lib/packages/utils/dom.js.map +1 -1
  107. package/lib/packages/utils/index.js +2 -0
  108. package/lib/packages/utils/index.js.map +1 -1
  109. package/lib/utils/dom.d.ts +2 -0
  110. package/lib/version.d.ts +1 -1
  111. package/lib/version.js +1 -1
  112. package/lib/version.js.map +1 -1
  113. package/package.json +1 -1
  114. package/theme-chalk/index.css +1 -1
  115. package/theme-chalk/src/table/table.less +40 -2
  116. package/es/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
  117. package/es/packages/components/table/src/components/Body/BodyCell.mjs.map +0 -1
  118. package/es/packages/components/table/src/components/Body/EditInput.vue.mjs +0 -48
  119. package/es/packages/components/table/src/components/Body/EditInput.vue.mjs.map +0 -1
  120. package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs +0 -151
  121. package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs.map +0 -1
  122. package/lib/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
  123. package/lib/packages/components/table/src/components/Body/BodyCell.js.map +0 -1
  124. package/lib/packages/components/table/src/components/Body/EditInput.vue.js +0 -52
  125. package/lib/packages/components/table/src/components/Body/EditInput.vue.js.map +0 -1
  126. package/lib/packages/components/table/src/components/Body/EditInput.vue2.js +0 -155
  127. package/lib/packages/components/table/src/components/Body/EditInput.vue2.js.map +0 -1
@@ -1,4 +1,4 @@
1
- /*! Pro Design Vue v1.3.21 */
1
+ /*! Pro Design Vue v1.3.23 */
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('ant-design-vue'), require('vue'), require('ant-design-vue/es/locale/zh_CN.js')) :
@@ -32,7 +32,7 @@
32
32
  const DEFAULT_NAMESPACE = "pro";
33
33
  const DEFAULT_LOCALE = "zh-CN";
34
34
 
35
- const version$1 = "1.3.21";
35
+ const version$1 = "1.3.23";
36
36
 
37
37
  const makeInstaller = (components = []) => {
38
38
  const install = (app) => {
@@ -766,7 +766,7 @@
766
766
  return newNode;
767
767
  }
768
768
 
769
- function _objectSpread$u(target) {
769
+ function _objectSpread$v(target) {
770
770
  for (var i = 1; i < arguments.length; i++) {
771
771
  var source = arguments[i] != null ? Object(arguments[i]) : {};
772
772
  var ownKeys = Object.keys(source);
@@ -776,12 +776,12 @@
776
776
  }));
777
777
  }
778
778
  ownKeys.forEach(function(key) {
779
- _defineProperty$v(target, key, source[key]);
779
+ _defineProperty$w(target, key, source[key]);
780
780
  });
781
781
  }
782
782
  return target;
783
783
  }
784
- function _defineProperty$v(obj, key, value) {
784
+ function _defineProperty$w(obj, key, value) {
785
785
  if (key in obj) {
786
786
  Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
787
787
  } else {
@@ -802,13 +802,13 @@
802
802
  }
803
803
  function generate(node, key, rootProps) {
804
804
  if (!rootProps) {
805
- return vue.h(node.tag, _objectSpread$u({
805
+ return vue.h(node.tag, _objectSpread$v({
806
806
  key
807
807
  }, node.attrs), (node.children || []).map(function(child, index) {
808
808
  return generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index));
809
809
  }));
810
810
  }
811
- return vue.h(node.tag, _objectSpread$u({
811
+ return vue.h(node.tag, _objectSpread$v({
812
812
  key
813
813
  }, rootProps, node.attrs), (node.children || []).map(function(child, index) {
814
814
  return generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index));
@@ -892,7 +892,7 @@
892
892
  }
893
893
  return target;
894
894
  }
895
- function _objectSpread$t(target) {
895
+ function _objectSpread$u(target) {
896
896
  for (var i = 1; i < arguments.length; i++) {
897
897
  var source = arguments[i] != null ? Object(arguments[i]) : {};
898
898
  var ownKeys = Object.keys(source);
@@ -902,12 +902,12 @@
902
902
  }));
903
903
  }
904
904
  ownKeys.forEach(function(key) {
905
- _defineProperty$u(target, key, source[key]);
905
+ _defineProperty$v(target, key, source[key]);
906
906
  });
907
907
  }
908
908
  return target;
909
909
  }
910
- function _defineProperty$u(obj, key, value) {
910
+ function _defineProperty$v(obj, key, value) {
911
911
  if (key in obj) {
912
912
  Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
913
913
  } else {
@@ -927,10 +927,10 @@
927
927
  twoToneColorPalette.calculated = !!secondaryColor;
928
928
  }
929
929
  function getTwoToneColors() {
930
- return _objectSpread$t({}, twoToneColorPalette);
930
+ return _objectSpread$u({}, twoToneColorPalette);
931
931
  }
932
932
  var IconBase = function IconBase2(props, context) {
933
- var _props$context$attrs = _objectSpread$t({}, props, context.attrs), icon = _props$context$attrs.icon, primaryColor = _props$context$attrs.primaryColor, secondaryColor = _props$context$attrs.secondaryColor, restProps = _objectWithoutProperties$2(_props$context$attrs, _excluded$2);
933
+ var _props$context$attrs = _objectSpread$u({}, props, context.attrs), icon = _props$context$attrs.icon, primaryColor = _props$context$attrs.primaryColor, secondaryColor = _props$context$attrs.secondaryColor, restProps = _objectWithoutProperties$2(_props$context$attrs, _excluded$2);
934
934
  var colors = twoToneColorPalette;
935
935
  if (primaryColor) {
936
936
  colors = {
@@ -944,11 +944,11 @@
944
944
  }
945
945
  var target = icon;
946
946
  if (target && typeof target.icon === "function") {
947
- target = _objectSpread$t({}, target, {
947
+ target = _objectSpread$u({}, target, {
948
948
  icon: target.icon(colors.primaryColor, colors.secondaryColor)
949
949
  });
950
950
  }
951
- return generate(target.icon, "svg-".concat(target.name), _objectSpread$t({}, restProps, {
951
+ return generate(target.icon, "svg-".concat(target.name), _objectSpread$u({}, restProps, {
952
952
  "data-icon": target.name,
953
953
  width: "1em",
954
954
  height: "1em",
@@ -1089,7 +1089,7 @@
1089
1089
  function _arrayWithHoles(arr) {
1090
1090
  if (Array.isArray(arr)) return arr;
1091
1091
  }
1092
- function _objectSpread$s(target) {
1092
+ function _objectSpread$t(target) {
1093
1093
  for (var i = 1; i < arguments.length; i++) {
1094
1094
  var source = arguments[i] != null ? Object(arguments[i]) : {};
1095
1095
  var ownKeys = Object.keys(source);
@@ -1099,12 +1099,12 @@
1099
1099
  }));
1100
1100
  }
1101
1101
  ownKeys.forEach(function(key) {
1102
- _defineProperty$t(target, key, source[key]);
1102
+ _defineProperty$u(target, key, source[key]);
1103
1103
  });
1104
1104
  }
1105
1105
  return target;
1106
1106
  }
1107
- function _defineProperty$t(obj, key, value) {
1107
+ function _defineProperty$u(obj, key, value) {
1108
1108
  if (key in obj) {
1109
1109
  Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
1110
1110
  } else {
@@ -1142,9 +1142,9 @@
1142
1142
  setTwoToneColor(blue.primary);
1143
1143
  var Icon$1 = function Icon2(props, context) {
1144
1144
  var _classObj;
1145
- var _props$context$attrs = _objectSpread$s({}, props, context.attrs), cls = _props$context$attrs["class"], icon = _props$context$attrs.icon, spin = _props$context$attrs.spin, rotate = _props$context$attrs.rotate, tabindex = _props$context$attrs.tabindex, twoToneColor = _props$context$attrs.twoToneColor, onClick = _props$context$attrs.onClick, restProps = _objectWithoutProperties$1(_props$context$attrs, _excluded$1);
1145
+ var _props$context$attrs = _objectSpread$t({}, props, context.attrs), cls = _props$context$attrs["class"], icon = _props$context$attrs.icon, spin = _props$context$attrs.spin, rotate = _props$context$attrs.rotate, tabindex = _props$context$attrs.tabindex, twoToneColor = _props$context$attrs.twoToneColor, onClick = _props$context$attrs.onClick, restProps = _objectWithoutProperties$1(_props$context$attrs, _excluded$1);
1146
1146
  var _useInjectIconContext = useInjectIconContext(), prefixCls = _useInjectIconContext.prefixCls, rootClassName = _useInjectIconContext.rootClassName;
1147
- var classObj = (_classObj = {}, _defineProperty$t(_classObj, rootClassName.value, !!rootClassName.value), _defineProperty$t(_classObj, prefixCls.value, true), _defineProperty$t(_classObj, "".concat(prefixCls.value, "-").concat(icon.name), Boolean(icon.name)), _defineProperty$t(_classObj, "".concat(prefixCls.value, "-spin"), !!spin || icon.name === "loading"), _classObj);
1147
+ var classObj = (_classObj = {}, _defineProperty$u(_classObj, rootClassName.value, !!rootClassName.value), _defineProperty$u(_classObj, prefixCls.value, true), _defineProperty$u(_classObj, "".concat(prefixCls.value, "-").concat(icon.name), Boolean(icon.name)), _defineProperty$u(_classObj, "".concat(prefixCls.value, "-spin"), !!spin || icon.name === "loading"), _classObj);
1148
1148
  var iconTabIndex = tabindex;
1149
1149
  if (iconTabIndex === void 0 && onClick) {
1150
1150
  iconTabIndex = -1;
@@ -1154,7 +1154,7 @@
1154
1154
  transform: "rotate(".concat(rotate, "deg)")
1155
1155
  } : void 0;
1156
1156
  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor), _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2), primaryColor = _normalizeTwoToneColo2[0], secondaryColor = _normalizeTwoToneColo2[1];
1157
- return vue.createVNode("span", _objectSpread$s({
1157
+ return vue.createVNode("span", _objectSpread$t({
1158
1158
  "role": "img",
1159
1159
  "aria-label": icon.name
1160
1160
  }, restProps, {
@@ -1181,7 +1181,7 @@
1181
1181
 
1182
1182
  var CaretDownOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "0 0 1024 1024", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" } }] }, "name": "caret-down", "theme": "outlined" };
1183
1183
 
1184
- function _objectSpread$r(target) {
1184
+ function _objectSpread$s(target) {
1185
1185
  for (var i = 1; i < arguments.length; i++) {
1186
1186
  var source = arguments[i] != null ? Object(arguments[i]) : {};
1187
1187
  var ownKeys = Object.keys(source);
@@ -1191,12 +1191,12 @@
1191
1191
  }));
1192
1192
  }
1193
1193
  ownKeys.forEach(function(key) {
1194
- _defineProperty$s(target, key, source[key]);
1194
+ _defineProperty$t(target, key, source[key]);
1195
1195
  });
1196
1196
  }
1197
1197
  return target;
1198
1198
  }
1199
- function _defineProperty$s(obj, key, value) {
1199
+ function _defineProperty$t(obj, key, value) {
1200
1200
  if (key in obj) {
1201
1201
  Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
1202
1202
  } else {
@@ -1205,8 +1205,8 @@
1205
1205
  return obj;
1206
1206
  }
1207
1207
  var CaretDownOutlined = function CaretDownOutlined2(props, context) {
1208
- var p = _objectSpread$r({}, props, context.attrs);
1209
- return vue.createVNode(Icon$1, _objectSpread$r({}, p, {
1208
+ var p = _objectSpread$s({}, props, context.attrs);
1209
+ return vue.createVNode(Icon$1, _objectSpread$s({}, p, {
1210
1210
  "icon": CaretDownOutlined$1
1211
1211
  }), null);
1212
1212
  };
@@ -1215,7 +1215,7 @@
1215
1215
 
1216
1216
  var CaretUpOutlined$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "0 0 1024 1024", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" } }] }, "name": "caret-up", "theme": "outlined" };
1217
1217
 
1218
- function _objectSpread$q(target) {
1218
+ function _objectSpread$r(target) {
1219
1219
  for (var i = 1; i < arguments.length; i++) {
1220
1220
  var source = arguments[i] != null ? Object(arguments[i]) : {};
1221
1221
  var ownKeys = Object.keys(source);
@@ -1225,12 +1225,12 @@
1225
1225
  }));
1226
1226
  }
1227
1227
  ownKeys.forEach(function(key) {
1228
- _defineProperty$r(target, key, source[key]);
1228
+ _defineProperty$s(target, key, source[key]);
1229
1229
  });
1230
1230
  }
1231
1231
  return target;
1232
1232
  }
1233
- function _defineProperty$r(obj, key, value) {
1233
+ function _defineProperty$s(obj, key, value) {
1234
1234
  if (key in obj) {
1235
1235
  Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
1236
1236
  } else {
@@ -1239,8 +1239,8 @@
1239
1239
  return obj;
1240
1240
  }
1241
1241
  var CaretUpOutlined = function CaretUpOutlined2(props, context) {
1242
- var p = _objectSpread$q({}, props, context.attrs);
1243
- return vue.createVNode(Icon$1, _objectSpread$q({}, p, {
1242
+ var p = _objectSpread$r({}, props, context.attrs);
1243
+ return vue.createVNode(Icon$1, _objectSpread$r({}, p, {
1244
1244
  "icon": CaretUpOutlined$1
1245
1245
  }), null);
1246
1246
  };
@@ -1249,6 +1249,40 @@
1249
1249
 
1250
1250
  var CheckCircleFilled$1 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z" } }] }, "name": "check-circle", "theme": "filled" };
1251
1251
 
1252
+ function _objectSpread$q(target) {
1253
+ for (var i = 1; i < arguments.length; i++) {
1254
+ var source = arguments[i] != null ? Object(arguments[i]) : {};
1255
+ var ownKeys = Object.keys(source);
1256
+ if (typeof Object.getOwnPropertySymbols === "function") {
1257
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
1258
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
1259
+ }));
1260
+ }
1261
+ ownKeys.forEach(function(key) {
1262
+ _defineProperty$r(target, key, source[key]);
1263
+ });
1264
+ }
1265
+ return target;
1266
+ }
1267
+ function _defineProperty$r(obj, key, value) {
1268
+ if (key in obj) {
1269
+ Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
1270
+ } else {
1271
+ obj[key] = value;
1272
+ }
1273
+ return obj;
1274
+ }
1275
+ var CheckCircleFilled = function CheckCircleFilled2(props, context) {
1276
+ var p = _objectSpread$q({}, props, context.attrs);
1277
+ return vue.createVNode(Icon$1, _objectSpread$q({}, p, {
1278
+ "icon": CheckCircleFilled$1
1279
+ }), null);
1280
+ };
1281
+ CheckCircleFilled.displayName = "CheckCircleFilled";
1282
+ CheckCircleFilled.inheritAttrs = false;
1283
+
1284
+ var CloseCircleFilled$1 = { "icon": { "tag": "svg", "attrs": { "fill-rule": "evenodd", "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z" } }] }, "name": "close-circle", "theme": "filled" };
1285
+
1252
1286
  function _objectSpread$p(target) {
1253
1287
  for (var i = 1; i < arguments.length; i++) {
1254
1288
  var source = arguments[i] != null ? Object(arguments[i]) : {};
@@ -1272,14 +1306,14 @@
1272
1306
  }
1273
1307
  return obj;
1274
1308
  }
1275
- var CheckCircleFilled = function CheckCircleFilled2(props, context) {
1309
+ var CloseCircleFilled = function CloseCircleFilled2(props, context) {
1276
1310
  var p = _objectSpread$p({}, props, context.attrs);
1277
1311
  return vue.createVNode(Icon$1, _objectSpread$p({}, p, {
1278
- "icon": CheckCircleFilled$1
1312
+ "icon": CloseCircleFilled$1
1279
1313
  }), null);
1280
1314
  };
1281
- CheckCircleFilled.displayName = "CheckCircleFilled";
1282
- CheckCircleFilled.inheritAttrs = false;
1315
+ CloseCircleFilled.displayName = "CloseCircleFilled";
1316
+ CloseCircleFilled.inheritAttrs = false;
1283
1317
 
1284
1318
  var CloseOutlined$1 = { "icon": { "tag": "svg", "attrs": { "fill-rule": "evenodd", "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z" } }] }, "name": "close", "theme": "outlined" };
1285
1319
 
@@ -2218,6 +2252,18 @@
2218
2252
  function isObject$4(val) {
2219
2253
  return val !== null && is$1(val, "Object");
2220
2254
  }
2255
+ function isEmpty(val) {
2256
+ if (isArray$2(val) || isString$1(val)) {
2257
+ return val.length === 0;
2258
+ }
2259
+ if (val instanceof Map || val instanceof Set) {
2260
+ return val.size === 0;
2261
+ }
2262
+ if (isObject$4(val)) {
2263
+ return Object.keys(val).length === 0;
2264
+ }
2265
+ return false;
2266
+ }
2221
2267
  const isNil = (value) => value === null || value === void 0;
2222
2268
  function isNumber$2(val) {
2223
2269
  return is$1(val, "Number");
@@ -2231,6 +2277,9 @@
2231
2277
  function isFunction$2(val) {
2232
2278
  return typeof val === "function";
2233
2279
  }
2280
+ function isBoolean(val) {
2281
+ return is$1(val, "Boolean");
2282
+ }
2234
2283
  function isArray$2(val) {
2235
2284
  return val && Array.isArray(val);
2236
2285
  }
@@ -23739,6 +23788,9 @@
23739
23788
  function getColumnPos(index, pos) {
23740
23789
  return pos ? `${pos}-${index}` : `${index}`;
23741
23790
  }
23791
+ function getCellKey(rowKey, colKey) {
23792
+ return [rowKey, colKey].join("_");
23793
+ }
23742
23794
  function objectToEmpty(obj) {
23743
23795
  for (const key in obj) Object.prototype.hasOwnProperty.call(obj, key) && delete obj[key];
23744
23796
  }
@@ -24059,6 +24111,10 @@
24059
24111
  type: Boolean,
24060
24112
  default: void 0
24061
24113
  },
24114
+ selectRowByClick: {
24115
+ type: Boolean,
24116
+ default: void 0
24117
+ },
24062
24118
  expandIcon: {
24063
24119
  type: Function,
24064
24120
  default: void 0
@@ -24121,6 +24177,14 @@
24121
24177
  type: Function,
24122
24178
  default: () => ({})
24123
24179
  },
24180
+ editableKeys: {
24181
+ type: Array,
24182
+ default: void 0
24183
+ },
24184
+ rowEditable: {
24185
+ type: Object,
24186
+ default: void 0
24187
+ },
24124
24188
  showHeader: {
24125
24189
  type: Boolean,
24126
24190
  default: true
@@ -24219,6 +24283,9 @@
24219
24283
  type: Boolean,
24220
24284
  default: void 0
24221
24285
  },
24286
+ editableCellState: {
24287
+ type: Function
24288
+ },
24222
24289
  paginationSticky: {
24223
24290
  type: [Boolean, Object],
24224
24291
  default: true
@@ -24272,6 +24339,15 @@
24272
24339
  type: Function,
24273
24340
  default: void 0
24274
24341
  },
24342
+ onDataChange: {
24343
+ type: Function
24344
+ },
24345
+ onRowValidate: {
24346
+ type: Function
24347
+ },
24348
+ onValidate: {
24349
+ type: Function
24350
+ },
24275
24351
  "onUpdate:pagination": {
24276
24352
  type: Function
24277
24353
  },
@@ -25024,41 +25100,305 @@
25024
25100
  const ICON_TYPE_FORBID$1 = "ICON_TYPE_FORBID";
25025
25101
 
25026
25102
  const EditKey = Symbol("edit");
25027
- const useEditProvider = () => {
25103
+ const useEditProvider = (props, {
25104
+ rawData,
25105
+ getRowKey,
25106
+ getIndexsByKey,
25107
+ getRecordByKey
25108
+ }) => {
25109
+ var _a;
25028
25110
  const editCellKeys = vue.shallowRef([]);
25029
- const oldValuesMap = vue.shallowRef({});
25030
- const openEditor = (key, values) => {
25111
+ const editRowsMap = vue.shallowRef({});
25112
+ const intl = useIntl();
25113
+ const editableType = vue.computed(() => {
25114
+ var _a2;
25115
+ return (_a2 = props.rowEditable) == null ? void 0 : _a2.type;
25116
+ });
25117
+ const [mergedEditableKeys, setMergedEditableKeys] = useMergedState$1([], {
25118
+ value: vue.computed(() => {
25119
+ var _a2;
25120
+ return props.editableKeys || ((_a2 = props.rowEditable) == null ? void 0 : _a2.editableKeys);
25121
+ }),
25122
+ onChange: ((_a = props.rowEditable) == null ? void 0 : _a.onChange) ? (keys) => {
25123
+ var _a2, _b, _c;
25124
+ (_c = (_a2 = props.rowEditable) == null ? void 0 : _a2.onChange) == null ? void 0 : _c.call(
25125
+ _a2,
25126
+ // 计算编辑的key
25127
+ keys != null ? keys : [],
25128
+ (_b = keys == null ? void 0 : keys.map((key) => editRowsMap.value[key])) != null ? _b : []
25129
+ );
25130
+ } : void 0
25131
+ });
25132
+ const editingCells = vue.ref({});
25133
+ const newLineRecordCache = vue.shallowRef({});
25134
+ const editableKeysSet = vue.computed(() => {
25135
+ var _a2;
25136
+ const keys = editableType.value === "single" ? (_a2 = mergedEditableKeys.value) == null ? void 0 : _a2.slice(0, 1) : mergedEditableKeys.value;
25137
+ return new Set(keys);
25138
+ });
25139
+ const isEditable = (recordKey) => {
25140
+ var _a2;
25141
+ if ((_a2 = mergedEditableKeys.value) == null ? void 0 : _a2.includes(recordKey)) return true;
25142
+ return false;
25143
+ };
25144
+ const isRowEdit = vue.computed(() => !!editableType.value);
25145
+ const openEditor = (key) => {
25031
25146
  if (key) {
25147
+ const newKeys = [...editCellKeys.value];
25032
25148
  if (Array.isArray(key)) {
25033
25149
  editCellKeys.value = key;
25034
25150
  } else {
25035
- editCellKeys.value.includes(key) || (editCellKeys.value = [key]);
25151
+ newKeys.includes(key) || newKeys.push(key);
25036
25152
  }
25037
- Object.assign(oldValuesMap.value, values || {});
25153
+ editCellKeys.value = newKeys;
25038
25154
  }
25039
25155
  };
25040
25156
  const closeEditor = (key) => {
25041
- if (typeof key === "undefined") {
25042
- editCellKeys.value = [];
25043
- oldValuesMap.value = {};
25044
- return;
25157
+ const closeKeys = editCellKeys.value.filter((cellKey) => cellKey !== key);
25158
+ const closeCells = closeKeys.map((key2) => editingCells.value[key2]).filter((cell) => {
25159
+ var _a2, _b;
25160
+ return cell && !((_b = (_a2 = cell.column) == null ? void 0 : _a2.edit) == null ? void 0 : _b.keepEditMode);
25161
+ });
25162
+ const list = closeCells.map(
25163
+ (cell) => new Promise((resolve) => {
25164
+ cell == null ? void 0 : cell.validateEdit().then((r) => {
25165
+ if (r === true) {
25166
+ const cellKey = getCellKey(cell.rowKey, cell.columnKey);
25167
+ resolve(cellKey);
25168
+ } else {
25169
+ resolve(null);
25170
+ }
25171
+ });
25172
+ })
25173
+ );
25174
+ Promise.all(list).then((keys) => {
25175
+ const closeKeys2 = keys.filter((key2) => !!key2);
25176
+ editCellKeys.value = editCellKeys.value.filter((key2) => !closeKeys2.includes(key2));
25177
+ });
25178
+ };
25179
+ const setEditingCell = (params, isEdit) => {
25180
+ const cellKey = getCellKey(params.rowKey, params.columnKey);
25181
+ if (isEdit) {
25182
+ editingCells.value[cellKey] = params;
25183
+ } else {
25184
+ delete editingCells.value[cellKey];
25045
25185
  }
25046
- const keys = Array.isArray(key) ? key : [key];
25047
- editCellKeys.value = editCellKeys.value.filter((key2) => !keys.includes(key2));
25048
- keys.forEach((key2) => {
25049
- delete oldValuesMap.value[key2];
25186
+ };
25187
+ const getErrorListMapByErrors = (errors) => {
25188
+ const errorMap = {};
25189
+ errors.forEach(({ rowKey, columnKey, errorList }) => {
25190
+ const key = [rowKey, columnKey].join("__");
25191
+ if (errorList == null ? void 0 : errorList.length) {
25192
+ errorMap[key] = errorList;
25193
+ } else {
25194
+ delete errorMap[key];
25195
+ }
25196
+ });
25197
+ return errorMap;
25198
+ };
25199
+ const validateOneRowData = (recordKey) => {
25200
+ const cellKeys = Object.keys(editingCells.value);
25201
+ const rowCellKeys = cellKeys.filter((cellKey) => cellKey.startsWith(`${recordKey}_`));
25202
+ const list = rowCellKeys.map(
25203
+ (cellKey) => new Promise((resolve) => {
25204
+ const cell = editingCells.value[cellKey];
25205
+ cell == null ? void 0 : cell.validateEdit().then((r) => {
25206
+ if (r === true) {
25207
+ resolve({ ...cell, errorList: [] });
25208
+ } else {
25209
+ resolve({ ...cell, errorList: r });
25210
+ }
25211
+ });
25212
+ })
25213
+ );
25214
+ return new Promise((resolve, reject) => {
25215
+ Promise.all(list).then((errors) => {
25216
+ resolve({
25217
+ errors: errors.filter((t) => {
25218
+ var _a2;
25219
+ return (_a2 = t.errorList) == null ? void 0 : _a2.length;
25220
+ }),
25221
+ errorMap: getErrorListMapByErrors(errors)
25222
+ });
25223
+ }, reject);
25224
+ });
25225
+ };
25226
+ const validateRowData = (recordKey) => new Promise((resolve, reject) => {
25227
+ validateOneRowData(recordKey).then(({ errors, errorMap }) => {
25228
+ var _a2;
25229
+ (_a2 = props.onRowValidate) == null ? void 0 : _a2.call(props, { errors, errorMap });
25230
+ resolve({ errors, errorMap });
25231
+ }, reject);
25232
+ });
25233
+ const validateTableCellData = () => {
25234
+ const cellKeys = Object.keys(editingCells.value);
25235
+ const list = cellKeys.map(
25236
+ (cellKey) => new Promise((resolve) => {
25237
+ const cell = editingCells.value[cellKey];
25238
+ cell == null ? void 0 : cell.validateEdit().then((r) => {
25239
+ if (r === true) {
25240
+ resolve({ ...cell, errorList: [] });
25241
+ } else {
25242
+ resolve({ ...cell, errorList: r });
25243
+ }
25244
+ });
25245
+ })
25246
+ );
25247
+ return new Promise((resolve, reject) => {
25248
+ Promise.all(list).then((errors) => {
25249
+ resolve({
25250
+ errors: errors.filter((t) => {
25251
+ var _a2;
25252
+ return (_a2 = t.errorList) == null ? void 0 : _a2.length;
25253
+ }),
25254
+ errorMap: getErrorListMapByErrors(errors)
25255
+ });
25256
+ }, reject);
25050
25257
  });
25051
25258
  };
25259
+ const validateTableData = () => new Promise((resolve, reject) => {
25260
+ validateTableCellData().then(({ errors, errorMap }) => {
25261
+ var _a2;
25262
+ (_a2 = props.onValidate) == null ? void 0 : _a2.call(props, { errors, errorMap });
25263
+ resolve({ errors, errorMap, data: (errors == null ? void 0 : errors.length) ? void 0 : rawData.value });
25264
+ }, reject);
25265
+ });
25266
+ const addEditRecord = (recordValue, options) => {
25267
+ var _a2, _b, _c, _d;
25268
+ if (isRowEdit.value && ((_a2 = Object.keys(newLineRecordCache.value)) == null ? void 0 : _a2.length) && ((_b = props.rowEditable) == null ? void 0 : _b.onlyAddOneLineAlertMessage) !== false) {
25269
+ antDesignVue.message.warning(
25270
+ ((_c = props.rowEditable) == null ? void 0 : _c.onlyAddOneLineAlertMessage) || intl.getMessage("editableTable.onlyAddOneLine", "\u53EA\u80FD\u65B0\u589E\u4E00\u884C")
25271
+ );
25272
+ return false;
25273
+ }
25274
+ if (isRowEdit.value && editableKeysSet.value.size > 0 && editableType.value === "single") {
25275
+ antDesignVue.message.warning(
25276
+ ((_d = props.rowEditable) == null ? void 0 : _d.onlyOneLineEditorAlertMessage) || intl.getMessage("editableTable.onlyOneLineEditor", "\u53EA\u80FD\u540C\u65F6\u7F16\u8F91\u4E00\u884C")
25277
+ );
25278
+ return false;
25279
+ }
25280
+ const recordKey = getRowKey.value(recordValue, -1);
25281
+ if (!recordKey) {
25282
+ throw new Error("\u8BF7\u8BBE\u7F6E recordCreatorProps.record \u5E76\u8FD4\u56DE\u4E00\u4E2A\u552F\u4E00\u7684key");
25283
+ }
25284
+ if (isRowEdit.value) {
25285
+ editableKeysSet.value.add(recordKey);
25286
+ editRowsMap.value[recordKey] = cloneDeep(recordValue);
25287
+ setMergedEditableKeys(Array.from(editableKeysSet.value));
25288
+ vue.triggerRef(editRowsMap);
25289
+ }
25290
+ if ((options == null ? void 0 : options.position) === "top") {
25291
+ rawData.value.unshift(recordValue);
25292
+ } else {
25293
+ rawData.value.push(recordValue);
25294
+ }
25295
+ newLineRecordCache.value[recordKey] = {
25296
+ defaultValue: recordValue,
25297
+ options
25298
+ };
25299
+ vue.triggerRef(rawData);
25300
+ return true;
25301
+ };
25302
+ const startEditable = (recordKey, recordValue) => {
25303
+ var _a2;
25304
+ if (!isRowEdit.value) {
25305
+ return false;
25306
+ }
25307
+ if (editableKeysSet.value.size > 0 && editableType.value === "single") {
25308
+ antDesignVue.message.warning(
25309
+ ((_a2 = props.rowEditable) == null ? void 0 : _a2.onlyOneLineEditorAlertMessage) || intl.getMessage("editableTable.onlyOneLineEditor", "\u53EA\u80FD\u540C\u65F6\u7F16\u8F91\u4E00\u884C")
25310
+ );
25311
+ return false;
25312
+ }
25313
+ editableKeysSet.value.add(recordKey);
25314
+ editRowsMap.value[recordKey] = cloneDeep(recordValue != null ? recordValue : getRecordByKey(recordKey));
25315
+ setMergedEditableKeys(Array.from(editableKeysSet.value));
25316
+ vue.triggerRef(editRowsMap);
25317
+ return true;
25318
+ };
25319
+ const cancelEditable = (recordKey) => {
25320
+ if (!isRowEdit.value) {
25321
+ return false;
25322
+ }
25323
+ const newLineRecord = newLineRecordCache.value[recordKey];
25324
+ if (newLineRecord) {
25325
+ delete newLineRecordCache.value[recordKey];
25326
+ const rowIndex = rawData.value.findIndex((item) => getRowKey.value(item, -1) === recordKey);
25327
+ rawData.value.splice(rowIndex, 1);
25328
+ vue.triggerRef(rawData);
25329
+ }
25330
+ editableKeysSet.value.delete(recordKey);
25331
+ delete editRowsMap.value[recordKey];
25332
+ setMergedEditableKeys(Array.from(editableKeysSet.value));
25333
+ return true;
25334
+ };
25335
+ const saveEditable = async (recordKey) => {
25336
+ var _a2, _b;
25337
+ if (!isRowEdit.value) {
25338
+ return false;
25339
+ }
25340
+ const { errors } = await validateRowData(recordKey);
25341
+ if (!!errors.length) {
25342
+ return false;
25343
+ }
25344
+ const editRow = editRowsMap.value[recordKey];
25345
+ const originRow = getRecordByKey(recordKey);
25346
+ const success = await ((_b = (_a2 = props.rowEditable) == null ? void 0 : _a2.onSave) == null ? void 0 : _b.call(_a2, recordKey, editRow, originRow));
25347
+ if (success === false) {
25348
+ return false;
25349
+ }
25350
+ upadteRowData(recordKey, editRow);
25351
+ const newLineRecord = newLineRecordCache.value[recordKey];
25352
+ if (newLineRecord) {
25353
+ delete newLineRecordCache.value[recordKey];
25354
+ }
25355
+ await cancelEditable(recordKey);
25356
+ return true;
25357
+ };
25358
+ const upadteRowData = (recordKey, editRow) => {
25359
+ const recordIndexs = getIndexsByKey(recordKey);
25360
+ const indexsLen = recordIndexs.length;
25361
+ if (indexsLen === 1) {
25362
+ rawData.value.splice(recordIndexs[0], 1, editRow);
25363
+ }
25364
+ if (indexsLen > 1) {
25365
+ let copyData = rawData.value;
25366
+ let item;
25367
+ const childrenColumnName = props.childrenColumnName || "children";
25368
+ for (let i = 0; i < indexsLen; i++) {
25369
+ item = copyData[recordIndexs[i]];
25370
+ if (i === indexsLen - 2) {
25371
+ const currentData = (item == null ? void 0 : item[childrenColumnName]) || [];
25372
+ currentData.splice(recordIndexs[indexsLen - 1], 1, editRow);
25373
+ break;
25374
+ }
25375
+ copyData = (item == null ? void 0 : item[childrenColumnName]) || [];
25376
+ }
25377
+ }
25378
+ vue.triggerRef(rawData);
25379
+ };
25052
25380
  vue.provide(EditKey, {
25053
25381
  editCellKeys,
25054
25382
  openEditor,
25055
25383
  closeEditor,
25056
- oldValuesMap
25384
+ // oldValuesMap,
25385
+ editableType,
25386
+ mergedEditableKeys,
25387
+ isRowEdit,
25388
+ editRowsMap,
25389
+ setEditingCell
25057
25390
  });
25058
25391
  return {
25059
25392
  editCellKeys,
25060
25393
  openEditor,
25061
- closeEditor
25394
+ closeEditor,
25395
+ cancelEditable,
25396
+ startEditable,
25397
+ saveEditable,
25398
+ isEditable,
25399
+ validateTableData,
25400
+ validateRowData,
25401
+ addEditRecord
25062
25402
  };
25063
25403
  };
25064
25404
  const useEditInject = () => {
@@ -25068,7 +25408,13 @@
25068
25408
  },
25069
25409
  closeEditor: () => {
25070
25410
  },
25071
- oldValuesMap: vue.shallowRef({})
25411
+ // oldValuesMap: shallowRef({}),
25412
+ editRowsMap: vue.shallowRef({}),
25413
+ editableType: vue.computed(() => void 0),
25414
+ isRowEdit: vue.computed(() => false),
25415
+ mergedEditableKeys: vue.computed(() => []),
25416
+ setEditingCell: () => {
25417
+ }
25072
25418
  });
25073
25419
  };
25074
25420
 
@@ -25319,926 +25665,6 @@
25319
25665
  return vue.inject(TableContextKey, {});
25320
25666
  };
25321
25667
 
25322
- const KeyCode = {
25323
- TAB: 9,
25324
- ENTER: 13,
25325
- ESC: 27,
25326
- LEFT: 37,
25327
- UP: 38,
25328
- RIGHT: 39,
25329
- DOWN: 40,
25330
- A: 65,
25331
- C: 67};
25332
-
25333
- const useCellNavigation = (params) => {
25334
- const {
25335
- getDisplayedColBefore,
25336
- getDisplayedColAfter,
25337
- allDisplayedColumns,
25338
- setRangeToCell,
25339
- focusCell,
25340
- flattenData,
25341
- getRowByFlattenIndex,
25342
- allCellProps,
25343
- tabGuardTopRef,
25344
- tabGuardBottomRef
25345
- } = params;
25346
- const endFlattenIndex = vue.computed(
25347
- () => {
25348
- var _a;
25349
- return (_a = flattenData.value[flattenData.value.length - 1]) == null ? void 0 : _a.flattenIndex;
25350
- }
25351
- );
25352
- const startFlattenIndex = vue.computed(() => {
25353
- var _a;
25354
- return (_a = flattenData.value[0]) == null ? void 0 : _a.flattenIndex;
25355
- });
25356
- const getNextCellToFocus = (keyCode, focusedCell, ctrlPressed = false) => ctrlPressed ? h2(keyCode, focusedCell) : m(keyCode, focusedCell);
25357
- const h2 = (keyCode, focusedCell) => {
25358
- const isUp = keyCode === KeyCode.UP;
25359
- const isDown = keyCode === KeyCode.DOWN;
25360
- const isLeft = keyCode === KeyCode.LEFT;
25361
- let column, rowIndex;
25362
- if (isUp || isDown) {
25363
- rowIndex = isUp ? startFlattenIndex.value : endFlattenIndex.value;
25364
- column = focusedCell.column;
25365
- } else {
25366
- rowIndex = focusedCell.rowIndex;
25367
- column = isLeft !== false ? allDisplayedColumns.value[0] : allDisplayedColumns.value[allDisplayedColumns.value.length - 1];
25368
- }
25369
- return { rowIndex, rowPinned: null, column };
25370
- };
25371
- const m = (keyCode, focusedCell) => {
25372
- let cell = focusedCell;
25373
- let o2 = false;
25374
- for (; !o2; ) {
25375
- switch (keyCode) {
25376
- case KeyCode.UP:
25377
- cell = getCellAbove(cell);
25378
- break;
25379
- case KeyCode.DOWN:
25380
- case KeyCode.ENTER:
25381
- cell = x(cell);
25382
- break;
25383
- case KeyCode.RIGHT:
25384
- cell = w(cell);
25385
- break;
25386
- case KeyCode.LEFT:
25387
- cell = g(cell);
25388
- break;
25389
- default:
25390
- cell = null;
25391
- console.warn("Table: unknown key for navigation " + keyCode);
25392
- }
25393
- o2 = !cell || y(cell);
25394
- }
25395
- return cell;
25396
- }, y = (e3) => {
25397
- let t2;
25398
- switch (e3.rowPinned) {
25399
- case "top":
25400
- case "bottom":
25401
- break;
25402
- default:
25403
- t2 = getRowByFlattenIndex(e3.rowIndex);
25404
- }
25405
- return !!t2;
25406
- }, g = (e3) => {
25407
- if (!e3) return null;
25408
- const n2 = getDisplayedColBefore(e3.column);
25409
- return n2 ? { rowIndex: e3.rowIndex, column: n2, rowPinned: e3.rowPinned } : null;
25410
- }, w = (e3) => {
25411
- if (!e3) return null;
25412
- const t2 = getDisplayedColAfter(e3.column);
25413
- return t2 ? { rowIndex: e3.rowIndex, column: t2, rowPinned: e3.rowPinned } : null;
25414
- }, x = (e3) => {
25415
- if (!e3) return null;
25416
- const t2 = getRowBelow(e3);
25417
- return t2 ? { rowIndex: t2.rowIndex, column: e3.column, rowPinned: t2.rowPinned } : null;
25418
- }, getRowBelow = (e3) => {
25419
- const t2 = e3.rowIndex, n2 = e3.rowPinned;
25420
- return C(e3) ? null : { rowIndex: t2 + 1, rowPinned: n2 };
25421
- }, C = (e3) => {
25422
- const t2 = e3.rowIndex;
25423
- return endFlattenIndex.value <= t2;
25424
- }, getRowAbove = (e3) => {
25425
- const t2 = e3.rowIndex, n2 = e3.rowPinned;
25426
- return (n2 ? 0 === t2 : t2 === startFlattenIndex.value) ? null : { rowIndex: t2 - 1, rowPinned: n2 };
25427
- }, getCellAbove = (e3) => {
25428
- if (!e3) return null;
25429
- const t2 = getRowAbove({
25430
- rowIndex: e3.rowIndex,
25431
- rowPinned: e3.rowPinned
25432
- });
25433
- return t2 ? { rowIndex: t2.rowIndex, column: e3.column, rowPinned: t2.rowPinned } : null;
25434
- }, k = (e3) => e3.rowIndex >= startFlattenIndex.value && e3.rowIndex <= endFlattenIndex.value, getNextTabbedCell = (e3, t2) => t2 ? K(e3) : _(e3), _ = (e3) => {
25435
- const t2 = allDisplayedColumns.value;
25436
- let l2 = e3.rowIndex, r2 = e3.rowPinned, a2 = getDisplayedColAfter(e3.column);
25437
- if (!a2) {
25438
- a2 = t2[0];
25439
- const n2 = getRowBelow(e3);
25440
- if (!n2) return null;
25441
- if (!n2.rowPinned && !k(n2)) return null;
25442
- l2 = n2 ? n2.rowIndex : null, r2 = n2 ? n2.rowPinned : null;
25443
- }
25444
- return { rowIndex: l2, column: a2, rowPinned: r2 };
25445
- }, K = (e3) => {
25446
- const n2 = allDisplayedColumns.value;
25447
- let l2 = e3.rowIndex, r2 = e3.rowPinned, a2 = getDisplayedColBefore(e3.column);
25448
- if (!a2) {
25449
- a2 = n2[n2.length - 1];
25450
- const t2 = getRowAbove({
25451
- rowIndex: e3.rowIndex,
25452
- rowPinned: e3.rowPinned
25453
- });
25454
- if (!t2) return null;
25455
- if (!t2.rowPinned && !k(t2)) return null;
25456
- l2 = t2 ? t2.rowIndex : null, r2 = t2 ? t2.rowPinned : null;
25457
- }
25458
- return { rowIndex: l2, column: a2, rowPinned: r2 };
25459
- }, O = (e3) => {
25460
- const t2 = ((e4) => {
25461
- let t3, n2;
25462
- const l2 = null === (t3 = getRowByFlattenIndex(e4.rowIndex)) || void 0 === t3 ? void 0 : t3.rowKey, r2 = (((null === (n2 = allCellProps.value[l2]) || void 0 === n2 ? void 0 : n2[e4.column.columnKey]) || {}).props || {}).colSpan, a2 = [];
25463
- if (r2 > 1) {
25464
- const t4 = allDisplayedColumns.value.findIndex(
25465
- (t5) => t5.columnKey === e4.column.columnKey
25466
- );
25467
- for (let e5 = 0; e5 < r2; e5++) a2.push(allDisplayedColumns.value[t4 + e5]);
25468
- } else a2.push(e4.column);
25469
- return a2.filter((e5) => !!e5);
25470
- })(e3);
25471
- return 1 === t2.length ? e3 : {
25472
- rowIndex: e3.rowIndex,
25473
- column: t2[t2.length - 1],
25474
- rowPinned: e3.rowPinned
25475
- };
25476
- }, P = (e3) => {
25477
- let t2;
25478
- const n2 = getRowByFlattenIndex(e3.rowIndex), o2 = null == n2 ? void 0 : n2.rowKey, l2 = (((null === (t2 = allCellProps.value[o2]) || void 0 === t2 ? void 0 : t2[e3.column.columnKey]) || {}).props || {}).rowSpan;
25479
- return !!n2 && 0 !== l2 && !n2.isExpandRow;
25480
- }, tabToNextCellCommon = (e3, t2) => $(e3, t2), $ = (e3, t2) => {
25481
- const n2 = T(e3, t2);
25482
- return n2 && focusCell(n2), !!n2;
25483
- }, T = (t2, n2) => {
25484
- let o2 = t2;
25485
- for (; o2 && (o2 === t2 || !P(o2)); ) n2 || (o2 = O(o2)), o2 = getNextTabbedCell(o2, n2);
25486
- return o2 ? o2.rowIndex < 0 ? null : (params.ensureCellVisible(o2), setRangeToCell(o2), o2) : null;
25487
- };
25488
- return {
25489
- getNextCellToFocus,
25490
- getNextTabbedCell,
25491
- getLastBodyCell: () => ({ rowIndex: endFlattenIndex.value, rowPinned: null }),
25492
- navigateToNextCell: (t2, n2) => {
25493
- const o2 = t2.keyCode;
25494
- let r2 = n2, a2 = false;
25495
- for (; r2 && (r2 === n2 || !P(r2)); )
25496
- o2 === KeyCode.RIGHT && (r2 = O(r2)), r2 = getNextCellToFocus(o2, r2), a2 = !r2;
25497
- a2 && t2 && o2 === KeyCode.UP && (r2 = { rowIndex: -1, rowPinned: null, column: n2.column }), r2 && (r2.rowIndex < 0 || (params.ensureCellVisible(r2), setRangeToCell(r2)));
25498
- },
25499
- onTabKeyDown: (e3, t2) => {
25500
- let n2, o2;
25501
- const l2 = t2.shiftKey;
25502
- tabToNextCellCommon(e3, l2) || (l2 ? null === (n2 = tabGuardTopRef.value) || void 0 === n2 || n2.focus() : null === (o2 = tabGuardBottomRef.value) || void 0 === o2 || o2.focus()), t2.preventDefault();
25503
- },
25504
- tabToNextCellCommon,
25505
- getFirstCellToFocus: (t2) => {
25506
- const n2 = (() => {
25507
- const e3 = getRowByFlattenIndex(startFlattenIndex.value), t3 = allDisplayedColumns.value[0];
25508
- return e3 && t3 ? { rowIndex: e3.rowIndex, rowPinned: null, column: t3 } : null;
25509
- })();
25510
- P(n2) ? (params.ensureCellVisible(n2), setRangeToCell(n2)) : n2 && tabToNextCellCommon(n2, t2);
25511
- },
25512
- getLastCellToFocus: (t2) => {
25513
- const n2 = (() => {
25514
- const e3 = getRowByFlattenIndex(endFlattenIndex.value), t3 = allDisplayedColumns.value[allDisplayedColumns.value.length - 1];
25515
- return e3 && t3 ? { rowIndex: e3.rowIndex, rowPinned: null, column: t3 } : null;
25516
- })();
25517
- P(n2) ? (params.ensureCellVisible(n2), setRangeToCell(n2)) : n2 && tabToNextCellCommon(n2, t2);
25518
- },
25519
- getRowAbove,
25520
- getCellAbove,
25521
- getRowBelow
25522
- };
25523
- };
25524
-
25525
- const useAutoScroll = (params) => {
25526
- const {
25527
- scrollContainer,
25528
- scrollAxis,
25529
- onScrollCallback = () => {
25530
- },
25531
- showVerticalScrollbar,
25532
- showHorizontalScrollbar
25533
- } = params;
25534
- let timer = null;
25535
- let i = 0;
25536
- let hasLeft = false;
25537
- let hasRight = false;
25538
- let hasTop = false;
25539
- let hasBottom = false;
25540
- const isXAxis = -1 !== scrollAxis.indexOf("x");
25541
- const isYAxis = -1 !== scrollAxis.indexOf("y");
25542
- const scrollByTick = vue.computed(() => {
25543
- var _a, _b;
25544
- return (_b = (_a = params.scrollByTick) == null ? void 0 : _a.value) != null ? _b : 20;
25545
- });
25546
- const exec = () => {
25547
- if (null === timer) {
25548
- timer = window.setInterval(handle, 100);
25549
- i = 0;
25550
- }
25551
- };
25552
- const handle = () => {
25553
- i++;
25554
- const boundary = i > 20 ? 200 : i > 10 ? 80 : 40;
25555
- if (isYAxis) {
25556
- const position = params.getVerticalPosition();
25557
- hasTop && params.setVerticalPosition(position - boundary), hasBottom && params.setVerticalPosition(position + boundary);
25558
- }
25559
- if (isXAxis) {
25560
- const position = params.getHorizontalPosition();
25561
- hasLeft && params.setHorizontalPosition(position - boundary), hasRight && params.setHorizontalPosition(position + boundary);
25562
- }
25563
- onScrollCallback();
25564
- };
25565
- const clear = () => {
25566
- if (timer) {
25567
- window.clearInterval(timer);
25568
- timer = null;
25569
- }
25570
- };
25571
- return {
25572
- check: (mouseEvent, forceSkipVerticalScroll = false) => {
25573
- const hasVerticalScroll = forceSkipVerticalScroll || !showVerticalScrollbar.value;
25574
- if (hasVerticalScroll && !showHorizontalScrollbar.value) return;
25575
- const clientRect = scrollContainer.value.getBoundingClientRect();
25576
- const tick = scrollByTick.value;
25577
- hasLeft = mouseEvent.clientX < clientRect.left + tick;
25578
- hasRight = mouseEvent.clientX > clientRect.right - tick;
25579
- hasTop = mouseEvent.clientY < clientRect.top + tick && !hasVerticalScroll;
25580
- hasBottom = mouseEvent.clientY > clientRect.bottom - tick && !hasVerticalScroll;
25581
- return hasLeft || hasRight || hasTop || hasBottom ? exec() : clear();
25582
- },
25583
- ensureCleared: clear
25584
- };
25585
- };
25586
-
25587
- const isOverFormFieldElement = (mouseEvent) => {
25588
- var _a, _b;
25589
- const tagName = (_b = (_a = mouseEvent.target) == null ? void 0 : _a.tagName) == null ? void 0 : _b.toLocaleLowerCase();
25590
- return !!(tagName == null ? void 0 : tagName.match("^a$|textarea|input|select|button"));
25591
- };
25592
- const useDragSelection = (params) => {
25593
- let dragging = false;
25594
- let cacheStartTouch = null;
25595
- let startTarget = null;
25596
- let cacheTouch;
25597
- const destroyHandlers = [];
25598
- const batchEvent = (eventList) => {
25599
- eventList.forEach((config) => {
25600
- const { target, type, listener, options } = config;
25601
- target.addEventListener(type, listener, options);
25602
- });
25603
- destroyHandlers.push(() => {
25604
- eventList.forEach((config) => {
25605
- const { target, type, listener, options } = config;
25606
- target.removeEventListener(type, listener, options);
25607
- });
25608
- });
25609
- };
25610
- const getTouch = (touches) => {
25611
- for (let i = 0; i < touches.length; i++) {
25612
- if (touches[i].identifier === (cacheTouch == null ? void 0 : cacheTouch.identifier)) {
25613
- return touches[i];
25614
- }
25615
- }
25616
- return null;
25617
- };
25618
- const handleMouseMoveOrTouchMove = (event, cacheEvent) => {
25619
- if (!dragging) {
25620
- if (eventsClose(event, cacheEvent, DRAG_BUFF)) {
25621
- return;
25622
- }
25623
- dragging = true;
25624
- params.onDragStart(cacheEvent);
25625
- }
25626
- };
25627
- const handleMouseUpOrToucheEnd = () => {
25628
- if (dragging) {
25629
- dragging = false;
25630
- }
25631
- cacheStartTouch = null;
25632
- startTarget = null;
25633
- cacheTouch = null;
25634
- destroyHandlers.forEach((fn) => fn());
25635
- destroyHandlers.length = 0;
25636
- };
25637
- const isOverForm = (event) => !isOverFormFieldElement(event);
25638
- const mouseMoveHandler = (event) => {
25639
- if (isOverForm(event)) {
25640
- event.preventDefault();
25641
- }
25642
- handleMouseMoveOrTouchMove(event, cacheStartTouch);
25643
- };
25644
- const touchMoveHandler = (event) => {
25645
- getTouch(event.touches) && handleMouseMoveOrTouchMove(event, cacheStartTouch);
25646
- };
25647
- const touchEndHandler = (event) => {
25648
- getTouch(event.changedTouches) && handleMouseUpOrToucheEnd();
25649
- };
25650
- const onBodyMousedown = (e) => {
25651
- var _a, _b;
25652
- if (params.level !== ((_a = e.cellInfo) == null ? void 0 : _a.level)) return;
25653
- if (isOverForm(e)) {
25654
- e.preventDefault();
25655
- }
25656
- dragging = false;
25657
- cacheStartTouch = e;
25658
- startTarget = (_b = e.cellInfo) == null ? void 0 : _b.cellTarget;
25659
- params.bodyElementRef.value;
25660
- batchEvent([
25661
- {
25662
- target: document,
25663
- type: "mousemove",
25664
- listener: (e2) => mouseMoveHandler(e2)
25665
- },
25666
- {
25667
- target: document,
25668
- type: "mouseup",
25669
- listener: () => {
25670
- handleMouseUpOrToucheEnd();
25671
- }
25672
- },
25673
- {
25674
- target: document,
25675
- type: "contextmenu",
25676
- listener: (e2) => e2.preventDefault()
25677
- }
25678
- ]);
25679
- mouseMoveHandler(e);
25680
- };
25681
- let bodyTouchStartHandle;
25682
- vue.watch(
25683
- [() => params.bodyElementRef.value, params.enableRangeSelection],
25684
- ([bodyEl], [oldBodyEl]) => {
25685
- if (oldBodyEl) {
25686
- oldBodyEl.removeEventListener("mousedown", onBodyMousedown);
25687
- if (bodyTouchStartHandle) {
25688
- oldBodyEl.removeEventListener("touchstart", bodyTouchStartHandle);
25689
- bodyTouchStartHandle = null;
25690
- destroyHandlers.forEach((fn) => fn());
25691
- destroyHandlers.length = 0;
25692
- }
25693
- }
25694
- if (bodyEl && params.enableRangeSelection.value) {
25695
- bodyEl.addEventListener("mousedown", onBodyMousedown);
25696
- bodyTouchStartHandle = (e3) => {
25697
- e3.cancelable && (e3.preventDefault(), e3.stopPropagation());
25698
- };
25699
- }
25700
- }
25701
- );
25702
- return {
25703
- onBodyMousedown,
25704
- onBodyTouchstart: (touchEvent) => {
25705
- dragging = false;
25706
- const touch = touchEvent.touches[0];
25707
- cacheTouch = touch;
25708
- params.bodyElementRef.value;
25709
- const endHandle = (event) => touchEndHandler(event);
25710
- const target = touchEvent.target;
25711
- const body = document.body;
25712
- batchEvent([
25713
- {
25714
- target: body,
25715
- type: "touchmove",
25716
- listener: (e) => {
25717
- e.cancelable && e.preventDefault();
25718
- },
25719
- options: { passive: false }
25720
- },
25721
- {
25722
- target,
25723
- type: "touchmove",
25724
- listener: (e) => touchMoveHandler(e),
25725
- options: { passive: true }
25726
- },
25727
- {
25728
- target,
25729
- type: "touchend",
25730
- listener: endHandle,
25731
- options: { passive: true }
25732
- },
25733
- {
25734
- target,
25735
- type: "touchcancel",
25736
- listener: endHandle,
25737
- options: { passive: true }
25738
- }
25739
- ]);
25740
- },
25741
- getStartTarget: () => startTarget
25742
- };
25743
- };
25744
-
25745
- function classNames(...args) {
25746
- const classes = [];
25747
- for (let i = 0; i < args.length; i++) {
25748
- const value = args[i];
25749
- if (!value) continue;
25750
- if (isString(value)) {
25751
- classes.push(value);
25752
- } else if (isArray(value)) {
25753
- for (let i2 = 0; i2 < value.length; i2++) {
25754
- const inner = classNames(value[i2]);
25755
- if (inner) {
25756
- classes.push(inner);
25757
- }
25758
- }
25759
- } else if (isObject(value)) {
25760
- for (const name in value) {
25761
- if (value[name]) {
25762
- classes.push(name);
25763
- }
25764
- }
25765
- }
25766
- }
25767
- return classes.join(" ");
25768
- }
25769
-
25770
- const RangeSymbolKey = Symbol("rangeSymbolKey");
25771
- const useProvideRangeStore = (parmas) => {
25772
- const {
25773
- allColumns,
25774
- flattenData,
25775
- prefixCls,
25776
- rangeSelection,
25777
- getRowByFlattenIndex,
25778
- rootRef,
25779
- bodyRef,
25780
- latestRangeStartCell,
25781
- scrollLeft,
25782
- scrollTop,
25783
- scrollTo,
25784
- showVerticalScrollbar,
25785
- showHorizontalScrollbar,
25786
- getIndexsByKey,
25787
- formatRangeCellText,
25788
- copyDelimiter
25789
- } = parmas;
25790
- const level = useInjectLevel();
25791
- useAutoScroll({
25792
- scrollContainer: bodyRef,
25793
- scrollAxis: "xy",
25794
- getVerticalPosition: () => scrollTop.value,
25795
- setVerticalPosition: (pos) => {
25796
- scrollTo(pos);
25797
- },
25798
- getHorizontalPosition: () => scrollLeft.value,
25799
- setHorizontalPosition: (pos) => scrollTo({ left: pos }),
25800
- showVerticalScrollbar,
25801
- showHorizontalScrollbar
25802
- });
25803
- const enableRangeSelection = vue.computed(() => !!rangeSelection.value);
25804
- const singleRangeSelection = vue.computed(() => "single" === rangeSelection.value);
25805
- const rangeCellClass = vue.computed(() => `${prefixCls.value}-body-cell-range-selected`);
25806
- const RangeSingleCellClass = vue.computed(() => `${prefixCls.value}-body-cell-range-single-cell`);
25807
- const RangeTopClass = vue.computed(() => `${prefixCls.value}-body-cell-range-top`);
25808
- const RangeRIghtClass = vue.computed(() => `${prefixCls.value}-body-cell-range-right`);
25809
- const RangeBottomClass = vue.computed(() => `${prefixCls.value}-body-cell-range-bottom`);
25810
- const RangeLeftClass = vue.computed(() => `${prefixCls.value}-body-cell-range-left`);
25811
- const cellRanges = vue.shallowRef([]);
25812
- const allDisplayedColumns = vue.computed(
25813
- () => allColumns.value.filter((col) => !col.__Internal__Column__)
25814
- );
25815
- vue.watch(allDisplayedColumns, (newValue) => {
25816
- cellRanges.value.forEach((cellRange) => {
25817
- cellRange.columns = cellRange.columns.filter(
25818
- (column) => newValue.find((item) => item.columnKey === column.columnKey)
25819
- );
25820
- });
25821
- cellRanges.value = cellRanges.value.filter((cellRange) => cellRange.columns.length > 0);
25822
- });
25823
- vue.watch(flattenData, () => {
25824
- const lastIndex = flattenData.value.length - 1;
25825
- cellRanges.value.forEach((cellRange) => {
25826
- const { startRow, endRow } = cellRange;
25827
- if (startRow.rowIndex > lastIndex) {
25828
- cellRange.startRow = null;
25829
- }
25830
- if (endRow.rowIndex > lastIndex) {
25831
- cellRange.endRow = null;
25832
- }
25833
- });
25834
- cellRanges.value = cellRanges.value.filter(
25835
- (cellRange) => cellRange.startRow && cellRange.endRow
25836
- );
25837
- });
25838
- const onDragStart = (mouseEvent) => {
25839
- var _a;
25840
- (_a = mouseEvent.cellInfo) == null ? void 0 : _a.level;
25841
- if (!enableRangeSelection.value) return;
25842
- const { ctrlKey, metaKey, shiftKey } = mouseEvent;
25843
- const ctrlOrMetaKey = ctrlKey || metaKey;
25844
- const isMultiple = !singleRangeSelection.value && ctrlOrMetaKey;
25845
- const rangeLength = cellRanges.value.length;
25846
- const isRangeSelected = shiftKey && rangeLength > 0;
25847
- if (!(isMultiple || isRangeSelected)) {
25848
- clearAllSelectedRange();
25849
- }
25850
- mouseEvent.cellInfo.cellPosition;
25851
- return;
25852
- };
25853
- const onDragging = (mouseEvent) => {
25854
- return;
25855
- };
25856
- const onDragStop = () => {
25857
- };
25858
- const isSelectedEmpty = vue.computed(() => 0 === cellRanges.value.length);
25859
- const Y = vue.computed(() => {
25860
- const length = cellRanges.value.length;
25861
- if (0 === length) return false;
25862
- if (length > 1) return true;
25863
- const first = cellRanges.value[0];
25864
- const n = le(first);
25865
- const o = re2(first);
25866
- return n.rowPinned !== o.rowPinned || n.rowIndex !== o.rowIndex || 1 !== (first == null ? void 0 : first.columns.length);
25867
- });
25868
- useDragSelection({
25869
- onDragStart,
25870
- onDragging,
25871
- onDragStop,
25872
- rootElementRef: rootRef,
25873
- bodyElementRef: bodyRef,
25874
- level,
25875
- enableRangeSelection
25876
- });
25877
- const X = (startRow, endRow) => {
25878
- switch (startRow.rowPinned) {
25879
- case "top":
25880
- if ("top" !== endRow.rowPinned) return true;
25881
- break;
25882
- case "bottom":
25883
- if ("bottom" !== endRow.rowPinned) return false;
25884
- break;
25885
- default:
25886
- if (endRow.rowPinned) {
25887
- return "top" !== endRow.rowPinned;
25888
- }
25889
- }
25890
- return startRow.rowIndex < endRow.rowIndex;
25891
- };
25892
- const q = (e3) => {
25893
- let t2;
25894
- return e3.forEach((e4) => {
25895
- (void 0 === t2 || X(t2, e4)) && (t2 = e4);
25896
- }), t2;
25897
- };
25898
- const Q = (e3) => {
25899
- let t2;
25900
- return e3.forEach((e4) => {
25901
- (void 0 === t2 || X(e4, t2)) && (t2 = e4);
25902
- }), t2;
25903
- };
25904
- const Z = (e3, t2) => !e3 && !t2 || !(e3 && !t2 || !e3 && t2) && e3.rowIndex === t2.rowIndex && e3.rowPinned == t2.rowPinned;
25905
- const J = (e3, t2) => {
25906
- let n, o;
25907
- const l2 = e3 === t2 || e3.columnKey === t2.columnKey, r2 = allDisplayedColumns.value.findIndex((t3) => t3.columnKey === e3.columnKey);
25908
- if (r2 < 0)
25909
- return void console.warn(
25910
- `Table: column ${null !== (n = e3.originColumn.key) && void 0 !== n ? n : e3.originColumn.dataIndex} is not valid`
25911
- );
25912
- const a2 = l2 ? r2 : allDisplayedColumns.value.findIndex((e4) => e4.columnKey === t2.columnKey);
25913
- if (a2 < 0)
25914
- return void console.warn(
25915
- `Table: column ${null !== (o = t2.originColumn.key) && void 0 !== o ? o : t2.originColumn.dataIndex} is not valid`
25916
- );
25917
- if (l2) return [e3];
25918
- const i2 = Math.min(r2, a2), s2 = i2 === r2 ? a2 : r2, u2 = [];
25919
- for (let e4 = i2; e4 <= s2; e4++) u2.push(allDisplayedColumns.value[e4]);
25920
- return u2;
25921
- };
25922
- const setRangeToCell = (e3, t2 = false) => {
25923
- if (!enableRangeSelection.value) return;
25924
- const n = J(e3.column, e3.column);
25925
- if (!n) return;
25926
- if (latestRangeStartCell.value === e3) return;
25927
- !singleRangeSelection.value && t2 || (cellRanges.value = []);
25928
- const o = { rowIndex: e3.rowIndex, rowPinned: e3.rowPinned }, l2 = { startRow: o, endRow: o, columns: n, startColumn: e3.column };
25929
- cellRanges.value.push(l2), latestRangeStartCell.value = e3, vue.triggerRef(cellRanges);
25930
- };
25931
- const te = (e3, t2) => {
25932
- const n = t2.column, o = J(e3.startColumn, n);
25933
- o && !ne(e3, t2) && (e3.columns = o, e3.endRow = { rowIndex: t2.rowIndex, rowPinned: t2.rowPinned }, vue.triggerRef(cellRanges));
25934
- };
25935
- const ne = (e3, t2) => {
25936
- const { startRow: n, endRow: o } = e3, l2 = X(n, o) ? o : n, r2 = t2.rowIndex === l2.rowIndex && t2.rowPinned === l2.rowPinned, a2 = e3.columns[0], i2 = e3.columns[e3.columns.length - 1], s2 = e3.startColumn === a2 ? i2 : a2;
25937
- return t2.column === s2 && r2;
25938
- };
25939
- const oe = (e3, t2) => {
25940
- const n = null !== t2.columns && t2.columns.find((t3) => t3.columnKey === e3.column.columnKey), o = ae2(e3.rowIndex, e3.rowPinned, t2);
25941
- return n && o;
25942
- };
25943
- const le = (cellRange) => {
25944
- var _a;
25945
- if (cellRange.startRow && cellRange.endRow) {
25946
- return X(cellRange.startRow, cellRange.endRow) ? cellRange.startRow : cellRange.endRow;
25947
- }
25948
- return { rowIndex: (_a = flattenData.value[0]) == null ? void 0 : _a.rowIndex, rowPinned: null };
25949
- };
25950
- const re2 = (e3) => {
25951
- var _a;
25952
- return e3.startRow && e3.endRow ? X(e3.startRow, e3.endRow) ? e3.endRow : e3.startRow : {
25953
- rowIndex: (_a = flattenData.value[flattenData.value.length - 1]) == null ? void 0 : _a.rowIndex,
25954
- rowPinned: null
25955
- };
25956
- };
25957
- const ae2 = (e3, t2, n) => {
25958
- const o = le(n), l2 = re2(n), r2 = { rowIndex: e3, rowPinned: t2 }, a2 = r2.rowIndex === o.rowIndex && r2.rowPinned == o.rowPinned, i2 = r2.rowIndex === l2.rowIndex && r2.rowPinned == l2.rowPinned;
25959
- if (a2 || i2) return true;
25960
- const s2 = !X(r2, o), u2 = X(r2, l2);
25961
- return s2 && u2;
25962
- };
25963
- const getCellRangeCount = (cell2) => isSelectedEmpty.value ? 0 : cellRanges.value.filter((cellRange) => oe(cell2, cellRange)).length;
25964
- const getDisplayedColBefore = (e3) => {
25965
- const t2 = allDisplayedColumns.value, n = t2.findIndex((t3) => t3.columnKey === e3.columnKey);
25966
- return n > 0 ? t2[n - 1] : null;
25967
- };
25968
- const getDisplayedColAfter = (e3) => {
25969
- const t2 = allDisplayedColumns.value, n = t2.findIndex((t3) => t3.columnKey === e3.columnKey);
25970
- return n < t2.length - 1 ? t2[n + 1] : null;
25971
- };
25972
- const ce2 = (e3) => {
25973
- if (null == e3) return null;
25974
- const t2 = allDisplayedColumns.value.find((t3) => t3.columnKey === e3);
25975
- return t2 || console.warn("Table: could not find column " + e3), t2;
25976
- };
25977
- const de2 = () => cellRanges.value;
25978
- const clearAllSelectedRange = () => {
25979
- cellRanges.value = [];
25980
- };
25981
- const appendCellToSelectedRange = (e3) => {
25982
- if (!enableRangeSelection.value) return;
25983
- const t2 = ((e4) => {
25984
- let t3, n = false;
25985
- if (e4.columnsKey) t3 = e4.columnsKey.map((e5) => ce2(e5)).filter((e5) => e5);
25986
- else {
25987
- const o = ce2(e4.columnStartKey), l2 = ce2(e4.columnEndKey);
25988
- if (!o || !l2) return;
25989
- t3 = J(o, l2), t3 && t3.length && (n = t3[0] !== o);
25990
- }
25991
- if (!t3) return;
25992
- return {
25993
- startRow: null != e4.rowStartIndex ? { rowIndex: e4.rowStartIndex, rowPinned: null } : void 0,
25994
- endRow: null != e4.rowEndIndex ? { rowIndex: e4.rowEndIndex, rowPinned: null } : void 0,
25995
- columns: t3,
25996
- startColumn: n ? t3[t3.length - 1] : t3[0]
25997
- };
25998
- })(e3);
25999
- t2 && (t2.startRow && (latestRangeStartCell.value = {
26000
- rowIndex: t2.startRow.rowIndex,
26001
- rowPinned: t2.startRow.rowPinned,
26002
- column: t2.startColumn
26003
- }), cellRanges.value.push(t2));
26004
- };
26005
- const fe2 = (e3) => {
26006
- enableRangeSelection.value && (clearAllSelectedRange(), appendCellToSelectedRange(e3));
26007
- };
26008
- const focusCell = (e3) => {
26009
- let t2, n;
26010
- const o = null === (t2 = getRowByFlattenIndex(e3.rowIndex)) || void 0 === t2 ? void 0 : t2.rowKey, l2 = null === (n = e3.column) || void 0 === n ? void 0 : n.columnKey;
26011
- if (void 0 !== o && void 0 !== l2 && rootRef.value) {
26012
- const e4 = rootRef.value.querySelector(
26013
- `[data-row-key="${o}"] [data-column-key="${l2}"][data-level="${level}"]`
26014
- );
26015
- if (e4) {
26016
- const t4 = e4.getElementsByTagName("input")[0];
26017
- e4.focus();
26018
- t4 && t4.focus();
26019
- }
26020
- }
26021
- };
26022
- const intersectLastRange = (fromMouseClick = false) => {
26023
- if (singleRangeSelection.value) return;
26024
- if (isSelectedEmpty.value) return;
26025
- const lastCellRange2 = cellRanges.value[cellRanges.value.length - 1];
26026
- const n = le(lastCellRange2);
26027
- const o = re2(lastCellRange2);
26028
- const l2 = [];
26029
- cellRanges.value.slice(0, -1).forEach((e4) => {
26030
- const r2 = le(e4), a2 = re2(e4), i2 = e4.columns, s2 = i2.filter((e5) => -1 === (lastCellRange2 == null ? void 0 : lastCellRange2.columns.indexOf(e5)));
26031
- if (s2.length !== i2.length)
26032
- if (X(o, r2) || X(a2, n)) l2.push(e4);
26033
- else {
26034
- if (X(r2, n)) {
26035
- const e5 = {
26036
- columns: [...i2],
26037
- startColumn: lastCellRange2 == null ? void 0 : lastCellRange2.startColumn,
26038
- startRow: Object.assign({}, r2),
26039
- endRow: navigationService.getRowAbove(n)
26040
- };
26041
- l2.push(e5);
26042
- }
26043
- if (s2.length > 0) {
26044
- const e5 = {
26045
- columns: s2,
26046
- startColumn: s2.find((e6) => e6.columnKey === (lastCellRange2 == null ? void 0 : lastCellRange2.startColumn.columnKey)) ? lastCellRange2 == null ? void 0 : lastCellRange2.startColumn : s2[0],
26047
- startRow: q([Object.assign({}, n), Object.assign({}, r2)]),
26048
- endRow: Q([Object.assign({}, o), Object.assign({}, a2)])
26049
- };
26050
- l2.push(e5);
26051
- }
26052
- X(o, a2) && l2.push({
26053
- columns: [...i2],
26054
- startColumn: lastCellRange2 == null ? void 0 : lastCellRange2.startColumn,
26055
- startRow: navigationService.getRowBelow(o),
26056
- endRow: Object.assign({}, a2)
26057
- });
26058
- }
26059
- else l2.push(e4);
26060
- }), cellRanges.value = l2;
26061
- };
26062
- vue.watch(latestRangeStartCell, () => {
26063
- latestRangeStartCell.value && focusCell(latestRangeStartCell.value);
26064
- });
26065
- const ensureCellVisible = (cell2) => {
26066
- parmas.ensureCellRowVisible(cell2);
26067
- parmas.ensureCellColumnVisible(cell2);
26068
- };
26069
- const navigationService = useCellNavigation({
26070
- getDisplayedColBefore,
26071
- getDisplayedColAfter,
26072
- allDisplayedColumns,
26073
- setRangeToCell,
26074
- focusCell,
26075
- ensureCellVisible,
26076
- ...parmas
26077
- });
26078
- vue.provide(RangeSymbolKey, {
26079
- cellRanges,
26080
- extendLatestRangeToCell: (e3) => {
26081
- if (isSelectedEmpty.value || !latestRangeStartCell.value) return;
26082
- const t2 = cellRanges.value[cellRanges.value.length - 1];
26083
- te(t2, e3);
26084
- },
26085
- setRangeToCell,
26086
- onDragStart,
26087
- onDragging,
26088
- isCellInAnyRange: (cell2) => getCellRangeCount(cell2) > 0,
26089
- getRangeCellClass: (e3) => {
26090
- const t2 = getCellRangeCount(e3), n = ((e4) => {
26091
- let t3 = false, n2 = false, o2 = false, l3 = false;
26092
- const r3 = e4.column;
26093
- let a3, i3;
26094
- a3 = getDisplayedColBefore(r3), i3 = getDisplayedColAfter(r3);
26095
- const s2 = cellRanges.value.filter((t4) => oe(e4, t4));
26096
- a3 || (l3 = true), i3 || (n2 = true);
26097
- for (let r4 = 0; r4 < s2.length && !(t3 && n2 && o2 && l3); r4++) {
26098
- const u2 = s2[r4], c2 = le(u2), d = re2(u2);
26099
- !t3 && Z(c2, e4) && (t3 = true), !o2 && Z(d, e4) && (o2 = true), !l3 && a3 && u2.columns.findIndex((e5) => e5.columnKey === a3.columnKey) < 0 && (l3 = true), !n2 && i3 && u2.columns.findIndex((e5) => e5.columnKey === i3.columnKey) < 0 && (n2 = true);
26100
- }
26101
- return { top: t3, right: n2, bottom: o2, left: l3 };
26102
- })(e3), o = 1 === t2 && !Y.value, l2 = !o && n.top, r2 = !o && n.right, a2 = !o && n.bottom, i2 = !o && n.left;
26103
- return classNames({
26104
- [rangeCellClass.value]: 0 !== t2,
26105
- [`${rangeCellClass.value}-1`]: 1 === t2,
26106
- [`${rangeCellClass.value}-2`]: 2 === t2,
26107
- [`${rangeCellClass.value}-3`]: 3 === t2,
26108
- [`${rangeCellClass.value}-4`]: t2 >= 4,
26109
- [RangeSingleCellClass.value]: o,
26110
- [RangeTopClass.value]: l2,
26111
- [RangeRIghtClass.value]: r2,
26112
- [RangeBottomClass.value]: a2,
26113
- [RangeLeftClass.value]: i2
26114
- });
26115
- },
26116
- enableRangeSelection,
26117
- singleRangeSelection,
26118
- getDisplayedColBefore,
26119
- getDisplayedColAfter,
26120
- navigationService,
26121
- extendLatestRangeInDirection: (e3) => {
26122
- if (isSelectedEmpty.value || !latestRangeStartCell.value) return;
26123
- const t2 = e3.keyCode, n = e3.ctrlKey || e3.metaKey, o = cellRanges.value[cellRanges.value.length - 1], l2 = latestRangeStartCell.value, r2 = o.columns[0], a2 = o.columns[o.columns.length - 1], i2 = o.endRow.rowIndex, s2 = o.endRow.rowPinned, u2 = {
26124
- column: l2.column === r2 ? a2 : r2,
26125
- rowIndex: i2,
26126
- rowPinned: s2
26127
- }, d = navigationService.getNextCellToFocus(t2, u2, n);
26128
- return d ? (fe2({
26129
- rowStartIndex: l2.rowIndex,
26130
- rowEndIndex: d.rowIndex,
26131
- columnStartKey: l2.column.columnKey,
26132
- columnEndKey: d.column.columnKey
26133
- }), d) : void 0;
26134
- },
26135
- allDisplayedColumns,
26136
- focusCell,
26137
- ensureCellVisible,
26138
- getCellRangeCount,
26139
- intersectLastRange,
26140
- level
26141
- });
26142
- const copySelectedRange = () => {
26143
- const e3 = de2(), t2 = [];
26144
- let n = "";
26145
- e3.forEach((e4) => {
26146
- const { startRow: n2, endRow: o, columns: r2 } = e4, [a2, i2] = [n2.rowIndex, o.rowIndex].sort((e5, t3) => e5 - t3);
26147
- let s2 = allDisplayedColumns.value.findIndex((e5) => {
26148
- var _a;
26149
- return e5.columnKey === ((_a = r2[0]) == null ? void 0 : _a.columnKey);
26150
- }), u2 = allDisplayedColumns.value.findIndex(
26151
- (e5) => {
26152
- var _a;
26153
- return e5.columnKey === ((_a = r2[r2.length - 1]) == null ? void 0 : _a.columnKey);
26154
- }
26155
- );
26156
- [s2, u2] = [s2, u2].sort((e5, t3) => e5 - t3);
26157
- const c2 = [];
26158
- for (let e5 = a2; e5 <= i2; e5++) {
26159
- const t3 = flattenData.value[e5];
26160
- if (t3 && !t3.isExpandRow) {
26161
- const n3 = t3.rowKey, o2 = [], l2 = getIndexsByKey(n3);
26162
- for (let r3 = s2; r3 <= u2; r3++) {
26163
- const originColumn = allDisplayedColumns.value[r3].originColumn;
26164
- const i3 = originColumn.dataIndex ? getPathValue(t3.record, originColumn.dataIndex) : void 0;
26165
- if (originColumn) {
26166
- const r4 = {
26167
- record: t3.record,
26168
- column: originColumn,
26169
- index: e5,
26170
- recordIndexs: l2,
26171
- key: n3,
26172
- value: i3
26173
- };
26174
- o2.push(formatRangeCellText(r4));
26175
- }
26176
- }
26177
- c2.push(o2.join(copyDelimiter.value));
26178
- }
26179
- }
26180
- t2.push(c2);
26181
- }), n = t2.map((e4) => e4.join("prefixCls\n")).join("prefixCls\n"), ((e4) => {
26182
- let t3, n2;
26183
- const o = document.activeElement, l2 = document.createElement("textarea");
26184
- l2.style.position = "absolute", l2.style.opacity = "0", l2.style.width = "1px", l2.style.height = "1px", l2.value = e4 || " ", document.body.appendChild(l2), l2.select(), l2.focus({ preventScroll: true }), document.execCommand("copy") || console.warn("Table: copy failed, Browser did not allow document.execCommand('copy')"), document.body.removeChild(l2), null !== o && (null === (n2 = (t3 = o).focus) || void 0 === n2 || n2.call(t3, { preventScroll: true }));
26185
- })(n);
26186
- };
26187
- return {
26188
- getSelectedRange: () => {
26189
- const e3 = de2(), t2 = [];
26190
- return e3.forEach((e4) => {
26191
- const { startColumn: n, startRow: o, endRow: r2, columns: a2 } = e4, i2 = flattenData.value[o.rowIndex], s2 = flattenData.value[r2.rowIndex], u2 = {
26192
- startColumn: n.originColumn,
26193
- startRow: {
26194
- rowIndex: i2.rowIndex,
26195
- recordIndexs: getIndexsByKey(i2.rowKey)
26196
- },
26197
- endRow: {
26198
- rowIndex: s2.rowIndex,
26199
- recordIndexs: getIndexsByKey(s2.rowKey)
26200
- },
26201
- columns: a2.map((e5) => e5.originColumn),
26202
- flattenData: flattenData.value
26203
- };
26204
- t2.push(u2);
26205
- }), t2;
26206
- },
26207
- appendCellToSelectedRange,
26208
- clearAllSelectedRange,
26209
- setCellRanges: (e3) => {
26210
- enableRangeSelection.value && (cellRanges.value = e3);
26211
- },
26212
- getCellRangeCount,
26213
- navigationService,
26214
- copySelectedRange,
26215
- onBodyKeydown: (e3) => {
26216
- if (!e3.ctrlKey && !e3.metaKey || !enableRangeSelection.value) return;
26217
- if (isOverFormFieldElement(e3)) return;
26218
- switch (e3.keyCode) {
26219
- case KeyCode.C:
26220
- copySelectedRange();
26221
- break;
26222
- case KeyCode.A:
26223
- (() => {
26224
- if (!enableRangeSelection.value) return;
26225
- const e4 = allDisplayedColumns.value;
26226
- 0 !== e4.length && fe2({
26227
- rowStartIndex: 0,
26228
- rowEndIndex: flattenData.value.length - 1,
26229
- columnStartKey: e4[0].columnKey,
26230
- columnEndKey: e4[e4.length - 1].columnKey
26231
- });
26232
- })();
26233
- }
26234
- e3.preventDefault();
26235
- }
26236
- };
26237
- };
26238
- const useInjectRangeStore = () => {
26239
- return vue.inject(RangeSymbolKey, {});
26240
- };
26241
-
26242
25668
  var MapShim = (function() {
26243
25669
  if (typeof Map !== "undefined") {
26244
25670
  return Map;
@@ -28682,6 +28108,31 @@
28682
28108
  return { data, pos };
28683
28109
  }
28684
28110
 
28111
+ function classNames(...args) {
28112
+ const classes = [];
28113
+ for (let i = 0; i < args.length; i++) {
28114
+ const value = args[i];
28115
+ if (!value) continue;
28116
+ if (isString(value)) {
28117
+ classes.push(value);
28118
+ } else if (isArray(value)) {
28119
+ for (let i2 = 0; i2 < value.length; i2++) {
28120
+ const inner = classNames(value[i2]);
28121
+ if (inner) {
28122
+ classes.push(inner);
28123
+ }
28124
+ }
28125
+ } else if (isObject(value)) {
28126
+ for (const name in value) {
28127
+ if (value[name]) {
28128
+ classes.push(name);
28129
+ }
28130
+ }
28131
+ }
28132
+ }
28133
+ return classes.join(" ");
28134
+ }
28135
+
28685
28136
  const useCellProps = ({
28686
28137
  leftColumns,
28687
28138
  rightColumns,
@@ -28694,6 +28145,10 @@
28694
28145
  leftWidth,
28695
28146
  centerWidth,
28696
28147
  getRowHeight,
28148
+ cancelEditable,
28149
+ startEditable,
28150
+ saveEditable,
28151
+ isEditable,
28697
28152
  customCell: contextCustomCell
28698
28153
  }) => {
28699
28154
  const allCellProps = vue.shallowRef({});
@@ -28716,6 +28171,10 @@
28716
28171
  value,
28717
28172
  record,
28718
28173
  index: rowIndex,
28174
+ cancelEditable,
28175
+ startEditable,
28176
+ saveEditable,
28177
+ isEditable,
28719
28178
  column: originColumn
28720
28179
  });
28721
28180
  if (customCellRender && isObject$4(customCellRender) && !isArray$2(customCellRender) && !vue.isVNode(customCellRender)) {
@@ -32193,114 +31652,6 @@
32193
31652
  return vue.inject(BodyRowContextKey, {});
32194
31653
  };
32195
31654
 
32196
- const useCellSelection = () => {
32197
- const {
32198
- isCellInAnyRange,
32199
- cellRanges,
32200
- extendLatestRangeToCell,
32201
- setRangeToCell,
32202
- enableRangeSelection,
32203
- getCellRangeCount,
32204
- intersectLastRange,
32205
- level
32206
- } = useInjectRangeStore();
32207
- return {
32208
- onCellMousedown: (mouseEvent, cellPosition) => {
32209
- const { ctrlKey, metaKey, shiftKey } = mouseEvent;
32210
- if (!(!isCellInAnyRange(cellPosition) || 2 !== mouseEvent.button)) return;
32211
- const isRanges = !cellRanges.value.length;
32212
- if (shiftKey && isRanges) {
32213
- mouseEvent.preventDefault();
32214
- }
32215
- if (shiftKey) {
32216
- extendLatestRangeToCell(cellPosition);
32217
- } else {
32218
- setRangeToCell(cellPosition, ctrlKey || metaKey);
32219
- }
32220
- mouseEvent.cellInfo = {
32221
- cellPosition,
32222
- cellTarget: mouseEvent.currentTarget,
32223
- level
32224
- };
32225
- },
32226
- onCellMousemove: (mouseEvent, cellPosition) => {
32227
- mouseEvent.cellInfo = {
32228
- cellPosition,
32229
- cellTarget: mouseEvent.currentTarget,
32230
- level
32231
- };
32232
- },
32233
- onCellClick: (mouseEvent, cellPosition) => {
32234
- const mouseKey = mouseEvent.ctrlKey || mouseEvent.metaKey;
32235
- enableRangeSelection.value && mouseKey && getCellRangeCount(cellPosition) > 1 && intersectLastRange(true);
32236
- }
32237
- };
32238
- };
32239
-
32240
- const useCellKeyboard = () => {
32241
- const {
32242
- enableRangeSelection,
32243
- navigationService,
32244
- extendLatestRangeInDirection,
32245
- focusCell,
32246
- ensureCellVisible
32247
- } = useInjectRangeStore();
32248
- const directionOrEnterHandle = (event, payload) => {
32249
- if (!payload.isEditing) {
32250
- event.shiftKey && enableRangeSelection.value ? selectRange(event) : navigationService.navigateToNextCell(event, payload.cellPosition);
32251
- event.preventDefault();
32252
- }
32253
- };
32254
- const { props } = useInjectTable();
32255
- const selectRange = (event) => {
32256
- const latestRange = extendLatestRangeInDirection(event);
32257
- latestRange && ensureCellVisible(latestRange);
32258
- };
32259
- const escHandle = (_, payload) => {
32260
- payload.isEditing && focusCell(payload.cellPosition);
32261
- };
32262
- const tabHandle = (event, payload) => {
32263
- navigationService.onTabKeyDown(payload.cellPosition, event);
32264
- };
32265
- return {
32266
- onCellKeydown: (event, payload) => {
32267
- if (props.onCellKeydown && false === props.onCellKeydown(event, {
32268
- isEditing: payload.isEditing,
32269
- cellPosition: {
32270
- column: payload.cellPosition.column.originColumn,
32271
- rowIndex: payload.cellPosition.rowIndex
32272
- }
32273
- })) {
32274
- return;
32275
- }
32276
- const { keyCode } = event;
32277
- const target = event.target;
32278
- switch (keyCode) {
32279
- case KeyCode.RIGHT:
32280
- case KeyCode.LEFT:
32281
- if (!("INPUT" === (target == null ? void 0 : target.tagName) || "TEXTAREA" === (target == null ? void 0 : target.tagName) || (target == null ? void 0 : target.isContentEditable))) {
32282
- directionOrEnterHandle(event, payload);
32283
- }
32284
- break;
32285
- case KeyCode.DOWN:
32286
- case KeyCode.UP:
32287
- case KeyCode.ENTER:
32288
- if (!((target2) => "TEXTAREA" === target2.tagName || target2.isContentEditable)(
32289
- event.target
32290
- )) {
32291
- directionOrEnterHandle(event, payload);
32292
- }
32293
- break;
32294
- case KeyCode.ESC:
32295
- escHandle(event, payload);
32296
- break;
32297
- case KeyCode.TAB:
32298
- tabHandle(event, payload);
32299
- }
32300
- }
32301
- };
32302
- };
32303
-
32304
31655
  const eventCache = {};
32305
31656
  const eventMap = {
32306
31657
  select: "input",
@@ -32317,6 +31668,68 @@
32317
31668
  return eventCache[eventName = "on" + eventName] = eventName in dom;
32318
31669
  };
32319
31670
 
31671
+ const useAutoScroll = (params) => {
31672
+ const {
31673
+ scrollContainer,
31674
+ scrollAxis,
31675
+ onScrollCallback = () => {
31676
+ },
31677
+ showVerticalScrollbar,
31678
+ showHorizontalScrollbar
31679
+ } = params;
31680
+ let timer = null;
31681
+ let i = 0;
31682
+ let hasLeft = false;
31683
+ let hasRight = false;
31684
+ let hasTop = false;
31685
+ let hasBottom = false;
31686
+ const isXAxis = -1 !== scrollAxis.indexOf("x");
31687
+ const isYAxis = -1 !== scrollAxis.indexOf("y");
31688
+ const scrollByTick = vue.computed(() => {
31689
+ var _a, _b;
31690
+ return (_b = (_a = params.scrollByTick) == null ? void 0 : _a.value) != null ? _b : 20;
31691
+ });
31692
+ const exec = () => {
31693
+ if (null === timer) {
31694
+ timer = window.setInterval(handle, 100);
31695
+ i = 0;
31696
+ }
31697
+ };
31698
+ const handle = () => {
31699
+ i++;
31700
+ const boundary = i > 20 ? 200 : i > 10 ? 80 : 40;
31701
+ if (isYAxis) {
31702
+ const position = params.getVerticalPosition();
31703
+ hasTop && params.setVerticalPosition(position - boundary), hasBottom && params.setVerticalPosition(position + boundary);
31704
+ }
31705
+ if (isXAxis) {
31706
+ const position = params.getHorizontalPosition();
31707
+ hasLeft && params.setHorizontalPosition(position - boundary), hasRight && params.setHorizontalPosition(position + boundary);
31708
+ }
31709
+ onScrollCallback();
31710
+ };
31711
+ const clear = () => {
31712
+ if (timer) {
31713
+ window.clearInterval(timer);
31714
+ timer = null;
31715
+ }
31716
+ };
31717
+ return {
31718
+ check: (mouseEvent, forceSkipVerticalScroll = false) => {
31719
+ const hasVerticalScroll = forceSkipVerticalScroll || !showVerticalScrollbar.value;
31720
+ if (hasVerticalScroll && !showHorizontalScrollbar.value) return;
31721
+ const clientRect = scrollContainer.value.getBoundingClientRect();
31722
+ const tick = scrollByTick.value;
31723
+ hasLeft = mouseEvent.clientX < clientRect.left + tick;
31724
+ hasRight = mouseEvent.clientX > clientRect.right - tick;
31725
+ hasTop = mouseEvent.clientY < clientRect.top + tick && !hasVerticalScroll;
31726
+ hasBottom = mouseEvent.clientY > clientRect.bottom - tick && !hasVerticalScroll;
31727
+ return hasLeft || hasRight || hasTop || hasBottom ? exec() : clear();
31728
+ },
31729
+ ensureCleared: clear
31730
+ };
31731
+ };
31732
+
32320
31733
  var _sfc_main$o = vue.defineComponent({
32321
31734
  name: "RowDragHandler",
32322
31735
  props: {
@@ -32840,188 +32253,6 @@
32840
32253
  }
32841
32254
  });
32842
32255
 
32843
- var _sfc_main$n = vue.defineComponent({
32844
- inheritAttrs: false,
32845
- props: {
32846
- prefixCls: { type: String },
32847
- recordIndexs: { type: Array },
32848
- rowKey: { type: [Number, String] },
32849
- column: { type: Object, default: () => ({}) },
32850
- record: { type: Object, default: () => ({}) },
32851
- value: { validator: () => true },
32852
- customEditable: { type: Boolean, default: false },
32853
- multiple: { type: Boolean, default: false },
32854
- autoHeight: { type: Boolean, default: false },
32855
- cellKey: { type: String },
32856
- getPopupContainer: Function,
32857
- onCloseEditor: Function,
32858
- onKeydown: Function
32859
- },
32860
- emits: ["closeEditor", "keydown"],
32861
- setup(props, { expose, emit }) {
32862
- var _a, _b, _c;
32863
- const tableSlots = useInjectSlots();
32864
- const popup = useInjectPopup();
32865
- const oldValue = (_c = (_b = (_a = props.column) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, {
32866
- value: props.value,
32867
- record: props.record,
32868
- column: props.column,
32869
- recordIndexs: props.recordIndexs
32870
- })) != null ? _c : props.value;
32871
- const modelValue = vue.ref(oldValue);
32872
- const inputRef = vue.shallowRef(null);
32873
- const tableContext = useInjectTable();
32874
- vue.onMounted(() => {
32875
- vue.nextTick(() => {
32876
- var _a2, _b2, _c2, _d;
32877
- if (inputRef.value && !props.multiple) {
32878
- (_b2 = (_a2 = inputRef.value) == null ? void 0 : _a2.focus) == null ? void 0 : _b2.call(_a2);
32879
- (_d = (_c2 = inputRef.value) == null ? void 0 : _c2.select) == null ? void 0 : _d.call(_c2);
32880
- }
32881
- });
32882
- });
32883
- expose({ value: modelValue, inputRef });
32884
- const onInput = (e, val) => {
32885
- var _a2, _b2;
32886
- (_b2 = (_a2 = props.column).valueChange) == null ? void 0 : _b2.call(_a2, e, {
32887
- column: props.column,
32888
- record: props.record,
32889
- recordIndexs: props.recordIndexs,
32890
- newValue: val,
32891
- oldValue
32892
- });
32893
- };
32894
- const childrenColumnName = vue.computed(() => tableContext.props.childrenColumnName || "children");
32895
- const save = () => {
32896
- var _a2, _b2, _c2;
32897
- const recordIndexs = props.recordIndexs;
32898
- let dataSource = tableContext.props.dataSource || [];
32899
- let record = {};
32900
- recordIndexs.forEach((index) => {
32901
- record = dataSource[index];
32902
- dataSource = record[childrenColumnName.value] || [];
32903
- });
32904
- const value = (_c2 = (_b2 = (_a2 = props.column).valueParser) == null ? void 0 : _b2.call(_a2, {
32905
- column: props.column,
32906
- record,
32907
- recordIndexs,
32908
- newValue: modelValue.value,
32909
- oldValue
32910
- })) != null ? _c2 : modelValue.value;
32911
- const valueSetter = props.column.valueSetter;
32912
- if (valueSetter) {
32913
- const result = valueSetter({
32914
- column: props.column,
32915
- record,
32916
- recordIndexs,
32917
- newValue: modelValue.value,
32918
- oldValue
32919
- });
32920
- if (isPromise(result)) {
32921
- result.then((res) => {
32922
- res && emit("closeEditor", [props.cellKey]);
32923
- }).catch(() => {
32924
- });
32925
- return;
32926
- }
32927
- result && emit("closeEditor", [props.cellKey]);
32928
- } else {
32929
- devWarning(
32930
- void 0 !== props.column.dataIndex || null !== props.column.dataIndex,
32931
- "Editable",
32932
- "If not have column dataIndex, you should to set valueSetter for editable columns, otherwise the value cannot be modified."
32933
- );
32934
- set(record, props.column.dataIndex, value);
32935
- emit("closeEditor", [props.cellKey]);
32936
- }
32937
- };
32938
- let isKeyDown = false;
32939
- const closeEditor = (key) => {
32940
- emit("closeEditor", key != null ? key : [props.cellKey]);
32941
- };
32942
- return {
32943
- modelValue,
32944
- inputRef,
32945
- handleInput: (e) => {
32946
- var _a2;
32947
- onInput(e, (_a2 = e.target) == null ? void 0 : _a2.value);
32948
- },
32949
- handleKeyDown: (e) => {
32950
- const { which } = e;
32951
- if (which === KeyCode.ENTER) {
32952
- save();
32953
- } else {
32954
- if (which === KeyCode.ESC) {
32955
- isKeyDown = true;
32956
- emit("closeEditor", null);
32957
- }
32958
- emit("keydown", e);
32959
- }
32960
- },
32961
- handleBlur: () => {
32962
- isKeyDown || props.multiple || save();
32963
- },
32964
- tableSlots,
32965
- popup,
32966
- save,
32967
- closeEditor,
32968
- getCustomEditorProps: () => ({
32969
- modelValue,
32970
- save,
32971
- onInput,
32972
- closeEditor,
32973
- column: props.column.originColumn,
32974
- editorRef: inputRef,
32975
- getPopupContainer: props.getPopupContainer,
32976
- record: props.record,
32977
- recordIndexs: props.recordIndexs
32978
- })
32979
- };
32980
- }
32981
- });
32982
-
32983
- const _hoisted_1$8 = ["data-cell-auto"];
32984
- function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
32985
- return vue.openBlock(), vue.createElementBlock("div", {
32986
- class: vue.normalizeClass(`${_ctx.prefixCls}-cell-edit-inner`),
32987
- "data-cell-auto": _ctx.autoHeight
32988
- }, [
32989
- _ctx.customEditable ? (vue.openBlock(), vue.createElementBlock(
32990
- vue.Fragment,
32991
- { key: 0 },
32992
- [
32993
- _ctx.tableSlots.cellEditor ? (vue.openBlock(), vue.createBlock(
32994
- vue.resolveDynamicComponent(_ctx.tableSlots.cellEditor),
32995
- vue.normalizeProps(vue.mergeProps({ key: 0 }, _ctx.getCustomEditorProps())),
32996
- null,
32997
- 16
32998
- /* FULL_PROPS */
32999
- )) : vue.createCommentVNode("v-if", true)
33000
- ],
33001
- 64
33002
- /* STABLE_FRAGMENT */
33003
- )) : vue.withDirectives((vue.openBlock(), vue.createElementBlock(
33004
- "input",
33005
- {
33006
- key: 1,
33007
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.modelValue = $event),
33008
- ref: "inputRef",
33009
- class: vue.normalizeClass(`${_ctx.prefixCls}-cell-edit-input`),
33010
- type: "text",
33011
- onInput: _cache[1] || (_cache[1] = (...args) => _ctx.handleInput && _ctx.handleInput(...args)),
33012
- onKeydown: _cache[2] || (_cache[2] = (...args) => _ctx.handleKeyDown && _ctx.handleKeyDown(...args)),
33013
- onBlur: _cache[3] || (_cache[3] = (...args) => _ctx.handleBlur && _ctx.handleBlur(...args))
33014
- },
33015
- null,
33016
- 34
33017
- /* CLASS, NEED_HYDRATION */
33018
- )), [
33019
- [vue.vModelText, _ctx.modelValue]
33020
- ])
33021
- ], 10, _hoisted_1$8);
33022
- }
33023
- var EditInput = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$j]]);
33024
-
33025
32256
  const cellProps = {
33026
32257
  prefixCls: String,
33027
32258
  rowIndex: { type: Number, required: true },
@@ -33038,41 +32269,30 @@
33038
32269
  tooltipOpen: Boolean,
33039
32270
  getPopupContainer: Function,
33040
32271
  onCellLeave: Function,
33041
- editCellKeys: Array,
33042
- onOpenEditor: Function,
33043
- onCloseEditor: Function,
33044
- onMousedown: Function,
33045
- onMousemove: Function,
33046
- onKeydown: Function,
33047
32272
  onClick: Function
33048
32273
  };
33049
32274
  let lastClickTime = 0;
32275
+ const hasSupportedDblclick = () => {
32276
+ if (!isIOSUserAgent() || isEventSupported("dblclick")) return false;
32277
+ const now = (/* @__PURE__ */ new Date()).getTime();
32278
+ const is = now - lastClickTime < 200;
32279
+ lastClickTime = now;
32280
+ return is;
32281
+ };
33050
32282
  const ValueStatusEnum = {
33051
32283
  success: "#03bf64",
33052
32284
  processing: "#315efb",
33053
32285
  error: "#e8353e",
33054
32286
  warning: "#eb8903"
33055
32287
  };
33056
- const BodyCell = (props, { slots, emit }) => {
32288
+ const BodyCell$1 = (props, { slots, emit }) => {
33057
32289
  var _a, _b, _c, _d, _e, _f, _g, _h;
33058
32290
  const { table } = useProConfigInject();
33059
32291
  const tableSlotsContext = useInjectSlots();
33060
32292
  const tableContext = useInjectTable();
33061
32293
  const { onBodyCellContextmenu } = useInjectBody();
33062
- const { getRangeCellClass } = useInjectRangeStore();
33063
32294
  const level = useInjectLevel();
33064
- const { oldValuesMap } = useEditInject();
33065
- const {
33066
- prefixCls,
33067
- column,
33068
- wrapText,
33069
- rowKey,
33070
- item,
33071
- rowIndex,
33072
- hasAppendNode,
33073
- tooltipOpen,
33074
- editCellKeys
33075
- } = props;
32295
+ const { prefixCls, column, wrapText, rowKey, item, rowIndex, hasAppendNode, tooltipOpen } = props;
33076
32296
  const columnKey = column.columnKey;
33077
32297
  const valueEnum = runFunction(column == null ? void 0 : column.valueEnum, props.item);
33078
32298
  const rowDrag = typeof column.rowDrag == "function" ? column.rowDrag({ record: item, column: column.originColumn }) : !!column.rowDrag;
@@ -33082,22 +32302,8 @@
33082
32302
  const sorterInfo = { sorterOrder };
33083
32303
  const key = `${props.rowKey} ${columnKey}`;
33084
32304
  const value = column.dataIndex ? column.renderText ? column.renderText(get(item, column.dataIndex), item, rowIndex) : get(item, column.dataIndex) : void 0;
33085
- const valueStatus = runFunction(column == null ? void 0 : column.valueStatus, value, props.item);
32305
+ const valueStatus = runFunction(column == null ? void 0 : column.valueStatus, value, props.item, valueEnum == null ? void 0 : valueEnum[value]);
33086
32306
  const recordIndexs = tableContext.getIndexsByKey(rowKey);
33087
- let customEditable = false;
33088
- let isEditing = editCellKeys == null ? void 0 : editCellKeys.includes(key);
33089
- if (isEditing) {
33090
- const editable = "function" == typeof column.editable && column.editable({
33091
- record: item,
33092
- column: column.originColumn,
33093
- recordIndexs,
33094
- value
33095
- });
33096
- customEditable = "cellEditorSlot" === column.editable || "cellEditorSlot" === editable;
33097
- isEditing = isEditing && (customEditable && !!tableSlotsContext.cellEditor || true === column.editable || !!editable);
33098
- }
33099
- let { editableTrigger = ["dblClick"] } = column;
33100
- editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger];
33101
32307
  const cellInnerClass = { [`${prefixCls}-cell-inner`]: true };
33102
32308
  const cellContentClass = {
33103
32309
  [`${prefixCls}-cell-content`]: true,
@@ -33118,7 +32324,6 @@
33118
32324
  const cellRender = ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[rowKey]) == null ? void 0 : _b[column.columnKey]) || {};
33119
32325
  const cellProps2 = cellRender.props || {};
33120
32326
  const cellRowSpan = cellProps2.rowSpan;
33121
- const cellPosition = { rowIndex: props.flattenRowIndex, rowPinned: null, column };
33122
32327
  const cellClass = {
33123
32328
  [`${prefixCls}-cell`]: true,
33124
32329
  [`${prefixCls}-first-cell`]: column.columnIndex === 0,
@@ -33126,60 +32331,7 @@
33126
32331
  [`${prefixCls}-cell-multi`]: cellRowSpan > 1,
33127
32332
  [`${prefixCls}-cell-hidden`]: cellRowSpan === 0,
33128
32333
  [`${prefixCls}-column-sort`]: sorterInfo.sorterOrder,
33129
- [`${prefixCls}-with-append`]: hasAppendNode,
33130
- [`${prefixCls}-cell-inline-edit`]: isEditing,
33131
- [getRangeCellClass(cellPosition)]: true
33132
- };
33133
- const openEditor = () => {
33134
- var _a2, _b2, _c2, _d2, _e2, _f2, _g2;
33135
- const oldValue = (_c2 = (_b2 = (_a2 = props.column) == null ? void 0 : _a2.valueGetter) == null ? void 0 : _b2.call(_a2, {
33136
- value,
33137
- record: item,
33138
- column,
33139
- recordIndexs
33140
- })) != null ? _c2 : value;
33141
- const beforeOpen = (_e2 = (_d2 = tableContext.props) == null ? void 0 : _d2.onBeforeOpenEditor) == null ? void 0 : _e2.call(_d2, cellRenderArgs);
33142
- if (isPromise(beforeOpen)) {
33143
- beforeOpen.then((res) => {
33144
- var _a3, _b3;
33145
- if (res) {
33146
- emit("openEditor", key, { [key]: oldValue });
33147
- (_b3 = (_a3 = tableContext.props) == null ? void 0 : _a3.onOpenEditor) == null ? void 0 : _b3.call(_a3, cellRenderArgs);
33148
- }
33149
- });
33150
- } else {
33151
- if (false !== beforeOpen) {
33152
- emit("openEditor", key, { [key]: oldValue });
33153
- (_g2 = (_f2 = tableContext.props) == null ? void 0 : _f2.onOpenEditor) == null ? void 0 : _g2.call(_f2, cellRenderArgs);
33154
- }
33155
- }
33156
- };
33157
- const closeEditor = (currentKey) => {
33158
- var _a2, _b2, _c2, _d2;
33159
- const beforeClose = (_b2 = (_a2 = tableContext.props) == null ? void 0 : _a2.onBeforeCloseEditor) == null ? void 0 : _b2.call(_a2, {
33160
- ...cellRenderArgs,
33161
- oldValue: oldValuesMap.value[key]
33162
- });
33163
- if (isPromise(beforeClose)) {
33164
- beforeClose.then((res) => {
33165
- var _a3, _b3;
33166
- if (res) {
33167
- emit("closeEditor", currentKey != null ? currentKey : key);
33168
- (_b3 = (_a3 = tableContext.props) == null ? void 0 : _a3.onCloseEditor) == null ? void 0 : _b3.call(_a3, {
33169
- ...cellRenderArgs,
33170
- oldValue: oldValuesMap.value[key]
33171
- });
33172
- }
33173
- });
33174
- } else {
33175
- if (false !== beforeClose) {
33176
- emit("closeEditor", currentKey != null ? currentKey : key);
33177
- (_d2 = (_c2 = tableContext.props) == null ? void 0 : _c2.onCloseEditor) == null ? void 0 : _d2.call(_c2, {
33178
- ...cellRenderArgs,
33179
- oldValue: oldValuesMap.value[key]
33180
- });
33181
- }
33182
- }
32334
+ [`${prefixCls}-with-append`]: hasAppendNode
33183
32335
  };
33184
32336
  const cellRenderArgs = {
33185
32337
  record: item,
@@ -33190,8 +32342,10 @@
33190
32342
  recordIndexs: tableContext.getIndexsByKey(rowKey),
33191
32343
  key,
33192
32344
  valueStatus,
33193
- openEditor,
33194
- closeEditor
32345
+ cancelEditable: tableContext.cancelEditable,
32346
+ startEditable: tableContext.startEditable,
32347
+ saveEditable: tableContext.saveEditable,
32348
+ isEditable: tableContext.isEditable
33195
32349
  };
33196
32350
  let bodyCell = recordIndexs && ((_c = tableSlotsContext.bodyCell) == null ? void 0 : _c.call(tableSlotsContext, cellRenderArgs)) || [];
33197
32351
  const emptyText = tableContext.props.columnEmptyText !== false ? (_f = (_e = tableContext.props.columnEmptyText) != null ? _e : (_d = table == null ? void 0 : table.value) == null ? void 0 : _d.columnEmptyText) != null ? _f : "-" : "";
@@ -33310,27 +32464,6 @@
33310
32464
  } else {
33311
32465
  renderCellVNode = cellVNode;
33312
32466
  }
33313
- const onDblclick = () => {
33314
- editableTrigger.includes("dblClick") && openEditor();
33315
- };
33316
- const editInputRender = isEditing ? vue.createVNode(
33317
- EditInput,
33318
- {
33319
- prefixCls,
33320
- recordIndexs,
33321
- rowKey,
33322
- cellKey: key,
33323
- column,
33324
- record: item,
33325
- onCloseEditor: closeEditor,
33326
- value,
33327
- customEditable,
33328
- getPopupContainer: props.getPopupContainer,
33329
- multiple: editCellKeys.length > 1,
33330
- autoHeight
33331
- },
33332
- null
33333
- ) : null;
33334
32467
  return vue.createVNode(
33335
32468
  "div",
33336
32469
  vue.mergeProps(cellProps2, {
@@ -33342,39 +32475,25 @@
33342
32475
  "data-column-key": columnKey,
33343
32476
  class: cellClass,
33344
32477
  onContextmenu: (e) => {
33345
- if ((tableContext.props.hasContextmenuPopup || tableContext.props.rangeSelection) && 0 === e.button && e.ctrlKey) {
32478
+ if (tableContext.props.hasContextmenuPopup && 0 === e.button && e.ctrlKey) {
33346
32479
  e.preventDefault();
33347
32480
  } else {
33348
32481
  onBodyCellContextmenu(e, cellRenderArgs, props.type);
33349
- editableTrigger.includes("contextmenu") && openEditor();
32482
+ emit("contextmenu", e);
33350
32483
  }
33351
32484
  },
33352
- onDblclick,
32485
+ onDblclick: (e) => {
32486
+ emit("dblClick", e);
32487
+ },
33353
32488
  onClick: (e) => {
33354
32489
  var _a2, _b2;
33355
32490
  (_b2 = (_a2 = tableContext.props) == null ? void 0 : _a2.onCellClick) == null ? void 0 : _b2.call(_a2, e, cellRenderArgs);
33356
- if ((() => {
33357
- if (!isIOSUserAgent() || isEventSupported("dblclick")) return false;
33358
- const now = (/* @__PURE__ */ new Date()).getTime();
33359
- const is = now - lastClickTime < 200;
33360
- lastClickTime = now;
33361
- return is;
33362
- })()) {
33363
- onDblclick();
32491
+ if (hasSupportedDblclick()) {
32492
+ emit("dblclick", e);
33364
32493
  e.preventDefault();
33365
32494
  return;
33366
32495
  }
33367
- emit("click", e, cellPosition);
33368
- editableTrigger.includes("click") && openEditor();
33369
- },
33370
- onMousedown: (e) => {
33371
- emit("mousedown", e, cellPosition);
33372
- },
33373
- onMousemove: (e) => {
33374
- emit("mousemove", e, cellPosition);
33375
- },
33376
- onKeydown: (e) => {
33377
- emit("keydown", e, { cellPosition, isEditing });
32496
+ emit("click", e);
33378
32497
  },
33379
32498
  "data-level": level,
33380
32499
  "aria-selected": "true"
@@ -33389,26 +32508,533 @@
33389
32508
  },
33390
32509
  { label: () => bodyCell }
33391
32510
  ) : null,
33392
- renderCellVNode,
33393
- autoHeight && editInputRender ? vue.createVNode(
33394
- "label",
33395
- {
33396
- class: `${prefixCls}-cell-edit-wrapper`,
33397
- onMousedown: (e) => e.stopPropagation()
33398
- },
33399
- [vue.withDirectives(editInputRender, [[cellResize, cellResizeValue]])]
33400
- ) : editInputRender ? vue.createVNode(
33401
- "label",
33402
- {
33403
- class: `${prefixCls}-cell-edit-wrapper`,
33404
- onMousedown: (e) => e.stopPropagation()
33405
- },
33406
- [editInputRender]
33407
- ) : null
32511
+ renderCellVNode
33408
32512
  ]
33409
32513
  );
33410
32514
  };
33411
- BodyCell.props = cellProps;
32515
+ BodyCell$1.props = cellProps;
32516
+
32517
+ function getCharacterLength(str, maxCharacter) {
32518
+ const hasMaxCharacter = isNumber$2(maxCharacter);
32519
+ if (!str || str.length === 0) {
32520
+ if (hasMaxCharacter) {
32521
+ return {
32522
+ length: 0,
32523
+ characters: str
32524
+ };
32525
+ }
32526
+ return 0;
32527
+ }
32528
+ let len = 0;
32529
+ for (let i = 0; i < str.length; i++) {
32530
+ let currentStringLength = 0;
32531
+ if (str.charCodeAt(i) > 127) {
32532
+ currentStringLength = 2;
32533
+ } else {
32534
+ currentStringLength = 1;
32535
+ }
32536
+ if (hasMaxCharacter && len + currentStringLength > maxCharacter) {
32537
+ return {
32538
+ length: len,
32539
+ characters: str.slice(0, i)
32540
+ };
32541
+ }
32542
+ len += currentStringLength;
32543
+ }
32544
+ if (hasMaxCharacter) {
32545
+ return {
32546
+ length: len,
32547
+ characters: str
32548
+ };
32549
+ }
32550
+ return len;
32551
+ }
32552
+ function isValueEmpty(val) {
32553
+ const type = Object.prototype.toString.call(val);
32554
+ const typeMap = {
32555
+ Date: "[object Date]"
32556
+ };
32557
+ if (type === typeMap.Date) {
32558
+ return false;
32559
+ }
32560
+ return isObject$4(val) ? isEmpty(val) : ["", void 0, null].includes(val);
32561
+ }
32562
+ const VALIDATE_MAP = {
32563
+ required: (val) => !isValueEmpty(val),
32564
+ whitespace: (val) => !(/^\s+$/.test(val) || val === ""),
32565
+ boolean: (val) => isBoolean(val),
32566
+ max: (val, num) => isNumber$2(val) ? val <= num : getCharacterLength(val) <= num,
32567
+ min: (val, num) => isNumber$2(val) ? val >= num : getCharacterLength(val) >= num,
32568
+ len: (val, num) => getCharacterLength(String(val)) === num,
32569
+ number: (val) => isNumber$2(val),
32570
+ enum: (val, strs) => strs.includes(val),
32571
+ idcard: (val) => /^(\d{18,18}|\d{15,15}|\d{17,17}x)$/i.test(val),
32572
+ telnumber: (val) => /^1[3-9]\d{9}$/.test(val),
32573
+ pattern: (val, regexp) => regexp.test(val),
32574
+ // 自定义校验规则,可能是异步校验
32575
+ validator: (val, validate2) => validate2(val)
32576
+ };
32577
+ async function validateOneRule(value, rule) {
32578
+ let validateResult = { result: true };
32579
+ const keys = Object.keys(rule);
32580
+ let vOptions;
32581
+ let vValidateFun;
32582
+ for (let i = 0; i < keys.length; i++) {
32583
+ const key = keys[i];
32584
+ if (!rule.required && isValueEmpty(value) && !rule.validator) {
32585
+ return validateResult;
32586
+ }
32587
+ const validateRule = VALIDATE_MAP[key];
32588
+ if (validateRule && (rule[key] || rule[key] === 0)) {
32589
+ vOptions = rule[key] === true ? void 0 : rule[key];
32590
+ vValidateFun = validateRule;
32591
+ break;
32592
+ }
32593
+ }
32594
+ if (vValidateFun) {
32595
+ validateResult = await vValidateFun(value, vOptions);
32596
+ if (isBoolean(validateResult)) {
32597
+ return { ...rule, result: validateResult };
32598
+ }
32599
+ if (isObject$4(validateResult)) {
32600
+ return validateResult;
32601
+ }
32602
+ }
32603
+ return validateResult;
32604
+ }
32605
+ async function validate(value, rules) {
32606
+ const all = rules.map((rule) => validateOneRule(value, rule));
32607
+ const r = await Promise.all(all);
32608
+ return r;
32609
+ }
32610
+
32611
+ const parsingValueEnumToArray = (valueEnum) => {
32612
+ const enumArray = [];
32613
+ const valueKeys = Object.keys(valueEnum != null ? valueEnum : {});
32614
+ if (!(valueKeys == null ? void 0 : valueKeys.length)) {
32615
+ return;
32616
+ }
32617
+ valueKeys.forEach((key) => {
32618
+ const value = valueEnum[key];
32619
+ if (!value) {
32620
+ return;
32621
+ }
32622
+ if (typeof value === "object" && (value == null ? void 0 : value.text)) {
32623
+ enumArray.push({
32624
+ text: value == null ? void 0 : value.text,
32625
+ value: key,
32626
+ label: value == null ? void 0 : value.text,
32627
+ disabled: value.disabled
32628
+ });
32629
+ return;
32630
+ }
32631
+ enumArray.push({
32632
+ text: value,
32633
+ value: key,
32634
+ label: value
32635
+ });
32636
+ });
32637
+ return enumArray;
32638
+ };
32639
+ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
32640
+ inheritAttrs: false,
32641
+ props: {
32642
+ prefixCls: String,
32643
+ rowIndex: {
32644
+ type: Number,
32645
+ required: true
32646
+ },
32647
+ flattenRowIndex: {
32648
+ type: Number,
32649
+ required: true
32650
+ },
32651
+ rowKey: {
32652
+ type: [Number, String]
32653
+ },
32654
+ column: {
32655
+ type: Object,
32656
+ default: () => ({})
32657
+ },
32658
+ item: {
32659
+ type: Object,
32660
+ default: () => ({})
32661
+ },
32662
+ isRowEdit: Boolean,
32663
+ editRow: {
32664
+ type: Object
32665
+ }
32666
+ },
32667
+ emits: ["closeEditor", "keydown"],
32668
+ setup(props) {
32669
+ const tableContext = useInjectTable();
32670
+ const level = useInjectLevel();
32671
+ const columnKey = vue.computed(() => props.column.columnKey);
32672
+ const recordIndexs = vue.computed(() => tableContext.getIndexsByKey(props.rowKey));
32673
+ const childrenColumnName = vue.computed(() => tableContext.props.childrenColumnName || "children");
32674
+ const valueEnum = vue.computed(() => {
32675
+ var _a;
32676
+ return parsingValueEnumToArray(runFunction((_a = props.column) == null ? void 0 : _a.valueEnum, props.item));
32677
+ });
32678
+ const errorList = vue.ref();
32679
+ const {
32680
+ editRowsMap,
32681
+ setEditingCell
32682
+ } = useEditInject();
32683
+ const cellValue = vue.computed(() => props.column.dataIndex ? get(!props.isRowEdit ? props.item : props.editRow, props.column.dataIndex) : void 0);
32684
+ const cellRender = vue.computed(() => {
32685
+ var _a, _b;
32686
+ return ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
32687
+ });
32688
+ const cellProps = vue.computed(() => cellRender.value.props || {});
32689
+ const cellRowSpan = vue.computed(() => cellProps.value.rowSpan);
32690
+ const sorterState = vue.computed(() => tableContext.sorterStates.value.find(({
32691
+ key
32692
+ }) => key === columnKey.value));
32693
+ const sorterOrder = vue.computed(() => {
32694
+ var _a;
32695
+ return sorterState.value ? (_a = sorterState.value) == null ? void 0 : _a.sortOrder : null;
32696
+ });
32697
+ const cellClass = vue.computed(() => ({
32698
+ [`${props.prefixCls}-cell`]: true,
32699
+ [`${props.prefixCls}-first-cell`]: props.column.columnIndex === 0,
32700
+ [`${props.prefixCls}-body-cell`]: true,
32701
+ [`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,
32702
+ [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,
32703
+ [`${props.prefixCls}-column-sort`]: sorterOrder.value
32704
+ }));
32705
+ const rules = vue.computed(() => {
32706
+ var _a, _b;
32707
+ return (_b = runFunction((_a = props.column.edit) == null ? void 0 : _a.rules, {
32708
+ column: props.column,
32709
+ record: props.isRowEdit ? props.editRow : props.item,
32710
+ recordIndexs: recordIndexs.value,
32711
+ newValue: cellValue.value
32712
+ })) != null ? _b : [];
32713
+ });
32714
+ const validateEnabled = vue.computed(() => rules.value.length > 0);
32715
+ const editValue = vue.ref();
32716
+ const cellParams = vue.computed(() => ({
32717
+ column: props.column,
32718
+ record: !props.isRowEdit ? props.item : props.editRow,
32719
+ recordIndexs: recordIndexs.value,
32720
+ value: editValue.value
32721
+ }));
32722
+ const editOnListeners = vue.computed(() => {
32723
+ var _a, _b;
32724
+ return ((_b = (_a = props.column.edit) == null ? void 0 : _a.on) == null ? void 0 : _b.call(_a, {
32725
+ ...cellParams.value
32726
+ })) || {};
32727
+ });
32728
+ const editProps = vue.computed(() => {
32729
+ const {
32730
+ edit = {}
32731
+ } = props.column;
32732
+ return isFunction$2(edit.props) ? edit.props(cellParams.value) : {
32733
+ ...edit.props
32734
+ };
32735
+ });
32736
+ const options = vue.computed(() => {
32737
+ var _a, _b;
32738
+ return (_b = (_a = editProps.value) == null ? void 0 : _a.options) != null ? _b : valueEnum.value;
32739
+ });
32740
+ const componentProps = vue.computed(() => {
32741
+ const {
32742
+ edit
32743
+ } = props.column;
32744
+ if (!edit) return {};
32745
+ const tmpProps = {
32746
+ ...editProps.value
32747
+ };
32748
+ delete tmpProps.onChange;
32749
+ delete tmpProps.value;
32750
+ delete tmpProps.options;
32751
+ return tmpProps;
32752
+ });
32753
+ const validateEdit = () => {
32754
+ return new Promise((resolve) => {
32755
+ if (!validateEnabled.value) {
32756
+ resolve(true);
32757
+ return true;
32758
+ }
32759
+ validate(editValue.value, rules.value).then((result) => {
32760
+ const list = result == null ? void 0 : result.filter((t) => !t.result);
32761
+ if (!list || !list.length) {
32762
+ errorList.value = [];
32763
+ resolve(true);
32764
+ } else {
32765
+ errorList.value = list;
32766
+ resolve(list);
32767
+ }
32768
+ });
32769
+ });
32770
+ };
32771
+ const onEditChange = (val, ...args) => {
32772
+ var _a, _b, _c, _d, _e, _f, _g, _h;
32773
+ const params = {
32774
+ column: props.column,
32775
+ record: props.isRowEdit ? props.editRow : props.item,
32776
+ recordIndexs: recordIndexs.value,
32777
+ newValue: cellValue.value
32778
+ };
32779
+ const value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueParser) == null ? void 0 : _b.call(_a, params)) != null ? _c : editValue.value;
32780
+ const valueSetter = (_d = props.column.edit) == null ? void 0 : _d.valueSetter;
32781
+ if (valueSetter) {
32782
+ valueSetter(params);
32783
+ } else {
32784
+ (_f = (_e = editProps.value) == null ? void 0 : _e.onChange) == null ? void 0 : _f.call(_e, val, ...args);
32785
+ (_h = (_g = editOnListeners.value) == null ? void 0 : _g.onChange) == null ? void 0 : _h.call(_g, params);
32786
+ if (props.isRowEdit) {
32787
+ const record = {
32788
+ ...props.editRow
32789
+ };
32790
+ set(record, props.column.dataIndex, value);
32791
+ editRowsMap.value[props.rowKey] = record;
32792
+ vue.triggerRef(editRowsMap);
32793
+ } else {
32794
+ let record = {};
32795
+ let dataSource = tableContext.rawData.value || [];
32796
+ recordIndexs.value.forEach((index) => {
32797
+ record = dataSource[index];
32798
+ dataSource = record[childrenColumnName.value] || [];
32799
+ });
32800
+ set(record, props.column.dataIndex, value);
32801
+ vue.triggerRef(tableContext.rawData);
32802
+ }
32803
+ }
32804
+ validateEdit();
32805
+ };
32806
+ vue.watch(cellValue, (value) => {
32807
+ var _a, _b, _c;
32808
+ editValue.value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : value;
32809
+ }, {
32810
+ immediate: true
32811
+ });
32812
+ vue.onMounted(() => {
32813
+ setEditingCell({
32814
+ recordIndexs: recordIndexs.value,
32815
+ column: props.column,
32816
+ rowKey: props.rowKey,
32817
+ originRecord: props.item,
32818
+ rowIndex: props.rowIndex,
32819
+ columnKey: props.column.columnKey,
32820
+ validateEdit
32821
+ }, true);
32822
+ });
32823
+ vue.onUnmounted(() => {
32824
+ var _a, _b, _c;
32825
+ setEditingCell({
32826
+ recordIndexs: recordIndexs.value,
32827
+ column: props.column,
32828
+ rowKey: props.rowKey,
32829
+ originRecord: props.item,
32830
+ rowIndex: props.rowIndex,
32831
+ columnKey: props.column.columnKey,
32832
+ validateEdit
32833
+ }, false);
32834
+ (_c = (_b = (_a = props.column) == null ? void 0 : _a.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, cellParams.value);
32835
+ });
32836
+ return () => {
32837
+ var _a, _b, _c, _d;
32838
+ const Component = (_a = props.column.edit) == null ? void 0 : _a.component;
32839
+ const errorMessage = (_c = (_b = errorList.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.message;
32840
+ const inlineError = (_d = props.column.edit) == null ? void 0 : _d.inlineError;
32841
+ const tmpEditOnListeners = {
32842
+ ...editOnListeners.value
32843
+ };
32844
+ delete tmpEditOnListeners.onChange;
32845
+ return vue.createVNode("div", vue.mergeProps(cellProps.value, {
32846
+ "class": cellClass.value,
32847
+ "tabindex": "-1",
32848
+ "role": "cell",
32849
+ "data-column-key": columnKey.value,
32850
+ "data-level": level,
32851
+ "aria-selected": "true",
32852
+ "onClick": (e) => {
32853
+ e.stopPropagation();
32854
+ }
32855
+ }), [vue.createVNode("div", {
32856
+ "class": `${props.prefixCls}-cell-content`,
32857
+ "style": "width: 100%; position:relative"
32858
+ }, [vue.createVNode(Component, vue.mergeProps({
32859
+ "style": "width: 100%",
32860
+ "status": errorMessage ? "error" : void 0,
32861
+ "value": editValue.value,
32862
+ "onUpdate:value": ($event) => editValue.value = $event,
32863
+ "getPopupContainer": () => document.body
32864
+ }, componentProps.value, tmpEditOnListeners, {
32865
+ "options": options.value,
32866
+ "onChange": onEditChange
32867
+ }), null), errorMessage && (!inlineError ? vue.createVNode(antDesignVue.Popover, {
32868
+ "arrowPointAtCenter": true,
32869
+ "placement": "topRight",
32870
+ "getPopupContainer": () => document.body
32871
+ }, {
32872
+ default: () => [vue.createVNode("span", {
32873
+ "class": `${props.prefixCls}-cell-content-error`
32874
+ }, [vue.createVNode(CloseCircleFilled, null, null)])],
32875
+ content: () => {
32876
+ var _a2;
32877
+ return vue.createVNode("div", {
32878
+ "class": `${props.prefixCls}-cell-content-error-message`
32879
+ }, [(_a2 = errorList.value) == null ? void 0 : _a2.map((error) => vue.createVNode("div", {
32880
+ "key": error.message
32881
+ }, [error.message]))]);
32882
+ }
32883
+ }) : vue.createVNode("div", {
32884
+ "class": `${props.prefixCls}-cell-content-error-inline`
32885
+ }, [errorMessage]))])]);
32886
+ };
32887
+ }
32888
+ });
32889
+
32890
+ var _sfc_main$n = vue.defineComponent({
32891
+ inheritAttrs: false,
32892
+ props: {
32893
+ prefixCls: String,
32894
+ rowIndex: { type: Number, required: true },
32895
+ flattenRowIndex: { type: Number, required: true },
32896
+ rowKey: { type: [Number, String] },
32897
+ column: { type: Object, default: () => ({}) },
32898
+ item: { type: Object, default: () => ({}) },
32899
+ wrapText: { type: Boolean, default: false },
32900
+ type: { type: String },
32901
+ height: Number,
32902
+ hasAppendNode: Boolean,
32903
+ resizeObserver: { type: Object },
32904
+ editRow: { type: Object },
32905
+ calMaxHeight: Function,
32906
+ editCellKeys: Array,
32907
+ editableKeys: Array,
32908
+ isRowEdit: Boolean,
32909
+ tooltipOpen: Boolean,
32910
+ getPopupContainer: Function,
32911
+ onOpenEditor: Function,
32912
+ onCloseEditor: Function,
32913
+ onCellLeave: Function,
32914
+ onMouseenter: Function
32915
+ },
32916
+ emits: ["mouseenter", "cellLeave"],
32917
+ components: { BodyTextCell: BodyCell$1, BodyEditCell },
32918
+ setup(props) {
32919
+ const tableContext = useInjectTable();
32920
+ const isKeepEditMode = vue.computed(() => {
32921
+ var _a;
32922
+ return (_a = props.column.edit) == null ? void 0 : _a.keepEditMode;
32923
+ });
32924
+ const cellValue = vue.computed(
32925
+ () => props.column.dataIndex ? get(props.item, props.column.dataIndex) : void 0
32926
+ );
32927
+ const key = vue.computed(() => getCellKey(props.rowKey, props.column.columnKey));
32928
+ const cellParams = vue.computed(() => ({
32929
+ column: props.column,
32930
+ record: props.isRowEdit ? props.editRow : props.item,
32931
+ recordIndexs: tableContext.getIndexsByKey(props.rowKey),
32932
+ value: cellValue.value
32933
+ }));
32934
+ const editable = vue.computed(() => {
32935
+ var _a, _b, _c, _d;
32936
+ if (!((_a = props.column.edit) == null ? void 0 : _a.component)) {
32937
+ return false;
32938
+ }
32939
+ if (props.isRowEdit && !((_b = props.editableKeys) == null ? void 0 : _b.includes(props.rowKey))) {
32940
+ return false;
32941
+ }
32942
+ if (!((_c = props.column.edit) == null ? void 0 : _c.editable)) {
32943
+ return true;
32944
+ }
32945
+ const cellEditable = (_d = props.column.edit) == null ? void 0 : _d.editable(cellParams.value);
32946
+ return cellEditable;
32947
+ });
32948
+ const isEditing = vue.computed(() => {
32949
+ var _a, _b;
32950
+ if (props.isRowEdit) {
32951
+ return editable.value && ((_a = props.editableKeys) == null ? void 0 : _a.includes(props.rowKey));
32952
+ }
32953
+ if (!editable.value) {
32954
+ return false;
32955
+ }
32956
+ if (isKeepEditMode.value) {
32957
+ return true;
32958
+ }
32959
+ if ((_b = props.editCellKeys) == null ? void 0 : _b.includes(key.value)) {
32960
+ return true;
32961
+ }
32962
+ return false;
32963
+ });
32964
+ const editableTrigger = vue.computed(() => {
32965
+ var _a;
32966
+ let { editableTrigger: editableTrigger2 = ["click"] } = (_a = props.column.edit) != null ? _a : {};
32967
+ editableTrigger2 = Array.isArray(editableTrigger2) ? editableTrigger2 : [editableTrigger2];
32968
+ return editableTrigger2;
32969
+ });
32970
+ const onCellEvent = (e, trigger) => {
32971
+ var _a;
32972
+ if (editable.value && ((_a = editableTrigger.value) == null ? void 0 : _a.includes(trigger)) && !props.isRowEdit) {
32973
+ openEditor();
32974
+ closeEditor();
32975
+ e.stopPropagation();
32976
+ e.preventDefault();
32977
+ }
32978
+ };
32979
+ const openEditor = () => {
32980
+ var _a, _b, _c, _d;
32981
+ const oldValue = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : cellValue.value;
32982
+ (_d = props.onOpenEditor) == null ? void 0 : _d.call(props, key.value, { [key.value]: oldValue });
32983
+ };
32984
+ const closeEditor = () => {
32985
+ var _a;
32986
+ (_a = props.onCloseEditor) == null ? void 0 : _a.call(props, key.value);
32987
+ };
32988
+ vue.watch(key, () => {
32989
+ var _a;
32990
+ if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
32991
+ openEditor();
32992
+ }
32993
+ });
32994
+ vue.onMounted(() => {
32995
+ var _a;
32996
+ if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
32997
+ openEditor();
32998
+ }
32999
+ });
33000
+ return {
33001
+ props,
33002
+ key,
33003
+ isEditing,
33004
+ editable,
33005
+ onCellEvent
33006
+ };
33007
+ }
33008
+ });
33009
+
33010
+ function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
33011
+ const _component_BodyEditCell = vue.resolveComponent("BodyEditCell");
33012
+ const _component_BodyTextCell = vue.resolveComponent("BodyTextCell");
33013
+ return _ctx.isEditing ? (vue.openBlock(), vue.createBlock(_component_BodyEditCell, {
33014
+ key: _ctx.key,
33015
+ prefixCls: _ctx.prefixCls,
33016
+ rowIndex: _ctx.rowIndex,
33017
+ flattenRowIndex: _ctx.flattenRowIndex,
33018
+ rowKey: _ctx.rowKey,
33019
+ column: _ctx.column,
33020
+ item: _ctx.item,
33021
+ "edit-row": _ctx.editRow,
33022
+ "editable-keys": _ctx.editableKeys,
33023
+ "is-row-edit": _ctx.isRowEdit
33024
+ }, null, 8, ["prefixCls", "rowIndex", "flattenRowIndex", "rowKey", "column", "item", "edit-row", "editable-keys", "is-row-edit"])) : (vue.openBlock(), vue.createBlock(_component_BodyTextCell, vue.mergeProps({ key: 1 }, _ctx.props, {
33025
+ style: { cursor: _ctx.editable ? "poiner" : "" },
33026
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.onCellEvent($event, "click")),
33027
+ onDblClick: _cache[1] || (_cache[1] = ($event) => _ctx.onCellEvent($event, "dblClick")),
33028
+ onContextmenu: _cache[2] || (_cache[2] = ($event) => _ctx.onCellEvent($event, "contextmenu"))
33029
+ }), {
33030
+ appendNode: vue.withCtx(() => [
33031
+ vue.renderSlot(_ctx.$slots, "appendNode")
33032
+ ]),
33033
+ _: 3
33034
+ /* FORWARDED */
33035
+ }, 16, ["style"]));
33036
+ }
33037
+ var BodyCell = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$j]]);
33412
33038
 
33413
33039
  var _sfc_main$m = vue.defineComponent({
33414
33040
  name: "TableExpandedRow",
@@ -33488,7 +33114,7 @@
33488
33114
  }
33489
33115
  });
33490
33116
 
33491
- const _hoisted_1$7 = ["data-cell-auto"];
33117
+ const _hoisted_1$8 = ["data-cell-auto"];
33492
33118
  function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
33493
33119
  const _component_RenderVNode = vue.resolveComponent("RenderVNode");
33494
33120
  const _directive_cell_resize = vue.resolveDirective("cell-resize");
@@ -33520,7 +33146,7 @@
33520
33146
  2
33521
33147
  /* CLASS */
33522
33148
  )
33523
- ], 10, _hoisted_1$7)), [
33149
+ ], 10, _hoisted_1$8)), [
33524
33150
  [_directive_cell_resize, _ctx.cellResizeBind]
33525
33151
  ])
33526
33152
  ],
@@ -33573,7 +33199,7 @@
33573
33199
  }
33574
33200
  });
33575
33201
 
33576
- const _hoisted_1$6 = ["aria-label"];
33202
+ const _hoisted_1$7 = ["aria-label"];
33577
33203
  function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
33578
33204
  return _ctx.expandIcon ? (vue.openBlock(), vue.createElementBlock("span", {
33579
33205
  key: 0,
@@ -33587,7 +33213,7 @@
33587
33213
  class: vue.normalizeClass(_ctx.className),
33588
33214
  "aria-label": _ctx.label,
33589
33215
  onClick: _cache[1] || (_cache[1] = vue.withModifiers((...args) => _ctx.handleClick && _ctx.handleClick(...args), ["stop"]))
33590
- }, null, 10, _hoisted_1$6));
33216
+ }, null, 10, _hoisted_1$7));
33591
33217
  }
33592
33218
  var ExpandIcon = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$h]]);
33593
33219
 
@@ -33786,8 +33412,8 @@
33786
33412
  }
33787
33413
  });
33788
33414
 
33789
- const _hoisted_1$5 = ["data-level"];
33790
- const _hoisted_2$1 = {
33415
+ const _hoisted_1$6 = ["data-level"];
33416
+ const _hoisted_2$2 = {
33791
33417
  key: 2,
33792
33418
  draggable: true
33793
33419
  };
@@ -33845,12 +33471,12 @@
33845
33471
  record: _ctx.record,
33846
33472
  disabled: !_ctx.supportExpand,
33847
33473
  onExpand: _ctx.onInternalTriggerExpand
33848
- }, null, 8, ["prefix-cls", "expandIconType", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, [
33474
+ }, null, 8, ["prefix-cls", "expandIconType", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [
33849
33475
  vue.renderSlot(_ctx.$slots, "draggable-handle", {}, () => [
33850
33476
  vue.createVNode(_component_MenuOutlined)
33851
33477
  ])
33852
33478
  ])) : vue.createCommentVNode("v-if", true)
33853
- ], 16, _hoisted_1$5);
33479
+ ], 16, _hoisted_1$6);
33854
33480
  }
33855
33481
  var BodyExtraCell = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$g]]);
33856
33482
 
@@ -33862,7 +33488,8 @@
33862
33488
  BodyCell,
33863
33489
  ExpandedRow,
33864
33490
  BodyExtraCell,
33865
- RenderSlot
33491
+ RenderSlot,
33492
+ BodyTextCell: BodyCell$1
33866
33493
  },
33867
33494
  inheritAttrs: false,
33868
33495
  props: {
@@ -33884,11 +33511,17 @@
33884
33511
  const tableContext = useInjectTable();
33885
33512
  const rowInstance = vue.getCurrentInstance();
33886
33513
  const { table } = useProConfigInject();
33887
- const { editCellKeys, closeEditor, openEditor } = useEditInject();
33514
+ const { editCellKeys, isRowEdit, mergedEditableKeys, editRowsMap, closeEditor, openEditor } = useEditInject();
33515
+ const editRow = vue.computed(() => editRowsMap.value[props.rowKey]);
33888
33516
  let isUnmount = false;
33889
33517
  const bodyRow = vue.ref();
33890
- const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection();
33891
- const { onCellKeydown } = useCellKeyboard();
33518
+ const isCurrentEditRow = vue.computed(() => {
33519
+ var _a;
33520
+ if (isRowEdit.value) {
33521
+ return (_a = mergedEditableKeys.value) == null ? void 0 : _a.includes(props.rowKey);
33522
+ }
33523
+ return true;
33524
+ });
33892
33525
  const calMaxHeight = () => {
33893
33526
  if (isUnmount) return;
33894
33527
  let rowHeight = 0;
@@ -34090,6 +33723,7 @@
34090
33723
  rowStyle,
34091
33724
  cellClass,
34092
33725
  tableContext,
33726
+ isCurrentEditRow,
34093
33727
  mergedRowHeights,
34094
33728
  handleCellBlur,
34095
33729
  handleCellHover,
@@ -34117,29 +33751,29 @@
34117
33751
  resizeObserver,
34118
33752
  calMaxHeight,
34119
33753
  bodyRow,
33754
+ editCellKeys,
33755
+ isRowEdit,
33756
+ editRow,
33757
+ mergedEditableKeys,
33758
+ openEditor,
33759
+ closeEditor,
34120
33760
  hoverRowKey,
34121
33761
  hoverColumnKey,
34122
33762
  xVirtual: eagerComputed(() => tableContext.xVirtual.value),
34123
33763
  getPopupContainer: () => popupContainer.value,
34124
- editCellKeys,
34125
- closeEditor,
34126
- openEditor,
34127
- mergedTooltipOpen,
34128
- onCellMousedown,
34129
- onCellKeydown,
34130
- onCellMousemove,
34131
- onCellClick
33764
+ mergedTooltipOpen
34132
33765
  };
34133
33766
  }
34134
33767
  });
34135
33768
 
34136
- const _hoisted_1$4 = ["data-row-key"];
34137
- const _hoisted_2 = ["data-row-key"];
33769
+ const _hoisted_1$5 = ["data-row-key"];
33770
+ const _hoisted_2$1 = ["data-row-key"];
34138
33771
  function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
34139
33772
  const _component_ExpandedRow = vue.resolveComponent("ExpandedRow");
34140
33773
  const _component_BodyExtraCell = vue.resolveComponent("BodyExtraCell");
34141
33774
  const _component_ExpandIcon = vue.resolveComponent("ExpandIcon");
34142
33775
  const _component_BodyCell = vue.resolveComponent("BodyCell");
33776
+ const _component_BodyTextCell = vue.resolveComponent("BodyTextCell");
34143
33777
  const _component_RenderSlot = vue.resolveComponent("RenderSlot");
34144
33778
  return _ctx.isExpandRow ? (vue.openBlock(), vue.createElementBlock(
34145
33779
  vue.Fragment,
@@ -34161,7 +33795,7 @@
34161
33795
  "resize-observer": _ctx.resizeObserver,
34162
33796
  "cal-max-height": _ctx.calMaxHeight
34163
33797
  }, null, 8, ["prefix-cls", "item", "row-key", "row-index", "resize-observer", "cal-max-height"])
34164
- ], 14, _hoisted_1$4)) : vue.createCommentVNode("v-if", true)
33798
+ ], 14, _hoisted_1$5)) : vue.createCommentVNode("v-if", true)
34165
33799
  ],
34166
33800
  64
34167
33801
  /* STABLE_FRAGMENT */
@@ -34179,7 +33813,7 @@
34179
33813
  vue.Fragment,
34180
33814
  null,
34181
33815
  vue.renderList(_ctx.mergedColumns, (column, index) => {
34182
- var _a;
33816
+ var _a, _b;
34183
33817
  return vue.openBlock(), vue.createElementBlock(
34184
33818
  vue.Fragment,
34185
33819
  {
@@ -34199,7 +33833,7 @@
34199
33833
  record: _ctx.record,
34200
33834
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
34201
33835
  onMouseleave: _ctx.handleCellBlur
34202
- }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column ? (vue.openBlock(), vue.createBlock(_component_BodyCell, {
33836
+ }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column && ((_b = column.edit) == null ? void 0 : _b.component) && _ctx.isCurrentEditRow ? (vue.openBlock(), vue.createBlock(_component_BodyCell, {
34203
33837
  key: 1,
34204
33838
  "prefix-cls": _ctx.prefixCls,
34205
33839
  item: _ctx.record,
@@ -34216,14 +33850,68 @@
34216
33850
  "get-popup-container": _ctx.getPopupContainer,
34217
33851
  "tooltip-open": _ctx.mergedTooltipOpen && _ctx.hoverColumnKey === column.columnKey,
34218
33852
  "edit-cell-keys": _ctx.editCellKeys,
33853
+ "editable-keys": _ctx.mergedEditableKeys,
33854
+ "is-row-edit": _ctx.isRowEdit,
33855
+ "edit-row": _ctx.editRow,
33856
+ onCloseEditor: _ctx.closeEditor,
33857
+ onOpenEditor: _ctx.openEditor,
33858
+ onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
33859
+ onCellLeave: _ctx.handleCellBlur
33860
+ }, {
33861
+ appendNode: vue.withCtx(() => [
33862
+ vue.createElementVNode(
33863
+ "div",
33864
+ {
33865
+ class: vue.normalizeClass(`${_ctx.prefixCls}-append-node`)
33866
+ },
33867
+ [
33868
+ vue.createElementVNode(
33869
+ "span",
33870
+ {
33871
+ style: vue.normalizeStyle(`padding-left: ${(_ctx.indent || 0) * _ctx.indentSize}px`),
33872
+ class: vue.normalizeClass(`${_ctx.prefixCls}-row-indent indent-level-${_ctx.indent}`)
33873
+ },
33874
+ null,
33875
+ 6
33876
+ /* CLASS, STYLE */
33877
+ ),
33878
+ vue.createVNode(_component_ExpandIcon, {
33879
+ expanded: _ctx.expanded,
33880
+ expandIconType: _ctx.expandIconType,
33881
+ "prefix-cls": _ctx.prefixCls,
33882
+ expandable: _ctx.hasNestChildren,
33883
+ record: _ctx.record,
33884
+ disabled: !_ctx.mergedExpandable,
33885
+ onExpand: _ctx.onInternalTriggerExpand
33886
+ }, null, 8, ["expanded", "expandIconType", "prefix-cls", "expandable", "record", "disabled", "onExpand"])
33887
+ ],
33888
+ 2
33889
+ /* CLASS */
33890
+ )
33891
+ ]),
33892
+ _: 1
33893
+ /* STABLE */
33894
+ }, 8, ["prefix-cls", "item", "row-key", "type", "row-index", "flatten-row-index", "wrap-text", "column", "resize-observer", "cal-max-height", "has-append-node", "height", "get-popup-container", "tooltip-open", "edit-cell-keys", "editable-keys", "is-row-edit", "edit-row", "onCloseEditor", "onOpenEditor", "onMouseenter", "onCellLeave"])) : column ? (vue.openBlock(), vue.createBlock(_component_BodyTextCell, {
33895
+ key: 2,
33896
+ "prefix-cls": _ctx.prefixCls,
33897
+ item: _ctx.record,
33898
+ "row-key": _ctx.rowKey,
33899
+ type: _ctx.type,
33900
+ "row-index": _ctx.rowIndex,
33901
+ "flatten-row-index": _ctx.flattenRowIndex,
33902
+ "wrap-text": _ctx.wrapText,
33903
+ column,
33904
+ "resize-observer": _ctx.resizeObserver,
33905
+ "cal-max-height": _ctx.calMaxHeight,
33906
+ "has-append-node": column.columnIndex === _ctx.expandIconColumnIndex && _ctx.nestExpandable,
33907
+ height: _ctx.cellHeight,
33908
+ "get-popup-container": _ctx.getPopupContainer,
33909
+ "tooltip-open": _ctx.mergedTooltipOpen && _ctx.hoverColumnKey === column.columnKey,
33910
+ "edit-cell-keys": _ctx.editCellKeys,
34219
33911
  onCloseEditor: _ctx.closeEditor,
34220
33912
  onOpenEditor: _ctx.openEditor,
34221
33913
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
34222
- onCellLeave: _ctx.handleCellBlur,
34223
- onMousedown: _ctx.onCellMousedown,
34224
- onMousemove: _ctx.onCellMousemove,
34225
- onKeydown: _ctx.onCellKeydown,
34226
- onClick: _ctx.onCellClick
33914
+ onCellLeave: _ctx.handleCellBlur
34227
33915
  }, {
34228
33916
  appendNode: vue.withCtx(() => [
34229
33917
  vue.createElementVNode(
@@ -34258,7 +33946,7 @@
34258
33946
  ]),
34259
33947
  _: 1
34260
33948
  /* STABLE */
34261
- }, 8, ["prefix-cls", "item", "row-key", "type", "row-index", "flatten-row-index", "wrap-text", "column", "resize-observer", "cal-max-height", "has-append-node", "height", "get-popup-container", "tooltip-open", "edit-cell-keys", "onCloseEditor", "onOpenEditor", "onMouseenter", "onCellLeave", "onMousedown", "onMousemove", "onKeydown", "onClick"])) : vue.createCommentVNode("v-if", true)
33949
+ }, 8, ["prefix-cls", "item", "row-key", "type", "row-index", "flatten-row-index", "wrap-text", "column", "resize-observer", "cal-max-height", "has-append-node", "height", "get-popup-container", "tooltip-open", "edit-cell-keys", "onCloseEditor", "onOpenEditor", "onMouseenter", "onCellLeave"])) : vue.createCommentVNode("v-if", true)
34262
33950
  ],
34263
33951
  64
34264
33952
  /* STABLE_FRAGMENT */
@@ -34281,7 +33969,7 @@
34281
33969
  2
34282
33970
  /* CLASS */
34283
33971
  )) : vue.createCommentVNode("v-if", true)
34284
- ], 16, _hoisted_2));
33972
+ ], 16, _hoisted_2$1));
34285
33973
  }
34286
33974
  var Row = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$f]]);
34287
33975
 
@@ -34924,7 +34612,7 @@
34924
34612
  }
34925
34613
  });
34926
34614
 
34927
- const _hoisted_1$3 = { style: {
34615
+ const _hoisted_1$4 = { style: {
34928
34616
  width: "100%",
34929
34617
  overflow: "hidden",
34930
34618
  position: "relative",
@@ -35036,7 +34724,7 @@
35036
34724
  onKeydown: _cache[9] || (_cache[9] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args))
35037
34725
  },
35038
34726
  [
35039
- vue.createElementVNode("div", _hoisted_1$3, [
34727
+ vue.createElementVNode("div", _hoisted_1$4, [
35040
34728
  vue.createElementVNode(
35041
34729
  "div",
35042
34730
  {
@@ -35508,7 +35196,8 @@
35508
35196
  "expandedRowsChange",
35509
35197
  "resizeColumn",
35510
35198
  "update:dataSource",
35511
- "cellKeydown"
35199
+ "cellKeydown",
35200
+ "data-change"
35512
35201
  ],
35513
35202
  slots: {},
35514
35203
  setup(props, { expose, emit, slots }) {
@@ -35520,7 +35209,6 @@
35520
35209
  });
35521
35210
  const popupContainer = vue.shallowRef(null);
35522
35211
  const customUiCls = usePrefixCls("custom-ui");
35523
- const { editCellKeys, openEditor, closeEditor } = useEditProvider();
35524
35212
  useProvidePopup();
35525
35213
  const getPopupContainer = vue.computed(() => props.getPopupContainer);
35526
35214
  const { status, watermarkMsg } = useLicense();
@@ -35627,6 +35315,9 @@
35627
35315
  },
35628
35316
  { immediate: true, deep: !!props.deepWatchColumns }
35629
35317
  );
35318
+ vue.watch(rawData, (newData) => {
35319
+ emit("data-change", newData);
35320
+ });
35630
35321
  const childrenColumnName = vue.computed(
35631
35322
  () => {
35632
35323
  var _a, _b, _c;
@@ -35662,6 +35353,20 @@
35662
35353
  return { spinning: false };
35663
35354
  }
35664
35355
  });
35356
+ const {
35357
+ validateRowData,
35358
+ addEditRecord,
35359
+ cancelEditable,
35360
+ startEditable,
35361
+ saveEditable,
35362
+ isEditable,
35363
+ validateTableData
35364
+ } = useEditProvider(props, {
35365
+ getIndexsByKey,
35366
+ getRecordByKey,
35367
+ rawData,
35368
+ getRowKey
35369
+ });
35665
35370
  vue.onActivated(() => {
35666
35371
  scrollTo({ left: 0, top: 0 });
35667
35372
  });
@@ -35971,7 +35676,11 @@
35971
35676
  leftWidth,
35972
35677
  centerWidth,
35973
35678
  getRowHeight: cal.getRowHeight,
35974
- customCell: vue.toRef(props, "customCell")
35679
+ customCell: vue.toRef(props, "customCell"),
35680
+ cancelEditable,
35681
+ startEditable,
35682
+ saveEditable,
35683
+ isEditable
35975
35684
  });
35976
35685
  vue.watch(
35977
35686
  [realHeaderHeight, scrollLeft],
@@ -35985,6 +35694,10 @@
35985
35694
  ...cal,
35986
35695
  ...columns,
35987
35696
  ...cellProps,
35697
+ cancelEditable,
35698
+ startEditable,
35699
+ saveEditable,
35700
+ isEditable,
35988
35701
  rootRef,
35989
35702
  rawData,
35990
35703
  getRowFlattenIndexByKey,
@@ -36202,99 +35915,22 @@
36202
35915
  });
36203
35916
  const tabGuardTopRef = vue.ref();
36204
35917
  const tabGuardBottomRef = vue.ref();
36205
- const {
36206
- navigationService,
36207
- getSelectedRange,
36208
- clearAllSelectedRange,
36209
- copySelectedRange,
36210
- appendCellToSelectedRange,
36211
- onBodyKeydown
36212
- } = useProvideRangeStore({
36213
- allColumns: columns.allColumns,
36214
- flattenData,
36215
- rangeSelection: vue.computed(() => props.rangeSelection),
36216
- getRowByFlattenIndex,
36217
- rootRef,
36218
- prefixCls: vue.computed(() => props.prefixCls),
36219
- allCellProps: cellProps.allCellProps,
36220
- tabGuardTopRef,
36221
- tabGuardBottomRef,
36222
- ensureCellColumnVisible: (cell) => {
36223
- if (!cell.column || cell.column.fixed) return;
36224
- const sl = scrollLeft.value;
36225
- const pos2 = columns.getColumnPositionByKey(cell.column.columnKey);
36226
- if (pos2) {
36227
- const { width, left } = pos2;
36228
- const lw = leftWidth.value;
36229
- const rw = rightWidth.value;
36230
- left - lw < sl ? scrollLeft.value = left - lw : left + width > sl + bodyWidth.value - rw && (scrollLeft.value = left + width - bodyWidth.value + rw);
36231
- }
36232
- },
36233
- ensureCellRowVisible: (cell) => {
36234
- var _a;
36235
- const { rowIndex } = cell;
36236
- const st = scrollTop.value;
36237
- const row = getRowByFlattenIndex(rowIndex);
36238
- const pos2 = cal.getRowPositionByKey(row.rowKey);
36239
- const cprops = (((_a = cellProps.allCellProps.value[row.rowKey]) == null ? void 0 : _a[cell.column.columnKey]) || {}).props || {};
36240
- const height = cal.getRowHeight(rowIndex, cprops.rowSpan);
36241
- if (pos2 !== void 0) {
36242
- updateAnimate();
36243
- if (pos2 < st) {
36244
- scrollTop.value = pos2;
36245
- } else {
36246
- if (pos2 + height > st + bodyHeight.value) {
36247
- scrollTop.value = pos2 + height - bodyHeight.value;
36248
- }
36249
- }
36250
- }
36251
- },
36252
- latestRangeStartCell,
36253
- bodyRef: vue.computed(() => {
36254
- var _a;
36255
- return (_a = bodyRef.value) == null ? void 0 : _a.bodyRef;
36256
- }),
36257
- scrollLeft,
36258
- scrollTop,
36259
- scrollTo,
36260
- showVerticalScrollbar,
36261
- showHorizontalScrollbar,
36262
- getIndexsByKey,
36263
- formatRangeCellText: (parmas) => {
36264
- if (props.formatRangeCellText) {
36265
- return props.formatRangeCellText(parmas);
36266
- } else if (parmas.value) {
36267
- return parmas.value;
36268
- }
36269
- return "";
36270
- },
36271
- editCellKeys,
36272
- copyDelimiter: vue.computed(() => props.copyDelimiter)
36273
- });
36274
35918
  expose({
36275
35919
  scrollTo,
36276
35920
  scrollLeft,
36277
35921
  scrollTop,
36278
35922
  rootRef,
36279
35923
  paginationRef,
35924
+ validateRowData,
35925
+ addEditRecord,
35926
+ cancelEditable,
35927
+ startEditable,
35928
+ saveEditable,
35929
+ validateTableData,
36280
35930
  bodyRef: vue.computed(() => {
36281
35931
  var _a;
36282
35932
  return (_a = bodyRef.value) == null ? void 0 : _a.bodyRef;
36283
- }),
36284
- getSelectedRange,
36285
- clearAllSelectedRange,
36286
- copySelectedRange,
36287
- appendCellToSelectedRange,
36288
- openEditor: (cellInfos) => {
36289
- openEditor(cellInfos.map((info) => `${info.rowKey} ${info.columnKey}`));
36290
- },
36291
- closeEditor: (cellInfos) => {
36292
- if (cellInfos) {
36293
- closeEditor(cellInfos.map((info) => `${info.rowKey} ${info.columnKey}`));
36294
- } else {
36295
- closeEditor();
36296
- }
36297
- }
35933
+ })
36298
35934
  });
36299
35935
  return {
36300
35936
  bodyRef,
@@ -36306,7 +35942,6 @@
36306
35942
  watermarkMsg,
36307
35943
  rootStyle,
36308
35944
  rootClass,
36309
- onBodyKeydown,
36310
35945
  watermarkStyle: vue.computed(() => ({
36311
35946
  minWidth: "100px!important",
36312
35947
  minHeight: "40px!important",
@@ -36351,12 +35986,6 @@
36351
35986
  bottomPaginationHeight.value = e.detail.height;
36352
35987
  },
36353
35988
  popupContainer,
36354
- handleGuardTopKeydown: (e) => {
36355
- e.keyCode !== KeyCode.TAB || e.shiftKey || (navigationService.getFirstCellToFocus(e.shiftKey), e.preventDefault());
36356
- },
36357
- handleGuardBottomKeydown: (e) => {
36358
- e.keyCode === KeyCode.TAB && e.shiftKey && (navigationService.getLastCellToFocus(e.shiftKey), e.preventDefault());
36359
- },
36360
35989
  tabGuardTopRef,
36361
35990
  tabGuardBottomRef,
36362
35991
  onShowSizeChange,
@@ -36367,6 +35996,18 @@
36367
35996
  }
36368
35997
  });
36369
35998
 
35999
+ const _hoisted_1$3 = {
36000
+ ref: "tabGuardTopRef",
36001
+ role: "presentation",
36002
+ tabindex: "0",
36003
+ style: { position: "absolute", width: "0", height: "0" }
36004
+ };
36005
+ const _hoisted_2 = {
36006
+ ref: "tabGuardBottomRef",
36007
+ role: "presentation",
36008
+ tabindex: "0",
36009
+ style: { position: "absolute", width: "0", height: "0" }
36010
+ };
36370
36011
  function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
36371
36012
  const _component_Pagination = vue.resolveComponent("Pagination");
36372
36013
  const _component_AutoHeightHeader = vue.resolveComponent("AutoHeightHeader");
@@ -36396,16 +36037,10 @@
36396
36037
  }), null, 16, ["class", "onChange", "onShowSizeChange"])) : vue.createCommentVNode("v-if", true),
36397
36038
  vue.createElementVNode(
36398
36039
  "div",
36399
- {
36400
- ref: "tabGuardTopRef",
36401
- role: "presentation",
36402
- tabindex: "0",
36403
- style: { position: "absolute", width: "0", height: "0" },
36404
- onKeydown: _cache[0] || (_cache[0] = (...args) => _ctx.handleGuardTopKeydown && _ctx.handleGuardTopKeydown(...args))
36405
- },
36040
+ _hoisted_1$3,
36406
36041
  null,
36407
- 544
36408
- /* NEED_HYDRATION, NEED_PATCH */
36042
+ 512
36043
+ /* NEED_PATCH */
36409
36044
  ),
36410
36045
  vue.createElementVNode(
36411
36046
  "div",
@@ -36438,20 +36073,19 @@
36438
36073
  vue.createVNode(_component_ProBody, {
36439
36074
  ref: "bodyRef",
36440
36075
  bodyScrollWidth: _ctx.bodyScrollWidth,
36441
- "onUpdate:bodyScrollWidth": _cache[1] || (_cache[1] = ($event) => _ctx.bodyScrollWidth = $event),
36076
+ "onUpdate:bodyScrollWidth": _cache[0] || (_cache[0] = ($event) => _ctx.bodyScrollWidth = $event),
36442
36077
  bodyWidth: _ctx.bodyWidth,
36443
- "onUpdate:bodyWidth": _cache[2] || (_cache[2] = ($event) => _ctx.bodyWidth = $event),
36078
+ "onUpdate:bodyWidth": _cache[1] || (_cache[1] = ($event) => _ctx.bodyWidth = $event),
36444
36079
  bodyHeight: _ctx.bodyHeight,
36445
- "onUpdate:bodyHeight": _cache[3] || (_cache[3] = ($event) => _ctx.bodyHeight = $event),
36080
+ "onUpdate:bodyHeight": _cache[2] || (_cache[2] = ($event) => _ctx.bodyHeight = $event),
36446
36081
  "prefix-cls": _ctx.prefixCls,
36447
36082
  "wrap-text": _ctx.wrapText,
36448
36083
  "scroll-x": _ctx.mergedScrollX,
36449
36084
  height: _ctx.mergedScrollY,
36450
36085
  "summary-fixed": _ctx.mergedSummaryFixed,
36451
36086
  summary: _ctx.$slots.summary,
36452
- "empty-text": _ctx.$slots.emptyText,
36453
- onKeydown: _ctx.onBodyKeydown
36454
- }, null, 8, ["bodyScrollWidth", "bodyWidth", "bodyHeight", "prefix-cls", "wrap-text", "scroll-x", "height", "summary-fixed", "summary", "empty-text", "onKeydown"])
36087
+ "empty-text": _ctx.$slots.emptyText
36088
+ }, null, 8, ["bodyScrollWidth", "bodyWidth", "bodyHeight", "prefix-cls", "wrap-text", "scroll-x", "height", "summary-fixed", "summary", "empty-text"])
36455
36089
  ],
36456
36090
  6
36457
36091
  /* CLASS, STYLE */
@@ -36459,16 +36093,10 @@
36459
36093
  vue.createVNode(_component_HorizontalScroll),
36460
36094
  vue.createElementVNode(
36461
36095
  "div",
36462
- {
36463
- ref: "tabGuardBottomRef",
36464
- role: "presentation",
36465
- tabindex: "0",
36466
- style: { position: "absolute", width: "0", height: "0" },
36467
- onKeydown: _cache[4] || (_cache[4] = (...args) => _ctx.handleGuardBottomKeydown && _ctx.handleGuardBottomKeydown(...args))
36468
- },
36096
+ _hoisted_2,
36469
36097
  null,
36470
- 544
36471
- /* NEED_HYDRATION, NEED_PATCH */
36098
+ 512
36099
+ /* NEED_PATCH */
36472
36100
  ),
36473
36101
  _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock(
36474
36102
  "div",
@@ -36493,7 +36121,7 @@
36493
36121
  ref: "paginationRef",
36494
36122
  style: vue.normalizeStyle(_ctx.bottomPaginationStyle),
36495
36123
  class: vue.normalizeClass(`${_ctx.prefixCls}-pagination-wrap ${_ctx.prefixCls}-pagination-wrap-${_ctx.size}`),
36496
- onResizeheight: _cache[5] || (_cache[5] = (...args) => _ctx.handlePaginationResize && _ctx.handlePaginationResize(...args))
36124
+ onResizeheight: _cache[3] || (_cache[3] = (...args) => _ctx.handlePaginationResize && _ctx.handlePaginationResize(...args))
36497
36125
  },
36498
36126
  [
36499
36127
  vue.createVNode(_component_Pagination, vue.mergeProps({ class: _ctx.paginationClass }, _ctx.paginationProps, {
@@ -38278,6 +37906,30 @@
38278
37906
  var _a2;
38279
37907
  (_a2 = tableRef.value) == null ? void 0 : _a2.scrollTo(pos, behavior);
38280
37908
  },
37909
+ validateRowData: (recordKey) => {
37910
+ var _a2;
37911
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.validateRowData(recordKey);
37912
+ },
37913
+ validateTableData: () => {
37914
+ var _a2;
37915
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.validateTableData();
37916
+ },
37917
+ addEditRecord: (recordValue, options) => {
37918
+ var _a2;
37919
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.addEditRecord(recordValue, options);
37920
+ },
37921
+ startEditable: (recordKey, recordValue) => {
37922
+ var _a2;
37923
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.startEditable(recordKey, recordValue);
37924
+ },
37925
+ cancelEditable: (recordValue, options) => {
37926
+ var _a2;
37927
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.cancelEditable(recordValue, options);
37928
+ },
37929
+ saveEditable: (recordKey) => {
37930
+ var _a2;
37931
+ return (_a2 = tableRef.value) == null ? void 0 : _a2.saveEditable(recordKey);
37932
+ },
38281
37933
  scrollLeft: vue.computed(() => {
38282
37934
  var _a2;
38283
37935
  return vue.unref((_a2 = tableRef.value) == null ? void 0 : _a2.scrollLeft);
@@ -38298,18 +37950,6 @@
38298
37950
  var _a2;
38299
37951
  return vue.unref((_a2 = tableRef.value) == null ? void 0 : _a2.paginationRef);
38300
37952
  }),
38301
- copySelectedRange: () => {
38302
- var _a2;
38303
- return (_a2 = tableRef.value) == null ? void 0 : _a2.copySelectedRange();
38304
- },
38305
- getSelectedRange: () => {
38306
- var _a2;
38307
- return (_a2 = tableRef.value) == null ? void 0 : _a2.getSelectedRange();
38308
- },
38309
- clearAllSelectedRange: () => {
38310
- var _a2;
38311
- return (_a2 = tableRef.value) == null ? void 0 : _a2.clearAllSelectedRange();
38312
- },
38313
37953
  clearDataSource: () => {
38314
37954
  dataSource.value = [];
38315
37955
  },
@@ -38319,14 +37959,6 @@
38319
37959
  var _a2;
38320
37960
  return (_a2 = tableRef.value) == null ? void 0 : _a2.appendCellToSelectedRange(params);
38321
37961
  },
38322
- openEditor: (cellInfos) => {
38323
- var _a2;
38324
- return (_a2 = tableRef.value) == null ? void 0 : _a2.openEditor(cellInfos);
38325
- },
38326
- closeEditor: (cellInfos) => {
38327
- var _a2;
38328
- return (_a2 = tableRef.value) == null ? void 0 : _a2.closeEditor(cellInfos);
38329
- },
38330
37962
  reload,
38331
37963
  reset,
38332
37964
  calcTableHeight,