@sheinx/base 3.5.3-beta.3 → 3.5.3-beta.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.
@@ -1 +1 @@
1
- {"version":3,"file":"use-with-form-config.d.ts","sourceRoot":"","sources":["use-with-form-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,oBAa7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"use-with-form-config.d.ts","sourceRoot":"","sources":["use-with-form-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,oBAW7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -12,17 +12,13 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
12
12
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
13
13
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
14
  var useWithFormConfig = exports.useWithFormConfig = function useWithFormConfig(props) {
15
- var _reserveAble;
16
15
  var formConfig = (0, _hooks.useFormConfig)();
17
16
  var size = (props === null || props === void 0 ? void 0 : props.size) || formConfig.size;
18
17
  var disabled = formConfig.disabled || (props === null || props === void 0 ? void 0 : props.disabled);
19
- var reserveAble = (_reserveAble = props === null || props === void 0 ? void 0 : props.reserveAble) !== null && _reserveAble !== void 0 ? _reserveAble : formConfig.reserveAble;
20
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), size !== undefined && {
18
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), size !== undefined && {
21
19
  size: size
22
20
  }), disabled !== undefined && {
23
21
  disabled: disabled
24
- }), reserveAble !== undefined && {
25
- reserveAble: reserveAble
26
22
  }), formConfig.formName !== undefined && {
27
23
  formName: formConfig.formName
28
24
  });
@@ -8,12 +8,16 @@ export type SpinConfig = SpinNameType | {
8
8
  mode?: 'vertical' | 'horizontal';
9
9
  size?: number;
10
10
  };
11
+ type TooltipConfig = {
12
+ persistent?: boolean;
13
+ };
11
14
  export interface ConfigOption {
12
15
  prefix: string;
13
16
  locale: LanType;
14
17
  delay?: number;
15
18
  trim?: boolean;
16
19
  spin?: SpinConfig;
20
+ tooltip?: TooltipConfig;
17
21
  direction: Direction;
18
22
  popupContainer?: HTMLElement | null | (() => HTMLElement | null);
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC;CAClE;AAGD,eAAO,IAAI,MAAM,EAAE,YAQlB,CAAC;AAQF,wBAAgB,mBAAmB,uBAWlC;AAED,eAAO,MAAM,SAAS,oBAErB,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,QAAQ,YAAY,CAAC,SAQtD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,KAAK,aAAa,GAAG;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC;CAClE;AAGD,eAAO,IAAI,MAAM,EAAE,YASlB,CAAC;AAQF,wBAAgB,mBAAmB,uBAWlC;AAED,eAAO,MAAM,SAAS,oBAErB,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,QAAQ,YAAY,CAAC,SAQtD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -38,6 +38,7 @@ var config = exports.config = {
38
38
  delay: 400,
39
39
  trim: undefined,
40
40
  spin: 'ring',
41
+ tooltip: undefined,
41
42
  direction: 'ltr',
42
43
  popupContainer: null
43
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["form-field.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAqB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtE,QAAA,MAAM,SAAS,oEA2Ed,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["form-field.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAqB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtE,QAAA,MAAM,SAAS,oEA6Ed,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -14,6 +14,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
14
14
  var FormField = function FormField(props) {
15
15
  var _childrenProps$error, _childrenProps$status;
16
16
  var children = props.children;
17
+ var formConfig = (0, _hooks.useFormConfig)();
17
18
  var getValidateProps = (0, _hooks.usePersistFn)(function () {
18
19
  if (props.getValidateProps) return props.getValidateProps();
19
20
  return props;
@@ -46,15 +47,15 @@ var FormField = function FormField(props) {
46
47
  var _useContext = (0, _react.useContext)(_formFieldContext.FormFieldContext),
47
48
  separator = _useContext.separator;
48
49
  var formFieldId = (0, _react.useMemo)(function () {
49
- if (!props.formName) return;
50
+ if (!formConfig.formName) return;
50
51
  if (childrenProps.id) return childrenProps.id;
51
52
  if (Array.isArray(formControl.name)) {
52
53
  return formControl.name.map(function (name) {
53
- return _hooks.util.getFieldId(name, props.formName);
54
+ return _hooks.util.getFieldId(name, formConfig.formName);
54
55
  }).join(separator);
55
56
  }
56
- return _hooks.util.getFieldId(formControl.name, props.formName);
57
- }, [formControl.name, props.formName, childrenProps.id]);
57
+ return _hooks.util.getFieldId(formControl.name, formConfig.formName);
58
+ }, [formControl.name, formConfig.formName, childrenProps.id]);
58
59
  var cloneProps = {
59
60
  onChange: handleChange,
60
61
  status: status,
@@ -1 +1 @@
1
- {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,iDA8FjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,iDAqGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -19,7 +19,8 @@ var FormFieldSet = function FormFieldSet(props) {
19
19
  var children = props.children,
20
20
  empty = props.empty;
21
21
  var _React$useRef = _react.default.useRef({
22
- ids: []
22
+ ids: [],
23
+ lastValues: []
23
24
  }),
24
25
  context = _React$useRef.current;
25
26
  var formFunc = (0, _hooks.useFormFunc)();
@@ -73,8 +74,11 @@ var FormFieldSet = function FormFieldSet(props) {
73
74
  return _hooks.util.generateUUID();
74
75
  });
75
76
  }
76
- var ids = context.ids || [];
77
77
  valueArr.forEach(function (v, i) {
78
+ var _context$ids$i;
79
+ if (context.lastValues[i] !== v) {
80
+ context.ids[i] = _hooks.util.generateUUID();
81
+ }
78
82
  result.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {
79
83
  value: {
80
84
  path: "".concat(ProviderValue.path, "[").concat(i, "]"),
@@ -121,8 +125,11 @@ var FormFieldSet = function FormFieldSet(props) {
121
125
  formFunc === null || formFunc === void 0 || formFunc.spliceError(name, i);
122
126
  }
123
127
  })
124
- }, ids[i]));
128
+ }, (_context$ids$i = context.ids[i]) !== null && _context$ids$i !== void 0 ? _context$ids$i : i));
125
129
  });
