@douyinfe/semi-ui 2.55.0 → 2.55.1
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 +18 -8
- 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/collapse/collapse-context.d.ts +1 -0
- package/lib/cjs/collapse/index.d.ts +2 -0
- package/lib/cjs/collapse/index.js +9 -5
- package/lib/cjs/collapse/item.js +3 -1
- package/lib/cjs/collapsible/index.d.ts +1 -0
- package/lib/cjs/collapsible/index.js +6 -2
- package/lib/es/collapse/collapse-context.d.ts +1 -0
- package/lib/es/collapse/index.d.ts +2 -0
- package/lib/es/collapse/index.js +10 -6
- package/lib/es/collapse/item.js +3 -1
- package/lib/es/collapsible/index.d.ts +1 -0
- package/lib/es/collapsible/index.js +6 -2
- package/package.json +8 -8
|
@@ -8,6 +8,7 @@ export interface CollapseContextType {
|
|
|
8
8
|
expandIconPosition: 'left' | 'right';
|
|
9
9
|
onClick: (activeKey: string, e: React.MouseEvent) => void;
|
|
10
10
|
motion: boolean;
|
|
11
|
+
lazyRender: boolean;
|
|
11
12
|
}
|
|
12
13
|
declare const CollapseContext: React.Context<CollapseContextType>;
|
|
13
14
|
export default CollapseContext;
|
|
@@ -11,6 +11,7 @@ export interface CollapseReactProps extends CollapseProps {
|
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
style?: CSSProperties;
|
|
13
13
|
onChange?: (activeKey: CollapseProps['activeKey'], e: React.MouseEvent) => void;
|
|
14
|
+
lazyRender?: boolean;
|
|
14
15
|
}
|
|
15
16
|
export type { CollapseState };
|
|
16
17
|
declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState> {
|
|
@@ -28,6 +29,7 @@ declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState>
|
|
|
28
29
|
keepDOM: PropTypes.Requireable<boolean>;
|
|
29
30
|
motion: PropTypes.Requireable<NonNullable<boolean | object>>;
|
|
30
31
|
expandIconPosition: PropTypes.Requireable<string>;
|
|
32
|
+
lazyRender: PropTypes.Requireable<boolean>;
|
|
31
33
|
};
|
|
32
34
|
static __SemiComponentName__: string;
|
|
33
35
|
static defaultProps: any;
|
|
@@ -66,6 +66,7 @@ class Collapse extends _baseComponent.default {
|
|
|
66
66
|
const _a = this.props,
|
|
67
67
|
{
|
|
68
68
|
defaultActiveKey,
|
|
69
|
+
lazyRender,
|
|
69
70
|
accordion,
|
|
70
71
|
style,
|
|
71
72
|
motion,
|
|
@@ -77,7 +78,7 @@ class Collapse extends _baseComponent.default {
|
|
|
77
78
|
children,
|
|
78
79
|
clickHeaderToExpand
|
|
79
80
|
} = _a,
|
|
80
|
-
rest = __rest(_a, ["defaultActiveKey", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
|
|
81
|
+
rest = __rest(_a, ["defaultActiveKey", "lazyRender", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
|
|
81
82
|
const clsPrefix = (0, _classnames.default)(_constants.cssClasses.PREFIX, className);
|
|
82
83
|
const {
|
|
83
84
|
activeSet
|
|
@@ -94,7 +95,8 @@ class Collapse extends _baseComponent.default {
|
|
|
94
95
|
keepDOM,
|
|
95
96
|
expandIconPosition,
|
|
96
97
|
onClick: this.onChange,
|
|
97
|
-
motion
|
|
98
|
+
motion,
|
|
99
|
+
lazyRender
|
|
98
100
|
}
|
|
99
101
|
}, children));
|
|
100
102
|
}
|
|
@@ -112,14 +114,16 @@ Collapse.propTypes = {
|
|
|
112
114
|
className: _propTypes.default.string,
|
|
113
115
|
keepDOM: _propTypes.default.bool,
|
|
114
116
|
motion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.object]),
|
|
115
|
-
expandIconPosition: _propTypes.default.oneOf(_constants.strings.iconPosition)
|
|
117
|
+
expandIconPosition: _propTypes.default.oneOf(_constants.strings.iconPosition),
|
|
118
|
+
lazyRender: _propTypes.default.bool
|
|
116
119
|
};
|
|
117
|
-
Collapse.__SemiComponentName__ =
|
|
120
|
+
Collapse.__SemiComponentName__ = 'Collapse';
|
|
118
121
|
Collapse.defaultProps = (0, _utils.getDefaultPropsFromGlobalConfig)(Collapse.__SemiComponentName__, {
|
|
119
122
|
defaultActiveKey: '',
|
|
120
123
|
clickHeaderToExpand: true,
|
|
121
124
|
onChange: _function.noop,
|
|
122
|
-
expandIconPosition: 'right'
|
|
125
|
+
expandIconPosition: 'right',
|
|
126
|
+
lazyRender: false
|
|
123
127
|
});
|
|
124
128
|
var _default = Collapse;
|
|
125
129
|
exports.default = _default;
|
package/lib/cjs/collapse/item.js
CHANGED
|
@@ -92,7 +92,8 @@ class CollapsePanel extends _react.PureComponent {
|
|
|
92
92
|
keepDOM,
|
|
93
93
|
expandIconPosition,
|
|
94
94
|
activeSet,
|
|
95
|
-
motion
|
|
95
|
+
motion,
|
|
96
|
+
lazyRender
|
|
96
97
|
} = this.context;
|
|
97
98
|
const active = activeSet.has(itemKey);
|
|
98
99
|
const itemCls = (0, _classnames.default)(className, {
|
|
@@ -117,6 +118,7 @@ class CollapsePanel extends _react.PureComponent {
|
|
|
117
118
|
"aria-owns": this.ariaID,
|
|
118
119
|
onClick: e => !disabled && this.handleClick(itemKey, e)
|
|
119
120
|
}, this.renderHeader(active, children !== undefined && !disabled)), children && /*#__PURE__*/_react.default.createElement(_collapsible.default, {
|
|
121
|
+
lazyRender: lazyRender,
|
|
120
122
|
isOpen: active,
|
|
121
123
|
keepDOM: keepDOM,
|
|
122
124
|
motion: motion,
|
|
@@ -29,6 +29,7 @@ declare class Collapsible extends BaseComponent<CollapsibleProps, CollapsibleSta
|
|
|
29
29
|
foundation: CollapsibleFoundation;
|
|
30
30
|
private domRef;
|
|
31
31
|
private resizeObserver;
|
|
32
|
+
private hasBeenRendered;
|
|
32
33
|
constructor(props: CollapsibleProps);
|
|
33
34
|
get adapter(): CollapsibleAdapter<CollapsibleProps, CollapsibleState>;
|
|
34
35
|
static getEntryInfo: (entry: ResizeObserverEntry) => {
|
|
@@ -18,6 +18,7 @@ class Collapsible extends _baseComponent.default {
|
|
|
18
18
|
constructor(props) {
|
|
19
19
|
super(props);
|
|
20
20
|
this.domRef = /*#__PURE__*/_react.default.createRef();
|
|
21
|
+
this.hasBeenRendered = false;
|
|
21
22
|
this.handleResize = entryList => {
|
|
22
23
|
const entry = entryList[0];
|
|
23
24
|
if (entry) {
|
|
@@ -114,7 +115,10 @@ class Collapsible extends _baseComponent.default {
|
|
|
114
115
|
const wrapperCls = (0, _classnames.default)(`${_constants.cssClasses.PREFIX}-wrapper`, {
|
|
115
116
|
[`${_constants.cssClasses.PREFIX}-transition`]: this.props.motion && this.state.isTransitioning
|
|
116
117
|
}, this.props.className);
|
|
117
|
-
const shouldRender = this.props.keepDOM &&
|
|
118
|
+
const shouldRender = this.props.keepDOM && (this.props.lazyRender ? this.hasBeenRendered : true) || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen;
|
|
119
|
+
if (shouldRender && !this.hasBeenRendered) {
|
|
120
|
+
this.hasBeenRendered = true;
|
|
121
|
+
}
|
|
118
122
|
return /*#__PURE__*/_react.default.createElement("div", Object.assign({
|
|
119
123
|
className: wrapperCls,
|
|
120
124
|
style: wrapperStyle,
|
|
@@ -142,7 +146,7 @@ Collapsible.defaultProps = (0, _utils.getDefaultPropsFromGlobalConfig)(Collapsib
|
|
|
142
146
|
duration: 250,
|
|
143
147
|
motion: true,
|
|
144
148
|
keepDOM: false,
|
|
145
|
-
lazyRender:
|
|
149
|
+
lazyRender: false,
|
|
146
150
|
collapseHeight: 0,
|
|
147
151
|
fade: false
|
|
148
152
|
});
|
|
@@ -8,6 +8,7 @@ export interface CollapseContextType {
|
|
|
8
8
|
expandIconPosition: 'left' | 'right';
|
|
9
9
|
onClick: (activeKey: string, e: React.MouseEvent) => void;
|
|
10
10
|
motion: boolean;
|
|
11
|
+
lazyRender: boolean;
|
|
11
12
|
}
|
|
12
13
|
declare const CollapseContext: React.Context<CollapseContextType>;
|
|
13
14
|
export default CollapseContext;
|
|
@@ -11,6 +11,7 @@ export interface CollapseReactProps extends CollapseProps {
|
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
style?: CSSProperties;
|
|
13
13
|
onChange?: (activeKey: CollapseProps['activeKey'], e: React.MouseEvent) => void;
|
|
14
|
+
lazyRender?: boolean;
|
|
14
15
|
}
|
|
15
16
|
export type { CollapseState };
|
|
16
17
|
declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState> {
|
|
@@ -28,6 +29,7 @@ declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState>
|
|
|
28
29
|
keepDOM: PropTypes.Requireable<boolean>;
|
|
29
30
|
motion: PropTypes.Requireable<NonNullable<boolean | object>>;
|
|
30
31
|
expandIconPosition: PropTypes.Requireable<string>;
|
|
32
|
+
lazyRender: PropTypes.Requireable<boolean>;
|
|
31
33
|
};
|
|
32
34
|
static __SemiComponentName__: string;
|
|
33
35
|
static defaultProps: any;
|
package/lib/es/collapse/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import CollapsePanel from './item';
|
|
|
17
17
|
import '@douyinfe/semi-foundation/lib/es/collapse/collapse.css';
|
|
18
18
|
import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function';
|
|
19
19
|
import CollapseContext from './collapse-context';
|
|
20
|
-
import { getDefaultPropsFromGlobalConfig } from
|
|
20
|
+
import { getDefaultPropsFromGlobalConfig } from '../_utils';
|
|
21
21
|
class Collapse extends BaseComponent {
|
|
22
22
|
constructor(props) {
|
|
23
23
|
super(props);
|
|
@@ -59,6 +59,7 @@ class Collapse extends BaseComponent {
|
|
|
59
59
|
const _a = this.props,
|
|
60
60
|
{
|
|
61
61
|
defaultActiveKey,
|
|
62
|
+
lazyRender,
|
|
62
63
|
accordion,
|
|
63
64
|
style,
|
|
64
65
|
motion,
|
|
@@ -70,7 +71,7 @@ class Collapse extends BaseComponent {
|
|
|
70
71
|
children,
|
|
71
72
|
clickHeaderToExpand
|
|
72
73
|
} = _a,
|
|
73
|
-
rest = __rest(_a, ["defaultActiveKey", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
|
|
74
|
+
rest = __rest(_a, ["defaultActiveKey", "lazyRender", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
|
|
74
75
|
const clsPrefix = cls(cssClasses.PREFIX, className);
|
|
75
76
|
const {
|
|
76
77
|
activeSet
|
|
@@ -87,7 +88,8 @@ class Collapse extends BaseComponent {
|
|
|
87
88
|
keepDOM,
|
|
88
89
|
expandIconPosition,
|
|
89
90
|
onClick: this.onChange,
|
|
90
|
-
motion
|
|
91
|
+
motion,
|
|
92
|
+
lazyRender
|
|
91
93
|
}
|
|
92
94
|
}, children));
|
|
93
95
|
}
|
|
@@ -105,13 +107,15 @@ Collapse.propTypes = {
|
|
|
105
107
|
className: PropTypes.string,
|
|
106
108
|
keepDOM: PropTypes.bool,
|
|
107
109
|
motion: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object]),
|
|
108
|
-
expandIconPosition: PropTypes.oneOf(strings.iconPosition)
|
|
110
|
+
expandIconPosition: PropTypes.oneOf(strings.iconPosition),
|
|
111
|
+
lazyRender: PropTypes.bool
|
|
109
112
|
};
|
|
110
|
-
Collapse.__SemiComponentName__ =
|
|
113
|
+
Collapse.__SemiComponentName__ = 'Collapse';
|
|
111
114
|
Collapse.defaultProps = getDefaultPropsFromGlobalConfig(Collapse.__SemiComponentName__, {
|
|
112
115
|
defaultActiveKey: '',
|
|
113
116
|
clickHeaderToExpand: true,
|
|
114
117
|
onChange: noop,
|
|
115
|
-
expandIconPosition: 'right'
|
|
118
|
+
expandIconPosition: 'right',
|
|
119
|
+
lazyRender: false
|
|
116
120
|
});
|
|
117
121
|
export default Collapse;
|
package/lib/es/collapse/item.js
CHANGED
|
@@ -83,7 +83,8 @@ export default class CollapsePanel extends PureComponent {
|
|
|
83
83
|
keepDOM,
|
|
84
84
|
expandIconPosition,
|
|
85
85
|
activeSet,
|
|
86
|
-
motion
|
|
86
|
+
motion,
|
|
87
|
+
lazyRender
|
|
87
88
|
} = this.context;
|
|
88
89
|
const active = activeSet.has(itemKey);
|
|
89
90
|
const itemCls = cls(className, {
|
|
@@ -108,6 +109,7 @@ export default class CollapsePanel extends PureComponent {
|
|
|
108
109
|
"aria-owns": this.ariaID,
|
|
109
110
|
onClick: e => !disabled && this.handleClick(itemKey, e)
|
|
110
111
|
}, this.renderHeader(active, children !== undefined && !disabled)), children && /*#__PURE__*/React.createElement(Collapsible, {
|
|
112
|
+
lazyRender: lazyRender,
|
|
111
113
|
isOpen: active,
|
|
112
114
|
keepDOM: keepDOM,
|
|
113
115
|
motion: motion,
|
|
@@ -29,6 +29,7 @@ declare class Collapsible extends BaseComponent<CollapsibleProps, CollapsibleSta
|
|
|
29
29
|
foundation: CollapsibleFoundation;
|
|
30
30
|
private domRef;
|
|
31
31
|
private resizeObserver;
|
|
32
|
+
private hasBeenRendered;
|
|
32
33
|
constructor(props: CollapsibleProps);
|
|
33
34
|
get adapter(): CollapsibleAdapter<CollapsibleProps, CollapsibleState>;
|
|
34
35
|
static getEntryInfo: (entry: ResizeObserverEntry) => {
|
|
@@ -11,6 +11,7 @@ class Collapsible extends BaseComponent {
|
|
|
11
11
|
constructor(props) {
|
|
12
12
|
super(props);
|
|
13
13
|
this.domRef = /*#__PURE__*/React.createRef();
|
|
14
|
+
this.hasBeenRendered = false;
|
|
14
15
|
this.handleResize = entryList => {
|
|
15
16
|
const entry = entryList[0];
|
|
16
17
|
if (entry) {
|
|
@@ -107,7 +108,10 @@ class Collapsible extends BaseComponent {
|
|
|
107
108
|
const wrapperCls = cls(`${cssClasses.PREFIX}-wrapper`, {
|
|
108
109
|
[`${cssClasses.PREFIX}-transition`]: this.props.motion && this.state.isTransitioning
|
|
109
110
|
}, this.props.className);
|
|
110
|
-
const shouldRender = this.props.keepDOM &&
|
|
111
|
+
const shouldRender = this.props.keepDOM && (this.props.lazyRender ? this.hasBeenRendered : true) || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen;
|
|
112
|
+
if (shouldRender && !this.hasBeenRendered) {
|
|
113
|
+
this.hasBeenRendered = true;
|
|
114
|
+
}
|
|
111
115
|
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
112
116
|
className: wrapperCls,
|
|
113
117
|
style: wrapperStyle,
|
|
@@ -135,7 +139,7 @@ Collapsible.defaultProps = getDefaultPropsFromGlobalConfig(Collapsible.__SemiCom
|
|
|
135
139
|
duration: 250,
|
|
136
140
|
motion: true,
|
|
137
141
|
keepDOM: false,
|
|
138
|
-
lazyRender:
|
|
142
|
+
lazyRender: false,
|
|
139
143
|
collapseHeight: 0,
|
|
140
144
|
fade: false
|
|
141
145
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douyinfe/semi-ui",
|
|
3
|
-
"version": "2.55.
|
|
3
|
+
"version": "2.55.1",
|
|
4
4
|
"description": "A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es/index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"@dnd-kit/core": "^6.0.8",
|
|
21
21
|
"@dnd-kit/sortable": "^7.0.2",
|
|
22
22
|
"@dnd-kit/utilities": "^3.2.1",
|
|
23
|
-
"@douyinfe/semi-animation": "2.55.
|
|
24
|
-
"@douyinfe/semi-animation-react": "2.55.
|
|
25
|
-
"@douyinfe/semi-foundation": "2.55.
|
|
26
|
-
"@douyinfe/semi-icons": "2.55.
|
|
27
|
-
"@douyinfe/semi-illustrations": "2.55.
|
|
28
|
-
"@douyinfe/semi-theme-default": "2.55.
|
|
23
|
+
"@douyinfe/semi-animation": "2.55.1",
|
|
24
|
+
"@douyinfe/semi-animation-react": "2.55.1",
|
|
25
|
+
"@douyinfe/semi-foundation": "2.55.1",
|
|
26
|
+
"@douyinfe/semi-icons": "2.55.1",
|
|
27
|
+
"@douyinfe/semi-illustrations": "2.55.1",
|
|
28
|
+
"@douyinfe/semi-theme-default": "2.55.1",
|
|
29
29
|
"async-validator": "^3.5.0",
|
|
30
30
|
"classnames": "^2.2.6",
|
|
31
31
|
"copy-text-to-clipboard": "^2.1.1",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
],
|
|
76
76
|
"author": "",
|
|
77
77
|
"license": "MIT",
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "d74bd5368afc88bc49abc4ba432be9dd74fa707b",
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@babel/plugin-proposal-decorators": "^7.15.8",
|
|
81
81
|
"@babel/plugin-transform-runtime": "^7.15.8",
|