@rainbow-oh/yee-c 0.6.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Form/demo/layout.js +4 -14
- package/dist/cjs/Form/style/index.less +32 -8
- package/dist/cjs/Grid/item.js +2 -1
- package/dist/cjs/Select/demo/orphan.d.ts +3 -0
- package/dist/cjs/Select/demo/orphan.js +78 -0
- package/dist/cjs/Select/interface.d.ts +11 -0
- package/dist/cjs/Select/select.js +18 -5
- package/dist/cjs/Selector/interface.d.ts +11 -0
- package/dist/cjs/Selector/selector.js +51 -16
- package/dist/cjs/Table/tbody/index.js +2 -2
- package/dist/cjs/Tabs/demo/type.js +23 -1
- package/dist/cjs/Tabs/hooks/useActiveBar.d.ts +2 -1
- package/dist/cjs/Tabs/hooks/useActiveBar.js +7 -3
- package/dist/cjs/Tabs/style/index.less +24 -14
- package/dist/cjs/Tabs/tab-header/index.js +2 -1
- package/dist/cjs/Tabs/tab-header/tab-header-title.js +1 -0
- package/dist/cjs/Tag/style/index.less +9 -9
- package/dist/cjs/style/color.css +1 -0
- package/dist/cjs/style/mobile.css +5 -0
- package/dist/cjs/style/size.css +6 -3
- package/dist/cjs/style/themes.css +1 -1
- package/dist/cjs/style/variables.css +8 -4
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Form/demo/layout.js +10 -10
- package/dist/esm/Form/style/index.less +32 -8
- package/dist/esm/Grid/item.js +2 -1
- package/dist/esm/Select/demo/orphan.d.ts +3 -0
- package/dist/esm/Select/demo/orphan.js +77 -0
- package/dist/esm/Select/interface.d.ts +11 -0
- package/dist/esm/Select/select.js +22 -6
- package/dist/esm/Selector/interface.d.ts +11 -0
- package/dist/esm/Selector/selector.js +34 -10
- package/dist/esm/Table/tbody/index.js +3 -2
- package/dist/esm/Tabs/demo/type.js +15 -4
- package/dist/esm/Tabs/hooks/useActiveBar.d.ts +2 -1
- package/dist/esm/Tabs/hooks/useActiveBar.js +7 -3
- package/dist/esm/Tabs/style/index.less +24 -14
- package/dist/esm/Tabs/tab-header/index.js +2 -1
- package/dist/esm/Tabs/tab-header/tab-header-title.js +1 -0
- package/dist/esm/Tag/style/index.less +9 -9
- package/dist/esm/style/color.css +1 -0
- package/dist/esm/style/mobile.css +5 -0
- package/dist/esm/style/size.css +6 -3
- package/dist/esm/style/themes.css +1 -1
- package/dist/esm/style/variables.css +8 -4
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.css +2 -2
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +1 -1
- package/src/Form/demo/layout.tsx +7 -12
- package/src/Form/style/index.less +32 -8
- package/src/Grid/item.tsx +2 -1
- package/src/Select/demo/orphan.tsx +61 -0
- package/src/Select/index.en-US.md +3 -0
- package/src/Select/index.zh-CN.md +3 -0
- package/src/Select/interface.ts +11 -0
- package/src/Select/select.tsx +19 -3
- package/src/Selector/interface.ts +11 -0
- package/src/Selector/selector.tsx +56 -25
- package/src/Table/tbody/index.tsx +5 -3
- package/src/Tabs/demo/type.tsx +21 -2
- package/src/Tabs/hooks/useActiveBar.ts +8 -4
- package/src/Tabs/style/index.less +24 -14
- package/src/Tabs/tab-header/index.tsx +2 -1
- package/src/Tabs/tab-header/tab-header-title.tsx +1 -0
- package/src/Tag/style/index.less +9 -9
- package/src/style/color.css +1 -0
- package/src/style/mobile.css +5 -0
- package/src/style/size.css +6 -3
- package/src/version.ts +1 -1
package/dist/cjs/style/size.css
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--yee-font-family: inherit;
|
|
3
|
+
|
|
3
4
|
/* ── z-index 基础层级 ── */
|
|
4
5
|
--yee-z-index-fixed: 990; /* L1 吸顶 */
|
|
5
6
|
--yee-z-index-mask: 1000; /* L2 遮罩背景 */
|
|
@@ -270,6 +271,8 @@
|
|
|
270
271
|
--yee-form-item-label-line-height: 24px;
|
|
271
272
|
--yee-form-item-required-margin-inline-start: 4px;
|
|
272
273
|
--yee-form-item-additional-bottom: 2px;
|
|
274
|
+
--yee-form-item-horizontal-label-width: 120px;
|
|
275
|
+
--yee-form-item-horizontal-label-gap: 12px;
|
|
273
276
|
|
|
274
277
|
/* --Grid-- */
|
|
275
278
|
--yee-grid-column-min-width: 50px;
|
|
@@ -685,7 +688,7 @@
|
|
|
685
688
|
--yee-tabs-active-bar-height: 2px;
|
|
686
689
|
--yee-tabs-active-bar-width: 2px;
|
|
687
690
|
--yee-tabs-vertical-padding: 8px 0;
|
|
688
|
-
--yee-tabs-vertical-nav-
|
|
691
|
+
--yee-tabs-vertical-nav-track-padding: 8px 0;
|
|
689
692
|
--yee-tabs-vertical-container-padding: 0 20px;
|
|
690
693
|
--yee-tabs-vertical-active-bar-height: 32px;
|
|
691
694
|
--yee-tabs-nav-wrapper-height: 46px;
|
|
@@ -722,8 +725,8 @@
|
|
|
722
725
|
--yee-tabs-card-tab-border-width: 1px;
|
|
723
726
|
--yee-tabs-card-tab-border-radius: 4px;
|
|
724
727
|
--yee-tabs-card-tab-not-active-height: 39px;
|
|
725
|
-
--yee-tabs-nav-
|
|
726
|
-
--yee-tabs-nav-
|
|
728
|
+
--yee-tabs-nav-track-scroll-width: calc(100% - 64px);
|
|
729
|
+
--yee-tabs-nav-track-scroll-margin-left: 32px;
|
|
727
730
|
--yee-tabs-nav-wrapper-shadow-width: 8px;
|
|
728
731
|
--yee-tabs-nav-wrapper-shadow-inset: 4px;
|
|
729
732
|
--yee-tabs-nav-wrapper-top-z-index: var(--yee-z-index-fixed);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @rainbow-oh/yee-c CSS Variables
|
|
3
3
|
* Auto-generated, do not edit manually
|
|
4
|
-
* Generated on 2026-07-
|
|
4
|
+
* Generated on 2026-07-14T08:05:12.055Z
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/* ========== color.css ========== */
|
|
@@ -910,6 +910,7 @@
|
|
|
910
910
|
--yee-tabs-card-border-bg-color: var(--yee-color-bg-head);
|
|
911
911
|
--yee-tabs-card-active-bg-color: var(--yee-color-bg-container);
|
|
912
912
|
--yee-tabs-card-bg-color: transparent;
|
|
913
|
+
--yee-tabs-conatiner-bg-color: var(--yee-color-bg-container);
|
|
913
914
|
--yee-tabs-header-custom-btn-text-color: var(--yee-text-color);
|
|
914
915
|
--yee-tabs-header-custom-btn-text-hover-color: var(--yee-primary-color);
|
|
915
916
|
--yee-tabs-header-custom-btn-text-active-color: var(--yee-primary-color);
|
|
@@ -1118,6 +1119,7 @@
|
|
|
1118
1119
|
/* ========== size.css ========== */
|
|
1119
1120
|
:root {
|
|
1120
1121
|
--yee-font-family: inherit;
|
|
1122
|
+
|
|
1121
1123
|
/* ── z-index 基础层级 ── */
|
|
1122
1124
|
--yee-z-index-fixed: 990; /* L1 吸顶 */
|
|
1123
1125
|
--yee-z-index-mask: 1000; /* L2 遮罩背景 */
|
|
@@ -1388,6 +1390,8 @@
|
|
|
1388
1390
|
--yee-form-item-label-line-height: 24px;
|
|
1389
1391
|
--yee-form-item-required-margin-inline-start: 4px;
|
|
1390
1392
|
--yee-form-item-additional-bottom: 2px;
|
|
1393
|
+
--yee-form-item-horizontal-label-width: 120px;
|
|
1394
|
+
--yee-form-item-horizontal-label-gap: 12px;
|
|
1391
1395
|
|
|
1392
1396
|
/* --Grid-- */
|
|
1393
1397
|
--yee-grid-column-min-width: 50px;
|
|
@@ -1803,7 +1807,7 @@
|
|
|
1803
1807
|
--yee-tabs-active-bar-height: 2px;
|
|
1804
1808
|
--yee-tabs-active-bar-width: 2px;
|
|
1805
1809
|
--yee-tabs-vertical-padding: 8px 0;
|
|
1806
|
-
--yee-tabs-vertical-nav-
|
|
1810
|
+
--yee-tabs-vertical-nav-track-padding: 8px 0;
|
|
1807
1811
|
--yee-tabs-vertical-container-padding: 0 20px;
|
|
1808
1812
|
--yee-tabs-vertical-active-bar-height: 32px;
|
|
1809
1813
|
--yee-tabs-nav-wrapper-height: 46px;
|
|
@@ -1840,8 +1844,8 @@
|
|
|
1840
1844
|
--yee-tabs-card-tab-border-width: 1px;
|
|
1841
1845
|
--yee-tabs-card-tab-border-radius: 4px;
|
|
1842
1846
|
--yee-tabs-card-tab-not-active-height: 39px;
|
|
1843
|
-
--yee-tabs-nav-
|
|
1844
|
-
--yee-tabs-nav-
|
|
1847
|
+
--yee-tabs-nav-track-scroll-width: calc(100% - 64px);
|
|
1848
|
+
--yee-tabs-nav-track-scroll-margin-left: 32px;
|
|
1845
1849
|
--yee-tabs-nav-wrapper-shadow-width: 8px;
|
|
1846
1850
|
--yee-tabs-nav-wrapper-shadow-inset: 4px;
|
|
1847
1851
|
--yee-tabs-nav-wrapper-top-z-index: var(--yee-z-index-fixed);
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
|
@@ -5,17 +5,19 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5
5
|
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; } }
|
|
6
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
7
|
import { Button, Form, Grid, Input, Radio, Space } from "../..";
|
|
8
|
-
import React from 'react';
|
|
8
|
+
import React, { useState } from 'react';
|
|
9
9
|
export default (function () {
|
|
10
10
|
var _Form$useForm = Form.useForm(),
|
|
11
11
|
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
12
12
|
form = _Form$useForm2[0];
|
|
13
|
+
var _useState = useState('vertical'),
|
|
14
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
+
layout = _useState2[0],
|
|
16
|
+
setLayout = _useState2[1];
|
|
13
17
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Radio.Group, {
|
|
14
|
-
|
|
18
|
+
value: layout,
|
|
15
19
|
onChange: function onChange(value) {
|
|
16
|
-
|
|
17
|
-
layout: value
|
|
18
|
-
});
|
|
20
|
+
return setLayout(value);
|
|
19
21
|
},
|
|
20
22
|
options: [{
|
|
21
23
|
value: 'vertical',
|
|
@@ -26,12 +28,10 @@ export default (function () {
|
|
|
26
28
|
}]
|
|
27
29
|
}), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(Form, {
|
|
28
30
|
form: form,
|
|
29
|
-
initialValues: {
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
layout: "vertical"
|
|
31
|
+
initialValues: {},
|
|
32
|
+
layout: layout
|
|
33
33
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
34
|
-
cols:
|
|
34
|
+
cols: 2
|
|
35
35
|
}, /*#__PURE__*/React.createElement(Form.Field, {
|
|
36
36
|
name: "name",
|
|
37
37
|
label: "Name",
|
|
@@ -1,16 +1,40 @@
|
|
|
1
1
|
@pls: .yee-form;
|
|
2
2
|
|
|
3
|
+
// Horizontal form-item layout: label pinned left at a fixed width (right-
|
|
4
|
+
// aligned), control fills the remaining space. Shared by Form-level layout
|
|
5
|
+
// (ancestor .yee-form-horizontal cascades onto every item, including
|
|
6
|
+
// Field.Group) and Field-level layout (the item carries .yee-form-item-
|
|
7
|
+
// horizontal itself). Uses descendant selectors (not &) so the mixin expands
|
|
8
|
+
// correctly under either anchor.
|
|
9
|
+
.horizontal-layout() {
|
|
10
|
+
@{pls}-item-row {
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: flex-start;
|
|
13
|
+
gap: var(--yee-form-item-horizontal-label-gap, 12px);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@{pls}-item-label {
|
|
17
|
+
width: var(--yee-form-item-horizontal-label-width, 120px);
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
margin-bottom: 0;
|
|
20
|
+
justify-content: flex-end;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@{pls}-item-control {
|
|
24
|
+
flex: 1;
|
|
25
|
+
min-width: 0;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
3
29
|
@{pls} {
|
|
30
|
+
// Form-level horizontal: cascades onto every descendant item.
|
|
4
31
|
&-horizontal {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
display: flex;
|
|
8
|
-
}
|
|
32
|
+
.horizontal-layout();
|
|
33
|
+
}
|
|
9
34
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
35
|
+
// Field-level horizontal: a single item opts in via layout="horizontal".
|
|
36
|
+
&-item-horizontal {
|
|
37
|
+
.horizontal-layout();
|
|
14
38
|
}
|
|
15
39
|
|
|
16
40
|
&-item {
|
package/dist/esm/Grid/item.js
CHANGED
|
@@ -10,6 +10,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
10
10
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
11
11
|
import clsx from 'clsx';
|
|
12
12
|
import React from 'react';
|
|
13
|
+
import omit from "../utils/omit";
|
|
13
14
|
var Item = function Item(props) {
|
|
14
15
|
var _props$prefixCls = props.prefixCls,
|
|
15
16
|
prefixCls = _props$prefixCls === void 0 ? 'yee-grid' : _props$prefixCls,
|
|
@@ -21,7 +22,7 @@ var Item = function Item(props) {
|
|
|
21
22
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
22
23
|
className: clsx("".concat(prefixCls, "-item"), className),
|
|
23
24
|
style: _objectSpread(_objectSpread({}, spanStyle), style)
|
|
24
|
-
}, rest), children);
|
|
25
|
+
}, omit(rest, ['colspan'])), children);
|
|
25
26
|
};
|
|
26
27
|
Item.displayName = 'GridItem';
|
|
27
28
|
export default Item;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
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); }
|
|
4
|
+
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; }
|
|
5
|
+
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; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { Select, Space } from "../..";
|
|
8
|
+
import React, { useState } from 'react';
|
|
9
|
+
var options = [{
|
|
10
|
+
label: 'Apple',
|
|
11
|
+
value: 'apple'
|
|
12
|
+
}, {
|
|
13
|
+
label: 'Banana',
|
|
14
|
+
value: 'banana'
|
|
15
|
+
}, {
|
|
16
|
+
label: 'Orange',
|
|
17
|
+
value: 'orange'
|
|
18
|
+
}, {
|
|
19
|
+
label: 'Pineapple',
|
|
20
|
+
value: 'pineapple'
|
|
21
|
+
}];
|
|
22
|
+
|
|
23
|
+
// Inline style applied to an orphan value (a value not present in options)
|
|
24
|
+
var orphanStyle = {
|
|
25
|
+
color: '#fa8c16',
|
|
26
|
+
fontStyle: 'italic',
|
|
27
|
+
textDecoration: 'underline dotted'
|
|
28
|
+
};
|
|
29
|
+
export default (function () {
|
|
30
|
+
// 'mangox' is not in options → rendered as an orphan value
|
|
31
|
+
var _useState = useState('mangox'),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
single = _useState2[0],
|
|
34
|
+
setSingle = _useState2[1];
|
|
35
|
+
// 'durian' is not in options → rendered as an orphan tag alongside normal ones
|
|
36
|
+
var _useState3 = useState(['apple', 'durian', 'banana']),
|
|
37
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
+
multi = _useState4[0],
|
|
39
|
+
setMulti = _useState4[1];
|
|
40
|
+
return /*#__PURE__*/React.createElement(Space, {
|
|
41
|
+
direction: "vertical",
|
|
42
|
+
style: {
|
|
43
|
+
width: '100%'
|
|
44
|
+
}
|
|
45
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
46
|
+
style: {
|
|
47
|
+
marginBottom: 8
|
|
48
|
+
}
|
|
49
|
+
}, "Single \u2014 orphan value styled via ", /*#__PURE__*/React.createElement("code", null, "orphanStyle")), /*#__PURE__*/React.createElement(Select, {
|
|
50
|
+
value: single,
|
|
51
|
+
onChange: function onChange(val) {
|
|
52
|
+
return setSingle(val);
|
|
53
|
+
},
|
|
54
|
+
options: options,
|
|
55
|
+
orphanStyle: orphanStyle,
|
|
56
|
+
style: {
|
|
57
|
+
width: 300
|
|
58
|
+
},
|
|
59
|
+
placeholder: "Please select"
|
|
60
|
+
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
61
|
+
style: {
|
|
62
|
+
marginBottom: 8
|
|
63
|
+
}
|
|
64
|
+
}, "Multiple \u2014 orphan tag styled via ", /*#__PURE__*/React.createElement("code", null, "orphanClassName")), /*#__PURE__*/React.createElement(Select, {
|
|
65
|
+
mode: "multiple",
|
|
66
|
+
value: multi,
|
|
67
|
+
onChange: function onChange(val) {
|
|
68
|
+
return setMulti(val);
|
|
69
|
+
},
|
|
70
|
+
options: options,
|
|
71
|
+
orphanClassName: "demo-orphan-tag",
|
|
72
|
+
style: {
|
|
73
|
+
width: 300
|
|
74
|
+
},
|
|
75
|
+
placeholder: "Please select"
|
|
76
|
+
})), /*#__PURE__*/React.createElement("style", null, "\n .demo-orphan-tag {\n color: #fa541c;\n font-style: italic;\n }\n "));
|
|
77
|
+
});
|
|
@@ -87,6 +87,17 @@ export interface SelectProps extends DataAttributeProps, Pick<SelectorProps, 'si
|
|
|
87
87
|
* Property to backfill into the select box
|
|
88
88
|
*/
|
|
89
89
|
optionLabelProp?: 'string' | (() => string);
|
|
90
|
+
/**
|
|
91
|
+
* Extra class name applied to the displayed value when it is not found
|
|
92
|
+
* in `options` (an "orphan" value). An orphan value is shown as the raw
|
|
93
|
+
* value itself; this lets you style it differently (e.g. to flag stale data).
|
|
94
|
+
*/
|
|
95
|
+
orphanClassName?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Extra inline style applied to the displayed value when it is not found
|
|
98
|
+
* in `options` (an "orphan" value).
|
|
99
|
+
*/
|
|
100
|
+
orphanStyle?: React.CSSProperties;
|
|
90
101
|
/**
|
|
91
102
|
* Callback when value changes
|
|
92
103
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["prefixCls", "options", "placement", "mode", "value", "defaultValue", "optionFilterProp", "disabled", "onChange", "onFilter", "virtual", "itemHeight", "listHeight"];
|
|
1
|
+
var _excluded = ["prefixCls", "options", "placement", "mode", "value", "defaultValue", "optionFilterProp", "disabled", "onChange", "onFilter", "virtual", "itemHeight", "listHeight", "orphanClassName", "orphanStyle"];
|
|
2
2
|
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); }
|
|
3
3
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
4
|
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."); }
|
|
@@ -43,6 +43,8 @@ var Select = function Select(baseprops) {
|
|
|
43
43
|
virtual = props.virtual,
|
|
44
44
|
itemHeight = props.itemHeight,
|
|
45
45
|
listHeight = props.listHeight,
|
|
46
|
+
orphanClassName = props.orphanClassName,
|
|
47
|
+
orphanStyle = props.orphanStyle,
|
|
46
48
|
rest = _objectWithoutProperties(props, _excluded);
|
|
47
49
|
var single = mode !== 'multiple' && mode !== 'tags' ? true : false;
|
|
48
50
|
var handleState = function handleState(value) {
|
|
@@ -79,6 +81,7 @@ var Select = function Select(baseprops) {
|
|
|
79
81
|
(_virtualApiRef$curren = virtualApiRef.current) === null || _virtualApiRef$curren === void 0 || _virtualApiRef$curren.scrollToIndex(index);
|
|
80
82
|
}, []);
|
|
81
83
|
var getOptions = function getOptions(keys) {
|
|
84
|
+
var _options$find;
|
|
82
85
|
if (keys === '' || keys === null) {
|
|
83
86
|
return undefined;
|
|
84
87
|
}
|
|
@@ -86,13 +89,24 @@ var Select = function Select(baseprops) {
|
|
|
86
89
|
if (keys.length === 0) {
|
|
87
90
|
return [];
|
|
88
91
|
}
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
// 按 keys 顺序回填,找不到的 key 构造 label=value 的兜底项(孤儿值),
|
|
93
|
+
// 与 Selector 的显示保持一致,避免 onChange 第二参数丢值。
|
|
94
|
+
return keys.map(function (key) {
|
|
95
|
+
var opt = options.find(function (o) {
|
|
96
|
+
return o.value === key;
|
|
97
|
+
});
|
|
98
|
+
return opt !== null && opt !== void 0 ? opt : {
|
|
99
|
+
value: key,
|
|
100
|
+
label: String(key)
|
|
101
|
+
};
|
|
91
102
|
});
|
|
92
103
|
}
|
|
93
|
-
return options.find(function (opt) {
|
|
104
|
+
return (_options$find = options.find(function (opt) {
|
|
94
105
|
return opt.value === keys;
|
|
95
|
-
})
|
|
106
|
+
})) !== null && _options$find !== void 0 ? _options$find : {
|
|
107
|
+
value: keys,
|
|
108
|
+
label: String(keys)
|
|
109
|
+
};
|
|
96
110
|
};
|
|
97
111
|
var handleSelect = function handleSelect(key, e) {
|
|
98
112
|
var keys;
|
|
@@ -195,7 +209,9 @@ var Select = function Select(baseprops) {
|
|
|
195
209
|
onClear: handleClear,
|
|
196
210
|
onRemove: handleRemove,
|
|
197
211
|
onSearch: handleSearch,
|
|
198
|
-
onKeyDown: onKeyDown
|
|
212
|
+
onKeyDown: onKeyDown,
|
|
213
|
+
orphanClassName: orphanClassName,
|
|
214
|
+
orphanStyle: orphanStyle
|
|
199
215
|
})));
|
|
200
216
|
};
|
|
201
217
|
export default Select;
|
|
@@ -78,6 +78,17 @@ export interface PureSelectorProps {
|
|
|
78
78
|
* Custom text displayed in the input
|
|
79
79
|
*/
|
|
80
80
|
optionLabelProp?: string | ((option: TagType) => string);
|
|
81
|
+
/**
|
|
82
|
+
* Extra class name applied to the displayed value/tag when its key is not
|
|
83
|
+
* found in `options` (an "orphan" value). The orphan value is shown as the
|
|
84
|
+
* raw key itself; this lets you style it differently (e.g. to flag stale data).
|
|
85
|
+
*/
|
|
86
|
+
orphanClassName?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Extra inline style applied to the displayed value/tag when its key is not
|
|
89
|
+
* found in `options` (an "orphan" value).
|
|
90
|
+
*/
|
|
91
|
+
orphanStyle?: React.CSSProperties;
|
|
81
92
|
/**
|
|
82
93
|
* Control the open state
|
|
83
94
|
* */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
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
|
-
var _excluded = ["prefixCls", "mode", "className", "style", "optionLabelProp", "searchable", "disabled", "options", "selectedKeys", "allowClear", "placeholder", "closable", "suffix", "value", "open", "loading", "size", "onSearch", "onRemove", "onClear", "onOpenChange", "onKeyDown"]
|
|
2
|
+
var _excluded = ["prefixCls", "mode", "className", "style", "optionLabelProp", "searchable", "disabled", "options", "selectedKeys", "orphanClassName", "orphanStyle", "allowClear", "placeholder", "closable", "suffix", "value", "open", "loading", "size", "onSearch", "onRemove", "onClear", "onOpenChange", "onKeyDown"],
|
|
3
|
+
_excluded2 = ["_orphan"];
|
|
3
4
|
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); }
|
|
4
5
|
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; }
|
|
5
6
|
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; }
|
|
@@ -37,6 +38,8 @@ var Selector = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
37
38
|
_props$options = props.options,
|
|
38
39
|
options = _props$options === void 0 ? [] : _props$options,
|
|
39
40
|
selectedKeys = props.selectedKeys,
|
|
41
|
+
orphanClassName = props.orphanClassName,
|
|
42
|
+
orphanStyle = props.orphanStyle,
|
|
40
43
|
_props$allowClear = props.allowClear,
|
|
41
44
|
allowClear = _props$allowClear === void 0 ? true : _props$allowClear,
|
|
42
45
|
placeholder = props.placeholder,
|
|
@@ -63,13 +66,27 @@ var Selector = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
63
66
|
searchValue = _useMergedState2[0],
|
|
64
67
|
setSearchValue = _useMergedState2[1];
|
|
65
68
|
var tags = useMemo(function () {
|
|
66
|
-
|
|
67
|
-
return
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
if (!Array.isArray(options)) {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
// 按 selectedKeys 顺序渲染;找不到的 key 作为孤儿值回退显示 value 本身
|
|
73
|
+
return selectedKeys.map(function (key) {
|
|
74
|
+
var opt = options.find(function (o) {
|
|
75
|
+
return o.value === key;
|
|
71
76
|
});
|
|
72
|
-
|
|
77
|
+
if (opt) {
|
|
78
|
+
return _objectSpread(_objectSpread({}, opt), {}, {
|
|
79
|
+
children: typeof optionLabelProp === 'function' ? optionLabelProp(opt) : opt[optionLabelProp],
|
|
80
|
+
_orphan: false
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
value: key,
|
|
85
|
+
label: String(key),
|
|
86
|
+
children: String(key),
|
|
87
|
+
_orphan: true
|
|
88
|
+
};
|
|
89
|
+
});
|
|
73
90
|
}, [options, selectedKeys, optionLabelProp]);
|
|
74
91
|
var handleClick = function handleClick() {
|
|
75
92
|
if (inputRef.current && !disabled) {
|
|
@@ -124,8 +141,12 @@ var Selector = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
124
141
|
var renderContent = function renderContent() {
|
|
125
142
|
if (multi) {
|
|
126
143
|
return tags.map(function (item, index) {
|
|
144
|
+
var _orphan = item._orphan,
|
|
145
|
+
tagRest = _objectWithoutProperties(item, _excluded2);
|
|
127
146
|
var _closable = typeof closable === 'function' ? closable(item) : closable;
|
|
128
|
-
return /*#__PURE__*/React.createElement(Tag, _extends({},
|
|
147
|
+
return /*#__PURE__*/React.createElement(Tag, _extends({}, tagRest, {
|
|
148
|
+
className: _orphan ? orphanClassName : undefined,
|
|
149
|
+
style: _orphan ? orphanStyle : undefined,
|
|
129
150
|
closable: _closable,
|
|
130
151
|
onClose: function onClose(e) {
|
|
131
152
|
return handleRemove(item, e);
|
|
@@ -138,9 +159,12 @@ var Selector = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
138
159
|
var opt = Array.isArray(options) ? options.find(function (opt) {
|
|
139
160
|
return opt.value === key;
|
|
140
161
|
}) : null;
|
|
141
|
-
|
|
162
|
+
// 孤儿值:key 非空但在 options 中找不到时,回退显示 value 本身
|
|
163
|
+
var isOrphan = !opt && key !== '';
|
|
164
|
+
var label = opt ? typeof optionLabelProp === 'function' ? optionLabelProp(opt) : opt[optionLabelProp] : isOrphan ? String(key) : null;
|
|
142
165
|
return /*#__PURE__*/React.createElement(React.Fragment, null, renderSearch(), label && /*#__PURE__*/React.createElement("div", {
|
|
143
|
-
className: "".concat(prefixCls, "-selection-item")
|
|
166
|
+
className: clsx("".concat(prefixCls, "-selection-item"), isOrphan && orphanClassName),
|
|
167
|
+
style: isOrphan ? orphanStyle : undefined
|
|
144
168
|
}, label));
|
|
145
169
|
};
|
|
146
170
|
var renderSuffix = function renderSuffix() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["columns", "pageData", "lazyLoad"];
|
|
1
|
+
var _excluded = ["columns", "pageData", "lazyLoad", "noData"];
|
|
2
2
|
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); }
|
|
3
3
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4
4
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -12,6 +12,7 @@ var TableBody = function TableBody(props) {
|
|
|
12
12
|
var columns = props.columns,
|
|
13
13
|
pageData = props.pageData,
|
|
14
14
|
lazyLoad = props.lazyLoad,
|
|
15
|
+
noData = props.noData,
|
|
15
16
|
rest = _objectWithoutProperties(props, _excluded);
|
|
16
17
|
var _React$useContext = React.useContext(TableCtx),
|
|
17
18
|
prefixCls = _React$useContext.prefixCls,
|
|
@@ -26,7 +27,7 @@ var TableBody = function TableBody(props) {
|
|
|
26
27
|
className: "".concat(prefixCls, "-no-record")
|
|
27
28
|
}, /*#__PURE__*/React.createElement("td", {
|
|
28
29
|
colSpan: 999
|
|
29
|
-
}, tableLocale.emptyText)));
|
|
30
|
+
}, noData !== null && noData !== void 0 ? noData : tableLocale.emptyText)));
|
|
30
31
|
var dataLength = pageData.length;
|
|
31
32
|
if (dataLength === 0) return empty;
|
|
32
33
|
var BodyWrapper = (_components$body$tbod = components === null || components === void 0 || (_components$body = components.body) === null || _components$body === void 0 ? void 0 : _components$body.tbody) !== null && _components$body$tbod !== void 0 ? _components$body$tbod : 'tbody';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tabs } from "../..";
|
|
1
|
+
import { Box, Tabs } from "../..";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export default (function () {
|
|
4
4
|
var items = [{
|
|
@@ -14,9 +14,20 @@ export default (function () {
|
|
|
14
14
|
label: 'Tab 3',
|
|
15
15
|
children: 'Content of Tab Pane 3'
|
|
16
16
|
}];
|
|
17
|
-
return /*#__PURE__*/React.createElement(
|
|
17
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
18
|
+
style: {
|
|
19
|
+
padding: 16,
|
|
20
|
+
backgroundColor: '#efefef'
|
|
21
|
+
}
|
|
22
|
+
}, /*#__PURE__*/React.createElement(Tabs, {
|
|
18
23
|
defaultActiveKey: "1",
|
|
19
24
|
items: items,
|
|
20
|
-
type: "card"
|
|
21
|
-
|
|
25
|
+
type: "card",
|
|
26
|
+
styles: {
|
|
27
|
+
content: {
|
|
28
|
+
padding: 24,
|
|
29
|
+
height: 120
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
22
33
|
});
|
|
@@ -4,7 +4,8 @@ interface UseActiveBarOptions {
|
|
|
4
4
|
activeKey: string | number;
|
|
5
5
|
activetab: React.RefObject<HTMLElement | null>;
|
|
6
6
|
activebar: React.RefObject<HTMLDivElement | null>;
|
|
7
|
+
listEle: React.RefObject<HTMLDivElement | null>;
|
|
7
8
|
enabled: boolean;
|
|
8
9
|
}
|
|
9
|
-
export declare function useActiveBar({ direction, activeKey, activetab, activebar, enabled, }: UseActiveBarOptions): () => void;
|
|
10
|
+
export declare function useActiveBar({ direction, activeKey, activetab, activebar, listEle, enabled, }: UseActiveBarOptions): () => void;
|
|
10
11
|
export {};
|
|
@@ -4,20 +4,24 @@ export function useActiveBar(_ref) {
|
|
|
4
4
|
activeKey = _ref.activeKey,
|
|
5
5
|
activetab = _ref.activetab,
|
|
6
6
|
activebar = _ref.activebar,
|
|
7
|
+
listEle = _ref.listEle,
|
|
7
8
|
enabled = _ref.enabled;
|
|
8
9
|
var rafIdRef = useRef(0);
|
|
9
10
|
var moveActiveBar = useCallback(function () {
|
|
10
11
|
var bar = activebar.current;
|
|
11
12
|
var tab = activetab.current;
|
|
12
|
-
|
|
13
|
+
var nav = listEle.current;
|
|
14
|
+
if (!bar || !tab || !enabled || !nav) return;
|
|
13
15
|
var rect = tab.getBoundingClientRect();
|
|
16
|
+
var listPaddingLeft = parseFloat(getComputedStyle(nav).paddingLeft) || 0;
|
|
17
|
+
var listPaddingTop = parseFloat(getComputedStyle(nav).paddingTop) || 0;
|
|
14
18
|
var isHorizontal = direction === 'horizontal';
|
|
15
19
|
if (isHorizontal) {
|
|
16
20
|
bar.style.width = "".concat(rect.width, "px");
|
|
17
|
-
bar.style.transform = "translateX(".concat(tab.offsetLeft, "px)");
|
|
21
|
+
bar.style.transform = "translateX(".concat(tab.offsetLeft - listPaddingLeft, "px)");
|
|
18
22
|
} else {
|
|
19
23
|
bar.style.height = "".concat(rect.height, "px");
|
|
20
|
-
bar.style.transform = "translateY(".concat(tab.offsetTop, "px)");
|
|
24
|
+
bar.style.transform = "translateY(".concat(tab.offsetTop - listPaddingTop, "px)");
|
|
21
25
|
}
|
|
22
26
|
}, [direction, activetab, activebar, enabled]);
|
|
23
27
|
useEffect(function () {
|