shineout 3.9.7 → 3.9.8-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 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.9.7'
525
+ version: '3.9.8-beta.2'
526
526
  };
package/dist/shineout.js CHANGED
@@ -12401,7 +12401,7 @@ var handleStyle = function handleStyle(style) {
12401
12401
  };
12402
12402
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12403
12403
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12404
- /* harmony default export */ var version = ('3.9.7');
12404
+ /* harmony default export */ var version = ('3.9.8-beta.2');
12405
12405
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12406
12406
 
12407
12407
 
@@ -44950,8 +44950,13 @@ FormSchemaContext.displayName = 'FormSchemaContext';
44950
44950
 
44951
44951
  var FormField = function FormField(props) {
44952
44952
  var _childrenProps$error, _childrenProps$status;
44953
- var children = props.children;
44953
+ var children = props.children,
44954
+ fieldValidateTrigger = props.validateTrigger;
44954
44955
  var formConfig = useFormConfig();
44956
+ var formFunc = useFormFunc();
44957
+
44958
+ // 获取最终的 validateTrigger: 优先使用字段级配置,其次使用 Form 级配置,默认为 'change'
44959
+ var validateTrigger = fieldValidateTrigger || formConfig.validateTrigger || 'change';
44955
44960
  var getValidateProps = usePersistFn(function () {
44956
44961
  if (props.getValidateProps) return props.getValidateProps();
44957
44962
  return props;
@@ -44979,6 +44984,18 @@ var FormField = function FormField(props) {
44979
44984
  formControl.onChange.apply(formControl, [value].concat(args));
44980
44985
  }
44981
44986
  });
44987
+ var handleBlur = usePersistFn(function (e) {
44988
+ // 先调用原始的 onBlur
44989
+ var originalOnBlur = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().isValidElement(children) ? children.props.onBlur : undefined;
44990
+ originalOnBlur === null || originalOnBlur === void 0 || originalOnBlur(e);
44991
+
44992
+ // 根据 validateTrigger 配置决定是否在失焦时触发校验
44993
+ // 只有 'change-blur' 模式才在失焦时触发校验
44994
+ var shouldValidateOnBlur = validateTrigger === 'change-blur';
44995
+ if (shouldValidateOnBlur && formControl.inForm && formControl.name && formFunc !== null && formFunc !== void 0 && formFunc.validateFields) {
44996
+ formFunc.validateFields(formControl.name).catch(function () {});
44997
+ }
44998
+ });
44982
44999
  var childrenProps = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().isValidElement(children) ? children.props : {};
44983
45000
  var error = (_childrenProps$error = childrenProps.error) !== null && _childrenProps$error !== void 0 ? _childrenProps$error : formControl.error;
44984
45001
  var status = (_childrenProps$status = childrenProps.status) !== null && _childrenProps$status !== void 0 ? _childrenProps$status : formControl.error ? 'error' : undefined;
@@ -45003,6 +45020,7 @@ var FormField = function FormField(props) {
45003
45020
  }, [fieldsetPath, formConfig.formName]);
45004
45021
  var cloneProps = {
45005
45022
  onChange: handleChange,
45023
+ onBlur: handleBlur,
45006
45024
  status: status,
45007
45025
  error: error
45008
45026
  };
@@ -52746,7 +52764,9 @@ var useForm = function useForm(props) {
52746
52764
  colon = props.colon,
52747
52765
  formName = props.name,
52748
52766
  scrollParent = props.scrollParent,
52749
- isControl = props.isControl;
52767
+ isControl = props.isControl,
52768
+ _props$validateTrigge = props.validateTrigger,
52769
+ validateTrigger = _props$validateTrigge === void 0 ? 'change' : _props$validateTrigge;
52750
52770
  var deepSetOptions = {
52751
52771
  removeUndefined: removeUndefined,
52752
52772
  forceSet: true
@@ -53310,9 +53330,10 @@ var useForm = function useForm(props) {
53310
53330
  disabled: disabled,
53311
53331
  size: size,
53312
53332
  formName: formName,
53313
- colon: colon
53333
+ colon: colon,
53334
+ validateTrigger: validateTrigger
53314
53335
  };
53315
- }, [labelWidth, labelAlign, labelVerticalAlign, keepErrorHeight, inline, disabled, size, formName, colon]);
53336
+ }, [labelWidth, labelAlign, labelVerticalAlign, keepErrorHeight, inline, disabled, size, formName, colon, validateTrigger]);
53316
53337
  var updateValue = function updateValue() {
53317
53338
  if (props.value !== context.lastValue && props.value !== context.value) {
53318
53339
  context.value = deepClone(props.value) || emptyObj;
@@ -55699,6 +55720,12 @@ var INNER_TITLE_SUPPORTED_COMPONENTS = ['Input', 'Select', 'Cascader', 'DatePick
55699
55720
  additionalProps.innerTitle = child.props.innerTitle || innerTitle;
55700
55721
  additionalProps.placeTitle = child.props.placeTitle || placeTitle;
55701
55722
  }
55723
+
55724
+ // 兼容旧版 Input.Group 透传 name 和 rules 的行为
55725
+ if (displayName && displayName.includes('Shineout')) {
55726
+ additionalProps.name = child.props.name || props.name;
55727
+ additionalProps.rules = child.props.rules || props.rules;
55728
+ }
55702
55729
  return /*#__PURE__*/(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.cloneElement)(child, additionalProps);
55703
55730
  }
55704
55731
  return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
@@ -75061,7 +75088,7 @@ var upload_interface = __webpack_require__(8821);
75061
75088
 
75062
75089
 
75063
75090
  /* harmony default export */ var src_0 = ({
75064
- version: '3.9.7'
75091
+ version: '3.9.8-beta.2'
75065
75092
  });
75066
75093
  }();
75067
75094
  /******/ return __webpack_exports__;