@nutui/nutui-react 3.0.0 → 3.0.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.
Files changed (207) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/hooks/use-client-rect.js +1 -0
  3. package/dist/cjs/packages/actionsheet/style/style.css +12 -0
  4. package/dist/cjs/packages/address/style/style.css +12 -0
  5. package/dist/cjs/packages/calendar/style/style.css +12 -0
  6. package/dist/cjs/packages/cascader/style/style.css +12 -0
  7. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  8. package/dist/cjs/packages/datepicker/datepicker.js +8 -6
  9. package/dist/cjs/packages/datepicker/style/style.css +82 -0
  10. package/dist/cjs/packages/datepickerview/datepickerview.d.ts +3 -0
  11. package/dist/cjs/packages/datepickerview/datepickerview.js +118 -0
  12. package/dist/cjs/packages/datepickerview/index.d.ts +3 -0
  13. package/dist/cjs/packages/{subsidenavbar → datepickerview}/index.js +2 -2
  14. package/dist/cjs/packages/datepickerview/style/datepickerview.scss +4 -0
  15. package/dist/cjs/packages/datepickerview/style/index.js +2 -0
  16. package/dist/cjs/packages/datepickerview/style/style.css +78 -0
  17. package/dist/cjs/packages/datepickerview/types.d.ts +15 -0
  18. package/dist/cjs/packages/datepickerview/types.js +4 -0
  19. package/dist/cjs/packages/dialog/dialogwrap.js +3 -0
  20. package/dist/cjs/packages/dialog/style/dialog.scss +0 -1
  21. package/dist/cjs/packages/dialog/style/style.css +0 -1
  22. package/dist/cjs/packages/drag/style/drag.scss +1 -0
  23. package/dist/cjs/packages/drag/style/style.css +1 -0
  24. package/dist/cjs/packages/fixednav/fixednav.js +20 -14
  25. package/dist/cjs/packages/fixednav/style/fixednav.scss +0 -15
  26. package/dist/cjs/packages/fixednav/style/style.css +0 -14
  27. package/dist/cjs/packages/form/__tests__/merge.spec.d.ts +1 -0
  28. package/dist/cjs/packages/form/__tests__/merge.spec.js +545 -0
  29. package/dist/cjs/packages/form/form.d.ts +2 -0
  30. package/dist/cjs/packages/form/form.js +9 -2
  31. package/dist/cjs/packages/form/index.d.ts +2 -1
  32. package/dist/cjs/packages/form/index.js +1 -0
  33. package/dist/cjs/packages/form/style/form.scss +0 -66
  34. package/dist/cjs/packages/form/style/style.css +31 -21
  35. package/dist/cjs/packages/form/types.d.ts +2 -1
  36. package/dist/cjs/packages/form/useform.d.ts +2 -1
  37. package/dist/cjs/packages/form/useform.js +342 -278
  38. package/dist/cjs/packages/formitem/formitem.d.ts +1 -0
  39. package/dist/cjs/packages/formitem/formitem.js +55 -44
  40. package/dist/cjs/packages/formitem/style/formitem.scss +101 -21
  41. package/dist/cjs/packages/formitem/style/style.css +89 -12
  42. package/dist/cjs/packages/imagepreview/style/style.css +12 -0
  43. package/dist/cjs/packages/input/style/input.scss +6 -4
  44. package/dist/cjs/packages/input/style/style.css +4 -0
  45. package/dist/cjs/packages/numberkeyboard/style/style.css +12 -0
  46. package/dist/cjs/packages/nutui.react.build.d.ts +11 -15
  47. package/dist/cjs/packages/nutui.react.build.js +8 -16
  48. package/dist/cjs/packages/nutui.react.d.ts +16 -22
  49. package/dist/cjs/packages/nutui.react.js +13 -23
  50. package/dist/cjs/packages/nutui.react.scss.d.ts +5 -7
  51. package/dist/cjs/packages/nutui.react.scss.js +5 -7
  52. package/dist/cjs/packages/overlay/style/overlay.scss +0 -4
  53. package/dist/cjs/packages/picker/style/index.js +1 -0
  54. package/dist/cjs/packages/picker/style/style.css +82 -0
  55. package/dist/cjs/packages/popover/style/style.css +12 -0
  56. package/dist/cjs/packages/popup/style/popup.scss +12 -4
  57. package/dist/cjs/packages/popup/style/style.css +12 -0
  58. package/dist/cjs/packages/shortpassword/shortpassword.js +5 -7
  59. package/dist/cjs/packages/shortpassword/style/shortpassword.scss +10 -0
  60. package/dist/cjs/packages/shortpassword/style/style.css +21 -0
  61. package/dist/cjs/packages/swipe/style/style.css +3 -3
  62. package/dist/cjs/packages/swipe/style/swipe.scss +7 -3
  63. package/dist/cjs/packages/tabbar/style/style.css +6 -0
  64. package/dist/cjs/packages/tabbaritem/style/style.css +6 -0
  65. package/dist/cjs/packages/tabbaritem/style/tabbaritem.scss +6 -0
  66. package/dist/cjs/packages/timeselect/style/style.css +12 -0
  67. package/dist/cjs/packages/tour/style/style.css +12 -0
  68. package/dist/cjs/utils/get-rect-by-taro.d.ts +1 -1
  69. package/dist/cjs/utils/get-rect-by-taro.js +4 -1
  70. package/dist/cjs/utils/get-system-info.js +4 -5
  71. package/dist/cjs/utils/merge.d.ts +14 -0
  72. package/dist/cjs/utils/merge.js +98 -0
  73. package/dist/cjs/utils/platform-taro.js +4 -5
  74. package/dist/cjs/utils/to-array.d.ts +1 -0
  75. package/dist/cjs/utils/to-array.js +18 -0
  76. package/dist/es/hooks/use-client-rect.js +1 -0
  77. package/dist/es/packages/actionsheet/style/style.css +12 -0
  78. package/dist/es/packages/address/style/style.css +12 -0
  79. package/dist/es/packages/calendar/style/style.css +12 -0
  80. package/dist/es/packages/cascader/style/style.css +12 -0
  81. package/dist/es/packages/configprovider/types.d.ts +1 -1
  82. package/dist/es/packages/datepicker/datepicker.js +8 -6
  83. package/dist/es/packages/datepicker/style/style.css +82 -0
  84. package/dist/es/packages/datepickerview/datepickerview.d.ts +3 -0
  85. package/dist/es/packages/datepickerview/datepickerview.js +106 -0
  86. package/dist/es/packages/datepickerview/index.d.ts +3 -0
  87. package/dist/es/packages/datepickerview/index.js +2 -0
  88. package/dist/es/packages/datepickerview/style/datepickerview.scss +4 -0
  89. package/dist/es/packages/datepickerview/style/index.js +2 -0
  90. package/dist/es/packages/datepickerview/style/style.css +78 -0
  91. package/dist/es/packages/datepickerview/types.d.ts +15 -0
  92. package/dist/es/packages/datepickerview/types.js +1 -0
  93. package/dist/es/packages/dialog/dialogwrap.js +3 -0
  94. package/dist/es/packages/dialog/style/dialog.scss +0 -1
  95. package/dist/es/packages/dialog/style/style.css +0 -1
  96. package/dist/es/packages/drag/style/drag.scss +1 -0
  97. package/dist/es/packages/drag/style/style.css +1 -0
  98. package/dist/es/packages/fixednav/fixednav.js +20 -14
  99. package/dist/es/packages/fixednav/style/fixednav.scss +0 -15
  100. package/dist/es/packages/fixednav/style/style.css +0 -14
  101. package/dist/es/packages/form/__tests__/merge.spec.d.ts +1 -0
  102. package/dist/es/packages/form/__tests__/merge.spec.js +541 -0
  103. package/dist/es/packages/form/form.d.ts +10 -0
  104. package/dist/es/packages/form/form.js +9 -2
  105. package/dist/es/packages/form/index.d.ts +2 -1
  106. package/dist/es/packages/form/index.js +2 -1
  107. package/dist/es/packages/form/style/form.scss +0 -66
  108. package/dist/es/packages/form/style/style.css +31 -21
  109. package/dist/es/packages/form/types.d.ts +2 -1
  110. package/dist/es/packages/form/useform.d.ts +2 -1
  111. package/dist/es/packages/form/useform.js +340 -279
  112. package/dist/es/packages/formitem/formitem.d.ts +1 -0
  113. package/dist/es/packages/formitem/formitem.js +55 -44
  114. package/dist/es/packages/formitem/style/formitem.scss +101 -21
  115. package/dist/es/packages/formitem/style/style.css +89 -12
  116. package/dist/es/packages/imagepreview/style/style.css +12 -0
  117. package/dist/es/packages/input/style/input.scss +6 -4
  118. package/dist/es/packages/input/style/style.css +4 -0
  119. package/dist/es/packages/numberkeyboard/style/style.css +12 -0
  120. package/dist/es/packages/nutui.react.build.d.ts +11 -15
  121. package/dist/es/packages/nutui.react.build.js +11 -15
  122. package/dist/es/packages/overlay/style/overlay.scss +0 -4
  123. package/dist/es/packages/picker/style/index.js +1 -0
  124. package/dist/es/packages/picker/style/style.css +82 -0
  125. package/dist/es/packages/popover/style/style.css +12 -0
  126. package/dist/es/packages/popup/style/popup.scss +12 -4
  127. package/dist/es/packages/popup/style/style.css +12 -0
  128. package/dist/es/packages/shortpassword/shortpassword.js +5 -7
  129. package/dist/es/packages/shortpassword/style/shortpassword.scss +10 -0
  130. package/dist/es/packages/shortpassword/style/style.css +21 -0
  131. package/dist/es/packages/swipe/style/style.css +3 -3
  132. package/dist/es/packages/swipe/style/swipe.scss +7 -3
  133. package/dist/es/packages/tabbar/style/style.css +6 -0
  134. package/dist/es/packages/tabbaritem/style/style.css +6 -0
  135. package/dist/es/packages/tabbaritem/style/tabbaritem.scss +6 -0
  136. package/dist/es/packages/timeselect/style/style.css +12 -0
  137. package/dist/es/packages/tour/style/style.css +12 -0
  138. package/dist/es/utils/get-rect-by-taro.d.ts +1 -1
  139. package/dist/es/utils/get-rect-by-taro.js +4 -1
  140. package/dist/es/utils/get-system-info.js +4 -4
  141. package/dist/es/utils/merge.d.ts +14 -0
  142. package/dist/es/utils/merge.js +68 -0
  143. package/dist/es/utils/platform-taro.js +4 -4
  144. package/dist/es/utils/to-array.d.ts +1 -0
  145. package/dist/es/utils/to-array.js +8 -0
  146. package/dist/nutui.react.umd.js +1483 -1416
  147. package/dist/style.css +1 -1
  148. package/dist/style.scss +33 -35
  149. package/dist/styles/variables-jmapp.scss +0 -50
  150. package/dist/styles/variables-jrkf.scss +0 -50
  151. package/dist/styles/variables.scss +0 -49
  152. package/package.json +1 -1
  153. package/dist/cjs/packages/sidenavbar/context.d.ts +0 -1
  154. package/dist/cjs/packages/sidenavbar/context.js +0 -12
  155. package/dist/cjs/packages/sidenavbar/index.d.ts +0 -3
  156. package/dist/cjs/packages/sidenavbar/index.js +0 -12
  157. package/dist/cjs/packages/sidenavbar/sidenavbar.d.ts +0 -14
  158. package/dist/cjs/packages/sidenavbar/sidenavbar.js +0 -70
  159. package/dist/cjs/packages/sidenavbar/style/index.js +0 -2
  160. package/dist/cjs/packages/sidenavbar/style/sidenavbar.scss +0 -89
  161. package/dist/cjs/packages/sidenavbar/style/style.css +0 -443
  162. package/dist/cjs/packages/sidenavbar/utils.d.ts +0 -3
  163. package/dist/cjs/packages/sidenavbar/utils.js +0 -23
  164. package/dist/cjs/packages/sidenavbaritem/index.d.ts +0 -3
  165. package/dist/cjs/packages/sidenavbaritem/index.js +0 -12
  166. package/dist/cjs/packages/sidenavbaritem/sidenavbaritem.d.ts +0 -11
  167. package/dist/cjs/packages/sidenavbaritem/sidenavbaritem.js +0 -34
  168. package/dist/cjs/packages/sidenavbaritem/style/index.js +0 -1
  169. package/dist/cjs/packages/sidenavbaritem/style/sidenavbaritem.scss +0 -13
  170. package/dist/cjs/packages/sidenavbaritem/style/style.css +0 -14
  171. package/dist/cjs/packages/subsidenavbar/index.d.ts +0 -3
  172. package/dist/cjs/packages/subsidenavbar/style/css.js +0 -1
  173. package/dist/cjs/packages/subsidenavbar/style/index.js +0 -1
  174. package/dist/cjs/packages/subsidenavbar/style/style.css +0 -20
  175. package/dist/cjs/packages/subsidenavbar/style/subsidenavbar.scss +0 -26
  176. package/dist/cjs/packages/subsidenavbar/subsidenavbar.d.ts +0 -13
  177. package/dist/cjs/packages/subsidenavbar/subsidenavbar.js +0 -88
  178. package/dist/es/packages/sidenavbar/context.d.ts +0 -1
  179. package/dist/es/packages/sidenavbar/context.js +0 -2
  180. package/dist/es/packages/sidenavbar/index.d.ts +0 -3
  181. package/dist/es/packages/sidenavbar/index.js +0 -2
  182. package/dist/es/packages/sidenavbar/sidenavbar.d.ts +0 -38
  183. package/dist/es/packages/sidenavbar/sidenavbar.js +0 -58
  184. package/dist/es/packages/sidenavbar/style/css.js +0 -1
  185. package/dist/es/packages/sidenavbar/style/index.js +0 -2
  186. package/dist/es/packages/sidenavbar/style/sidenavbar.scss +0 -89
  187. package/dist/es/packages/sidenavbar/style/style.css +0 -443
  188. package/dist/es/packages/sidenavbar/utils.d.ts +0 -3
  189. package/dist/es/packages/sidenavbar/utils.js +0 -14
  190. package/dist/es/packages/sidenavbaritem/index.d.ts +0 -3
  191. package/dist/es/packages/sidenavbaritem/index.js +0 -2
  192. package/dist/es/packages/sidenavbaritem/sidenavbaritem.d.ts +0 -11
  193. package/dist/es/packages/sidenavbaritem/sidenavbaritem.js +0 -23
  194. package/dist/es/packages/sidenavbaritem/style/css.js +0 -1
  195. package/dist/es/packages/sidenavbaritem/style/index.js +0 -1
  196. package/dist/es/packages/sidenavbaritem/style/sidenavbaritem.scss +0 -13
  197. package/dist/es/packages/sidenavbaritem/style/style.css +0 -14
  198. package/dist/es/packages/subsidenavbar/index.d.ts +0 -3
  199. package/dist/es/packages/subsidenavbar/index.js +0 -2
  200. package/dist/es/packages/subsidenavbar/style/css.js +0 -1
  201. package/dist/es/packages/subsidenavbar/style/index.js +0 -1
  202. package/dist/es/packages/subsidenavbar/style/style.css +0 -20
  203. package/dist/es/packages/subsidenavbar/style/subsidenavbar.scss +0 -26
  204. package/dist/es/packages/subsidenavbar/subsidenavbar.d.ts +0 -13
  205. package/dist/es/packages/subsidenavbar/subsidenavbar.js +0 -77
  206. /package/dist/cjs/packages/{sidenavbar → datepickerview}/style/css.js +0 -0
  207. /package/dist/{cjs/packages/sidenavbaritem → es/packages/datepickerview}/style/css.js +0 -0
