@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.
- package/CHANGELOG.md +33 -0
- package/dist/kdesign-complete.less +19 -6
- package/dist/kdesign.css +38 -5
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +3505 -1836
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +2 -2
- package/dist/kdesign.min.js +8 -8
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/usePopper.d.ts +1 -0
- package/es/_utils/usePopper.js +29 -25
- package/es/anchor/anchor.js +20 -1
- package/es/base-data/style/index.css +1 -0
- package/es/base-data/style/index.less +1 -0
- package/es/button/style/index.css +36 -0
- package/es/button/style/index.less +14 -2
- package/es/checkbox/checkbox.js +7 -3
- package/es/form/Field.js +7 -6
- package/es/form/Form.d.ts +1 -0
- package/es/form/Form.js +3 -1
- package/es/form/interface.d.ts +1 -0
- package/es/menu/menu.js +12 -11
- package/es/menu/subMenu.js +58 -57
- package/es/radio/radio.js +7 -3
- package/es/select/select.js +24 -18
- package/es/style/core/reset.less +4 -4
- package/es/style/index.css +0 -4
- package/es/table/feature/useRangeSelection.d.ts +3 -0
- package/es/table/feature/useRangeSelection.js +10 -0
- package/es/table/interface.d.ts +15 -2
- package/es/table/table.js +14 -7
- package/lib/_utils/usePopper.d.ts +1 -0
- package/lib/_utils/usePopper.js +29 -25
- package/lib/anchor/anchor.js +20 -1
- package/lib/base-data/style/index.css +1 -0
- package/lib/base-data/style/index.less +1 -0
- package/lib/button/style/index.css +36 -0
- package/lib/button/style/index.less +14 -2
- package/lib/checkbox/checkbox.js +7 -3
- package/lib/form/Field.js +7 -6
- package/lib/form/Form.d.ts +1 -0
- package/lib/form/Form.js +3 -1
- package/lib/form/interface.d.ts +1 -0
- package/lib/menu/menu.js +12 -11
- package/lib/menu/subMenu.js +58 -57
- package/lib/radio/radio.js +7 -3
- package/lib/select/select.js +24 -18
- package/lib/style/core/reset.less +4 -4
- package/lib/style/index.css +0 -4
- package/lib/table/feature/useRangeSelection.d.ts +3 -0
- package/lib/table/feature/useRangeSelection.js +21 -0
- package/lib/table/interface.d.ts +15 -2
- package/lib/table/table.js +15 -7
- 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
|
-
}, []); //
|
|
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);
|
package/lib/menu/subMenu.js
CHANGED
|
@@ -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
|
|
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"]);
|
|
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
|
-
|
|
222
|
-
|
|
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' &&
|
|
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
|
-
|
|
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, (
|
|
383
|
-
}, (0, _map.default)(
|
|
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';
|
package/lib/radio/radio.js
CHANGED
|
@@ -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
|
-
|
|
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 (
|
package/lib/select/select.js
CHANGED
|
@@ -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
|
|
383
|
-
value =
|
|
384
|
-
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
|
|
690
|
-
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
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
197
|
+
// ::-webkit-scrollbar {
|
|
198
|
+
// width: 10px !important;
|
|
199
|
+
// height: 10px !important;
|
|
200
|
+
// }
|
|
201
201
|
|
|
202
202
|
::-webkit-scrollbar-button {
|
|
203
203
|
width: 0;
|
package/lib/style/index.css
CHANGED
|
@@ -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;
|
package/lib/table/interface.d.ts
CHANGED
|
@@ -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
|
-
|
|
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 {};
|
package/lib/table/table.js
CHANGED
|
@@ -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:
|
|
143
|
-
LoadingIcon: function
|
|
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
|
|
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
|
-
},
|
|
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.
|
|
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.
|
|
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",
|