@kdcloudjs/kdesign 1.7.23 → 1.7.25

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 (58) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/kdesign-complete.less +31 -18
  3. package/dist/kdesign.css +59 -18
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +522 -213
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +4 -4
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/usePopper.d.ts +1 -0
  11. package/es/_utils/usePopper.js +40 -21
  12. package/es/city-picker/city-picker.js +36 -25
  13. package/es/city-picker/interface.d.ts +1 -0
  14. package/es/city-picker/option.js +2 -2
  15. package/es/city-picker/style/index.css +14 -10
  16. package/es/city-picker/style/index.less +9 -6
  17. package/es/city-picker/style/token.less +4 -5
  18. package/es/input-number/inputNumber.js +20 -5
  19. package/es/input-number/useSelectionRange.d.ts +4 -0
  20. package/es/input-number/useSelectionRange.js +22 -0
  21. package/es/locale/locale.d.ts +4 -4
  22. package/es/locale/zh-CN.d.ts +4 -2
  23. package/es/locale/zh-CN.js +4 -2
  24. package/es/radio/style/index.css +2 -0
  25. package/es/radio/style/index.less +2 -0
  26. package/es/search/search.js +2 -1
  27. package/es/select/select.js +6 -5
  28. package/es/select/style/index.css +6 -3
  29. package/es/select/style/index.less +10 -4
  30. package/es/select/style/token.less +1 -1
  31. package/es/style/core/motion/slide.less +5 -2
  32. package/es/style/index.css +36 -4
  33. package/es/table/api.js +19 -3
  34. package/lib/_utils/usePopper.d.ts +1 -0
  35. package/lib/_utils/usePopper.js +40 -21
  36. package/lib/city-picker/city-picker.js +36 -25
  37. package/lib/city-picker/interface.d.ts +1 -0
  38. package/lib/city-picker/option.js +2 -2
  39. package/lib/city-picker/style/index.css +14 -10
  40. package/lib/city-picker/style/index.less +9 -6
  41. package/lib/city-picker/style/token.less +4 -5
  42. package/lib/input-number/inputNumber.js +19 -4
  43. package/lib/input-number/useSelectionRange.d.ts +4 -0
  44. package/lib/input-number/useSelectionRange.js +29 -0
  45. package/lib/locale/locale.d.ts +4 -4
  46. package/lib/locale/zh-CN.d.ts +4 -2
  47. package/lib/locale/zh-CN.js +4 -2
  48. package/lib/radio/style/index.css +2 -0
  49. package/lib/radio/style/index.less +2 -0
  50. package/lib/search/search.js +2 -1
  51. package/lib/select/select.js +6 -5
  52. package/lib/select/style/index.css +6 -3
  53. package/lib/select/style/index.less +10 -4
  54. package/lib/select/style/token.less +1 -1
  55. package/lib/style/core/motion/slide.less +5 -2
  56. package/lib/style/index.css +36 -4
  57. package/lib/table/api.js +19 -3
  58. package/package.json +2 -2
package/dist/kdesign.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/kdesign v1.7.22
3
+ * @kdcloudjs/kdesign v1.7.24
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -2192,6 +2192,19 @@ var getScrollDist = function getScrollDist(el, container) {
2192
2192
  }
2193
2193
  return elScroll;
2194
2194
  };