@@ -32,6 +32,7 @@ export declare class FormItem extends React.Component<Partial<FormItemProps>, {
32
32
  getControlled: (children: React.ReactElement) => any;
33
33
  refresh: () => void;
34
34
  onStoreChange: (type?: string) => void;
35
+ getClassNameWithDirection(className: string): string;
35
36
  renderLayout: (childNode: React.ReactNode) => React.JSX.Element;
36
37
  render(): React.JSX.Element;
37
38
  }
@@ -23,6 +23,7 @@ var _context = require("../form/context");
23
23
  var _cell = /*#__PURE__*/ _interop_require_default._(require("../cell"));
24
24
  var _typings = require("../../utils/typings");
25
25
  var _isforwardrefcomponent = require("../../utils/is-forward-ref-component");
26
+ var _toarray = require("../../utils/to-array");
26
27
  var _useform = require("../form/useform");
27
28
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
28
29
  required: false,
@@ -35,7 +36,6 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
35
36
  }
36
37
  ],
37
38
  errorMessageAlign: 'left',
38
- validateTrigger: 'onChange',
39
39
  shouldUpdate: false,
40
40
  noStyle: false
41
41
  });
@@ -50,15 +50,19 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
50
50
  props
51
51
  ]), (0, _define_property._)(_this, "cancelRegister", void 0), (0, _define_property._)(_this, "componentRef", void 0), (0, _define_property._)(_this, "eventOff", void 0), (0, _define_property._)(_this, "getControlled", function(children) {
52
52
  var _children_props;
53
- var _this_context = _this.context, setFieldsValue = _this_context.setFieldsValue, getFieldValue = _this_context.getFieldValue;
54
- var dispatch = _this.context.getInternal(_useform.SECRET).dispatch;
53
+ var _this_context_formInstance = _this.context.formInstance, setFieldsValue = _this_context_formInstance.setFieldsValue, getFieldValue = _this_context_formInstance.getFieldValue;
54
+ var dispatch = _this.context.formInstance.getInternal(_useform.SECRET).dispatch;
55
55
  var _this_props = _this.props, _this_props_name = _this_props.name, name = _this_props_name === void 0 ? '' : _this_props_name;
56
56
  if (children === null || children === void 0 ? void 0 : (_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.defaultValue) {
57
- console.warn('通过 initialValue 设置初始值');
57
+ if (process.env.NODE_ENV !== 'production') {
58
+ console.warn('[NutUI] FormItem:', '请通过 initialValue 设置初始值,而不是 defaultValue');
59
+ }
58
60
  }
59
61
  var fieldValue = getFieldValue(name);
60
62
  var _obj;
61
- var controlled = (0, _object_spread_props._)((0, _object_spread._)({}, children.props), (_obj = {}, (0, _define_property._)(_obj, _this.props.valuePropName || 'value', fieldValue !== undefined ? fieldValue : _this.props.initialValue), (0, _define_property._)(_obj, _this.props.trigger || 'onChange', function() {
63
+ var controlled = (0, _object_spread_props._)((0, _object_spread._)({}, children.props), (_obj = {
64
+ className: children.props.className
65
+ }, (0, _define_property._)(_obj, _this.props.valuePropName || 'value', fieldValue !== undefined ? fieldValue : _this.props.initialValue), (0, _define_property._)(_obj, _this.props.trigger || 'onChange', function() {
62
66
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
63
67
  args[_key] = arguments[_key];
64
68
  }
@@ -72,33 +76,27 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
72
76
  var _this_props;
73
77
  next = (_this_props = _this.props).getValueFromEvent.apply(_this_props, (0, _to_consumable_array._)(args));
74
78
  }
75
- setFieldsValue((0, _define_property._)({}, name, next), false);
79
+ setFieldsValue((0, _define_property._)({}, name, next));
76
80
  }), _obj));
77
81
  var validateTrigger = _this.props.validateTrigger;
78
- var validateTriggers = [
79
- _this.props.trigger || 'onChange'
80
- ];
81
- if (validateTrigger) {
82
- validateTriggers = typeof validateTrigger === 'string' ? [
83
- validateTrigger
84
- ] : (0, _to_consumable_array._)(validateTrigger);
85
- validateTriggers.forEach(function(trigger) {
86
- var originTrigger = controlled[trigger];
87
- controlled[trigger] = function() {
88
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
89
- args[_key] = arguments[_key];
90
- }
91
- if (originTrigger) {
92
- originTrigger.apply(void 0, (0, _to_consumable_array._)(args));
93
- }
94
- if (_this.props.rules && _this.props.rules.length) {
95
- dispatch({
96
- name: _this.props.name
97
- });
98
- }
99
- };
100
- });
101
- }
82
+ var mergedValidateTrigger = validateTrigger || _this.context.validateTrigger;
83
+ var validateTriggers = (0, _toarray.toArray)(mergedValidateTrigger);
84
+ validateTriggers.forEach(function(trigger) {
85
+ var originTrigger = controlled[trigger];
86
+ controlled[trigger] = function() {
87
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
88
+ args[_key] = arguments[_key];
89
+ }
90
+ if (originTrigger) {
91
+ originTrigger.apply(void 0, (0, _to_consumable_array._)(args));
92
+ }
93
+ if (_this.props.rules && _this.props.rules.length) {
94
+ dispatch({
95
+ name: _this.props.name
96
+ });
97
+ }
98
+ };
99
+ });
102
100
  if ((0, _isforwardrefcomponent.isForwardRefComponent)(children)) {
103
101
  controlled.ref = function(componentInstance) {
104
102
  var originRef = children.ref;
@@ -123,7 +121,7 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
123
121
  });
124
122
  }), (0, _define_property._)(_this, "onStoreChange", function(type) {
125
123
  if (type === 'reset') {
126
- _this.context.errors[_this.props.name] = [];
124
+ _this.context.formInstance.errors[_this.props.name] = [];
127
125
  _this.refresh();
128
126
  } else {
129
127
  _this.forceUpdate();
@@ -133,23 +131,25 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
133
131
  var requiredInRules = rules === null || rules === void 0 ? void 0 : rules.some(function(rule) {
134
132
  return rule.required;
135
133
  });
136
- var item = name ? _this.context.errors[name] : [];
137
- var starPosition = _this.context.starPosition;
138
- var renderStar = (required || requiredInRules) && /*#__PURE__*/ _react.default.createElement("i", {
139
- className: "required"
140
- });
141
- var renderLabel = /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, starPosition === 'left' ? renderStar : null, label, starPosition === 'right' ? renderStar : null);
134
+ var item = name ? _this.context.formInstance.errors[name] : [];
135
+ var starPosition = _this.context.formInstance.starPosition;
136
+ var renderStar = (required || requiredInRules) && /*#__PURE__*/ _react.default.createElement("div", {
137
+ className: "nut-form-item-label-required required"
138
+ }, "*");
139
+ var renderLabel = /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("span", {
140
+ className: "nut-form-item-labeltxt"
141
+ }, starPosition === 'left' ? renderStar : null, label), starPosition === 'right' ? renderStar : null);
142
142
  return /*#__PURE__*/ _react.default.createElement(_cell.default, {
143
- className: "nut-form-item ".concat(className),
143
+ className: "".concat(_this.getClassNameWithDirection('nut-form-item'), " ").concat(className),
144
144
  style: style,
145
145
  align: align,
146
146
  onClick: function onClick(e) {
147
147
  return _this.props.onClick && _this.props.onClick(e, _this.componentRef);
148
148
  }
149
149
  }, label ? /*#__PURE__*/ _react.default.createElement("div", {
150
- className: "nut-cell-title nut-form-item-label"
150
+ className: "nut-cell-title ".concat(_this.getClassNameWithDirection('nut-form-item-label'))
151
151
  }, renderLabel) : null, /*#__PURE__*/ _react.default.createElement("div", {
152
- className: "nut-cell-value nut-form-item-body"
152
+ className: "nut-cell-value ".concat(_this.getClassNameWithDirection('nut-form-item-body'))
153
153
  }, /*#__PURE__*/ _react.default.createElement("div", {
154
154
  className: "nut-form-item-body-slots"
155
155
  }, childNode), item && item.length > 0 && /*#__PURE__*/ _react.default.createElement("div", {
@@ -170,12 +170,12 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
170
170
  key: "componentDidMount",
171
171
  value: function componentDidMount() {
172
172
  // Form设置initialValues时的处理
173
- var _this_context_getInternal = this.context.getInternal(_useform.SECRET), _this_context_getInternal_store = _this_context_getInternal.store, store = _this_context_getInternal_store === void 0 ? {} : _this_context_getInternal_store, setInitialValues = _this_context_getInternal.setInitialValues;
173
+ var _this_context_formInstance_getInternal = this.context.formInstance.getInternal(_useform.SECRET), _this_context_formInstance_getInternal_store = _this_context_formInstance_getInternal.store, store = _this_context_formInstance_getInternal_store === void 0 ? {} : _this_context_formInstance_getInternal_store, setInitialValues = _this_context_formInstance_getInternal.setInitialValues;
174
174
  if (this.props.initialValue && this.props.name && !Object.keys(store).includes(this.props.name)) {
175
175
  setInitialValues((0, _object_spread_props._)((0, _object_spread._)({}, store), (0, _define_property._)({}, this.props.name, this.props.initialValue)), true);
176
176
  }
177
177
  // 注册组件实例到FormStore
178
- var _this_context_getInternal1 = this.context.getInternal(_useform.SECRET), registerField = _this_context_getInternal1.registerField, registerUpdate = _this_context_getInternal1.registerUpdate;
178
+ var _this_context_formInstance_getInternal1 = this.context.formInstance.getInternal(_useform.SECRET), registerField = _this_context_formInstance_getInternal1.registerField, registerUpdate = _this_context_formInstance_getInternal1.registerUpdate;
179
179
  this.cancelRegister = registerField(this);
180
180
  // 这里需要增加事件监听,因为此实现属于依赖触发
181
181
  this.eventOff = registerUpdate(this, this.props.shouldUpdate);
@@ -192,6 +192,15 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
192
192
  }
193
193
  }
194
194
  },
195
+ {
196
+ key: "getClassNameWithDirection",
197
+ value: function getClassNameWithDirection(className) {
198
+ if (className && this.context.labelPosition) {
199
+ return "".concat(className, " ").concat(className, "-").concat(this.context.labelPosition);
200
+ }
201
+ return className;
202
+ }
203
+ },
195
204
  {
196
205
  key: "render",
197
206
  value: function render() {
@@ -201,11 +210,13 @@ var FormItem = /*#__PURE__*/ function(_superClass) {
201
210
  if (!this.props.shouldUpdate) {
202
211
  returnChildNode = /*#__PURE__*/ _react.default.cloneElement(child, this.getControlled(child));
203
212
  } else {
204
- returnChildNode = child(this.context);
213
+ returnChildNode = child(this.context.formInstance);
205
214
  }
206
215
  return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {
207
216
  key: this.state.resetCount
208
- }, this.props.noStyle ? returnChildNode : this.renderLayout(returnChildNode));
217
+ }, /*#__PURE__*/ _react.default.createElement("div", {
218
+ className: this.context.disabled ? 'nut-form-item-disabled' : ''
219
+ }, this.props.noStyle ? returnChildNode : this.renderLayout(returnChildNode)));
209
220
  }
210
221
  }
211
222
  ]);
