@rainbow-oh/yee-c 0.6.2 → 0.6.4

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.
Files changed (48) hide show
  1. package/dist/cjs/Checkbox/style/index.less +1 -1
  2. package/dist/cjs/Select/demo/orphan.d.ts +3 -0
  3. package/dist/cjs/Select/demo/orphan.js +78 -0
  4. package/dist/cjs/Select/interface.d.ts +11 -0
  5. package/dist/cjs/Select/select.js +18 -5
  6. package/dist/cjs/Selector/interface.d.ts +11 -0
  7. package/dist/cjs/Selector/selector.js +51 -16
  8. package/dist/cjs/Table/style/index.less +1 -1
  9. package/dist/cjs/Table/tbody/index.js +2 -2
  10. package/dist/cjs/Tag/style/index.less +9 -9
  11. package/dist/cjs/style/themes.css +1 -1
  12. package/dist/cjs/style/variables.css +1 -1
  13. package/dist/cjs/utils/isEqual.d.ts +1 -1
  14. package/dist/cjs/utils/isEqual.js +26 -13
  15. package/dist/cjs/version.d.ts +1 -1
  16. package/dist/cjs/version.js +1 -1
  17. package/dist/esm/Checkbox/style/index.less +1 -1
  18. package/dist/esm/Select/demo/orphan.d.ts +3 -0
  19. package/dist/esm/Select/demo/orphan.js +77 -0
  20. package/dist/esm/Select/interface.d.ts +11 -0
  21. package/dist/esm/Select/select.js +22 -6
  22. package/dist/esm/Selector/interface.d.ts +11 -0
  23. package/dist/esm/Selector/selector.js +34 -10
  24. package/dist/esm/Table/style/index.less +1 -1
  25. package/dist/esm/Table/tbody/index.js +3 -2
  26. package/dist/esm/Tag/style/index.less +9 -9
  27. package/dist/esm/style/themes.css +1 -1
  28. package/dist/esm/style/variables.css +1 -1
  29. package/dist/esm/utils/isEqual.d.ts +1 -1
  30. package/dist/esm/utils/isEqual.js +33 -15
  31. package/dist/esm/version.d.ts +1 -1
  32. package/dist/esm/version.js +1 -1
  33. package/dist/umd/yee-c.min.css +1 -1
  34. package/dist/umd/yee-c.min.js +1 -1
  35. package/package.json +1 -1
  36. package/src/Checkbox/style/index.less +1 -1
  37. package/src/Select/demo/orphan.tsx +61 -0
  38. package/src/Select/index.en-US.md +3 -0
  39. package/src/Select/index.zh-CN.md +3 -0
  40. package/src/Select/interface.ts +11 -0
  41. package/src/Select/select.tsx +19 -3
  42. package/src/Selector/interface.ts +11 -0
  43. package/src/Selector/selector.tsx +56 -25
  44. package/src/Table/style/index.less +1 -1
  45. package/src/Table/tbody/index.tsx +5 -3
  46. package/src/Tag/style/index.less +9 -9
  47. package/src/utils/isEqual.ts +37 -14
  48. package/src/version.ts +1 -1