130
+
131
+ // 更新 lastValues
132
+ context.lastValues = valueArr;
126
133
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
127
134
  children: result
128
135
  });
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,MAAM,OAAO,CAAC;;AA+C1B,wBAAiC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,MAAM,OAAO,CAAC;;AA8C1B,wBAAiC"}
@@ -31,8 +31,7 @@ var Input = function Input(props) {
31
31
  integerLimit: commonProps.integerLimit,
32
32
  numType: commonProps.numType,
33
33
  trim: (_ref = (_commonProps$trim = commonProps.trim) !== null && _commonProps$trim !== void 0 ? _commonProps$trim : config.trim) !== null && _ref !== void 0 ? _ref : false,
34
- // 移除 reserveAble 和 formName,避免渲染到原生 input 上
35
- reserveAble: undefined,
34
+ // 移除 formName,避免渲染到原生 input 上
36
35
  formName: undefined
37
36
  };
38
37
  var inputFormatProps = (0, _hooks.useInputFormat)(_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-panel.d.ts","sourceRoot":"","sources":["tabs-panel.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,QAAA,MAAM,SAAS,UAAW,cAAc,uBAuCvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"tabs-panel.d.ts","sourceRoot":"","sources":["tabs-panel.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,QAAA,MAAM,SAAS,UAAW,cAAc,uBAmDvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -38,24 +38,24 @@ var TabsPanel = function TabsPanel(props) {
38
38
  var isActive = active === id;
39
39
  var keekAlive = (0, _react.useRef)(false);
40
40
  (0, _react.useLayoutEffect)(function () {
41
+ var tabData = {
42
+ id: id,
43
+ tab: tab,
44
+ disabled: props.disabled,
45
+ jssStyle: jssStyle,
46
+ color: props.color || (active === id ? color : undefined)
47
+ };
41
48
  setTabs(function (prev) {
42
49
  var prevTab = prev.find(function (item) {
43
50
  return item.id === id;
44
51
  });
45
52
  if (prevTab) {
46
53
  return prev.map(function (item) {
47
- return item.id === id ? _objectSpread(_objectSpread({}, item), {}, {
48
- tab: tab
49
- }) : item;
54
+ if (item.id !== id) return item;
55
+ return _objectSpread(_objectSpread({}, item), tabData);
50
56
  });
51
57
  }
52
- return [].concat(_toConsumableArray(prev), [{
53
- id: id,
54
- tab: tab,
55
- disabled: props.disabled,
56
- jssStyle: jssStyle,
57
- color: props.color || (active === id ? color : undefined)
58
- }]);
58
+ return [].concat(_toConsumableArray(prev), [tabData]);
59
59
  });
60
60
  }, [id, tab, color].concat(_toConsumableArray(color ? [active] : []), [props.disabled, props.jssStyle]));
61
61
  if (!isActive && lazy && !keekAlive.current) {
@@ -3,7 +3,7 @@ import { CommonType } from '../common/type';
3
3
  import { ButtonClasses } from '../button/button.type';
4
4
  import { TabsContextProps } from '@sheinx/hooks';
5
5
  import { TabsClasses } from './tabs.type';
6
- export interface TabsPanelProps extends TabsContextProps, Pick<CommonType, 'className' | 'style'> {
6
+ export interface TabsPanelProps extends Omit<TabsContextProps, 'tabs' | 'setTabs'>, Pick<CommonType, 'className' | 'style'> {
7
7
  jssStyle?: {
8
8
  tabs: () => TabsClasses;
9
9
  button: () => ButtonClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-panel.type.d.ts","sourceRoot":"","sources":["tabs-panel.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAe,SAAQ,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,WAAW,CAAC;QACxB,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B,CAAC;IACF;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB;;;;OAIG;IACH,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"tabs-panel.type.d.ts","sourceRoot":"","sources":["tabs-panel.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC,EAChD,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC;IACzC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,WAAW,CAAC;QACxB,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B,CAAC;IACF;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB;;;;OAIG;IACH,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["tooltip.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,QAAA,MAAM,OAAO,UAAW,YAAY,uBAiInC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["tooltip.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,QAAA,MAAM,OAAO,UAAW,YAAY,uBAmInC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -22,7 +22,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
22
22
  var devUseWarning = _hooks.util.devUseWarning;
23
23
  var defaultDelay = 0;
24
24
  var Tooltip = function Tooltip(props) {
25
- var _jssStyle$tooltip;
25
+ var _jssStyle$tooltip, _config$tooltip$persi, _config$tooltip;
26
26
  var _props$trigger = props.trigger,
27
27
  trigger = _props$trigger === void 0 ? 'hover' : _props$trigger,
28
28
  priorityDirection = props.priorityDirection,
@@ -33,13 +33,14 @@ var Tooltip = function Tooltip(props) {
33
33
  className = props.className,
34
34
  style = props.style,
35
35
  zIndex = props.zIndex,
36
- persistent = props.persistent,
36
+ persistentProp = props.persistent,
37
37
  _props$type = props.type,
38
38
  type = _props$type === void 0 ? 'default' : _props$type,
39
39
  _props$position = props.position,
40
40
  popsitionProps = _props$position === void 0 ? 'auto' : _props$position;
41
41
  var tooltipClasses = jssStyle === null || jssStyle === void 0 || (_jssStyle$tooltip = jssStyle.tooltip) === null || _jssStyle$tooltip === void 0 ? void 0 : _jssStyle$tooltip.call(jssStyle);
42
42
  var config = (0, _config.useConfig)();
43
+ var persistent = (_config$tooltip$persi = (_config$tooltip = config.tooltip) === null || _config$tooltip === void 0 ? void 0 : _config$tooltip.persistent) !== null && _config$tooltip$persi !== void 0 ? _config$tooltip$persi : persistentProp;
43
44
  var childrenProps = /*#__PURE__*/(0, _react.isValidElement)(children) ? children === null || children === void 0 ? void 0 : children.props : {};
44
45
  var delay = props.delay || props.mouseEnterDelay || defaultDelay;
45
46
  var _usePopup = (0, _hooks.usePopup)({
@@ -1 +1 @@
1
- {"version":3,"file":"use-with-form-config.d.ts","sourceRoot":"","sources":["use-with-form-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,oBAa7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"use-with-form-config.d.ts","sourceRoot":"","sources":["use-with-form-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,oBAW7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -6,17 +6,13 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import { useFormConfig } from '@sheinx/hooks';
8
8
  export var useWithFormConfig = function useWithFormConfig(props) {
9
- var _reserveAble;
10
9
  var formConfig = useFormConfig();
11
10
  var size = (props === null || props === void 0 ? void 0 : props.size) || formConfig.size;
12
11
  var disabled = formConfig.disabled || (props === null || props === void 0 ? void 0 : props.disabled);
13
- var reserveAble = (_reserveAble = props === null || props === void 0 ? void 0 : props.reserveAble) !== null && _reserveAble !== void 0 ? _reserveAble : formConfig.reserveAble;
14
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), size !== undefined && {
12
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), size !== undefined && {
15
13
  size: size
16
14
  }), disabled !== undefined && {
17
15
  disabled: disabled
18
- }), reserveAble !== undefined && {
19
- reserveAble: reserveAble
20
16
  }), formConfig.formName !== undefined && {
21
17
  formName: formConfig.formName
22
18
  });
@@ -8,12 +8,16 @@ export type SpinConfig = SpinNameType | {
8
8
  mode?: 'vertical' | 'horizontal';
9
9
  size?: number;
10
10
  };
11
+ type TooltipConfig = {
12
+ persistent?: boolean;
13
+ };
11
14
  export interface ConfigOption {
12
15
  prefix: string;
13
16
  locale: LanType;
14
17
  delay?: number;
15
18
  trim?: boolean;
16
19
  spin?: SpinConfig;
20
+ tooltip?: TooltipConfig;
17
21
  direction: Direction;
18
22
  popupContainer?: HTMLElement | null | (() => HTMLElement | null);
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC;CAClE;AAGD,eAAO,IAAI,MAAM,EAAE,YAQlB,CAAC;AAQF,wBAAgB,mBAAmB,uBAWlC;AAED,eAAO,MAAM,SAAS,oBAErB,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,QAAQ,YAAY,CAAC,SAQtD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,KAAK,aAAa,GAAG;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC;CAClE;AAGD,eAAO,IAAI,MAAM,EAAE,YASlB,CAAC;AAQF,wBAAgB,mBAAmB,uBAWlC;AAED,eAAO,MAAM,SAAS,oBAErB,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,QAAQ,YAAY,CAAC,SAQtD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -16,6 +16,7 @@ export var config = {
16
16
  delay: 400,
17
17
  trim: undefined,
18
18
  spin: 'ring',
19
+ tooltip: undefined,
19
20
  direction: 'ltr',
20
21
  popupContainer: null
21
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["form-field.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAqB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtE,QAAA,MAAM,SAAS,oEA2Ed,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["form-field.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAqB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtE,QAAA,MAAM,SAAS,oEA6Ed,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import React, { useContext, useMemo } from 'react';
2
- import { useFormControl, usePersistFn, util } from '@sheinx/hooks';
2
+ import { useFormConfig, useFormControl, usePersistFn, util } from '@sheinx/hooks';
3
3
  import { FormFieldContext } from "./form-field-context";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  var FormField = function FormField(props) {
6
6
  var _childrenProps$error, _childrenProps$status;
7
7
  var children = props.children;
8
+ var formConfig = useFormConfig();
8
9
  var getValidateProps = usePersistFn(function () {
9
10
  if (props.getValidateProps) return props.getValidateProps();
10
11
  return props;
@@ -37,15 +38,15 @@ var FormField = function FormField(props) {
37
38
  var _useContext = useContext(FormFieldContext),
38
39
  separator = _useContext.separator;
39
40
  var formFieldId = useMemo(function () {
40
- if (!props.formName) return;
41
+ if (!formConfig.formName) return;
41
42
  if (childrenProps.id) return childrenProps.id;
42
43
  if (Array.isArray(formControl.name)) {
43
44
  return formControl.name.map(function (name) {
44
- return util.getFieldId(name, props.formName);
45
+ return util.getFieldId(name, formConfig.formName);
45
46
  }).join(separator);
46
47
  }
47
- return util.getFieldId(formControl.name, props.formName);
48
- }, [formControl.name, props.formName, childrenProps.id]);
48
+ return util.getFieldId(formControl.name, formConfig.formName);
49
+ }, [formControl.name, formConfig.formName, childrenProps.id]);
49
50
  var cloneProps = {
50
51
  onChange: handleChange,
51
52
  status: status,
@@ -1 +1 @@
1
- {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,iDA8FjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"form-fieldset.d.ts","sourceRoot":"","sources":["form-fieldset.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,YAAY,iDAqGjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -13,7 +13,8 @@ var FormFieldSet = function FormFieldSet(props) {
13
13
  var children = props.children,
14
14
  empty = props.empty;
15
15
  var _React$useRef = React.useRef({
16
- ids: []
16
+ ids: [],
17
+ lastValues: []
17
18
  }),
18
19
  context = _React$useRef.current;
19
20
  var formFunc = useFormFunc();
@@ -67,8 +68,11 @@ var FormFieldSet = function FormFieldSet(props) {
67
68
  return util.generateUUID();
68
69
  });
69
70
  }
70
- var ids = context.ids || [];
71
71
  valueArr.forEach(function (v, i) {
72
+ var _context$ids$i;
73
+ if (context.lastValues[i] !== v) {
74
+ context.ids[i] = util.generateUUID();
75
+ }
72
76
  result.push( /*#__PURE__*/_jsx(Provider, {
73
77
  value: {
74
78
  path: "".concat(ProviderValue.path, "[").concat(i, "]"),
@@ -115,8 +119,11 @@ var FormFieldSet = function FormFieldSet(props) {
115
119
  formFunc === null || formFunc === void 0 || formFunc.spliceError(name, i);
116
120
  }
117
121
  })
118
- }, ids[i]));
122
+ }, (_context$ids$i = context.ids[i]) !== null && _context$ids$i !== void 0 ? _context$ids$i : i));
119
123
  });
124
+
125
+ // 更新 lastValues
126
+ context.lastValues = valueArr;
120
127
  return /*#__PURE__*/_jsx(_Fragment, {
121
128
  children: result
122
129
  });
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,MAAM,OAAO,CAAC;;AA+C1B,wBAAiC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,MAAM,OAAO,CAAC;;AA8C1B,wBAAiC"}
@@ -24,8 +24,7 @@ var Input = function Input(props) {
24
24
  integerLimit: commonProps.integerLimit,
25
25
  numType: commonProps.numType,
26
26
  trim: (_ref = (_commonProps$trim = commonProps.trim) !== null && _commonProps$trim !== void 0 ? _commonProps$trim : config.trim) !== null && _ref !== void 0 ? _ref : false,
27
- // 移除 reserveAble 和 formName,避免渲染到原生 input 上
28
- reserveAble: undefined,
27
+ // 移除 formName,避免渲染到原生 input 上
29
28
  formName: undefined
30
29
  };
31
30
  var inputFormatProps = useInputFormat(_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-panel.d.ts","sourceRoot":"","sources":["tabs-panel.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,QAAA,MAAM,SAAS,UAAW,cAAc,uBAuCvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"tabs-panel.d.ts","sourceRoot":"","sources":["tabs-panel.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,QAAA,MAAM,SAAS,UAAW,cAAc,uBAmDvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -31,24 +31,24 @@ var TabsPanel = function TabsPanel(props) {
31
31
  var isActive = active === id;
32
32
  var keekAlive = useRef(false);
33
33
  useLayoutEffect(function () {
34
+ var tabData = {
35
+ id: id,
36
+ tab: tab,
37
+ disabled: props.disabled,
38
+ jssStyle: jssStyle,
39
+ color: props.color || (active === id ? color : undefined)
40
+ };
34
41
  setTabs(function (prev) {
35
42
  var prevTab = prev.find(function (item) {
36
43
  return item.id === id;
37
44
  });
38
45
  if (prevTab) {
39
46
  return prev.map(function (item) {
40
- return item.id === id ? _objectSpread(_objectSpread({}, item), {}, {
41
- tab: tab
42
- }) : item;
47
+ if (item.id !== id) return item;
48
+ return _objectSpread(_objectSpread({}, item), tabData);
43
49
  });
44
50
  }
45
- return [].concat(_toConsumableArray(prev), [{
46
- id: id,
47
- tab: tab,
48
- disabled: props.disabled,
49
- jssStyle: jssStyle,
50
- color: props.color || (active === id ? color : undefined)
51
- }]);
51
+ return [].concat(_toConsumableArray(prev), [tabData]);
52
52
  });
53
53
  }, [id, tab, color].concat(_toConsumableArray(color ? [active] : []), [props.disabled, props.jssStyle]));
54
54
  if (!isActive && lazy && !keekAlive.current) {
@@ -3,7 +3,7 @@ import { CommonType } from '../common/type';
3
3
  import { ButtonClasses } from '../button/button.type';
4
4
  import { TabsContextProps } from '@sheinx/hooks';
5
5
  import { TabsClasses } from './tabs.type';
6
- export interface TabsPanelProps extends TabsContextProps, Pick<CommonType, 'className' | 'style'> {
6
+ export interface TabsPanelProps extends Omit<TabsContextProps, 'tabs' | 'setTabs'>, Pick<CommonType, 'className' | 'style'> {
7
7
  jssStyle?: {
8
8
  tabs: () => TabsClasses;
9
9
  button: () => ButtonClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-panel.type.d.ts","sourceRoot":"","sources":["tabs-panel.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cAAe,SAAQ,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,WAAW,CAAC;QACxB,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B,CAAC;IACF;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB;;;;OAIG;IACH,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"tabs-panel.type.d.ts","sourceRoot":"","sources":["tabs-panel.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC,EAChD,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC;IACzC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,WAAW,CAAC;QACxB,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B,CAAC;IACF;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB;;;;OAIG;IACH,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["tooltip.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,QAAA,MAAM,OAAO,UAAW,YAAY,uBAiInC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["tooltip.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,QAAA,MAAM,OAAO,UAAW,YAAY,uBAmInC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -15,7 +15,7 @@ import { Fragment as _Fragment } from "react/jsx-runtime";
15
15
  var devUseWarning = util.devUseWarning;
16
16
  var defaultDelay = 0;
17
17
  var Tooltip = function Tooltip(props) {
18
- var _jssStyle$tooltip;
18
+ var _jssStyle$tooltip, _config$tooltip$persi, _config$tooltip;
19
19
  var _props$trigger = props.trigger,
20
20
  trigger = _props$trigger === void 0 ? 'hover' : _props$trigger,
21
21
  priorityDirection = props.priorityDirection,
@@ -26,13 +26,14 @@ var Tooltip = function Tooltip(props) {
26
26
  className = props.className,
27
27
  style = props.style,
28
28
  zIndex = props.zIndex,
29
- persistent = props.persistent,
29
+ persistentProp = props.persistent,
30
30
  _props$type = props.type,
31
31
  type = _props$type === void 0 ? 'default' : _props$type,
32
32
  _props$position = props.position,
33
33
  popsitionProps = _props$position === void 0 ? 'auto' : _props$position;
34
34
  var tooltipClasses = jssStyle === null || jssStyle === void 0 || (_jssStyle$tooltip = jssStyle.tooltip) === null || _jssStyle$tooltip === void 0 ? void 0 : _jssStyle$tooltip.call(jssStyle);
35
35
  var config = useConfig();
36
+ var persistent = (_config$tooltip$persi = (_config$tooltip = config.tooltip) === null || _config$tooltip === void 0 ? void 0 : _config$tooltip.persistent) !== null && _config$tooltip$persi !== void 0 ? _config$tooltip$persi : persistentProp;
36
37
  var childrenProps = /*#__PURE__*/isValidElement(children) ? children === null || children === void 0 ? void 0 : children.props : {};
37
38
  var delay = props.delay || props.mouseEnterDelay || defaultDelay;
38
39
  var _usePopup = usePopup({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/base",
3
- "version": "3.5.3-beta.3",
3
+ "version": "3.5.3-beta.5",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "module": "./esm/index.js",
11
11
  "typings": "./cjs/index.d.ts",
12
12
  "dependencies": {
13
- "@sheinx/hooks": "3.5.3-beta.3",
13
+ "@sheinx/hooks": "3.5.3-beta.5",
14
14
  "immer": "^10.0.0",
15
15
  "classnames": "^2.0.0",
16
16
  "@shined/reactive": "^0.1.3-alpha.0"