@@ -1,40 +1,41 @@
1
1
  .nut-form-item {
2
2
  display: flex;
3
- align-items: center;
4
- padding: 4px 12px;
3
+ line-height: unset;
5
4
 
6
- &.error {
7
- &.line {
8
- &::before {
9
- border-bottom: 1px solid $form-item-error-line-color;
10
- transform: scaleX(1);
11
- transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
12
- }
13
- }
5
+ &-disabled {
6
+ opacity: 0.4;
7
+ pointer-events: none;
14
8
  }
15
9
 
16
10
  &-label {
11
+ display: flex;
12
+ flex-direction: row;
17
13
  font-size: $form-item-label-font-size;
18
14
  font-weight: normal;
19
15
  width: $form-item-label-width;
20
16
  margin-right: $form-item-label-margin-right;
21
- flex: none !important;
22
- display: inline-block !important;
17
+ flex: 0 0 auto;
23
18
  word-wrap: break-word;
24
19
  text-align: $form-item-label-text-align;
20
+ line-height: unset;
21
+ }
25
22
 
26
- .required {
27
- &::before {
28
- content: '*';
29
- color: $form-item-required-color;
30
- margin-right: $form-item-required-margin-right;
31
- }
32
- }
23
+ &-label-required {
24
+ color: $form-item-required-color;
25
+ margin-right: $form-item-required-margin-right;
26
+ display: block;
27
+ position: absolute;
28
+ left: -10px;
29
+ }
30
+
31
+ .nut-form-item-labeltxt {
32
+ position: relative;
33
+ font-size: 12px;
33
34
  }
34
35
 
35
36
  &-body {
36
37
  flex: 1;
37
- display: flex !important;
38
+ display: flex;
38
39
  flex-direction: column;
39
40
 
40
41
  &-slots {
@@ -45,6 +46,10 @@
45
46
  border: 0;
46
47
  }
47
48
 
49
+ .nut-input-container {
50
+ height: auto;
51
+ }
52
+
48
53
  .nut-input-text {
49
54
  font-size: $form-item-body-font-size;
50
55
  text-align: $form-item-body-input-text-align;
@@ -61,7 +66,7 @@
61
66
  }
62
67
 
63
68
  .nut-textarea {
64
- padding: 0 !important;
69
+ padding: 0;
65
70
 
66
71
  .nut-textarea-textarea {
67
72
  font: inherit;
@@ -77,6 +82,7 @@
77
82
  }
78
83
  }
79
84
  }
85
+
80
86
  [dir='rtl'] .nut-form-item,
81
87
  .nut-rtl .nut-form-item {
82
88
  &-label {
@@ -91,22 +97,96 @@
91
97
  }
92
98
  }
93
99
  }
100
+
94
101
  &-body {
95
102
  &-slots {
96
103
  text-align: right;
104
+
97
105
  .nut-icon-ArrowRight,
98
106
  .nut-icon-ArrowLeft {
99
107
  transform: rotateY(180deg);
100
108
  }
109
+
101
110
  .nut-input-text {
102
111
  text-align: right;
103
112
  }
113
+
104
114
  .nut-textarea-textarea {
105
115
  text-align: right;
106
116
  }
107
117
  }
108
118
  }
119
+
109
120
  &-tips {
110
121
  text-align: right;
111
122
  }
112
123
  }
