shineout 3.7.5-beta.8 → 3.7.5

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/cjs/index.js CHANGED
@@ -522,5 +522,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
522
522
  // 此文件由脚本自动生成,请勿直接修改。
523
523
  // This file was generated automatically by a script. Please do not modify it directly.
524
524
  var _default = exports.default = {
525
- version: '3.7.5-beta.8'
525
+ version: '3.7.5'
526
526
  };
package/dist/shineout.js CHANGED
@@ -7389,7 +7389,7 @@ var Alert = function Alert(props) {
7389
7389
  if (dismiss === HIDE) {
7390
7390
  return null;
7391
7391
  }
7392
- if ('title' in props && title !== undefined) {
7392
+ if (title) {
7393
7393
  return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", objectSpread2_default()(objectSpread2_default()({
7394
7394
  className: rootClass
7395
7395
  }, getRootProps()), {}, {
@@ -12234,7 +12234,7 @@ var handleStyle = function handleStyle(style) {
12234
12234
  };
12235
12235
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12236
12236
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12237
- /* harmony default export */ var version = ('3.7.5-beta.8');
12237
+ /* harmony default export */ var version = ('3.7.5');
12238
12238
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12239
12239
 
12240
12240
 
@@ -17545,6 +17545,9 @@ var cascaderStyle = objectSpread2_default()(objectSpread2_default()({
17545
17545
  },
17546
17546
  compressedWrapper: {
17547
17547
  width: 0,
17548
+ overflow: 'hidden'
17549
+ },
17550
+ compressedBoundWrapper: {
17548
17551
  overflow: 'auto'
17549
17552
  },
17550
17553
  controlMouse: {
@@ -23389,6 +23392,9 @@ var selectStyle = objectSpread2_default()(objectSpread2_default()({
23389
23392
  },
23390
23393
  compressedWrapper: {
23391
23394
  width: 0,
23395
+ overflow: 'hidden'
23396
+ },
23397
+ compressedBoundWrapper: {
23392
23398
  overflow: 'auto'
23393
23399
  },
23394
23400
  controlMouse: {
@@ -28923,6 +28929,9 @@ var treeSelectStyle = objectSpread2_default()(objectSpread2_default()({
28923
28929
  },
28924
28930
  compressedWrapper: {
28925
28931
  width: 0,
28932
+ overflow: 'hidden'
28933
+ },
28934
+ compressedBoundWrapper: {
28926
28935
  overflow: 'auto'
28927
28936
  },
28928
28937
  controlMouse: {
@@ -40070,8 +40079,8 @@ var CascaderNode = function CascaderNode(props) {
40070
40079
  _useState2 = slicedToArray_default()(_useState, 2),
40071
40080
  loading = _useState2[0],
40072
40081
  setLoading = _useState2[1];
40073
- // const [activeState, setActiveState] = useState(false);
40074
40082
  var checkboxRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)();
40083
+ var hasHandleSelectRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
40075
40084
  var isDisabled = datum.isDisabled(id);
40076
40085
  var children = data[childrenKey];
40077
40086
  var hasChildren = children && children.length > 0;
@@ -40112,13 +40121,17 @@ var CascaderNode = function CascaderNode(props) {
40112
40121
  }
40113
40122
  if (isHoverAble) {
40114
40123
  events.onMouseEnter = handlePathChange;
40115
- if (multiple) events.onClick = handleSelect;
40124
+ if (multiple) {
40125
+ events.onClick = handleSelect;
40126
+ hasHandleSelectRef.current = true;
40127
+ }
40116
40128
  } else if (isRealLeafNode && multiple) {
40117
40129
  // 非hover模式下: 末级节点支持整个节点区域点击选中checkbox
40118
40130
  events.onClick = function (e) {
40119
40131
  handleClick(e);
40120
40132
  handleSelect(e);
40121
40133
  };
40134
+ hasHandleSelectRef.current = true;
40122
40135
  }
40123
40136
  return events;
40124
40137
  };
@@ -40174,7 +40187,7 @@ var CascaderNode = function CascaderNode(props) {
40174
40187
  className: styles.optionCheckbox,
40175
40188
  checked: datum.getChecked(id),
40176
40189
  disabled: isDisabled,
40177
- onChange: isRealLeafNode && multiple ? undefined : handleChange
40190
+ onChange: hasHandleSelectRef.current ? undefined : handleChange
40178
40191
  }), renderContent(), renderIcon()]
40179
40192
  })
40180
40193
  }));
@@ -41097,44 +41110,25 @@ function getResetMore(onFilter, container, doms) {
41097
41110
  var hideMargin = parsePxToNumber(hideElStyle.marginLeft) + parsePxToNumber(hideElStyle.marginRight);
41098
41111
  var num = 0;
41099
41112
  var sumWidth = 0;
41100
- var itemWidthArr = items.map(function (item) {
41101
- var itemStyle = getComputedStyle(item);
41102
- var itemLen = item.offsetWidth + parsePxToNumber(itemStyle.marginLeft) + parsePxToNumber(itemStyle.marginRight);
41103
- sumWidth += itemLen;
41104
- return itemLen;
41105
- });
41106
- if (sumWidth <= contentWidth) {
41107
- num = -1;
41108
- } else {
41109
- var len = 0;
41110
- for (var i = 0; i < itemWidthArr.length; i++) {
41111
- var itemLen = itemWidthArr[i];
41112
- // number length
41113
- var resetNum = items.length - 1 - i;
41114
- var moreWidth = void 0;
41115
- if (resetNum <= 0) {
41116
- moreWidth = 0;
41117
- } else {
41118
- var reset = "+".concat(resetNum);
41119
- hideEl.childNodes[0].innerText = reset;
41120
- // (+num) width
41121
- moreWidth = hideEl.offsetWidth + hideMargin;
41122
- }
41123
- len += itemLen;
41124
- if (len > contentWidth - moreWidth) {
41125
- break;
41126
- }
41127
- num += 1;
41128
- if (i === items.length - 1) {
41129
- // not show more
41130
- num = -1;
41131
- }
41113
+ for (var i = 0; i < doms.length; i++) {
41114
+ var _item2 = doms[i];
41115
+ var itemStyle = getComputedStyle(_item2);
41116
+ var itemWidth = _item2.offsetWidth + parsePxToNumber(itemStyle.marginLeft) + parsePxToNumber(itemStyle.marginRight);
41117
+ sumWidth += itemWidth;
41118
+ var moreWidth = 0;
41119
+ var resetNum = items.length - 1 - i;
41120
+ if (resetNum > 0) {
41121
+ var reset = "+".concat(resetNum);
41122
+ hideEl.childNodes[0].innerText = reset;
41123
+ moreWidth = hideEl.offsetWidth + hideMargin;
41124
+ }
41125
+ if (sumWidth > contentWidth - moreWidth) {
41126
+ num = i;
41127
+ break;
41132
41128
  }
41129
+ num = -1;
41133
41130
  }
41134
- // at least show one
41135
- if (num === 0 && itemWidthArr[0]) {
41136
- num = 1;
41137
- }
41131
+ ;
41138
41132
  return num;
41139
41133
  }
41140
41134
  var More = function More(props) {
@@ -41156,16 +41150,7 @@ var More = function More(props) {
41156
41150
  var shouldShowMore = showNum < 0 || showNum >= data.length;
41157
41151
  var before = [];
41158
41152
  var after = [];
41159
- var itemsLength = 0;
41160
- var tagStyle = shouldShowMore ? {
41161
- position: 'absolute',
41162
- zIndex: -100,
41163
- userSelect: 'none',
41164
- msUserSelect: 'none',
41165
- contain: 'layout',
41166
- opacity: 0,
41167
- pointerEvents: 'none'
41168
- } : {};
41153
+ var afterLength = 0;
41169
41154
  if (!shouldShowMore) {
41170
41155
  before = new Array(showNum).fill(undefined).map(function (_item, index) {
41171
41156
  return data[index];
@@ -41173,9 +41158,9 @@ var More = function More(props) {
41173
41158
  after = new Array(data.length - showNum).fill(undefined).map(function (_item, index) {
41174
41159
  return data[showNum + index];
41175
41160
  });
41176
- itemsLength = after.length;
41161
+ afterLength = after.length;
41177
41162
  }
41178
- if (showNum < 0 || showNum >= data.length) {
41163
+ if (shouldShowMore) {
41179
41164
  return /*#__PURE__*/(0,jsx_runtime.jsxs)((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, {
41180
41165
  children: [data, /*#__PURE__*/(0,jsx_runtime.jsx)(src_tag_tag, {
41181
41166
  className: styles.tag,
@@ -41202,10 +41187,9 @@ var More = function More(props) {
41202
41187
  className: styles.tag,
41203
41188
  jssStyle: jssStyle,
41204
41189
  size: size,
41205
- style: tagStyle,
41206
41190
  mode: visible ? 'fill' : 'bright',
41207
41191
  color: visible ? 'info' : 'default',
41208
- children: shouldShowMore ? '+' : "+".concat(itemsLength)
41192
+ children: shouldShowMore ? '+' : "+".concat(afterLength)
41209
41193
  }, 'more'), compressed !== 'hide-popover' && /*#__PURE__*/(0,jsx_runtime.jsx)(src_popover_popover, {
41210
41194
  jssStyle: jssStyle,
41211
41195
  className: compressedClassName,
@@ -41303,12 +41287,16 @@ var result_Result = function Result(props) {
41303
41287
  setShouldResetMore = _useState4[1];
41304
41288
  var render = useRender();
41305
41289
  var resultRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
41306
- var prevMore = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(more);
41290
+ var _useRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)({
41291
+ prevMore: more,
41292
+ maxMore: 0
41293
+ }),
41294
+ context = _useRef.current;
41307
41295
  var removeLock = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
41308
41296
  var showInput = allowOnFilter;
41309
41297
  var mounted = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
41310
41298
  var styles = props.classes;
41311
- var rootClass = classnames_default()(styles.resultTextWrapper, compressed && styles.compressedWrapper, multiple && styles.multipleResultWrapper, multiple && compressed && styles.multipleCompressedWrapper);
41299
+ var rootClass = classnames_default()(styles.resultTextWrapper, compressed && styles.compressedWrapper, compressedBound && compressedBound > 0 && styles.compressedBoundWrapper, multiple && styles.multipleResultWrapper, multiple && compressed && styles.multipleCompressedWrapper);
41312
41300
  var renderResultContent = function renderResultContent(data, index, nodes) {
41313
41301
  if (checkUnMatched(data)) {
41314
41302
  var _data = data;
@@ -41506,7 +41494,6 @@ var result_Result = function Result(props) {
41506
41494
  data: result,
41507
41495
  datas: renderMultipleResult.datas,
41508
41496
  size: size,
41509
- more: moreNumber,
41510
41497
  compressed: compressed,
41511
41498
  renderCompressed: renderCompressed,
41512
41499
  compressedClassName: compressedClassName,
@@ -41536,15 +41523,27 @@ var result_Result = function Result(props) {
41536
41523
  }
41537
41524
  return result;
41538
41525
  };
41539
- var handleResetMore = function handleResetMore() {
41526
+ var handleResetMore = function handleResetMore(valueLength) {
41540
41527
  if (!compressed) return;
41541
41528
  if (isCompressedBound()) return;
41542
41529
  if (removeLock.current) {
41543
41530
  removeLock.current = false;
41544
41531
  return;
41545
41532
  }
41546
- setMore(-1);
41547
- setShouldResetMore(true);
41533
+
41534
+ // why requestIdleCallback: 当选项数量远超容器承载能力时,延迟昂贵的DOM计算,在1000+选项时,同步的重新计算会导致INP超过1000ms
41535
+ var hasExistingCompression = context.prevMore > 0;
41536
+ var hasValidEstimate = context.maxMore > 0;
41537
+ var exceedsCapacity = valueLength && valueLength > context.maxMore;
41538
+ if (hasExistingCompression && hasValidEstimate && exceedsCapacity && typeof requestIdleCallback !== 'undefined') {
41539
+ requestIdleCallback(function () {
41540
+ setMore(-1);
41541
+ setShouldResetMore(true);
41542
+ });
41543
+ } else {
41544
+ setMore(-1);
41545
+ setShouldResetMore(true);
41546
+ }
41548
41547
  };
41549
41548
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
41550
41549
  if (!focus && mounted.current) {
@@ -41599,7 +41598,7 @@ var result_Result = function Result(props) {
41599
41598
  }
41600
41599
  }, [focus, multiple]);
41601
41600
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useLayoutEffect)(function () {
41602
- handleResetMore();
41601
+ handleResetMore((valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) || 0);
41603
41602
  }, [valueProp, data]);
41604
41603
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
41605
41604
  // datum.getDataByValues(value); 需要等待 useTree useEffect 执行完毕 才能获取到
@@ -41610,7 +41609,7 @@ var result_Result = function Result(props) {
41610
41609
  var tagClassName = ".".concat(styles.tag.split(' ')[0]);
41611
41610
  if (shouldResetMore && result_isArray(value) && (value || []).length) {
41612
41611
  var newMore = getResetMore(showInput, resultRef.current, resultRef.current.querySelectorAll(tagClassName));
41613
- prevMore.current = newMore;
41612
+ context.prevMore = newMore;
41614
41613
  setMore(newMore);
41615
41614
  setShouldResetMore(false);
41616
41615
  } else {
@@ -41624,6 +41623,7 @@ var result_Result = function Result(props) {
41624
41623
  if (!resultRef.current) return;
41625
41624
  if (!compressed) return;
41626
41625
  if (isCompressedBound()) return;
41626
+ context.maxMore = Math.floor(resultRef.current.clientWidth / 20);
41627
41627
  var cancelObserver = addResizeObserver(resultRef.current, handleResetMore, {
41628
41628
  direction: 'x'
41629
41629
  });
@@ -71659,7 +71659,7 @@ var upload_interface = __webpack_require__(8821);
71659
71659
 
71660
71660
 
71661
71661
  /* harmony default export */ var src_0 = ({
71662
- version: '3.7.5-beta.8'
71662
+ version: '3.7.5'
71663
71663
  });
71664
71664
  }();
71665
71665
  /******/ return __webpack_exports__;