@kdcloudjs/kdesign 1.3.4 → 1.3.7

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 (54) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/kdesign-complete.less +19 -6
  3. package/dist/kdesign.css +38 -5
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +3505 -1836
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +2 -2
  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 +29 -25
  12. package/es/anchor/anchor.js +20 -1
  13. package/es/base-data/style/index.css +1 -0
  14. package/es/base-data/style/index.less +1 -0
  15. package/es/button/style/index.css +36 -0
  16. package/es/button/style/index.less +14 -2
  17. package/es/checkbox/checkbox.js +7 -3
  18. package/es/form/Field.js +7 -6
  19. package/es/form/Form.d.ts +1 -0
  20. package/es/form/Form.js +3 -1
  21. package/es/form/interface.d.ts +1 -0
  22. package/es/menu/menu.js +12 -11
  23. package/es/menu/subMenu.js +58 -57
  24. package/es/radio/radio.js +7 -3
  25. package/es/select/select.js +24 -18
  26. package/es/style/core/reset.less +4 -4
  27. package/es/style/index.css +0 -4
  28. package/es/table/feature/useRangeSelection.d.ts +3 -0
  29. package/es/table/feature/useRangeSelection.js +10 -0
  30. package/es/table/interface.d.ts +15 -2
  31. package/es/table/table.js +14 -7
  32. package/lib/_utils/usePopper.d.ts +1 -0
  33. package/lib/_utils/usePopper.js +29 -25
  34. package/lib/anchor/anchor.js +20 -1
  35. package/lib/base-data/style/index.css +1 -0
  36. package/lib/base-data/style/index.less +1 -0
  37. package/lib/button/style/index.css +36 -0
  38. package/lib/button/style/index.less +14 -2
  39. package/lib/checkbox/checkbox.js +7 -3
  40. package/lib/form/Field.js +7 -6
  41. package/lib/form/Form.d.ts +1 -0
  42. package/lib/form/Form.js +3 -1
  43. package/lib/form/interface.d.ts +1 -0
  44. package/lib/menu/menu.js +12 -11
  45. package/lib/menu/subMenu.js +58 -57
  46. package/lib/radio/radio.js +7 -3
  47. package/lib/select/select.js +24 -18
  48. package/lib/style/core/reset.less +4 -4
  49. package/lib/style/index.css +0 -4
  50. package/lib/table/feature/useRangeSelection.d.ts +3 -0
  51. package/lib/table/feature/useRangeSelection.js +21 -0
  52. package/lib/table/interface.d.ts +15 -2
  53. package/lib/table/table.js +15 -7
  54. package/package.json +2 -2
package/lib/menu/menu.js CHANGED
@@ -108,31 +108,32 @@ var Menu = function Menu(props) {
108
108
  openKeys = _React$useState4[0],
109
109
  setOpenKeys = _React$useState4[1];
110
110
 
111
+ if (mode === 'inline') {
112
+ restProps.triggerSubMenuAction = 'click';
113
+ }
114
+
115
+ (0, _react.useEffect)(function () {
116
+ setOpenKeys([]);
117
+ setSelectedKey('');
118
+ openSubMenuSet.clear();
119
+ }, [mode]);
111
120
  (0, _react.useEffect)(function () {
112
121
  if (userSelectedKey !== undefined) {
113
122
  setSelectedKey(userSelectedKey);
114
123
  }
115
124
  }, [userSelectedKey]);
116
125
  (0, _react.useEffect)(function () {
117
- if (userOpenKeys !== undefined) {
126
+ if (userOpenKeys !== undefined && Array.isArray(userOpenKeys)) {
118
127
  setOpenKeys(userOpenKeys);
119
- }
120
- }, [userOpenKeys]);
121
- (0, _react.useEffect)(function () {
122
- if (Array.isArray(userOpenKeys)) {
128
+ openSubMenuSet.clear();
123
129
  userOpenKeys.forEach(function (d) {
124
130
  openSubMenuSet.add(d);
125
131
  });
126
132
  }
127
- }, []); // triggerSubMenuAction内嵌模式固定为click,即该值设置只对垂直模式有效
128
-
129
- if (mode === 'inline') {
130
- restProps.triggerSubMenuAction = 'click';
131
- } // React.useEffect(() => {
133
+ }, [userOpenKeys]); // React.useEffect(() => {
132
134
  // setCollapsed(restProps.collapsed)
