1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports["default"] = void 0;
|
7 |
|
8 | var _react = _interopRequireDefault(require("react"));
|
9 |
|
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
11 |
|
12 | var _classnames = _interopRequireDefault(require("classnames"));
|
13 |
|
14 | var _grid = _interopRequireDefault(require("../grid"));
|
15 |
|
16 | var _util = require("../util");
|
17 |
|
18 | var _error = _interopRequireDefault(require("./error"));
|
19 |
|
20 | var _enhance = require("./enhance");
|
21 |
|
22 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
23 |
|
24 | function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
25 |
|
26 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
27 |
|
28 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
29 |
|
30 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
31 |
|
32 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
33 |
|
34 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
35 |
|
36 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
37 |
|
38 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
39 |
|
40 | function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
41 |
|
42 | function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
43 |
|
44 | function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
45 |
|
46 | function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
47 |
|
48 | function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
49 |
|
50 | function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
51 |
|
52 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
53 |
|
54 | var Row = _grid["default"].Row,
|
55 | Col = _grid["default"].Col;
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 | var Item = function (_React$Component) {
|
62 | _inherits(Item, _React$Component);
|
63 |
|
64 | var _super = _createSuper(Item);
|
65 |
|
66 | function Item() {
|
67 | _classCallCheck(this, Item);
|
68 |
|
69 | return _super.apply(this, arguments);
|
70 | }
|
71 |
|
72 | _createClass(Item, [{
|
73 | key: "getNames",
|
74 |
|
75 | |
76 |
|
77 |
|
78 | value: function getNames() {
|
79 | var children = _react["default"].Children.toArray(this.props.children);
|
80 |
|
81 | return children.filter(function (c) {
|
82 | return c.props && ('name' in c.props || 'data-meta' in c.props);
|
83 | }).map(function (c) {
|
84 | return c.props.name || c.props.id;
|
85 | });
|
86 | }
|
87 | }, {
|
88 | key: "getHelper",
|
89 | value: function getHelper() {
|
90 | var help = this.props.help;
|
91 | var _formField = this.context._formField;
|
92 | return _react["default"].createElement(_error["default"], {
|
93 | name: help === undefined ? this.getNames() : undefined,
|
94 | field: _formField
|
95 | }, help);
|
96 | }
|
97 | }, {
|
98 | key: "getState",
|
99 | value: function getState() {
|
100 | var validateState = this.props.validateState;
|
101 |
|
102 | if (validateState) {
|
103 | return validateState;
|
104 | }
|
105 |
|
106 | if (this.context._formField) {
|
107 | var getState = this.context._formField.getState;
|
108 | var names = this.getNames();
|
109 |
|
110 | if (!names.length) {
|
111 | return '';
|
112 | }
|
113 |
|
114 |
|
115 | return getState(names[0]);
|
116 | }
|
117 |
|
118 | return undefined;
|
119 | }
|
120 | }, {
|
121 | key: "getSize",
|
122 | value: function getSize() {
|
123 | return this.props.size || this.context._formSize;
|
124 | }
|
125 | }, {
|
126 | key: "getItemLabel",
|
127 | value: function getItemLabel() {
|
128 | var _classNames;
|
129 |
|
130 | var _this$props = this.props,
|
131 | id = _this$props.id,
|
132 | required = _this$props.required,
|
133 | _this$props$asterisk = _this$props.asterisk,
|
134 | asterisk = _this$props$asterisk === void 0 ? required : _this$props$asterisk,
|
135 | label = _this$props.label,
|
136 | labelCol = _this$props.labelCol,
|
137 | wrapperCol = _this$props.wrapperCol,
|
138 | prefix = _this$props.prefix,
|
139 | labelAlign = _this$props.labelAlign,
|
140 | labelTextAlign = _this$props.labelTextAlign;
|
141 |
|
142 | if (!label) {
|
143 | return null;
|
144 | }
|
145 |
|
146 | var ele = _react["default"].createElement("label", {
|
147 | htmlFor: id || this.getNames()[0],
|
148 | required: asterisk,
|
149 | key: "label"
|
150 | }, label);
|
151 |
|
152 | var cls = (0, _classnames["default"])((_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "form-item-label"), true), _defineProperty(_classNames, "".concat(prefix, "left"), labelTextAlign === 'left'), _classNames));
|
153 |
|
154 | if ((wrapperCol || labelCol) && labelAlign !== 'top') {
|
155 | return _react["default"].createElement(Col, _extends({}, labelCol, {
|
156 | className: cls
|
157 | }), ele);
|
158 | }
|
159 |
|
160 | return _react["default"].createElement("div", {
|
161 | className: cls
|
162 | }, ele);
|
163 | }
|
164 | }, {
|
165 | key: "getItemWrapper",
|
166 | value: function getItemWrapper() {
|
167 | var _this = this;
|
168 |
|
169 | var _this$props2 = this.props,
|
170 | hasFeedback = _this$props2.hasFeedback,
|
171 | labelCol = _this$props2.labelCol,
|
172 | wrapperCol = _this$props2.wrapperCol,
|
173 | children = _this$props2.children,
|
174 | extra = _this$props2.extra,
|
175 | labelAlign = _this$props2.labelAlign,
|
176 | prefix = _this$props2.prefix;
|
177 | var state = this.getState();
|
178 | var childrenProps = {
|
179 | size: this.getSize()
|
180 | };
|
181 |
|
182 | if (state && (state === 'error' || hasFeedback)) {
|
183 | childrenProps.state = state;
|
184 | }
|
185 |
|
186 | if (labelAlign === 'inset') {
|
187 | childrenProps.label = this.getItemLabel();
|
188 | }
|
189 |
|
190 | var childrenNode = children;
|
191 |
|
192 | if (typeof children === 'function' && this.context._formField) {
|
193 | childrenNode = children(this.context._formField.getValues());
|
194 | }
|
195 |
|
196 | var ele = _react["default"].Children.map(childrenNode, function (child) {
|
197 | if (child && typeof child.type === 'function' && child.type._typeMark !== 'form_item' && child.type._typeMark !== 'form_error') {
|
198 | var extraProps = childrenProps;
|
199 |
|
200 | if (_this.context._formField && 'name' in child.props && !('data-meta' in child.props)) {
|
201 | extraProps = _this.context._formField.init(child.props.name, _objectSpread(_objectSpread({}, (0, _enhance.getFieldInitCfg)(_this.props, child.type.displayName)), {}, {
|
202 | props: _objectSpread(_objectSpread({}, child.props), {}, {
|
203 | ref: child.ref
|
204 | })
|
205 | }), childrenProps);
|
206 | } else {
|
207 | extraProps = _extends({}, child.props, extraProps);
|
208 | }
|
209 |
|
210 | return _react["default"].cloneElement(child, extraProps);
|
211 | }
|
212 |
|
213 | return child;
|
214 | });
|
215 |
|
216 | var help = this.getHelper();
|
217 |
|
218 | if ((wrapperCol || labelCol) && labelAlign !== 'top') {
|
219 | return _react["default"].createElement(Col, _extends({}, wrapperCol, {
|
220 | className: "".concat(prefix, "form-item-control"),
|
221 | key: "item"
|
222 | }), ele, help, extra ? _react["default"].createElement("div", {
|
223 | className: "".concat(prefix, "form-item-extra")
|
224 | }, extra) : null);
|
225 | }
|
226 |
|
227 | return _react["default"].createElement("div", {
|
228 | className: "".concat(prefix, "form-item-control")
|
229 | }, ele, help, extra ? _react["default"].createElement("div", {
|
230 | className: "".concat(prefix, "form-item-extra")
|
231 | }, extra) : null);
|
232 | }
|
233 | }, {
|
234 | key: "render",
|
235 | value: function render() {
|
236 | var _classNames2;
|
237 |
|
238 | var _this$props3 = this.props,
|
239 | className = _this$props3.className,
|
240 | labelAlign = _this$props3.labelAlign,
|
241 | style = _this$props3.style,
|
242 | prefix = _this$props3.prefix,
|
243 | wrapperCol = _this$props3.wrapperCol,
|
244 | labelCol = _this$props3.labelCol,
|
245 | help = _this$props3.help;
|
246 | var state = this.getState();
|
247 | var size = this.getSize();
|
248 | var itemClassName = (0, _classnames["default"])((_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefix, "form-item"), true), _defineProperty(_classNames2, "".concat(prefix).concat(labelAlign), labelAlign), _defineProperty(_classNames2, "has-".concat(state), !!state), _defineProperty(_classNames2, 'has-help', !!help), _defineProperty(_classNames2, "".concat(prefix).concat(size), !!size), _defineProperty(_classNames2, "".concat(className), !!className), _classNames2));
|
249 |
|
250 | var Tag = (wrapperCol || labelCol) && labelAlign !== 'top' ? Row : 'div';
|
251 | var label = labelAlign === 'inset' ? null : this.getItemLabel();
|
252 | return _react["default"].createElement(Tag, _extends({}, _util.obj.pickOthers(Item.propTypes, this.props), {
|
253 | className: itemClassName,
|
254 | style: style
|
255 | }), label, this.getItemWrapper());
|
256 | }
|
257 | }]);
|
258 |
|
259 | return Item;
|
260 | }(_react["default"].Component);
|
261 |
|
262 | exports["default"] = Item;
|
263 |
|
264 | _defineProperty(Item, "propTypes", {
|
265 | |
266 |
|
267 |
|
268 | prefix: _propTypes["default"].string,
|
269 | rtl: _propTypes["default"].bool,
|
270 |
|
271 | |
272 |
|
273 |
|
274 | label: _propTypes["default"].node,
|
275 |
|
276 | |
277 |
|
278 |
|
279 | labelCol: _propTypes["default"].object,
|
280 |
|
281 | |
282 |
|
283 |
|
284 | wrapperCol: _propTypes["default"].object,
|
285 |
|
286 | |
287 |
|
288 |
|
289 | help: _propTypes["default"].node,
|
290 |
|
291 | |
292 |
|
293 |
|
294 | extra: _propTypes["default"].node,
|
295 |
|
296 | |
297 |
|
298 |
|
299 |
|
300 | validateState: _propTypes["default"].oneOf(['error', 'success', 'loading']),
|
301 |
|
302 | |
303 |
|
304 |
|
305 | hasFeedback: _propTypes["default"].bool,
|
306 |
|
307 |
|
308 | |
309 |
|
310 |
|
311 | style: _propTypes["default"].object,
|
312 | id: _propTypes["default"].string,
|
313 |
|
314 | |
315 |
|
316 |
|
317 | children: _propTypes["default"].oneOfType([_propTypes["default"].node, _propTypes["default"].func]),
|
318 |
|
319 | |
320 |
|
321 |
|
322 | size: _propTypes["default"].oneOf(['small', 'medium']),
|
323 |
|
324 | |
325 |
|
326 |
|
327 |
|
328 | labelAlign: _propTypes["default"].oneOf(['top', 'left', 'inset']),
|
329 |
|
330 | |
331 |
|
332 |
|
333 |
|
334 | labelTextAlign: _propTypes["default"].oneOf(['left', 'right']),
|
335 |
|
336 | |
337 |
|
338 |
|
339 | className: _propTypes["default"].string,
|
340 |
|
341 | |
342 |
|
343 |
|
344 | required: _propTypes["default"].bool,
|
345 |
|
346 | |
347 |
|
348 |
|
349 | asterisk: _propTypes["default"].bool,
|
350 |
|
351 | |
352 |
|
353 |
|
354 | requiredMessage: _propTypes["default"].string,
|
355 |
|
356 | |
357 |
|
358 |
|
359 | requiredTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
360 |
|
361 | |
362 |
|
363 |
|
364 | min: _propTypes["default"].number,
|
365 |
|
366 | |
367 |
|
368 |
|
369 | max: _propTypes["default"].number,
|
370 |
|
371 | |
372 |
|
373 |
|
374 | minmaxMessage: _propTypes["default"].string,
|
375 |
|
376 | |
377 |
|
378 |
|
379 | minmaxTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
380 |
|
381 | |
382 |
|
383 |
|
384 | minLength: _propTypes["default"].number,
|
385 |
|
386 | |
387 |
|
388 |
|
389 | maxLength: _propTypes["default"].number,
|
390 |
|
391 | |
392 |
|
393 |
|
394 | minmaxLengthMessage: _propTypes["default"].string,
|
395 |
|
396 | |
397 |
|
398 |
|
399 | minmaxLengthTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
400 |
|
401 | |
402 |
|
403 |
|
404 | length: _propTypes["default"].number,
|
405 |
|
406 | |
407 |
|
408 |
|
409 | lengthMessage: _propTypes["default"].string,
|
410 |
|
411 | |
412 |
|
413 |
|
414 | lengthTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
415 |
|
416 | |
417 |
|
418 |
|
419 | pattern: _propTypes["default"].any,
|
420 |
|
421 | |
422 |
|
423 |
|
424 | patternMessage: _propTypes["default"].string,
|
425 |
|
426 | |
427 |
|
428 |
|
429 | patternTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
430 |
|
431 | |
432 |
|
433 |
|
434 | format: _propTypes["default"].oneOf(['number', 'email', 'url', 'tel']),
|
435 |
|
436 | |
437 |
|
438 |
|
439 | formatMessage: _propTypes["default"].string,
|
440 |
|
441 | |
442 |
|
443 |
|
444 | formatTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
445 |
|
446 | |
447 |
|
448 |
|
449 | validator: _propTypes["default"].func,
|
450 |
|
451 | |
452 |
|
453 |
|
454 | validatorTrigger: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array]),
|
455 |
|
456 | |
457 |
|
458 |
|
459 | autoValidate: _propTypes["default"].bool
|
460 | });
|
461 |
|
462 | _defineProperty(Item, "defaultProps", {
|
463 | prefix: 'next-',
|
464 | hasFeedback: false
|
465 | });
|
466 |
|
467 | _defineProperty(Item, "contextTypes", {
|
468 | _formField: _propTypes["default"].object,
|
469 | _formSize: _propTypes["default"].oneOf(['small', 'medium'])
|
470 | });
|
471 |
|
472 | _defineProperty(Item, "_typeMark", 'form_item'); |
\ | No newline at end of file |