shineout 3.7.5-beta.8 → 3.7.5-fix.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/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-fix.1'
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-fix.1');
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: {
@@ -35538,19 +35547,18 @@ function useInputAble(props) {
35538
35547
  var render = useRender(syncValue);
35539
35548
  var shouldUseState = delay || !control;
35540
35549
  var value = shouldUseState ? stateValue : valuePo;
35541
- (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
35542
- if (context.timer) {
35543
- clearTimeout(context.timer);
35544
- context.timer = null;
35545
- }
35550
+ (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useLayoutEffect)(function () {
35546
35551
  if (delay && control && props.value !== stateValue) {
35547
35552
  changeStateValue(props.value);
35553
+ } else if (context.timer) {
35554
+ clearTimeout(context.timer);
35555
+ context.timer = null;
35548
35556
  }
35549
35557
  }, [props.value, delay, control]);
35550
35558
  var forceDelayChange = use_persist_fn(function () {
35551
- if (context.timer && context.delayChange) {
35559
+ if (context.delayChange) context.delayChange();
35560
+ if (context.timer) {
35552
35561
  clearTimeout(context.timer);
35553
- context.delayChange();
35554
35562
  context.timer = null;
35555
35563
  context.delayChange = null;
35556
35564
  }
@@ -40070,8 +40078,8 @@ var CascaderNode = function CascaderNode(props) {
40070
40078
  _useState2 = slicedToArray_default()(_useState, 2),
40071
40079
  loading = _useState2[0],
40072
40080
  setLoading = _useState2[1];
40073
- // const [activeState, setActiveState] = useState(false);
40074
40081
  var checkboxRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)();
40082
+ var hasHandleSelectRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
40075
40083
  var isDisabled = datum.isDisabled(id);
40076
40084
  var children = data[childrenKey];
40077
40085
  var hasChildren = children && children.length > 0;
@@ -40112,13 +40120,17 @@ var CascaderNode = function CascaderNode(props) {
40112
40120
  }
40113
40121
  if (isHoverAble) {
40114
40122
  events.onMouseEnter = handlePathChange;
40115
- if (multiple) events.onClick = handleSelect;
40123
+ if (multiple) {
40124
+ events.onClick = handleSelect;
40125
+ hasHandleSelectRef.current = true;
40126
+ }
40116
40127
  } else if (isRealLeafNode && multiple) {
40117
40128
  // 非hover模式下: 末级节点支持整个节点区域点击选中checkbox
40118
40129
  events.onClick = function (e) {
40119
40130
  handleClick(e);
40120
40131
  handleSelect(e);
40121
40132
  };
40133
+ hasHandleSelectRef.current = true;
40122
40134
  }
40123
40135
  return events;
40124
40136
  };
@@ -40174,7 +40186,7 @@ var CascaderNode = function CascaderNode(props) {
40174
40186
  className: styles.optionCheckbox,
40175
40187
  checked: datum.getChecked(id),
40176
40188
  disabled: isDisabled,
40177
- onChange: isRealLeafNode && multiple ? undefined : handleChange
40189
+ onChange: hasHandleSelectRef.current ? undefined : handleChange
40178
40190
  }), renderContent(), renderIcon()]
40179
40191
  })
40180
40192
  }));
@@ -41097,44 +41109,25 @@ function getResetMore(onFilter, container, doms) {
41097
41109
  var hideMargin = parsePxToNumber(hideElStyle.marginLeft) + parsePxToNumber(hideElStyle.marginRight);
41098
41110
  var num = 0;
41099
41111
  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
- }
41112
+ for (var i = 0; i < doms.length; i++) {
41113
+ var _item2 = doms[i];
41114
+ var itemStyle = getComputedStyle(_item2);
41115
+ var itemWidth = _item2.offsetWidth + parsePxToNumber(itemStyle.marginLeft) + parsePxToNumber(itemStyle.marginRight);
41116
+ sumWidth += itemWidth;
41117
+ var moreWidth = 0;
41118
+ var resetNum = items.length - 1 - i;
41119
+ if (resetNum > 0) {
41120
+ var reset = "+".concat(resetNum);
41121
+ hideEl.childNodes[0].innerText = reset;
41122
+ moreWidth = hideEl.offsetWidth + hideMargin;
41123
+ }
41124
+ if (sumWidth > contentWidth - moreWidth) {
41125
+ num = i;
41126
+ break;
41132
41127
  }
41128
+ num = -1;
41133
41129
  }
41134
- // at least show one
41135
- if (num === 0 && itemWidthArr[0]) {
41136
- num = 1;
41137
- }
41130
+ ;
41138
41131
  return num;
41139
41132
  }
