@alifd/chat 0.3.40-beta.0 → 0.3.40-beta.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/es/ai-loading/types.d.ts +1 -0
- package/es/button/button.d.ts +1 -2
- package/es/button/button.js +13 -19
- package/es/button/group.js +5 -42
- package/es/button/main.scss +36 -77
- package/es/card/main.scss +1 -1
- package/es/checkbox-group/main.scss +6 -7
- package/es/checkbox-group/types.d.ts +6 -0
- package/es/code-view/index.d.ts +11 -0
- package/es/code-view/index.js +63 -0
- package/es/code-view/main.scss +54 -0
- package/es/code-view/style.d.ts +4 -0
- package/es/code-view/style.js +4 -0
- package/es/code-view/types.d.ts +27 -0
- package/es/code-view/types.js +1 -0
- package/es/collapse/index.d.ts +157 -0
- package/es/collapse/index.js +20 -0
- package/es/collapse/main.scss +95 -0
- package/es/collapse/style.d.ts +2 -0
- package/es/collapse/style.js +2 -0
- package/es/collapse/types.d.ts +82 -0
- package/es/collapse/types.js +2 -0
- package/es/core/variables.scss +27 -12
- package/es/date-picker/DatePicker.d.ts +5 -0
- package/es/date-picker/DatePicker.js +15 -0
- package/es/date-picker/MonthPicker.d.ts +4 -0
- package/es/date-picker/MonthPicker.js +15 -0
- package/es/date-picker/RangePicker.d.ts +4 -0
- package/es/date-picker/RangePicker.js +17 -0
- package/es/date-picker/YearPicker.d.ts +4 -0
- package/es/date-picker/YearPicker.js +15 -0
- package/es/date-picker/index.d.ts +5 -23
- package/es/date-picker/index.js +11 -29
- package/es/date-picker/main.scss +23 -1
- package/es/date-picker/style.d.ts +1 -0
- package/es/date-picker/style.js +1 -0
- package/es/date-picker/types.d.ts +161 -81
- package/es/float-button/hooks/useAutoAlign.d.ts +1 -1
- package/es/form/style.d.ts +0 -1
- package/es/form/style.js +2 -1
- package/es/form/types.d.ts +3 -517
- package/es/form/types.js +5 -1
- package/es/html-render/index.d.ts +1 -1
- package/es/html-render/index.js +118 -106
- package/es/html-render/main.scss +27 -8
- package/es/html-render/style.d.ts +1 -0
- package/es/html-render/style.js +1 -0
- package/es/icon/index.d.ts +1 -1
- package/es/index.d.ts +3 -0
- package/es/index.js +4 -1
- package/es/input/index.d.ts +1 -1
- package/es/input/index.js +16 -6
- package/es/input/main.scss +25 -0
- package/es/input/style.d.ts +1 -0
- package/es/input/style.js +1 -0
- package/es/input/types.d.ts +58 -15
- package/es/markdown/index.d.ts +1 -2
- package/es/markdown/index.js +26 -15
- package/es/markdown/main.scss +4 -3
- package/es/markdown/style.d.ts +2 -1
- package/es/markdown/style.js +2 -1
- package/es/markdown/types.d.ts +20 -9
- package/es/message/index.d.ts +4 -4
- package/es/person-picker/index.d.ts +3 -190
- package/es/person-picker/index.js +23 -21
- package/es/person-picker/main.scss +15 -1
- package/es/person-picker/types.d.ts +53 -11
- package/es/radio-group/index.d.ts +1 -1
- package/es/radio-group/index.js +9 -3
- package/es/radio-group/main.scss +13 -5
- package/es/radio-group/types.d.ts +5 -3
- package/es/reference/index.d.ts +1 -1
- package/es/reference/index.js +14 -15
- package/es/reference/main.scss +1 -1
- package/es/reference/types.d.ts +1 -0
- package/es/select/button.d.ts +3 -0
- package/es/select/button.js +70 -0
- package/es/select/index.d.ts +79 -79
- package/es/select/index.js +13 -57
- package/es/select/main.scss +22 -4
- package/es/select/types.d.ts +108 -1
- package/es/step/index.js +2 -2
- package/es/step/main.scss +115 -66
- package/es/step/types.d.ts +13 -2
- package/es/table/index.d.ts +12 -0
- package/es/table/index.js +23 -0
- package/es/table/main.scss +30 -0
- package/es/table/style.d.ts +2 -0
- package/es/table/style.js +2 -0
- package/es/table/types.d.ts +98 -0
- package/es/table/types.js +1 -0
- package/es/tag/index.d.ts +5 -3
- package/es/tag/index.js +18 -2
- package/es/tag/main.scss +20 -4
- package/es/tag/types.d.ts +55 -0
- package/es/text/index.js +1 -1
- package/es/text/main.scss +4 -1
- package/es/text/types.d.ts +8 -0
- package/es/time-picker/index.d.ts +6 -15
- package/es/time-picker/index.js +71 -24
- package/es/time-picker/main.scss +19 -1
- package/es/time-picker/style.d.ts +1 -0
- package/es/time-picker/style.js +1 -0
- package/es/time-picker/types.d.ts +133 -8
- package/es/tool-status/index.d.ts +1 -1
- package/es/tool-status/index.js +1 -1
- package/es/tool-status/main.scss +2 -1
- package/es/tool-status/types.d.ts +7 -2
- package/es/utils/func.d.ts +1 -0
- package/es/utils/func.js +13 -0
- package/es/utils/github-dark.scss +137 -0
- package/es/utils/github.scss +137 -0
- package/es/utils/hoc/main.scss +166 -0
- package/es/utils/hoc/withLabel.d.ts +94 -0
- package/es/utils/hoc/withLabel.js +57 -0
- package/es/utils/index.d.ts +1 -0
- package/es/utils/index.js +1 -0
- package/lib/ai-loading/types.d.ts +1 -0
- package/lib/button/button.d.ts +1 -2
- package/lib/button/button.js +13 -19
- package/lib/button/group.js +4 -41
- package/lib/button/main.scss +36 -77
- package/lib/card/main.scss +1 -1
- package/lib/checkbox-group/main.scss +6 -7
- package/lib/checkbox-group/types.d.ts +6 -0
- package/lib/code-view/index.d.ts +11 -0
- package/lib/code-view/index.js +66 -0
- package/lib/code-view/main.scss +54 -0
- package/lib/code-view/style.d.ts +4 -0
- package/lib/code-view/style.js +6 -0
- package/lib/code-view/types.d.ts +27 -0
- package/lib/code-view/types.js +2 -0
- package/lib/collapse/index.d.ts +157 -0
- package/lib/collapse/index.js +22 -0
- package/lib/collapse/main.scss +95 -0
- package/lib/collapse/style.d.ts +2 -0
- package/lib/collapse/style.js +4 -0
- package/lib/collapse/types.d.ts +82 -0
- package/lib/collapse/types.js +3 -0
- package/lib/core/variables.scss +27 -12
- package/lib/date-picker/DatePicker.d.ts +5 -0
- package/lib/date-picker/DatePicker.js +17 -0
- package/lib/date-picker/MonthPicker.d.ts +4 -0
- package/lib/date-picker/MonthPicker.js +17 -0
- package/lib/date-picker/RangePicker.d.ts +4 -0
- package/lib/date-picker/RangePicker.js +19 -0
- package/lib/date-picker/YearPicker.d.ts +4 -0
- package/lib/date-picker/YearPicker.js +17 -0
- package/lib/date-picker/index.d.ts +5 -23
- package/lib/date-picker/index.js +10 -27
- package/lib/date-picker/main.scss +23 -1
- package/lib/date-picker/style.d.ts +1 -0
- package/lib/date-picker/style.js +1 -0
- package/lib/date-picker/types.d.ts +161 -81
- package/lib/float-button/hooks/useAutoAlign.d.ts +1 -1
- package/lib/form/style.d.ts +0 -1
- package/lib/form/style.js +1 -2
- package/lib/form/types.d.ts +3 -517
- package/lib/form/types.js +4 -1
- package/lib/html-render/index.d.ts +1 -1
- package/lib/html-render/index.js +118 -106
- package/lib/html-render/main.scss +27 -8
- package/lib/html-render/style.d.ts +1 -0
- package/lib/html-render/style.js +1 -0
- package/lib/icon/index.d.ts +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.js +8 -2
- package/lib/input/index.d.ts +1 -1
- package/lib/input/index.js +16 -6
- package/lib/input/main.scss +25 -0
- package/lib/input/style.d.ts +1 -0
- package/lib/input/style.js +1 -0
- package/lib/input/types.d.ts +58 -15
- package/lib/markdown/index.d.ts +1 -2
- package/lib/markdown/index.js +26 -15
- package/lib/markdown/main.scss +4 -3
- package/lib/markdown/style.d.ts +2 -1
- package/lib/markdown/style.js +2 -1
- package/lib/markdown/types.d.ts +20 -9
- package/lib/message/index.d.ts +4 -4
- package/lib/person-picker/index.d.ts +3 -190
- package/lib/person-picker/index.js +22 -20
- package/lib/person-picker/main.scss +15 -1
- package/lib/person-picker/types.d.ts +53 -11
- package/lib/radio-group/index.d.ts +1 -1
- package/lib/radio-group/index.js +8 -2
- package/lib/radio-group/main.scss +13 -5
- package/lib/radio-group/types.d.ts +5 -3
- package/lib/reference/index.d.ts +1 -1
- package/lib/reference/index.js +17 -18
- package/lib/reference/main.scss +1 -1
- package/lib/reference/types.d.ts +1 -0
- package/lib/select/button.d.ts +3 -0
- package/lib/select/button.js +74 -0
- package/lib/select/index.d.ts +79 -79
- package/lib/select/index.js +11 -55
- package/lib/select/main.scss +22 -4
- package/lib/select/types.d.ts +108 -1
- package/lib/step/index.js +2 -2
- package/lib/step/main.scss +115 -66
- package/lib/step/types.d.ts +13 -2
- package/lib/table/index.d.ts +12 -0
- package/lib/table/index.js +25 -0
- package/lib/table/main.scss +30 -0
- package/lib/table/style.d.ts +2 -0
- package/lib/table/style.js +4 -0
- package/lib/table/types.d.ts +98 -0
- package/lib/table/types.js +2 -0
- package/lib/tag/index.d.ts +5 -3
- package/lib/tag/index.js +17 -1
- package/lib/tag/main.scss +20 -4
- package/lib/tag/types.d.ts +55 -0
- package/lib/text/index.js +1 -1
- package/lib/text/main.scss +4 -1
- package/lib/text/types.d.ts +8 -0
- package/lib/time-picker/index.d.ts +6 -15
- package/lib/time-picker/index.js +71 -23
- package/lib/time-picker/main.scss +19 -1
- package/lib/time-picker/style.d.ts +1 -0
- package/lib/time-picker/style.js +1 -0
- package/lib/time-picker/types.d.ts +133 -8
- package/lib/tool-status/index.d.ts +1 -1
- package/lib/tool-status/index.js +1 -1
- package/lib/tool-status/main.scss +2 -1
- package/lib/tool-status/types.d.ts +7 -2
- package/lib/utils/func.d.ts +1 -0
- package/lib/utils/func.js +15 -0
- package/lib/utils/github-dark.scss +137 -0
- package/lib/utils/github.scss +137 -0
- package/lib/utils/hoc/main.scss +166 -0
- package/lib/utils/hoc/withLabel.d.ts +94 -0
- package/lib/utils/hoc/withLabel.js +60 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +1 -0
- package/package.json +49 -4
- package/es/form/index.d.ts +0 -23
- package/es/form/index.js +0 -33
- package/es/form/main.scss +0 -5
- package/lib/form/index.d.ts +0 -23
- package/lib/form/index.js +0 -35
- package/lib/form/main.scss +0 -5
package/lib/button/group.js
CHANGED
|
@@ -25,21 +25,8 @@ const next_1 = require("@alifd/next");
|
|
|
25
25
|
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
26
26
|
const utils_1 = require("../utils");
|
|
27
27
|
const button_1 = tslib_1.__importDefault(require("./button"));
|
|
28
|
-
const ADAPTOR_WIDTH = 600;
|
|
29
28
|
const ButtonGroup = (0, react_1.forwardRef)((props, ref) => {
|
|
30
29
|
const { className, size = 'small', type = 'row', dataSource, children } = props;
|
|
31
|
-
const [clientWidth, setClientWidth] = (0, react_1.useState)(document.documentElement.clientWidth);
|
|
32
|
-
(0, react_1.useEffect)(() => {
|
|
33
|
-
const handleResize = () => {
|
|
34
|
-
setTimeout(() => {
|
|
35
|
-
setClientWidth(document.documentElement.clientWidth);
|
|
36
|
-
}, 100);
|
|
37
|
-
};
|
|
38
|
-
window.addEventListener('resize', handleResize);
|
|
39
|
-
return () => {
|
|
40
|
-
window.removeEventListener('resize', handleResize);
|
|
41
|
-
};
|
|
42
|
-
}, []);
|
|
43
30
|
const renderRowButtons = (items) => {
|
|
44
31
|
if (!items || !items.length) {
|
|
45
32
|
return null;
|
|
@@ -50,33 +37,9 @@ const ButtonGroup = (0, react_1.forwardRef)((props, ref) => {
|
|
|
50
37
|
}
|
|
51
38
|
// Button组件的有些属性不太符合需求, text是一种type
|
|
52
39
|
const _a = button || {}, { buttonType, buttonStatus, label, icon } = _a, others = tslib_1.__rest(_a, ["buttonType", "buttonStatus", "label", "icon"]);
|
|
53
|
-
return (react_1.default.createElement(button_1.default, Object.assign({ className: `single-button ${buttonType
|
|
40
|
+
return (react_1.default.createElement(button_1.default, Object.assign({ className: `single-button ${`${buttonType}_${buttonStatus}`}`, type: buttonType === 'text' ? 'primary' : buttonType, key: button.label, warning: buttonStatus === 'warning', text: buttonType === 'text', disabled: buttonStatus === 'disabled', loading: buttonStatus === 'loading', icon: icon, size: size }, others), label));
|
|
54
41
|
});
|
|
55
42
|
};
|
|
56
|
-
// 设计稿地址:https://mgdone.alibaba-inc.com/file/141793008176403?fileOpenFrom=home&fileTileSwitch=false&page_id=154%3A8248
|
|
57
|
-
// 大于600: 1,2,3:1行等距展示; 大于等于4个:每行两个,每行一个或2个
|
|
58
|
-
// 小于 600, 从上往下排
|
|
59
|
-
const renderColumnButtons = () => {
|
|
60
|
-
if (!dataSource || !dataSource.length) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
// const screenWidth = clientWidth;
|
|
64
|
-
if (clientWidth < ADAPTOR_WIDTH) {
|
|
65
|
-
return renderRowButtons(dataSource);
|
|
66
|
-
}
|
|
67
|
-
// 1,2,3:1行等距展示;
|
|
68
|
-
if (dataSource.length <= 3) {
|
|
69
|
-
return renderRowButtons(dataSource);
|
|
70
|
-
}
|
|
71
|
-
// 大于等于4个:每行两个
|
|
72
|
-
const rows = Math.ceil(dataSource.length / 2);
|
|
73
|
-
const buttonRows = Array.from({ length: rows }, (_, index) => {
|
|
74
|
-
const start = index * 2;
|
|
75
|
-
const end = Math.min(start + 2, dataSource.length); // Ensure end does not exceed array length
|
|
76
|
-
return react_1.default.createElement("div", { className: 'button-group sub' }, renderRowButtons(dataSource.slice(start, end)));
|
|
77
|
-
});
|
|
78
|
-
return buttonRows;
|
|
79
|
-
};
|
|
80
43
|
const renderButtons = () => {
|
|
81
44
|
if (react_1.default.isValidElement(children)) {
|
|
82
45
|
return children;
|
|
@@ -84,10 +47,10 @@ const ButtonGroup = (0, react_1.forwardRef)((props, ref) => {
|
|
|
84
47
|
if (!dataSource || !dataSource.length) {
|
|
85
48
|
return null;
|
|
86
49
|
}
|
|
87
|
-
|
|
50
|
+
const actionItems = renderRowButtons(dataSource);
|
|
88
51
|
return (react_1.default.createElement("div", { className: `button-group ${type}` },
|
|
89
|
-
type
|
|
90
|
-
type
|
|
52
|
+
type === 'row' && actionItems,
|
|
53
|
+
type === 'column' && actionItems));
|
|
91
54
|
};
|
|
92
55
|
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${utils_1.PREFIX_DEFAULT}button-group ${type}`, className), ref: ref }, renderButtons()));
|
|
93
56
|
});
|
package/lib/button/main.scss
CHANGED
|
@@ -1,43 +1,42 @@
|
|
|
1
1
|
@import "../core/variables.scss";
|
|
2
2
|
|
|
3
3
|
.#{$prefix}button {
|
|
4
|
+
&.next-btn-text {
|
|
5
|
+
line-height: var(--common-text-line-height);
|
|
6
|
+
|
|
7
|
+
.next-btn-helper {
|
|
8
|
+
vertical-align: baseline;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&-with-icon {
|
|
13
|
+
&.large {
|
|
14
|
+
padding: 0 var(--btn-size-m-padding, 16px);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.medium {
|
|
18
|
+
padding: 0 var(--btn-size-s-padding, 12px);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&.small {
|
|
22
|
+
padding: 0 var(--btn-size-xs-padding, 8px);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
4
26
|
.common-icon {
|
|
5
|
-
margin-right: 4px;
|
|
27
|
+
margin-right: var(--s-1, 4px);
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
align-items: center;
|
|
6
30
|
}
|
|
7
31
|
|
|
8
32
|
&-group {
|
|
9
33
|
.single-button {
|
|
10
|
-
flex: 1 0 calc(50% -
|
|
34
|
+
flex: 1 0 calc(50% - 4px); // 修改为50%宽度,每个按钮间隔6px,所以是3px
|
|
11
35
|
text-align: center;
|
|
12
|
-
margin-right:
|
|
36
|
+
margin-right: 0px;
|
|
13
37
|
max-width: 100%;
|
|
14
38
|
overflow: hidden;
|
|
15
|
-
|
|
16
|
-
&:nth-child(n+3) {
|
|
17
|
-
margin-top: 8px;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// 使用nth-child选择器处理偶数按钮的右边距
|
|
21
|
-
&:nth-child(2n) {
|
|
22
|
-
margin-right: 0;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// 最后一个按钮不需要右边距
|
|
26
|
-
&:last-child {
|
|
27
|
-
margin-right: 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// 当按钮数量小于等于3个时,恢复为三等分布局
|
|
31
|
-
&:first-child:nth-last-child(-n+3),
|
|
32
|
-
&:first-child:nth-last-child(-n+3) ~ .single-button {
|
|
33
|
-
flex: 1 0 calc(33.33% - 6px);
|
|
34
|
-
margin-top: 0;
|
|
35
|
-
|
|
36
|
-
// 重置偶数按钮的右边距规则
|
|
37
|
-
&:nth-child(2n) {
|
|
38
|
-
margin-right: 6px;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
39
|
+
flex-shrink: 1;
|
|
41
40
|
|
|
42
41
|
.next-btn-helper {
|
|
43
42
|
max-width: 100%;
|
|
@@ -52,57 +51,17 @@
|
|
|
52
51
|
justify-content: space-between; /* 这里可能不再需要,因为我们通过flex-basis控制每行按钮数 */
|
|
53
52
|
align-items: center;
|
|
54
53
|
width: 100%;
|
|
55
|
-
margin-bottom: 8px;
|
|
56
|
-
&:last-child{
|
|
57
|
-
margin-bottom: 0px;
|
|
58
|
-
}
|
|
59
|
-
&.column {
|
|
60
|
-
.single-button {
|
|
61
|
-
width: 100%;
|
|
62
|
-
margin-bottom: 8px;
|
|
63
|
-
&:last-child {
|
|
64
|
-
margin-bottom: 0px;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
display: block;
|
|
68
|
-
// 如果设计调整对应的适配宽度,需要调整这里的值
|
|
69
|
-
@media (min-width: 600px) {
|
|
70
|
-
display: flex;
|
|
71
|
-
.single-button {
|
|
72
|
-
margin-bottom: 0px;
|
|
73
|
-
flex: 1 0 calc(33.33% - 6px); /* 每个按钮占据33.33%的宽度减去左右各3px的间隔(总共6px)来保证每行三个 */
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
&.sub {
|
|
79
|
-
.single-button {
|
|
80
|
-
max-width: calc(50% - 6px);
|
|
81
|
-
margin-bottom: 0;
|
|
82
|
-
}
|
|
83
|
-
@media (max-width: 600px) {
|
|
84
|
-
display: block;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
54
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
border: none !important;
|
|
93
|
-
background-color: $color-brand1-1 !important;
|
|
94
|
-
color: $color-brand1-6 !important;
|
|
95
|
-
|
|
96
|
-
&:hover {
|
|
97
|
-
opacity: 0.8;
|
|
98
|
-
border: none !important;
|
|
99
|
-
color: $color-brand1-6 !important;
|
|
100
|
-
background-color: $color-brand1-1 !important;
|
|
55
|
+
.row {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-wrap: nowrap;
|
|
58
|
+
gap: var(--s-2, 8px);
|
|
101
59
|
}
|
|
102
60
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
61
|
+
.column {
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-wrap: wrap;
|
|
64
|
+
gap: var(--s-2, 8px);
|
|
106
65
|
}
|
|
107
66
|
}
|
|
108
67
|
}
|
package/lib/card/main.scss
CHANGED
|
@@ -4,25 +4,25 @@
|
|
|
4
4
|
.checkbox-item {
|
|
5
5
|
display: flex;
|
|
6
6
|
align-items: flex-start;
|
|
7
|
-
padding:
|
|
8
|
-
margin-bottom: 8px;
|
|
7
|
+
padding: var(--s-2, 8px);
|
|
8
|
+
margin-bottom: var(--s-2, 8px);
|
|
9
9
|
border-radius: 6px;
|
|
10
|
-
background-color:
|
|
10
|
+
background-color: var(--color-fill1-1, #F6F8FC);
|
|
11
11
|
cursor: pointer;
|
|
12
12
|
|
|
13
13
|
&:hover {
|
|
14
|
-
background-color:
|
|
14
|
+
background-color: var(--color-fill1-2, #F0F2F5);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
&.active {
|
|
18
|
-
background-color:
|
|
18
|
+
background-color: var(--color-fill1-2, #F0F2F5);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.checkbox-item-checkbox {
|
|
23
23
|
flex-shrink: 0;
|
|
24
24
|
flex-grow: 0;
|
|
25
|
-
margin-right: 8px;
|
|
25
|
+
margin-right: var(--s-2, 8px);
|
|
26
26
|
height: 22px;
|
|
27
27
|
display: flex;
|
|
28
28
|
align-items: center;
|
|
@@ -58,6 +58,5 @@
|
|
|
58
58
|
|
|
59
59
|
.confirm-button {
|
|
60
60
|
width: 100%;
|
|
61
|
-
margin-top: 4px;
|
|
62
61
|
}
|
|
63
62
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @component 代码视图
|
|
3
|
+
* @en CodeView
|
|
4
|
+
* @type 展示 - Display
|
|
5
|
+
* @remarks 用于展示代码块的组件,支持语法高亮和复制功能。
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { CodeViewProps } from './types';
|
|
9
|
+
export * from './types';
|
|
10
|
+
declare const _default: import("@alifd/next/types/config-provider/types").ConfiguredComponentClass<Pick<CodeViewProps & React.RefAttributes<HTMLDivElement>, "key" | keyof CodeViewProps> & import("@alifd/next/types/config-provider/types").ComponentCommonProps, HTMLDivElement, {}>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/**
|
|
5
|
+
* @component 代码视图
|
|
6
|
+
* @en CodeView
|
|
7
|
+
* @type 展示 - Display
|
|
8
|
+
* @remarks 用于展示代码块的组件,支持语法高亮和复制功能。
|
|
9
|
+
*/
|
|
10
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
11
|
+
const next_1 = require("@alifd/next");
|
|
12
|
+
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
13
|
+
const highlight_js_1 = tslib_1.__importDefault(require("highlight.js"));
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
const CodeView = (0, react_1.forwardRef)((props, ref) => {
|
|
16
|
+
const { className, code, language = '', showCopyButton, theme = 'light', } = props;
|
|
17
|
+
const codeRef = (0, react_1.useRef)(null);
|
|
18
|
+
// 使用 useMemo 缓存高亮结果,只在 code 或 language 变化时重新计算
|
|
19
|
+
const highlightedCode = (0, react_1.useMemo)(() => {
|
|
20
|
+
if (!code)
|
|
21
|
+
return '';
|
|
22
|
+
// 先转义 HTML 特殊字符防止 XSS
|
|
23
|
+
const escapedCode = code
|
|
24
|
+
.replace(/&/g, '&')
|
|
25
|
+
.replace(/</g, '<')
|
|
26
|
+
.replace(/>/g, '>')
|
|
27
|
+
.replace(/"/g, '"')
|
|
28
|
+
.replace(/'/g, ''');
|
|
29
|
+
try {
|
|
30
|
+
// 创建临时元素进行高亮
|
|
31
|
+
const tempElement = document.createElement('code');
|
|
32
|
+
tempElement.className = `language-${language}`;
|
|
33
|
+
tempElement.innerHTML = escapedCode;
|
|
34
|
+
// 执行语法高亮
|
|
35
|
+
highlight_js_1.default.highlightElement(tempElement);
|
|
36
|
+
return tempElement.innerHTML;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
// 降级方案:返回转义后的原始代码
|
|
40
|
+
return escapedCode;
|
|
41
|
+
}
|
|
42
|
+
}, [code, language]);
|
|
43
|
+
const handleCopy = () => {
|
|
44
|
+
if (!codeRef.current)
|
|
45
|
+
return;
|
|
46
|
+
const content = codeRef.current.innerText;
|
|
47
|
+
(0, utils_1.defaultCopyText)(content);
|
|
48
|
+
};
|
|
49
|
+
const handleKeyDown = (event) => {
|
|
50
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
handleCopy();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${utils_1.PREFIX_DEFAULT}code-view`, `${utils_1.PREFIX_DEFAULT}hljs-${theme}`, className), ref: ref },
|
|
56
|
+
react_1.default.createElement("div", { className: `${utils_1.PREFIX_DEFAULT}code-view-header` },
|
|
57
|
+
react_1.default.createElement("div", { className: `${utils_1.PREFIX_DEFAULT}code-view-language` }, language),
|
|
58
|
+
showCopyButton !== false && (react_1.default.createElement("div", { className: `${utils_1.PREFIX_DEFAULT}code-view-copy`, onClick: handleCopy, onKeyDown: handleKeyDown, role: "button", tabIndex: 0, title: "\u590D\u5236\u4EE3\u7801" },
|
|
59
|
+
react_1.default.createElement(next_1.Icon, { size: 'xs', type: "copy" })))),
|
|
60
|
+
react_1.default.createElement("div", { className: `${utils_1.PREFIX_DEFAULT}code-view-container` },
|
|
61
|
+
react_1.default.createElement("pre", null,
|
|
62
|
+
react_1.default.createElement("code", { ref: codeRef, className: `${utils_1.PREFIX_DEFAULT}code-view-content hljs language-${language}`, dangerouslySetInnerHTML: { __html: highlightedCode }, "data-highlighted": "yes" })))));
|
|
63
|
+
});
|
|
64
|
+
CodeView.displayName = 'CodeView';
|
|
65
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
66
|
+
exports.default = next_1.ConfigProvider.config(CodeView);
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
@import '../core/variables.scss';
|
|
2
|
+
|
|
3
|
+
.#{$prefix}code-view {
|
|
4
|
+
// border: 4px solid var(--color-bg-1, #ffffff);
|
|
5
|
+
border-radius: var(--corner-2, 8px);
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
background-color: var(--color-fill1-1);
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
pre {
|
|
11
|
+
margin: 0;
|
|
12
|
+
|
|
13
|
+
code.hljs {
|
|
14
|
+
padding: var(--s-2, 8px) var(--s-3, 12px);
|
|
15
|
+
|
|
16
|
+
&.ct-code-view-content {
|
|
17
|
+
padding: var(--s-2, 8px) var(--s-3, 12px);
|
|
18
|
+
background-color: var(--color-fill1-1);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&-header {
|
|
24
|
+
display: flex;
|
|
25
|
+
justify-content: space-between;
|
|
26
|
+
align-items: center;
|
|
27
|
+
padding: var(--s-2, 8px) var(--s-3, 12px);
|
|
28
|
+
line-height: 22px;
|
|
29
|
+
background-color: var(--color-fill1-2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&-language {
|
|
33
|
+
color: var(--color-text1-3);
|
|
34
|
+
font-size: 14px;
|
|
35
|
+
font-weight: 600;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&-copy {
|
|
39
|
+
cursor: pointer;
|
|
40
|
+
height: 22px;
|
|
41
|
+
color: var(--color-text1-2);
|
|
42
|
+
|
|
43
|
+
&:hover {
|
|
44
|
+
color: var(--color-text1-3);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&-container {
|
|
49
|
+
max-height: 500px;
|
|
50
|
+
overflow-y: auto;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @api
|
|
3
|
+
*/
|
|
4
|
+
export interface CodeViewProps {
|
|
5
|
+
/**
|
|
6
|
+
* 自定义类名
|
|
7
|
+
*/
|
|
8
|
+
className?: string;
|
|
9
|
+
/**
|
|
10
|
+
* 代码内容
|
|
11
|
+
*/
|
|
12
|
+
code: string;
|
|
13
|
+
/**
|
|
14
|
+
* 编程语言
|
|
15
|
+
*/
|
|
16
|
+
language?: string;
|
|
17
|
+
/**
|
|
18
|
+
* 是否显示复制按钮
|
|
19
|
+
* @defaultValue true
|
|
20
|
+
*/
|
|
21
|
+
showCopyButton?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 主题模式
|
|
24
|
+
* @defaultValue 'light'
|
|
25
|
+
*/
|
|
26
|
+
theme?: 'light' | 'dark';
|
|
27
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @component 折叠面板
|
|
3
|
+
* @en Collapse
|
|
4
|
+
* @type 通用 - General
|
|
5
|
+
* @remarks [折叠面板组件] 是一个 [容器类] UI 组件,用于 [内容的展开和收起],包括点击和悬停触发,使内容能够 [灵活地显示和隐藏]。它通常用于 [长内容的分段显示、信息的分级展示等场景]。支持动画效果和多种触发方式。
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { CollapseProps } from './types';
|
|
9
|
+
declare const _default: import("@alifd/next/types/config-provider/types").ConfiguredComponentClass<Pick<CollapseProps & React.RefAttributes<import("@alifd/next/types/config-provider/types").ConfiguredComponent<import("@alifd/next/types/collapse").CollapseProps & import("@alifd/next/types/config-provider/types").ComponentCommonProps, {
|
|
10
|
+
onItemClick(key: import("@alifd/next/types/collapse/types").KeyType): void;
|
|
11
|
+
genratePanelId(itemId: string | undefined, index: number): string | undefined;
|
|
12
|
+
getProps(item: import("@alifd/next/types/collapse/types").DataItem, index: number, key: import("@alifd/next/types/collapse/types").KeyType): {
|
|
13
|
+
key: import("@alifd/next/types/collapse/types").KeyType;
|
|
14
|
+
title: import("react").ReactNode;
|
|
15
|
+
isExpanded: boolean;
|
|
16
|
+
disabled: boolean | undefined;
|
|
17
|
+
id: string | undefined;
|
|
18
|
+
onClick: (() => void) | null;
|
|
19
|
+
};
|
|
20
|
+
getItemsByDataSource(): import("react").JSX.Element[];
|
|
21
|
+
getItemsByChildren(): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>[] | null | undefined;
|
|
22
|
+
setExpandedKey(expandedKeys: import("@alifd/next/types/collapse/types").KeyType[]): void;
|
|
23
|
+
render(): import("react").JSX.Element;
|
|
24
|
+
context: any;
|
|
25
|
+
setState<K extends "expandedKeys">(state: {
|
|
26
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
27
|
+
} | ((prevState: Readonly<{
|
|
28
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
29
|
+
}>, props: Readonly<import("@alifd/next/types/collapse").CollapseProps>) => {
|
|
30
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
31
|
+
} | Pick<{
|
|
32
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
33
|
+
}, K> | null) | Pick<{
|
|
34
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
35
|
+
}, K> | null, callback?: (() => void) | undefined): void;
|
|
36
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
37
|
+
readonly props: Readonly<import("@alifd/next/types/collapse").CollapseProps> & Readonly<{
|
|
38
|
+
children?: import("react").ReactNode;
|
|
39
|
+
}>;
|
|
40
|
+
state: Readonly<{
|
|
41
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
42
|
+
}>;
|
|
43
|
+
refs: {
|
|
44
|
+
[key: string]: import("react").ReactInstance;
|
|
45
|
+
};
|
|
46
|
+
componentDidMount?(): void;
|
|
47
|
+
shouldComponentUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextState: Readonly<{
|
|
48
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
49
|
+
}>, nextContext: any): boolean;
|
|
50
|
+
componentWillUnmount?(): void;
|
|
51
|
+
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
|
|
52
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, prevState: Readonly<{
|
|
53
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
54
|
+
}>): any;
|
|
55
|
+
componentDidUpdate?(prevProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, prevState: Readonly<{
|
|
56
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
57
|
+
}>, snapshot?: any): void;
|
|
58
|
+
componentWillMount?(): void;
|
|
59
|
+
UNSAFE_componentWillMount?(): void;
|
|
60
|
+
componentWillReceiveProps?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextContext: any): void;
|
|
61
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextContext: any): void;
|
|
62
|
+
componentWillUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextState: Readonly<{
|
|
63
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
64
|
+
}>, nextContext: any): void;
|
|
65
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextState: Readonly<{
|
|
66
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
67
|
+
}>, nextContext: any): void;
|
|
68
|
+
}>>, "key" | keyof CollapseProps> & import("@alifd/next/types/config-provider/types").ComponentCommonProps, import("@alifd/next/types/config-provider/types").ConfiguredComponent<import("@alifd/next/types/collapse").CollapseProps & import("@alifd/next/types/config-provider/types").ComponentCommonProps, {
|
|
69
|
+
onItemClick(key: import("@alifd/next/types/collapse/types").KeyType): void;
|
|
70
|
+
genratePanelId(itemId: string | undefined, index: number): string | undefined;
|
|
71
|
+
getProps(item: import("@alifd/next/types/collapse/types").DataItem, index: number, key: import("@alifd/next/types/collapse/types").KeyType): {
|
|
72
|
+
key: import("@alifd/next/types/collapse/types").KeyType;
|
|
73
|
+
title: import("react").ReactNode;
|
|
74
|
+
isExpanded: boolean;
|
|
75
|
+
disabled: boolean | undefined;
|
|
76
|
+
id: string | undefined;
|
|
77
|
+
onClick: (() => void) | null;
|
|
78
|
+
};
|
|
79
|
+
getItemsByDataSource(): import("react").JSX.Element[];
|
|
80
|
+
getItemsByChildren(): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>[] | null | undefined;
|
|
81
|
+
setExpandedKey(expandedKeys: import("@alifd/next/types/collapse/types").KeyType[]): void;
|
|
82
|
+
render(): import("react").JSX.Element;
|
|
83
|
+
context: any;
|
|
84
|
+
setState<K extends "expandedKeys">(state: {
|
|
85
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
86
|
+
} | ((prevState: Readonly<{
|
|
87
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
88
|
+
}>, props: Readonly<import("@alifd/next/types/collapse").CollapseProps>) => {
|
|
89
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
90
|
+
} | Pick<{
|
|
91
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
92
|
+
}, K> | null) | Pick<{
|
|
93
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
94
|
+
}, K> | null, callback?: (() => void) | undefined): void;
|
|
95
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
96
|
+
readonly props: Readonly<import("@alifd/next/types/collapse").CollapseProps> & Readonly<{
|
|
97
|
+
children?: import("react").ReactNode;
|
|
98
|
+
}>;
|
|
99
|
+
state: Readonly<{
|
|
100
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
101
|
+
}>;
|
|
102
|
+
refs: {
|
|
103
|
+
[key: string]: import("react").ReactInstance;
|
|
104
|
+
};
|
|
105
|
+
componentDidMount?(): void;
|
|
106
|
+
shouldComponentUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextState: Readonly<{
|
|
107
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
108
|
+
}>, nextContext: any): boolean;
|
|
109
|
+
componentWillUnmount?(): void;
|
|
110
|
+
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
|
|
111
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, prevState: Readonly<{
|
|
112
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
113
|
+
}>): any;
|
|
114
|
+
componentDidUpdate?(prevProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, prevState: Readonly<{
|
|
115
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
116
|
+
}>, snapshot?: any): void;
|
|
117
|
+
componentWillMount?(): void;
|
|
118
|
+
UNSAFE_componentWillMount?(): void;
|
|
119
|
+
componentWillReceiveProps?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextContext: any): void;
|
|
120
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextContext: any): void;
|
|
121
|
+
componentWillUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextState: Readonly<{
|
|
122
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
123
|
+
}>, nextContext: any): void;
|
|
124
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").CollapseProps>, nextState: Readonly<{
|
|
125
|
+
expandedKeys: import("@alifd/next/types/collapse/types").KeyType[];
|
|
126
|
+
}>, nextContext: any): void;
|
|
127
|
+
}>, {}> & {
|
|
128
|
+
Panel: import("@alifd/next/types/config-provider/types").ConfiguredComponentClass<import("@alifd/next/types/collapse").PanelProps & import("@alifd/next/types/config-provider/types").ComponentCommonProps, {
|
|
129
|
+
onKeyDown: (e: import("react").KeyboardEvent<HTMLElement>) => void;
|
|
130
|
+
render(): import("react").JSX.Element;
|
|
131
|
+
context: any;
|
|
132
|
+
setState<K_1 extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<import("@alifd/next/types/collapse").PanelProps>) => {} | Pick<{}, K_1> | null) | Pick<{}, K_1> | null, callback?: (() => void) | undefined): void;
|
|
133
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
134
|
+
readonly props: Readonly<import("@alifd/next/types/collapse").PanelProps> & Readonly<{
|
|
135
|
+
children?: import("react").ReactNode;
|
|
136
|
+
}>;
|
|
137
|
+
state: Readonly<{}>;
|
|
138
|
+
refs: {
|
|
139
|
+
[key: string]: import("react").ReactInstance;
|
|
140
|
+
};
|
|
141
|
+
componentDidMount?(): void;
|
|
142
|
+
shouldComponentUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
|
143
|
+
componentWillUnmount?(): void;
|
|
144
|
+
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
|
|
145
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, prevState: Readonly<{}>): any;
|
|
146
|
+
componentDidUpdate?(prevProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
|
147
|
+
componentWillMount?(): void;
|
|
148
|
+
UNSAFE_componentWillMount?(): void;
|
|
149
|
+
componentWillReceiveProps?(nextProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, nextContext: any): void;
|
|
150
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, nextContext: any): void;
|
|
151
|
+
componentWillUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, nextState: Readonly<{}>, nextContext: any): void;
|
|
152
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<import("@alifd/next/types/collapse").PanelProps>, nextState: Readonly<{}>, nextContext: any): void;
|
|
153
|
+
}, {}> & {
|
|
154
|
+
isNextPanel: boolean;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
export default _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @component 折叠面板
|
|
4
|
+
* @en Collapse
|
|
5
|
+
* @type 通用 - General
|
|
6
|
+
* @remarks [折叠面板组件] 是一个 [容器类] UI 组件,用于 [内容的展开和收起],包括点击和悬停触发,使内容能够 [灵活地显示和隐藏]。它通常用于 [长内容的分段显示、信息的分级展示等场景]。支持动画效果和多种触发方式。
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
11
|
+
const next_1 = require("@alifd/next");
|
|
12
|
+
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
13
|
+
const utils_1 = require("../utils");
|
|
14
|
+
const Collapse = (0, react_1.forwardRef)((props) => {
|
|
15
|
+
const { className, children } = props, rest = tslib_1.__rest(props, ["className", "children"]);
|
|
16
|
+
return (react_1.default.createElement(next_1.Collapse, Object.assign({}, rest, { className: (0, classnames_1.default)(`${utils_1.PREFIX_DEFAULT}collapse`, className) }), children));
|
|
17
|
+
});
|
|
18
|
+
const CollapsableWithSub = (0, utils_1.assignSubComponent)(Collapse, {
|
|
19
|
+
displayName: 'Collapse',
|
|
20
|
+
Panel: next_1.Collapse.Panel
|
|
21
|
+
});
|
|
22
|
+
exports.default = next_1.ConfigProvider.config(CollapsableWithSub);
|