@dtjoy/dt-design 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/_util/easings.js +9 -0
- package/esm/_util/extendsObject.js +17 -0
- package/esm/_util/getScroll.js +32 -0
- package/esm/_util/hooks/index.js +4 -1
- package/esm/_util/hooks/useForceUpdate.js +6 -0
- package/esm/_util/hooks/useProxyImperativeHandle.js +31 -0
- package/esm/_util/hooks/useSyncState.js +20 -0
- package/esm/_util/scrollTo.js +38 -0
- package/esm/_util/warning.js +63 -0
- package/esm/blockHeader/index.js +10 -8
- package/esm/blockHeader/style/index.less +143 -143
- package/esm/button/index.js +7 -15
- package/esm/button/style/index.less +52 -127
- package/esm/button/style/mixin.less +34 -42
- package/esm/collapsible/index.js +53 -55
- package/esm/collapsibleActionItems/index.js +2 -2
- package/esm/flex/index.js +1 -1
- package/esm/flex/style/index.less +76 -76
- package/esm/flex/utils.js +1 -1
- package/esm/formList/index.js +13 -11
- package/esm/formList/style/index.less +45 -45
- package/esm/index.js +3 -1
- package/esm/overflowList/index.js +4 -3
- package/esm/resize/index.js +1 -1
- package/esm/resizeObserver/index.js +3 -2
- package/esm/splitter/Panel.js +3 -3
- package/esm/splitter/SplitBar.js +8 -7
- package/esm/splitter/Splitter.js +5 -4
- package/esm/splitter/hooks/useItems.js +2 -2
- package/esm/splitter/hooks/useResize.js +5 -5
- package/esm/statusTag/index.js +8 -8
- package/esm/style/index.less +1 -1
- package/esm/style/themes/index.less +2 -2
- package/esm/style/themes/variable.less +4 -0
- package/esm/table/InternalTable.js +429 -0
- package/esm/table/RcTable/VirtualTable.js +9 -0
- package/esm/table/RcTable/index.js +9 -0
- package/esm/table/Table.js +28 -0
- package/esm/table/TableMeasureRowContext.js +3 -0
- package/esm/table/hooks/useContainerWidth.js +14 -0
- package/esm/table/index.js +2 -0
- package/esm/table/interface.js +4 -0
- package/esm/table/style/bordered.less +141 -0
- package/esm/table/style/fixed.less +88 -0
- package/esm/table/style/index.js +2 -0
- package/esm/table/style/index.less +150 -0
- package/esm/table/style/selection.less +90 -0
- package/esm/table/style/sticky.less +55 -0
- package/esm/table/style/virtual.less +65 -0
- package/esm/table/util.js +33 -0
- package/lib/_util/easings.js +15 -0
- package/lib/_util/extendsObject.js +20 -0
- package/lib/_util/getScroll.js +39 -0
- package/lib/_util/hooks/index.js +33 -0
- package/lib/_util/hooks/useForceUpdate.js +12 -0
- package/lib/_util/hooks/useProxyImperativeHandle.js +40 -0
- package/lib/_util/hooks/useSyncState.js +19 -0
- package/lib/_util/scrollTo.js +44 -0
- package/lib/_util/warning.js +75 -0
- package/lib/blockHeader/index.js +10 -8
- package/lib/blockHeader/style/index.less +143 -143
- package/lib/button/index.js +6 -14
- package/lib/button/style/index.less +52 -127
- package/lib/button/style/mixin.less +34 -42
- package/lib/collapsible/index.js +49 -49
- package/lib/collapsibleActionItems/index.js +2 -2
- package/lib/flex/index.js +2 -2
- package/lib/flex/style/index.less +76 -76
- package/lib/flex/utils.js +2 -2
- package/lib/formList/index.js +10 -10
- package/lib/formList/style/index.less +45 -45
- package/lib/index.js +21 -2
- package/lib/overflowList/index.js +4 -3
- package/lib/resize/index.js +1 -1
- package/lib/resizeObserver/index.js +3 -2
- package/lib/splitter/Panel.js +3 -3
- package/lib/splitter/SplitBar.js +8 -7
- package/lib/splitter/Splitter.js +5 -4
- package/lib/splitter/hooks/useItems.js +2 -2
- package/lib/splitter/hooks/useResize.js +5 -5
- package/lib/statusTag/index.js +8 -8
- package/lib/style/index.less +1 -1
- package/lib/style/themes/index.less +2 -2
- package/lib/style/themes/variable.less +4 -0
- package/lib/table/InternalTable.js +395 -0
- package/lib/table/RcTable/VirtualTable.js +17 -0
- package/lib/table/RcTable/index.js +17 -0
- package/lib/table/Table.js +37 -0
- package/lib/table/TableMeasureRowContext.js +10 -0
- package/lib/table/hooks/useContainerWidth.js +20 -0
- package/lib/table/index.js +9 -0
- package/lib/table/interface.js +8 -0
- package/lib/table/style/bordered.less +141 -0
- package/lib/table/style/fixed.less +88 -0
- package/lib/table/style/index.js +4 -0
- package/lib/table/style/index.less +150 -0
- package/lib/table/style/selection.less +90 -0
- package/lib/table/style/sticky.less +55 -0
- package/lib/table/style/virtual.less +65 -0
- package/lib/table/util.js +44 -0
- package/package.json +82 -66
- package/esm/_util/gapSize.d.ts +0 -3
- package/esm/_util/hooks/index.d.ts +0 -1
- package/esm/_util/hooks/useOrientation.d.ts +0 -2
- package/esm/_util/index.d.ts +0 -3
- package/esm/_util/isNonNullable.d.ts +0 -2
- package/esm/_util/type.d.ts +0 -52
- package/esm/blockHeader/index.d.ts +0 -47
- package/esm/blockHeader/style/index.d.ts +0 -2
- package/esm/button/index.d.ts +0 -10
- package/esm/button/style/index.d.ts +0 -2
- package/esm/collapsible/index.d.ts +0 -97
- package/esm/collapsible/style/index.d.ts +0 -1
- package/esm/collapsibleActionItems/index.d.ts +0 -24
- package/esm/collapsibleActionItems/style/index.d.ts +0 -2
- package/esm/flex/index.d.ts +0 -7
- package/esm/flex/interface.d.ts +0 -16
- package/esm/flex/style/index.d.ts +0 -2
- package/esm/flex/utils.d.ts +0 -7
- package/esm/formList/index.d.ts +0 -77
- package/esm/formList/style/index.d.ts +0 -2
- package/esm/index.d.ts +0 -14
- package/esm/overflowList/index.d.ts +0 -39
- package/esm/overflowList/style/index.d.ts +0 -2
- package/esm/resize/index.d.ts +0 -8
- package/esm/resizeObserver/index.d.ts +0 -45
- package/esm/splitter/Panel.d.ts +0 -7
- package/esm/splitter/SplitBar.d.ts +0 -24
- package/esm/splitter/Splitter.d.ts +0 -5
- package/esm/splitter/hooks/sizeUtil.d.ts +0 -3
- package/esm/splitter/hooks/useItems.d.ts +0 -14
- package/esm/splitter/hooks/useResizable.d.ts +0 -10
- package/esm/splitter/hooks/useResize.d.ts +0 -6
- package/esm/splitter/hooks/useSizes.d.ts +0 -4
- package/esm/splitter/index.d.ts +0 -8
- package/esm/splitter/interface.d.ts +0 -69
- package/esm/splitter/style/index.d.ts +0 -2
- package/esm/statusTag/index.d.ts +0 -28
- package/esm/statusTag/style/index.d.ts +0 -2
- package/esm/style/index.d.ts +0 -1
- package/lib/_util/gapSize.d.ts +0 -3
- package/lib/_util/hooks/index.d.ts +0 -1
- package/lib/_util/hooks/useOrientation.d.ts +0 -2
- package/lib/_util/index.d.ts +0 -3
- package/lib/_util/isNonNullable.d.ts +0 -2
- package/lib/_util/type.d.ts +0 -52
- package/lib/blockHeader/index.d.ts +0 -47
- package/lib/blockHeader/style/index.d.ts +0 -2
- package/lib/button/index.d.ts +0 -10
- package/lib/button/style/index.d.ts +0 -2
- package/lib/collapsible/index.d.ts +0 -97
- package/lib/collapsible/style/index.d.ts +0 -1
- package/lib/collapsibleActionItems/index.d.ts +0 -24
- package/lib/collapsibleActionItems/style/index.d.ts +0 -2
- package/lib/flex/index.d.ts +0 -7
- package/lib/flex/interface.d.ts +0 -16
- package/lib/flex/style/index.d.ts +0 -2
- package/lib/flex/utils.d.ts +0 -7
- package/lib/formList/index.d.ts +0 -77
- package/lib/formList/style/index.d.ts +0 -2
- package/lib/index.d.ts +0 -14
- package/lib/overflowList/index.d.ts +0 -39
- package/lib/overflowList/style/index.d.ts +0 -2
- package/lib/resize/index.d.ts +0 -8
- package/lib/resizeObserver/index.d.ts +0 -45
- package/lib/splitter/Panel.d.ts +0 -7
- package/lib/splitter/SplitBar.d.ts +0 -24
- package/lib/splitter/Splitter.d.ts +0 -5
- package/lib/splitter/hooks/sizeUtil.d.ts +0 -3
- package/lib/splitter/hooks/useItems.d.ts +0 -14
- package/lib/splitter/hooks/useResizable.d.ts +0 -10
- package/lib/splitter/hooks/useResize.d.ts +0 -6
- package/lib/splitter/hooks/useSizes.d.ts +0 -4
- package/lib/splitter/index.d.ts +0 -8
- package/lib/splitter/interface.d.ts +0 -69
- package/lib/splitter/style/index.d.ts +0 -2
- package/lib/statusTag/index.d.ts +0 -28
- package/lib/statusTag/style/index.d.ts +0 -2
- package/lib/style/index.d.ts +0 -1
|
@@ -3,132 +3,57 @@
|
|
|
3
3
|
|
|
4
4
|
@btn-prefix-cls: ~'@{ant-prefix}-btn';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// 文字样式
|
|
61
|
-
&__text {
|
|
62
|
-
display: inline-block;
|
|
63
|
-
|
|
64
|
-
&--small {
|
|
65
|
-
.btn-size-small();
|
|
66
|
-
font-size: @text-font-size;
|
|
67
|
-
}
|
|
68
|
-
&--middle {
|
|
69
|
-
.btn-size-middle();
|
|
70
|
-
font-size: @text-font-size;
|
|
71
|
-
}
|
|
72
|
-
&--large {
|
|
73
|
-
.btn-size-large();
|
|
74
|
-
font-size: @text-font-size;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// 尺寸变体
|
|
79
|
-
&-sm {
|
|
80
|
-
.btn-size-small();
|
|
81
|
-
padding: @padding;
|
|
82
|
-
}
|
|
83
|
-
&-lg {
|
|
84
|
-
.btn-size-large();
|
|
85
|
-
padding: @padding;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// 主要按钮
|
|
89
|
-
&-primary {
|
|
90
|
-
.btn-disabled-primary();
|
|
91
|
-
.generate-btn-disabled(@bg, @color, @border);
|
|
92
|
-
|
|
93
|
-
&:hover,
|
|
94
|
-
&:focus {
|
|
95
|
-
background-color: #225fdb;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// 次要按钮
|
|
100
|
-
&-secondary {
|
|
101
|
-
border-color: @primary-color;
|
|
102
|
-
color: @primary-color;
|
|
103
|
-
|
|
104
|
-
&:hover,
|
|
105
|
-
&:focus {
|
|
106
|
-
background-color: fade(@primary-color, 10%);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.btn-disabled-secondary-tertiary();
|
|
110
|
-
.generate-btn-disabled(@bg, @color, @border);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// 三级按钮
|
|
114
|
-
&-tertiary {
|
|
115
|
-
background-color: #f3f3f3;
|
|
116
|
-
border-color: @border-color-base;
|
|
117
|
-
|
|
118
|
-
&:hover,
|
|
119
|
-
&:focus {
|
|
120
|
-
background-color: fade(@primary-color, 10%);
|
|
121
|
-
border-color: @primary-color;
|
|
122
|
-
color: @primary-color;
|
|
123
|
-
}
|
|
6
|
+
.ant-btn {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
11
|
+
padding: 0;
|
|
12
|
+
|
|
13
|
+
.apply-btn-size(4px 16px; 14px; 16px; 8px);
|
|
14
|
+
|
|
15
|
+
&-sm {
|
|
16
|
+
.apply-btn-size(2px 12px; 12px; 12px; 2px);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&-lg {
|
|
20
|
+
.apply-btn-size(3px 40px; 14px; 18px; 8px);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&-circle {
|
|
24
|
+
padding-inline: 0;
|
|
25
|
+
border-radius: 50%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
// 主按钮
|
|
30
|
+
&-primary {
|
|
31
|
+
.btn-hover-variant(#fff; #225fdb; #225fdb);
|
|
32
|
+
.generate-btn-disabled(@disabled-color; #f9f9f9; @disabled-color);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// 次按钮
|
|
36
|
+
&-secondary {
|
|
37
|
+
color: @primary-color;
|
|
38
|
+
border-color: @primary-color;
|
|
39
|
+
|
|
40
|
+
.btn-hover-variant(@primary-color; fade(@primary-color, 10%); @primary-color);
|
|
41
|
+
.generate-btn-disabled(@primary-color-disabled; @disabled-color; @border-color-base);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 三级按钮
|
|
45
|
+
&-tertiary {
|
|
46
|
+
background-color: #f3f3f3;
|
|
47
|
+
border-color: @border-color-base;
|
|
48
|
+
|
|
49
|
+
.btn-hover-variant(@primary-color; fade(@primary-color, 10%); @primary-color);
|
|
50
|
+
.generate-btn-disabled(@primary-color-disabled; @disabled-color; @border-color-base);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// 默认按钮
|
|
54
|
+
&-default {
|
|
55
|
+
.generate-btn-disabled(transparent; @disabled-color; @border-color-base);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
124
58
|
|
|
125
|
-
.btn-disabled-secondary-tertiary();
|
|
126
|
-
.generate-btn-disabled(@bg, @color, @border);
|
|
127
|
-
}
|
|
128
59
|
|
|
129
|
-
// 默认按钮
|
|
130
|
-
&-default {
|
|
131
|
-
.btn-disabled-default();
|
|
132
|
-
.generate-btn-disabled(@bg, @color, @border);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
@@ -1,47 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
@icon-text-margin: 2px;
|
|
6
|
-
}
|
|
7
|
-
.btn-size-middle() {
|
|
8
|
-
@padding: 4px 16px;
|
|
9
|
-
@icon-font-size: 16px;
|
|
10
|
-
@text-font-size: 14px;
|
|
11
|
-
@icon-text-margin: 8px;
|
|
12
|
-
}
|
|
13
|
-
.btn-size-large() {
|
|
14
|
-
@padding: 3px 40px;
|
|
15
|
-
@icon-font-size: 18px;
|
|
16
|
-
@text-font-size: 14px;
|
|
17
|
-
@icon-text-margin: 8px;
|
|
18
|
-
}
|
|
1
|
+
// ===================== 按钮尺寸处理 =====================
|
|
2
|
+
.apply-btn-size(@padding; @font-size; @icon-size: 16px; @gap: 8px) {
|
|
3
|
+
padding: @padding;
|
|
4
|
+
font-size: @font-size;
|
|
19
5
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
.btn-disabled-secondary-tertiary() {
|
|
27
|
-
@bg: @primary-color-disabled;
|
|
28
|
-
@color: @disabled-color;
|
|
29
|
-
@border: @border-color-base;
|
|
6
|
+
.anticon {
|
|
7
|
+
font-size: @icon-size;
|
|
8
|
+
+ span {
|
|
9
|
+
margin-left: @gap;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
30
12
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
13
|
+
|
|
14
|
+
// ===================== 禁用状态生成器 =====================
|
|
15
|
+
// 参数: 背景色, 文字颜色, 边框颜色
|
|
16
|
+
.generate-btn-disabled(@bg; @color; @border) {
|
|
17
|
+
&[disabled],
|
|
18
|
+
&[disabled]:hover,
|
|
19
|
+
&[disabled]:active,
|
|
20
|
+
&[disabled]:focus {
|
|
21
|
+
color: @color;
|
|
22
|
+
background: @bg;
|
|
23
|
+
border-color: @border;
|
|
24
|
+
cursor: not-allowed;
|
|
25
|
+
opacity: 1;
|
|
26
|
+
box-shadow: none;
|
|
27
|
+
text-shadow: none;
|
|
28
|
+
}
|
|
35
29
|
}
|
|
36
30
|
|
|
37
|
-
// =====================
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
opacity: 1;
|
|
46
|
-
}
|
|
31
|
+
// ===================== 交互状态快捷配置 =====================
|
|
32
|
+
.btn-hover-variant(@color; @bg; @border) {
|
|
33
|
+
&:hover,
|
|
34
|
+
&:focus {
|
|
35
|
+
color: @color;
|
|
36
|
+
background: @bg;
|
|
37
|
+
border-color: @border;
|
|
38
|
+
}
|
|
47
39
|
}
|
package/lib/collapsible/index.js
CHANGED
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _configProvider = require("antd/es/config-provider");
|
|
9
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
8
|
var _lodashEs = require("lodash-es");
|
|
11
9
|
require("./style");
|
|
10
|
+
var _context = require("antd/lib/config-provider/context");
|
|
11
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
14
|
class Collapsible extends _react.default.Component {
|
|
@@ -21,18 +21,11 @@ class Collapsible extends _react.default.Component {
|
|
|
21
21
|
collapseHeight: 0,
|
|
22
22
|
fade: false
|
|
23
23
|
};
|
|
24
|
-
|
|
24
|
+
static displayName;
|
|
25
25
|
foundation;
|
|
26
26
|
domRef = /*#__PURE__*/_react.default.createRef();
|
|
27
27
|
resizeObserver = null;
|
|
28
28
|
hasBeenRendered = false;
|
|
29
|
-
static displayName;
|
|
30
|
-
// public cssClasses = {
|
|
31
|
-
// PREFIX: 'ant-collapsible',
|
|
32
|
-
// TRANSITION: 'ant-collapsible-transition',
|
|
33
|
-
// WRAPPER: 'ant-collapsible-wrapper',
|
|
34
|
-
// };
|
|
35
|
-
|
|
36
29
|
constructor(props) {
|
|
37
30
|
super(props);
|
|
38
31
|
this.state = {
|
|
@@ -42,7 +35,6 @@ class Collapsible extends _react.default.Component {
|
|
|
42
35
|
isTransitioning: false,
|
|
43
36
|
cacheIsOpen: this.props.isOpen || false
|
|
44
37
|
};
|
|
45
|
-
this.prefixCls = `${(0, _configProvider.globalConfig)().getPrefixCls(this.prefixCls)}`;
|
|
46
38
|
this.foundation = {
|
|
47
39
|
updateDOMInRenderTree: val => this.setState({
|
|
48
40
|
domInRenderTree: val
|
|
@@ -58,20 +50,6 @@ class Collapsible extends _react.default.Component {
|
|
|
58
50
|
})
|
|
59
51
|
};
|
|
60
52
|
}
|
|
61
|
-
handleResize = entryList => {
|
|
62
|
-
const entry = entryList[0];
|
|
63
|
-
if (entry) {
|
|
64
|
-
const entryInfo = Collapsible.getEntryInfo(entry);
|
|
65
|
-
this.foundation.updateDOMHeight(entryInfo.height);
|
|
66
|
-
this.foundation.updateDOMInRenderTree(entryInfo.isShown);
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
isChildrenInRenderTree = () => {
|
|
70
|
-
if (this.domRef.current) {
|
|
71
|
-
return this.domRef.current.offsetHeight > 0;
|
|
72
|
-
}
|
|
73
|
-
return false;
|
|
74
|
-
};
|
|
75
53
|
static getEntryInfo = entry => {
|
|
76
54
|
let inRenderTree;
|
|
77
55
|
if (entry.borderBoxSize) {
|
|
@@ -91,26 +69,6 @@ class Collapsible extends _react.default.Component {
|
|
|
91
69
|
height
|
|
92
70
|
};
|
|
93
71
|
};
|
|
94
|
-
getDataAttr = props => {
|
|
95
|
-
const dataAttrs = {};
|
|
96
|
-
Object.keys(props).forEach(key => {
|
|
97
|
-
if (key.startsWith('data-')) {
|
|
98
|
-
dataAttrs[key] = String(props[key]);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
return dataAttrs;
|
|
102
|
-
};
|
|
103
|
-
componentDidMount() {
|
|
104
|
-
this.resizeObserver = new ResizeObserver(this.handleResize);
|
|
105
|
-
if (this.domRef.current) {
|
|
106
|
-
this.resizeObserver.observe(this.domRef.current);
|
|
107
|
-
}
|
|
108
|
-
const domInRenderTree = this.isChildrenInRenderTree();
|
|
109
|
-
this.foundation.updateDOMInRenderTree(domInRenderTree);
|
|
110
|
-
if (domInRenderTree && this.domRef.current) {
|
|
111
|
-
this.foundation.updateDOMHeight(this.domRef.current.scrollHeight);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
72
|
static getDerivedStateFromProps(props, prevState) {
|
|
115
73
|
const newState = {};
|
|
116
74
|
const isOpenChanged = props.isOpen !== prevState.cacheIsOpen;
|
|
@@ -125,6 +83,18 @@ class Collapsible extends _react.default.Component {
|
|
|
125
83
|
newState.cacheIsOpen = props.isOpen;
|
|
126
84
|
return newState;
|
|
127
85
|
}
|
|
86
|
+
componentDidMount() {
|
|
87
|
+
// eslint-disable-next-line compat/compat
|
|
88
|
+
this.resizeObserver = new ResizeObserver(this.handleResize);
|
|
89
|
+
if (this.domRef.current) {
|
|
90
|
+
this.resizeObserver.observe(this.domRef.current);
|
|
91
|
+
}
|
|
92
|
+
const domInRenderTree = this.isChildrenInRenderTree();
|
|
93
|
+
this.foundation.updateDOMInRenderTree(domInRenderTree);
|
|
94
|
+
if (domInRenderTree && this.domRef.current) {
|
|
95
|
+
this.foundation.updateDOMHeight(this.domRef.current.scrollHeight);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
128
98
|
componentDidUpdate(prevProps, prevState) {
|
|
129
99
|
const changedPropKeys = Object.keys((0, _lodashEs.pick)(this.props, ['reCalcKey'])).filter(key => !(0, _lodashEs.isEqual)(this.props[key], prevProps[key]));
|
|
130
100
|
const changedStateKeys = Object.keys((0, _lodashEs.pick)(this.state, ['domInRenderTree'])).filter(key => !(0, _lodashEs.isEqual)(this.state[key], prevState[key]));
|
|
@@ -141,7 +111,9 @@ class Collapsible extends _react.default.Component {
|
|
|
141
111
|
this.resizeObserver = null;
|
|
142
112
|
}
|
|
143
113
|
}
|
|
144
|
-
|
|
114
|
+
renderCollapsible = ({
|
|
115
|
+
getPrefixCls
|
|
116
|
+
}) => {
|
|
145
117
|
const {
|
|
146
118
|
isOpen,
|
|
147
119
|
collapseHeight,
|
|
@@ -153,13 +125,15 @@ class Collapsible extends _react.default.Component {
|
|
|
153
125
|
id,
|
|
154
126
|
keepDOM,
|
|
155
127
|
lazyRender,
|
|
156
|
-
onMotionEnd
|
|
128
|
+
onMotionEnd,
|
|
129
|
+
prefixCls: customizePrefixCls
|
|
157
130
|
} = this.props;
|
|
158
131
|
const {
|
|
159
132
|
domHeight,
|
|
160
133
|
isTransitioning,
|
|
161
134
|
visible
|
|
162
135
|
} = this.state;
|
|
136
|
+
const prefixCls = getPrefixCls('splitter', customizePrefixCls);
|
|
163
137
|
const wrapperStyle = {
|
|
164
138
|
overflow: 'hidden',
|
|
165
139
|
height: isOpen ? domHeight : collapseHeight,
|
|
@@ -167,8 +141,8 @@ class Collapsible extends _react.default.Component {
|
|
|
167
141
|
transitionDuration: `${motion && isTransitioning ? duration : 0}ms`,
|
|
168
142
|
...style
|
|
169
143
|
};
|
|
170
|
-
const wrapperCls = (0,
|
|
171
|
-
[`${
|
|
144
|
+
const wrapperCls = (0, _clsx.default)(`${prefixCls}-wrapper`, {
|
|
145
|
+
[`${prefixCls}-transition`]: motion && isTransitioning
|
|
172
146
|
}, className);
|
|
173
147
|
const shouldRender = keepDOM && (lazyRender ? this.hasBeenRendered : true) || collapseHeight !== 0 || visible || isOpen;
|
|
174
148
|
if (shouldRender && !this.hasBeenRendered) {
|
|
@@ -191,7 +165,33 @@ class Collapsible extends _react.default.Component {
|
|
|
191
165
|
},
|
|
192
166
|
id: id
|
|
193
167
|
}, shouldRender && this.props.children));
|
|
168
|
+
};
|
|
169
|
+
render() {
|
|
170
|
+
return /*#__PURE__*/_react.default.createElement(_context.ConfigConsumer, null, this.renderCollapsible);
|
|
194
171
|
}
|
|
172
|
+
handleResize = entryList => {
|
|
173
|
+
const entry = entryList[0];
|
|
174
|
+
if (entry) {
|
|
175
|
+
const entryInfo = Collapsible.getEntryInfo(entry);
|
|
176
|
+
this.foundation.updateDOMHeight(entryInfo.height);
|
|
177
|
+
this.foundation.updateDOMInRenderTree(entryInfo.isShown);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
isChildrenInRenderTree = () => {
|
|
181
|
+
if (this.domRef.current) {
|
|
182
|
+
return this.domRef.current.offsetHeight > 0;
|
|
183
|
+
}
|
|
184
|
+
return false;
|
|
185
|
+
};
|
|
186
|
+
getDataAttr = props => {
|
|
187
|
+
const dataAttrs = {};
|
|
188
|
+
Object.keys(props).forEach(key => {
|
|
189
|
+
if (key.startsWith('data-')) {
|
|
190
|
+
dataAttrs[key] = String(props[key]);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
return dataAttrs;
|
|
194
|
+
};
|
|
195
195
|
}
|
|
196
196
|
if (process.env.NODE_ENV !== 'production') {
|
|
197
197
|
Collapsible.displayName = 'Collapsible';
|
|
@@ -9,8 +9,8 @@ var _icons = require("@ant-design/icons");
|
|
|
9
9
|
var _ = require("./..");
|
|
10
10
|
var _antd = require("antd");
|
|
11
11
|
var _configProvider = require("antd/es/config-provider");
|
|
12
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
12
|
require("./style");
|
|
13
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
16
|
const CollapsibleActionItems = props => {
|
|
@@ -50,7 +50,7 @@ const CollapsibleActionItems = props => {
|
|
|
50
50
|
onClick: info => onItemClick?.(info.key)
|
|
51
51
|
}, actionItems.slice(maxCount - 1).map(item => getActionItemNode(item, true))) : null;
|
|
52
52
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
53
|
-
className: (0,
|
|
53
|
+
className: (0, _clsx.default)(prefixCls, className),
|
|
54
54
|
style: style
|
|
55
55
|
}, displayAction.map((actionItem, index) => {
|
|
56
56
|
const showDivider = index < actionItems.length - 1;
|
package/lib/flex/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _configProvider = require("antd/es/config-provider");
|
|
9
|
-
var
|
|
9
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
10
10
|
var _lodashEs = require("lodash-es");
|
|
11
11
|
require("./style");
|
|
12
12
|
var _gapSize = require("../_util/gapSize");
|
|
@@ -34,7 +34,7 @@ const Flex = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
|
34
34
|
} = _react.default.useContext(_configProvider.ConfigContext);
|
|
35
35
|
const prefixCls = customizePrefixCls || (0, _configProvider.globalConfig)().getPrefixCls('flex');
|
|
36
36
|
const [mergedVertical] = (0, _hooks.useOrientation)(orientation, vertical);
|
|
37
|
-
const mergedCls = (0,
|
|
37
|
+
const mergedCls = (0, _clsx.default)(className, rootClassName, prefixCls, (0, _utils.default)(prefixCls, props), {
|
|
38
38
|
[`${prefixCls}-rtl`]: ctxDirection === 'rtl',
|
|
39
39
|
[`${prefixCls}-gap-${gap}`]: (0, _gapSize.isPresetSize)(gap),
|
|
40
40
|
[`${prefixCls}-vertical`]: mergedVertical === 'vertical'
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
@import '../../style/themes/index.less';
|
|
2
|
-
|
|
3
|
-
@flex-prefix-cls: ~'@{ant-prefix}-flex';
|
|
4
|
-
|
|
5
|
-
// 属性与值的映射
|
|
6
|
-
@align-items-values: {
|
|
7
|
-
stretch: stretch;
|
|
8
|
-
flex-start: flex-start;
|
|
9
|
-
center: center;
|
|
10
|
-
flex-end: flex-end;
|
|
11
|
-
baseline: baseline;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
@justify-content-values: {
|
|
15
|
-
flex-start: flex-start;
|
|
16
|
-
center: center;
|
|
17
|
-
flex-end: flex-end;
|
|
18
|
-
space-between: space-between;
|
|
19
|
-
space-around: space-around;
|
|
20
|
-
space-evenly: space-evenly;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
@flex-wrap-values: {
|
|
24
|
-
nowrap: nowrap;
|
|
25
|
-
wrap: wrap;
|
|
26
|
-
wrap-reverse: wrap-reverse;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
.@{flex-prefix-cls} {
|
|
30
|
-
display: flex;
|
|
31
|
-
margin: 0;
|
|
32
|
-
padding: 0;
|
|
33
|
-
|
|
34
|
-
// 方向
|
|
35
|
-
&-vertical {
|
|
36
|
-
flex-direction: column;
|
|
37
|
-
}
|
|
38
|
-
&-rtl {
|
|
39
|
-
direction: rtl;
|
|
40
|
-
}
|
|
41
|
-
&:empty {
|
|
42
|
-
display: none;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// 间距 (Gap)
|
|
46
|
-
&-gap-small {
|
|
47
|
-
gap: @padding-xs;
|
|
48
|
-
}
|
|
49
|
-
&-gap-middle {
|
|
50
|
-
gap: @padding-md;
|
|
51
|
-
}
|
|
52
|
-
&-gap-large {
|
|
53
|
-
gap: @padding-lg;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// 使用 Loops/Each 抽象重复代码
|
|
57
|
-
// flex-wrap
|
|
58
|
-
each(@flex-wrap-values, .(@value, @key) {
|
|
59
|
-
&-wrap-@{key} {
|
|
60
|
-
flex-wrap: @value;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
// align-items
|
|
65
|
-
each(@align-items-values, .(@value, @key) {
|
|
66
|
-
&-align-@{key} {
|
|
67
|
-
align-items: @value;
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
// justify-content
|
|
72
|
-
each(@justify-content-values, .(@value, @key) {
|
|
73
|
-
&-justify-@{key} {
|
|
74
|
-
justify-content: @value;
|
|
75
|
-
}
|
|
76
|
-
});
|
|
1
|
+
@import '../../style/themes/index.less';
|
|
2
|
+
|
|
3
|
+
@flex-prefix-cls: ~'@{ant-prefix}-flex';
|
|
4
|
+
|
|
5
|
+
// 属性与值的映射
|
|
6
|
+
@align-items-values: {
|
|
7
|
+
stretch: stretch;
|
|
8
|
+
flex-start: flex-start;
|
|
9
|
+
center: center;
|
|
10
|
+
flex-end: flex-end;
|
|
11
|
+
baseline: baseline;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
@justify-content-values: {
|
|
15
|
+
flex-start: flex-start;
|
|
16
|
+
center: center;
|
|
17
|
+
flex-end: flex-end;
|
|
18
|
+
space-between: space-between;
|
|
19
|
+
space-around: space-around;
|
|
20
|
+
space-evenly: space-evenly;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
@flex-wrap-values: {
|
|
24
|
+
nowrap: nowrap;
|
|
25
|
+
wrap: wrap;
|
|
26
|
+
wrap-reverse: wrap-reverse;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
.@{flex-prefix-cls} {
|
|
30
|
+
display: flex;
|
|
31
|
+
margin: 0;
|
|
32
|
+
padding: 0;
|
|
33
|
+
|
|
34
|
+
// 方向
|
|
35
|
+
&-vertical {
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
}
|
|
38
|
+
&-rtl {
|
|
39
|
+
direction: rtl;
|
|
40
|
+
}
|
|
41
|
+
&:empty {
|
|
42
|
+
display: none;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// 间距 (Gap)
|
|
46
|
+
&-gap-small {
|
|
47
|
+
gap: @padding-xs;
|
|
48
|
+
}
|
|
49
|
+
&-gap-middle {
|
|
50
|
+
gap: @padding-md;
|
|
51
|
+
}
|
|
52
|
+
&-gap-large {
|
|
53
|
+
gap: @padding-lg;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// 使用 Loops/Each 抽象重复代码
|
|
57
|
+
// flex-wrap
|
|
58
|
+
each(@flex-wrap-values, .(@value, @key) {
|
|
59
|
+
&-wrap-@{key} {
|
|
60
|
+
flex-wrap: @value;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// align-items
|
|
65
|
+
each(@align-items-values, .(@value, @key) {
|
|
66
|
+
&-align-@{key} {
|
|
67
|
+
align-items: @value;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// justify-content
|
|
72
|
+
each(@justify-content-values, .(@value, @key) {
|
|
73
|
+
&-justify-@{key} {
|
|
74
|
+
justify-content: @value;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
77
|
}
|
package/lib/flex/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.justifyContentValues = exports.flexWrapValues = exports.default = exports.alignItemsValues = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
9
|
const flexWrapValues = exports.flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];
|
|
10
10
|
const justifyContentValues = exports.justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];
|
|
@@ -31,7 +31,7 @@ const genClsJustify = (prefixCls, props) => {
|
|
|
31
31
|
return justifyCls;
|
|
32
32
|
};
|
|
33
33
|
const createFlexClassNames = (prefixCls, props) => {
|
|
34
|
-
return (0,
|
|
34
|
+
return (0, _clsx.default)({
|
|
35
35
|
...genClsWrap(prefixCls, props),
|
|
36
36
|
...genClsAlign(prefixCls, props),
|
|
37
37
|
...genClsJustify(prefixCls, props)
|