41140
41133
  var More = function More(props) {
@@ -41156,16 +41149,7 @@ var More = function More(props) {
41156
41149
  var shouldShowMore = showNum < 0 || showNum >= data.length;
41157
41150
  var before = [];
41158
41151
  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
- } : {};
41152
+ var afterLength = 0;
41169
41153
  if (!shouldShowMore) {
41170
41154
  before = new Array(showNum).fill(undefined).map(function (_item, index) {
41171
41155
  return data[index];
@@ -41173,9 +41157,9 @@ var More = function More(props) {
41173
41157
  after = new Array(data.length - showNum).fill(undefined).map(function (_item, index) {
41174
41158
  return data[showNum + index];
41175
41159
  });
41176
- itemsLength = after.length;
41160
+ afterLength = after.length;
41177
41161
  }
41178
- if (showNum < 0 || showNum >= data.length) {
41162
+ if (shouldShowMore) {
41179
41163
  return /*#__PURE__*/(0,jsx_runtime.jsxs)((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, {
41180
41164
  children: [data, /*#__PURE__*/(0,jsx_runtime.jsx)(src_tag_tag, {
41181
41165
  className: styles.tag,
@@ -41202,10 +41186,9 @@ var More = function More(props) {
41202
41186
  className: styles.tag,
41203
41187
  jssStyle: jssStyle,
41204
41188
  size: size,
41205
- style: tagStyle,
41206
41189
  mode: visible ? 'fill' : 'bright',
41207
41190
  color: visible ? 'info' : 'default',
41208
- children: shouldShowMore ? '+' : "+".concat(itemsLength)
41191
+ children: shouldShowMore ? '+' : "+".concat(afterLength)
41209
41192
  }, 'more'), compressed !== 'hide-popover' && /*#__PURE__*/(0,jsx_runtime.jsx)(src_popover_popover, {
41210
41193
  jssStyle: jssStyle,
41211
41194
  className: compressedClassName,
@@ -41303,12 +41286,16 @@ var result_Result = function Result(props) {
41303
41286
  setShouldResetMore = _useState4[1];
41304
41287
  var render = useRender();
41305
41288
  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);
41289
+ var _useRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)({
41290
+ prevMore: more,
41291
+ maxMore: 0
41292
+ }),
41293
+ context = _useRef.current;
41307
41294
  var removeLock = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
41308
41295
  var showInput = allowOnFilter;
41309
41296
  var mounted = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
41310
41297
  var styles = props.classes;
41311
- var rootClass = classnames_default()(styles.resultTextWrapper, compressed && styles.compressedWrapper, multiple && styles.multipleResultWrapper, multiple && compressed && styles.multipleCompressedWrapper);
41298
+ var rootClass = classnames_default()(styles.resultTextWrapper, compressed && styles.compressedWrapper, compressedBound && compressedBound > 0 && styles.compressedBoundWrapper, multiple && styles.multipleResultWrapper, multiple && compressed && styles.multipleCompressedWrapper);
41312
41299
  var renderResultContent = function renderResultContent(data, index, nodes) {
41313
41300
  if (checkUnMatched(data)) {
41314
41301
  var _data = data;
@@ -41506,7 +41493,6 @@ var result_Result = function Result(props) {
41506
41493
  data: result,
41507
41494
  datas: renderMultipleResult.datas,
41508
41495
  size: size,
41509
- more: moreNumber,
41510
41496
  compressed: compressed,
41511
41497
  renderCompressed: renderCompressed,
41512
41498
  compressedClassName: compressedClassName,
@@ -41536,15 +41522,27 @@ var result_Result = function Result(props) {
41536
41522
  }
41537
41523
  return result;
41538
41524
  };
41539
- var handleResetMore = function handleResetMore() {
41525
+ var handleResetMore = function handleResetMore(valueLength) {
41540
41526
  if (!compressed) return;
41541
41527
  if (isCompressedBound()) return;
41542
41528
  if (removeLock.current) {
41543
41529
  removeLock.current = false;
41544
41530
  return;
41545
41531
  }
41546
- setMore(-1);
41547
- setShouldResetMore(true);
41532
+
41533
+ // why requestIdleCallback: 当选项数量远超容器承载能力时,延迟昂贵的DOM计算,在1000+选项时,同步的重新计算会导致INP超过1000ms
41534
+ var hasExistingCompression = context.prevMore > 0;
41535
+ var hasValidEstimate = context.maxMore > 0;
41536
+ var exceedsCapacity = valueLength && valueLength > context.maxMore;
41537
+ if (hasExistingCompression && hasValidEstimate && exceedsCapacity && typeof requestIdleCallback !== 'undefined') {
41538
+ requestIdleCallback(function () {
41539
+ setMore(-1);
41540
+ setShouldResetMore(true);
41541
+ });
41542
+ } else {
41543
+ setMore(-1);
41544
+ setShouldResetMore(true);
41545
+ }
41548
41546
  };
41549
41547
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
41550
41548
  if (!focus && mounted.current) {
@@ -41599,7 +41597,7 @@ var result_Result = function Result(props) {
41599
41597
  }
41600
41598
  }, [focus, multiple]);
41601
41599
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useLayoutEffect)(function () {
41602
- handleResetMore();
41600
+ handleResetMore((valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) || 0);
41603
41601
  }, [valueProp, data]);
41604
41602
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
41605
41603
  // datum.getDataByValues(value); 需要等待 useTree useEffect 执行完毕 才能获取到
@@ -41610,7 +41608,7 @@ var result_Result = function Result(props) {
41610
41608
  var tagClassName = ".".concat(styles.tag.split(' ')[0]);
41611
41609
  if (shouldResetMore && result_isArray(value) && (value || []).length) {
41612
41610
  var newMore = getResetMore(showInput, resultRef.current, resultRef.current.querySelectorAll(tagClassName));
41613
- prevMore.current = newMore;
41611
+ context.prevMore = newMore;
41614
41612
  setMore(newMore);
41615
41613
  setShouldResetMore(false);
41616
41614
  } else {
@@ -41624,6 +41622,7 @@ var result_Result = function Result(props) {
41624
41622
  if (!resultRef.current) return;
41625
41623
  if (!compressed) return;
41626
41624
  if (isCompressedBound()) return;
41625
+ context.maxMore = Math.floor(resultRef.current.clientWidth / 20);
41627
41626
  var cancelObserver = addResizeObserver(resultRef.current, handleResetMore, {
41628
41627
  direction: 'x'
41629
41628
  });
@@ -71659,7 +71658,7 @@ var upload_interface = __webpack_require__(8821);
71659
71658
 
71660
71659
 
71661
71660
  /* harmony default export */ var src_0 = ({
71662
- version: '3.7.5-beta.8'
71661
+ version: '3.7.5-fix.1'
71663
71662
  });
71664
71663
  }();
71665
71664
  /******/ return __webpack_exports__;