shineout 3.7.2-beta.6 → 3.7.3-beta.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.2-beta.6'
525
+ version: '3.7.3-beta.1'
526
526
  };
package/dist/shineout.js CHANGED
@@ -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.2-beta.6');
12237
+ /* harmony default export */ var version = ('3.7.3-beta.1');
12238
12238
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12239
12239
 
12240
12240
 
@@ -33234,6 +33234,103 @@ function toNum(v) {
33234
33234
  }
33235
33235
  return 0;
33236
33236
  }
33237
+
33238
+ /**
33239
+ * 在字符串层面实现四舍五入
33240
+ * @param {string} numStr 数字字符串
33241
+ * @param {number} precision 精度
33242
+ * @returns {string} 四舍五入后的字符串
33243
+ */
33244
+ function roundString(numStr, precision) {
33245
+ if (precision < 0) return numStr;
33246
+ var parts = numStr.split('.');
33247
+ var intPart = parts[0];
33248
+ var decimalPart = parts[1] || '';
33249
+ if (decimalPart.length <= precision) {
33250
+ return intPart + (decimalPart ? ".".concat(decimalPart.padEnd(precision, '0')) : '');
33251
+ }
33252
+
33253
+ // 需要进行四舍五入
33254
+ var roundPos = precision;
33255
+ var carry = 0;
33256
+
33257
+ // 确定是否需要进位
33258
+ if (parseInt(decimalPart[roundPos], 10) >= 5) carry = 1;
33259
+
33260
+ // 如果不需要进位,直接截断
33261
+ if (carry === 0) {
33262
+ return intPart + (precision > 0 ? ".".concat(decimalPart.slice(0, precision)) : '');
33263
+ }
33264
+
33265
+ // 处理进位
33266
+ var digits = (intPart + (decimalPart ? ".".concat(decimalPart) : '')).replace('.', '').split('');
33267
+ var dotPos = intPart.length;
33268
+
33269
+ // 从小数位开始向前进位
33270
+ var i = dotPos + precision - 1;
33271
+ while (carry > 0 && i >= 0) {
33272
+ // 跳过小数点
33273
+ if (i === dotPos - 1) {
33274
+ i -= 1;
33275
+ continue;
33276
+ }
33277
+ var d = parseInt(digits[i], 10) + carry;
33278
+ digits[i] = (d % 10).toString();
33279
+ carry = Math.floor(d / 10);
33280
+ i -= 1;
33281
+ }
33282
+
33283
+ // 处理最高位进位
33284
+ var result = '';
33285
+ if (carry > 0) result = '1';
33286
+
33287
+ // 重建数字字符串
33288
+ for (var j = 0; j < digits.length; j++) {
33289
+ // 插入小数点
33290
+ if (j === dotPos && precision > 0) result += '.';
33291
+ // 只添加到所需精度
33292
+ if (j < dotPos || j < dotPos + precision) {
33293
+ result += digits[j];
33294
+ }
33295
+ }
33296
+ return result;
33297
+ }
33298
+
33299
+ /**
33300
+ * 格式化数字字符串到指定小数位
33301
+ * @param {string} value 数字字符串
33302
+ * @param {number} precision 小数位数
33303
+ * @returns {string} 格式化后的字符串
33304
+ * @example
33305
+ * console.log(preciseString('111111111111111.888', 2)) // "111111111111111.89"
33306
+ * console.log(preciseString('9.999', 2)) // "10.00"
33307
+ */
33308
+ var preciseString = function preciseString(value) {
33309
+ var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
33310
+ // 如果不是数字字符串,则返回原值
33311
+ if (!/^-?\d+(\.\d+)?$/.test(value)) {
33312
+ return value;
33313
+ }
33314
+
33315
+ // 如果不需要格式化精度,直接返回
33316
+ if (precision < 0) return value;
33317
+
33318
+ // 分离整数和小数部分
33319
+ var parts = value.split('.');
33320
+ var intPart = parts[0];
33321
+ var decimalPart = parts[1] || '';
33322
+
33323
+ // 截断或补零
33324
+ if (decimalPart.length > precision) {
33325
+ // 需要四舍五入
33326
+ if (precision < decimalPart.length && parseInt(decimalPart[precision], 10) >= 5) {
33327
+ // 手动实现字符串层面的四舍五入
33328
+ return roundString("".concat(intPart, ".").concat(decimalPart), precision);
33329
+ }
33330
+ return intPart + (precision > 0 ? ".".concat(decimalPart.slice(0, precision)) : '');
33331
+ }
33332
+ return intPart + (precision > 0 ? ".".concat(decimalPart.padEnd(precision, '0')) : '');
33333
+ };
33237
33334
  ;// CONCATENATED MODULE: ../base/src/spin/base.tsx