133
135
  // }, [restProps.collapsed])
134
136
 
135
-
136
137
  var handleOnClick = function handleOnClick(info) {
137
138
  if (userSelectedKey === undefined) {
138
139
  setSelectedKey(info.key);
@@ -55,7 +55,7 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
55
55
  };
56
56
 
57
57
  var SubMenu = function SubMenu(props) {
58
- var _classNames3, _classNames4, _context5;
58
+ var _classNames2, _classNames3, _context4;
59
59
 
60
60
  var _React$useContext = _react.default.useContext(_configProvider.ConfigContext),
61
61
  getPrefixCls = _React$useContext.getPrefixCls,
@@ -83,8 +83,9 @@ var SubMenu = function SubMenu(props) {
83
83
  handleOnOpenChange = _a.handleOnOpenChange,
84
84
  _a$paddingLeft = _a.paddingLeft,
85
85
  paddingLeft = _a$paddingLeft === void 0 ? 0 : _a$paddingLeft,
86
- restProps = __rest(_a, ["prefixCls", "theme", "mode", "title", "icon", "disabled", "children", "collapsed", "keyValue", "selectedKey", "openKeys", "triggerSubMenuAction", "forceSubMenuRender", "inlineIndent", "className", "style", "handleOnOpenChange", "paddingLeft"]); // 初始化level
86
+ restProps = __rest(_a, ["prefixCls", "theme", "mode", "title", "icon", "disabled", "children", "collapsed", "keyValue", "selectedKey", "openKeys", "triggerSubMenuAction", "forceSubMenuRender", "inlineIndent", "className", "style", "handleOnOpenChange", "paddingLeft"]);
87
87
 
88
+ var isVertical = mode === 'vertical'; // 初始化level
88
89
 
89
90
  if (!restProps.level) {
90
91
  restProps.level = 1;
@@ -110,7 +111,7 @@ var SubMenu = function SubMenu(props) {
110
111
  var visible = Array.isArray(openKeys) && (0, _includes.default)(openKeys).call(openKeys, keyValue);
111
112
 
112
113
  _react.default.useEffect(function () {
113
- if (!visible) return;
114
+ if (!visible || isVertical) return;
114
115
  var subMenuWrapperEle = subMenuWrapperRef.current;
115
116
  var subMenuEle = subMenuRef.current;
116
117
 
@@ -216,11 +217,10 @@ var SubMenu = function SubMenu(props) {
216
217
  if (!(0, _includes.default)(className).call(className, _menuItem.MENU_ITEM_CONTAINER_NAME)) {
217
218
  closeSubMenu();
218
219
  }
219
- }); // 缩略模式自动关闭子菜单
220
-
221
- if (triggerSubMenuAction === 'click' && mode === 'vertical' && collapsed) {
222
- closeSubMenu();
223
- }
220
+ }); // // 缩略模式自动关闭子菜单
221
+ // if (triggerSubMenuAction === 'click' && mode === 'vertical' && collapsed) {
222
+ // closeSubMenu()
223
+ // }
224
224
 
225
225
  var handleMouseEvent = function handleMouseEvent(status) {
226
226
  if (disabled || triggerSubMenuAction === 'click') return;
@@ -241,7 +241,7 @@ var SubMenu = function SubMenu(props) {
241
241
  // 保存路径
242
242
  info.keyPath = (0, _concat.default)(_context = info.keyPath).call(_context, [keyValue]);
243
243
 
244
- if (triggerSubMenuAction === 'click' && mode === 'vertical') {
244
+ if (triggerSubMenuAction === 'click' && isVertical) {
245
245
  closeSubMenu();
246
246
  }
247
247
 
@@ -314,53 +314,12 @@ var SubMenu = function SubMenu(props) {
314
314
  var titleStyle = {
315
315
  paddingRight: "".concat(curPaddingRight, "px"),
316
316
  paddingLeft: "".concat(curPaddingLeft, "px")
317
- };
318
-
319
- if (mode !== 'vertical') {
320
- var _classNames2, _context4;
321
-
322
- return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
323
- ref: subMenuRef,
324
- className: (0, _classnames.default)(prefixCls, className, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-collapsed"), collapsed), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-hover"), !disabled && visible), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-active"), Array.isArray(openKeys) && (0, _includes.default)(openKeys).call(openKeys, keyValue)), _classNames2)),
325
- key: keyValue
326
- }, mouseEvent, {
327
- style: style
328
- }), /*#__PURE__*/_react.default.createElement("div", {
329
- className: (0, _classnames.default)("".concat(prefixCls, "-title")),
330
- style: titleStyle
331
- }, icon && /*#__PURE__*/_react.default.cloneElement((0, _util.renderReactNodeFunction)(icon), {
332
- className: (0, _classnames.default)("".concat(prefixCls, "-icon"))
333
- }), renderItemTitle(), renderItemArrow()), /*#__PURE__*/_react.default.createElement("div", {
334
- style: getCurrentStyle(),
335
- ref: subMenuWrapperRef
336
- }, /*#__PURE__*/_react.default.createElement("ul", {
337
- className: (0, _classnames.default)("".concat(prefixCls, "-sub"), restProps.popupClassName)
338
- }, (0, _map.default)(_context4 = (0, _reactChildren.toArray)(children)).call(_context4, function (item, index) {
339
- var key = item.key || index;
340
- return /*#__PURE__*/_react.default.cloneElement(item, {
341
- key: key,
342
- level: restProps.level + 1,
343
- keyValue: key,
344
- collapsed: collapsed,
345
- mode: mode,
346
- selectedKey: selectedKey,
347
- openKeys: openKeys,
348
- forceSubMenuRender: forceSubMenuRender,
349
- triggerSubMenuAction: triggerSubMenuAction,
350
- handleOnOpenChange: handleOnOpenChange,
351
- handleOnClick: handleOnClick,
352
- inlineIndent: inlineIndent,
353
- paddingLeft: curPaddingLeft
354
- });
355
- }))));
356
- } // eslint-disable-next-line react-hooks/rules-of-hooks
317
+ }; // eslint-disable-next-line react-hooks/rules-of-hooks
357
318
 
358
-
359
- return (0, _usePopper.default)( /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
360
- className: (0, _classnames.default)(prefixCls, className, (_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, "light", theme === 'light'), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-collapsed"), collapsed), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-hover"), !disabled && visible), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-active"), Array.isArray(openKeys) && (0, _includes.default)(openKeys).call(openKeys, keyValue)), _classNames3)),
319
+ var verticalView = (0, _usePopper.default)( /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
320
+ className: (0, _classnames.default)(prefixCls, className, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, "light", theme === 'light'), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-collapsed"), collapsed), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-hover"), !disabled && visible), (0, _defineProperty2.default)(_classNames2, "".concat(prefixCls, "-active"), Array.isArray(openKeys) && (0, _includes.default)(openKeys).call(openKeys, keyValue)), _classNames2)),
361
321
  ref: subMenuVerticalRef,
