@nutui/nutui-react 2.0.0-alpha.16 → 2.0.0-alpha.18

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.
Files changed (116) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/ActionSheet/style/style.css +1 -1
  3. package/dist/esm/Button.js +4 -2
  4. package/dist/esm/Divider/style/style.css +1 -1
  5. package/dist/esm/Form/style/index.js +3 -1
  6. package/dist/esm/Form/style/style.css +1 -1
  7. package/dist/esm/Form.js +65 -48
  8. package/dist/esm/FormItem/style/index.js +1 -1
  9. package/dist/esm/FormItem/style/style.css +1 -1
  10. package/dist/esm/FormItem.js +1 -1
  11. package/dist/esm/InputNumber/style/style.css +1 -1
  12. package/dist/esm/InputNumber.js +7 -7
  13. package/dist/esm/Pagination/style/style.css +1 -1
  14. package/dist/esm/Picker.js +31 -11
  15. package/dist/esm/Popover.js +7 -7
  16. package/dist/esm/Popup.js +1 -0
  17. package/dist/esm/SearchBar.js +2 -2
  18. package/dist/esm/Swipe.js +4 -6
  19. package/dist/esm/Tabbar/style/style.css +1 -1
  20. package/dist/esm/TabbarItem/style/index.js +1 -1
  21. package/dist/esm/TabbarItem/style/style.css +1 -1
  22. package/dist/esm/formitem2.js +87 -69
  23. package/dist/esm/tabbaritem2.js +17 -8
  24. package/dist/esm/types/src/packages/button/button.d.ts +1 -0
  25. package/dist/esm/types/src/packages/elevator/elevator.d.ts +0 -1
  26. package/dist/esm/types/src/packages/elevator/elevator.taro.d.ts +0 -1
  27. package/dist/esm/types/src/packages/form/__tests__/form.spec.d.ts +1 -0
  28. package/dist/esm/types/src/packages/form/context.d.ts +4 -0
  29. package/dist/esm/types/src/packages/form/form.d.ts +11 -4
  30. package/dist/esm/types/src/packages/form/form.taro.d.ts +14 -4
  31. package/dist/esm/types/src/packages/form/index.d.ts +1 -0
  32. package/dist/esm/types/src/packages/form/index.taro.d.ts +1 -0
  33. package/dist/esm/types/src/packages/form/types.d.ts +4 -52
  34. package/dist/esm/types/src/packages/formitem/formitem.d.ts +16 -15
  35. package/dist/esm/types/src/packages/formitem/formitem.taro.d.ts +16 -12
  36. package/dist/esm/types/src/packages/formitem/index.d.ts +1 -0
  37. package/dist/esm/types/src/packages/formitem/index.taro.d.ts +1 -0
  38. package/dist/esm/types/src/packages/formitem/types.d.ts +1 -31
  39. package/dist/esm/types/src/packages/inputnumber/inputnumber.d.ts +1 -1
  40. package/dist/esm/types/src/packages/inputnumber/inputnumber.taro.d.ts +1 -1
  41. package/dist/esm/types/src/packages/picker/picker.d.ts +7 -2
  42. package/dist/esm/types/src/packages/picker/picker.taro.d.ts +7 -2
  43. package/dist/esm/types/src/packages/sticky/sticky.d.ts +0 -1
  44. package/dist/esm/types/src/packages/swipe/swipe.d.ts +2 -6
  45. package/dist/esm/types/src/packages/swipe/swipe.taro.d.ts +2 -6
  46. package/dist/esm/types/src/packages/tabbaritem/tabbaritem.d.ts +7 -2
  47. package/dist/esm/types/src/packages/tabbaritem/tabbaritem.taro.d.ts +7 -2
  48. package/dist/esm/types/src/utils/is-forward-ref-component.d.ts +1 -0
  49. package/dist/locales/base.js +1 -1
  50. package/dist/locales/en-US.js +1 -1
  51. package/dist/locales/id-ID.js +1 -1
  52. package/dist/locales/tr-TR.js +1 -1
  53. package/dist/locales/zh-CN.js +1 -1
  54. package/dist/locales/zh-TW.js +1 -1
  55. package/dist/locales/zh-UG.js +1 -1
  56. package/dist/nutui.react.es.js +265 -178
  57. package/dist/nutui.react.umd.js +265 -178
  58. package/dist/packages/actionsheet/actionsheet.scss +6 -6
  59. package/dist/packages/divider/divider.scss +8 -7
  60. package/dist/packages/formitem/formitem.scss +1 -13
  61. package/dist/packages/inputnumber/inputnumber.scss +4 -2
  62. package/dist/packages/layout/layout.scss +0 -2
  63. package/dist/packages/pagination/pagination.scss +8 -30
  64. package/dist/packages/tabbaritem/tabbaritem.scss +1 -0
  65. package/dist/style.css +1 -1
  66. package/dist/style.mjs +1 -1
  67. package/dist/types/packages/animate/animate.d.ts +3 -3
  68. package/dist/types/packages/audio/audio.d.ts +2 -2
  69. package/dist/types/packages/avatar/avatar.d.ts +5 -5
  70. package/dist/types/packages/avatargroup/avatargroup.d.ts +5 -5
  71. package/dist/types/packages/badge/badge.d.ts +1 -1
  72. package/dist/types/packages/button/button.d.ts +5 -4
  73. package/dist/types/packages/cascader/cascader.d.ts +4 -4
  74. package/dist/types/packages/checkboxgroup/checkboxgroup.d.ts +2 -2
  75. package/dist/types/packages/circleprogress/circleprogress.d.ts +2 -2
  76. package/dist/types/packages/divider/divider.d.ts +2 -2
  77. package/dist/types/packages/drag/drag.d.ts +1 -1
  78. package/dist/types/packages/elevator/elevator.d.ts +0 -1
  79. package/dist/types/packages/empty/empty.d.ts +3 -3
  80. package/dist/types/packages/fixednav/fixednav.d.ts +3 -3
  81. package/dist/types/packages/form/context.d.ts +4 -0
  82. package/dist/types/packages/form/form.d.ts +43 -4
  83. package/dist/types/packages/form/index.d.ts +1 -0
  84. package/dist/types/packages/form/types.d.ts +4 -52
  85. package/dist/types/packages/formitem/formitem.d.ts +45 -16
  86. package/dist/types/packages/formitem/index.d.ts +1 -0
  87. package/dist/types/packages/formitem/types.d.ts +1 -31
  88. package/dist/types/packages/grid/grid.d.ts +1 -1
  89. package/dist/types/packages/infiniteloading/infiniteloading.d.ts +1 -1
  90. package/dist/types/packages/inputnumber/inputnumber.d.ts +1 -1
  91. package/dist/types/packages/noticebar/noticebar.d.ts +3 -3
  92. package/dist/types/packages/overlay/overlay.d.ts +1 -1
  93. package/dist/types/packages/pagination/pagination.d.ts +1 -1
  94. package/dist/types/packages/picker/picker.d.ts +7 -2
  95. package/dist/types/packages/popover/popover.d.ts +5 -5
  96. package/dist/types/packages/popup/popup.d.ts +2 -2
  97. package/dist/types/packages/radio/radio.d.ts +2 -2
  98. package/dist/types/packages/searchbar/searchbar.d.ts +7 -7
  99. package/dist/types/packages/step/step.d.ts +3 -3
  100. package/dist/types/packages/steps/steps.d.ts +1 -1
  101. package/dist/types/packages/sticky/sticky.d.ts +1 -2
  102. package/dist/types/packages/swipe/swipe.d.ts +2 -6
  103. package/dist/types/packages/swiper/swiper.d.ts +1 -1
  104. package/dist/types/packages/tabbaritem/tabbaritem.d.ts +27 -2
  105. package/dist/types/packages/tabs/tabs.d.ts +1 -1
  106. package/dist/types/packages/tag/tag.d.ts +1 -1
  107. package/dist/types/packages/timeselect/timeselect.d.ts +2 -2
  108. package/dist/types/packages/toast/toast.d.ts +50 -10
  109. package/dist/types/packages/uploader/uploader.d.ts +17 -17
  110. package/dist/types/utils/is-forward-ref-component.d.ts +1 -0
  111. package/package.json +1 -1
  112. package/dist/esm/types/src/packages/formitem/formitemcontext.d.ts +0 -6
  113. package/dist/types/packages/formitem/formitemcontext.d.ts +0 -6
  114. /package/dist/esm/types/src/packages/form/{useForm.d.ts → useform.d.ts} +0 -0
  115. /package/dist/esm/types/src/packages/form/{useForm.taro.d.ts → useform.taro.d.ts} +0 -0
  116. /package/dist/types/packages/form/{useForm.d.ts → useform.d.ts} +0 -0
