@hi-ui/hiui 3.9.0-rc → 3.9.0-rc.12
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 +3 -1
- package/es/carousel/index.js +1 -1
- package/es/date-picker/BasePicker.js +20 -5
- package/es/date-picker/components/Input.js +10 -6
- package/es/date-picker/utils.js +11 -2
- package/es/form/Form.js +7 -3
- package/es/form/Item.js +12 -2
- package/es/form/utils.js +11 -2
- package/es/input/Input.js +12 -2
- package/es/popper/Overlay.js +3 -1
- package/es/search/index.js +1 -0
- package/es/select/Select.js +10 -11
- package/es/select-tree/SelectTreeHook.js +24 -4
- package/es/select-tree/components/tree/TreeNode.js +10 -2
- package/es/select-tree/components/tree/index.js +3 -1
- package/es/table/AdvanceHeader/CustomFilter.js +2 -2
- package/es/table/AdvanceHeader/select/index.js +6 -4
- package/es/table/BodyTable.js +3 -2
- package/es/table/Cell.js +13 -4
- package/es/table/HeaderTable.js +15 -14
- package/es/table/Row.js +19 -11
- package/es/table/Table.js +19 -9
- package/es/table/index.d.ts +19 -7
- package/es/table/style/index.css +1 -1
- package/es/table/style/{Table.css → table.css} +0 -0
- package/es/table/util.js +10 -2
- package/es/tree/Tree.js +4 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
# 3.8.0-rc
|
|
4
4
|
|
|
5
5
|
- 新增 `Table` 组件 `hiddenColKeys` 和 `onHiddenColKeysChange` 受控控制列显隐 [#1994](https://github.com/XiaoMi/hiui/issues/1994)
|
|
6
|
-
- 新增 `Input`
|
|
6
|
+
- 新增 `Input` 组件支持 placeholder 受控动态更新 [#1982](https://github.com/XiaoMi/hiui/issues/1982)
|
|
7
|
+
- 新增 `Table` 组件支持 checkAll 复选框右侧自定义操作按钮 [#2007](https://github.com/XiaoMi/hiui/issues/2007)
|
|
7
8
|
- 修复 `Select` 组件高亮词搜索存在正则注入 [#1972](https://github.com/XiaoMi/hiui/issues/1972)
|
|
8
9
|
- 修复 `Table` 组件 resizable 调节列宽功能失效 [#1970](https://github.com/XiaoMi/hiui/issues/1970)
|
|
9
10
|
- 修复 `Input` 组件的 placeholder 没法动态更新 [#1970](https://github.com/XiaoMi/hiui/issues/1982)
|
|
10
11
|
- 优化 `Dropdown` 组件 props 中的 data 消除副作用 [#1991](https://github.com/XiaoMi/hiui/issues/1991)
|
|
11
12
|
- 修复 `TimePicker` 组件使用 minusStep 当点击 clear 后会再次自动回显值 [#1986](https://github.com/XiaoMi/hiui/issues/1986)
|
|
12
13
|
- 修复 `Table` 组件 window 系统 `draggable=false` 禁用失效 [#1993](https://github.com/XiaoMi/hiui/issues/1993)
|
|
14
|
+
- 修复 `Popper` 组件 Popper DOM 节点位置移动时未同步进行位置计算 [#2011](https://github.com/XiaoMi/hiui/issues/2011)
|
|
13
15
|
|
|
14
16
|
# 3.8.0
|
|
15
17
|
|
package/es/carousel/index.js
CHANGED
|
@@ -212,7 +212,7 @@ var Carousel = /*#__PURE__*/function (_Component) {
|
|
|
212
212
|
});
|
|
213
213
|
})), showPages && /*#__PURE__*/_react["default"].createElement("div", {
|
|
214
214
|
className: "hi-carousel__pages"
|
|
215
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, active, " / ", len)));
|
|
215
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, active + 1, " / ", len)));
|
|
216
216
|
}
|
|
217
217
|
}]);
|
|
218
218
|
return Carousel;
|
|
@@ -177,6 +177,8 @@ var BasePicker = function BasePicker(_ref) {
|
|
|
177
177
|
}
|
|
178
178
|
};
|
|
179
179
|
|
|
180
|
+
var _weekOffset = weekOffset !== undefined ? weekOffset : locale === 'en-US' ? 0 : 1;
|
|
181
|
+
|
|
180
182
|
var callback = function callback(dates) {
|
|
181
183
|
var emitOnChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
182
184
|
|
|
@@ -185,12 +187,28 @@ var BasePicker = function BasePicker(_ref) {
|
|
|
185
187
|
var returnDate = {};
|
|
186
188
|
var returnDateStr = '';
|
|
187
189
|
|
|
188
|
-
|
|
190
|
+
var formatWeek = function formatWeek(disposeDate) {
|
|
191
|
+
if (!disposeDate) return '';
|
|
192
|
+
if (typeof format !== 'undefined') return disposeDate.format(iFormat);
|
|
193
|
+
var clone = (0, _utils.normalizeWeekOffset)(disposeDate, _weekOffset);
|
|
194
|
+
return clone.weekYear() + '-W' + clone.week();
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
if (type.includes('week')) {
|
|
198
|
+
returnDate = {
|
|
199
|
+
start: _dates[0].toDate(),
|
|
200
|
+
end: _dates[1].toDate()
|
|
201
|
+
};
|
|
202
|
+
returnDateStr = type.includes('range') ? {
|
|
203
|
+
start: formatWeek(_dates[0]),
|
|
204
|
+
end: formatWeek(_dates[1])
|
|
205
|
+
} : formatWeek(_dates[0]);
|
|
206
|
+
} else if (type.includes('range') || type === 'timeperiod') {
|
|
189
207
|
returnDate = {
|
|
190
208
|
start: _dates[0].toDate(),
|
|
191
209
|
end: _dates[1].toDate()
|
|
192
210
|
};
|
|
193
|
-
returnDateStr =
|
|
211
|
+
returnDateStr = {
|
|
194
212
|
start: _dates[0].format(iFormat),
|
|
195
213
|
end: _dates[1].format(iFormat)
|
|
196
214
|
};
|
|
@@ -258,9 +276,6 @@ var BasePicker = function BasePicker(_ref) {
|
|
|
258
276
|
}
|
|
259
277
|
}, [propsOnSelect]);
|
|
260
278
|
var popperCls = (0, _classnames["default"])('hi-datepicker__popper', type === 'date' && showTime && 'hi-datepicker__popper--time', type.includes('range') && 'hi-datepicker__popper--range', type === 'timeperiod' && 'hi-datepicker__popper--timeperiod', shortcuts && 'hi-datepicker__popper--shortcuts', isLarge && 'hi-datepicker__popper--large');
|
|
261
|
-
|
|
262
|
-
var _weekOffset = weekOffset !== undefined ? weekOffset : locale === 'en-US' ? 0 : 1;
|
|
263
|
-
|
|
264
279
|
return /*#__PURE__*/_react["default"].createElement(_context["default"].Provider, {
|
|
265
280
|
value: _objectSpread(_objectSpread({}, otherPorps), {}, {
|
|
266
281
|
locale: locale,
|
|
@@ -19,6 +19,8 @@ var _context = _interopRequireDefault(require("../context"));
|
|
|
19
19
|
|
|
20
20
|
var _hooks = require("../hooks");
|
|
21
21
|
|
|
22
|
+
var _utils = require("../utils");
|
|
23
|
+
|
|
22
24
|
var Input = function Input(_ref) {
|
|
23
25
|
var date = _ref.date,
|
|
24
26
|
onChange = _ref.onChange,
|
|
@@ -35,6 +37,7 @@ var Input = function Input(_ref) {
|
|
|
35
37
|
minuteStep = _useContext.minuteStep,
|
|
36
38
|
secondStep = _useContext.secondStep,
|
|
37
39
|
inputReadOnly = _useContext.inputReadOnly,
|
|
40
|
+
weekOffset = _useContext.weekOffset,
|
|
38
41
|
locale = _useContext.locale;
|
|
39
42
|
|
|
40
43
|
var _useFormat = (0, _hooks.useFormat)({
|
|
@@ -57,14 +60,15 @@ var Input = function Input(_ref) {
|
|
|
57
60
|
var vals = date && (0, _moment["default"])(date).format(iFormat);
|
|
58
61
|
|
|
59
62
|
if (type.includes('week') && date) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
if (typeof format === 'undefined') {
|
|
64
|
+
var clone = (0, _utils.normalizeWeekOffset)(date, weekOffset);
|
|
65
|
+
vals = clone.weekYear() + '-W' + clone.week();
|
|
66
|
+
} else {
|
|
67
|
+
var y = (0, _moment["default"])(date).weekYear();
|
|
63
68
|
|
|
64
|
-
|
|
69
|
+
var _date = (0, _moment["default"])(date).year(y);
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
vals = y + '-W' + (0, _moment["default"])(_date).week();
|
|
71
|
+
vals = (0, _moment["default"])(_date).format(iFormat);
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
|
package/es/date-picker/utils.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.parseValue = exports.getInRangeDate = exports.getFullTime = exports.getPRCDate = exports.showLargeCalendar = exports.getTimePeriodData = exports.parseRenderDates = exports.genNewDates = exports.getView = exports.deconstructDate = void 0;
|
|
8
|
+
exports.normalizeWeekOffset = exports.parseValue = exports.getInRangeDate = exports.getFullTime = exports.getPRCDate = exports.showLargeCalendar = exports.getTimePeriodData = exports.parseRenderDates = exports.genNewDates = exports.getView = exports.deconstructDate = void 0;
|
|
9
9
|
|
|
10
10
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
11
|
|
|
@@ -342,6 +342,15 @@ var parseValue = function parseValue(value, type, format, weekOffset) {
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
return [isValid ? _value : null];
|
|
345
|
+
}; // fix: 周计算 52 53 周偏差
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
exports.parseValue = parseValue;
|
|
349
|
+
|
|
350
|
+
var normalizeWeekOffset = function normalizeWeekOffset(date, weekOffset) {
|
|
351
|
+
var clone = date.clone();
|
|
352
|
+
clone.locale(weekOffset === 1 ? 'zh-CN' : 'en-US');
|
|
353
|
+
return clone;
|
|
345
354
|
};
|
|
346
355
|
|
|
347
|
-
exports.
|
|
356
|
+
exports.normalizeWeekOffset = normalizeWeekOffset;
|
package/es/form/Form.js
CHANGED
|
@@ -164,11 +164,15 @@ var InternalForm = function InternalForm(props) {
|
|
|
164
164
|
|
|
165
165
|
Object.keys(changeValues).forEach(function (changeValuesKey) {
|
|
166
166
|
fields.forEach(function (filedItem) {
|
|
167
|
-
var
|
|
167
|
+
var field = filedItem.field,
|
|
168
|
+
realField = filedItem.realField,
|
|
168
169
|
_type = filedItem._type,
|
|
169
|
-
listname = filedItem.listname;
|
|
170
|
+
listname = filedItem.listname; // bugfix: https://github.com/XiaoMi/hiui/issues/2077
|
|
170
171
|
|
|
171
|
-
if (
|
|
172
|
+
if (_type === 'SchemaForm' && field === changeValuesKey) {
|
|
173
|
+
_changeValues[realField] = _transformValues[realField];
|
|
174
|
+
delete _changeValues[changeValuesKey];
|
|
175
|
+
} else if (realField === changeValuesKey && _type === 'list') {
|
|
172
176
|
_changeValues[listname] = _transformValues[listname];
|
|
173
177
|
delete _changeValues[changeValuesKey];
|
|
174
178
|
}
|
package/es/form/Item.js
CHANGED
|
@@ -407,7 +407,16 @@ var FormItem = function FormItem(props) {
|
|
|
407
407
|
}
|
|
408
408
|
|
|
409
409
|
if (_field && !isExist) {
|
|
410
|
-
|
|
410
|
+
// 初始化值
|
|
411
|
+
if (initialValues) {
|
|
412
|
+
// TODO: 如果 field 是数组,无法完成嵌套对象初始化值,感觉这块实现没想清楚,暂时维护现状,对用户不建议使用数组模式
|
|
413
|
+
// 这里逻辑判断 field,但是最终操作的是 _field,暂时不调整,暂不清楚是否存在破坏性更新
|
|
414
|
+
if (typeof initialValues[field] !== 'undefined') {
|
|
415
|
+
_value = initialValues[_field];
|
|
416
|
+
} else if (_type === 'SchemaForm' && typeof initialValues[realField] !== 'undefined') {
|
|
417
|
+
_value = initialValues[realField];
|
|
418
|
+
}
|
|
419
|
+
}
|
|
411
420
|
|
|
412
421
|
if (_type === 'list' && listItemValue) {
|
|
413
422
|
_value = Object.keys(listItemValue).includes(name) ? listItemValue[name] : listItemValue;
|
|
@@ -494,6 +503,7 @@ var FormItem = function FormItem(props) {
|
|
|
494
503
|
var _labelWidth = labelWidth();
|
|
495
504
|
|
|
496
505
|
var contentWidth = formProps.labelPlacement === 'top' ? '100%' : "calc(100% - ".concat(_labelWidth, "px)");
|
|
506
|
+
var alignItems = getItemPosition(contentPosition);
|
|
497
507
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
498
508
|
className: (0, _classnames["default"])('hi-form-item', className, obj),
|
|
499
509
|
style: style,
|
|
@@ -519,7 +529,7 @@ var FormItem = function FormItem(props) {
|
|
|
519
529
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
520
530
|
className: 'hi-form-item' + '__children',
|
|
521
531
|
style: {
|
|
522
|
-
alignItems:
|
|
532
|
+
alignItems: alignItems
|
|
523
533
|
}
|
|
524
534
|
}, renderChildren()), /*#__PURE__*/_react["default"].createElement("div", {
|
|
525
535
|
className: (0, _classnames["default"])('hi-form-item--msg__error', {
|
package/es/form/utils.js
CHANGED
|
@@ -33,6 +33,7 @@ var transformValues = function transformValues(allvalue, fields) {
|
|
|
33
33
|
|
|
34
34
|
sortfields.forEach(function (filedItem) {
|
|
35
35
|
var realField = filedItem.realField,
|
|
36
|
+
field = filedItem.field,
|
|
36
37
|
propsField = filedItem.propsField,
|
|
37
38
|
_type = filedItem._type,
|
|
38
39
|
listname = filedItem.listname;
|
|
@@ -57,13 +58,21 @@ var transformValues = function transformValues(allvalue, fields) {
|
|
|
57
58
|
tranformValues[listname] = [allvalue[realField]];
|
|
58
59
|
}
|
|
59
60
|
} else {
|
|
61
|
+
var readField = realField; // bugfix: https://github.com/XiaoMi/hiui/issues/2077
|
|
62
|
+
|
|
63
|
+
if (_type === 'SchemaForm' && field) {
|
|
64
|
+
if (Object.keys(allvalue).includes(field)) {
|
|
65
|
+
readField = field;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
60
69
|
if (Array.isArray(propsField)) {
|
|
61
70
|
var chainKeys = propsField.reduceRight(function (pre, next) {
|
|
62
71
|
return (0, _defineProperty2["default"])({}, next, pre);
|
|
63
|
-
}, allvalue[
|
|
72
|
+
}, allvalue[readField]);
|
|
64
73
|
tranformValues = _lodash["default"].merge(tranformValues, chainKeys);
|
|
65
74
|
} else {
|
|
66
|
-
tranformValues = _lodash["default"].merge(tranformValues, (0, _defineProperty2["default"])({}, realField, allvalue[
|
|
75
|
+
tranformValues = _lodash["default"].merge(tranformValues, (0, _defineProperty2["default"])({}, realField, allvalue[readField]));
|
|
67
76
|
}
|
|
68
77
|
}
|
|
69
78
|
});
|
package/es/input/Input.js
CHANGED
|
@@ -11,6 +11,8 @@ exports["default"] = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
14
16
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
17
|
|
|
16
18
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -31,6 +33,10 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
31
33
|
|
|
32
34
|
var _util = require("./util");
|
|
33
35
|
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
37
|
+
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
39
|
+
|
|
34
40
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
41
|
|
|
36
42
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -202,8 +208,11 @@ var Input = /*#__PURE__*/function (_Component) {
|
|
|
202
208
|
|
|
203
209
|
value = (0, _util.format)(value, type); // 保证 onChange 拿到的是值是最新的 formatted value
|
|
204
210
|
|
|
205
|
-
|
|
206
|
-
|
|
211
|
+
var event = Object.create(e);
|
|
212
|
+
event.target = _objectSpread(_objectSpread({}, e.target), {}, {
|
|
213
|
+
value: value
|
|
214
|
+
});
|
|
215
|
+
_this2.props.onChange && _this2.props.onChange(event, valueTrue);
|
|
207
216
|
_this2.props.value === undefined && _this2.setState({
|
|
208
217
|
value: value,
|
|
209
218
|
valueTrue: valueTrue
|
|
@@ -302,6 +311,7 @@ var Input = /*#__PURE__*/function (_Component) {
|
|
|
302
311
|
attrs = (0, _objectWithoutProperties2["default"])(_this$attrs2, ["defaultValue"]);
|
|
303
312
|
var filterAttrs = (0, _util.filterObjProps)(attrs, ['locale', 'theme', 'suffixicon', 'suffix', 'prepend', 'prefixicon', 'prefix', 'localeDatas', 'append', 'innerRef', 'clearable']);
|
|
304
313
|
return /*#__PURE__*/_react["default"].createElement("textarea", (0, _extends2["default"])({
|
|
314
|
+
ref: this._Input,
|
|
305
315
|
className: "hi-input theme__".concat(theme, " ").concat(active ? 'active' : '', " ").concat(disabled ? 'disabled' : '', " ").concat(className || ''),
|
|
306
316
|
style: this.props.style,
|
|
307
317
|
autoComplete: "off",
|
package/es/popper/Overlay.js
CHANGED
|
@@ -151,6 +151,8 @@ var Overlay = function Overlay(props) {
|
|
|
151
151
|
}
|
|
152
152
|
});
|
|
153
153
|
(0, _react.useEffect)(function () {
|
|
154
|
+
if (!show) return;
|
|
155
|
+
|
|
154
156
|
if (state.popperRef) {
|
|
155
157
|
var _offset = (0, _positionUtils.getOffset)(props, state);
|
|
156
158
|
|
|
@@ -158,7 +160,7 @@ var Overlay = function Overlay(props) {
|
|
|
158
160
|
offset: _offset
|
|
159
161
|
}));
|
|
160
162
|
}
|
|
161
|
-
}, [state.popperRef]); // DidMount
|
|
163
|
+
}, [show, state.popperRef]); // DidMount
|
|
162
164
|
|
|
163
165
|
(0, _react.useEffect)(function () {
|
|
164
166
|
var container = props.container;
|
package/es/search/index.js
CHANGED
|
@@ -73,6 +73,7 @@ var Search = function Search(_ref) {
|
|
|
73
73
|
var optionsClick = (0, _react.useCallback)(function (value, item) {
|
|
74
74
|
setInputVal(value);
|
|
75
75
|
setDropdownShow(false);
|
|
76
|
+
_onChange && _onChange(value);
|
|
76
77
|
onSearch && onSearch(value, item);
|
|
77
78
|
}, [onSearch]);
|
|
78
79
|
var moveFocus = (0, _react.useCallback)(function (direction) {
|
package/es/select/Select.js
CHANGED
|
@@ -422,30 +422,29 @@ var InternalSelect = function InternalSelect(props) {
|
|
|
422
422
|
return shouldMatch || String(item[(0, _utils.transKeys)(fieldNames, 'id')] || '').includes(keyword) || String(item[(0, _utils.transKeys)(fieldNames, 'title')] || '').includes(keyword);
|
|
423
423
|
}, [dataSource, searchable, keyword, filterOption]);
|
|
424
424
|
var remoteSearch = (0, _react.useCallback)(function (keyword) {
|
|
425
|
-
var
|
|
425
|
+
var resultMayBePromise = typeof dataSource === 'function' ? dataSource(keyword) : dataSource;
|
|
426
|
+
if ((0, _lodash.isNil)(resultMayBePromise)) return;
|
|
426
427
|
|
|
427
|
-
if (Array.isArray(
|
|
428
|
-
setDropdownItems(
|
|
428
|
+
if (Array.isArray(resultMayBePromise)) {
|
|
429
|
+
setDropdownItems(resultMayBePromise);
|
|
429
430
|
return;
|
|
430
|
-
}
|
|
431
|
-
|
|
431
|
+
}
|
|
432
432
|
|
|
433
|
-
if (
|
|
433
|
+
if (resultMayBePromise.toString() === '[object Promise]') {
|
|
434
434
|
setLoading(true);
|
|
435
|
-
|
|
436
|
-
_dataSource.then(function (res) {
|
|
435
|
+
resultMayBePromise.then(function (res) {
|
|
437
436
|
setLoading(false);
|
|
437
|
+
if ((0, _lodash.isNil)(res)) return;
|
|
438
438
|
setDropdownItems(Array.isArray(res) ? res : []);
|
|
439
439
|
}, function () {
|
|
440
440
|
setLoading(false);
|
|
441
441
|
setDropdownItems([]);
|
|
442
442
|
});
|
|
443
|
-
|
|
444
443
|
return;
|
|
445
|
-
} // 调用接口
|
|
444
|
+
} // 传入对象, 调用接口
|
|
446
445
|
|
|
447
446
|
|
|
448
|
-
HiRequestSearch(
|
|
447
|
+
HiRequestSearch(resultMayBePromise, keyword);
|
|
449
448
|
}, [dataSource, keyword]);
|
|
450
449
|
var HiRequestSearch = (0, _react.useCallback)(function (_dataSource, keyword) {
|
|
451
450
|
var url = _dataSource.url,
|
|
@@ -85,7 +85,14 @@ var SelectTree = function SelectTree(_ref) {
|
|
|
85
85
|
_ref$bordered = _ref.bordered,
|
|
86
86
|
bordered = _ref$bordered === void 0 ? true : _ref$bordered,
|
|
87
87
|
_ref$fieldNames = _ref.fieldNames,
|
|
88
|
-
fieldNames = _ref$fieldNames === void 0 ? {} : _ref$fieldNames
|
|
88
|
+
fieldNames = _ref$fieldNames === void 0 ? {} : _ref$fieldNames,
|
|
89
|
+
filterOption = _ref.filterOption;
|
|
90
|
+
var isCustomFilter = typeof filterOption === 'function';
|
|
91
|
+
|
|
92
|
+
if (isCustomFilter) {
|
|
93
|
+
searchMode = '';
|
|
94
|
+
}
|
|
95
|
+
|
|
89
96
|
(0, _util.setFieldNames)(fieldNames || {});
|
|
90
97
|
|
|
91
98
|
var _useState = (0, _react.useState)(false),
|
|
@@ -308,13 +315,13 @@ var SelectTree = function SelectTree(_ref) {
|
|
|
308
315
|
}, []); // 过滤方法
|
|
309
316
|
|
|
310
317
|
var searchTreeNode = function searchTreeNode(val) {
|
|
318
|
+
var _keyword = val;
|
|
311
319
|
var matchNodes = [];
|
|
312
320
|
|
|
313
321
|
var _data = _lodash["default"].cloneDeep(flattenData);
|
|
314
322
|
|
|
315
323
|
if (searchMode === 'highlight') {
|
|
316
324
|
var filterArr = _data.map(function (node) {
|
|
317
|
-
var _keyword = val;
|
|
318
325
|
_keyword = val.includes('[') ? _keyword.replace(/\[/gi, '\\[') : _keyword;
|
|
319
326
|
_keyword = val.includes('(') ? _keyword.replace(/\(/gi, '\\(') : _keyword;
|
|
320
327
|
_keyword = val.includes(')') ? _keyword.replace(/\)/gi, '\\)') : _keyword;
|
|
@@ -337,6 +344,18 @@ var SelectTree = function SelectTree(_ref) {
|
|
|
337
344
|
});
|
|
338
345
|
matchNodesSet = _lodash["default"].uniq(matchNodesSet);
|
|
339
346
|
setExpandIds(matchNodesSet);
|
|
347
|
+
} else if (searchMode === '' && isCustomFilter) {
|
|
348
|
+
// filterOption 模式展开全部
|
|
349
|
+
var _matchNodesSet = [];
|
|
350
|
+
|
|
351
|
+
_data.forEach(function (mn) {
|
|
352
|
+
_matchNodesSet.push(mn[(0, _util.transKeys)(fieldNames, 'id')]);
|
|
353
|
+
|
|
354
|
+
_matchNodesSet = _matchNodesSet.concat(mn.ancestors || []);
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
_matchNodesSet = _lodash["default"].uniq(_matchNodesSet);
|
|
358
|
+
setExpandIds(_matchNodesSet);
|
|
340
359
|
}
|
|
341
360
|
};
|
|
342
361
|
/**
|
|
@@ -543,7 +562,7 @@ var SelectTree = function SelectTree(_ref) {
|
|
|
543
562
|
|
|
544
563
|
var debouncedFilterItems = _lodash["default"].debounce(changeEvents, 300);
|
|
545
564
|
|
|
546
|
-
var searchable = searchMode === 'filter' || searchMode === 'highlight'; // 按键操作
|
|
565
|
+
var searchable = searchMode === 'filter' || searchMode === 'highlight' || isCustomFilter; // 按键操作
|
|
547
566
|
|
|
548
567
|
var handleKeyDown = (0, _react.useCallback)(function (evt) {
|
|
549
568
|
// space
|
|
@@ -741,7 +760,8 @@ var SelectTree = function SelectTree(_ref) {
|
|
|
741
760
|
onClick: selectedEvents,
|
|
742
761
|
emptyContent: emptyContent,
|
|
743
762
|
isRemoteLoadData: !!dataSource,
|
|
744
|
-
onCheck: checkedEvents
|
|
763
|
+
onCheck: checkedEvents,
|
|
764
|
+
filterOption: filterOption
|
|
745
765
|
})))));
|
|
746
766
|
};
|
|
747
767
|
|
|
@@ -67,7 +67,8 @@ var TreeNode = function TreeNode(_ref2) {
|
|
|
67
67
|
isRemoteLoadData = _useContext.isRemoteLoadData,
|
|
68
68
|
activeId = _useContext.activeId,
|
|
69
69
|
searchMode = _useContext.searchMode,
|
|
70
|
-
searchValue = _useContext.searchValue
|
|
70
|
+
searchValue = _useContext.searchValue,
|
|
71
|
+
filterOption = _useContext.filterOption;
|
|
71
72
|
|
|
72
73
|
var treeNodeRef = (0, _react.useRef)(null);
|
|
73
74
|
var renderIndent = (0, _react.useCallback)(function () {
|
|
@@ -131,7 +132,14 @@ var TreeNode = function TreeNode(_ref2) {
|
|
|
131
132
|
isLeaf = node.isLeaf;
|
|
132
133
|
var childrenNodes = (0, _util.getChildrenNodes)(node, flttenData);
|
|
133
134
|
var expand = expandIds.includes(node[(0, _util.transKeys)(fieldNames, 'id')]);
|
|
134
|
-
var needFilter =
|
|
135
|
+
var needFilter = true;
|
|
136
|
+
|
|
137
|
+
if (searchMode === 'filter') {
|
|
138
|
+
needFilter = !!(0, _util.matchAllDataFilterKey)(node, searchValue);
|
|
139
|
+
} else if (typeof filterOption === 'function') {
|
|
140
|
+
needFilter = filterOption(searchValue, node);
|
|
141
|
+
}
|
|
142
|
+
|
|
135
143
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
|
|
136
144
|
key: index
|
|
137
145
|
}, needFilter ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", {
|
|
@@ -39,6 +39,7 @@ var Tree = function Tree(_ref) {
|
|
|
39
39
|
emptyContent = _ref.emptyContent,
|
|
40
40
|
searchMode = _ref.searchMode,
|
|
41
41
|
searchValue = _ref.searchValue,
|
|
42
|
+
filterOption = _ref.filterOption,
|
|
42
43
|
fieldNames = _ref.fieldNames;
|
|
43
44
|
return /*#__PURE__*/_react["default"].createElement(_context["default"].Provider, {
|
|
44
45
|
value: {
|
|
@@ -57,7 +58,8 @@ var Tree = function Tree(_ref) {
|
|
|
57
58
|
isRemoteLoadData: isRemoteLoadData,
|
|
58
59
|
activeId: activeId,
|
|
59
60
|
searchMode: searchMode,
|
|
60
|
-
searchValue: searchValue
|
|
61
|
+
searchValue: searchValue,
|
|
62
|
+
filterOption: filterOption
|
|
61
63
|
}
|
|
62
64
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
63
65
|
className: "".concat(PREFIX)
|
|
@@ -47,9 +47,9 @@ var CustomFilter = function CustomFilter(_ref) {
|
|
|
47
47
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
48
48
|
className: "".concat(prefix, "-icon"),
|
|
49
49
|
ref: popperAttachEle,
|
|
50
|
-
onClick: function
|
|
50
|
+
onClick: filterDropdown ? function () {
|
|
51
51
|
return setFilterDropdownVisible(true);
|
|
52
|
-
}
|
|
52
|
+
} : undefined
|
|
53
53
|
}, filterIcon), /*#__PURE__*/_react["default"].createElement(_popper["default"] // 弹出层的显示隐藏
|
|
54
54
|
, {
|
|
55
55
|
show: filterDropdownVisible // 依附的元素
|
|
@@ -39,6 +39,8 @@ var _utils = require("../../../select/utils");
|
|
|
39
39
|
|
|
40
40
|
require("./style");
|
|
41
41
|
|
|
42
|
+
var _util = require("../../util");
|
|
43
|
+
|
|
42
44
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
43
45
|
|
|
44
46
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -106,7 +108,7 @@ var InternalSelect = function InternalSelect(props) {
|
|
|
106
108
|
setCacheSelectItem = _useState8[1]; // value 有可能是0的情况
|
|
107
109
|
|
|
108
110
|
|
|
109
|
-
var _useState9 = (0, _react.useState)((0, _utils.resetSelectedItems)(value === undefined ? defaultValue : value,
|
|
111
|
+
var _useState9 = (0, _react.useState)((0, _utils.resetSelectedItems)(value === undefined ? defaultValue : value, (0, _util.cloneArray)(data), (0, _utils.transKeys)(fieldNames, 'id'))),
|
|
110
112
|
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
111
113
|
selectedItems = _useState10[0],
|
|
112
114
|
setSelectedItems = _useState10[1];
|
|
@@ -145,7 +147,7 @@ var InternalSelect = function InternalSelect(props) {
|
|
|
145
147
|
resetFocusedIndex();
|
|
146
148
|
}, []);
|
|
147
149
|
(0, _react.useEffect)(function () {
|
|
148
|
-
historyData.current =
|
|
150
|
+
historyData.current = (0, _util.cloneArray)(data);
|
|
149
151
|
}, [data]);
|
|
150
152
|
(0, _react.useEffect)(function () {
|
|
151
153
|
if (dropdownItems && dropdownItems.length) {
|
|
@@ -174,7 +176,7 @@ var InternalSelect = function InternalSelect(props) {
|
|
|
174
176
|
}
|
|
175
177
|
}, [value, cacheSelectItem]);
|
|
176
178
|
(0, _react.useEffect)(function () {
|
|
177
|
-
var _data =
|
|
179
|
+
var _data = (0, _util.cloneArray)(data);
|
|
178
180
|
|
|
179
181
|
var selectedItems = (0, _utils.resetSelectedItems)(value === undefined ? defaultValue : value, historyData.current, (0, _utils.transKeys)(fieldNames, 'id')); // setSelectedItems(selectedItems)
|
|
180
182
|
|
|
@@ -213,7 +215,7 @@ var InternalSelect = function InternalSelect(props) {
|
|
|
213
215
|
var onClickOption = (0, _react.useCallback)(function (item, index) {
|
|
214
216
|
if (!item || item[(0, _utils.transKeys)(fieldNames, 'disabled')]) return;
|
|
215
217
|
|
|
216
|
-
var _selectedItems =
|
|
218
|
+
var _selectedItems = (0, _util.cloneArray)(selectedItems);
|
|
217
219
|
|
|
218
220
|
if (type === 'multiple') {
|
|
219
221
|
// 获取元素索引
|
package/es/table/BodyTable.js
CHANGED
|
@@ -32,6 +32,7 @@ var BodyTable = function BodyTable(_ref) {
|
|
|
32
32
|
emptyContent = _ref.emptyContent;
|
|
33
33
|
|
|
34
34
|
var _useContext = (0, _react.useContext)(_context["default"]),
|
|
35
|
+
checkboxColWidth = _useContext.checkboxColWidth,
|
|
35
36
|
bordered = _useContext.bordered,
|
|
36
37
|
_useContext$data = _useContext.data,
|
|
37
38
|
data = _useContext$data === void 0 ? [] : _useContext$data,
|
|
@@ -72,7 +73,7 @@ var BodyTable = function BodyTable(_ref) {
|
|
|
72
73
|
setDragRowKey = _useState4[1]; // **************** 获取colgroup
|
|
73
74
|
|
|
74
75
|
|
|
75
|
-
var _columns =
|
|
76
|
+
var _columns = (0, _util.cloneArray)(columns);
|
|
76
77
|
|
|
77
78
|
var depthArray = [];
|
|
78
79
|
(0, _util.setDepth)(_columns, 0, depthArray);
|
|
@@ -238,7 +239,7 @@ var BodyTable = function BodyTable(_ref) {
|
|
|
238
239
|
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
239
240
|
ref: tableRef
|
|
240
241
|
}, /*#__PURE__*/_react["default"].createElement("colgroup", null, columnsgroup.map(function (c, index) {
|
|
241
|
-
var width = c === 'checkbox' ?
|
|
242
|
+
var width = c === 'checkbox' ? checkboxColWidth : c.width;
|
|
242
243
|
return /*#__PURE__*/_react["default"].createElement("col", {
|
|
243
244
|
key: index,
|
|
244
245
|
className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, "".concat(prefix, "__col__hover--highlight"), showColHighlight && hoverColIndex === c.dataKey)),
|
package/es/table/Cell.js
CHANGED
|
@@ -55,7 +55,8 @@ var Cell = function Cell(_ref) {
|
|
|
55
55
|
loadChildren = _useContext.loadChildren,
|
|
56
56
|
hoverColIndex = _useContext.hoverColIndex,
|
|
57
57
|
setHoverColIndex = _useContext.setHoverColIndex,
|
|
58
|
-
showColHighlight = _useContext.showColHighlight
|
|
58
|
+
showColHighlight = _useContext.showColHighlight,
|
|
59
|
+
cellRender = _useContext.cellRender;
|
|
59
60
|
|
|
60
61
|
var _useState = (0, _react.useState)(false),
|
|
61
62
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -63,7 +64,14 @@ var Cell = function Cell(_ref) {
|
|
|
63
64
|
setLoading = _useState2[1]; // 处理自定义 render 或者合并单元格情况
|
|
64
65
|
|
|
65
66
|
|
|
66
|
-
var cellContent =
|
|
67
|
+
var cellContent = allRowData[column.dataKey];
|
|
68
|
+
|
|
69
|
+
if (column.render) {
|
|
70
|
+
cellContent = column.render(cellContent, allRowData, rowIndex, column.dataKey);
|
|
71
|
+
} else if (cellRender) {
|
|
72
|
+
cellContent = cellRender(cellContent);
|
|
73
|
+
}
|
|
74
|
+
|
|
67
75
|
var isMergeCell = cellContent && (0, _typeof2["default"])(cellContent) === 'object' && !cellContent.$$typeof;
|
|
68
76
|
|
|
69
77
|
if (isMergeCell && (cellContent.props.colSpan === 0 || cellContent.props.rowSpan === 0)) {
|
|
@@ -74,11 +82,12 @@ var Cell = function Cell(_ref) {
|
|
|
74
82
|
leftStickyWidth = column.leftStickyWidth,
|
|
75
83
|
dataKey = column.dataKey;
|
|
76
84
|
var isSticky = typeof rightStickyWidth !== 'undefined' || typeof leftStickyWidth !== 'undefined';
|
|
77
|
-
var
|
|
85
|
+
var defaultTextAlign = column.align ? column.align : 'left';
|
|
86
|
+
var textAlign = alignRightColumns.includes(dataKey) ? 'right' : defaultTextAlign;
|
|
78
87
|
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
79
88
|
key: dataKey,
|
|
80
89
|
style: {
|
|
81
|
-
textAlign:
|
|
90
|
+
textAlign: textAlign,
|
|
82
91
|
right: rightStickyWidth + 'px',
|
|
83
92
|
left: leftStickyWidth + 'px'
|
|
84
93
|
},
|
package/es/table/HeaderTable.js
CHANGED
|
@@ -19,8 +19,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _reactResizable = require("react-resizable");
|
|
21
21
|
|
|
22
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
23
|
-
|
|
24
22
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
25
23
|
|
|
26
24
|
var _context = _interopRequireDefault(require("./context"));
|
|
@@ -39,6 +37,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
39
37
|
var rightFixedIndex = _ref.rightFixedIndex;
|
|
40
38
|
|
|
41
39
|
var _useContext = (0, _react.useContext)(_context["default"]),
|
|
40
|
+
checkboxColWidth = _useContext.checkboxColWidth,
|
|
42
41
|
rowSelection = _useContext.rowSelection,
|
|
43
42
|
propsData = _useContext.data,
|
|
44
43
|
columns = _useContext.columns,
|
|
@@ -64,13 +63,13 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
64
63
|
sticky = _useContext.sticky,
|
|
65
64
|
disabledData = _useContext.disabledData;
|
|
66
65
|
|
|
67
|
-
var _useState = (0, _react.useState)(
|
|
66
|
+
var _useState = (0, _react.useState)((0, _util.cloneArray)(propsData)),
|
|
68
67
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
69
68
|
data = _useState2[0],
|
|
70
69
|
setDate = _useState2[1];
|
|
71
70
|
|
|
72
71
|
(0, _react.useEffect)(function () {
|
|
73
|
-
setDate(
|
|
72
|
+
setDate((0, _util.cloneArray)(propsData));
|
|
74
73
|
}, [propsData]);
|
|
75
74
|
|
|
76
75
|
var _useState3 = (0, _react.useState)(false),
|
|
@@ -116,7 +115,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
116
115
|
if (rowSelection) {
|
|
117
116
|
var _rowSelection$selecte = rowSelection.selectedRowKeys,
|
|
118
117
|
selectedRowKeys = _rowSelection$selecte === void 0 ? [] : _rowSelection$selecte;
|
|
119
|
-
var flattedData = (0, _util.flatTreeData)(
|
|
118
|
+
var flattedData = (0, _util.flatTreeData)((0, _util.cloneArray)(data));
|
|
120
119
|
|
|
121
120
|
var _isAllChecked = flattedData.filter(function (data) {
|
|
122
121
|
return !disabledData.current.includes(data.key);
|
|
@@ -129,7 +128,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
129
128
|
}, [data, rowSelection]); // 处理列的深度
|
|
130
129
|
|
|
131
130
|
(0, _react.useEffect)(function () {
|
|
132
|
-
var _columns =
|
|
131
|
+
var _columns = (0, _util.cloneArray)(columns);
|
|
133
132
|
|
|
134
133
|
var depthArray = [];
|
|
135
134
|
(0, _util.setDepth)(_columns, 0, depthArray);
|
|
@@ -189,7 +188,9 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
189
188
|
return col.sorter;
|
|
190
189
|
}).map(function (sorterCol) {
|
|
191
190
|
return sorterCol.dataKey;
|
|
192
|
-
}); //
|
|
191
|
+
}); // 自定义 checkboxAll 侧边 icon
|
|
192
|
+
|
|
193
|
+
var checkboxFilterIcon = rowSelection && rowSelection.checkAllOptions && rowSelection.checkAllOptions.filterIcon || null; // ******************** 行渲染 ***********************
|
|
193
194
|
|
|
194
195
|
var renderBaseRow = function renderBaseRow(cols, index, isSticky) {
|
|
195
196
|
var _colums = [rowSelection && index === 0 && 'checkbox', expandedRender && index === 0 && 'expandedButton'].concat(cols).filter(function (column) {
|
|
@@ -197,7 +198,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
197
198
|
});
|
|
198
199
|
|
|
199
200
|
var isStickyCol = _colums.some(function (item) {
|
|
200
|
-
return typeof item.leftStickyWidth !== 'undefined'
|
|
201
|
+
return typeof item.leftStickyWidth !== 'undefined';
|
|
201
202
|
});
|
|
202
203
|
|
|
203
204
|
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
@@ -214,7 +215,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
214
215
|
}),
|
|
215
216
|
style: {
|
|
216
217
|
boxSizing: 'border-box',
|
|
217
|
-
width:
|
|
218
|
+
width: checkboxColWidth,
|
|
218
219
|
height: 'auto',
|
|
219
220
|
backgroundColor: '#fbfbfb'
|
|
220
221
|
}
|
|
@@ -223,7 +224,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
223
224
|
indeterminate: !isAllChecked && rowSelection.selectedRowKeys.length > 0,
|
|
224
225
|
onChange: function onChange(e) {
|
|
225
226
|
if (rowSelection.onChange) {
|
|
226
|
-
var targetItems = (0, _util.flatTreeData)(
|
|
227
|
+
var targetItems = (0, _util.flatTreeData)((0, _util.cloneArray)(data)).filter(function (data) {
|
|
227
228
|
return !disabledData.current.includes(data.key);
|
|
228
229
|
});
|
|
229
230
|
var selectedIds = isAllChecked ? [] : targetItems.map(function (item) {
|
|
@@ -232,7 +233,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
232
233
|
rowSelection.onChange(selectedIds, targetItems, !isAllChecked);
|
|
233
234
|
}
|
|
234
235
|
}
|
|
235
|
-
}));
|
|
236
|
+
}), checkboxFilterIcon);
|
|
236
237
|
} else if (c === 'expandedButton') {
|
|
237
238
|
cell = /*#__PURE__*/_react["default"].createElement("th", {
|
|
238
239
|
key: "expandedButton",
|
|
@@ -261,7 +262,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
261
262
|
|
|
262
263
|
var isRowActive = highlightedColKeys.includes(dataKey) || highlightColumns.includes(dataKey);
|
|
263
264
|
var isColActive = showColHighlight && hoverColIndex === dataKey;
|
|
264
|
-
var
|
|
265
|
+
var textAlign = alignRightColumns.includes(dataKey) ? 'right' : align || 'left';
|
|
265
266
|
cell = /*#__PURE__*/_react["default"].createElement("th", (0, _extends2["default"])({
|
|
266
267
|
key: idx,
|
|
267
268
|
colSpan: colSpan,
|
|
@@ -274,7 +275,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
274
275
|
style: {
|
|
275
276
|
height: 'auto',
|
|
276
277
|
boxSizing: 'border-box',
|
|
277
|
-
textAlign:
|
|
278
|
+
textAlign: textAlign,
|
|
278
279
|
background: isRowActive || isColActive ? '#F4F4F4' : '#fbfbfb',
|
|
279
280
|
right: rightStickyWidth + 'px',
|
|
280
281
|
left: leftStickyWidth + 'px'
|
|
@@ -343,7 +344,7 @@ var HeaderTable = function HeaderTable(_ref) {
|
|
|
343
344
|
return /*#__PURE__*/_react["default"].createElement("col", {
|
|
344
345
|
key: index,
|
|
345
346
|
style: {
|
|
346
|
-
width: c === 'checkbox' ?
|
|
347
|
+
width: c === 'checkbox' ? checkboxColWidth : width,
|
|
347
348
|
minWidth: width
|
|
348
349
|
}
|
|
349
350
|
});
|
package/es/table/Row.js
CHANGED
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
12
14
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
15
|
|
|
14
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -23,8 +25,6 @@ var _context = _interopRequireDefault(require("./context"));
|
|
|
23
25
|
|
|
24
26
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
25
27
|
|
|
26
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
27
|
-
|
|
28
28
|
var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
29
29
|
|
|
30
30
|
var _loading = _interopRequireDefault(require("../loading"));
|
|
@@ -76,6 +76,7 @@ var Row = function Row(_ref) {
|
|
|
76
76
|
}, [propsExpanded]);
|
|
77
77
|
|
|
78
78
|
var _useContext = (0, _react.useContext)(_context["default"]),
|
|
79
|
+
checkboxColWidth = _useContext.checkboxColWidth,
|
|
79
80
|
errorRowKeys = _useContext.errorRowKeys,
|
|
80
81
|
rowSelection = _useContext.rowSelection,
|
|
81
82
|
highlightedRowKeys = _useContext.highlightedRowKeys,
|
|
@@ -89,9 +90,10 @@ var Row = function Row(_ref) {
|
|
|
89
90
|
disabledData = _useContext.disabledData,
|
|
90
91
|
draggable = _useContext.draggable,
|
|
91
92
|
onDragStart = _useContext.onDragStart,
|
|
92
|
-
dargInfo = _useContext.dargInfo
|
|
93
|
+
dargInfo = _useContext.dargInfo,
|
|
94
|
+
onRow = _useContext.onRow;
|
|
93
95
|
|
|
94
|
-
var _columns =
|
|
96
|
+
var _columns = (0, _util.cloneArray)(columns);
|
|
95
97
|
|
|
96
98
|
var depthArray = [];
|
|
97
99
|
(0, _util.setDepth)(_columns, 0, depthArray);
|
|
@@ -99,7 +101,7 @@ var Row = function Row(_ref) {
|
|
|
99
101
|
return col.isLast;
|
|
100
102
|
});
|
|
101
103
|
var isSticky = rowColumns.some(function (item) {
|
|
102
|
-
return typeof item.leftStickyWidth !== 'undefined'
|
|
104
|
+
return typeof item.leftStickyWidth !== 'undefined';
|
|
103
105
|
});
|
|
104
106
|
var checkboxConfig = rowSelection && rowSelection.getCheckboxConfig && rowSelection.getCheckboxConfig(allRowData);
|
|
105
107
|
var checkboxDisabled = checkboxConfig && checkboxConfig.disabled || false;
|
|
@@ -138,13 +140,15 @@ var Row = function Row(_ref) {
|
|
|
138
140
|
});
|
|
139
141
|
dragKey !== rowKey && setDropHightLineStatus(clienY < startClientY ? 'top' : 'bottom');
|
|
140
142
|
}, [rowKey, dropHightLineStatus, draggable]);
|
|
141
|
-
|
|
143
|
+
var rowProps = onRow();
|
|
144
|
+
return [/*#__PURE__*/_react["default"].createElement("tr", (0, _extends2["default"])({
|
|
142
145
|
style: isFixed && rowHeight ? {
|
|
143
146
|
height: rowHeight
|
|
144
147
|
} : {},
|
|
145
148
|
ref: innerRef,
|
|
146
149
|
id: rowKey,
|
|
147
|
-
draggable: draggable
|
|
150
|
+
draggable: draggable
|
|
151
|
+
}, rowProps, {
|
|
148
152
|
onMouseMove: function onMouseMove() {
|
|
149
153
|
setDragRowKey(null);
|
|
150
154
|
setDragStatus(false);
|
|
@@ -167,6 +171,10 @@ var Row = function Row(_ref) {
|
|
|
167
171
|
className: (0, _classnames["default"])("".concat(prefix, "__row"), (_classNames = {}, (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--error"), errorRowKeys.includes(rowData.key)), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--highlight"), hoverRow === rowData.key || highlightedRowKeys.includes(rowData.key)), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--total"), isSumRow), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--draggable"), draggable), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--draging"), draggable && dragRowKey === rowKey), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--draggable__border--top"), draggable && typeof dargInfo.current.dropKey !== 'undefined' && dropHightLineStatus === 'top'), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--draggable__border--bottom"), draggable && typeof dargInfo.current.dropKey !== 'undefined' && dropHightLineStatus === 'bottom'), (0, _defineProperty2["default"])(_classNames, "".concat(prefix, "__row--avg"), isAvgRow), _classNames)),
|
|
168
172
|
key: "row",
|
|
169
173
|
onDoubleClick: function onDoubleClick(e) {
|
|
174
|
+
if (rowProps && rowProps.onDoubleClick) {
|
|
175
|
+
rowProps.onDoubleClick(e);
|
|
176
|
+
}
|
|
177
|
+
|
|
170
178
|
if (highlightedRowKeys.includes(rowData.key)) {
|
|
171
179
|
setHighlightRows(highlightedRowKeys.filter(function (r) {
|
|
172
180
|
return r !== rowData.key;
|
|
@@ -175,9 +183,9 @@ var Row = function Row(_ref) {
|
|
|
175
183
|
setHighlightRows(highlightedRowKeys.concat(rowData.key));
|
|
176
184
|
}
|
|
177
185
|
}
|
|
178
|
-
}, rowSelection && isFixed !== 'right' && !isSumRow && !isAvgRow && /*#__PURE__*/_react["default"].createElement("td", {
|
|
186
|
+
}), rowSelection && isFixed !== 'right' && !isSumRow && !isAvgRow && /*#__PURE__*/_react["default"].createElement("td", {
|
|
179
187
|
style: {
|
|
180
|
-
width:
|
|
188
|
+
width: checkboxColWidth
|
|
181
189
|
},
|
|
182
190
|
className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, "".concat(prefix, "__col--sticky"), isSticky))
|
|
183
191
|
}, /*#__PURE__*/_react["default"].createElement(_checkbox["default"], {
|
|
@@ -241,12 +249,12 @@ var Row = function Row(_ref) {
|
|
|
241
249
|
key: "expanded-row",
|
|
242
250
|
className: "".concat(prefix, "--expanded"),
|
|
243
251
|
style: {
|
|
244
|
-
background: 'rgba(251,251,251,1)'
|
|
252
|
+
background: 'rgba(251, 251, 251, 1)'
|
|
245
253
|
}
|
|
246
254
|
}, rowSelection && /*#__PURE__*/_react["default"].createElement("td", null), /*#__PURE__*/_react["default"].createElement("td", {
|
|
247
255
|
colSpan: columns.length + 1,
|
|
248
256
|
style: {
|
|
249
|
-
color: '#
|
|
257
|
+
color: '#666'
|
|
250
258
|
}
|
|
251
259
|
}, /*#__PURE__*/_react["default"].createElement(_Expandcol["default"], {
|
|
252
260
|
rowData: rowData,
|
package/es/table/Table.js
CHANGED
|
@@ -35,8 +35,6 @@ var _pagination2 = _interopRequireDefault(require("../pagination"));
|
|
|
35
35
|
|
|
36
36
|
var _axios = _interopRequireDefault(require("axios"));
|
|
37
37
|
|
|
38
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
39
|
-
|
|
40
38
|
var _context2 = _interopRequireDefault(require("../context"));
|
|
41
39
|
|
|
42
40
|
var _loading = _interopRequireDefault(require("../loading"));
|
|
@@ -73,8 +71,12 @@ var Table = function Table(_ref) {
|
|
|
73
71
|
propsExpandRowKeys = _ref.expandedRowKeys,
|
|
74
72
|
expandRowKeys = _ref.expandRowKeys,
|
|
75
73
|
onExpand = _ref.onExpand,
|
|
74
|
+
_ref$fixedColumnTrigg = _ref.fixedColumnTrigger,
|
|
75
|
+
fixedColumnTrigger = _ref$fixedColumnTrigg === void 0 ? 'auto' : _ref$fixedColumnTrigg,
|
|
76
76
|
_ref$onHeaderRow = _ref.onHeaderRow,
|
|
77
77
|
onHeaderRow = _ref$onHeaderRow === void 0 ? defaultHeaderRow : _ref$onHeaderRow,
|
|
78
|
+
_ref$onRow = _ref.onRow,
|
|
79
|
+
onRow = _ref$onRow === void 0 ? defaultHeaderRow : _ref$onRow,
|
|
78
80
|
_ref$columns = _ref.columns,
|
|
79
81
|
propsColumns = _ref$columns === void 0 ? [] : _ref$columns,
|
|
80
82
|
expandedRender = _ref.expandedRender,
|
|
@@ -112,6 +114,7 @@ var Table = function Table(_ref) {
|
|
|
112
114
|
onDragStart = _ref.onDragStart,
|
|
113
115
|
onDrop = _ref.onDrop,
|
|
114
116
|
onDropEnd = _ref.onDropEnd,
|
|
117
|
+
cellRender = _ref.cellRender,
|
|
115
118
|
_ref$emptyContent = _ref.emptyContent,
|
|
116
119
|
emptyContent = _ref$emptyContent === void 0 ? localeDatas.table.emptyContent : _ref$emptyContent;
|
|
117
120
|
var dargInfo = (0, _react.useRef)({
|
|
@@ -142,9 +145,10 @@ var Table = function Table(_ref) {
|
|
|
142
145
|
var _dargInfo$current = dargInfo.current,
|
|
143
146
|
rowData = _dargInfo$current.rowData,
|
|
144
147
|
dropRowData = _dargInfo$current.dropRowData;
|
|
145
|
-
|
|
148
|
+
if (dropRowData.key === rowData.key) return;
|
|
149
|
+
var restData = (0, _util.deleteRowByKey)((0, _util.cloneArray)(data), dargInfo.current);
|
|
146
150
|
|
|
147
|
-
var _data = (0, _util.setRowByKey)(
|
|
151
|
+
var _data = (0, _util.setRowByKey)((0, _util.cloneArray)(restData), dargInfo.current);
|
|
148
152
|
|
|
149
153
|
dargInfo.current = {};
|
|
150
154
|
onDropEnd && onDropEnd(rowData, dropRowData, _data);
|
|
@@ -272,7 +276,7 @@ var Table = function Table(_ref) {
|
|
|
272
276
|
var firstRowRef = (0, _react.useRef)(null); // 处理拉平数据
|
|
273
277
|
|
|
274
278
|
(0, _react.useEffect)(function () {
|
|
275
|
-
var _columns =
|
|
279
|
+
var _columns = (0, _util.cloneArray)(dataSource ? serverTableConfig.columns || [] : propsColumns);
|
|
276
280
|
|
|
277
281
|
var _flattedColumns = (0, _util.flatTreeData)(_columns);
|
|
278
282
|
|
|
@@ -302,7 +306,7 @@ var Table = function Table(_ref) {
|
|
|
302
306
|
_columns[index] = currentItem;
|
|
303
307
|
}); // 右侧
|
|
304
308
|
|
|
305
|
-
var rightCloumns =
|
|
309
|
+
var rightCloumns = (0, _util.cloneArray)(_columns.slice(rightFixedIndex || _flattedColumns.length).reverse());
|
|
306
310
|
|
|
307
311
|
if (rightFixedIndex) {
|
|
308
312
|
rightCloumns.forEach(function (currentItem, index) {
|
|
@@ -445,9 +449,14 @@ var Table = function Table(_ref) {
|
|
|
445
449
|
} else {
|
|
446
450
|
onDropCallback && updateData();
|
|
447
451
|
}
|
|
448
|
-
}, [data, draggable]);
|
|
452
|
+
}, [data, draggable]); // 自定义设置 checkbox 列宽度
|
|
453
|
+
|
|
454
|
+
var checkboxColWidth = rowSelection && typeof rowSelection.checkboxColWidth === 'number' ? rowSelection.checkboxColWidth : 50;
|
|
455
|
+
var alwaysFixedColumn = fixedColumnTrigger === 'always';
|
|
449
456
|
return /*#__PURE__*/_react["default"].createElement(_context["default"].Provider, {
|
|
450
457
|
value: {
|
|
458
|
+
cellRender: cellRender,
|
|
459
|
+
checkboxColWidth: checkboxColWidth,
|
|
451
460
|
disabledData: disabledData,
|
|
452
461
|
rowExpandable: rowExpandable,
|
|
453
462
|
setting: setting,
|
|
@@ -467,6 +476,7 @@ var Table = function Table(_ref) {
|
|
|
467
476
|
expandedRowKeys: expandedRowKeys,
|
|
468
477
|
// 标题点击回调事件
|
|
469
478
|
onHeaderRow: onHeaderRow,
|
|
479
|
+
onRow: onRow,
|
|
470
480
|
onExpand: onExpand,
|
|
471
481
|
realColumnsWidth: realColumnsWidth,
|
|
472
482
|
setRealColumnsWidth: setRealColumnsWidth,
|
|
@@ -539,14 +549,14 @@ var Table = function Table(_ref) {
|
|
|
539
549
|
}, /*#__PURE__*/_react["default"].createElement(_HeaderTable["default"], null), /*#__PURE__*/_react["default"].createElement(_BodyTable["default"], {
|
|
540
550
|
fatherRef: hiTable,
|
|
541
551
|
emptyContent: emptyContent
|
|
542
|
-
}), scrollSize.scrollLeft > 0 && realLeftFixedColumns.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
552
|
+
}), (alwaysFixedColumn || scrollSize.scrollLeft > 0) && realLeftFixedColumns.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
543
553
|
className: "".concat(prefix, "__shadow-mask ").concat(prefix, "__shadow-left"),
|
|
544
554
|
style: {
|
|
545
555
|
width: fixedColumnsWidth.left + 'px'
|
|
546
556
|
}
|
|
547
557
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
548
558
|
className: "".concat(prefix, "__shadow-lock")
|
|
549
|
-
})), scrollSize.scrollRight > 0 && realRightFixedColumns.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
559
|
+
})), (alwaysFixedColumn || scrollSize.scrollRight > 0) && realRightFixedColumns.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
550
560
|
className: "".concat(prefix, "__shadow-mask ").concat(prefix, "__shadow-right"),
|
|
551
561
|
style: {
|
|
552
562
|
width: fixedColumnsWidth.right + 'px'
|
package/es/table/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export type TableColumnItem = {
|
|
|
18
18
|
filterDropdownWidth?: number
|
|
19
19
|
filterDropdownClassName?: string
|
|
20
20
|
onFilterDropdownVisibleChange?: (filterDropdownVisible: boolean, ColumnItem: ColumnItem) => void
|
|
21
|
-
render?: (text:
|
|
21
|
+
render?: (text: any, record: object, index: number, dataKey: string) => JSX.Element
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export type TableDataSource = {
|
|
@@ -38,10 +38,17 @@ export type TableFixedOption = {
|
|
|
38
38
|
left?: string
|
|
39
39
|
right?: string
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
export type TableCheckAllOptions = {
|
|
43
|
+
filterIcon?: React.ReactNode
|
|
44
|
+
}
|
|
45
|
+
|
|
41
46
|
export type TableRowSelection = {
|
|
42
|
-
selectedRowKeys?:
|
|
47
|
+
selectedRowKeys?: React.ReactText[]
|
|
43
48
|
getCheckboxConfig?: (rowData: object) => object
|
|
44
|
-
onChange?: (selectedRowKeys:
|
|
49
|
+
onChange?: (selectedRowKeys: React.ReactText[], targetRow?: object | object[], shouldChecked?: boolean) => void
|
|
50
|
+
checkboxColWidth?: number
|
|
51
|
+
checkAllOptions?: TableCheckAllOptions
|
|
45
52
|
}
|
|
46
53
|
|
|
47
54
|
export type TableHeaderRowReturn = {
|
|
@@ -54,6 +61,8 @@ export type TableHeaderRowReturn = {
|
|
|
54
61
|
|
|
55
62
|
export type HeaderRowFunc = (colums: TableColumnItem[], index: number) => TableHeaderRowReturn
|
|
56
63
|
|
|
64
|
+
export type RowFunc = () => TableHeaderRowReturn
|
|
65
|
+
|
|
57
66
|
export interface TableProps {
|
|
58
67
|
size?: 'small' | 'large' | 'default' | 'mini'
|
|
59
68
|
fieldKey?: string
|
|
@@ -63,8 +72,9 @@ export interface TableProps {
|
|
|
63
72
|
sticky?: boolean
|
|
64
73
|
draggable?: boolean
|
|
65
74
|
stickyTop?: number
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
fixedColumnTrigger?: 'auto' | 'always'
|
|
76
|
+
expandRowKeys?: React.ReactText[]
|
|
77
|
+
highlightedColKeys?: string[]
|
|
68
78
|
expandedRender?: (record: object, index: number) => JSX.Element | Promise
|
|
69
79
|
onLoadChildren?: (record: object) => object[] | Promise
|
|
70
80
|
onExpand?: (expanded: boolean, rowData: object) => void
|
|
@@ -73,8 +83,8 @@ export interface TableProps {
|
|
|
73
83
|
scrollWidth?: number
|
|
74
84
|
fixedToColumn?: string | TableFixedOption
|
|
75
85
|
pagination?: PaginationProps
|
|
76
|
-
errorRowKeys?:
|
|
77
|
-
highlightedRowKeys?:
|
|
86
|
+
errorRowKeys?: React.ReactText[]
|
|
87
|
+
highlightedRowKeys?: React.ReactText[]
|
|
78
88
|
rowSelection?: TableRowSelection
|
|
79
89
|
dataSource?: (current: number) => TableDataSource
|
|
80
90
|
showColMenu?: boolean
|
|
@@ -85,6 +95,7 @@ export interface TableProps {
|
|
|
85
95
|
standard?: boolean
|
|
86
96
|
emptyContent?: string | JSX.Element
|
|
87
97
|
onHeaderRow?: HeaderRowFunc
|
|
98
|
+
onRow?: RowFunc
|
|
88
99
|
columns: TableColumnItem[]
|
|
89
100
|
data: object[]
|
|
90
101
|
style?: React.CSSProperties
|
|
@@ -95,6 +106,7 @@ export interface TableProps {
|
|
|
95
106
|
onDropEnd?: (dragRowData: object, dropRowData: object, data: object) => void
|
|
96
107
|
hiddenColKeys?: string[]
|
|
97
108
|
onHiddenColKeysChange?: (hiddenColKeys: string[]) => void
|
|
109
|
+
cellRender?: (text: any) => React.ReactNode
|
|
98
110
|
}
|
|
99
111
|
declare const Table: React.ComponentType<TableProps>
|
|
100
112
|
export default Table
|
package/es/table/style/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.hi-table{position:relative}.hi-table__container{position:relative;z-index:1}.hi-table__shadow-mask{position:absolute;top:0;bottom:0;z-index:20;pointer-events:none;overflow:hidden;height:100%;width:200px}.hi-table__shadow-lock{height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table__shadow-left{margin-right:10px;left:0;-webkit-box-shadow:6px 0 6px -4px rgba(0,0,0,0.15);box-shadow:6px 0 6px -4px rgba(0,0,0,0.15)}.hi-table__shadow-right{margin-left:10px;right:0;-webkit-box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15);box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15)}.hi-table__container table{width:100%;border-collapse:separate;background:var(--color-white);margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;border-spacing:0;overflow:auto}.hi-table__container table col{display:table-column}.hi-table__container table td,.hi-table__container table th{padding-left:8px;padding-right:16px;border-bottom:1px solid #e7e7e7;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table__container table th{background-color:#fbfbfb;color:var(--color-gray-70)}.hi-table__container table th i:hover{color:var(--color-primary)}.hi-table__container table td{color:var(--color-black);word-break:break-word}.hi-table__container table tr{font-size:14px;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:var(--color-white)}.hi-table__setting-menu div,.hi-table__setting-menu p,.hi-table__setting-menu ul,.hi-table__setting-menu li{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table__col-menu{width:124px;font-size:14px;background:var(--color-white);-webkit-box-shadow:0 2px 8px 0 rgba(56,62,71,0.1);box-shadow:0 2px 8px 0 rgba(56,62,71,0.1);border-radius:4px;border:1px solid #e7e7e7;padding:7px 0}.hi-table__col-menu__item{cursor:pointer;color:var(--color-black);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:4px 12px}.hi-table__col-menu__item:hover{color:var(--color-primary)}.hi-table__col-menu__item.col-menu__item--highlight{color:var(--color-primary)}.hi-table__col-menu__item .hi-icon{font-size:16px}.hi-table__setting-menu .btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;border-top:1px solid #e7e7e7;height:48px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.hi-table__setting-menu .btn-group .btn{width:50%;text-align:center;cursor:pointer}.hi-table__setting-menu .btn-group .btn--left{border-right:1px solid #e7e7e7}.hi-table .hi-checkbox__input:not(.hi-checkbox__input--checked){background:var(--color-white)}.hi-table .hi-checkbox--disabled .hi-checkbox__input{border-color:#d8d8d8;background:#f2f2f2}.hi-table .hi-checkbox{height:auto}.hi-table th{font-weight:500;white-space:normal}.hi-table td{white-space:normal}.hi-table__setting-btn{position:absolute;height:100%;z-index:11;-webkit-box-sizing:border-box;box-sizing:border-box;right:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:1px solid #e0e1e2;border-bottom:1px solid #e0e1e2;border-top:none;color:#999;cursor:pointer;font-size:14px;width:16px;background:#fbfbfb}.hi-table__pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-top:20px}.hi-table__pagination--left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.hi-table__pagination--middle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.hi-table--small table tr{font-size:14px !important}.hi-table--small table tr>td{padding:8px !important}.hi-table--small table thead>tr>th{padding:8px !important}.hi-table--mini table tr{font-size:14px !important}.hi-table--mini table tr>td{padding:4px !important}.hi-table--mini table thead>tr>th{padding:4px !important}.hi-table--large table tr{font-size:14px !important}.hi-table--large table tr>td{padding:20px !important}.hi-table--large table thead>tr>th{padding:20px !important}.hi-table--striped table tr:nth-child(2n){background:#fbfbfb}.hi-table--striped table tr:nth-child(2n) .hi-table__col--sticky{background:#fbfbfb}.hi-table--bordered table thead>tr>th{border-right:1px solid #e6e7e8}.hi-table--bordered table td{border-right:1px solid var(--color-gray-20)}.hi-table--bordered .hi-table_header>table{border-top:1px solid #e6e7e8;border-left:1px solid #e6e7e8}.hi-table__container--fixed-left{z-index:1;position:absolute;top:0;-webkit-box-shadow:2px 0 4px rgba(187,187,187,0.4);box-shadow:2px 0 4px rgba(187,187,187,0.4);overflow:hidden}.hi-table__container--fixed-right{z-index:1;position:absolute;top:0;-webkit-box-shadow:-2px 0 4px rgba(187,187,187,0.4);box-shadow:-2px 0 4px rgba(187,187,187,0.4);overflow:hidden}.hi-table__header{overflow:hidden;position:relative}.hi-table__header>table{position:relative}.hi-table__header__title{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.hi-table__header--sticky{position:fixed;z-index:10;top:0;overflow-x:hidden}.hi-table__body--draging table tr:hover:not(.hi-table__row--draging){background:var(--color-white)}.hi-table__body--draging table tr:hover:not(.hi-table__row--draging) .hi-table__col--sticky{background:var(--color-white)}.hi-table__body--draging table tr.hi-table__row--draging{background:var(--color-primary-20)}.hi-table__body--draging table tr.hi-table__row--draging .hi-table__col--sticky{background:var(--color-primary-20)}.hi-table table{table-layout:fixed}.hi-table table thead>tr>th{background:#fbfbfb;color:var(--color-gray-70);padding:15px;border-bottom:1px solid #e6e7e8;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table table tr{min-height:52px}.hi-table table tr .hi-table__col--sticky{position:sticky;left:0;z-index:5;background:var(--color-white)}.hi-table table tr:hover{background:var(--color-primary-20)}.hi-table table tr:hover .hi-table__col--sticky{background:var(--color-primary-20)}.hi-table table tr>td{color:var(--color-black);padding:15px;border-bottom:1px solid var(--color-gray-20);-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table table tr.hi-table__row--draggable__border--top td{border-top:2px dashed var(--color-primary)}.hi-table table tr.hi-table__row--draggable__border--bottom td{border-bottom:2px dashed var(--color-primary)}.hi-table table .hi-table__row .hi-table__indent{display:inline-block;width:14px;height:100%}.hi-table table .hi-table__row--expanded{background:#fbfbfb}.hi-table table .hi-table__row--expanded>td{color:var(--color-gray-80)}.hi-table table .hi-table__row.hi-table__row--error>td{color:#f44343}.hi-table table .hi-table__row.hi-table__row--highlight>td{background:var(--color-primary-20)}.hi-table table .hi-table__row.hi-table__row--total>td{background-color:#fbfbfb}.hi-table table .hi-table__row.hi-table__row--avg>td{background-color:#fbfbfb}.hi-table table .hi-table__row.hi-table__row--draggable{cursor:move}.hi-table table .hi-table__row>.hi-table__col--highlight{background:var(--color-primary-20)}.hi-table table .hi-table__row .hi-table__col__hover--highlight{background:var(--color-primary-10)}.react-resizable{position:relative;background-clip:padding-box}.react-resizable-handle{position:absolute;width:10px;height:100%;bottom:0;right:-5px;cursor:col-resize;z-index:1}
|
|
1
|
+
.hi-table{position:relative}.hi-table__container{position:relative;z-index:1}.hi-table__shadow-mask{position:absolute;top:0;bottom:0;z-index:20;pointer-events:none;overflow:hidden;height:100%;width:200px}.hi-table__shadow-lock{height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table__shadow-left{margin-right:10px;left:0;-webkit-box-shadow:6px 0 6px -4px rgba(0,0,0,0.15);box-shadow:6px 0 6px -4px rgba(0,0,0,0.15)}.hi-table__shadow-right{margin-left:10px;right:0;-webkit-box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15);box-shadow:-6px 0 6px -4px rgba(0,0,0,0.15)}.hi-table__container table{width:100%;border-collapse:separate;background:var(--color-white);margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;border-spacing:0;overflow:auto}.hi-table__container table col{display:table-column}.hi-table__container table td,.hi-table__container table th{padding-left:8px;padding-right:16px;border-bottom:1px solid #e7e7e7;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table__container table th{background-color:#fbfbfb;color:var(--color-gray-70)}.hi-table__container table th i:hover{color:var(--color-primary)}.hi-table__container table td{color:var(--color-black);word-break:break-word}.hi-table__container table tr{font-size:14px;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:var(--color-white)}.hi-table__setting-menu div,.hi-table__setting-menu p,.hi-table__setting-menu ul,.hi-table__setting-menu li{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table__col-menu{width:124px;font-size:14px;background:var(--color-white);-webkit-box-shadow:0 2px 8px 0 rgba(56,62,71,0.1);box-shadow:0 2px 8px 0 rgba(56,62,71,0.1);border-radius:4px;border:1px solid #e7e7e7;padding:7px 0}.hi-table__col-menu__item{cursor:pointer;color:var(--color-black);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:4px 12px}.hi-table__col-menu__item:hover{color:var(--color-primary)}.hi-table__col-menu__item.col-menu__item--highlight{color:var(--color-primary)}.hi-table__col-menu__item .hi-icon{font-size:16px}.hi-table__setting-menu .btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;border-top:1px solid #e7e7e7;height:48px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.hi-table__setting-menu .btn-group .btn{width:50%;text-align:center;cursor:pointer}.hi-table__setting-menu .btn-group .btn--left{border-right:1px solid #e7e7e7}.hi-table .hi-checkbox__input:not(.hi-checkbox__input--checked):not(.hi-checkbox__input--indeterminate){background:var(--color-white)}.hi-table .hi-checkbox--disabled .hi-checkbox__input{border-color:#d8d8d8;background:#f2f2f2}.hi-table .hi-checkbox{height:auto}.hi-table th{font-weight:500;white-space:normal}.hi-table td{white-space:normal}.hi-table__setting-btn{position:absolute;height:100%;z-index:11;-webkit-box-sizing:border-box;box-sizing:border-box;right:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:1px solid #e0e1e2;border-bottom:1px solid #e0e1e2;border-top:none;color:#999;cursor:pointer;font-size:14px;width:16px;background:#fbfbfb}.hi-table__pagination{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-top:20px}.hi-table__pagination--left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.hi-table__pagination--middle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.hi-table--small table tr{font-size:14px !important}.hi-table--small table tr>td{padding:8px !important}.hi-table--small table thead>tr>th{padding:8px !important}.hi-table--mini table tr{font-size:14px !important}.hi-table--mini table tr>td{padding:4px !important}.hi-table--mini table thead>tr>th{padding:4px !important}.hi-table--large table tr{font-size:14px !important}.hi-table--large table tr>td{padding:20px !important}.hi-table--large table thead>tr>th{padding:20px !important}.hi-table--striped table tr:nth-child(2n){background:#fbfbfb}.hi-table--striped table tr:nth-child(2n) .hi-table__col--sticky{background:#fbfbfb}.hi-table--bordered table thead>tr>th{border-right:1px solid #e6e7e8}.hi-table--bordered table td{border-right:1px solid var(--color-gray-20)}.hi-table--bordered .hi-table_header>table{border-top:1px solid #e6e7e8;border-left:1px solid #e6e7e8}.hi-table__container--fixed-left{z-index:1;position:absolute;top:0;-webkit-box-shadow:2px 0 4px rgba(187,187,187,0.4);box-shadow:2px 0 4px rgba(187,187,187,0.4);overflow:hidden}.hi-table__container--fixed-right{z-index:1;position:absolute;top:0;-webkit-box-shadow:-2px 0 4px rgba(187,187,187,0.4);box-shadow:-2px 0 4px rgba(187,187,187,0.4);overflow:hidden}.hi-table__header{overflow:hidden;position:relative}.hi-table__header>table{position:relative}.hi-table__header__title{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.hi-table__header--sticky{position:fixed;z-index:10;top:0;overflow-x:hidden}.hi-table__body--draging table tr:hover:not(.hi-table__row--draging){background:var(--color-white)}.hi-table__body--draging table tr:hover:not(.hi-table__row--draging) .hi-table__col--sticky{background:var(--color-white)}.hi-table__body--draging table tr.hi-table__row--draging{background:var(--color-primary-20)}.hi-table__body--draging table tr.hi-table__row--draging .hi-table__col--sticky{background:var(--color-primary-20)}.hi-table table{table-layout:fixed}.hi-table table thead>tr>th{background:#fbfbfb;color:var(--color-gray-70);padding:15px;border-bottom:1px solid #e6e7e8;-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table table tr{min-height:52px}.hi-table table tr .hi-table__col--sticky{position:sticky;left:0;z-index:5;background:var(--color-white)}.hi-table table tr:hover{background:var(--color-primary-20)}.hi-table table tr:hover .hi-table__col--sticky{background:var(--color-primary-20)}.hi-table table tr>td{color:var(--color-black);padding:15px;border-bottom:1px solid var(--color-gray-20);-webkit-box-sizing:border-box;box-sizing:border-box}.hi-table table tr.hi-table__row--draggable__border--top td{border-top:2px dashed var(--color-primary)}.hi-table table tr.hi-table__row--draggable__border--bottom td{border-bottom:2px dashed var(--color-primary)}.hi-table table .hi-table__row .hi-table__indent{display:inline-block;width:14px;height:100%}.hi-table table .hi-table__row--expanded{background:#fbfbfb}.hi-table table .hi-table__row--expanded>td{color:var(--color-gray-80)}.hi-table table .hi-table__row.hi-table__row--error>td{color:#f44343}.hi-table table .hi-table__row.hi-table__row--highlight>td{background:var(--color-primary-20)}.hi-table table .hi-table__row.hi-table__row--total>td{background-color:#fbfbfb}.hi-table table .hi-table__row.hi-table__row--avg>td{background-color:#fbfbfb}.hi-table table .hi-table__row.hi-table__row--draggable{cursor:move}.hi-table table .hi-table__row>.hi-table__col--highlight{background:var(--color-primary-20)}.hi-table table .hi-table__row .hi-table__col__hover--highlight{background:var(--color-primary-10)}.react-resizable{position:relative;background-clip:padding-box}.react-resizable-handle{position:absolute;width:10px;height:100%;bottom:0;right:-5px;cursor:col-resize;z-index:1}
|
|
File without changes
|
package/es/table/util.js
CHANGED
|
@@ -6,12 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.getScrollBarSize = getScrollBarSize;
|
|
9
|
-
exports.deleteRowByKey = exports.setRowByKey = exports.getMaskNums = exports.setColumnsDefaultWidth = exports.parseFixedcolumns = exports.getTotalOrEvgRowData = exports.checkNeedTotalOrEvg = exports.checkIsNumberStr = exports.getStyle = exports.getFixedDataByFixedColumn = exports.groupDataByDepth = exports.getLeafChildren = exports.setDepth = exports.flatTreeData = void 0;
|
|
9
|
+
exports.cloneArray = exports.deleteRowByKey = exports.setRowByKey = exports.getMaskNums = exports.setColumnsDefaultWidth = exports.parseFixedcolumns = exports.getTotalOrEvgRowData = exports.checkNeedTotalOrEvg = exports.checkIsNumberStr = exports.getStyle = exports.getFixedDataByFixedColumn = exports.groupDataByDepth = exports.getLeafChildren = exports.setDepth = exports.flatTreeData = void 0;
|
|
10
10
|
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
12
|
|
|
13
13
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
14
14
|
|
|
15
|
+
var _treeUtils = require("@hi-ui/tree-utils");
|
|
16
|
+
|
|
15
17
|
// 将树状数据拍平
|
|
16
18
|
var flatTreeData = function flatTreeData() {
|
|
17
19
|
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
@@ -309,4 +311,10 @@ var deleteRowByKey = function deleteRowByKey(data, dragInfo) {
|
|
|
309
311
|
return data;
|
|
310
312
|
};
|
|
311
313
|
|
|
312
|
-
exports.deleteRowByKey = deleteRowByKey;
|
|
314
|
+
exports.deleteRowByKey = deleteRowByKey;
|
|
315
|
+
|
|
316
|
+
var cloneArray = function cloneArray(arr) {
|
|
317
|
+
return Array.isArray(arr) ? (0, _treeUtils.cloneTree)(arr) : [];
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
exports.cloneArray = cloneArray;
|
package/es/tree/Tree.js
CHANGED
|
@@ -492,10 +492,13 @@ var Tree = function Tree(props) {
|
|
|
492
492
|
type: 'deleteNode'
|
|
493
493
|
}];
|
|
494
494
|
|
|
495
|
-
if (contextMenu) {
|
|
495
|
+
if (Array.isArray(contextMenu)) {
|
|
496
|
+
menu = contextMenu;
|
|
497
|
+
} else if (typeof contextMenu === 'function') {
|
|
496
498
|
menu = contextMenu(node);
|
|
497
499
|
}
|
|
498
500
|
|
|
501
|
+
if (!(Array.isArray(menu) && menu.length > 0)) return null;
|
|
499
502
|
return /*#__PURE__*/_react["default"].createElement("ul", {
|
|
500
503
|
className: "".concat(PREFIX, "__menu theme__").concat(theme)
|
|
501
504
|
}, menu.map(function (m, index) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hi-ui/hiui",
|
|
3
|
-
"version": "3.9.0-rc",
|
|
3
|
+
"version": "3.9.0-rc.12",
|
|
4
4
|
"description": "HIUI for React",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "node_modules/.bin/standard && node_modules/.bin/stylelint --config .stylelintrc 'components/**/*.scss'",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@hi-ui/core-css": "^2.0.1",
|
|
57
|
+
"@hi-ui/tree-utils": "^4.0.0-alpha.3",
|
|
57
58
|
"@hi-ui/use-latest": "~4.0.0-alpha.2",
|
|
58
59
|
"@hi-ui/use-uncontrolled-state": "~4.0.0-alpha.5",
|
|
59
60
|
"async-validator": "^3.3.0",
|