124
+
125
+ /* position */
126
+
127
+ .nut-form-item-label-right {
128
+ justify-content: flex-end;
129
+ padding-right: 24px;
130
+ white-space: nowrap;
131
+ }
132
+
133
+ .nut-form-item-label-left {
134
+ position: relative;
135
+ padding-left: 12px;
136
+ white-space: nowrap;
137
+ }
138
+
139
+ .nut-form-item-label-left-required {
140
+ display: block;
141
+ line-height: 1.5;
142
+ position: absolute;
143
+ left: 0.1em;
144
+ }
145
+
146
+ .nut-form-item-top {
147
+ flex-direction: column;
148
+ align-items: flex-start;
149
+ white-space: nowrap;
150
+ }
151
+
152
+ .nut-form-item-label-top {
153
+ display: block;
154
+ padding-bottom: 4px;
155
+ padding-right: 24px;
156
+ }
157
+
158
+ .nut-form-item-body-top {
159
+ margin-left: 0;
160
+ width: 100%;
161
+ }
162
+
163
+ [dir='rtl'] .form-layout-right .nut-form-item-label,
164
+ .nut-rtl .form-layout-right .nut-form-item-label {
165
+ text-align: left;
166
+ padding-right: 0;
167
+ padding-left: 24px;
168
+ }
169
+
170
+ [dir='rtl'] .form-layout-left .nut-form-item-label,
171
+ .nut-rtl .form-layout-left .nut-form-item-label {
172
+ text-align: right;
173
+ padding-left: 0;
174
+ padding-right: 12px;
175
+
176
+ .required {
177
+ left: auto;
178
+ right: 0.1em;
179
+ }
180
+ }
181
+
182
+ [dir='rtl'] .form-layout-top .nut-form-item-label,
183
+ .nut-rtl .form-layout-top .nut-form-item-label {
184
+ padding-right: 0;
185
+ padding-left: 24px;
186
+ }
187
+
188
+ [dir='rtl'] .form-layout-top .nut-form-item-body,
189
+ .nut-rtl .form-layout-top .nut-form-item-body {
190
+ margin-left: 0;
191
+ margin-right: 0;
192
+ }
@@ -4,32 +4,38 @@
4
4
  /* #endif */
