UNPKG

6.9 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _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; };
8
9var _react = require('react');
10
11var _react2 = _interopRequireDefault(_react);
12
13var _propTypes = require('prop-types');
14
15var _propTypes2 = _interopRequireDefault(_propTypes);
16
17var _InputNumber = require('./InputNumber');
18
19var _InputNumber2 = _interopRequireDefault(_InputNumber);
20
21function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
23function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
24
25function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
26
27function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
28
29function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
30
31function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
32
33var noop = function noop() {};
34
35var propsTypes = {
36 clsfix: _propTypes2["default"].string,
37 className: _propTypes2["default"].string,
38 value: _propTypes2["default"].array,
39 onChange: _propTypes2["default"].func,
40 onBlur: _propTypes2["default"].func,
41 onFocus: _propTypes2["default"].func,
42 placeholder: _propTypes2["default"].array,
43
44 max: _propTypes2["default"].number,
45 min: _propTypes2["default"].number,
46 step: _propTypes2["default"].number,
47 precision: _propTypes2["default"].number,
48 format: _propTypes2["default"].func,
49 delay: _propTypes2["default"].number,
50 disabled: _propTypes2["default"].bool,
51 toThousands: _propTypes2["default"].bool,
52 toNumber: _propTypes2["default"].bool
53};
54
55var defaultProps = {
56 clsfix: 'u-input-number',
57 className: '',
58 value: [],
59 placeholder: [],
60 onChange: noop,
61 onBlur: noop,
62 onFocus: noop
63};
64
65var InputNumberGroup = function (_Component) {
66 _inherits(InputNumberGroup, _Component);
67
68 function InputNumberGroup(props) {
69 _classCallCheck(this, InputNumberGroup);
70
71 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
72
73 _this.onChange = function (index, v) {
74 var value = _this.state.value;
75
76 value[index] = v;
77 _this.setState({
78 value: value
79 });
80 _this.props.onChange(value);
81 };
82
83 _this.onFocus = function (index, v) {
84 var value = _this.state.value;
85
86 value[index] = v;
87 _this.setState({
88 value: value
89 });
90 _this.props.onFocus(value);
91 };
92
93 _this.onBlur = function (index, v) {
94 var value = _this.state.value;
95
96 if (index == 1) {
97 if (v < value[0]) {
98 console.warn('The second value must be greater than or equal to the first value');
99 }
100 }
101 value[index] = v;
102 _this.setState({
103 value: value
104 });
105
106 _this.props.onBlur(value);
107 };
108
109 _this.state = {
110 value: props.value || []
111 };
112 return _this;
113 }
114
115 InputNumberGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
116 if ('value' in nextProps) {
117 this.setState({
118 value: nextProps.value
119 });
120 }
121 };
122
123 InputNumberGroup.prototype.render = function render() {
124 var _this2 = this;
125
126 var _props = this.props,
127 className = _props.className,
128 clsfix = _props.clsfix,
129 value = _props.value,
130 onChange = _props.onChange,
131 placeholder = _props.placeholder,
132 split = _props.split,
133 onBlur = _props.onBlur,
134 onFocus = _props.onFocus,
135 other = _objectWithoutProperties(_props, ['className', 'clsfix', 'value', 'onChange', 'placeholder', 'split', 'onBlur', 'onFocus']);
136
137 var stateValue = this.state.value;
138
139 return _react2["default"].createElement(
140 'div',
141 { className: clsfix + '-group ' + className },
142 _react2["default"].createElement(_InputNumber2["default"], _extends({
143 onChange: function onChange(value) {
144 _this2.onChange(0, value);
145 },
146 onBlur: function onBlur(value) {
147 _this2.onBlur(0, value);
148 },
149 onFocus: function onFocus(value) {
150 _this2.onFocus(0, value);
151 },
152 value: stateValue[0],
153 placeholder: placeholder[0]
154 }, other)),
155 split ? split : _react2["default"].createElement(
156 'span',
157 { className: clsfix + '-group-split' },
158 '~'
159 ),
160 _react2["default"].createElement(_InputNumber2["default"], _extends({
161 onChange: function onChange(value) {
162 _this2.onChange(1, value);
163 },
164 onBlur: function onBlur(value) {
165 _this2.onBlur(1, value);
166 },
167 onFocus: function onFocus(value) {
168 _this2.onFocus(1, value);
169 },
170 value: stateValue[1],
171 placeholder: placeholder[1]
172 }, other))
173 );
174 };
175
176 return InputNumberGroup;
177}(_react.Component);
178
179InputNumberGroup.displayName = 'InputNumberGroup';
180
181
182InputNumberGroup.propsTypes = propsTypes;
183InputNumberGroup.defaultProps = defaultProps;
184
185exports["default"] = InputNumberGroup;
186module.exports = exports['default'];
\No newline at end of file