2195
+ var getRealDom = function getRealDom(locatorRef, locatorElement) {
2196
+ var _locatorElement$type;
2197
+ if (!locatorRef.current) return locatorRef.current;
2198
+ var REF_NAME_OBJ = {
2199
+ Input: 'input',
2200
+ InputNumber: 'input',
2201
+ Select: 'select',
2202
+ Upload: 'input'
2203
+ };
2204
+ if (locatorRef.current.tagName) return locatorRef.current;
2205
+ var name = REF_NAME_OBJ[locatorElement === null || locatorElement === void 0 ? void 0 : (_locatorElement$type = locatorElement.type) === null || _locatorElement$type === void 0 ? void 0 : _locatorElement$type.displayName];
2206
+ return locatorRef === null || locatorRef === void 0 ? void 0 : locatorRef.current[name];
2207
+ };
2195
2208
  function usePopper(locatorElement, popperElement, props) {
2196
2209
  var _arrowStyle;
2197
2210
  var prefixCls = props.prefixCls,
@@ -2232,7 +2245,8 @@ function usePopper(locatorElement, popperElement, props) {
2232
2245
  _props$getPopupContai = props.getPopupContainer,
2233
2246
  getPopupContainer = _props$getPopupContai === void 0 ? function () {
2234
2247
  return document.body;
2235
- } : _props$getPopupContai;
2248
+ } : _props$getPopupContai,
2249
+ onTransitionEnd = props.onTransitionEnd;
2236
2250
  var arrowWidth = Math.sqrt(2 * Math.pow(arrowSize, 2));
2237
2251
  var componentName = (prefixCls === null || prefixCls === void 0 ? void 0 : prefixCls.split('-')[1]) || '';
2238
2252
  Object(_utils_devwarning__WEBPACK_IMPORTED_MODULE_23__["default"])(Placements.indexOf(placement) === -1, componentName, "cannot found ".concat(componentName, " placement '").concat(placement, "'"));
@@ -2244,10 +2258,11 @@ function usePopper(locatorElement, popperElement, props) {
2244
2258
  var popperEl = Object(react__WEBPACK_IMPORTED_MODULE_18__["useRef"])();
2245
2259
  var locatorRef = locatorElement.ref || locatorEl;
2246
2260
  var popperRef = popperElement.ref || popperEl;
2247
- var container = getPopupContainer(locatorRef.current || document.body);
2261
+ var container = getPopupContainer(getRealDom(locatorRef, locatorElement) || document.body);
2248
2262
  Promise.resolve().then(function () {
2249
- var triggerNode = getTriggerElement(locatorRef.current);
2250
- var container = getPopupContainer(locatorRef.current);
2263
+ var realDom = getRealDom(locatorRef, locatorElement);
2264
+ var triggerNode = getTriggerElement(realDom);
2265
+ var container = getPopupContainer(realDom);
2251
2266
  Object(_utils_devwarning__WEBPACK_IMPORTED_MODULE_23__["default"])(!triggerNode, componentName, "getTriggerElement() must return a HTMLElement, but now it does not return anything");
2252
2267
  Object(_utils_devwarning__WEBPACK_IMPORTED_MODULE_23__["default"])(!container, componentName, "getPopupContainer() must return a HTMLElement, but now it does not return anything");
2253
2268
  });
@@ -2310,30 +2325,31 @@ function usePopper(locatorElement, popperElement, props) {
2310
2325
  nextPlacement = _useState18[0],
2311
2326
  setNextPlacement = _useState18[1];
2312
2327
  var alignPopper = Object(react__WEBPACK_IMPORTED_MODULE_18__["useCallback"])(function () {
2313
- if (locatorRef !== null && locatorRef !== void 0 && locatorRef.current && popperRef !== null && popperRef !== void 0 && popperRef.current) {
2328
+ var realDom = getRealDom(locatorRef, locatorElement);
2329
+ if (realDom && popperRef !== null && popperRef !== void 0 && popperRef.current) {
2314
2330
  var _popperRef$current$ge = popperRef.current.getBoundingClientRect(),
2315
2331
  popperWidth = _popperRef$current$ge.width,
2316
2332
  popperHeight = _popperRef$current$ge.height;
2317
- var _locatorRef$current$g = locatorRef.current.getBoundingClientRect(),
2318
- top = _locatorRef$current$g.top,
2319
- bottom = _locatorRef$current$g.bottom,
2320
- left = _locatorRef$current$g.left,
2321
- right = _locatorRef$current$g.right,
2322
- height = _locatorRef$current$g.height,
2323
- width = _locatorRef$current$g.width;
2333
+ var _realDom$getBoundingC = realDom.getBoundingClientRect(),
2334
+ top = _realDom$getBoundingC.top,
2335
+ bottom = _realDom$getBoundingC.bottom,
2336
+ left = _realDom$getBoundingC.left,
2337
+ right = _realDom$getBoundingC.right,
2338
+ height = _realDom$getBoundingC.height,
2339
+ width = _realDom$getBoundingC.width;
2324
2340
  var _getOffsetPos = getOffsetPos(container),
2325
2341
  containerTop = _getOffsetPos.top,
2326
2342
  containerLeft = _getOffsetPos.left;
2327
- var _getOffsetPos2 = getOffsetPos(locatorRef.current),
2343
+ var _getOffsetPos2 = getOffsetPos(realDom),
2328
2344
  locatorTop = _getOffsetPos2.top,
2329
2345
  locatorLeft = _getOffsetPos2.left;
2330
- var _getTranslatePos = getTranslatePos(locatorRef.current),
2346
+ var _getTranslatePos = getTranslatePos(realDom),
2331
2347
  translateTop = _getTranslatePos.top,
2332
2348
  translateLeft = _getTranslatePos.left;
2333
- var _getBorderWidth = getBorderWidth(locatorRef.current),
2349
+ var _getBorderWidth = getBorderWidth(realDom),
2334
2350
  borderTop = _getBorderWidth.top,
2335
2351
  borderLeft = _getBorderWidth.left;
2336
- var _getScrollDist = getScrollDist(locatorRef.current.parentElement, container),
2352
+ var _getScrollDist = getScrollDist(realDom.parentElement, container),
2337
2353
  scrollTop = _getScrollDist.top,
2338
2354
  scrollLeft = _getScrollDist.left;
2339
2355
  var locatorPos = {
@@ -2515,10 +2531,11 @@ function usePopper(locatorElement, popperElement, props) {
2515
2531
  className: classnames__WEBPACK_IMPORTED_MODULE_22___default()(prefixCls, popperClassName, nextPlacement, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5___default()({
2516
2532
  arrow: arrow,
2517
2533
  hidden: !visible
2518
- }, "".concat(nextPlacement, "-active"), active))
2534
+ }, "".concat(nextPlacement, "-active"), active)),
2535
+ onTransitionEnd: typeof onTransitionEnd === 'function' ? onTransitionEnd : undefined
2519
2536
  };
2520
2537
  var popperNode = popperRef.current;
2521
- var locatorNode = locatorRef.current;
2538
+ var locatorNode = getRealDom(locatorRef, locatorElement);
2522
2539
  Object(_hooks__WEBPACK_IMPORTED_MODULE_24__["useResizeObserver"])(popperNode || document.body, alignPopper);
2523
2540
  Object(_hooks__WEBPACK_IMPORTED_MODULE_24__["useResizeObserver"])(locatorNode || document.body, alignPopper);
2524
2541
  var showPopper = Object(react__WEBPACK_IMPORTED_MODULE_18__["useCallback"])(function (evType) {
@@ -2549,7 +2566,8 @@ function usePopper(locatorElement, popperElement, props) {
2549
2566
  Object(react__WEBPACK_IMPORTED_MODULE_18__["useEffect"])(function () {
2550
2567
  if (exist && visible) {
2551
2568
  var mouseleaveTimer;
2552
- var triggerNode = getTriggerElement(locatorRef.current);
2569
+ var realDom = getRealDom(locatorRef, locatorElement);
2570
+ var triggerNode = getTriggerElement(realDom);
2553
2571
  var handleHidePopper = function handleHidePopper(e) {
2554
2572
  var triggerRect = triggerNode.getBoundingClientRect();
2555
2573
  var popperRect = popperRef.current.getBoundingClientRect();
@@ -2623,8 +2641,9 @@ function usePopper(locatorElement, popperElement, props) {
2623
2641
  };
2624
2642
  }
2625
2643
  }, [alignPopper, exist, onVisibleChange, popperNode, props.visible, scrollHidden, locatorNode, visible, popperRef]);
2626
- react__WEBPACK_IMPORTED_MODULE_18___default.a.useEffect(function () {
2627
- var triggerNode = getTriggerElement(locatorRef.current);
2644
+ Object(react__WEBPACK_IMPORTED_MODULE_18__["useEffect"])(function () {
2645
+ var realDom = getRealDom(locatorRef, locatorElement);
2646
+ var triggerNode = getTriggerElement(realDom);
2628
2647
  if (triggerNode) {
2629
2648
  var mouseenterTimer;
2630
2649
  var clearMouseLeave = function clearMouseLeave() {
@@ -7494,20 +7513,17 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
7494
7513
 
7495
7514
 
7496
7515
 
7497
- var tabsData = [{
7498
- id: 'domestic',
7499
- name: '国内'
7500
- }, {
7501
- id: 'foreign',
7502
- name: '国际/中国港澳台'
7503
- }];
7504
7516
  var InternalSelect = function InternalSelect(props, ref) {
7505
7517
  var _classNames3, _classNames5;
7506
7518
  var _useContext = Object(react__WEBPACK_IMPORTED_MODULE_20__["useContext"])(_config_provider_ConfigContext__WEBPACK_IMPORTED_MODULE_23__["default"]),
7507
7519
  getPrefixCls = _useContext.getPrefixCls,
7508
7520
  prefixCls = _useContext.prefixCls,
7509
- userDefaultProps = _useContext.compDefaultProps;
7521
+ userDefaultProps = _useContext.compDefaultProps,
7522
+ locale = _useContext.locale;
7510
7523
  var selectProps = Object(_utils__WEBPACK_IMPORTED_MODULE_24__["getCompProps"])('CityPicker', userDefaultProps, props);
7524
+ var cityPickerLangMsg = locale.getCompLangMsg({
7525
+ componentName: 'CityPicker'
7526
+ });
7511
7527
  var type = selectProps.type,
7512
7528
  size = selectProps.size,
7513
7529
  value = selectProps.value,
@@ -7543,7 +7559,8 @@ var InternalSelect = function InternalSelect(props, ref) {
7543
7559
  domesticList = _selectProps$domestic === void 0 ? [] : _selectProps$domestic,
7544
7560
  _selectProps$foreignL = selectProps.foreignList,
7545
7561
  foreignList = _selectProps$foreignL === void 0 ? [] : _selectProps$foreignL,
7546
- itemRender = selectProps.itemRender;
7562
+ itemRender = selectProps.itemRender,
7563
+ onTabPaneChange = selectProps.onTabPaneChange;
7547
7564
  var _useMergedState = Object(_utils_hooks__WEBPACK_IMPORTED_MODULE_21__["useMergedState"])(undefined, {
7548
7565
  value: value,
7549
7566
  defaultValue: defaultValue
@@ -7551,6 +7568,13 @@ var InternalSelect = function InternalSelect(props, ref) {
7551
7568
  _useMergedState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2___default()(_useMergedState, 2),
7552
7569
  initValue = _useMergedState2[0],
7553
7570
  setInitValue = _useMergedState2[1];
7571
+ var tabsData = [{
7572
+ id: 'domestic',
7573
+ name: cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.tabsDomestic
7574
+ }, {
7575
+ id: 'foreign',
7576
+ name: cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.tabsInternation
7577
+ }];
7554
7578
  var innerRef = Object(react__WEBPACK_IMPORTED_MODULE_20__["useRef"])();
7555
7579
  var selectRef = ref || innerRef;
7556
7580
  var searchRef = Object(react__WEBPACK_IMPORTED_MODULE_20__["useRef"])(null); // 搜索框ref
@@ -7600,11 +7624,6 @@ var InternalSelect = function InternalSelect(props, ref) {
7600
7624
  setOptionShow(props.visible);
7601
7625
  }
7602
7626
  }, [props.visible]);
7603
- Object(react__WEBPACK_IMPORTED_MODULE_20__["useEffect"])(function () {
7604
- if (optionShow === false) {
7605
- handleClear();
7606
- }
7607
- }, [optionShow]);
7608
7627
  var handleFocus = Object(react__WEBPACK_IMPORTED_MODULE_20__["useCallback"])(function (e) {
7609
7628
  e.stopPropagation();
7610
7629
  setFocusd(true);
@@ -7706,6 +7725,7 @@ var InternalSelect = function InternalSelect(props, ref) {
7706
7725
  }
7707
7726
  };
7708
7727
  var renderNodeList = function renderNodeList(data, notContent) {
7728
+ var isCommon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7709
7729
  if (!data.length) {
7710
7730
  return renderNotContent(notContent);
7711
7731
  }
@@ -7716,7 +7736,9 @@ var InternalSelect = function InternalSelect(props, ref) {
7716
7736
  key: item.id,
7717
7737
  value: initValue,
7718
7738
  city: item,
7719
- renderCityInfo: renderCityInfo,
7739
+ renderCityInfo: function renderCityInfo(data, flag) {
7740
+ return _renderCityInfo(data, isCommon, flag);
7741
+ },
7720
7742
  onChangeSelect: handleOption,
7721
7743
  itemRender: itemRender
7722
7744
  }, searchValue ? getHighlightText(item === null || item === void 0 ? void 0 : item.name, (item === null || item === void 0 ? void 0 : item[optionHighlightProps]) || searchValue) : item === null || item === void 0 ? void 0 : item.name);
@@ -7731,6 +7753,7 @@ var InternalSelect = function InternalSelect(props, ref) {
7731
7753
  };
7732
7754
  var toggleTabPane = function toggleTabPane(type) {
7733
7755
  setTabsValue(type);
7756
+ onTabPaneChange === null || onTabPaneChange === void 0 ? void 0 : onTabPaneChange(type);
7734
7757
  };
7735
7758
 
7736
7759
  // 渲染下拉列表框
@@ -7744,20 +7767,22 @@ var InternalSelect = function InternalSelect(props, ref) {
7744
7767
  key: item.id,
7745
7768
  tab: item.name
7746
7769
  }, item);
7747
- })), tabsValue === 'domestic' ? renderNodeList(domesticList, '暂无数据') : renderNodeList(foreignList, '暂无数据')) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_20___default.a.Fragment, null, !!commonList.length && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement("div", {
7770
+ })), tabsValue === 'domestic' ? renderNodeList(domesticList, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.emptyText) : renderNodeList(foreignList, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.emptyText)) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_20___default.a.Fragment, null, !!commonList.length && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement("div", {
7748
7771
  className: "".concat(selectPrefixCls, "-dropdown-common")
7749
- }, "\u5E38\u7528"), renderNodeList(commonList, '无常用城市')));
7772
+ }, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.common), renderNodeList(commonList, cityPickerLangMsg === null || cityPickerLangMsg === void 0 ? void 0 : cityPickerLangMsg.commonEmptyText, true)));
7750
7773
  };
7751
- var renderCityInfo = Object(react__WEBPACK_IMPORTED_MODULE_20__["useCallback"])(function (data) {
7752
- var flag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
7753
- var symbol = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ', ';
7774
+ var _renderCityInfo = Object(react__WEBPACK_IMPORTED_MODULE_20__["useCallback"])(function (data) {
7775
+ var isCommon = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
7776
+ var flag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7777
+ var symbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ', ';
7754
7778
  if (!data) return null;
7755
7779
  if (isDomestic(type)) {
7756
- return "".concat(flag && data !== null && data !== void 0 && data.province ? symbol : '').concat(data === null || data === void 0 ? void 0 : data.province);
7780
+ var curVal = tabsValue === 'domestic' || isCommon ? data === null || data === void 0 ? void 0 : data.province : data === null || data === void 0 ? void 0 : data.country;
7781
+ return "".concat(flag && curVal ? symbol : '').concat(curVal);
7757
7782
  } else {
7758
- return "".concat(flag && data !== null && data !== void 0 && data.province ? symbol : '').concat(data === null || data === void 0 ? void 0 : data.province).concat(data !== null && data !== void 0 && data.country ? symbol : '').concat(data === null || data === void 0 ? void 0 : data.country);
7783
+ return "".concat(flag && data !== null && data !== void 0 && data.province ? symbol : '').concat(data === null || data === void 0 ? void 0 : data.province).concat(data !== null && data !== void 0 && data.country && data !== null && data !== void 0 && data.province ? symbol : '').concat(data === null || data === void 0 ? void 0 : data.country);
7759
7784
  }
7760
- }, [type]);
7785
+ }, [type, tabsValue]);
7761
7786
  var renderSingle = function renderSingle() {
7762
7787
  var hiddenStyle = !!searchValue || (initValue !== null && initValue !== void 0 ? initValue : '') !== '' ? {
7763
7788
  visibility: 'hidden'
@@ -7782,7 +7807,7 @@ var InternalSelect = function InternalSelect(props, ref) {
7782
7807
  title: seletedCity === null || seletedCity === void 0 ? void 0 : seletedCity.name
7783
7808
  }, seletedCity === null || seletedCity === void 0 ? void 0 : seletedCity.name)), !searchValue && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement("span", {
7784
7809
  className: "".concat(selectPrefixCls, "-content-info")
7785
- }, renderCityInfo(seletedCity))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement("span", {
7810
+ }, _renderCityInfo(seletedCity))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement("span", {
7786
7811
  className: "".concat(selectPrefixCls, "-placeholder"),
7787
7812
  style: hiddenStyle
7788
7813
  }, placeholder), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_20___default.a.createElement("span", {
@@ -7854,7 +7879,12 @@ var InternalSelect = function InternalSelect(props, ref) {
7854
7879
  defaultVisible: optionShow,
7855
7880
  visible: optionShow,
7856
7881
  onVisibleChange: handleVisibleChange,
7857
- clickToClose: !searchValue
7882
+ clickToClose: !searchValue,
7883
+ onTransitionEnd: function onTransitionEnd() {
7884
+ if (optionShow === false) {
7885
+ handleClear();
7886
+ }
7887
+ }
7858
7888
  });
7859
7889
  return Object(_utils_usePopper__WEBPACK_IMPORTED_MODULE_26__["default"])(renderCityPicker(), renderContent(), popperProps);
7860
7890
  };
@@ -7933,9 +7963,9 @@ var InternalOption = function InternalOption(props, ref) {
7933
7963
  className: optionCls,
7934
7964
  title: name,
7935
7965
  onClick: handleClick
7936
- }, typeof itemRender === 'function' ? itemRender(city) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
7966
+ }, typeof itemRender === 'function' ? itemRender(city) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("span", {
7937
7967
  className: "".concat(selectOptionPrefixCls, "-content")
7938
- }, children), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", {
7968
+ }, children), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("span", {
7939
7969
  className: "".concat(selectOptionPrefixCls, "-info")
7940
7970
  }, renderCityInfo === null || renderCityInfo === void 0 ? void 0 : renderCityInfo(city, true)))));