@@ -76,7 +76,7 @@ var SearchBar = function SearchBar2(props) {
76
76
  }, [autoFocus]);
77
77
  var renderField = function renderField2() {
78
78
  return React__default.createElement("input", {
79
- className: "".concat(classPrefix, "__input ").concat(shape === "round" ? "".concat(classPrefix, "__round") : "", " ").concat(clearable ? "".concat(classPrefix, "__input-clear") : ""),
79
+ className: "".concat(classPrefix, "__input ").concat(clearable ? "".concat(classPrefix, "__input-clear") : ""),
80
80
  ref: searchRef,
81
81
  style: _objectSpread({}, props.style),
82
82
  value: value || "",
@@ -163,7 +163,7 @@ var SearchBar = function SearchBar2(props) {
163
163
  className: "".concat(classPrefix, " ").concat(disabled ? "".concat(classPrefix, "__disabled") : "", " ").concat(className || ""),
164
164
  style: _objectSpread({}, props.style)
165
165
  }, renderLeft(), React__default.createElement("div", {
166
- className: "".concat(classPrefix, "__content")
166
+ className: "".concat(classPrefix, "__content ").concat(shape === "round" ? "".concat(classPrefix, "__round") : "")
167
167
  }, renderLeftIn(), renderField(), renderRightIn(), clearable && value && handleClear()), renderRight());
168
168
  };
169
169
  SearchBar.defaultProps = defaultProps;
package/dist/esm/Swipe.js CHANGED
@@ -23,10 +23,8 @@ function _objectSpread(target) {
23
23
  }
24
24
  import React__default, { forwardRef, useRef, useState, useCallback, useImperativeHandle, useEffect } from "react";
25
25
  import classNames from "classnames";
26
- import { c as cn } from "./bem.js";
27
26
  import { u as useTouch } from "./use-touch.js";
28
27
  import { g as getRect } from "./use-client-rect.js";
29
- import "@bem-react/classname";
30
28
  function preventDefault(event, isStopPropagation) {
31
29
  if (typeof event.cancelable !== "boolean" || event.cancelable) {
32
30
  event.preventDefault();
@@ -39,7 +37,7 @@ var defaultProps = {
39
37
  name: ""
40
38
  };
41
39
  var Swipe = forwardRef(function(props, instanceRef) {
42
- var swipeBem = cn("swipe");
40
+ var classPrefix = "nut-swipe";
43
41
  var touch = useTouch();
44
42
  var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), children = _defaultProps$props.children, className = _defaultProps$props.className, style = _defaultProps$props.style;
45
43
  var root = useRef();
@@ -173,7 +171,7 @@ var Swipe = forwardRef(function(props, instanceRef) {
173
171
  if (props["".concat(side, "Action")]) {
174
172
  return React__default.createElement("div", {
175
173
  ref: measuredRef,
176
- className: "".concat(swipeBem(side)),
174
+ className: "".concat(classPrefix, "__").concat(side),
177
175
  onClick: function onClick(e) {
178
176
  return handleOperate(e, side);
179
177
  }
@@ -215,7 +213,7 @@ var Swipe = forwardRef(function(props, instanceRef) {
215
213
  }, []);
216
214
  return React__default.createElement("div", {
217
215
  ref: root,
218
- className: classNames(swipeBem(), className),
216
+ className: classNames(classPrefix, className),
219
217
  onTouchStart: function onTouchStart(e) {
220
218
  return _onTouchStart(e);
221
219
  },
@@ -227,7 +225,7 @@ var Swipe = forwardRef(function(props, instanceRef) {
227
225
  },
228
226
  style
229
227
  }, React__default.createElement("div", {
230
- className: "".concat(swipeBem("wrapper")),
228
+ className: "".concat(classPrefix, "__wrapper"),
231
229
  style: wrapperStyle
232
230
  }, renderActionContent("left", leftRef), children, renderActionContent("right", rightRef)));
233
231
  });
@@ -1 +1 @@
1
- .nut-tabbar-item{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;text-align:center;text-decoration:none;color:var(--nutui-tabbar-inactive-color, var(--nutui-gray-1, #1a1a1a));height:100%}.nut-tabbar-item-active{color:var(--nutui-tabbar-active-color, var(--nutui-brand-color, #fa2c19))}.nut-tabbar-item__icon-box{padding:0;display:flex;flex-direction:column;align-items:center;position:relative}.nut-tabbar-item__icon-box-nav{display:block;font-size:var(--nutui-tabbar-text-font-size, var(--nutui-font-size-0, 10px));margin-top:var(--nutui-tabbar-text-margin-top, 3px)}.nut-tabbar-item__icon-box-large{font-size:var(--nutui-tabbar-text-large-font-size, var(--nutui-font-size-3, 16px));margin-top:0;line-height:var(--nutui-tabbar-text-line-height, 20px)}.nut-tabbar{border:0px;box-shadow:var(--nutui-tabbar-box-shadow, none);border-bottom:var(--nutui-tabbar-border-bottom, 1px solid #eee);border-top:var(--nutui-tabbar-border-top, 1px solid #eee);width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;background:var(--nutui-gray-6, #ffffff)}.nut-tabbar__wrap{width:100%;height:var(--nutui-tabbar-height, 50px);display:flex;flex-direction:row;justify-content:center;align-items:center}.nut-tabbar:last-child{border-right:0}.nut-tabbar__fixed{position:fixed;bottom:0px;left:0px}.nut-tabbar__safe-area{display:block;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}
1
+ .nut-badge{position:relative;display:inline-block}.nut-badge__icon{display:flex;position:absolute;background:var(--nutui-badge-background-color, linear-gradient(135deg, var(--nutui-brand-color, #fa2c19) 0%, var(--nutui-brand-color-end, #fa2c19) 100%));top:-20%;right:-20%;padding:var(--nutui-badge-icon-padding, 3px);text-align:center;border:var(--nutui-badge-border, 0px solid var(--nutui-brand-text-color, #ffffff));border-radius:var(--nutui-badge-border-radius, 14px);z-index:var(--nutui-badge-z-index, 1)}.nut-badge__sup{position:absolute;background:var(--nutui-badge-background-color, linear-gradient(135deg, var(--nutui-brand-color, #fa2c19) 0%, var(--nutui-brand-color-end, #fa2c19) 100%));color:var(--nutui-badge-color, #fff);padding:var(--nutui-badge-padding, 0 5px);font-size:var(--nutui-badge-font-size, var(--nutui-font-size-1, 12px));font-weight:400;text-align:center;line-height:16px;border:var(--nutui-badge-border, 0px solid var(--nutui-brand-text-color, #ffffff));border-radius:var(--nutui-badge-border-radius, 14px)}.nut-badge__content{transform:var(--nutui-badge-content-transform, translateY(-50%) translateX(100%))}.nut-badge__dot{width:var(--nutui-badge-dot-width, 7px);height:var(--nutui-badge-dot-width, 7px);border:var(--nutui-badge-border, 0px solid var(--nutui-brand-text-color, #ffffff));border-radius:var(--nutui-badge-dot-width, 7px);padding:0}.nut-tabbar-item{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;text-align:center;text-decoration:none;color:var(--nutui-tabbar-inactive-color, var(--nutui-gray-1, #1a1a1a));height:100%}.nut-tabbar-item-active{color:var(--nutui-tabbar-active-color, var(--nutui-brand-color, #fa2c19))}.nut-tabbar-item__icon-box{padding:0;display:flex;flex-direction:column;align-items:center;position:relative}.nut-tabbar-item__icon-box-nav{display:block;font-size:var(--nutui-tabbar-text-font-size, var(--nutui-font-size-0, 10px));margin-top:var(--nutui-tabbar-text-margin-top, 3px)}.nut-tabbar-item__icon-box-large{font-size:var(--nutui-tabbar-text-large-font-size, var(--nutui-font-size-3, 16px));margin-top:0;line-height:var(--nutui-tabbar-text-line-height, 20px)}.nut-tabbar{border:0px;box-shadow:var(--nutui-tabbar-box-shadow, none);border-bottom:var(--nutui-tabbar-border-bottom, 1px solid #eee);border-top:var(--nutui-tabbar-border-top, 1px solid #eee);width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;background:var(--nutui-gray-6, #ffffff)}.nut-tabbar__wrap{width:100%;height:var(--nutui-tabbar-height, 50px);display:flex;flex-direction:row;justify-content:center;align-items:center}.nut-tabbar:last-child{border-right:0}.nut-tabbar__fixed{position:fixed;bottom:0px;left:0px}.nut-tabbar__safe-area{display:block;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}
@@ -1,2 +1,2 @@
1
-
1
+ import '../../Badge/style'
2
2
  import '../../../packages/tabbaritem/tabbaritem.scss'
@@ -1 +1 @@
1
- .nut-tabbar-item{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;text-align:center;text-decoration:none;color:var(--nutui-tabbar-inactive-color, var(--nutui-gray-1, #1a1a1a));height:100%}.nut-tabbar-item-active{color:var(--nutui-tabbar-active-color, var(--nutui-brand-color, #fa2c19))}.nut-tabbar-item__icon-box{padding:0;display:flex;flex-direction:column;align-items:center;position:relative}.nut-tabbar-item__icon-box-nav{display:block;font-size:var(--nutui-tabbar-text-font-size, var(--nutui-font-size-0, 10px));margin-top:var(--nutui-tabbar-text-margin-top, 3px)}.nut-tabbar-item__icon-box-large{font-size:var(--nutui-tabbar-text-large-font-size, var(--nutui-font-size-3, 16px));margin-top:0;line-height:var(--nutui-tabbar-text-line-height, 20px)}
1
+ .nut-badge{position:relative;display:inline-block}.nut-badge__icon{display:flex;position:absolute;background:var(--nutui-badge-background-color, linear-gradient(135deg, var(--nutui-brand-color, #fa2c19) 0%, var(--nutui-brand-color-end, #fa2c19) 100%));top:-20%;right:-20%;padding:var(--nutui-badge-icon-padding, 3px);text-align:center;border:var(--nutui-badge-border, 0px solid var(--nutui-brand-text-color, #ffffff));border-radius:var(--nutui-badge-border-radius, 14px);z-index:var(--nutui-badge-z-index, 1)}.nut-badge__sup{position:absolute;background:var(--nutui-badge-background-color, linear-gradient(135deg, var(--nutui-brand-color, #fa2c19) 0%, var(--nutui-brand-color-end, #fa2c19) 100%));color:var(--nutui-badge-color, #fff);padding:var(--nutui-badge-padding, 0 5px);font-size:var(--nutui-badge-font-size, var(--nutui-font-size-1, 12px));font-weight:400;text-align:center;line-height:16px;border:var(--nutui-badge-border, 0px solid var(--nutui-brand-text-color, #ffffff));border-radius:var(--nutui-badge-border-radius, 14px)}.nut-badge__content{transform:var(--nutui-badge-content-transform, translateY(-50%) translateX(100%))}.nut-badge__dot{width:var(--nutui-badge-dot-width, 7px);height:var(--nutui-badge-dot-width, 7px);border:var(--nutui-badge-border, 0px solid var(--nutui-brand-text-color, #ffffff));border-radius:var(--nutui-badge-dot-width, 7px);padding:0}.nut-tabbar-item{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;text-align:center;text-decoration:none;color:var(--nutui-tabbar-inactive-color, var(--nutui-gray-1, #1a1a1a));height:100%}.nut-tabbar-item-active{color:var(--nutui-tabbar-active-color, var(--nutui-brand-color, #fa2c19))}.nut-tabbar-item__icon-box{padding:0;display:flex;flex-direction:column;align-items:center;position:relative}.nut-tabbar-item__icon-box-nav{display:block;font-size:var(--nutui-tabbar-text-font-size, var(--nutui-font-size-0, 10px));margin-top:var(--nutui-tabbar-text-margin-top, 3px)}.nut-tabbar-item__icon-box-large{font-size:var(--nutui-tabbar-text-large-font-size, var(--nutui-font-size-3, 16px));margin-top:0;line-height:var(--nutui-tabbar-text-line-height, 20px)}
@@ -57,86 +57,107 @@ function _objectSpread(target) {
57
57
  import React__default, { createContext } from "react";
58
58
  import Cell from "./Cell.js";
59
59
  import { C as ComponentDefaults } from "./typings.js";
60
- var FormItemContext = createContext({});
60
+ var Context = createContext({});
61
+ function isForwardRefComponent(component) {
62
+ return component.type && component.type.$$typeof && // eslint-disable-next-line react/display-name
63
+ React__default.forwardRef(
64
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
65
+ // @ts-ignore
66
+ function() {
67
+ }
68
+ ).$$typeof === component.type.$$typeof;
69
+ }
61
70
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
71
+ required: false,
62
72
  name: "",
63
73
  label: "",
64
- className: "",
65
74
  rules: [{
66
75
  required: false,
67
76
  message: ""
68
77
  }],
69
- disabled: false,
70
- labelWidth: 90,
71
- errorMessageAlign: "left",
72
- showErrorLine: true,
73
- showErrorMessage: true,
74
- initialValue: ""
78
+ errorMessageAlign: "left"
75
79
  });
76
80
  var FormItem = /* @__PURE__ */ function(_React__default$Compo) {
77
81
  _inherits(FormItem2, _React__default$Compo);
78
82
  var _super = _createSuper(FormItem2);
79
- function FormItem2() {
83
+ function FormItem2(props) {
80
84
  var _this;
81
85
  _classCallCheck(this, FormItem2);
82
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
83
- args[_key] = arguments[_key];
84
- }
85
- _this = _super.call.apply(_super, [this].concat(args));
86
+ _this = _super.call(this, props);
86
87
  _defineProperty(_assertThisInitialized(_this), "cancelRegister", void 0);
87
- _defineProperty(_assertThisInitialized(_this), "isInitialValue", false);
88
+ _defineProperty(_assertThisInitialized(_this), "componentRef", void 0);
88
89
  _defineProperty(_assertThisInitialized(_this), "getControlled", function(children) {
89
- var _children$props, _children$props2;
90
- var _this$context = _this.context, getFieldValue = _this$context.getFieldValue, setFieldsValue = _this$context.setFieldsValue;
90
+ var _children$props, _objectSpread2;
91
+ var _this$context = _this.context, setFieldsValue = _this$context.setFieldsValue, getFieldValue = _this$context.getFieldValue;
91
92
  var name = _this.props.name;
92
- var type = children.type.NAME;
93
- var defaultvalue = _this.props.initialValue || ((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.defaultValue) || ((_children$props2 = children.props) === null || _children$props2 === void 0 ? void 0 : _children$props2.value);
94
- if (defaultvalue && !_this.isInitialValue) {
95
- setFieldsValue(_defineProperty({}, name, defaultvalue));
96
- _this.isInitialValue = true;
93
+ if (children !== null && children !== void 0 && (_children$props = children.props) !== null && _children$props !== void 0 && _children$props.defaultValue) {
94
+ console.warn("通过 initialValue 设置初始值");
97
95
  }
98
- return {
99
- value: getFieldValue(name),
100
- defaultValue: getFieldValue(name),
101
- onChange: function onChange(event) {
102
- var originOnChange = children.props.onChange;
103
- if (originOnChange) {
104
- originOnChange(event);
105
- }
106
- var newValue = event;
107
- switch (type) {
108
- case "checkbox":
109
- newValue = event.target.value;
110
- break;
111
- }
112
- setFieldsValue(_defineProperty({}, name, newValue));
96
+ var controlled = _objectSpread(_objectSpread({}, children.props), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, _this.props.valuePropName || "value", getFieldValue(name) || _this.props.initialValue), _defineProperty(_objectSpread2, _this.props.trigger || "onChange", function() {
97
+ var originOnChange = children.props[_this.props.trigger || "onChange"];
98
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
99
+ args[_key] = arguments[_key];
113
100
  }
114
- };
101
+ if (originOnChange) {
102
+ originOnChange.apply(void 0, args);
103
+ }
104
+ var next = args[0];
105
+ if (_this.props.getValueFromEvent) {
106
+ var _this$props;
107
+ next = (_this$props = _this.props).getValueFromEvent.apply(_this$props, args);
108
+ }
109
+ setFieldsValue(_defineProperty({}, name, next));
110
+ }), _objectSpread2));
111
+ if (isForwardRefComponent(children)) {
112
+ controlled.ref = function(componentInstance) {
113
+ var originRef = children.ref;
114
+ if (originRef) {
115
+ if (typeof originRef === "function") {
116
+ originRef(componentInstance);
117
+ }
118
+ if ("current" in originRef) {
119
+ originRef.current = componentInstance;
120
+ }
121
+ }
122
+ _this.componentRef = componentInstance;
123
+ };
124
+ }
125
+ return controlled;
115
126
  });
116
- _defineProperty(_assertThisInitialized(_this), "onStoreChange", function() {
117
- _this.forceUpdate();
127
+ _defineProperty(_assertThisInitialized(_this), "refresh", function() {
128
+ _this.setState(function(_ref) {
129
+ var resetCount = _ref.resetCount;
130
+ return {
131
+ resetCount: resetCount + 1
132
+ };
133
+ });
134
+ });
135
+ _defineProperty(_assertThisInitialized(_this), "onStoreChange", function(type) {
136
+ if (type === "reset") {
137
+ _this.refresh();
138
+ } else {
139
+ _this.forceUpdate();
140
+ }
118
141
  });
119
142
  _defineProperty(_assertThisInitialized(_this), "renderLayout", function(childNode) {
120
- var _this$context$errList, _this$context$errList2;
121
- var _defaultProps$_this$p = _objectSpread(_objectSpread({}, defaultProps), _this.props), label = _defaultProps$_this$p.label, name = _defaultProps$_this$p.name, _defaultProps$_this$p2 = _defaultProps$_this$p.rules, rules = _defaultProps$_this$p2 === void 0 ? [{
122
- required: false,
123
- message: ""
124
- }] : _defaultProps$_this$p2, className = _defaultProps$_this$p.className, labelWidth = _defaultProps$_this$p.labelWidth, errorMessageAlign = _defaultProps$_this$p.errorMessageAlign, showErrorLine = _defaultProps$_this$p.showErrorLine, showErrorMessage = _defaultProps$_this$p.showErrorMessage;
125
- var item = ((_this$context$errList = _this.context.errList) === null || _this$context$errList === void 0 ? void 0 : _this$context$errList.length) > 0 && ((_this$context$errList2 = _this.context.errList) === null || _this$context$errList2 === void 0 ? void 0 : _this$context$errList2.filter(function(item2) {
143
+ var _this$context$errors, _this$context$errors2;
144
+ var _defaultProps$_this$p = _objectSpread(_objectSpread({}, defaultProps), _this.props), label = _defaultProps$_this$p.label, name = _defaultProps$_this$p.name, required = _defaultProps$_this$p.required, className = _defaultProps$_this$p.className, style = _defaultProps$_this$p.style, errorMessageAlign = _defaultProps$_this$p.errorMessageAlign;
145
+ var item = ((_this$context$errors = _this.context.errors) === null || _this$context$errors === void 0 ? void 0 : _this$context$errors.length) > 0 && ((_this$context$errors2 = _this.context.errors) === null || _this$context$errors2 === void 0 ? void 0 : _this$context$errors2.filter(function(item2) {
126
146
  return item2.field === name;
127
147
  }));
128
- var starPositon = _this.context.starPositon;
129
- var renderStar = rules.length > 0 && rules[0].required && React__default.createElement("i", {
148
+ var starPosition = _this.context.starPosition;
149
+ var renderStar = required && React__default.createElement("i", {
130
150
  className: "required"
131
151
  });
132
- var renderLabel = starPositon === "Right" ? React__default.createElement(React__default.Fragment, null, label, renderStar) : React__default.createElement(React__default.Fragment, null, renderStar, label);
152
+ var renderLabel = React__default.createElement(React__default.Fragment, null, starPosition === "left" ? renderStar : null, label, starPosition === "right" ? renderStar : null);
133
153
  return React__default.createElement(Cell, {
134
- className: "nut-form-item ".concat(className)
135
- }, label ? React__default.createElement("div", {
136
- className: "nut-cell__title nut-form-item__label",
137
- style: {
138
- width: _this.pxCheck(labelWidth)
154
+ className: "nut-form-item ".concat(className),
155
+ style,
156
+ onClick: function onClick(e) {
157
+ return _this.props.onClick && _this.props.onClick(e, _this.componentRef);
139
158
  }
159
+ }, label ? React__default.createElement("div", {
160
+ className: "nut-cell__title nut-form-item__label"
140
161
  }, renderLabel) : null, React__default.createElement("div", {
141
162
  className: "nut-cell__value nut-form-item__body"
142
163
  }, React__default.createElement("div", {
@@ -148,9 +169,10 @@ var FormItem = /* @__PURE__ */ function(_React__default$Compo) {
148
169
  }
149
170
  }, item[0].message)));
150
171
  });
151
- _defineProperty(_assertThisInitialized(_this), "pxCheck", function(value) {
152
- return Number.isNaN(Number(value)) ? String(value) : "".concat(value, "px");
153
- });
172
+ _this.componentRef = React__default.createRef();
173
+ _this.state = {
174
+ resetCount: 1
175
+ };
154
176
  return _this;
155
177
  }
156
178
  _createClass(FormItem2, [{
@@ -168,23 +190,19 @@ var FormItem = /* @__PURE__ */ function(_React__default$Compo) {
168
190
  }, {
169
191
  key: "render",
170
192
  value: function render() {
171
- var _this$props = this.props, children = _this$props.children, initialValue = _this$props.initialValue;
172
- var c = Array.isArray(children) ? children[0] : children;
173
- var restCNode = c;
174
- if (initialValue) {
175
- restCNode = React__default.cloneElement(c, {
176
- defaultValue: initialValue
177
- });
178
- }
179
- var returnChildNode = React__default.cloneElement(restCNode, this.getControlled(restCNode));
180
- return this.renderLayout(returnChildNode);
193
+ var children = this.props.children;
194
+ var child = Array.isArray(children) ? children[0] : children;
195
+ var returnChildNode = React__default.cloneElement(child, this.getControlled(child));
196
+ return React__default.createElement(React__default.Fragment, {
197
+ key: this.state.resetCount
198
+ }, this.renderLayout(returnChildNode));
181
199
  }
182
200
  }]);
183
201
  return FormItem2;
184
202
  }(React__default.Component);
185
203
  _defineProperty(FormItem, "defaultProps", defaultProps);
186
- _defineProperty(FormItem, "contextType", FormItemContext);
204
+ _defineProperty(FormItem, "contextType", Context);
187
205
  export {
188
- FormItemContext as F,
189
- FormItem as a
206
+ Context as C,
207
+ FormItem as F
190
208
  };
@@ -1,6 +1,4 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- var _excluded = ["className", "style", "title", "icon", "active", "activeColor", "inactiveColor", "index", "handleClick"];
4
2
  function ownKeys(object, enumerableOnly) {
5
3
  var keys = Object.keys(object);
6
4
  if (Object.getOwnPropertySymbols) {
@@ -31,28 +29,39 @@ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
31
29
  icon: null,
32
30
  active: false,
33
31
  index: 0,
34
- handleClick: function handleClick(idx) {
35
- }
32
+ value: "",
33
+ dot: false,
34
+ max: 99,
35
+ top: "0",
36
+ right: "5"
36
37
  });
37
38
  var TabbarItem = function TabbarItem2(props) {
38
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, style = _defaultProps$props.style, title = _defaultProps$props.title, icon = _defaultProps$props.icon, active = _defaultProps$props.active, activeColor = _defaultProps$props.activeColor, inactiveColor = _defaultProps$props.inactiveColor, index = _defaultProps$props.index, handleClick2 = _defaultProps$props.handleClick, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
39
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, style = _defaultProps$props.style, title = _defaultProps$props.title, icon = _defaultProps$props.icon, active = _defaultProps$props.active, activeColor = _defaultProps$props.activeColor, inactiveColor = _defaultProps$props.inactiveColor, index = _defaultProps$props.index, value = _defaultProps$props.value, dot = _defaultProps$props.dot, max = _defaultProps$props.max, top = _defaultProps$props.top, right = _defaultProps$props.right, handleClick = _defaultProps$props.handleClick;
39
40
  var classPrefix = "nut-tabbar-item";
40
41
  var tabbarItemClass = classNames(className, classPrefix, _defineProperty({}, "".concat(classPrefix, "-active"), active));
41
42
  var boxPrefix = "".concat(classPrefix, "__icon-box");
42
43
  var titleClass = classNames(boxPrefix, "".concat(boxPrefix, "-nav"), _defineProperty({}, "".concat(boxPrefix, "-large"), !icon));
44
+ var badgeProps = {
45
+ value,
46
+ dot,
47
+ max,
48
+ top,
49
+ right,
50
+ color: activeColor
51
+ };
43
52
  return React__default.createElement("div", {
44
53
  className: tabbarItemClass,
45
54
  style: _objectSpread({
46
55
  color: active ? activeColor : inactiveColor
47
56
  }, style),
48
57
  onClick: function onClick() {
49
- return handleClick2(index);
58
+ return handleClick(index);
50
59
  }
51
- }, icon ? React__default.createElement(React__default.Fragment, null, React__default.createElement(Badge, _objectSpread({}, rest), React__default.createElement("div", {
60
+ }, icon ? React__default.createElement(React__default.Fragment, null, React__default.createElement(Badge, _objectSpread({}, badgeProps), React__default.createElement("div", {
52
61
  className: boxPrefix
53
62
  }, icon)), React__default.createElement("div", {
54
63
  className: titleClass
55
- }, title)) : React__default.createElement(Badge, _objectSpread({}, rest), React__default.createElement("div", {
64
+ }, title)) : React__default.createElement(Badge, _objectSpread({}, badgeProps), React__default.createElement("div", {
56
65
  className: titleClass
57
66
  }, title)));
58
67
  };
@@ -15,6 +15,7 @@ export interface ButtonProps extends BasicComponent {
15
15
  disabled: boolean;
16
16
  icon: React.ReactNode;
17
17
  id: string;
18
+ nativeType: 'submit' | 'reset' | 'button';
18
19
  onClick: (e: MouseEvent) => void;
19
20
  }
20
21
  export declare const Button: React.ForwardRefExoticComponent<Partial<ButtonProps> & React.RefAttributes<HTMLButtonElement>>;
@@ -9,7 +9,6 @@ export interface ElevatorProps extends BasicComponent {
9
9
  spaceHeight: number;
10
10
  titleHeight: number;
11
11
  showKeys: boolean;
12
- children: React.ReactNode;
13
12
  onClickItem: (key: string, item: ElevatorData) => void;
14
13
  onClickIndex: (key: string) => void;
15
14
  }
@@ -9,7 +9,6 @@ export interface ElevatorProps extends BasicComponent {
9
9
  spaceHeight: number;
10
10
  titleHeight: number;
11
11
  showKeys: boolean;
12
- children: React.ReactNode;
13
12
  onClickItem: (key: string, item: ElevatorData) => void;
14
13
  onClickIndex: (key: string) => void;
15
14
  }
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const Context: import("react").Context<{
3
+ [key: string]: any;
4
+ }>;
@@ -1,9 +1,16 @@
1
- import React, { FunctionComponent } from 'react';
2
- import { useForm } from './useForm';
1
+ import React, { FunctionComponent, ReactNode } from 'react';
2
+ import { useForm } from './useform';
3
3
  import { BasicComponent } from '@/utils/typings';
4
4
  import { FormItem } from '../formitem/formitem';
5
- import { BaseForm } from './types';
6
- export interface FormProps extends BasicComponent, BaseForm {
5
+ export interface FormProps extends BasicComponent {
6
+ footer: ReactNode;
7
+ initialValues: any;
8
+ name: string;
9
+ form: any;
10
+ labelPosition: 'top' | 'left' | 'right';
11
+ starPosition: 'left' | 'right';
12
+ onFinish: (values: any) => void;
13
+ onFinishFailed: (values: any, errorFields: any) => void;
7
14
  }
8
15
  export declare const Form: FunctionComponent<Partial<FormProps> & React.HTMLAttributes<HTMLFormElement>> & {
9
16
  Item: typeof FormItem;
@@ -1,9 +1,19 @@
1
- import React, { FunctionComponent } from 'react';
1
+ import React, { FunctionComponent, ReactNode } from 'react';
2
2
  import { BasicComponent } from '@/utils/typings';
3
- import FormItem from '@/packages/formitem/index.taro';
4
- import { BaseForm } from './types';
5
- export interface FormProps extends BasicComponent, BaseForm {
3
+ import { useForm } from './useform.taro';
4
+ import { FormItem } from '../formitem/formitem.taro';
5
+ export interface FormProps extends BasicComponent {
6
+ footer: ReactNode;
7
+ initialValues: any;
8
+ name: string;
9
+ form: any;
10
+ labelPosition: 'top' | 'left' | 'right';
11
+ starPosition: 'left' | 'right';
12
+ onFinish: (values: any) => void;
13
+ onFinishFailed: (values: any, errorFields: any) => void;
6
14
  }
7
15
  export declare const Form: FunctionComponent<Partial<FormProps> & React.HTMLAttributes<HTMLFormElement>> & {
8
16
  Item: typeof FormItem;
17
+ } & {
18
+ useForm: typeof useForm;
9
19
  };
@@ -1,2 +1,3 @@
1
1
  import { Form } from './form';
2
+ export type { FormItemRuleWithoutValidator, StoreValue, NamePath, FormInstance, FieldEntity, } from './types';
2
3
  export default Form;
@@ -1,2 +1,3 @@
1
1
  import { Form } from './form.taro';
2
+ export type { FormItemRuleWithoutValidator, StoreValue, NamePath, FormInstance, FieldEntity, } from './types';
2
3
  export default Form;
@@ -1,63 +1,18 @@
1
- export interface BaseForm {
2
- /**
3
- * 经 Form.useForm() 创建的 form 控制实例,不提供时会自动创建
4
- */
5
- form: any;
6
- /**
7
- * label的位置
8
- * 可选值 top/left/right
9
- */
10
- labelPosition: string | number;
11
- /**
12
- * 表单分组名称
13
- */
14
- formGroupTitle: string;
15
- starPositon: string;
16
- /**
17
- * 表单校验成功回调
18
- */
19
- onFinish: (obj: object) => void;
20
- /**
21
- * 表单校验失败回调
22
- */
23
- onFinishFailed: (value: []) => void;
24
- }
25
1
  export interface FormItemRuleWithoutValidator {
26
2
  [key: string]: any;
27
3
  regex?: RegExp;
28
4
  required?: boolean;
29
5
  message?: string;
30
6
  }
31
- export interface FormItemRule extends FormItemRuleWithoutValidator {
32
- validator?: (value: any, ruleCfg: FormItemRuleWithoutValidator) => boolean | string | Promise<boolean | string>;
33
- }
34
- export interface BaseFormField {
35
- /**
36
- * 字段名
37
- */
38
- name: string;
39
- /**
40
- * label 标签的文本
41
- */
42
- label: string;
43
- /**
44
- * 校验规则,设置字段的校验逻辑
45
- */
46
- rules: FormItemRule[];
47
- /**
48
- * 是否禁用表单项
49
- */
50
- disabled: boolean;
51
- }
52
- export type StoreValue = string | number;
7
+ export type StoreValue = any;
53
8
  export type NamePath = string | number;
54
9
  export interface Callbacks<Values = any> {
55
10
  onValuesChange?: (values: Values) => void;
56
11
  onFinish?: (values: Values) => void;
57
- onFinishFailed?: (Values: Values) => void;
12
+ onFinishFailed?: (values: Values, errorFields: any) => void;
58
13
  }
59
14
  export interface Store {
60
- [name: string]: StoreValue;
15
+ [name: string]: any;
61
16
  }
62
17
  export interface FormInstance<Values = any> {
63
18
  registerField: (entity: FieldEntity) => () => void;
@@ -68,7 +23,7 @@ export interface FormInstance<Values = any> {
68
23
  setCallback: (callbacks: Callbacks) => void;
69
24
  }
70
25
  export interface FieldEntity {
71
- onStoreChange: () => void;
26
+ onStoreChange: (type?: string) => void;
72
27
  getNamePath: () => NamePath;
73
28
  props: {
74
29
  name: NamePath;
@@ -77,6 +32,3 @@ export interface FieldEntity {
77
32
  initialValue?: any;
78
33
  };
79
34
  }
80
- export interface IDescriptor {
81
- [name: string]: string;
82
- }
@@ -1,33 +1,34 @@
1
1
  import React from 'react';
2
2
  import { BaseFormField } from './types';
3
- import { FormItemContext } from './formitemcontext';
3
+ import { Context } from '../form/context';
4
4
  import { BasicComponent } from '@/utils/typings';
5
5
  type TextAlign = 'start' | 'end' | 'left' | 'right' | 'center' | 'justify' | 'match-parent';
6
6
  export interface FormItemProps extends BasicComponent, BaseFormField {
7
- labelWidth: string | number;
7
+ required: boolean;
8
+ initialValue: any;
9
+ trigger: string;
10
+ valuePropName: string;
11
+ getValueFromEvent: (...args: any) => any;
12
+ onClick: (event: React.MouseEvent, componentRef: React.MutableRefObject<any>) => void;
8
13
  errorMessageAlign: TextAlign;
9
- showErrorLine: boolean;
10
- showErrorMessage: boolean;
11
- initialValue: string;
12
14
  }
13
15
  declare const defaultProps: FormItemProps;
14
16
  export type FieldProps = typeof defaultProps & Partial<BaseFormField>;
15
- export declare class FormItem extends React.Component<FieldProps> {
17
+ export declare class FormItem extends React.Component<FieldProps, {
18
+ resetCount: number;
19
+ }> {
16
20
  static defaultProps: FormItemProps;
17
21
  static contextType: any;
18
- context: React.ContextType<typeof FormItemContext>;
22
+ context: React.ContextType<typeof Context>;
19
23
  private cancelRegister;
20
- private isInitialValue;
24
+ private componentRef;
25
+ constructor(props: FieldProps);
21
26
  componentDidMount(): void;
22
27
  componentWillUnmount(): void;
23
- getControlled: (children: React.ReactElement) => {
24
- value: any;
25
- defaultValue: any;
26
- onChange: (event: React.ChangeEvent<HTMLInputElement> | number | string | string[]) => void;
27
- };
28
- onStoreChange: () => void;
28
+ getControlled: (children: React.ReactElement) => any;
29
+ refresh: () => void;
30
+ onStoreChange: (type?: string) => void;
29
31
  renderLayout: (childNode: React.ReactNode) => JSX.Element;
30
- pxCheck: (value: string | number) => string;
31
32
  render(): JSX.Element;
32
33
  }
33
34
  export {};
@@ -1,30 +1,34 @@
1
1
  import React from 'react';
2
2
  import { BaseFormField } from './types';
3
- import { FormItemContext } from './formitemcontext';
3
+ import { Context } from '../form/context';
4
4
  import { BasicComponent } from '@/utils/typings';
5
5
  type TextAlign = 'start' | 'end' | 'left' | 'right' | 'center' | 'justify' | 'match-parent';
6
6
  export interface FormItemProps extends BasicComponent, BaseFormField {
7
- labelWidth: string | number;
7
+ required: boolean;
8
+ initialValue: any;
9
+ trigger: string;
10
+ valuePropName: string;
11
+ getValueFromEvent: (...args: any) => any;
12
+ onClick: (event: React.MouseEvent, componentRef: React.MutableRefObject<any>) => void;
8
13
  errorMessageAlign: TextAlign;
9
- showErrorLine: boolean;
10
- showErrorMessage: boolean;
11
14
  }
12
15
  declare const defaultProps: FormItemProps;
13
16
  export type FieldProps = typeof defaultProps & Partial<BaseFormField>;
14
- export declare class FormItem extends React.Component<FieldProps> {
17
+ export declare class FormItem extends React.Component<FieldProps, {
18
+ resetCount: number;
19
+ }> {
15
20
  static defaultProps: FormItemProps;
16
21
  static contextType: any;
17
- context: React.ContextType<typeof FormItemContext>;
22
+ context: React.ContextType<typeof Context>;
18
23
  private cancelRegister;
24
+ private componentRef;
25
+ constructor(props: FieldProps);
19
26
  componentDidMount(): void;
20
27
  componentWillUnmount(): void;
21
- getControlled: (children: React.ReactElement) => {
22
- value: any;
23
- onChange: (event: React.ChangeEvent<HTMLInputElement> | number | string | string[]) => void;
24
- };
25
- onStoreChange: () => void;
28
+ getControlled: (children: React.ReactElement) => any;
29
+ refresh: () => void;
30
+ onStoreChange: (type?: string) => void;
26
31
  renderLayout: (childNode: React.ReactNode) => JSX.Element;
27
- pxCheck: (value: string | number) => string;
28
32
  render(): JSX.Element;
29
33
  }
30
34
  export {};
@@ -1,2 +1,3 @@
1
1
  import { FormItem } from './formitem';
2
+ export type { FormItemRuleWithoutValidator, FormItemRule, FormInstance, } from './types';
2
3
  export default FormItem;
@@ -1,2 +1,3 @@
1
1
  import { FormItem } from './formitem.taro';
2
+ export type { FormItemRuleWithoutValidator, FormItemRule, FormInstance, } from './types';
2
3
  export default FormItem;