wssf-kage-ui 0.1.0 → 0.1.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/README.md +4 -4
- package/dist/cjs/Anchor/index.d.ts +56 -0
- package/dist/cjs/Anchor/index.js +307 -0
- package/dist/cjs/Anchor/style.less +183 -0
- package/dist/cjs/AutoComplete/index.d.ts +54 -0
- package/dist/cjs/AutoComplete/index.js +273 -0
- package/dist/cjs/AutoComplete/style.less +325 -0
- package/dist/cjs/Breadcrumb/index.d.ts +51 -0
- package/dist/cjs/Breadcrumb/index.js +129 -0
- package/dist/cjs/Breadcrumb/style.less +96 -0
- package/dist/cjs/Cascader/index.d.ts +53 -0
- package/dist/cjs/Cascader/index.js +338 -0
- package/dist/cjs/Cascader/style.less +457 -0
- package/dist/cjs/Checkbox/index.d.ts +52 -0
- package/dist/cjs/Checkbox/index.js +158 -0
- package/dist/cjs/Checkbox/style.less +211 -0
- package/dist/cjs/ColorPicker/index.d.ts +28 -0
- package/dist/cjs/ColorPicker/index.js +381 -0
- package/dist/cjs/ColorPicker/style.less +276 -0
- package/dist/cjs/DatePicker/index.d.ts +32 -0
- package/dist/cjs/DatePicker/index.js +377 -0
- package/dist/cjs/DatePicker/style.less +498 -0
- package/dist/cjs/Divider/index.d.ts +24 -0
- package/dist/cjs/Divider/index.js +75 -0
- package/dist/cjs/Divider/style.less +144 -0
- package/dist/cjs/Dropdown/index.d.ts +88 -0
- package/dist/cjs/Dropdown/index.js +253 -0
- package/dist/cjs/Dropdown/style.less +430 -0
- package/dist/cjs/Flex/index.d.ts +37 -0
- package/dist/cjs/Flex/index.js +76 -0
- package/dist/cjs/Flex/style.less +13 -0
- package/dist/cjs/Form/index.d.ts +89 -0
- package/dist/cjs/Form/index.js +421 -0
- package/dist/cjs/Form/style.less +203 -0
- package/dist/cjs/Grid/index.d.ts +69 -0
- package/dist/cjs/Grid/index.js +171 -0
- package/dist/cjs/Grid/style.less +273 -0
- package/dist/cjs/Layout/index.d.ts +74 -0
- package/dist/cjs/Layout/index.js +166 -0
- package/dist/cjs/Layout/style.less +145 -0
- package/dist/cjs/Masonry/index.d.ts +18 -0
- package/dist/cjs/Masonry/index.js +146 -0
- package/dist/cjs/Masonry/style.less +15 -0
- package/dist/cjs/Menu/index.d.ts +87 -0
- package/dist/cjs/Menu/index.js +306 -0
- package/dist/cjs/Menu/style.less +363 -0
- package/dist/cjs/Pagination/index.d.ts +38 -0
- package/dist/cjs/Pagination/index.js +255 -0
- package/dist/cjs/Pagination/style.less +353 -0
- package/dist/cjs/Space/index.d.ts +41 -0
- package/dist/cjs/Space/index.js +137 -0
- package/dist/cjs/Space/style.less +116 -0
- package/dist/cjs/Splitter/index.d.ts +43 -0
- package/dist/cjs/Splitter/index.js +219 -0
- package/dist/cjs/Splitter/style.less +99 -0
- package/dist/cjs/Steps/index.d.ts +58 -0
- package/dist/cjs/Steps/index.js +180 -0
- package/dist/cjs/Steps/style.less +507 -0
- package/dist/cjs/Tabs/index.d.ts +58 -0
- package/dist/cjs/Tabs/index.js +196 -0
- package/dist/cjs/Tabs/style.less +423 -0
- package/dist/cjs/Typography/index.d.ts +102 -0
- package/dist/cjs/Typography/index.js +168 -0
- package/dist/cjs/Typography/style.less +246 -0
- package/dist/cjs/index.d.ts +42 -0
- package/dist/cjs/index.js +260 -1
- package/dist/esm/Anchor/index.d.ts +56 -0
- package/dist/esm/Anchor/index.js +302 -0
- package/dist/esm/Anchor/style.less +183 -0
- package/dist/esm/AutoComplete/index.d.ts +54 -0
- package/dist/esm/AutoComplete/index.js +268 -0
- package/dist/esm/AutoComplete/style.less +325 -0
- package/dist/esm/Breadcrumb/index.d.ts +51 -0
- package/dist/esm/Breadcrumb/index.js +124 -0
- package/dist/esm/Breadcrumb/style.less +96 -0
- package/dist/esm/Cascader/index.d.ts +53 -0
- package/dist/esm/Cascader/index.js +333 -0
- package/dist/esm/Cascader/style.less +457 -0
- package/dist/esm/Checkbox/index.d.ts +52 -0
- package/dist/esm/Checkbox/index.js +152 -0
- package/dist/esm/Checkbox/style.less +211 -0
- package/dist/esm/ColorPicker/index.d.ts +28 -0
- package/dist/esm/ColorPicker/index.js +375 -0
- package/dist/esm/ColorPicker/style.less +276 -0
- package/dist/esm/DatePicker/index.d.ts +32 -0
- package/dist/esm/DatePicker/index.js +371 -0
- package/dist/esm/DatePicker/style.less +498 -0
- package/dist/esm/Divider/index.d.ts +24 -0
- package/dist/esm/Divider/index.js +68 -0
- package/dist/esm/Divider/style.less +144 -0
- package/dist/esm/Dropdown/index.d.ts +88 -0
- package/dist/esm/Dropdown/index.js +249 -0
- package/dist/esm/Dropdown/style.less +430 -0
- package/dist/esm/Flex/index.d.ts +37 -0
- package/dist/esm/Flex/index.js +69 -0
- package/dist/esm/Flex/style.less +13 -0
- package/dist/esm/Form/index.d.ts +89 -0
- package/dist/esm/Form/index.js +416 -0
- package/dist/esm/Form/style.less +203 -0
- package/dist/esm/Grid/index.d.ts +69 -0
- package/dist/esm/Grid/index.js +165 -0
- package/dist/esm/Grid/style.less +273 -0
- package/dist/esm/Layout/index.d.ts +74 -0
- package/dist/esm/Layout/index.js +161 -0
- package/dist/esm/Layout/style.less +145 -0
- package/dist/esm/Masonry/index.d.ts +18 -0
- package/dist/esm/Masonry/index.js +138 -0
- package/dist/esm/Masonry/style.less +15 -0
- package/dist/esm/Menu/index.d.ts +87 -0
- package/dist/esm/Menu/index.js +301 -0
- package/dist/esm/Menu/style.less +363 -0
- package/dist/esm/Pagination/index.d.ts +38 -0
- package/dist/esm/Pagination/index.js +247 -0
- package/dist/esm/Pagination/style.less +353 -0
- package/dist/esm/Space/index.d.ts +41 -0
- package/dist/esm/Space/index.js +131 -0
- package/dist/esm/Space/style.less +116 -0
- package/dist/esm/Splitter/index.d.ts +43 -0
- package/dist/esm/Splitter/index.js +214 -0
- package/dist/esm/Splitter/style.less +99 -0
- package/dist/esm/Steps/index.d.ts +58 -0
- package/dist/esm/Steps/index.js +174 -0
- package/dist/esm/Steps/style.less +507 -0
- package/dist/esm/Tabs/index.d.ts +58 -0
- package/dist/esm/Tabs/index.js +193 -0
- package/dist/esm/Tabs/style.less +423 -0
- package/dist/esm/Typography/index.d.ts +102 -0
- package/dist/esm/Typography/index.js +161 -0
- package/dist/esm/Typography/style.less +246 -0
- package/dist/esm/index.d.ts +42 -0
- package/dist/esm/index.js +22 -1
- package/package.json +13 -10
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import "./style.less";
|
|
15
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
var sizeMap = {
|
|
18
|
+
small: 8,
|
|
19
|
+
middle: 16,
|
|
20
|
+
large: 24
|
|
21
|
+
};
|
|
22
|
+
var getSize = function getSize(size) {
|
|
23
|
+
if (typeof size === 'number') {
|
|
24
|
+
return size;
|
|
25
|
+
}
|
|
26
|
+
return sizeMap[size] || 8;
|
|
27
|
+
};
|
|
28
|
+
export var Space = function Space(_ref) {
|
|
29
|
+
var _ref$direction = _ref.direction,
|
|
30
|
+
direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
|
|
31
|
+
_ref$size = _ref.size,
|
|
32
|
+
size = _ref$size === void 0 ? 'small' : _ref$size,
|
|
33
|
+
align = _ref.align,
|
|
34
|
+
_ref$wrap = _ref.wrap,
|
|
35
|
+
wrap = _ref$wrap === void 0 ? false : _ref$wrap,
|
|
36
|
+
split = _ref.split,
|
|
37
|
+
children = _ref.children,
|
|
38
|
+
_ref$className = _ref.className,
|
|
39
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
40
|
+
style = _ref.style;
|
|
41
|
+
// 处理 size
|
|
42
|
+
var _ref2 = Array.isArray(size) ? [getSize(size[0]), getSize(size[1])] : [getSize(size), getSize(size)],
|
|
43
|
+
_ref3 = _slicedToArray(_ref2, 2),
|
|
44
|
+
horizontalSize = _ref3[0],
|
|
45
|
+
verticalSize = _ref3[1];
|
|
46
|
+
|
|
47
|
+
// 对齐方式映射
|
|
48
|
+
var alignMap = {
|
|
49
|
+
start: 'flex-start',
|
|
50
|
+
end: 'flex-end',
|
|
51
|
+
center: 'center',
|
|
52
|
+
baseline: 'baseline'
|
|
53
|
+
};
|
|
54
|
+
var classNames = ['kage-space', "kage-space-".concat(direction), wrap && 'kage-space-wrap', align && "kage-space-align-".concat(align), className].filter(Boolean).join(' ');
|
|
55
|
+
var spaceStyle = _objectSpread({
|
|
56
|
+
alignItems: align ? alignMap[align] : undefined
|
|
57
|
+
}, style);
|
|
58
|
+
|
|
59
|
+
// 过滤有效的子元素
|
|
60
|
+
var childArray = React.Children.toArray(children).filter(function (child) {
|
|
61
|
+
return child !== null && child !== undefined && child !== '';
|
|
62
|
+
});
|
|
63
|
+
if (childArray.length === 0) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return /*#__PURE__*/_jsx("div", {
|
|
67
|
+
className: classNames,
|
|
68
|
+
style: spaceStyle,
|
|
69
|
+
children: childArray.map(function (child, index) {
|
|
70
|
+
var isLast = index === childArray.length - 1;
|
|
71
|
+
var itemStyle = {
|
|
72
|
+
marginRight: direction === 'horizontal' && !isLast ? horizontalSize : undefined,
|
|
73
|
+
marginBottom: direction === 'vertical' && !isLast ? verticalSize : undefined,
|
|
74
|
+
paddingRight: direction === 'horizontal' && wrap ? horizontalSize : undefined,
|
|
75
|
+
paddingBottom: wrap ? verticalSize : undefined
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
// 如果有 wrap,使用 gap 方式
|
|
79
|
+
if (wrap) {
|
|
80
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
81
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
82
|
+
className: "kage-space-item",
|
|
83
|
+
children: child
|
|
84
|
+
}), split && !isLast && /*#__PURE__*/_jsx("div", {
|
|
85
|
+
className: "kage-space-split",
|
|
86
|
+
children: split
|
|
87
|
+
})]
|
|
88
|
+
}, index);
|
|
89
|
+
}
|
|
90
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
91
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
92
|
+
className: "kage-space-item",
|
|
93
|
+
style: itemStyle,
|
|
94
|
+
children: child
|
|
95
|
+
}), split && !isLast && /*#__PURE__*/_jsx("div", {
|
|
96
|
+
className: "kage-space-split",
|
|
97
|
+
style: {
|
|
98
|
+
marginRight: direction === 'horizontal' ? horizontalSize : undefined,
|
|
99
|
+
marginBottom: direction === 'vertical' ? verticalSize : undefined
|
|
100
|
+
},
|
|
101
|
+
children: split
|
|
102
|
+
})]
|
|
103
|
+
}, index);
|
|
104
|
+
})
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// Compact 紧凑组件
|
|
109
|
+
|
|
110
|
+
export var Compact = function Compact(_ref4) {
|
|
111
|
+
var _ref4$direction = _ref4.direction,
|
|
112
|
+
direction = _ref4$direction === void 0 ? 'horizontal' : _ref4$direction,
|
|
113
|
+
_ref4$block = _ref4.block,
|
|
114
|
+
block = _ref4$block === void 0 ? false : _ref4$block,
|
|
115
|
+
children = _ref4.children,
|
|
116
|
+
_ref4$className = _ref4.className,
|
|
117
|
+
className = _ref4$className === void 0 ? '' : _ref4$className,
|
|
118
|
+
style = _ref4.style;
|
|
119
|
+
var classNames = ['kage-space-compact', "kage-space-compact-".concat(direction), block && 'kage-space-compact-block', className].filter(Boolean).join(' ');
|
|
120
|
+
return /*#__PURE__*/_jsx("div", {
|
|
121
|
+
className: classNames,
|
|
122
|
+
style: style,
|
|
123
|
+
children: children
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// 添加 Compact 到 Space
|
|
128
|
+
|
|
129
|
+
var SpaceWithCompact = Space;
|
|
130
|
+
SpaceWithCompact.Compact = Compact;
|
|
131
|
+
export default SpaceWithCompact;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// Space 间距组件样式
|
|
2
|
+
|
|
3
|
+
@prefix: kage-space;
|
|
4
|
+
|
|
5
|
+
.@{prefix} {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
|
|
8
|
+
&-horizontal {
|
|
9
|
+
flex-direction: row;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&-vertical {
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&-wrap {
|
|
17
|
+
flex-wrap: wrap;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&-align-start {
|
|
21
|
+
align-items: flex-start;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&-align-end {
|
|
25
|
+
align-items: flex-end;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&-align-center {
|
|
29
|
+
align-items: center;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&-align-baseline {
|
|
33
|
+
align-items: baseline;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&-item {
|
|
37
|
+
display: inline-flex;
|
|
38
|
+
|
|
39
|
+
&:empty {
|
|
40
|
+
display: none;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&-split {
|
|
45
|
+
display: inline-flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
color: rgba(0, 0, 0, 0.45);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// ============ Compact 紧凑模式 ============
|
|
52
|
+
.@{prefix}-compact {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
|
|
55
|
+
&-block {
|
|
56
|
+
display: flex;
|
|
57
|
+
width: 100%;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&-horizontal {
|
|
61
|
+
flex-direction: row;
|
|
62
|
+
|
|
63
|
+
> *:not(:last-child) {
|
|
64
|
+
margin-right: -1px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
> *:first-child:not(:last-child) {
|
|
68
|
+
border-top-right-radius: 0;
|
|
69
|
+
border-bottom-right-radius: 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
> *:last-child:not(:first-child) {
|
|
73
|
+
border-top-left-radius: 0;
|
|
74
|
+
border-bottom-left-radius: 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
> *:not(:first-child):not(:last-child) {
|
|
78
|
+
border-radius: 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
> *:hover,
|
|
82
|
+
> *:focus,
|
|
83
|
+
> *:active {
|
|
84
|
+
z-index: 2;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&-vertical {
|
|
89
|
+
flex-direction: column;
|
|
90
|
+
|
|
91
|
+
> *:not(:last-child) {
|
|
92
|
+
margin-bottom: -1px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
> *:first-child:not(:last-child) {
|
|
96
|
+
border-bottom-left-radius: 0;
|
|
97
|
+
border-bottom-right-radius: 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
> *:last-child:not(:first-child) {
|
|
101
|
+
border-top-left-radius: 0;
|
|
102
|
+
border-top-right-radius: 0;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
> *:not(:first-child):not(:last-child) {
|
|
106
|
+
border-radius: 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
> *:hover,
|
|
110
|
+
> *:focus,
|
|
111
|
+
> *:active {
|
|
112
|
+
z-index: 2;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './style.less';
|
|
3
|
+
export interface PanelProps {
|
|
4
|
+
/** 默认大小(百分比或像素) */
|
|
5
|
+
defaultSize?: number | string;
|
|
6
|
+
/** 受控大小 */
|
|
7
|
+
size?: number | string;
|
|
8
|
+
/** 最小大小 */
|
|
9
|
+
min?: number | string;
|
|
10
|
+
/** 最大大小 */
|
|
11
|
+
max?: number | string;
|
|
12
|
+
/** 是否可调整大小 */
|
|
13
|
+
resizable?: boolean;
|
|
14
|
+
/** 是否可折叠 */
|
|
15
|
+
collapsible?: boolean;
|
|
16
|
+
/** 子元素 */
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
/** 自定义类名 */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** 自定义样式 */
|
|
21
|
+
style?: React.CSSProperties;
|
|
22
|
+
}
|
|
23
|
+
export declare const Panel: React.FC<PanelProps>;
|
|
24
|
+
export interface SplitterProps {
|
|
25
|
+
/** 布局方向 */
|
|
26
|
+
layout?: 'horizontal' | 'vertical';
|
|
27
|
+
/** 尺寸变化回调 */
|
|
28
|
+
onResize?: (sizes: number[]) => void;
|
|
29
|
+
/** 拖拽开始回调 */
|
|
30
|
+
onResizeStart?: () => void;
|
|
31
|
+
/** 拖拽结束回调 */
|
|
32
|
+
onResizeEnd?: (sizes: number[]) => void;
|
|
33
|
+
/** 子元素(Panel) */
|
|
34
|
+
children?: React.ReactNode;
|
|
35
|
+
/** 自定义类名 */
|
|
36
|
+
className?: string;
|
|
37
|
+
/** 自定义样式 */
|
|
38
|
+
style?: React.CSSProperties;
|
|
39
|
+
}
|
|
40
|
+
export declare const Splitter: React.FC<SplitterProps> & {
|
|
41
|
+
Panel: typeof Panel;
|
|
42
|
+
};
|
|
43
|
+
export default Splitter;
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
10
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
11
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
|
+
import React, { useState, useRef, useCallback, useEffect } from 'react';
|
|
18
|
+
import "./style.less";
|
|
19
|
+
|
|
20
|
+
// ============ Panel 面板组件 ============
|
|
21
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
+
export var Panel = function Panel(_ref) {
|
|
24
|
+
var children = _ref.children,
|
|
25
|
+
_ref$className = _ref.className,
|
|
26
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
27
|
+
style = _ref.style;
|
|
28
|
+
return /*#__PURE__*/_jsx("div", {
|
|
29
|
+
className: "kage-splitter-panel ".concat(className),
|
|
30
|
+
style: style,
|
|
31
|
+
children: children
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Panel.displayName = 'Panel';
|
|
35
|
+
|
|
36
|
+
// ============ Splitter 分割器组件 ============
|
|
37
|
+
|
|
38
|
+
export var Splitter = function Splitter(_ref2) {
|
|
39
|
+
var _ref2$layout = _ref2.layout,
|
|
40
|
+
layout = _ref2$layout === void 0 ? 'horizontal' : _ref2$layout,
|
|
41
|
+
onResize = _ref2.onResize,
|
|
42
|
+
onResizeStart = _ref2.onResizeStart,
|
|
43
|
+
onResizeEnd = _ref2.onResizeEnd,
|
|
44
|
+
children = _ref2.children,
|
|
45
|
+
_ref2$className = _ref2.className,
|
|
46
|
+
className = _ref2$className === void 0 ? '' : _ref2$className,
|
|
47
|
+
style = _ref2.style;
|
|
48
|
+
var containerRef = useRef(null);
|
|
49
|
+
var _useState = useState([]),
|
|
50
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
51
|
+
sizes = _useState2[0],
|
|
52
|
+
setSizes = _useState2[1];
|
|
53
|
+
var _useState3 = useState(false),
|
|
54
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
55
|
+
isDragging = _useState4[0],
|
|
56
|
+
setIsDragging = _useState4[1];
|
|
57
|
+
var _useState5 = useState(null),
|
|
58
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
59
|
+
dragIndex = _useState6[0],
|
|
60
|
+
setDragIndex = _useState6[1];
|
|
61
|
+
var startPosRef = useRef(0);
|
|
62
|
+
var startSizesRef = useRef([]);
|
|
63
|
+
|
|
64
|
+
// 解析子元素
|
|
65
|
+
var panels = React.Children.toArray(children).filter(function (child) {
|
|
66
|
+
var _child$type;
|
|
67
|
+
return /*#__PURE__*/React.isValidElement(child) && ((_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName) === 'Panel';
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// 初始化尺寸
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
if (sizes.length === 0 && panels.length > 0) {
|
|
73
|
+
var initialSizes = panels.map(function (panel, index) {
|
|
74
|
+
var defaultSize = panel.props.defaultSize;
|
|
75
|
+
if (defaultSize !== undefined) {
|
|
76
|
+
return typeof defaultSize === 'string' ? parseFloat(defaultSize) : defaultSize;
|
|
77
|
+
}
|
|
78
|
+
return 100 / panels.length;
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// 归一化到 100%
|
|
82
|
+
var total = initialSizes.reduce(function (a, b) {
|
|
83
|
+
return a + b;
|
|
84
|
+
}, 0);
|
|
85
|
+
var normalized = initialSizes.map(function (s) {
|
|
86
|
+
return s / total * 100;
|
|
87
|
+
});
|
|
88
|
+
setSizes(normalized);
|
|
89
|
+
}
|
|
90
|
+
}, [panels.length]);
|
|
91
|
+
|
|
92
|
+
// 获取面板配置
|
|
93
|
+
var getPanelConfig = function getPanelConfig(index) {
|
|
94
|
+
var panel = panels[index];
|
|
95
|
+
if (!panel) return {};
|
|
96
|
+
var _panel$props = panel.props,
|
|
97
|
+
min = _panel$props.min,
|
|
98
|
+
max = _panel$props.max,
|
|
99
|
+
_panel$props$resizabl = _panel$props.resizable,
|
|
100
|
+
resizable = _panel$props$resizabl === void 0 ? true : _panel$props$resizabl,
|
|
101
|
+
collapsible = _panel$props.collapsible;
|
|
102
|
+
return {
|
|
103
|
+
min: min !== undefined ? typeof min === 'string' ? parseFloat(min) : min : 0,
|
|
104
|
+
max: max !== undefined ? typeof max === 'string' ? parseFloat(max) : max : 100,
|
|
105
|
+
resizable: resizable,
|
|
106
|
+
collapsible: collapsible
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// 开始拖拽
|
|
111
|
+
var handleMouseDown = useCallback(function (index, e) {
|
|
112
|
+
e.preventDefault();
|
|
113
|
+
setIsDragging(true);
|
|
114
|
+
setDragIndex(index);
|
|
115
|
+
startPosRef.current = layout === 'horizontal' ? e.clientX : e.clientY;
|
|
116
|
+
startSizesRef.current = _toConsumableArray(sizes);
|
|
117
|
+
onResizeStart === null || onResizeStart === void 0 || onResizeStart();
|
|
118
|
+
}, [layout, sizes, onResizeStart]);
|
|
119
|
+
|
|
120
|
+
// 拖拽中
|
|
121
|
+
var handleMouseMove = useCallback(function (e) {
|
|
122
|
+
if (!isDragging || dragIndex === null || !containerRef.current) return;
|
|
123
|
+
var containerRect = containerRef.current.getBoundingClientRect();
|
|
124
|
+
var containerSize = layout === 'horizontal' ? containerRect.width : containerRect.height;
|
|
125
|
+
var currentPos = layout === 'horizontal' ? e.clientX : e.clientY;
|
|
126
|
+
var delta = currentPos - startPosRef.current;
|
|
127
|
+
var deltaPercent = delta / containerSize * 100;
|
|
128
|
+
var newSizes = _toConsumableArray(startSizesRef.current);
|
|
129
|
+
var config1 = getPanelConfig(dragIndex);
|
|
130
|
+
var config2 = getPanelConfig(dragIndex + 1);
|
|
131
|
+
var newSize1 = startSizesRef.current[dragIndex] + deltaPercent;
|
|
132
|
+
var newSize2 = startSizesRef.current[dragIndex + 1] - deltaPercent;
|
|
133
|
+
|
|
134
|
+
// 应用限制
|
|
135
|
+
var min1 = config1.min || 0;
|
|
136
|
+
var max1 = config1.max || 100;
|
|
137
|
+
var min2 = config2.min || 0;
|
|
138
|
+
var max2 = config2.max || 100;
|
|
139
|
+
if (newSize1 < min1) {
|
|
140
|
+
newSize1 = min1;
|
|
141
|
+
newSize2 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - min1;
|
|
142
|
+
}
|
|
143
|
+
if (newSize1 > max1) {
|
|
144
|
+
newSize1 = max1;
|
|
145
|
+
newSize2 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - max1;
|
|
146
|
+
}
|
|
147
|
+
if (newSize2 < min2) {
|
|
148
|
+
newSize2 = min2;
|
|
149
|
+
newSize1 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - min2;
|
|
150
|
+
}
|
|
151
|
+
if (newSize2 > max2) {
|
|
152
|
+
newSize2 = max2;
|
|
153
|
+
newSize1 = startSizesRef.current[dragIndex] + startSizesRef.current[dragIndex + 1] - max2;
|
|
154
|
+
}
|
|
155
|
+
newSizes[dragIndex] = newSize1;
|
|
156
|
+
newSizes[dragIndex + 1] = newSize2;
|
|
157
|
+
setSizes(newSizes);
|
|
158
|
+
onResize === null || onResize === void 0 || onResize(newSizes);
|
|
159
|
+
}, [isDragging, dragIndex, layout, onResize]);
|
|
160
|
+
|
|
161
|
+
// 结束拖拽
|
|
162
|
+
var handleMouseUp = useCallback(function () {
|
|
163
|
+
if (isDragging) {
|
|
164
|
+
setIsDragging(false);
|
|
165
|
+
setDragIndex(null);
|
|
166
|
+
onResizeEnd === null || onResizeEnd === void 0 || onResizeEnd(sizes);
|
|
167
|
+
}
|
|
168
|
+
}, [isDragging, sizes, onResizeEnd]);
|
|
169
|
+
|
|
170
|
+
// 绑定全局事件
|
|
171
|
+
useEffect(function () {
|
|
172
|
+
if (isDragging) {
|
|
173
|
+
document.addEventListener('mousemove', handleMouseMove);
|
|
174
|
+
document.addEventListener('mouseup', handleMouseUp);
|
|
175
|
+
document.body.style.cursor = layout === 'horizontal' ? 'col-resize' : 'row-resize';
|
|
176
|
+
document.body.style.userSelect = 'none';
|
|
177
|
+
}
|
|
178
|
+
return function () {
|
|
179
|
+
document.removeEventListener('mousemove', handleMouseMove);
|
|
180
|
+
document.removeEventListener('mouseup', handleMouseUp);
|
|
181
|
+
document.body.style.cursor = '';
|
|
182
|
+
document.body.style.userSelect = '';
|
|
183
|
+
};
|
|
184
|
+
}, [isDragging, handleMouseMove, handleMouseUp, layout]);
|
|
185
|
+
var classNames = ['kage-splitter', "kage-splitter-".concat(layout), isDragging && 'kage-splitter-dragging', className].filter(Boolean).join(' ');
|
|
186
|
+
return /*#__PURE__*/_jsx("div", {
|
|
187
|
+
ref: containerRef,
|
|
188
|
+
className: classNames,
|
|
189
|
+
style: style,
|
|
190
|
+
children: panels.map(function (panel, index) {
|
|
191
|
+
var isLast = index === panels.length - 1;
|
|
192
|
+
var size = sizes[index] || 100 / panels.length;
|
|
193
|
+
var panelStyle = _objectSpread(_defineProperty({}, layout === 'horizontal' ? 'width' : 'height', "".concat(size, "%")), panel.props.style);
|
|
194
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
195
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
196
|
+
className: "kage-splitter-panel ".concat(panel.props.className || ''),
|
|
197
|
+
style: panelStyle,
|
|
198
|
+
children: panel.props.children
|
|
199
|
+
}), !isLast && /*#__PURE__*/_jsx("div", {
|
|
200
|
+
className: "kage-splitter-bar kage-splitter-bar-".concat(layout),
|
|
201
|
+
onMouseDown: function onMouseDown(e) {
|
|
202
|
+
return handleMouseDown(index, e);
|
|
203
|
+
},
|
|
204
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
205
|
+
className: "kage-splitter-bar-dragger"
|
|
206
|
+
})
|
|
207
|
+
})]
|
|
208
|
+
}, index);
|
|
209
|
+
})
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
Splitter.Panel = Panel;
|
|
213
|
+
Splitter.displayName = 'Splitter';
|
|
214
|
+
export default Splitter;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Splitter 分割面板组件样式
|
|
2
|
+
|
|
3
|
+
@prefix: kage-splitter;
|
|
4
|
+
|
|
5
|
+
// 颜色变量
|
|
6
|
+
@splitter-bar-bg: #f0f0f0;
|
|
7
|
+
@splitter-bar-hover-bg: #d9d9d9;
|
|
8
|
+
@splitter-bar-active-bg: #6366f1;
|
|
9
|
+
@splitter-bar-size: 8px;
|
|
10
|
+
@splitter-dragger-size: 4px;
|
|
11
|
+
|
|
12
|
+
.@{prefix} {
|
|
13
|
+
display: flex;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
|
|
18
|
+
&-horizontal {
|
|
19
|
+
flex-direction: row;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&-vertical {
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&-dragging {
|
|
27
|
+
.@{prefix}-panel {
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// ============ Panel 面板 ============
|
|
34
|
+
.@{prefix}-panel {
|
|
35
|
+
flex-shrink: 0;
|
|
36
|
+
overflow: auto;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// ============ 分割条 ============
|
|
41
|
+
.@{prefix}-bar {
|
|
42
|
+
flex-shrink: 0;
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
background: @splitter-bar-bg;
|
|
47
|
+
transition: background-color 0.2s;
|
|
48
|
+
z-index: 1;
|
|
49
|
+
|
|
50
|
+
&:hover {
|
|
51
|
+
background: @splitter-bar-hover-bg;
|
|
52
|
+
|
|
53
|
+
.@{prefix}-bar-dragger {
|
|
54
|
+
background: @splitter-bar-active-bg;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&-horizontal {
|
|
59
|
+
width: @splitter-bar-size;
|
|
60
|
+
cursor: col-resize;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
|
|
63
|
+
.@{prefix}-bar-dragger {
|
|
64
|
+
width: @splitter-dragger-size;
|
|
65
|
+
height: 40px;
|
|
66
|
+
border-radius: 2px;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&-vertical {
|
|
71
|
+
height: @splitter-bar-size;
|
|
72
|
+
cursor: row-resize;
|
|
73
|
+
flex-direction: row;
|
|
74
|
+
|
|
75
|
+
.@{prefix}-bar-dragger {
|
|
76
|
+
width: 40px;
|
|
77
|
+
height: @splitter-dragger-size;
|
|
78
|
+
border-radius: 2px;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// ============ 拖拽手柄 ============
|
|
84
|
+
.@{prefix}-bar-dragger {
|
|
85
|
+
background: #bfbfbf;
|
|
86
|
+
transition: background-color 0.2s;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ============ 拖拽中状态 ============
|
|
90
|
+
.@{prefix}-dragging {
|
|
91
|
+
.@{prefix}-bar {
|
|
92
|
+
background: @splitter-bar-hover-bg;
|
|
93
|
+
|
|
94
|
+
.@{prefix}-bar-dragger {
|
|
95
|
+
background: @splitter-bar-active-bg;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './style.less';
|
|
3
|
+
export type StepStatus = 'wait' | 'process' | 'finish' | 'error';
|
|
4
|
+
export interface StepItem {
|
|
5
|
+
/** 标题 */
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
/** 描述 */
|
|
8
|
+
description?: React.ReactNode;
|
|
9
|
+
/** 子标题 */
|
|
10
|
+
subTitle?: React.ReactNode;
|
|
11
|
+
/** 图标 */
|
|
12
|
+
icon?: React.ReactNode;
|
|
13
|
+
/** 状态 */
|
|
14
|
+
status?: StepStatus;
|
|
15
|
+
/** 是否禁用 */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface StepsProps {
|
|
19
|
+
/** 步骤项 */
|
|
20
|
+
items: StepItem[];
|
|
21
|
+
/** 当前步骤 */
|
|
22
|
+
current?: number;
|
|
23
|
+
/** 方向 */
|
|
24
|
+
direction?: 'horizontal' | 'vertical';
|
|
25
|
+
/** 类型 */
|
|
26
|
+
type?: 'default' | 'navigation' | 'inline';
|
|
27
|
+
/** 尺寸 */
|
|
28
|
+
size?: 'default' | 'small';
|
|
29
|
+
/** 点状步骤条 */
|
|
30
|
+
progressDot?: boolean | ((dot: React.ReactNode, info: {
|
|
31
|
+
index: number;
|
|
32
|
+
status: StepStatus;
|
|
33
|
+
}) => React.ReactNode);
|
|
34
|
+
/** 标签位置 */
|
|
35
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
|
36
|
+
/** 起始序号 */
|
|
37
|
+
initial?: number;
|
|
38
|
+
/** 全局状态 */
|
|
39
|
+
status?: StepStatus;
|
|
40
|
+
/** 点击回调 */
|
|
41
|
+
onChange?: (current: number) => void;
|
|
42
|
+
/** 是否可点击 */
|
|
43
|
+
clickable?: boolean;
|
|
44
|
+
/** 自定义类名 */
|
|
45
|
+
className?: string;
|
|
46
|
+
/** 自定义样式 */
|
|
47
|
+
style?: React.CSSProperties;
|
|
48
|
+
}
|
|
49
|
+
export declare const Steps: React.FC<StepsProps>;
|
|
50
|
+
export interface StepComponentProps extends StepItem {
|
|
51
|
+
children?: React.ReactNode;
|
|
52
|
+
}
|
|
53
|
+
export declare const StepComponent: React.FC<StepComponentProps>;
|
|
54
|
+
type StepsType = typeof Steps & {
|
|
55
|
+
Step: typeof StepComponent;
|
|
56
|
+
};
|
|
57
|
+
declare const ExportSteps: StepsType;
|
|
58
|
+
export default ExportSteps;
|