7941
7971
  };
@@ -20379,10 +20409,12 @@ __webpack_require__.r(__webpack_exports__);
20379
20409
  /* harmony import */ var big_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(big_js__WEBPACK_IMPORTED_MODULE_18__);
20380
20410
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
20381
20411
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_19__);
20412
+ /* harmony import */ var _useSelectionRange__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./useSelectionRange */ "./components/input-number/useSelectionRange.ts");
20382
20413
 
20383
20414
 
20384
20415
 
20385
- var _excluded = ["value", "defaultValue", "mustInScope", "decimalLength", "mustInPrecisionScope", "digitLength", "onChange", "symbol", "zeroShow", "showDecimalTailZero", "code", "roundMethod", "mask", "stepOption", "min", "minMark", "max", "maxMark", "numberMode", "prefix", "suffix", "formatter", "className"];
20416
+ var _excluded = ["value", "defaultValue", "mustInScope", "decimalLength", "mustInPrecisionScope", "digitLength", "onChange", "symbol", "zeroShow", "showDecimalTailZero", "code", "roundMethod", "mask", "stepOption", "min", "minMark", "max", "maxMark", "numberMode", "prefix", "suffix", "formatter", "className", "onKeyDown"];
20417
+
20386
20418
 
20387
20419
 
20388
20420
 
@@ -20401,6 +20433,7 @@ var _excluded = ["value", "defaultValue", "mustInScope", "decimalLength", "mustI
20401
20433
 
20402
20434
 
20403
20435
  var InternalInputNumber = function InternalInputNumber(props, ref) {
20436
+ var _inputNumberRef$curre3;
20404
20437
  var _useContext = Object(react__WEBPACK_IMPORTED_MODULE_11__["useContext"])(_config_provider_ConfigContext__WEBPACK_IMPORTED_MODULE_13__["default"]),
20405
20438
  userDefaultProps = _useContext.compDefaultProps,
20406
20439
  getPrefixCls = _useContext.getPrefixCls,
@@ -20429,6 +20462,7 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
20429
20462
  suffix = inputNumberProps.suffix,
20430
20463
  formatter = inputNumberProps.formatter,
20431
20464
  className = inputNumberProps.className,
20465
+ onKeyDown = inputNumberProps.onKeyDown,
20432
20466
  others = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2___default()(inputNumberProps, _excluded);
20433
20467
  var initVal = value === undefined ? defaultValue : value;
20434
20468
  var _useState = Object(react__WEBPACK_IMPORTED_MODULE_11__["useState"])(Object(_utils_numberUtil__WEBPACK_IMPORTED_MODULE_15__["serialization"])(initVal !== undefined ? initVal + '' : '')),
@@ -20492,6 +20526,7 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
20492
20526
  if (legalNumber === false) {
20493
20527
  return false;
20494
20528
  }
20529
+ updateSelectionRangePosition(event);
20495
20530
  value === undefined && setInputValue(legalNumber);
20496
20531
  onChange && onChange(handleEventAttachValue(event, numberMode ? Number(legalNumber) : legalNumber));
20497
20532
  };
@@ -20551,12 +20586,13 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
20551
20586
  return resultNumerical;
20552
20587
  };
20553
20588
  var handleStepChang = function handleStepChang(type) {
20589
+ var _inputNumberRef$curre, _inputNumberRef$curre2;
20554
20590
  var step = stepOption.step === undefined ? 1 : parseFloat(stepOption.step);
20555
20591
  if (typeof step !== 'number') {
20556
20592
  Object(_utils_devwarning__WEBPACK_IMPORTED_MODULE_17__["default"])(true, 'inputNumber', "stepOption.step\u5FC5\u987B\u4E3A\u4E00\u4E2A\u6570\u503C");
20557
20593
  return false;
20558
20594
  }
20559
- var startingNumber = parseFloat(inputNumberRef.current.value) || 0;
20595
+ var startingNumber = parseFloat((_inputNumberRef$curre = inputNumberRef.current) === null || _inputNumberRef$curre === void 0 ? void 0 : (_inputNumberRef$curre2 = _inputNumberRef$curre.input) === null || _inputNumberRef$curre2 === void 0 ? void 0 : _inputNumberRef$curre2.value) || 0;
20560
20596
  var calculationResults = new big_js__WEBPACK_IMPORTED_MODULE_18___default.a(startingNumber)[type](step).valueOf();
20561
20597
  var legalNumber = verifiValue(calculationResults);
20562
20598
  if (legalNumber === false) {
@@ -20570,6 +20606,7 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
20570
20606
  });
20571
20607
  };
20572
20608
  var handleKeyDown = function handleKeyDown(event) {
20609
+ onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
20573
20610
  if (!stepOption || props.disabled || props.readOnly) {
20574
20611
  return;
20575
20612
  }
@@ -20599,10 +20636,12 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
20599
20636
  // 还原最小值
20600
20637
  if (typeof min === 'number' && bigValue.lt(min)) {
20601
20638
  _inputValue = min.toString();
20639
+ onChange === null || onChange === void 0 ? void 0 : onChange(handleEventAttachValue(event, numberMode ? Number(_inputValue) : _inputValue));
20602
20640
  }
20603
20641
  // 还原最大值
20604
- if (typeof min === 'number' && bigValue.gt(max)) {
20642
+ if (typeof max === 'number' && bigValue.gt(max)) {
20605
20643
  _inputValue = max.toString();
20644
+ onChange === null || onChange === void 0 ? void 0 : onChange(handleEventAttachValue(event, numberMode ? Number(_inputValue) : _inputValue));
20606
20645
  }
20607
20646
  // 超过精度位数直接截断
20608
20647
  _inputValue = handleNumericalAccuracy(_inputValue);
@@ -20674,9 +20713,16 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
20674
20713
  }
20675
20714
  };
20676
20715
  });
20716
+ var displayedInputValue = Object(react__WEBPACK_IMPORTED_MODULE_11__["useMemo"])(function () {
20717
+ return formatter ? formatter(inputValue) : inputValue;
20718
+ }, [inputValue, formatter]);
20719
+ var updateSelectionRangePosition = Object(_useSelectionRange__WEBPACK_IMPORTED_MODULE_20__["default"])({
20720
+ inputElement: (_inputNumberRef$curre3 = inputNumberRef.current) === null || _inputNumberRef$curre3 === void 0 ? void 0 : _inputNumberRef$curre3.input,
20721
+ inputValue: displayedInputValue
20722
+ });
20677
20723
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_11___default.a.createElement(_input__WEBPACK_IMPORTED_MODULE_12__["default"], _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, others, {
20678
20724
  ref: inputNumberRef,
20679
- value: inputValue ? (formatter === null || formatter === void 0 ? void 0 : formatter(inputValue)) || inputValue : inputValue,
20725
+ value: displayedInputValue,
20680
20726
  prefix: prefix,
20681
20727
  suffix: suffix,
20682
20728
  onChange: handleChange,
@@ -20719,6 +20765,45 @@ __webpack_require__.r(__webpack_exports__);
20719
20765
 
20720
20766
 
20721
20767
 
20768
+ /***/ }),
20769
+
20770
+ /***/ "./components/input-number/useSelectionRange.ts":
20771
+ /*!******************************************************!*\
20772
+ !*** ./components/input-number/useSelectionRange.ts ***!
20773
+ \******************************************************/
20774
+ /*! exports provided: default */
20775
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
20776
+
20777
+ "use strict";
20778
+ __webpack_require__.r(__webpack_exports__);
20779
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return useSelectionRange; });
20780
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
20781
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
20782
+ /* harmony import */ var lodash_isNumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/isNumber */ "./node_modules/lodash/isNumber.js");
20783
+ /* harmony import */ var lodash_isNumber__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isNumber__WEBPACK_IMPORTED_MODULE_1__);
20784
+
20785
+
20786
+ function useSelectionRange(_ref) {
20787
+ var inputElement = _ref.inputElement,
20788
+ inputValue = _ref.inputValue;
20789
+ var refSelectionPosition = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])();
20790
+ Object(react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"])(function () {
20791
+ var position = refSelectionPosition.current;
20792
+ if (inputElement && inputValue && lodash_isNumber__WEBPACK_IMPORTED_MODULE_1___default()(position)) {
20793
+ var start = Math.max(0, inputValue.length - position);
20794
+ inputElement.setSelectionRange(start, start);
20795
+ }
20796
+ }, [inputValue]);
20797
+ return function (event) {
20798
+ var _ref2 = event.target,
20799
+ end = _ref2.selectionEnd,
20800
+ value = _ref2.value;
20801
+ if (lodash_isNumber__WEBPACK_IMPORTED_MODULE_1___default()(end)) {
20802
+ refSelectionPosition.current = value.length - end;
20803
+ }
20804
+ };
20805
+ }
20806
+
20722
20807
  /***/ }),