@@ -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
- return Array.isArray(options) ? options.filter(function (opt) {
67
- return selectedKeys.includes(opt.value);
68
- }).map(function (opt) {
69
- return _objectSpread(_objectSpread({}, opt), {}, {
70
- children: typeof optionLabelProp === 'function' ? optionLabelProp(opt) : opt[optionLabelProp]
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({}, item, {
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
- var label = opt ? typeof optionLabelProp === 'function' ? optionLabelProp(opt) : opt[optionLabelProp] : null;
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() {
@@ -38,7 +38,7 @@
38
38
  position: relative;
39
39
  background-color: var(--yee-table-thead-bg-color);
40
40
 
41
- &:not(:last-child):not(@{pls}-expand-col) {
41
+ &:not(:empty):not(:last-child):not(@{pls}-expand-col) {
42
42
  &::before {
43
43
  position: absolute;
44
44
  content: '';
@@ -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';
@@ -149,15 +149,6 @@
149
149
  line-height: var(--yee-tag-large-height);
150
150
  }
151
151
 
152
- &-close {
153
- display: inline-flex;
154
- padding: 0;
155
- width: 16px;
156
- height: 16px;
157
- margin-left: var(--yee-tag-close-margin-left);
158
- cursor: pointer;
159
- }
160
-
161
152
  &-checkable {
162
153
  margin: var(--yee-tag-checkable-margin);
163
154
  color: var(--yee-tag-item-not-check-color);
@@ -177,4 +168,13 @@
177
168
  background-color: var(--yee-tag-item-check-active-bg-color);
178
169
  border-color: var(--yee-tag-item-check-active-border-color);
179
170
  }
171
+
172
+ & &-close {
173
+ display: inline-flex;
174
+ padding: 0;
175
+ width: 16px;
176
+ height: 16px;
177
+ margin-left: var(--yee-tag-close-margin-left);
178
+ cursor: pointer;
179
+ }
180
180
  }
@@ -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-14T03:59:52.475Z
4
+ * Generated on 2026-07-20T03:12:00.311Z
5
5
  */
6
6
 
7
7
  /* ========== color.blue.css ========== */
@@ -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-14T03:59:52.475Z
4
+ * Generated on 2026-07-20T03:12:00.311Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -1 +1 @@
1
- export default function isEqual(a: unknown, b: unknown): boolean;
1
+ export default function isEqual(a: unknown, b: unknown, seen?: Map<object, Set<object>>): boolean;
@@ -1,5 +1,5 @@
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
- export default function isEqual(a, b) {
2
+ export default function isEqual(a, b, seen) {
3
3
  // Compare reference types
4
4
  if (a === b) return true;
5
5
 
@@ -19,32 +19,50 @@ export default function isEqual(a, b) {
19
19
  return a.source === b.source && a.flags === b.flags;
20
20
  }
21
21
 
22
- // Compare arrays
23
- if (Array.isArray(a) && Array.isArray(b)) {
24
- if (a.length !== b.length) return false;
25
- for (var i = 0; i < a.length; i++) {
26
- if (!isEqual(a[i], b[i])) return false;
27
- }
28
- return true;
22
+ // Compare functions
23
+ if (typeof a === 'function' && typeof b === 'function') {
24
+ return a.toString() === b.toString();
29
25
  }
30
26
 
31
- // Compare objects
27
+ // For objects and arrays, detect circular references
32
28
  if (_typeof(a) === 'object' && _typeof(b) === 'object') {
29
+ if (!seen) {
30
+ seen = new Map();
31
+ }
32
+
33
+ // If we've already started comparing this pair, assume equal to break the cycle
34
+ var seenForA = seen.get(a);
35
+ if (seenForA && seenForA.has(b)) {
36
+ return true;
37
+ }
38
+
39
+ // Mark this pair as being compared
40
+ if (!seenForA) {
41
+ seen.set(a, new Set([b]));
42
+ } else {
43
+ seenForA.add(b);
44
+ }
45
+
46
+ // Compare arrays
47
+ if (Array.isArray(a) && Array.isArray(b)) {
48
+ if (a.length !== b.length) return false;
49
+ for (var i = 0; i < a.length; i++) {
50
+ if (!isEqual(a[i], b[i], seen)) return false;
51
+ }
52
+ return true;
53
+ }
54
+
55
+ // Compare objects
33
56
  var keysA = Object.keys(a);
34
57
  var keysB = Object.keys(b);
35
58
  if (keysA.length !== keysB.length) return false;
36
59
  for (var _i = 0, _keysA = keysA; _i < _keysA.length; _i++) {
37
60
  var key = _keysA[_i];
38
- if (!keysB.includes(key) || !isEqual(a[key], b[key])) return false;
61
+ if (!keysB.includes(key) || !isEqual(a[key], b[key], seen)) return false;
39
62
  }
40
63
  return true;
41
64
  }
42
65
 
43
- // Compare functions
44
- if (typeof a === 'function' && typeof b === 'function') {
45
- return a.toString() === b.toString();
46
- }
47
-
48
66
  // Other cases
49
67
  return false;
50
68
  }
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.6.2";
6
+ export declare const version = "0.6.4";
@@ -1,4 +1,4 @@
1
- export var version = "0.6.2";
1
+ export var version = "0.6.4";
2
2
  if (typeof window !== 'undefined') {
3
3
  window.__yee_c_version__ = version;
4
4
  }