362
- key: keyValue,
363
- style: style
322
+ key: keyValue
364
323
  }, {
365
324
  onMouseLeave: handleOnMouseLeave,
366
325
  onMouseEnter: handleOnMouseEnter,
@@ -379,8 +338,8 @@ var SubMenu = function SubMenu(props) {
379
338
  handleOnMouseEnter();
380
339
  }
381
340
  }, /*#__PURE__*/_react.default.createElement("ul", {
382
- className: (0, _classnames.default)("".concat(prefixCls, "-sub"), restProps.popupClassName, (_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-sub-second"), restProps.level === 1), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-sub-third"), restProps.level === 2), _classNames4))
383
- }, (0, _map.default)(_context5 = (0, _reactChildren.toArray)(children)).call(_context5, function (item, index) {
341
+ className: (0, _classnames.default)("".concat(prefixCls, "-sub"), restProps.popupClassName, (_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-sub-second"), restProps.level === 1), (0, _defineProperty2.default)(_classNames3, "".concat(prefixCls, "-sub-third"), restProps.level === 2), _classNames3))
342
+ }, (0, _map.default)(_context4 = (0, _reactChildren.toArray)(children)).call(_context4, function (item, index) {
384
343
  var key = item.key || index;
385
344
  return /*#__PURE__*/_react.default.cloneElement(item, {
386
345
  key: key,
@@ -402,10 +361,52 @@ var SubMenu = function SubMenu(props) {
402
361
  arrow: false,
403
362
  placement: 'rightTop',
404
363
  gap: 0,
405
- visible: visible,
364
+ visible: isVertical ? visible : false,
365
+ disabled: isVertical ? undefined : true,
406
366
  prefixCls: 'kd-menu-popper',
407
367
  popperClassName: theme === 'light' ? 'light' : ''
408
368
  });
369
+
370
+ if (isVertical) {
371
+ return verticalView;
372
+ } else {
373
+ var _classNames4, _context5;
374
+
375
+ return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
376
+ ref: subMenuRef,
377
+ className: (0, _classnames.default)(prefixCls, className, (_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-collapsed"), collapsed), (0, _defineProperty2.default)(_classNames4, "".concat(prefixCls, "-disabled"), disabled), _classNames4)),
378
+ key: keyValue
379
+ }, mouseEvent, {
380
+ style: style
381
+ }), /*#__PURE__*/_react.default.createElement("div", {
382
+ className: (0, _classnames.default)("".concat(prefixCls, "-title")),
383
+ style: titleStyle
384
+ }, icon && /*#__PURE__*/_react.default.cloneElement((0, _util.renderReactNodeFunction)(icon), {
385
+ className: (0, _classnames.default)("".concat(prefixCls, "-icon"))
386
+ }), renderItemTitle(), renderItemArrow()), /*#__PURE__*/_react.default.createElement("div", {
387
+ style: getCurrentStyle(),
388
+ ref: subMenuWrapperRef
389
+ }, /*#__PURE__*/_react.default.createElement("ul", {
390
+ className: (0, _classnames.default)("".concat(prefixCls, "-sub"), restProps.popupClassName)
391
+ }, (0, _map.default)(_context5 = (0, _reactChildren.toArray)(children)).call(_context5, function (item, index) {
392
+ var key = item.key || index;
393
+ return /*#__PURE__*/_react.default.cloneElement(item, {
394
+ key: key,
395
+ level: restProps.level + 1,
396
+ keyValue: key,
397
+ collapsed: collapsed,
398
+ mode: mode,
399
+ selectedKey: selectedKey,
400
+ openKeys: openKeys,
401
+ forceSubMenuRender: forceSubMenuRender,
402
+ triggerSubMenuAction: triggerSubMenuAction,
403
+ handleOnOpenChange: handleOnOpenChange,
404
+ handleOnClick: handleOnClick,
405
+ inlineIndent: inlineIndent,
406
+ paddingLeft: curPaddingLeft
407
+ });
408
+ }))));
409
+ }
409
410
  };
410
411
 
411
412
  SubMenu.displayName = 'SubMenu';
@@ -113,6 +113,8 @@ var InternalRadio = function InternalRadio(props, ref) {
113
113
  var classString = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(radioPrefixCls), true), (0, _defineProperty2.default)(_classNames, "".concat(radioPrefixCls, "-disabled"), radioProps.disabled), (0, _defineProperty2.default)(_classNames, "".concat(radioPrefixCls, "-checked"), context ? radioProps.checked : isChecked), _classNames), className); // 单选包裹元素class名称
114
114
 
115
115
  (0, _react.useEffect)(function () {
116
+ var _a;
117
+
116
118
  var handleRepeatClick = function handleRepeatClick(e) {
117
119
  var element = e.target;
118
120
 
@@ -122,10 +124,12 @@ var InternalRadio = function InternalRadio(props, ref) {
122
124
  };
123
125
 
124
126
  var radioRef = mergedRef;
125
- radioRef.current.addEventListener('click', handleRepeatClick);
127
+ (_a = radioRef === null || radioRef === void 0 ? void 0 : radioRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('click', handleRepeatClick);
126
128
  return function () {
127
- // eslint-disable-next-line react-hooks/exhaustive-deps
128
- radioRef.current.removeEventListener('click', handleRepeatClick);
129
+ var _a; // eslint-disable-next-line react-hooks/exhaustive-deps
130
+
131
+
132
+ (_a = radioRef === null || radioRef === void 0 ? void 0 : radioRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', handleRepeatClick);
129
133
  };
130
134
  }, []);
131
135
  return (
@@ -103,7 +103,6 @@ var InternalSelect = function InternalSelect(props, ref) {
103
103
  setInitValue = _useMergedState2[1];
104
104
 
105
105
  var realChildren = Array.isArray(options) ? options : (0, _reactChildren.toArray)(children); // options配置项和默认children
106
- // console.log('real', realChildren)
107
106
 
108
107
  var innerRef = _react.default.useRef();
109
108
 
@@ -288,6 +287,7 @@ var InternalSelect = function InternalSelect(props, ref) {
288
287
  return (child === null || child === void 0 ? void 0 : child.value) === key;
289
288
  }
290
289
  })) || {};
290
+ var optionsObj = obj.props ? obj.props : obj || {};
291
291
 
292
292
  if (value !== undefined) {
293
293
  // onChange && onChange(labelInValue ? { value: key, label } : key)
@@ -304,13 +304,13 @@ var InternalSelect = function InternalSelect(props, ref) {
304
304
  (0, _splice.default)(optsArr).call(optsArr, idx, 1);
305
305
  } else {
306
306
  valArr.push(key);
307
- optsArr.push({
307
+ optsArr.push((0, _extends2.default)((0, _extends2.default)({}, optionsObj), {
308
308
  value: key,
309
309
  label: obj.props ? (_a = obj.props) === null || _a === void 0 ? void 0 : _a.children : obj.label || key
310
- });
310
+ }));
311
311
  }
312
312
 
313
- onChange && onChange(labelInValue ? optsArr : valArr);
313
+ onChange && onChange(labelInValue ? optsArr : valArr, optsArr);
314
314
 
315
315
  if (!isSelected) {
316
316
  onDeselect && onDeselect(key); // 下拉项取消选中时调用,参数为选中项的value,多选模式下生效
@@ -320,7 +320,10 @@ var InternalSelect = function InternalSelect(props, ref) {
320
320
  onChange && onChange(labelInValue ? {
321
321
  value: key,
322
322
  label: label
323
- } : key);
323
+ } : key, (0, _extends2.default)((0, _extends2.default)({}, optionsObj), {
324
+ value: key,
325
+ label: label
326
+ }));
324
327
  }
325
328
 
326
329
  onSelect && onSelect(key);
@@ -336,7 +339,10 @@ var InternalSelect = function InternalSelect(props, ref) {
336
339
  onChange && onChange(labelInValue ? {
337
340
  value: key,
338
341
  label: label
339
- } : key);
342
+ } : key, (0, _extends2.default)((0, _extends2.default)({}, optionsObj), {
343
+ value: key,
344
+ label: label
345
+ }));
340
346
  } else {
341
347
  var _multipleRef$current2 = multipleRef.current,
342
348
  _selectedVal = _multipleRef$current2.selectedVal,
@@ -350,15 +356,15 @@ var InternalSelect = function InternalSelect(props, ref) {
350
356
  } else {
351
357
  _selectedVal.push(key);
352
358
 
353
- _selectMulOpts.push({
359
+ _selectMulOpts.push((0, _extends2.default)((0, _extends2.default)({}, optionsObj), {
354
360
  value: key,
355
361
  label: obj.props ? (_c = obj.props) === null || _c === void 0 ? void 0 : _c.children : obj.label || key
356
- });
362
+ }));
357
363
  } // setInitValue([...selectedVal])
358
364
 
359
365
 
360
366
  setMulOptions((0, _toConsumableArray2.default)(_selectMulOpts));
361
- onChange && onChange(labelInValue ? _selectMulOpts : _selectedVal);
367
+ onChange && onChange(labelInValue ? _selectMulOpts : _selectedVal, _selectMulOpts);
362
368
 
363
369
  if (!isSelected) {
364
370
  onDeselect && onDeselect(key); // 下拉项取消选中时调用,参数为选中项的value,多选模式下生效
@@ -379,9 +385,9 @@ var InternalSelect = function InternalSelect(props, ref) {
379
385
 
380
386
  if ((realChildren === null || realChildren === void 0 ? void 0 : realChildren.length) !== selectedVal.length) {
381
387
  (0, _map.default)(realChildren).call(realChildren, function (child) {
382
- var _child$props = child.props,
383
- value = _child$props.value,
384
- children = _child$props.children;
388
+ var _ref = child.props || child,
389
+ value = _ref.value,
390
+ children = _ref.children;
385
391
 
386
392
  if (!(0, _includes.default)(selectedVal).call(selectedVal, value)) {
387
393
  selectedVal.push(value);
@@ -393,12 +399,12 @@ var InternalSelect = function InternalSelect(props, ref) {
393
399
  });
394
400
  setMulOptions((0, _toConsumableArray2.default)(selectMulOpts));
395
401
  } else {
396
- multipleRef.current.selectedVal = [];
397
- multipleRef.current.selectMulOpts = [];
402
+ multipleRef.current.selectedVal = selectedVal = [];
403
+ multipleRef.current.selectMulOpts = selectMulOpts = [];
398
404
  setMulOptions([]);
399
405
  }
400
406
 
401
- onChange && onChange(labelInValue ? selectMulOpts : selectedVal);
407
+ onChange && onChange(labelInValue ? selectMulOpts : selectedVal, selectMulOpts);
402
408
  }; // 筛选内容 ---可以优化,抽成hook
403
409
 
404
410
 
@@ -456,7 +462,7 @@ var InternalSelect = function InternalSelect(props, ref) {
456
462
  (0, _splice.default)(selectedVal).call(selectedVal, idx, 1);
457
463
  (0, _splice.default)(selectMulOpts).call(selectMulOpts, idx, 1);
458
464
  setMulOptions((0, _toConsumableArray2.default)(selectMulOpts));
459
- onChange && onChange(labelInValue ? selectMulOpts : selectedVal);
465
+ onChange && onChange(labelInValue ? selectMulOpts : selectedVal, selectMulOpts);
460
466
  e.stopPropagation();
461
467
  }; // 渲染后缀图标
462
468
 
@@ -686,8 +692,8 @@ var InternalSelect = function InternalSelect(props, ref) {
686
692
  var _a;
687
693
 
688
694
  if (selectRef === null || selectRef === void 0 ? void 0 : selectRef.current) {
689
- var _ref = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(),
690
- width = _ref.width;
695
+ var _ref2 = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(),
696
+ width = _ref2.width;
691
697
 
692
698
  return {
693
699
  width: (dropdownStyle === null || dropdownStyle === void 0 ? void 0 : dropdownStyle.width) || (width > 75 ? width : 75),
@@ -194,10 +194,10 @@ template {
194
194
  /**
195
195
  * Reset scrollbar style
196
196
  */
197
- ::-webkit-scrollbar {
198
- width: 10px !important;
199
- height: 10px !important;
200
- }
197
+ // ::-webkit-scrollbar {
198
+ // width: 10px !important;
199
+ // height: 10px !important;
200
+ // }
201
201
 
202
202
  ::-webkit-scrollbar-button {
203
203
  width: 0;
@@ -1779,10 +1779,6 @@ template {
1779
1779
  /**
1780
1780
  * Reset scrollbar style
1781
1781
  */
1782
- ::-webkit-scrollbar {
1783
- width: 10px !important;
1784
- height: 10px !important;
1785
- }
1786
1782
  ::-webkit-scrollbar-button {
1787
1783
  width: 0;
1788
1784
  height: 0;
@@ -0,0 +1,3 @@
1
+ import { TableRangeSelection, TablePipeline } from '../interface';
2
+ declare function useRangeSelection(pipeline: TablePipeline, rangeSelection?: TableRangeSelection): void;
3
+ export default useRangeSelection;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
+
12
+ var _table = require("@kdcloudjs/table");
13
+
14
+ function useRangeSelection(pipeline, rangeSelection) {
15
+ if (rangeSelection) {
16
+ pipeline.use(_table.features.rangeSelection((0, _extends2.default)({}, rangeSelection)));
17
+ }
18
+ }
19
+
20
+ var _default = useRangeSelection;
21
+ exports.default = _default;
@@ -1,6 +1,16 @@
1
+ /// <reference types="react" />
1
2
  import { TableProps as BaseTableProps, TablePipeline as TP, ArtColumnStaticPart } from '@kdcloudjs/table';
2
- import { SortFeatureOptions, RowDetailFeatureOptions, FilterFeatureOptions, TreeModeFeatureOptions, ColumnDragOptions, ColumnResizeOptions, ContextMenuFeatureOptions } from '@kdcloudjs/table/es/table/pipeline/features';
3
- export interface TableProps extends BaseTableProps {
3
+ import { SortFeatureOptions, RowDetailFeatureOptions, FilterFeatureOptions, TreeModeFeatureOptions, ColumnDragOptions, ColumnResizeOptions, ContextMenuFeatureOptions, RangeSelectionFeatureOptions } from '@kdcloudjs/table/es/table/pipeline/features';
4
+ declare type TablePropsOfComponents = Pick<BaseTableProps, 'components'> & {
5
+ components?: {
6
+ /** 复选框 */
7
+ Checkbox?: React.ComponentType;
8
+ /** 单选框 */
9
+ Radio?: React.ComponentType;
10
+ };
11
+ };
12
+ declare type TablePropsOfExtend = Omit<BaseTableProps, 'components'>;
13
+ export interface TableProps extends TablePropsOfExtend, TablePropsOfComponents {
4
14
  rowSelection?: TableRowSelection;
5
15
  prefixCls?: string;
6
16
  rowDetail?: TableRowDetail;
@@ -11,6 +21,7 @@ export interface TableProps extends BaseTableProps {
11
21
  columnDrag?: boolean | ColumnDragOptions;
12
22
  columnResize?: boolean | ColumnResizeOptions;
13
23
  contextMenu?: IContextMenu;
24
+ rangeSelection?: TableRangeSelection;
14
25
  }
15
26
  export declare type RowSelectionType = 'checkbox' | 'radio';
16
27
  export declare type RowSelectionFixed = 'start' | 'end';
@@ -32,3 +43,5 @@ export declare type TableSort = SortFeatureOptions;
32
43
  export declare type TableTreeMode = TreeModeFeatureOptions;
33
44
  export declare type TablePipeline = TP;
34
45
  export declare type IContextMenu = boolean | ContextMenuFeatureOptions;
46
+ export declare type TableRangeSelection = RangeSelectionFeatureOptions;
47
+ export {};
@@ -51,6 +51,8 @@ var _columnDrag = _interopRequireDefault(require("./feature/columnDrag"));
51
51
 
52
52
  var _contextMenu = _interopRequireDefault(require("./feature/contextMenu"));
53
53
 
54
+ var _useRangeSelection = _interopRequireDefault(require("./feature/useRangeSelection"));
55
+
54
56
  var _devwarning = _interopRequireDefault(require("../_utils/devwarning"));
55
57
 
56
58
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -84,6 +86,7 @@ function Table(props) {
84
86
  getRowProps = props.getRowProps,
85
87
  getTableProps = props.getTableProps,
86
88
  contextMenu = props.contextMenu,
89
+ rangeSelection = props.rangeSelection,
87
90
  cssVariables = props.cssVariables;
88
91
 
89
92
  var _useContext = (0, _react.useContext)(_ConfigContext.default),
@@ -94,19 +97,24 @@ function Table(props) {
94
97
  var tableCls = (0, _classnames.default)(tablePrefixCls, className);
95
98
  var pipeline = (0, _table.useTablePipeline)({
96
99
  components: {
97
- Checkbox: _index.default,
98
- Radio: _index2.default
100
+ Checkbox: (components === null || components === void 0 ? void 0 : components.Checkbox) || _index.default,
101
+ Radio: (components === null || components === void 0 ? void 0 : components.Radio) || _index2.default
99
102
  }
100
103
  }).primaryKey(primaryKey === undefined ? '' : primaryKey).input({
101
104
  columns: columns,
102
105
  dataSource: dataSource
103
106
  });
107
+
108
+ if (footerDataSource) {
109
+ pipeline.footerDataSource(footerDataSource);
110
+ }
104
111
  /* -------------------------------------------------------------------------- */
105
112
 
106
113
  /* features */
107
114
 
108
115
  /* -------------------------------------------------------------------------- */
109
116
 
117
+
110
118
  (0, _rowSelection.default)(pipeline, rowSelection);
111
119
  (0, _rowDetail.default)(pipeline, rowDetail);
112
120
  (0, _filter2.default)(pipeline, filter);
@@ -116,6 +124,7 @@ function Table(props) {
116
124
  (0, _columnResize.default)(pipeline, columnResize);
117
125
  (0, _columnDrag.default)(pipeline, columnDrag);
118
126
  (0, _contextMenu.default)(pipeline, contextMenu);
127
+ (0, _useRangeSelection.default)(pipeline, rangeSelection);
119
128
  /* -------------------------------------------------------------------------- */
120
129
 
121
130
  /* after useTablePipeline, merge pipeline.getProps result */
@@ -139,18 +148,17 @@ function Table(props) {
139
148
  className: tableCls,
140
149
  style: style,
141
150
  isLoading: isLoading,
142
- components: (0, _extends2.default)({
143
- LoadingIcon: function LoadingIcon() {
151
+ components: {
152
+ LoadingIcon: (components === null || components === void 0 ? void 0 : components.LoadingIcon) || function () {
144
153
  return /*#__PURE__*/_react.default.createElement(_index3.Spin, {
145
154
  type: "container"
146
155
  });
147
156
  },
148
- EmptyContent: function EmptyContent() {
157
+ EmptyContent: (components === null || components === void 0 ? void 0 : components.EmptyContent) || function () {
149
158
  return /*#__PURE__*/_react.default.createElement(_index3.Empty, null);
150
159
  }
151
- }, components),
160
+ },
152
161
  useVirtual: useVirtual,
153
- footerDataSource: footerDataSource,
154
162
  estimatedRowHeight: estimatedRowHeight,
155
163
  emptyCellHeight: emptyCellHeight,
156
164
  hasHeader: hasHeader,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/kdesign",
3
- "version": "1.3.4",
3
+ "version": "1.3.7",
4
4
  "description": "KDesign 金蝶前端react 组件库",
5
5
  "title": "kdesign",
6
6
  "keywords": [
@@ -76,7 +76,7 @@
76
76
  "@babel/runtime": "^7.10.4",
77
77
  "@babel/runtime-corejs3": "^7.11.2",
78
78
  "@babel/standalone": "^7.14.3",
79
- "@kdcloudjs/table": "1.0.0",
79
+ "@kdcloudjs/table": "^1.1.1",
80
80
  "@popperjs/core": "^2.5.4",
81
81
  "async-validator": "^3.5.1",
82
82
  "axios": "^0.21.1",