20723
20808
 
20724
20809
  /***/ "./components/input/ClearableLabeledInput.tsx":
@@ -22589,9 +22674,11 @@ var locale = _objectSpread(_objectSpread({
22589
22674
  'QuickSearch.emptyTip': '暂无数据',
22590
22675
  'QuickSearch.or': '或',
22591
22676
  'CityPicker.domestic': '国内',
22592
- 'CityPicker.internation': '国际',
22593
22677
  'CityPicker.common': '常用',
22594
- 'CityPicker.noData': '暂无数据',
22678
+ 'CityPicker.emptyText': '暂无数据',
22679
+ 'CityPicker.commonEmptyText': '无常用城市',
22680
+ 'CityPicker.tabsDomestic': '国内',
22681
+ 'CityPicker.tabsInternation': '国际/中国港澳台',
22595
22682
  'ColorPicker.followFunctionalColor': '跟随功能色',
22596
22683
  'Search.placeholder': '请输入需要搜索的内容',
22597
22684
  'Search.desc': ['空格代表"或",回车代表"且"'],
@@ -27964,7 +28051,8 @@ var InternalSearch = function InternalSearch(props, ref) {
27964
28051
  onSearch && (onSearch === null || onSearch === void 0 ? void 0 : onSearch(event));
27965
28052
  }, [onSearch]);
27966
28053
  var handlePressEnter = Object(react__WEBPACK_IMPORTED_MODULE_5__["useCallback"])(function (_, event) {
27967
- onPressEnter && (onPressEnter === null || onPressEnter === void 0 ? void 0 : onPressEnter(searchRef.current.value, event));
28054
+ var _searchRef$current, _searchRef$current$in;
28055
+ onPressEnter && (onPressEnter === null || onPressEnter === void 0 ? void 0 : onPressEnter((_searchRef$current = searchRef.current) === null || _searchRef$current === void 0 ? void 0 : (_searchRef$current$in = _searchRef$current.input) === null || _searchRef$current$in === void 0 ? void 0 : _searchRef$current$in.value, event));
27968
28056
  }, [onPressEnter, searchRef]);
27969
28057
  var handleFocus = Object(react__WEBPACK_IMPORTED_MODULE_5__["useCallback"])(function (event) {
27970
28058
  setFocused(true);
@@ -29074,7 +29162,7 @@ var InternalSelect = function InternalSelect(props, ref) {
29074
29162
  // open
29075
29163
  if (which === _utils_KeyCode__WEBPACK_IMPORTED_MODULE_30__["default"].ENTER || which === _utils_KeyCode__WEBPACK_IMPORTED_MODULE_30__["default"].UP || which === _utils_KeyCode__WEBPACK_IMPORTED_MODULE_30__["default"].DOWN) {
29076
29164
  e.preventDefault();
29077
- setOptionShow(true);
29165
+ handleVisibleChange(true);
29078
29166
  }
29079
29167
  // backspace
29080
29168
  var _multipleRef$current5 = multipleRef.current,
@@ -29103,6 +29191,7 @@ var InternalSelect = function InternalSelect(props, ref) {
29103
29191
  } else if (which === _utils_KeyCode__WEBPACK_IMPORTED_MODULE_30__["default"].ENTER) {
29104
29192
  var _item$props, _item$props2;
29105
29193
  var item = filledOptions[activeIndex];
29194
+ if (!item) return;
29106
29195
  var key = ((_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.value) || item.value;
29107
29196
  var label = ((_item$props2 = item.props) === null || _item$props2 === void 0 ? void 0 : _item$props2.children) || item.label;
29108
29197
  handleOption(key, label, true);
@@ -29118,10 +29207,10 @@ var InternalSelect = function InternalSelect(props, ref) {
29118
29207
  }));
29119
29208
  }
29120
29209
  if (!isMultiple) {
29121
- setOptionShow(false);
29210
+ handleVisibleChange(false);
29122
29211
  }
29123
29212
  } else if (which === _utils_KeyCode__WEBPACK_IMPORTED_MODULE_30__["default"].ESC) {
29124
- setOptionShow(false);
29213
+ handleVisibleChange(false);
29125
29214
  }
29126
29215
  if (offset !== 0) {
29127
29216
  var nextActiveIndex = getActiveIndex(activeIndex + offset, offset);
@@ -29178,7 +29267,7 @@ var InternalSelect = function InternalSelect(props, ref) {
29178
29267
  }
29179
29268
  };
29180
29269
  var popperProps = _objectSpread(_objectSpread({}, selectProps), {}, {
29181
- prefixCls: selectPrefixCls,
29270
+ prefixCls: "".concat(selectPrefixCls, "-dropdown-panel").concat(isMultiple ? " ".concat(selectPrefixCls, "-multiple-dropdown-panel") : ''),
29182
29271
  placement: 'bottomLeft',
29183
29272
  popperStyle: catchStyle(),
29184
29273
  defaultVisible: optionShow,
@@ -31604,6 +31693,24 @@ function getApi(pipelineRef) {
31604
31693
  var colLeft = columnNodes.slice(0, index).reduce(function (acc, col) {
31605
31694
  return acc + col.width;
31606
31695
  }, 0);
31696
+ var lockColumnLeft = 0;
31697
+ var lockColumnRight = 0;
31698
+ for (var i = 0; i < columnNodes.length; i++) {
31699
+ var _columnNodes$i;
31700
+ if ((_columnNodes$i = columnNodes[i]) !== null && _columnNodes$i !== void 0 && _columnNodes$i.lock) {
31701
+ lockColumnLeft += columnNodes[i].width;
31702
+ } else {
31703
+ break;
31704
+ }
31705
+ }
31706
+ for (var _i = columnNodes.length - 1; _i >= 0; _i--) {
31707
+ var _columnNodes$_i;
31708
+ if ((_columnNodes$_i = columnNodes[_i]) !== null && _columnNodes$_i !== void 0 && _columnNodes$_i.lock) {
31709
+ lockColumnRight += columnNodes[_i].width;
31710
+ } else {
31711
+ break;
31712
+ }
31713
+ }
31607
31714
  var colLeftPixel = colLeft; // 目标列前面列宽总和
31608
31715
  var colRightPixel = colLeftPixel + column.width;
31609
31716
  var viewportWidth = tableBodyContainer.clientWidth; // 表体容器的宽度
@@ -31611,8 +31718,8 @@ function getApi(pipelineRef) {
31611
31718
 
31612
31719
  var vScrollLeft = scrollPosition;
31613
31720
  var vScrollRight = scrollPosition + viewportWidth;
31614
- var pxLeft = colLeftPixel;
31615
- var pxRight = colRightPixel - viewportWidth;
31721
+ var pxLeft = colLeftPixel - lockColumnLeft;
31722
+ var pxRight = colRightPixel - viewportWidth + lockColumnRight;
31616
31723
  var colBeforeViewport = vScrollLeft > colLeftPixel; // 滚动距离大于目标列前面列宽总和,说明目标列在视口之前
31617
31724
  var colPastViewport = vScrollRight < colRightPixel; // 目标列是视口之后
31618
31725
 
@@ -45465,13 +45572,13 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
45465
45572
  last: footerDataSource.length - 1,
45466
45573
  limit: Infinity
45467
45574
  }
45468
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
45575
+ }), footerDataSource.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
45469
45576
  className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].verticalScrollPlaceholder,
45470
45577
  style: this.hasScrollY ? {
45471
45578
  width: this.getScrollBarWidth(),
45472
45579
  visibility: 'initial'
45473
45580
  } : undefined
45474
- }));
45581
+ }) : null);
45475
45582
  }
45476
45583
  }, {
45477
45584
  key: "renderLockShadows",
@@ -46494,10 +46601,13 @@ __webpack_require__.r(__webpack_exports__);
46494
46601
  /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_splice__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_splice__WEBPACK_IMPORTED_MODULE_4__);
46495
46602
  /* harmony import */ var _babel_runtime_corejs3_core_js_stable_map__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/map */ "./node_modules/@babel/runtime-corejs3/core-js-stable/map.js");
46496
46603
  /* harmony import */ var _babel_runtime_corejs3_core_js_stable_map__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_map__WEBPACK_IMPORTED_MODULE_5__);
46497
- /* harmony import */ var _base_calculations__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../base/calculations */ "./node_modules/@kdcloudjs/table/es/table/base/calculations.js");
46498
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
46499
- /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../base/styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
46500
- /* harmony import */ var _columnResizeWidth__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./columnResizeWidth */ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/columnResizeWidth.js");
46604
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find-index */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js");
46605
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_6__);
46606
+ /* harmony import */ var _base_calculations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../base/calculations */ "./node_modules/@kdcloudjs/table/es/table/base/calculations.js");
46607
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
46608
+ /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../base/styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
46609
+ /* harmony import */ var _columnResizeWidth__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./columnResizeWidth */ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/columnResizeWidth.js");
46610
+
46501
46611
 
46502
46612
 
46503
46613
 
@@ -46526,8 +46636,8 @@ var autoFillTableWidth = function autoFillTableWidth() {
46526
46636
  // 保存剩余的flex总和和剩余宽度总和宽度
46527
46637
  var residualFlexCount = flexCount;
46528
46638
  var residualFlexWidth = remainingWidth;
46529
- var columnSize = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_9__["COLUMN_SIZE_KEY"]) || {};
46530
- pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_7__["makeRecursiveMapper"])(function (col, recursiveFlatMapInfo) {
46639
+ var columnSize = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_10__["COLUMN_SIZE_KEY"]) || {};
46640
+ pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_8__["makeRecursiveMapper"])(function (col, recursiveFlatMapInfo) {
46531
46641
  var isLeaf = recursiveFlatMapInfo.isLeaf;
46532
46642
 
46533
46643
  if (isLeaf && isValidFlexColumn(col, pipeline)) {
@@ -46550,7 +46660,7 @@ var autoFillTableWidth = function autoFillTableWidth() {
46550
46660
 
46551
46661
  return col;
46552
46662
  }));
46553
- pipeline.setFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_9__["COLUMN_SIZE_KEY"], columnSize);
46663
+ pipeline.setFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_10__["COLUMN_SIZE_KEY"], columnSize);
46554
46664
  }