5
5
  .nut-form-item {
6
6
  display: flex;
7
- align-items: center;
8
- padding: 4px 12px;
7
+ line-height: unset;
9
8
  }
10
- .nut-form-item.error.line::before {
11
- border-bottom: 1px solid var(--nutui-form-item-error-line-color, var(--nutui-color-primary, #ff0f23));
12
- transform: scaleX(1);
13
- transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
9
+ .nut-form-item-disabled {
10
+ opacity: 0.4;
11
+ pointer-events: none;
14
12
  }
15
13
  .nut-form-item-label {
14
+ display: flex;
15
+ flex-direction: row;
16
16
  font-size: var(--nutui-form-item-label-font-size, var(--nutui-font-size-base, 14px));
17
17
  font-weight: normal;
18
18
  width: var(--nutui-form-item-label-width, 90px);
19
19
  margin-right: var(--nutui-form-item-label-margin-right, 10px);
20
- flex: none !important;
21
- display: inline-block !important;
20
+ flex: 0 0 auto;
22
21
  word-wrap: break-word;
23
22
  text-align: var(--nutui-form-item-label-text-align, left);
23
+ line-height: unset;
24
24
  }
25
- .nut-form-item-label .required::before {
26
- content: "*";
25
+ .nut-form-item-label-required {
27
26
  color: var(--nutui-form-item-required-color, var(--nutui-color-primary, #ff0f23));
28
27
  margin-right: var(--nutui-form-item-required-margin-right, 4px);
28
+ display: block;
29
+ position: absolute;
30
+ left: -10px;
31
+ }
32
+ .nut-form-item .nut-form-item-labeltxt {
33
+ position: relative;
34
+ font-size: 12px;
29
35
  }
30
36
  .nut-form-item-body {
31
37
  flex: 1;
32
- display: flex !important;
38
+ display: flex;
33
39
  flex-direction: column;
34
40
  }
35
41
  .nut-form-item-body-slots {
@@ -39,6 +45,9 @@
39
45
  padding: 0;
40
46
  border: 0;
41
47
  }
48
+ .nut-form-item-body-slots .nut-input-container {
49
+ height: auto;
50
+ }
42
51
  .nut-form-item-body-slots .nut-input-text {
43
52
  font-size: var(--nutui-form-item-body-font-size, var(--nutui-font-size-base, 14px));
44
53
  text-align: var(--nutui-form-item-body-input-text-align, left);
@@ -53,7 +62,7 @@
53
62
  min-height: 24px;
54
63
  }
55
64
  .nut-form-item-body-slots .nut-textarea {
56
- padding: 0 !important;
65
+ padding: 0;
57
66
  }
58
67
  .nut-form-item-body-slots .nut-textarea .nut-textarea-textarea {
59
68
  font: inherit;
@@ -97,4 +106,72 @@
97
106
  [dir=rtl] .nut-form-item-tips,
98
107
  .nut-rtl .nut-form-item-tips {
99
108
  text-align: right;
109
+ }
110
+
111
+ /* position */
112
+ .nut-form-item-label-right {
113
+ justify-content: flex-end;
114
+ padding-right: 24px;
115
+ white-space: nowrap;
116
+ }
117
+
118
+ .nut-form-item-label-left {
119
+ position: relative;
120
+ padding-left: 12px;
121
+ white-space: nowrap;
122
+ }
123
+
124
+ .nut-form-item-label-left-required {
125
+ display: block;
126
+ line-height: 1.5;
127
+ position: absolute;
128
+ left: 0.1em;
129
+ }
130
+
131
+ .nut-form-item-top {
132
+ flex-direction: column;
133
+ align-items: flex-start;
134
+ white-space: nowrap;
135
+ }
136
+
137
+ .nut-form-item-label-top {
138
+ display: block;
139
+ padding-bottom: 4px;
140
+ padding-right: 24px;
141
+ }
142
+
143
+ .nut-form-item-body-top {
144
+ margin-left: 0;
145
+ width: 100%;
146
+ }
147
+
148
+ [dir=rtl] .form-layout-right .nut-form-item-label,
149
+ .nut-rtl .form-layout-right .nut-form-item-label {
150
+ text-align: left;
151
+ padding-right: 0;
152
+ padding-left: 24px;
153
+ }
154
+
155
+ [dir=rtl] .form-layout-left .nut-form-item-label,
156
+ .nut-rtl .form-layout-left .nut-form-item-label {
157
+ text-align: right;
158
+ padding-left: 0;
159
+ padding-right: 12px;
160
+ }
161
+ [dir=rtl] .form-layout-left .nut-form-item-label .required,
162
+ .nut-rtl .form-layout-left .nut-form-item-label .required {
163
+ left: auto;
164
+ right: 0.1em;
165
+ }
166
+
167
+ [dir=rtl] .form-layout-top .nut-form-item-label,
168
+ .nut-rtl .form-layout-top .nut-form-item-label {
169
+ padding-right: 0;
170
+ padding-left: 24px;
171
+ }
172
+
173
+ [dir=rtl] .form-layout-top .nut-form-item-body,
174
+ .nut-rtl .form-layout-top .nut-form-item-body {
175
+ margin-left: 0;
176
+ margin-right: 0;
100
177
  }
@@ -238,6 +238,9 @@
238
238
  from {
239
239
  transform: translate3d(0, -100%, 0);
240
240
  }
241
+ to {
242
+ transform: translate3d(0, 0%, 0);
243
+ }
241
244
  }
242
245
  @keyframes popup-slide-top-exit {
243
246
  to {
@@ -259,6 +262,9 @@
259
262
  from {
260
263
  transform: translate3d(100%, 0, 0);
261
264
  }
265
+ to {
266
+ transform: translate3d(0%, 0, 0);
267
+ }
262
268
  }
263
269
  @keyframes popup-slide-right-exit {
264
270
  to {
@@ -280,6 +286,9 @@
280
286
  from {
281
287
  transform: translate3d(0, 100%, 0);
282
288
  }
289
+ to {
290
+ transform: translate3d(0, 0%, 0);
291
+ }
283
292
  }
284
293
  @keyframes slide-bottom-exit {
285
294
  to {
@@ -301,6 +310,9 @@
301
310
  from {
302
311
  transform: translate3d(-100%, 0, 0);
303
312
  }
313
+ to {
314
+ transform: translate3d(0%, 0, 0);
315
+ }
304
316
  }
305
317
  @keyframes popup-slide-left-exit {
306
318
  to {
@@ -8,6 +8,12 @@
8
8
  font-size: $input-font-size;
9
9
  box-sizing: border-box;
10
10
 
11
+ .nut-input-native .weui-input::placeholder,
12
+ &-placeholder {
13
+ color: rgb(117, 117, 117);
14
+ font-size: $input-font-size;
15
+ }
16
+
11
17
  .nut-icon {
12
18
  color: $color-text-disabled;
13
19
  width: 14px;
@@ -52,7 +58,3 @@
52
58
  -webkit-text-fill-color: $color-text-disabled;
53
59
  }
54
60
  }
55
-
56
- .nut-input-clear {
57
- // flex: 0;
58
- }
@@ -12,6 +12,10 @@
12
12
  font-size: var(--nutui-input-font-size, var(--nutui-font-size-base, 14px));
13
13
  box-sizing: border-box;
14
14
  }
15
+ .nut-input .nut-input-native .weui-input::placeholder, .nut-input-placeholder {
16
+ color: rgb(117, 117, 117);
17
+ font-size: var(--nutui-input-font-size, var(--nutui-font-size-base, 14px));
18
+ }
15
19
  .nut-input .nut-icon {
16
20
  color: var(--nutui-color-text-disabled, #c2c4cc);
17
21
  width: 14px;
@@ -238,6 +238,9 @@
238
238
  from {
239
239
  transform: translate3d(0, -100%, 0);
240
240
  }
241
+ to {
242
+ transform: translate3d(0, 0%, 0);
243
+ }
241
244
  }
242
245
  @keyframes popup-slide-top-exit {
243
246
  to {
@@ -259,6 +262,9 @@
259
262
  from {
260
263
  transform: translate3d(100%, 0, 0);
261
264
  }
265
+ to {
266
+ transform: translate3d(0%, 0, 0);
267
+ }
262
268
  }
263
269
  @keyframes popup-slide-right-exit {
264
270
  to {
@@ -280,6 +286,9 @@
280
286
  from {
281
287
  transform: translate3d(0, 100%, 0);
282
288
  }
289
+ to {
290
+ transform: translate3d(0, 0%, 0);
291
+ }
283
292
  }
284
293
  @keyframes slide-bottom-exit {
285
294
  to {
@@ -301,6 +310,9 @@
301
310
  from {
302
311
  transform: translate3d(-100%, 0, 0);
303
312
  }
313
+ to {
314
+ transform: translate3d(0%, 0, 0);
315
+ }
304
316
  }
305
317
  @keyframes popup-slide-left-exit {
306
318
  to {