33238
33335
 
33239
33336
 
@@ -35776,6 +35873,7 @@ Input.displayName = 'SimpleInput';
35776
35873
 
35777
35874
 
35778
35875
 
35876
+
35779
35877
  function regLength(size) {
35780
35878
  return /\d+/.test(String(size)) && size > 0 ? "{0,".concat(size, "}") : '*';
35781
35879
  }
@@ -35859,7 +35957,7 @@ var useInputFormat = function useInputFormat(props) {
35859
35957
  if (numType === 'positive' && Number(value) <= 0) value = '';
35860
35958
  if (digits !== undefined && autoFix) {
35861
35959
  if (digits > 0) {
35862
- value = parseFloat(value).toFixed(digits);
35960
+ value = preciseString(value, digits);
35863
35961
  } else if (digits === 0) {
35864
35962
  value = parseInt(value, 10).toString();
35865
35963
  }
@@ -39918,9 +40016,7 @@ var CascaderNode = function CascaderNode(props) {
39918
40016
  shouldFinal = props.shouldFinal,
39919
40017
  onChange = props.onChange,
39920
40018
  onPathChange = props.onPathChange,
39921
- mode = props.mode,
39922
- activeLeaf = props.activeLeaf,
39923
- setActiveLeaf = props.setActiveLeaf;
40019
+ mode = props.mode;
39924
40020
  var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
39925
40021
  _useState2 = slicedToArray_default()(_useState, 2),
39926
40022
  loading = _useState2[0],
@@ -39933,7 +40029,7 @@ var CascaderNode = function CascaderNode(props) {
39933
40029
  var uncertainChildren = loader && !loading && children === undefined;
39934
40030
  var styles = jssStyle === null || jssStyle === void 0 || (_jssStyle$cascader = jssStyle.cascader) === null || _jssStyle$cascader === void 0 ? void 0 : _jssStyle$cascader.call(jssStyle);
39935
40031
  var commonStyles = jssStyle === null || jssStyle === void 0 || (_jssStyle$common = jssStyle.common) === null || _jssStyle$common === void 0 ? void 0 : _jssStyle$common.call(jssStyle);
39936
- var rootClass = classnames_default()(styles.option, (active || activeLeaf === id) && styles.activeOption, isDisabled && mode !== 4 && styles.optionDisabled);
40032
+ var rootClass = classnames_default()(styles.option, active && styles.activeOption, isDisabled && mode !== 4 && styles.optionDisabled);
39937
40033
  var handlePathChange = function handlePathChange() {
39938
40034
  onPathChange === null || onPathChange === void 0 || onPathChange(id, data, path);
39939
40035
  };
@@ -39957,9 +40053,6 @@ var CascaderNode = function CascaderNode(props) {
39957
40053
  if (getParent(e.target, checkboxRef.current)) return;
39958
40054
  var checked = datum.getChecked(id);
39959
40055
  handleChange(null, !checked);
39960
- if (setActiveLeaf) {
39961
- setActiveLeaf(id);
39962
- }
39963
40056
  };
39964
40057
  var isHoverAble = expandTrigger === 'hover' || expandTrigger === 'hover-only';
39965
40058
  var isRealLeafNode = !hasChildren && !uncertainChildren;
@@ -39973,7 +40066,10 @@ var CascaderNode = function CascaderNode(props) {
39973
40066
  if (multiple) events.onClick = handleSelect;
39974
40067
  } else if (isRealLeafNode && multiple) {
39975
40068
  // 非hover模式下: 末级节点支持整个节点区域点击选中checkbox
39976
- events.onClick = handleSelect;
40069
+ events.onClick = function (e) {
40070
+ handleClick(e);
40071
+ handleSelect(e);
40072
+ };
39977
40073
  }
39978
40074
  return events;
39979
40075
  };
@@ -40042,7 +40138,6 @@ var CascaderNode = function CascaderNode(props) {
40042
40138
 
40043
40139
 
40044
40140
 
40045
-
40046
40141
  var list_devUseWarning = devUseWarning;
40047
40142
  var CascaderList = function CascaderList(props) {
40048
40143
  var _jssStyle$cascader;
@@ -40099,18 +40194,11 @@ var CascaderList = function CascaderList(props) {
40099
40194
  children: "noData"
40100
40195
  });
40101
40196
  };
40102
- var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),
40103
- _useState2 = slicedToArray_default()(_useState, 2),
40104
- activeLeaf = _useState2[0],
40105
- setActiveLeaf = _useState2[1];
40106
- var needSetActiveLeaf = (multiple || mode !== undefined) && props.id === undefined;
40107
40197
  var renderItem = function renderItem(item, index) {
40108
40198
  var id = getKey(item, index);
40109
40199
  return /*#__PURE__*/(0,jsx_runtime.jsx)(node, {
40110
40200
  jssStyle: jssStyle,
40111
40201
  active: props.id === id,
40112
- activeLeaf: activeLeaf,
40113
- setActiveLeaf: needSetActiveLeaf ? setActiveLeaf : undefined,
40114
40202
  id: id,
40115
40203
  data: item,
40116
40204
  datum: datum,
@@ -55228,6 +55316,11 @@ var SIZE_MAP = {
55228
55316
  'default': 36,
55229
55317
  'large': 42
55230
55318
  };
55319
+ var PADDING_Y_MAP = {
55320
+ 'small': 3,
55321
+ 'default': 0,
55322
+ 'large': 0
55323
+ };
55231
55324
  var TreeVirtual = function TreeVirtual(props) {
55232
55325
  var jssStyle = props.jssStyle,
55233
55326
  height = props.height,
@@ -55306,7 +55399,8 @@ var TreeVirtual = function TreeVirtual(props) {
55306
55399
  keepScrollHeight: true,
55307
55400
  dynamicVirtual: true,
55308
55401
  lineHeight: lineHeight,
55309
- renderItem: renderItem
55402
+ renderItem: renderItem,
55403
+ paddingY: PADDING_Y_MAP[datum.size || 'default']
55310
55404
  });
55311
55405
  };
55312
55406
  /* harmony default export */ var tree_virtual = (TreeVirtual);
@@ -67629,13 +67723,25 @@ var TreeSelect = function TreeSelect(props0) {
67629
67723
  var style = {
67630
67724
  maxHeight: height
67631
67725
  };
67726
+ var rootStyle = {
67727
+ padding: '0 4px'
67728
+ };
67729
+ if (!virtual) {
67730
+ if (size === 'small') {
67731
+ rootStyle = {
67732
+ padding: '3px 4px'
67733
+ };
67734
+ } else if (size === 'large') {
67735
+ rootStyle = {
67736
+ padding: '0 5px'
67737
+ };
67738
+ }
67739
+ }
67632
67740
  return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
67633
67741
  className: classnames_default()(styles.tree, styles.treeWrapper),
67634
67742
  style: style,
67635
67743
  children: /*#__PURE__*/(0,jsx_runtime.jsx)(src_tree_tree, objectSpread2_default()(objectSpread2_default()({
67636
- rootStyle: {
67637
- padding: '0 4px'
67638
- },
67744
+ rootStyle: rootStyle,
67639
67745
  jssStyle: jssStyle,
67640
67746
  renderItem: renderItem
67641
67747
  }, treeProps), {}, {
@@ -71439,7 +71545,7 @@ var upload_interface = __webpack_require__(8821);
71439
71545
 
71440
71546
 
71441
71547
  /* harmony default export */ var src_0 = ({
71442
- version: '3.7.2-beta.6'
71548
+ version: '3.7.3-beta.1'
71443
71549
  });
71444
71550
  }();
71445
71551
  /******/ return __webpack_exports__;