46555
46665
  } else {
46556
46666
  // 未设置了flex宽度,创建占位列
@@ -46565,7 +46675,7 @@ var autoFillTableWidth = function autoFillTableWidth() {
46565
46675
  if (fillColumns) {
46566
46676
  fillColumns.width = width;
46567
46677
  } else {
46568
- var rightNestedLockCount = Object(_base_calculations__WEBPACK_IMPORTED_MODULE_6__["getLeftNestedLockCount"])(_babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_3___default()(columns).call(columns).reverse());
46678
+ var rightNestedLockCount = Object(_base_calculations__WEBPACK_IMPORTED_MODULE_7__["getLeftNestedLockCount"])(_babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_3___default()(columns).call(columns).reverse());
46569
46679
  var spliceIndex = columns.length - rightNestedLockCount;
46570
46680
  var _fillColumns = {
46571
46681
  name: '',
@@ -46576,7 +46686,7 @@ var autoFillTableWidth = function autoFillTableWidth() {
46576
46686
  },
46577
46687
  getCellProps: function getCellProps(value, record, rowIndex) {
46578
46688
  return {
46579
- className: _base_styles__WEBPACK_IMPORTED_MODULE_8__["Classes"].emptyColCell
46689
+ className: _base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].emptyColCell
46580
46690
  };
46581
46691
  }
46582
46692
  };
@@ -46596,7 +46706,7 @@ var autoFillTableWidth = function autoFillTableWidth() {
46596
46706
 
46597
46707
  function dfs(columns, result) {
46598
46708
  columns.forEach(function (col) {
46599
- if (Object(_utils__WEBPACK_IMPORTED_MODULE_7__["isLeafNode"])(col)) {
46709
+ if (Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isLeafNode"])(col)) {
46600
46710
  if (isValidFlexColumn(col, pipeline)) {
46601
46711
  result.set(FLEX_COLUMN_COUNT, result.get(FLEX_COLUMN_COUNT) + col.features.flex);
46602
46712
  }
@@ -46617,8 +46727,8 @@ function getColumnWidthSum(pipeline) {
46617
46727
  var width = col.width,
46618
46728
  code = col.code;
46619
46729
 
46620
- if (Object(_utils__WEBPACK_IMPORTED_MODULE_7__["isLeafNode"])(col) && code !== FILL_COLUMN_CODE) {
46621
- var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_9__["COLUMN_SIZE_KEY"]);
46730
+ if (Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isLeafNode"])(col) && code !== FILL_COLUMN_CODE) {
46731
+ var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_10__["COLUMN_SIZE_KEY"]);
46622
46732
  return acc + (resizeColumn && resizeColumn[code] || width);
46623
46733
  } else {
46624
46734
  return acc + dfs(col.children);
@@ -46634,17 +46744,34 @@ function getTableRemainingWidth(pipeline) {
46634
46744
  return remainingWidth > 0 ? remainingWidth : 0;
46635
46745
  }
46636
46746
 
46747
+ function isAfterLastResizeCol(column, pipeline) {
46748
+ var _context, _context2;
46749
+
46750
+ var lastResizedColumnCode = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_10__["LAST_RESIZED_COLUMN_KEY"]);
46751
+ if (lastResizedColumnCode === undefined) return true;
46752
+
46753
+ var lastResizedColumnIndex = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_6___default()(_context = pipeline.getColumns()).call(_context, function (col) {
46754
+ return col.code === lastResizedColumnCode;
46755
+ });
46756
+
46757
+ var colIndex = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_6___default()(_context2 = pipeline.getColumns()).call(_context2, function (col) {
46758
+ return col.code === column.code;
46759
+ });
46760
+
46761
+ return colIndex > lastResizedColumnIndex;
46762
+ }
46763
+
46637
46764
  function isValidFlexColumn(col, pipeline) {
46638
46765
  var _a;
46639
46766
 
46640
- var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_9__["RESIZED_COLUMN_KEY"]); // 拖拽列自动禁止flex
46767
+ var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth__WEBPACK_IMPORTED_MODULE_10__["RESIZED_COLUMN_KEY"]); // 拖拽列自动禁止flex
46641
46768
 
46642
46769
  if (resizeColumn === null || resizeColumn === void 0 ? void 0 : resizeColumn.has(col.code)) {
46643
46770
  return false;
46644
46771
  }
46645
46772
 
46646
46773
  var flex = (_a = col.features) === null || _a === void 0 ? void 0 : _a.flex;
46647
- return typeof flex === 'number' && flex > 0;
46774
+ return typeof flex === 'number' && flex > 0 && isAfterLastResizeCol(col, pipeline);
46648
46775
  }
46649
46776
 
46650
46777
  function clamp(min, x, max) {
@@ -47714,13 +47841,14 @@ function columnRangeHover() {
47714
47841
  /*!***************************************************************************************!*\
47715
47842
  !*** ./node_modules/@kdcloudjs/table/es/table/pipeline/features/columnResizeWidth.js ***!
47716
47843
  \***************************************************************************************/
47717
- /*! exports provided: COLUMN_SIZE_KEY, RESIZED_COLUMN_KEY, columnResize */
47844
+ /*! exports provided: COLUMN_SIZE_KEY, RESIZED_COLUMN_KEY, LAST_RESIZED_COLUMN_KEY, columnResize */
47718
47845
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
47719
47846
 
47720
47847
  "use strict";
47721
47848
  __webpack_require__.r(__webpack_exports__);
47722
47849
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COLUMN_SIZE_KEY", function() { return COLUMN_SIZE_KEY; });
47723
47850
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RESIZED_COLUMN_KEY", function() { return RESIZED_COLUMN_KEY; });
47851
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LAST_RESIZED_COLUMN_KEY", function() { return LAST_RESIZED_COLUMN_KEY; });
47724
47852
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "columnResize", function() { return columnResize; });
47725
47853
  /* harmony import */ var _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/extends */ "./node_modules/@babel/runtime-corejs3/helpers/extends.js");
47726
47854
  /* harmony import */ var _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);
@@ -47769,6 +47897,7 @@ function disableSelect(event) {
47769
47897
  var stateKey = 'columnResize';
47770
47898
  var COLUMN_SIZE_KEY = 'columnResize';
47771
47899
  var RESIZED_COLUMN_KEY = 'resizedColumn';
47900
+ var LAST_RESIZED_COLUMN_KEY = 'lastResizedColumn';
47772
47901
  function columnResize() {
47773
47902
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47774
47903
 
@@ -47876,6 +48005,7 @@ function columnResize() {
47876
48005
  });
47877
48006
 
47878
48007
  pipeline.setFeatureOptions(RESIZED_COLUMN_KEY, resizedColumnSet);
48008
+ pipeline.setFeatureOptions(LAST_RESIZED_COLUMN_KEY, code);
47879
48009
  },
47880
48010
  complete: function complete() {
47881
48011
  var _context;
@@ -49441,7 +49571,7 @@ function multiSelect() {
49441
49571
  /*!************************************************************************************!*\
49442
49572
  !*** ./node_modules/@kdcloudjs/table/es/table/pipeline/features/rangeSelection.js ***!
49443
49573
  \************************************************************************************/
49444
- /*! exports provided: rangeSelectionKey, lastClickCellKey, rangeSelection */
49574
+ /*! exports provided: rangeSelectionKey, lastClickCellKey, rangeSelection, getCellRangeId */
49445
49575
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
49446
49576
 
49447
49577
  "use strict";
@@ -49449,25 +49579,32 @@ __webpack_require__.r(__webpack_exports__);
49449
49579
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rangeSelectionKey", function() { return rangeSelectionKey; });
49450
49580
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lastClickCellKey", function() { return lastClickCellKey; });
49451
49581
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rangeSelection", function() { return rangeSelection; });
49452
- /* harmony import */ var _babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/typeof */ "./node_modules/@babel/runtime-corejs3/helpers/typeof.js");
49453
- /* harmony import */ var _babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
49454
- /* harmony import */ var _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/defineProperty */ "./node_modules/@babel/runtime-corejs3/helpers/defineProperty.js");
49455
- /* harmony import */ var _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__);
49582
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCellRangeId", function() { return getCellRangeId; });
49583
+ /* harmony import */ var _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/defineProperty */ "./node_modules/@babel/runtime-corejs3/helpers/defineProperty.js");
49584
+ /* harmony import */ var _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
49585
+ /* harmony import */ var _babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/typeof */ "./node_modules/@babel/runtime-corejs3/helpers/typeof.js");
49586
+ /* harmony import */ var _babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__);
49456
49587
  /* harmony import */ var _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/extends */ "./node_modules/@babel/runtime-corejs3/helpers/extends.js");
49457
49588
  /* harmony import */ var _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_2__);
49458
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find-index */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js");
49459
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_3__);
49460
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/slice */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js");
49461
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_4__);
49462
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js");
49463
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_5__);
49464
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
49465
- /* harmony import */ var _utils_others__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/others */ "./node_modules/@kdcloudjs/table/es/table/utils/others.js");
49466
- /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
49467
- /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
49468
- /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../base/styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
49469
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
49470
- /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_11__);
49589
+ /* harmony import */ var _babel_runtime_corejs3_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/toConsumableArray */ "./node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js");
49590
+ /* harmony import */ var _babel_runtime_corejs3_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3__);
49591
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js");
49592
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4__);
49593
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find-index */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js");
49594
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_5__);
49595
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/slice */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js");
49596
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_6__);
49597
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js");
49598
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_7__);
49599
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
49600
+ /* harmony import */ var _utils_others__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/others */ "./node_modules/@kdcloudjs/table/es/table/utils/others.js");
49601
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
49602
+ /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
49603
+ /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../base/styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
49604
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
49605
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_13__);
49606
+
49607
+
49471
49608
 
49472
49609
 
49473
49610
 
@@ -49482,9 +49619,10 @@ __webpack_require__.r(__webpack_exports__);
49482
49619
 
49483
49620
  var rangeSelectionKey = 'rangeSelection';
49484
49621
  var lastClickCellKey = 'lastClickCell';
