shineout 3.7.2 → 3.7.3-beta.2
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 +1 -1
- package/dist/shineout.js +148 -13
- package/dist/shineout.js.map +1 -1
- package/dist/shineout.min.js +1 -1
- package/dist/shineout.min.js.map +1 -1
- package/esm/index.js +1 -1
- package/package.json +5 -5
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'
|
|
525
|
+
version: '3.7.3-beta.2'
|
|
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');
|
|
12237
|
+
/* harmony default export */ var version = ('3.7.3-beta.2');
|
|
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 =
|
|
35960
|
+
value = preciseString(value, digits);
|
|
35863
35961
|
} else if (digits === 0) {
|
|
35864
35962
|
value = parseInt(value, 10).toString();
|
|
35865
35963
|
}
|
|
@@ -40511,7 +40609,7 @@ var Result = function Result(props) {
|
|
|
40511
40609
|
var _props$onBlur, _inputRef$current$upd, _inputRef$current;
|
|
40512
40610
|
e.stopPropagation();
|
|
40513
40611
|
if (e.relatedTarget === context.inputRefs[1 - info.index]) return;
|
|
40514
|
-
(_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, e);
|
|
40612
|
+
(_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, e, info.index);
|
|
40515
40613
|
if (inputRef.current) (_inputRef$current$upd = (_inputRef$current = inputRef.current).updateValue) === null || _inputRef$current$upd === void 0 || _inputRef$current$upd.call(_inputRef$current);
|
|
40516
40614
|
context.clickIndex = 0;
|
|
40517
40615
|
},
|
|
@@ -44644,8 +44742,18 @@ function isValid(date) {
|
|
|
44644
44742
|
if (!(date instanceof Date)) return false;
|
|
44645
44743
|
return dayjs_min_default()(date).isValid();
|
|
44646
44744
|
}
|
|
44647
|
-
|
|
44745
|
+
|
|
44746
|
+
/**
|
|
44747
|
+
* @param date 日期字符串
|
|
44748
|
+
* @param fmt 日期格式
|
|
44749
|
+
* @param isLoose 是否为宽松模式
|
|
44750
|
+
* @returns 是否为有效日期
|
|
44751
|
+
*/
|
|
44752
|
+
function isValidString(date, fmt, isLoose) {
|
|
44648
44753
|
if (!date) return false;
|
|
44754
|
+
if (isLoose) {
|
|
44755
|
+
return dayjs_min_default()(date).isValid();
|
|
44756
|
+
}
|
|
44649
44757
|
return dayjs_min_default()(date, fmt, true).isValid();
|
|
44650
44758
|
}
|
|
44651
44759
|
function util_parse(d, fmt, options) {
|
|
@@ -45207,9 +45315,9 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
|
45207
45315
|
}
|
|
45208
45316
|
(_props$onClear = props.onClear) === null || _props$onClear === void 0 || _props$onClear.call(props);
|
|
45209
45317
|
});
|
|
45210
|
-
var handleInputChange = usePersistFn(function (str, index) {
|
|
45318
|
+
var handleInputChange = usePersistFn(function (str, index, isFromBlur) {
|
|
45211
45319
|
// 比较 日期字符串是否符合format格式, 如果符合返回 true 否则返回 false
|
|
45212
|
-
var isValid = util.isValidString(str, format);
|
|
45320
|
+
var isValid = util.isValidString(str, format, isFromBlur);
|
|
45213
45321
|
if (!isValid) return;
|
|
45214
45322
|
var date = util.toDateWithFormat(str, format, undefined, options);
|
|
45215
45323
|
setInputArr(function (prev) {
|
|
@@ -45233,6 +45341,11 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
|
45233
45341
|
return arr;
|
|
45234
45342
|
});
|
|
45235
45343
|
});
|
|
45344
|
+
|
|
45345
|
+
// 失焦时,需要宽松模式校验,eg: 2025-06-16 18:00 和 2025-06-16 18 都可以校验通过
|
|
45346
|
+
var handleInputBlur = usePersistFn(function (str, index) {
|
|
45347
|
+
handleInputChange(str, index, true);
|
|
45348
|
+
});
|
|
45236
45349
|
var handleClearInputArr = usePersistFn(function (index) {
|
|
45237
45350
|
if (index !== undefined) {
|
|
45238
45351
|
setInputArr(function (prev) {
|
|
@@ -45276,6 +45389,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
|
45276
45389
|
handleClear: handleClear,
|
|
45277
45390
|
handleClearInputArr: handleClearInputArr,
|
|
45278
45391
|
handleInputChange: handleInputChange,
|
|
45392
|
+
handleInputBlur: handleInputBlur,
|
|
45279
45393
|
registerModeDisabled: registerModeDisabled,
|
|
45280
45394
|
setCurrentArrWithParams: setCurrentArrWithParams,
|
|
45281
45395
|
isDisabledDate: isDisabledDate
|
|
@@ -47530,11 +47644,14 @@ var DatePicker = function DatePicker(props0) {
|
|
|
47530
47644
|
setFocused(true);
|
|
47531
47645
|
(_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, e);
|
|
47532
47646
|
});
|
|
47533
|
-
var handleBlur = usePersistFn(function (e) {
|
|
47647
|
+
var handleBlur = usePersistFn(function (e, index) {
|
|
47534
47648
|
var _props$onBlur;
|
|
47535
47649
|
setFocused(false);
|
|
47536
|
-
(_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, e);
|
|
47650
|
+
(_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, e, index);
|
|
47537
47651
|
if (props.needConfirm) return;
|
|
47652
|
+
if (props.inputable && index !== undefined) {
|
|
47653
|
+
func.handleInputBlur(e.target.value, index);
|
|
47654
|
+
}
|
|
47538
47655
|
|
|
47539
47656
|
// 当输入框有值时,失焦时需要立即触发 onChange,否则触控板的轻触模拟出来的click事件就获取不到最新的值
|
|
47540
47657
|
if (inputArr.some(function (d) {
|
|
@@ -55218,6 +55335,11 @@ var SIZE_MAP = {
|
|
|
55218
55335
|
'default': 36,
|
|
55219
55336
|
'large': 42
|
|
55220
55337
|
};
|
|
55338
|
+
var PADDING_Y_MAP = {
|
|
55339
|
+
'small': 3,
|
|
55340
|
+
'default': 0,
|
|
55341
|
+
'large': 0
|
|
55342
|
+
};
|
|
55221
55343
|
var TreeVirtual = function TreeVirtual(props) {
|
|
55222
55344
|
var jssStyle = props.jssStyle,
|
|
55223
55345
|
height = props.height,
|
|
@@ -55296,7 +55418,8 @@ var TreeVirtual = function TreeVirtual(props) {
|
|
|
55296
55418
|
keepScrollHeight: true,
|
|
55297
55419
|
dynamicVirtual: true,
|
|
55298
55420
|
lineHeight: lineHeight,
|
|
55299
|
-
renderItem: renderItem
|
|
55421
|
+
renderItem: renderItem,
|
|
55422
|
+
paddingY: PADDING_Y_MAP[datum.size || 'default']
|
|
55300
55423
|
});
|
|
55301
55424
|
};
|
|
55302
55425
|
/* harmony default export */ var tree_virtual = (TreeVirtual);
|
|
@@ -67619,13 +67742,25 @@ var TreeSelect = function TreeSelect(props0) {
|
|
|
67619
67742
|
var style = {
|
|
67620
67743
|
maxHeight: height
|
|
67621
67744
|
};
|
|
67745
|
+
var rootStyle = {
|
|
67746
|
+
padding: '0 4px'
|
|
67747
|
+
};
|
|
67748
|
+
if (!virtual) {
|
|
67749
|
+
if (size === 'small') {
|
|
67750
|
+
rootStyle = {
|
|
67751
|
+
padding: '3px 4px'
|
|
67752
|
+
};
|
|
67753
|
+
} else if (size === 'large') {
|
|
67754
|
+
rootStyle = {
|
|
67755
|
+
padding: '0 5px'
|
|
67756
|
+
};
|
|
67757
|
+
}
|
|
67758
|
+
}
|
|
67622
67759
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
67623
67760
|
className: classnames_default()(styles.tree, styles.treeWrapper),
|
|
67624
67761
|
style: style,
|
|
67625
67762
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(src_tree_tree, objectSpread2_default()(objectSpread2_default()({
|
|
67626
|
-
rootStyle:
|
|
67627
|
-
padding: '0 4px'
|
|
67628
|
-
},
|
|
67763
|
+
rootStyle: rootStyle,
|
|
67629
67764
|
jssStyle: jssStyle,
|
|
67630
67765
|
renderItem: renderItem
|
|
67631
67766
|
}, treeProps), {}, {
|
|
@@ -71429,7 +71564,7 @@ var upload_interface = __webpack_require__(8821);
|
|
|
71429
71564
|
|
|
71430
71565
|
|
|
71431
71566
|
/* harmony default export */ var src_0 = ({
|
|
71432
|
-
version: '3.7.2'
|
|
71567
|
+
version: '3.7.3-beta.2'
|
|
71433
71568
|
});
|
|
71434
71569
|
}();
|
|
71435
71570
|
/******/ return __webpack_exports__;
|