@douyinfe/semi-ui 2.18.1 → 2.18.3
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/dist/umd/semi-ui.js +277 -286
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/lib/cjs/carousel/CarouselIndicator.d.ts +1 -1
- package/lib/cjs/carousel/index.d.ts +1 -1
- package/lib/cjs/datePicker/dateInput.d.ts +1 -1
- package/lib/cjs/datePicker/datePicker.d.ts +1 -1
- package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
- package/lib/cjs/radio/radio.d.ts +1 -1
- package/lib/cjs/radio/radioGroup.d.ts +1 -1
- package/lib/cjs/table/ResizableTable.js +1 -1
- package/lib/cjs/table/Table.js +2 -2
- package/lib/cjs/table/utils.d.ts +1 -0
- package/lib/cjs/table/utils.js +32 -0
- package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
- package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
- package/lib/cjs/timePicker/index.d.ts +2 -2
- package/lib/cjs/typography/title.d.ts +1 -1
- package/lib/cjs/upload/index.d.ts +1 -1
- package/lib/es/carousel/CarouselIndicator.d.ts +1 -1
- package/lib/es/carousel/index.d.ts +1 -1
- package/lib/es/datePicker/dateInput.d.ts +1 -1
- package/lib/es/datePicker/datePicker.d.ts +1 -1
- package/lib/es/datePicker/monthsGrid.d.ts +1 -1
- package/lib/es/radio/radio.d.ts +1 -1
- package/lib/es/radio/radioGroup.d.ts +1 -1
- package/lib/es/table/ResizableTable.js +2 -2
- package/lib/es/table/Table.js +2 -2
- package/lib/es/table/utils.d.ts +1 -0
- package/lib/es/table/utils.js +28 -0
- package/lib/es/timePicker/TimePicker.d.ts +2 -2
- package/lib/es/timePicker/TimeShape.d.ts +1 -1
- package/lib/es/timePicker/index.d.ts +2 -2
- package/lib/es/typography/title.d.ts +1 -1
- package/lib/es/upload/index.d.ts +1 -1
- package/package.json +7 -7
- package/table/ResizableTable.tsx +2 -2
- package/table/Table.tsx +1 -2
- package/table/utils.ts +27 -1
|
@@ -8,7 +8,7 @@ declare class CarouselIndicator extends React.PureComponent<CarouselIndicatorPro
|
|
|
8
8
|
position: PropTypes.Requireable<"left" | "right" | "center">;
|
|
9
9
|
size: PropTypes.Requireable<"small" | "medium">;
|
|
10
10
|
style: PropTypes.Requireable<object>;
|
|
11
|
-
theme: PropTypes.Requireable<"
|
|
11
|
+
theme: PropTypes.Requireable<"dark" | "light" | "primary">;
|
|
12
12
|
total: PropTypes.Requireable<number>;
|
|
13
13
|
onIndicatorChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
14
14
|
type: PropTypes.Requireable<"line" | "dot" | "columnar">;
|
|
@@ -22,7 +22,7 @@ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
|
|
|
22
22
|
indicatorPosition: PropTypes.Requireable<"left" | "right" | "center">;
|
|
23
23
|
indicatorSize: PropTypes.Requireable<"small" | "medium">;
|
|
24
24
|
indicatorType: PropTypes.Requireable<"line" | "dot" | "columnar">;
|
|
25
|
-
theme: PropTypes.Requireable<"
|
|
25
|
+
theme: PropTypes.Requireable<"dark" | "light" | "primary">;
|
|
26
26
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
27
|
arrowType: PropTypes.Requireable<"hover" | "always">;
|
|
28
28
|
showArrow: PropTypes.Requireable<boolean>;
|
|
@@ -26,7 +26,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
|
|
|
26
26
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
27
|
value: PropTypes.Requireable<any[]>;
|
|
28
28
|
disabled: PropTypes.Requireable<boolean>;
|
|
29
|
-
type: PropTypes.Requireable<"
|
|
29
|
+
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
|
|
30
30
|
showClear: PropTypes.Requireable<boolean>;
|
|
31
31
|
format: PropTypes.Requireable<string>;
|
|
32
32
|
inputStyle: PropTypes.Requireable<object>;
|
|
@@ -41,7 +41,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
41
41
|
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
42
42
|
'aria-labelledby': PropTypes.Requireable<string>;
|
|
43
43
|
'aria-required': PropTypes.Requireable<boolean>;
|
|
44
|
-
type: PropTypes.Requireable<"
|
|
44
|
+
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
|
|
45
45
|
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
46
46
|
density: PropTypes.Requireable<"default" | "compact">;
|
|
47
47
|
defaultValue: PropTypes.Requireable<string | number | object>;
|
|
@@ -17,7 +17,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
|
|
|
17
17
|
export declare type MonthsGridState = MonthsGridFoundationState;
|
|
18
18
|
export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
|
|
19
19
|
static propTypes: {
|
|
20
|
-
type: PropTypes.Requireable<"
|
|
20
|
+
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
|
|
21
21
|
defaultValue: PropTypes.Requireable<string | number | object>;
|
|
22
22
|
defaultPickerValue: PropTypes.Requireable<string | number | object>;
|
|
23
23
|
multiple: PropTypes.Requireable<boolean>;
|
package/lib/cjs/radio/radio.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ declare class Radio extends BaseComponent<RadioProps, RadioState> {
|
|
|
81
81
|
prefixCls?: string;
|
|
82
82
|
name?: string;
|
|
83
83
|
onChange?: (e: RadioChangeEvent) => void;
|
|
84
|
-
buttonSize?: "small" | "
|
|
84
|
+
buttonSize?: "small" | "large" | "middle";
|
|
85
85
|
isCardRadio?: boolean;
|
|
86
86
|
isPureCardRadio?: boolean;
|
|
87
87
|
};
|
|
@@ -48,7 +48,7 @@ declare class RadioGroup extends BaseComponent<RadioGroupProps, RadioGroupState>
|
|
|
48
48
|
disabled: PropTypes.Requireable<boolean>;
|
|
49
49
|
name: PropTypes.Requireable<string>;
|
|
50
50
|
options: PropTypes.Requireable<any[]>;
|
|
51
|
-
buttonSize: PropTypes.Requireable<"small" | "
|
|
51
|
+
buttonSize: PropTypes.Requireable<"small" | "large" | "middle">;
|
|
52
52
|
type: PropTypes.Requireable<"default" | "button" | "card" | "pureCard">;
|
|
53
53
|
value: PropTypes.Requireable<any>;
|
|
54
54
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -129,7 +129,7 @@ const ResizableTable = function () {
|
|
|
129
129
|
// If there is a resize value, the width does not use the default value fix#1072
|
|
130
130
|
const _newColumns = (0, _utils.withResizeWidth)(columns, newColumns);
|
|
131
131
|
|
|
132
|
-
setColumns((0,
|
|
132
|
+
setColumns((0, _utils2.mergeColumns)(columns, _newColumns));
|
|
133
133
|
}, [propColumns, props.expandedRowRender, props.hideExpandedColumn, props.rowSelection]);
|
|
134
134
|
const components = (0, _react.useMemo)(() => (0, _merge2.default)({
|
|
135
135
|
header: {
|
package/lib/cjs/table/Table.js
CHANGED
|
@@ -1167,13 +1167,13 @@ class Table extends _baseComponent.default {
|
|
|
1167
1167
|
if (props.columns && props.columns !== state.cachedColumns) {
|
|
1168
1168
|
const newFlattenColumns = (0, _utils.flattenColumns)(props.columns);
|
|
1169
1169
|
willUpdateStates.flattenColumns = newFlattenColumns;
|
|
1170
|
-
willUpdateStates.queries = (0,
|
|
1170
|
+
willUpdateStates.queries = (0, _utils2.mergeColumns)(state.queries, newFlattenColumns, null, false);
|
|
1171
1171
|
willUpdateStates.cachedColumns = props.columns;
|
|
1172
1172
|
willUpdateStates.cachedChildren = null;
|
|
1173
1173
|
} else if (props.children && props.children !== state.cachedChildren) {
|
|
1174
1174
|
const newNestedColumns = (0, _getColumns.default)(props.children);
|
|
1175
1175
|
const newFlattenColumns = (0, _utils.flattenColumns)(newNestedColumns);
|
|
1176
|
-
const columns = (0,
|
|
1176
|
+
const columns = (0, _utils2.mergeColumns)(state.queries, newFlattenColumns, null, false);
|
|
1177
1177
|
willUpdateStates.flattenColumns = newFlattenColumns;
|
|
1178
1178
|
willUpdateStates.queries = [...columns];
|
|
1179
1179
|
willUpdateStates.cachedColumns = [...newNestedColumns];
|
package/lib/cjs/table/utils.d.ts
CHANGED
|
@@ -38,5 +38,6 @@ export declare function mergeComponents(components: TableComponents, virtualized
|
|
|
38
38
|
cell: string;
|
|
39
39
|
};
|
|
40
40
|
} & TableComponents;
|
|
41
|
+
export declare function mergeColumns(oldColumns?: any[], newColumns?: any[], keyPropNames?: any[], deep?: boolean): any[];
|
|
41
42
|
export declare const logger: Logger;
|
|
42
43
|
export { cloneDeep };
|
package/lib/cjs/table/utils.js
CHANGED
|
@@ -19,12 +19,21 @@ _Object$defineProperty(exports, "cloneDeep", {
|
|
|
19
19
|
|
|
20
20
|
exports.logger = void 0;
|
|
21
21
|
exports.measureScrollbar = measureScrollbar;
|
|
22
|
+
exports.mergeColumns = mergeColumns;
|
|
22
23
|
exports.mergeComponents = mergeComponents;
|
|
23
24
|
|
|
24
25
|
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
|
25
26
|
|
|
26
27
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
27
28
|
|
|
29
|
+
var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
|
|
30
|
+
|
|
31
|
+
var _map2 = _interopRequireDefault(require("lodash/map"));
|
|
32
|
+
|
|
33
|
+
var _find2 = _interopRequireDefault(require("lodash/find"));
|
|
34
|
+
|
|
35
|
+
var _clone2 = _interopRequireDefault(require("lodash/clone"));
|
|
36
|
+
|
|
28
37
|
var _merge2 = _interopRequireDefault(require("lodash/merge"));
|
|
29
38
|
|
|
30
39
|
var _Logger = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/Logger"));
|
|
@@ -33,6 +42,8 @@ var _constants = require("@douyinfe/semi-foundation/lib/cjs/table/constants");
|
|
|
33
42
|
|
|
34
43
|
var _utils = require("../_utils");
|
|
35
44
|
|
|
45
|
+
var _utils2 = require("@douyinfe/semi-foundation/lib/cjs/table/utils");
|
|
46
|
+
|
|
36
47
|
let scrollbarVerticalSize, scrollbarHorizontalSize; // Measure scrollbar width for padding body during modal show/hide
|
|
37
48
|
|
|
38
49
|
const scrollbarMeasure = {
|
|
@@ -140,5 +151,26 @@ function mergeComponents(components, virtualized) {
|
|
|
140
151
|
}, components);
|
|
141
152
|
}
|
|
142
153
|
|
|
154
|
+
function mergeColumns() {
|
|
155
|
+
let oldColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
156
|
+
let newColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
157
|
+
let keyPropNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
158
|
+
let deep = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
159
|
+
const finalColumns = [];
|
|
160
|
+
const clone = deep ? _utils.cloneDeep : _clone2.default;
|
|
161
|
+
(0, _map2.default)(newColumns, newColumn => {
|
|
162
|
+
newColumn = (0, _assign.default)({}, newColumn);
|
|
163
|
+
const key = (0, _utils2.getColumnKey)(newColumn, keyPropNames);
|
|
164
|
+
const oldColumn = key != null && (0, _find2.default)(oldColumns, item => (0, _utils2.getColumnKey)(item, keyPropNames) === key);
|
|
165
|
+
|
|
166
|
+
if (oldColumn) {
|
|
167
|
+
finalColumns.push(clone((0, _assign.default)((0, _assign.default)({}, oldColumn), newColumn)));
|
|
168
|
+
} else {
|
|
169
|
+
finalColumns.push(clone(newColumn));
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
return finalColumns;
|
|
173
|
+
}
|
|
174
|
+
|
|
143
175
|
const logger = new _Logger.default('[@douyinfe/semi-ui Table]');
|
|
144
176
|
exports.logger = logger;
|
|
@@ -99,11 +99,11 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
|
|
|
99
99
|
'aria-required': PropTypes.Requireable<boolean>;
|
|
100
100
|
prefixCls: PropTypes.Requireable<string>;
|
|
101
101
|
clearText: PropTypes.Requireable<string>;
|
|
102
|
-
value: PropTypes.Requireable<string | number | string[] | number[] | Date
|
|
102
|
+
value: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
103
103
|
inputReadOnly: PropTypes.Requireable<boolean>;
|
|
104
104
|
disabled: PropTypes.Requireable<boolean>;
|
|
105
105
|
showClear: PropTypes.Requireable<boolean>;
|
|
106
|
-
defaultValue: PropTypes.Requireable<string | number | string[] | number[] | Date
|
|
106
|
+
defaultValue: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
107
107
|
open: PropTypes.Requireable<boolean>;
|
|
108
108
|
defaultOpen: PropTypes.Requireable<boolean>;
|
|
109
109
|
onOpenChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -6,5 +6,5 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
* - \[12:00:12, 12:21:12]
|
|
7
7
|
* - \[[12:00:12, 12:21:12], [12:11:12, 12:32:12]]
|
|
8
8
|
*/
|
|
9
|
-
declare const TimeShape: PropTypes.Requireable<string | number | string[] | number[] | Date
|
|
9
|
+
declare const TimeShape: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
10
10
|
export { TimeShape };
|
|
@@ -19,11 +19,11 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
|
|
|
19
19
|
'aria-required': import("prop-types").Requireable<boolean>;
|
|
20
20
|
prefixCls: import("prop-types").Requireable<string>;
|
|
21
21
|
clearText: import("prop-types").Requireable<string>;
|
|
22
|
-
value: import("prop-types").Requireable<string | number | string[] | number[] | Date
|
|
22
|
+
value: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
23
23
|
inputReadOnly: import("prop-types").Requireable<boolean>;
|
|
24
24
|
disabled: import("prop-types").Requireable<boolean>;
|
|
25
25
|
showClear: import("prop-types").Requireable<boolean>;
|
|
26
|
-
defaultValue: import("prop-types").Requireable<string | number | string[] | number[] | Date
|
|
26
|
+
defaultValue: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
27
27
|
open: import("prop-types").Requireable<boolean>;
|
|
28
28
|
defaultOpen: import("prop-types").Requireable<boolean>;
|
|
29
29
|
onOpenChange: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
@@ -37,7 +37,7 @@ export default class Title extends PureComponent<TitleProps> {
|
|
|
37
37
|
underline: PropTypes.Requireable<boolean>;
|
|
38
38
|
strong: PropTypes.Requireable<boolean>;
|
|
39
39
|
type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
|
|
40
|
-
heading: PropTypes.Requireable<1 | 2 | 3 | 4 |
|
|
40
|
+
heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 6 | 5>;
|
|
41
41
|
style: PropTypes.Requireable<object>;
|
|
42
42
|
className: PropTypes.Requireable<string>;
|
|
43
43
|
component: PropTypes.Requireable<string>;
|
|
@@ -140,7 +140,7 @@ declare class Upload extends BaseComponent<UploadProps, UploadState> {
|
|
|
140
140
|
style: PropTypes.Requireable<object>;
|
|
141
141
|
timeout: PropTypes.Requireable<number>;
|
|
142
142
|
transformFile: PropTypes.Requireable<(...args: any[]) => any>;
|
|
143
|
-
uploadTrigger: PropTypes.Requireable<"
|
|
143
|
+
uploadTrigger: PropTypes.Requireable<"custom" | "auto">;
|
|
144
144
|
validateMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
145
145
|
validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
|
|
146
146
|
withCredentials: PropTypes.Requireable<boolean>;
|
|
@@ -8,7 +8,7 @@ declare class CarouselIndicator extends React.PureComponent<CarouselIndicatorPro
|
|
|
8
8
|
position: PropTypes.Requireable<"left" | "right" | "center">;
|
|
9
9
|
size: PropTypes.Requireable<"small" | "medium">;
|
|
10
10
|
style: PropTypes.Requireable<object>;
|
|
11
|
-
theme: PropTypes.Requireable<"
|
|
11
|
+
theme: PropTypes.Requireable<"dark" | "light" | "primary">;
|
|
12
12
|
total: PropTypes.Requireable<number>;
|
|
13
13
|
onIndicatorChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
14
14
|
type: PropTypes.Requireable<"line" | "dot" | "columnar">;
|
|
@@ -22,7 +22,7 @@ declare class Carousel extends BaseComponent<CarouselProps, CarouselState> {
|
|
|
22
22
|
indicatorPosition: PropTypes.Requireable<"left" | "right" | "center">;
|
|
23
23
|
indicatorSize: PropTypes.Requireable<"small" | "medium">;
|
|
24
24
|
indicatorType: PropTypes.Requireable<"line" | "dot" | "columnar">;
|
|
25
|
-
theme: PropTypes.Requireable<"
|
|
25
|
+
theme: PropTypes.Requireable<"dark" | "light" | "primary">;
|
|
26
26
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
27
|
arrowType: PropTypes.Requireable<"hover" | "always">;
|
|
28
28
|
showArrow: PropTypes.Requireable<boolean>;
|
|
@@ -26,7 +26,7 @@ export default class DateInput extends BaseComponent<DateInputProps, {}> {
|
|
|
26
26
|
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
27
27
|
value: PropTypes.Requireable<any[]>;
|
|
28
28
|
disabled: PropTypes.Requireable<boolean>;
|
|
29
|
-
type: PropTypes.Requireable<"
|
|
29
|
+
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
|
|
30
30
|
showClear: PropTypes.Requireable<boolean>;
|
|
31
31
|
format: PropTypes.Requireable<string>;
|
|
32
32
|
inputStyle: PropTypes.Requireable<object>;
|
|
@@ -41,7 +41,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
|
|
|
41
41
|
'aria-invalid': PropTypes.Requireable<boolean>;
|
|
42
42
|
'aria-labelledby': PropTypes.Requireable<string>;
|
|
43
43
|
'aria-required': PropTypes.Requireable<boolean>;
|
|
44
|
-
type: PropTypes.Requireable<"
|
|
44
|
+
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
|
|
45
45
|
size: PropTypes.Requireable<"default" | "small" | "large">;
|
|
46
46
|
density: PropTypes.Requireable<"default" | "compact">;
|
|
47
47
|
defaultValue: PropTypes.Requireable<string | number | object>;
|
|
@@ -17,7 +17,7 @@ export interface MonthsGridProps extends MonthsGridFoundationProps, BaseProps {
|
|
|
17
17
|
export declare type MonthsGridState = MonthsGridFoundationState;
|
|
18
18
|
export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGridState> {
|
|
19
19
|
static propTypes: {
|
|
20
|
-
type: PropTypes.Requireable<"
|
|
20
|
+
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "dateTimeRange">;
|
|
21
21
|
defaultValue: PropTypes.Requireable<string | number | object>;
|
|
22
22
|
defaultPickerValue: PropTypes.Requireable<string | number | object>;
|
|
23
23
|
multiple: PropTypes.Requireable<boolean>;
|
package/lib/es/radio/radio.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ declare class Radio extends BaseComponent<RadioProps, RadioState> {
|
|
|
81
81
|
prefixCls?: string;
|
|
82
82
|
name?: string;
|
|
83
83
|
onChange?: (e: RadioChangeEvent) => void;
|
|
84
|
-
buttonSize?: "small" | "
|
|
84
|
+
buttonSize?: "small" | "large" | "middle";
|
|
85
85
|
isCardRadio?: boolean;
|
|
86
86
|
isPureCardRadio?: boolean;
|
|
87
87
|
};
|
|
@@ -48,7 +48,7 @@ declare class RadioGroup extends BaseComponent<RadioGroupProps, RadioGroupState>
|
|
|
48
48
|
disabled: PropTypes.Requireable<boolean>;
|
|
49
49
|
name: PropTypes.Requireable<string>;
|
|
50
50
|
options: PropTypes.Requireable<any[]>;
|
|
51
|
-
buttonSize: PropTypes.Requireable<"small" | "
|
|
51
|
+
buttonSize: PropTypes.Requireable<"small" | "large" | "middle">;
|
|
52
52
|
type: PropTypes.Requireable<"default" | "button" | "card" | "pureCard">;
|
|
53
53
|
value: PropTypes.Requireable<any>;
|
|
54
54
|
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -32,9 +32,9 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
32
32
|
import React, { useState, useEffect, useMemo } from 'react';
|
|
33
33
|
import { addClass, removeClass } from '@douyinfe/semi-foundation/lib/es/utils/classnames';
|
|
34
34
|
import { strings, numbers } from '@douyinfe/semi-foundation/lib/es/table/constants';
|
|
35
|
-
import {
|
|
35
|
+
import { assignColumnKeys, findColumn, withResizeWidth } from '@douyinfe/semi-foundation/lib/es/table/utils';
|
|
36
36
|
import Table from './Table';
|
|
37
|
-
import { cloneDeep } from './utils';
|
|
37
|
+
import { cloneDeep, mergeColumns } from './utils';
|
|
38
38
|
import getColumns from './getColumns';
|
|
39
39
|
import ResizableHeaderCell from './ResizableHeaderCell';
|
|
40
40
|
|
package/lib/es/table/Table.js
CHANGED
|
@@ -55,7 +55,7 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
55
55
|
import React, { createRef, isValidElement } from 'react';
|
|
56
56
|
import PropTypes from 'prop-types';
|
|
57
57
|
import classnames from 'classnames';
|
|
58
|
-
import { mergeQueries, equalWith,
|
|
58
|
+
import { mergeQueries, equalWith, assignColumnKeys, flattenColumns, getAllDisabledRowKeys } from '@douyinfe/semi-foundation/lib/es/table/utils';
|
|
59
59
|
import Store from '@douyinfe/semi-foundation/lib/es/utils/Store';
|
|
60
60
|
import TableFoundation from '@douyinfe/semi-foundation/lib/es/table/foundation';
|
|
61
61
|
import { strings, cssClasses, numbers } from '@douyinfe/semi-foundation/lib/es/table/constants';
|
|
@@ -74,7 +74,7 @@ import ColumnSorter from './ColumnSorter';
|
|
|
74
74
|
import ExpandedIcon from './CustomExpandIcon';
|
|
75
75
|
import HeadTable from './HeadTable';
|
|
76
76
|
import BodyTable from './Body';
|
|
77
|
-
import { logger, cloneDeep, mergeComponents } from './utils';
|
|
77
|
+
import { logger, cloneDeep, mergeComponents, mergeColumns } from './utils';
|
|
78
78
|
|
|
79
79
|
class Table extends BaseComponent {
|
|
80
80
|
constructor(props, context) {
|
package/lib/es/table/utils.d.ts
CHANGED
|
@@ -38,5 +38,6 @@ export declare function mergeComponents(components: TableComponents, virtualized
|
|
|
38
38
|
cell: string;
|
|
39
39
|
};
|
|
40
40
|
} & TableComponents;
|
|
41
|
+
export declare function mergeColumns(oldColumns?: any[], newColumns?: any[], keyPropNames?: any[], deep?: boolean): any[];
|
|
41
42
|
export declare const logger: Logger;
|
|
42
43
|
export { cloneDeep };
|
package/lib/es/table/utils.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import _map from "lodash/map";
|
|
2
|
+
import _find from "lodash/find";
|
|
3
|
+
import _clone from "lodash/clone";
|
|
1
4
|
import _merge from "lodash/merge";
|
|
2
5
|
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
|
3
6
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
7
|
+
import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
|
|
4
8
|
import Logger from '@douyinfe/semi-foundation/lib/es/utils/Logger';
|
|
5
9
|
import { numbers } from '@douyinfe/semi-foundation/lib/es/table/constants';
|
|
6
10
|
import { cloneDeep } from '../_utils';
|
|
11
|
+
import { getColumnKey } from '@douyinfe/semi-foundation/lib/es/table/utils';
|
|
7
12
|
let scrollbarVerticalSize, scrollbarHorizontalSize; // Measure scrollbar width for padding body during modal show/hide
|
|
8
13
|
|
|
9
14
|
const scrollbarMeasure = {
|
|
@@ -110,5 +115,28 @@ export function mergeComponents(components, virtualized) {
|
|
|
110
115
|
}
|
|
111
116
|
}, components);
|
|
112
117
|
}
|
|
118
|
+
export function mergeColumns() {
|
|
119
|
+
let oldColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
120
|
+
let newColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
121
|
+
let keyPropNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
122
|
+
let deep = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
123
|
+
const finalColumns = [];
|
|
124
|
+
const clone = deep ? cloneDeep : _clone;
|
|
125
|
+
|
|
126
|
+
_map(newColumns, newColumn => {
|
|
127
|
+
newColumn = _Object$assign({}, newColumn);
|
|
128
|
+
const key = getColumnKey(newColumn, keyPropNames);
|
|
129
|
+
|
|
130
|
+
const oldColumn = key != null && _find(oldColumns, item => getColumnKey(item, keyPropNames) === key);
|
|
131
|
+
|
|
132
|
+
if (oldColumn) {
|
|
133
|
+
finalColumns.push(clone(_Object$assign(_Object$assign({}, oldColumn), newColumn)));
|
|
134
|
+
} else {
|
|
135
|
+
finalColumns.push(clone(newColumn));
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
return finalColumns;
|
|
140
|
+
}
|
|
113
141
|
export const logger = new Logger('[@douyinfe/semi-ui Table]');
|
|
114
142
|
export { cloneDeep };
|
|
@@ -99,11 +99,11 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
|
|
|
99
99
|
'aria-required': PropTypes.Requireable<boolean>;
|
|
100
100
|
prefixCls: PropTypes.Requireable<string>;
|
|
101
101
|
clearText: PropTypes.Requireable<string>;
|
|
102
|
-
value: PropTypes.Requireable<string | number | string[] | number[] | Date
|
|
102
|
+
value: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
103
103
|
inputReadOnly: PropTypes.Requireable<boolean>;
|
|
104
104
|
disabled: PropTypes.Requireable<boolean>;
|
|
105
105
|
showClear: PropTypes.Requireable<boolean>;
|
|
106
|
-
defaultValue: PropTypes.Requireable<string | number | string[] | number[] | Date
|
|
106
|
+
defaultValue: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
107
107
|
open: PropTypes.Requireable<boolean>;
|
|
108
108
|
defaultOpen: PropTypes.Requireable<boolean>;
|
|
109
109
|
onOpenChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -6,5 +6,5 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
* - \[12:00:12, 12:21:12]
|
|
7
7
|
* - \[[12:00:12, 12:21:12], [12:11:12, 12:32:12]]
|
|
8
8
|
*/
|
|
9
|
-
declare const TimeShape: PropTypes.Requireable<string | number | string[] | number[] | Date
|
|
9
|
+
declare const TimeShape: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
10
10
|
export { TimeShape };
|
|
@@ -19,11 +19,11 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
|
|
|
19
19
|
'aria-required': import("prop-types").Requireable<boolean>;
|
|
20
20
|
prefixCls: import("prop-types").Requireable<string>;
|
|
21
21
|
clearText: import("prop-types").Requireable<string>;
|
|
22
|
-
value: import("prop-types").Requireable<string | number | string[] | number[] | Date
|
|
22
|
+
value: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
23
23
|
inputReadOnly: import("prop-types").Requireable<boolean>;
|
|
24
24
|
disabled: import("prop-types").Requireable<boolean>;
|
|
25
25
|
showClear: import("prop-types").Requireable<boolean>;
|
|
26
|
-
defaultValue: import("prop-types").Requireable<string | number | string[] | number[] | Date
|
|
26
|
+
defaultValue: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
|
|
27
27
|
open: import("prop-types").Requireable<boolean>;
|
|
28
28
|
defaultOpen: import("prop-types").Requireable<boolean>;
|
|
29
29
|
onOpenChange: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
@@ -37,7 +37,7 @@ export default class Title extends PureComponent<TitleProps> {
|
|
|
37
37
|
underline: PropTypes.Requireable<boolean>;
|
|
38
38
|
strong: PropTypes.Requireable<boolean>;
|
|
39
39
|
type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
|
|
40
|
-
heading: PropTypes.Requireable<1 | 2 | 3 | 4 |
|
|
40
|
+
heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 6 | 5>;
|
|
41
41
|
style: PropTypes.Requireable<object>;
|
|
42
42
|
className: PropTypes.Requireable<string>;
|
|
43
43
|
component: PropTypes.Requireable<string>;
|
package/lib/es/upload/index.d.ts
CHANGED
|
@@ -140,7 +140,7 @@ declare class Upload extends BaseComponent<UploadProps, UploadState> {
|
|
|
140
140
|
style: PropTypes.Requireable<object>;
|
|
141
141
|
timeout: PropTypes.Requireable<number>;
|
|
142
142
|
transformFile: PropTypes.Requireable<(...args: any[]) => any>;
|
|
143
|
-
uploadTrigger: PropTypes.Requireable<"
|
|
143
|
+
uploadTrigger: PropTypes.Requireable<"custom" | "auto">;
|
|
144
144
|
validateMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
145
145
|
validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
|
|
146
146
|
withCredentials: PropTypes.Requireable<boolean>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douyinfe/semi-ui",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es/index.js",
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@babel/runtime-corejs3": "^7.15.4",
|
|
17
17
|
"@douyinfe/semi-animation": "2.12.0",
|
|
18
|
-
"@douyinfe/semi-animation-react": "2.18.
|
|
19
|
-
"@douyinfe/semi-foundation": "2.18.
|
|
20
|
-
"@douyinfe/semi-icons": "2.18.
|
|
18
|
+
"@douyinfe/semi-animation-react": "2.18.3",
|
|
19
|
+
"@douyinfe/semi-foundation": "2.18.3",
|
|
20
|
+
"@douyinfe/semi-icons": "2.18.3",
|
|
21
21
|
"@douyinfe/semi-illustrations": "2.15.0",
|
|
22
|
-
"@douyinfe/semi-theme-default": "2.18.
|
|
22
|
+
"@douyinfe/semi-theme-default": "2.18.3",
|
|
23
23
|
"async-validator": "^3.5.0",
|
|
24
24
|
"classnames": "^2.2.6",
|
|
25
25
|
"copy-text-to-clipboard": "^2.1.1",
|
|
@@ -66,13 +66,13 @@
|
|
|
66
66
|
],
|
|
67
67
|
"author": "",
|
|
68
68
|
"license": "MIT",
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "680b7e5bb7e5c52474df556db3a72f65c0be28c0",
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@babel/plugin-proposal-decorators": "^7.15.8",
|
|
72
72
|
"@babel/plugin-transform-runtime": "^7.15.8",
|
|
73
73
|
"@babel/preset-env": "^7.15.8",
|
|
74
74
|
"@babel/preset-react": "^7.14.5",
|
|
75
|
-
"@douyinfe/semi-scss-compile": "2.18.
|
|
75
|
+
"@douyinfe/semi-scss-compile": "2.18.3",
|
|
76
76
|
"@storybook/addon-knobs": "^6.3.1",
|
|
77
77
|
"@types/lodash": "^4.14.176",
|
|
78
78
|
"@types/react": ">=16.0.0",
|
package/table/ResizableTable.tsx
CHANGED
|
@@ -8,10 +8,10 @@ import { merge, get, find, noop } from 'lodash';
|
|
|
8
8
|
|
|
9
9
|
import { addClass, removeClass } from '@douyinfe/semi-foundation/utils/classnames';
|
|
10
10
|
import { strings, numbers } from '@douyinfe/semi-foundation/table/constants';
|
|
11
|
-
import {
|
|
11
|
+
import { assignColumnKeys, findColumn, withResizeWidth } from '@douyinfe/semi-foundation/table/utils';
|
|
12
12
|
|
|
13
13
|
import Table from './Table';
|
|
14
|
-
import { cloneDeep } from './utils';
|
|
14
|
+
import { cloneDeep, mergeColumns } from './utils';
|
|
15
15
|
import getColumns from './getColumns';
|
|
16
16
|
import ResizableHeaderCell from './ResizableHeaderCell';
|
|
17
17
|
import { TableProps, ColumnProps } from './interface';
|
package/table/Table.tsx
CHANGED
|
@@ -30,7 +30,6 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
mergeQueries,
|
|
32
32
|
equalWith,
|
|
33
|
-
mergeColumns,
|
|
34
33
|
isAnyFixedRight,
|
|
35
34
|
assignColumnKeys,
|
|
36
35
|
flattenColumns,
|
|
@@ -56,7 +55,7 @@ import ColumnSorter from './ColumnSorter';
|
|
|
56
55
|
import ExpandedIcon from './CustomExpandIcon';
|
|
57
56
|
import HeadTable, { HeadTableProps } from './HeadTable';
|
|
58
57
|
import BodyTable, { BodyProps } from './Body';
|
|
59
|
-
import {
|
|
58
|
+
import { logger, cloneDeep, mergeComponents, mergeColumns } from './utils';
|
|
60
59
|
import {
|
|
61
60
|
ColumnProps,
|
|
62
61
|
TablePaginationProps,
|
package/table/utils.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { merge } from 'lodash';
|
|
1
|
+
import { merge, clone as lodashClone, find, map } from 'lodash';
|
|
2
2
|
import Logger from '@douyinfe/semi-foundation/utils/Logger';
|
|
3
3
|
import { numbers } from '@douyinfe/semi-foundation/table/constants';
|
|
4
4
|
import { cloneDeep } from '../_utils';
|
|
5
5
|
import { TableComponents, Virtualized } from './interface';
|
|
6
|
+
import { getColumnKey } from '@douyinfe/semi-foundation/table/utils';
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
let scrollbarVerticalSize: number,
|
|
@@ -119,5 +120,30 @@ export function mergeComponents(components: TableComponents, virtualized: Virtua
|
|
|
119
120
|
);
|
|
120
121
|
}
|
|
121
122
|
|
|
123
|
+
export function mergeColumns(oldColumns: any[] = [], newColumns: any[] = [], keyPropNames: any[] = null, deep = true) {
|
|
124
|
+
const finalColumns: any[] = [];
|
|
125
|
+
const clone = deep ? cloneDeep : lodashClone;
|
|
126
|
+
|
|
127
|
+
map(newColumns, newColumn => {
|
|
128
|
+
newColumn = { ...newColumn };
|
|
129
|
+
const key = getColumnKey(newColumn, keyPropNames);
|
|
130
|
+
|
|
131
|
+
const oldColumn = key != null && find(oldColumns, item => getColumnKey(item, keyPropNames) === key);
|
|
132
|
+
|
|
133
|
+
if (oldColumn) {
|
|
134
|
+
finalColumns.push(
|
|
135
|
+
clone({
|
|
136
|
+
...oldColumn,
|
|
137
|
+
...newColumn,
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
} else {
|
|
141
|
+
finalColumns.push(clone(newColumn));
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
return finalColumns;
|
|
146
|
+
}
|
|
147
|
+
|
|
122
148
|
export const logger = new Logger('[@douyinfe/semi-ui Table]');
|
|
123
149
|
export { cloneDeep };
|