49622
+ var startSelectedCellRangesKey = 'startSelectedCellRanges';
49623
+ var SCROLL_OFFSET = 30;
49485
49624
  function rangeSelection(opts) {
49486
49625
  return function step(pipeline) {
49487
- var SCROLL_SIZE = 30;
49488
49626
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
49489
49627
  var tableFooter = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableFooter;
49490
49628
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
@@ -49496,14 +49634,18 @@ function rangeSelection(opts) {
49496
49634
  var columns = pipeline.getColumns();
49497
49635
  var dataSource = pipeline.getDataSource();
49498
49636
 
49499
- var rangeSelectedChange = function rangeSelectedChange(rangeSelection) {
49637
+ var rangeSelectedChange = function rangeSelectedChange(rangeSelection, isFinished) {
49500
49638
  var _a;
49501
49639
 
49640
+ if (isFinished) {
49641
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, rangeSelection);
49642
+ }
49643
+
49502
49644
  pipeline.setStateAtKey(rangeSelectionKey, rangeSelection);
49503
- (_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection);
49645
+ (_a = opts === null || opts === void 0 ? void 0 : opts.rangeSelectedChange) === null || _a === void 0 ? void 0 : _a.call(opts, rangeSelection, isFinished);
49504
49646
  };
49505
49647
 
49506
- var setRangeSelection = function setRangeSelection(startDragCell, draggingCell) {
49648
+ var setRangeSelection = function setRangeSelection(startDragCell, draggingCell, isFinished) {
49507
49649
  if (!startDragCell || !draggingCell) return;
49508
49650
  var rangeColumns = getRangeColumns(startDragCell, draggingCell, columns);
49509
49651
 
@@ -49512,21 +49654,31 @@ function rangeSelection(opts) {
49512
49654
  endRow = _getRangeSelectionRow.endRow,
49513
49655
  footerRowRange = _getRangeSelectionRow.footerRowRange;
49514
49656
 
49515
- var rangeSelection = {
49657
+ var cellRange = {
49516
49658
  startRow: startRow,
49517
49659
  endRow: endRow,
49518
49660
  columns: rangeColumns,
49519
49661
  startColumn: startDragCell.column,
49520
49662
  footerRowRange: footerRowRange
49521
49663
  };
49664
+ var cellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _babel_runtime_corejs3_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3___default()(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
49522
49665
 
49523
- if (isCellRangeSingleCell(rangeSelection)) {
49524
- artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_11___default()(_base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].rangeSelection));
49666
+ if (isCellRangeSingleCell([cellRange])) {
49667
+ var singleCellRangeId = getCellRangeId(cellRange);
49668
+ cellRanges = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default()(cellRanges).call(cellRanges, function (item) {
49669
+ return getCellRangeId(item) !== singleCellRangeId;
49670
+ });
49671
+ }
49672
+
49673
+ cellRanges.push(cellRange);
49674
+
49675
+ if (isCellRangeSingleCell(cellRanges)) {
49676
+ artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_13___default()(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rangeSelection));
49525
49677
  } else {
49526
- artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_11___default()(_base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].rangeSelection));
49678
+ artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_13___default()(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rangeSelection));
49527
49679
  }
49528
49680
 
49529
- rangeSelectedChange(rangeSelection);
49681
+ rangeSelectedChange(cellRanges, isFinished);
49530
49682
  };
49531
49683
 
49532
49684
  var shiftKeySelect = function shiftKeySelect(event) {
@@ -49534,81 +49686,115 @@ function rangeSelection(opts) {
49534
49686
  var clickCell = getTargetCell(target, columns);
49535
49687
 
49536
49688
  if (clickCell) {
49537
- if (event.shiftKey) {
49538
- var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
49689
+ var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
49539
49690
 
49540
- if (_lastClickCell) {
49541
- setRangeSelection(_lastClickCell, clickCell);
49542
- } else {
49543
- // 第一次进来就按住shift键,这时候要记住点击的单元格
49544
- pipeline.setFeatureOptions(lastClickCellKey, clickCell);
49545
- }
49691
+ if (_lastClickCell) {
49692
+ setRangeSelection(_lastClickCell, clickCell, true);
49546
49693
  } else {
49694
+ // 第一次进来就按住shift键,这时候要记住点击的单元格
49547
49695
  pipeline.setFeatureOptions(lastClickCellKey, clickCell);
49548
- setRangeSelection(clickCell, clickCell);
49549
49696
  }
49550
49697
  }
49551
49698
  };
49552
49699
 
49553
- var onMouseDown = function onMouseDown(mouseDownEvent) {
49554
- if (mouseDownEvent.button !== 0 || !(Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isElementInEventPath"])(tableBody, mouseDownEvent.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isElementInEventPath"])(tableFooter, mouseDownEvent.nativeEvent))) return; // mouseDownEvent.preventDefault()
49555
- // shift + 点击选中
49556
-
49557
- shiftKeySelect(mouseDownEvent);
49558
- if (mouseDownEvent.shiftKey) return;
49559
- var target = mouseDownEvent.target;
49560
- var startDragCell = getTargetCell(target, columns);
49561
- var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_8__["fromEvent"])(window, 'mousemove');
49562
- var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_8__["fromEvent"])(window, 'mouseup');
49700
+ var updateScrollPosition = function updateScrollPosition(client) {
49701
+ var clientX = client.clientX,
49702
+ clientY = client.clientY;
49563
49703
  var tableBodyClientRect = tableBody.getBoundingClientRect();
49704
+ var left = tableBodyClientRect.left,
49705
+ top = tableBodyClientRect.top,
49706
+ height = tableBodyClientRect.height,
49707
+ width = tableBodyClientRect.width;
49564
49708
 
49565
- var updateScrollPosition = function updateScrollPosition(client) {
49566
- var clientX = client.clientX,
49567
- clientY = client.clientY;
49568
- var left = tableBodyClientRect.left,
49569
- top = tableBodyClientRect.top,
49570
- height = tableBodyClientRect.height,
49571
- width = tableBodyClientRect.width;
49709
+ if (clientX + SCROLL_OFFSET >= left + width) {
49710
+ pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_OFFSET;
49711
+ }
49572
49712
 
49573
- if (clientX + SCROLL_SIZE >= left + width) {
49574
- pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
49575
- }
49713
+ if (clientX - SCROLL_OFFSET <= left) {
49714
+ pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_OFFSET;
49715
+ }
49576
49716
 
49577
- if (clientX - SCROLL_SIZE <= left) {
49578
- pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
49579
- }
49717
+ if (clientY + SCROLL_OFFSET >= top + height) {
49718
+ pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
49719
+ }
49580
49720
 
49581
- if (clientY + SCROLL_SIZE >= top + height) {
49582
- pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_SIZE;
49583
- }
49721
+ if (clientY + SCROLL_OFFSET <= top) {
49722
+ pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
49723
+ }
49724
+ };
49584
49725
 
49585
- if (clientY + SCROLL_SIZE <= top) {
49586
- pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_SIZE;
49587
- }
49588
- };
49726
+ var setStartSelectedCellRanges = function setStartSelectedCellRanges(isCtrlKey, isShiftKey) {
49727
+ if (opts === null || opts === void 0 ? void 0 : opts.suppressMultiRangeSelection) {
49728
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
49729
+ return;
49730
+ } // ctrl 和shift 同时按时,优先生效shift
49731
+ // 没有点击ctrl 或者shift时,每次点击开始时都清空选中范围
49732
+
49733
+
49734
+ if (!isCtrlKey && !isShiftKey) {
49735
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, []);
49736
+ } // shift 点击框选,要保留之前的选中结果。最新的框选范围覆盖最后一次的框选范围
49589
49737
 
49590
- var rangeSelected$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["map"])(function (mouseMoveEvent) {
49738
+
49739
+ if (isShiftKey) {
49740
+ var _startDragCellRanges = pipeline.getFeatureOptions(startSelectedCellRangesKey) ? _babel_runtime_corejs3_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_3___default()(pipeline.getFeatureOptions(startSelectedCellRangesKey)) : [];
49741
+
49742
+ _startDragCellRanges.pop();
49743
+
49744
+ pipeline.setFeatureOptions(startSelectedCellRangesKey, _startDragCellRanges);
49745
+ }
49746
+ };
49747
+
49748
+ var onMouseDown = function onMouseDown(mouseDownEvent) {
49749
+ if (mouseDownEvent.button !== 0 || !(Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isElementInEventPath"])(tableBody, mouseDownEvent.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isElementInEventPath"])(tableFooter, mouseDownEvent.nativeEvent))) return; // mouseDownEvent.preventDefault()
49750
+
49751
+ var isCtrlKey = mouseDownEvent.ctrlKey || mouseDownEvent.metaKey;
49752
+ var isShiftKey = mouseDownEvent.shiftKey;
49753
+ var target = mouseDownEvent.target; // 每次点击时先确认初始生效的框选范围
49754
+
49755
+ setStartSelectedCellRanges(isCtrlKey, isShiftKey);
49756
+
49757
+ if (isShiftKey) {
49758
+ shiftKeySelect(mouseDownEvent);
49759
+ return;
49760
+ }
49761
+
49762
+ var startDragCell = getTargetCell(target, columns);
49763
+ pipeline.setFeatureOptions(lastClickCellKey, startDragCell);
49764
+ var draggingCell = startDragCell;
49765
+ var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_10__["fromEvent"])(window, 'mousemove');
49766
+ var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_10__["fromEvent"])(window, 'mouseup');
49767
+ var rangeSelected$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["map"])(function (mouseMoveEvent) {
49591
49768
  var target = mouseMoveEvent.target || mouseMoveEvent.srcElement;
49592
- var draggingCell = getTargetCell(target, columns);
49769
+ draggingCell = getTargetCell(target, columns);
49593
49770
  var client = {
49594
49771
  clientX: mouseMoveEvent.clientX,
49595
49772
  clientY: mouseMoveEvent.clientY
49596
49773
  };
49597
- updateScrollPosition(client);
49774
+
49775
+ if (!(draggingCell === null || draggingCell === void 0 ? void 0 : draggingCell.isFooterCell)) {
49776
+ updateScrollPosition(client);
49777
+ }
49778
+
49598
49779
  return {
49599
49780
  startDragCell: startDragCell,
49600
49781
  draggingCell: draggingCell
49601
49782
  };
49602
- }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_9__["takeUntil"])(mouseup$));
49603
- rangeSelected$.subscribe(function (_ref) {
49604
- var startDragCell = _ref.startDragCell,
49605
- draggingCell = _ref.draggingCell;
49606
- setRangeSelection(startDragCell, draggingCell);
49783
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_11__["takeUntil"])(mouseup$));
49784
+ rangeSelected$.subscribe({
49785
+ next: function next(_ref) {
49786
+ var startDragCell = _ref.startDragCell,
49787
+ draggingCell = _ref.draggingCell;
49788
+ setRangeSelection(startDragCell, draggingCell, false);
49789
+ },
49790
+ complete: function complete() {
49791
+ setRangeSelection(startDragCell, draggingCell, true);
49792
+ }
49607
49793
  });
49608
49794
  };
49609
49795
 
49610
49796
  var onKeyDown = function onKeyDown(e) {
49611
- if (!(Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isElementInEventPath"])(tableBody, e.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_6__["isElementInEventPath"])(tableFooter, e.nativeEvent))) return;
49797
+ if (!(Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isElementInEventPath"])(tableBody, e.nativeEvent) || Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isElementInEventPath"])(tableFooter, e.nativeEvent))) return;
49612
49798
 
49613
49799
  if ((e.ctrlKey || e.metaKey) && e.key === 'a') {
49614
49800
  var rowLen = pipeline.getDataSource().length;
@@ -49616,17 +49802,17 @@ function rangeSelection(opts) {
49616
49802
 
49617
49803
  if (columns.length && rowLen && !getElementEditable(e.target)) {
49618
49804
  opts.preventkDefaultOfKeyDownEvent !== false && e.preventDefault();
49619
- artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_11___default()(_base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].rangeSelection));
49620
- rangeSelectedChange({
49805
+ artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_13___default()(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rangeSelection));
49806
+ rangeSelectedChange([{
49621
49807
  startRow: 0,
49622
49808
  endRow: rowLen - 1,
49623
- columns: Object(_utils__WEBPACK_IMPORTED_MODULE_6__["collectNodes"])(columns, 'leaf-only'),
49809
+ columns: Object(_utils__WEBPACK_IMPORTED_MODULE_8__["collectNodes"])(columns, 'leaf-only'),
49624
49810
  startColumn: columns[0],
49625
49811
  footerRowRange: footerDataSource.length > 0 ? {
49626
49812
  startRow: 0,
49627
49813
  endRow: footerDataSource.length - 1
49628
49814
  } : null
49629
- });
49815
+ }], true);
49630
49816
  }
49631
49817
  }
49632
49818
  };
@@ -49635,46 +49821,26 @@ function rangeSelection(opts) {
49635
49821
  onMouseDown: onMouseDown,
49636
49822
  onKeyDown: onKeyDown,
49637
49823
  tabIndex: -1,
49638
- className: classnames__WEBPACK_IMPORTED_MODULE_11___default()([_base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].rangeSelection])
49824
+ className: classnames__WEBPACK_IMPORTED_MODULE_13___default()([_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rangeSelection])
49639
49825
  }); // todo: 后面可以把mousedown放到一个流里面
49640
49826
 
49641
- return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_6__["makeRecursiveMapper"])(function (col) {
49642
- var _context;
49643
-
49644
- var rangeSelection = pipeline.getStateAtKey(rangeSelectionKey);
49645
- if (!rangeSelection || _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_3___default()(_context = rangeSelection.columns).call(_context, function (selectedCol) {
49646
- return selectedCol.code === col.code;
49647
- }) === -1) return col;
49827
+ return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_8__["makeRecursiveMapper"])(function (col) {
49828
+ var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
49648
49829
  var prevGetCellProps = col.getCellProps;
49649
49830
  return _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()(_babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_2___default()({}, col), {
49650
49831
  getCellProps: function getCellProps(value, record, rowIndex) {
49651
- var _cx;
49652
-
49653
49832
  var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
49654
- var isInFooter = record[pipeline.getFeatureOptions('footerRowMetaKey')];
49655
- var startRow = rangeSelection.startRow,
49656
- endRow = rangeSelection.endRow,
49657
- columns = rangeSelection.columns,
49658
- footerRowRange = rangeSelection.footerRowRange;
49659
-
49660
- var _getRowIndex = getRowIndex(startRow, endRow),
49661
- startRowIndex = _getRowIndex.startRowIndex,
49662
- endRowIndex = _getRowIndex.endRowIndex;
49663
-
49664
- var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
49665
- footerStartRowIndex = _getFooterRowIndex.startRowIndex,
49666
- footerEndRowIndex = _getFooterRowIndex.endRowIndex;
49667
-
49668
- var startCol = columns[0];
49669
- var endCol = columns[columns.length - 1];
49670
- var bodyMatch = !isInFooter && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
49671
- var footerMatch = isInFooter && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
49672
- var match = footerMatch || bodyMatch;
49673
- var matchSingleCell = match && isCellRangeSingleCell(rangeSelection); // 单个范围选中单元格不显示样式
49674
-
49675
- var showCellRangeStyle = match && !matchSingleCell;
49676
- var className = classnames__WEBPACK_IMPORTED_MODULE_11___default()((_cx = {}, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableCellRangeSingleCell, matchSingleCell), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableCellRangeSelected, showCellRangeStyle), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableCellRangeTop, showCellRangeStyle && (isInFooter ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex)), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableCellRangeLeft, showCellRangeStyle && col.code === startCol.code), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableCellRangeBottom, showCellRangeStyle && (isInFooter ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex)), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableCellRangeRight, showCellRangeStyle && col.code === endCol.code), _cx));
49677
- return Object(_utils__WEBPACK_IMPORTED_MODULE_6__["mergeCellProps"])(prevCellProps, {
49833
+ var isFooterCell = record[pipeline.getFeatureOptions('footerRowMetaKey')];
49834
+ if (!cellRanges.some(function (cellRange) {
49835
+ return isCellInRange(cellRange, rowIndex, col, isFooterCell);
49836
+ })) return prevCellProps;
49837
+ var className = getCellRangesClassName(cellRanges, {
49838
+ isFooterCell: isFooterCell,
49839
+ rowIndex: rowIndex,
49840
+ col: col,
49841
+ record: record
49842
+ });
49843
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, {
49678
49844
  className: className
49679
49845
  });
49680
49846
  }
@@ -49688,7 +49854,7 @@ function getTargetCell(target, columns) {
49688
49854
  if (target.getAttribute('data-role') === 'table-cell') {
49689
49855
  var _ret = function () {
49690
49856
  var columnCode = target.getAttribute('data-code');
49691
- var column = Object(_utils_others__WEBPACK_IMPORTED_MODULE_7__["findByTree"])(columns, function (item, index) {
49857
+ var column = Object(_utils_others__WEBPACK_IMPORTED_MODULE_9__["findByTree"])(columns, function (item, index) {
49692
49858
  return item.code === columnCode;
49693
49859
  });
49694
49860
  if (!column) return {
@@ -49700,12 +49866,12 @@ function getTargetCell(target, columns) {
49700
49866
  rowSpan: parseInt(target.getAttribute('rowspan') || 1),
49701
49867
  code: columnCode,
49702
49868
  column: column,
49703
- isInFooter: isEleInFooter(target)
49869
+ isFooterCell: isEleInFooter(target)
49704
49870
  }
49705
49871
  };
49706
49872
  }();
49707
49873
 
49708
- if (_babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(_ret) === "object") return _ret.v;
49874
+ if (_babel_runtime_corejs3_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(_ret) === "object") return _ret.v;
49709
49875
  }
49710
49876
 
49711
49877
  target = target.parentElement;
@@ -49715,12 +49881,12 @@ function getTargetCell(target, columns) {
49715
49881
  }
49716
49882
 
49717
49883
  function isSameCell(cell1, cell2) {
49718
- return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isInFooter === cell2.isInFooter;
49884
+ return cell1.rowIndex === cell2.rowIndex && cell1.code === cell2.code && cell1.isFooterCell === cell2.isFooterCell;
49719
49885
  }
49720
49886
 
49721
49887
  function isEleInFooter(target) {
49722
- while (target && !target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].artTable)) {
49723
- if (target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_10__["Classes"].tableFooter)) {
49888
+ while (target && !target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].artTable)) {
49889
+ if (target.classList.contains(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableFooter)) {
49724
49890
  return true;
49725
49891
  }
49726
49892
 
@@ -49731,20 +49897,20 @@ function isEleInFooter(target) {
49731
49897
  }
49732
49898
 
49733
49899
  function getRangeColumns(startCell, endCell, columns) {
49734
- var flatColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_6__["collectNodes"])(columns, 'leaf-only');
49900
+ var flatColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_8__["collectNodes"])(columns, 'leaf-only');
49735
49901
 
49736
- var startIndex = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_3___default()(flatColumns).call(flatColumns, function (col) {
49902
+ var startIndex = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_5___default()(flatColumns).call(flatColumns, function (col) {
49737
49903
  return col.code === startCell.code;
49738
49904
  });
49739
49905
 
49740
- var endIndex = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_3___default()(flatColumns).call(flatColumns, function (col) {
49906
+ var endIndex = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_5___default()(flatColumns).call(flatColumns, function (col) {
49741
49907
  return col.code === endCell.code;
49742
49908
  });
49743
49909
 
49744
49910
  if (startIndex < endIndex) {
49745
- return _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_4___default()(flatColumns).call(flatColumns, startIndex, endIndex + 1);
49911
+ return _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_6___default()(flatColumns).call(flatColumns, startIndex, endIndex + 1);
49746
49912
  } else {
49747
- return _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_4___default()(flatColumns).call(flatColumns, endIndex, startIndex + 1);
49913
+ return _babel_runtime_corejs3_core_js_stable_instance_slice__WEBPACK_IMPORTED_MODULE_6___default()(flatColumns).call(flatColumns, endIndex, startIndex + 1);
49748
49914
  }
49749
49915
  }
49750
49916
 
@@ -49758,10 +49924,10 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
49758
49924
  _endRow = _getCellRangeRow.endRow; // 两个单元格都在表体
49759
49925
 
49760
49926
 
49761
- if (!startCell.isInFooter && !endCell.isInFooter) {
49927
+ if (!startCell.isFooterCell && !endCell.isFooterCell) {
49762
49928
  startRow = _startRow;
49763
49929
  endRow = _endRow;
49764
- } else if (startCell.isInFooter && endCell.isInFooter) {
49930
+ } else if (startCell.isFooterCell && endCell.isFooterCell) {
49765
49931
  // 两个单元格都在表底
49766
49932
  footerRowRange = {
49767
49933
  startRow: _startRow,
@@ -49769,7 +49935,7 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
49769
49935
  };
49770
49936
  } else {
49771
49937
  // 一个单元格在表体,一个在表底
49772
- if (startCell.isInFooter) {
49938
+ if (startCell.isFooterCell) {
49773
49939
  startRow = dataSource.length - 1;
49774
49940
  endRow = endCell.rowIndex;
49775
49941
  footerRowRange = {
@@ -49792,6 +49958,13 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
49792
49958
  footerRowRange: footerRowRange
49793
49959
  };
49794
49960
  }
49961
+ /**
49962
+ * 获取框选范围的起始结束行
49963
+ * @param startCell 起始单元格
49964
+ * @param endCell 结束单元格
49965
+ * @returns
49966
+ */
49967
+
49795
49968
 
49796
49969
  function getCellRangeRow(startCell, endCell) {
49797
49970
  if (isSameCell(startCell, endCell)) {
@@ -49809,12 +49982,20 @@ function getCellRangeRow(startCell, endCell) {
49809
49982
  endRow: endRow
49810
49983
  };
49811
49984
  }
49985
+ /**
49986
+ * 框选范围是否只包含单个单元格
49987
+ * @param cellRanges
49988
+ * @returns
49989
+ */
49990
+
49812
49991
 
49813
- function isCellRangeSingleCell(rangeSelection) {
49814
- var startRow = rangeSelection.startRow,
49815
- endRow = rangeSelection.endRow,
49816
- columns = rangeSelection.columns,
49817
- footerRowRange = rangeSelection.footerRowRange;
49992
+ function isCellRangeSingleCell(cellRanges) {
49993
+ if (cellRanges.length !== 1) return false;
49994
+ var _cellRanges$ = cellRanges[0],
49995
+ startRow = _cellRanges$.startRow,
49996
+ endRow = _cellRanges$.endRow,
49997
+ columns = _cellRanges$.columns,
49998
+ footerRowRange = _cellRanges$.footerRowRange;
49818
49999
  var isBodySingleCell = !footerRowRange && startRow === endRow && columns.length === 1;
49819
50000
  var isFooterSingleCell = startRow === -1 && footerRowRange.startRow === footerRowRange.endRow && columns.length === 1;
49820
50001
  return isBodySingleCell || isFooterSingleCell;
@@ -49842,15 +50023,143 @@ function getFooterRowIndex(footerRowRange) {
49842
50023
  }
49843
50024
 
49844
50025
  function getElementEditable(target) {
49845
- var _context2;
50026
+ var _context;
49846
50027
 
49847
50028
  if (!target) return;
49848
50029
 
49849
- if (_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_5___default()(_context2 = ['input', 'textarea']).call(_context2, target.tagName.toLowerCase())) {
50030
+ if (_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_7___default()(_context = ['input', 'textarea']).call(_context, target.tagName.toLowerCase())) {
49850
50031
  if (target.type === 'checkbox') return;
49851
50032
  return !target.disabled && !target.readOnly;
49852
50033
  }
49853
50034
  }
50035
+ /**
50036
+ * 判断单元格是否在框选范围内
50037
+ * @param cellRange
50038
+ * @param rowIndex
50039
+ * @param col
50040
+ * @param isFooterCell
50041
+ * @returns
50042
+ */
50043
+
50044
+
50045
+ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
50046
+ var startRow = cellRange.startRow,
50047
+ endRow = cellRange.endRow,
50048
+ columns = cellRange.columns,
50049
+ footerRowRange = cellRange.footerRowRange;
50050
+ var isColInRanges = _babel_runtime_corejs3_core_js_stable_instance_find_index__WEBPACK_IMPORTED_MODULE_5___default()(columns).call(columns, function (item) {
50051
+ return item.code === col.code;
50052
+ }) !== -1;
50053
+ if (!isColInRanges) return false;
50054
+
50055
+ var _getRowIndex = getRowIndex(startRow, endRow),
50056
+ startRowIndex = _getRowIndex.startRowIndex,
50057
+ endRowIndex = _getRowIndex.endRowIndex;
50058
+
50059
+ var _getFooterRowIndex = getFooterRowIndex(footerRowRange),
50060
+ footerStartRowIndex = _getFooterRowIndex.startRowIndex,
50061
+ footerEndRowIndex = _getFooterRowIndex.endRowIndex;
50062
+
50063
+ var bodyMatch = !isFooterCell && rowIndex >= startRowIndex && rowIndex <= endRowIndex;
50064
+ var footerMatch = isFooterCell && footerRowRange && rowIndex >= footerStartRowIndex && rowIndex <= footerEndRowIndex;
50065
+ var isRowInRange = footerMatch || bodyMatch;
50066
+ return isRowInRange;
50067
+ }
50068
+ /**
50069
+ * 获取框选范围唯一标识
50070
+ * @param {*} cellRange
50071
+ * @returns
50072
+ */
50073
+
50074
+
50075
+ function getCellRangeId(cellRange) {
50076
+ var startRow = cellRange.startRow,
50077
+ endRow = cellRange.endRow,
50078
+ footerRowRange = cellRange.footerRowRange,
50079
+ columns = cellRange.columns;
50080
+
50081
+ var _getRowIndex2 = getRowIndex(startRow, endRow),
50082
+ startRowIndex = _getRowIndex2.startRowIndex,
50083
+ endRowIndex = _getRowIndex2.endRowIndex;
50084
+
50085
+ var _getFooterRowIndex2 = getFooterRowIndex(footerRowRange),
50086
+ footerStartRowIndex = _getFooterRowIndex2.startRowIndex,
50087
+ footerEndRowIndex = _getFooterRowIndex2.endRowIndex;
50088
+
50089
+ var firstColId = columns[0].code;
50090
+ var endColId = columns[columns.length - 1].code;
50091
+ return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
50092
+ }
50093
+ /**
50094
+ * 获取框选范围中单元格的样式
50095
+ * @param cellRanges
50096
+ * @param param1
50097
+ * @returns
50098
+ */
50099
+
50100
+ function getCellRangesClassName(cellRanges, _ref2) {
50101
+ var _cx;
50102
+
50103
+ var isFooterCell = _ref2.isFooterCell,
50104
+ rowIndex = _ref2.rowIndex,
50105
+ col = _ref2.col,
50106
+ record = _ref2.record;
50107
+
50108
+ var _getMatchBorderStyle = getMatchBorderStyle(cellRanges, {
50109
+ isFooterCell: isFooterCell,
50110
+ rowIndex: rowIndex,
50111
+ col: col,
50112
+ record: record
50113
+ }),
50114
+ matchCellRangeTop = _getMatchBorderStyle.matchCellRangeTop,
50115
+ matchCellRangeLeft = _getMatchBorderStyle.matchCellRangeLeft,
50116
+ matchCellRangeBottom = _getMatchBorderStyle.matchCellRangeBottom,
50117
+ matchCellRangeRight = _getMatchBorderStyle.matchCellRangeRight;
50118
+
50119
+ var isSingleCell = isCellRangeSingleCell(cellRanges);
50120
+ var className = classnames__WEBPACK_IMPORTED_MODULE_13___default()((_cx = {}, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableCellRangeSingleCell, isSingleCell), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableCellRangeSelected, !isSingleCell), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableCellRangeTop, !isSingleCell && matchCellRangeTop), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableCellRangeLeft, !isSingleCell && matchCellRangeLeft), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableCellRangeBottom, !isSingleCell && matchCellRangeBottom), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(_cx, _base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableCellRangeRight, !isSingleCell && matchCellRangeRight), _cx));
50121
+ return className;
50122
+ }
50123
+
50124
+ function getMatchBorderStyle(cellRanges, _ref3) {
50125
+ var isFooterCell = _ref3.isFooterCell,
50126
+ rowIndex = _ref3.rowIndex,
50127
+ col = _ref3.col,
50128
+ record = _ref3.record;
50129
+ return cellRanges.reduce(function (obj, cellRange) {
50130
+ if (!isCellInRange(cellRange, rowIndex, col, isFooterCell)) return obj;
50131
+ var startRow = cellRange.startRow,
50132
+ endRow = cellRange.endRow,
50133
+ columns = cellRange.columns,
50134
+ footerRowRange = cellRange.footerRowRange;
50135
+
50136
+ var _getRowIndex3 = getRowIndex(startRow, endRow),
50137
+ startRowIndex = _getRowIndex3.startRowIndex,
50138
+ endRowIndex = _getRowIndex3.endRowIndex;
50139
+
50140
+ var _getFooterRowIndex3 = getFooterRowIndex(footerRowRange),
50141
+ footerStartRowIndex = _getFooterRowIndex3.startRowIndex,
50142
+ footerEndRowIndex = _getFooterRowIndex3.endRowIndex;
50143
+
50144
+ var startCol = columns[0];
50145
+ var endCol = columns[columns.length - 1];
50146
+ var matchCellRangeTop = isFooterCell ? startRowIndex !== -1 ? false : rowIndex === footerStartRowIndex : rowIndex === startRowIndex;
50147
+ var matchCellRangeLeft = col.code === startCol.code;
50148
+ var matchCellRangeBottom = isFooterCell ? rowIndex === footerEndRowIndex : footerRowRange ? false : rowIndex === endRowIndex;
50149
+ var matchCellRangeRight = col.code === endCol.code; // 如果样式已经匹配上了,就不需要再取计算的样式
50150
+
50151
+ obj.matchCellRangeTop = obj.matchCellRangeTop || matchCellRangeTop;
50152
+ obj.matchCellRangeLeft = obj.matchCellRangeLeft || matchCellRangeLeft;
50153
+ obj.matchCellRangeBottom = obj.matchCellRangeBottom || matchCellRangeBottom;
50154
+ obj.matchCellRangeRight = obj.matchCellRangeRight || matchCellRangeRight;
50155
+ return obj;
50156
+ }, {
50157
+ matchCellRangeTop: false,
50158
+ matchCellRangeLeft: false,
50159
+ matchCellRangeBottom: false,
50160
+ matchCellRangeRight: false
50161
+ });
50162
+ }
49854
50163
 
49855
50164
  /***/ }),
49856
50165