intelicoreact 0.0.7 → 0.0.8
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.
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +20 -19
- package/dist/Atomic/FormElements/Input/Input.js +85 -46
- package/dist/Atomic/FormElements/Input/Input.stories.js +16 -22
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +18 -43
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.scss +42 -10
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +3 -156
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +11 -9
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +3 -3
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +254 -0
- package/dist/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
- package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +121 -0
- package/dist/Atomic/UI/Arrow/Arrow.js +6 -6
- package/dist/Constants/index.constants.js +8 -0
- package/dist/Functions/inputExecutor.js +58 -0
- package/package.json +6 -5
- package/src/Atomic/FormElements/Dropdown/Dropdown.js +36 -39
- package/src/Atomic/FormElements/Input/Input.js +86 -36
- package/src/Atomic/FormElements/Input/Input.stories.js +40 -29
- package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +187 -214
- package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +42 -10
- package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +35 -123
- package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +10 -7
- package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +2 -2
- package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -1
- package/src/Atomic/FormElements/NumericInput/NumericInput.js +220 -0
- package/src/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
- package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +94 -0
- package/src/Atomic/UI/Arrow/Arrow.js +4 -4
- package/src/Constants/index.constants.js +41 -0
- package/src/Functions/inputExecutor.js +62 -0
- package/src/Functions/utils.js +4 -1
|
@@ -11,8 +11,6 @@ exports.InputDateRangeTemplate = exports.default = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
15
|
|
|
18
16
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
@@ -29,10 +27,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
29
27
|
|
|
30
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
29
|
|
|
32
|
-
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; }
|
|
33
|
-
|
|
34
|
-
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) { (0, _defineProperty2.default)(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; }
|
|
35
|
-
|
|
36
30
|
global.lng = 'en';
|
|
37
31
|
var _default = {
|
|
38
32
|
title: 'Form Elements/InputDateRange',
|
|
@@ -46,171 +40,24 @@ var _default = {
|
|
|
46
40
|
}
|
|
47
41
|
};
|
|
48
42
|
exports.default = _default;
|
|
49
|
-
var tableData = {
|
|
50
|
-
header: [{
|
|
51
|
-
id: 1,
|
|
52
|
-
label: 'state'
|
|
53
|
-
}, {
|
|
54
|
-
id: 2,
|
|
55
|
-
label: 'Tags'
|
|
56
|
-
}, {
|
|
57
|
-
id: 3,
|
|
58
|
-
label: 'status'
|
|
59
|
-
}, {
|
|
60
|
-
id: 4,
|
|
61
|
-
label: 'loanAmountApproved'
|
|
62
|
-
}, {
|
|
63
|
-
id: 5,
|
|
64
|
-
label: 'loanAmountRejected'
|
|
65
|
-
}, {
|
|
66
|
-
id: 6,
|
|
67
|
-
label: 'approveRate'
|
|
68
|
-
}, {
|
|
69
|
-
id: 7,
|
|
70
|
-
label: 'actions',
|
|
71
|
-
type: 'actions'
|
|
72
|
-
}],
|
|
73
|
-
rows: [{
|
|
74
|
-
id: 1,
|
|
75
|
-
link: {
|
|
76
|
-
label: 'CA',
|
|
77
|
-
link: '#s'
|
|
78
|
-
},
|
|
79
|
-
tags: [{
|
|
80
|
-
label: 'Label 1'
|
|
81
|
-
}],
|
|
82
|
-
status: {
|
|
83
|
-
value: '90',
|
|
84
|
-
status: 'active'
|
|
85
|
-
},
|
|
86
|
-
loanAmountApproved: {
|
|
87
|
-
value: '$70,000'
|
|
88
|
-
},
|
|
89
|
-
loanAmountRejected: {
|
|
90
|
-
value: '$30,000'
|
|
91
|
-
},
|
|
92
|
-
approveRate: {
|
|
93
|
-
value: '70%'
|
|
94
|
-
}
|
|
95
|
-
}, {
|
|
96
|
-
id: 2,
|
|
97
|
-
link: {
|
|
98
|
-
label: 'NY',
|
|
99
|
-
link: '#s'
|
|
100
|
-
},
|
|
101
|
-
advancedTags: [{
|
|
102
|
-
labelLeft: 'home',
|
|
103
|
-
labelRight: 'hoods',
|
|
104
|
-
active: 3,
|
|
105
|
-
pause: 1,
|
|
106
|
-
merchants: 5
|
|
107
|
-
}, {
|
|
108
|
-
labelRight: 'jewelry',
|
|
109
|
-
active: 3,
|
|
110
|
-
pause: 1,
|
|
111
|
-
merchants: 5
|
|
112
|
-
}, {
|
|
113
|
-
labelLeft: 'home',
|
|
114
|
-
labelRight: 'improvement',
|
|
115
|
-
active: 0,
|
|
116
|
-
pause: 0,
|
|
117
|
-
warnLeft: true,
|
|
118
|
-
warnLeftMsg: 'landerNotIncluded',
|
|
119
|
-
warnRightMsg: 'noMerchants'
|
|
120
|
-
}, {
|
|
121
|
-
labelLeft: 'home',
|
|
122
|
-
labelRight: 'hoods',
|
|
123
|
-
active: 3,
|
|
124
|
-
pause: 1,
|
|
125
|
-
merchants: 5
|
|
126
|
-
}, {
|
|
127
|
-
labelRight: 'jewelry',
|
|
128
|
-
active: 3,
|
|
129
|
-
pause: 1,
|
|
130
|
-
merchants: 5
|
|
131
|
-
}],
|
|
132
|
-
status: {
|
|
133
|
-
label: 'Active',
|
|
134
|
-
className: 'color--green-haze'
|
|
135
|
-
},
|
|
136
|
-
loanAmountApproved: {
|
|
137
|
-
value: '$3,000'
|
|
138
|
-
},
|
|
139
|
-
loanAmountRejected: {
|
|
140
|
-
value: '$7,000'
|
|
141
|
-
},
|
|
142
|
-
approveRate: {
|
|
143
|
-
value: '30%'
|
|
144
|
-
}
|
|
145
|
-
}, {
|
|
146
|
-
id: 3,
|
|
147
|
-
link: {
|
|
148
|
-
label: 'NH',
|
|
149
|
-
link: '#s'
|
|
150
|
-
},
|
|
151
|
-
tags: [{
|
|
152
|
-
label: 'Label 1'
|
|
153
|
-
}, {
|
|
154
|
-
label: 'Label 2'
|
|
155
|
-
}, {
|
|
156
|
-
label: 'Label 3'
|
|
157
|
-
}],
|
|
158
|
-
status: {
|
|
159
|
-
status: 'error'
|
|
160
|
-
},
|
|
161
|
-
loanAmountApproved: {
|
|
162
|
-
value: '$70,000'
|
|
163
|
-
},
|
|
164
|
-
loanAmountRejected: {
|
|
165
|
-
value: '$30,000'
|
|
166
|
-
},
|
|
167
|
-
approveRate: {
|
|
168
|
-
value: '70%'
|
|
169
|
-
}
|
|
170
|
-
}]
|
|
171
|
-
};
|
|
172
43
|
|
|
173
44
|
var Template = function Template(args) {
|
|
174
|
-
var _state$rows;
|
|
175
|
-
|
|
176
45
|
var dateRange = args.dateRange,
|
|
177
46
|
restOfProps = (0, _objectWithoutProperties2.default)(args, _excluded);
|
|
178
47
|
|
|
179
48
|
var _useState = (0, _react.useState)(dateRange),
|
|
180
49
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
181
50
|
value = _useState2[0],
|
|
182
|
-
setValue = _useState2[1];
|
|
183
|
-
|
|
184
|
-
var _useState3 = (0, _react.useState)(tableData),
|
|
185
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
186
|
-
state = _useState4[0],
|
|
187
|
-
setState = _useState4[1];
|
|
188
|
-
|
|
189
|
-
var rowsWithActions = state === null || state === void 0 ? void 0 : (_state$rows = state.rows) === null || _state$rows === void 0 ? void 0 : _state$rows.map(function (row) {
|
|
190
|
-
return _objectSpread(_objectSpread({}, row), {}, {
|
|
191
|
-
actions: row.isDeleted ? [{
|
|
192
|
-
type: 'undo'
|
|
193
|
-
}] : [{
|
|
194
|
-
type: 'download'
|
|
195
|
-
}, {
|
|
196
|
-
type: 'edit'
|
|
197
|
-
}, {
|
|
198
|
-
type: 'delete'
|
|
199
|
-
}]
|
|
200
|
-
});
|
|
201
|
-
}); // useEffect(() => console.log(value), [value]);
|
|
51
|
+
setValue = _useState2[1]; // useEffect(() => console.log(value), [value]);
|
|
202
52
|
// return <InputDateRange {...restOfProps} value={value} onChange={setValue} />;
|
|
203
53
|
|
|
54
|
+
|
|
204
55
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
205
56
|
className: "mb20"
|
|
206
57
|
}, /*#__PURE__*/_react.default.createElement(_InputDateRange.default, (0, _extends2.default)({}, restOfProps, {
|
|
207
58
|
value: value,
|
|
208
59
|
onChange: setValue
|
|
209
|
-
})))
|
|
210
|
-
header: state.header,
|
|
211
|
-
rows: rowsWithActions,
|
|
212
|
-
onChange: setState
|
|
213
|
-
})));
|
|
60
|
+
}))));
|
|
214
61
|
};
|
|
215
62
|
|
|
216
63
|
var InputDateRangeTemplate = Template.bind({});
|
|
@@ -384,6 +384,8 @@ var Datepicker = function Datepicker(props) {
|
|
|
384
384
|
if (code === 27) doBlur(type, e);
|
|
385
385
|
};
|
|
386
386
|
|
|
387
|
+
var startDateValue = startDate ? (0, _momentTimezone.default)(startDate).format('ll') : '';
|
|
388
|
+
var endDateValue = endDate ? (0, _momentTimezone.default)(endDate).subtract(1, 'm').format('ll') : '';
|
|
387
389
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
388
390
|
className: (0, _classnames.default)('date-picker', className)
|
|
389
391
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -392,20 +394,20 @@ var Datepicker = function Datepicker(props) {
|
|
|
392
394
|
className: "date-picker__inputs-block"
|
|
393
395
|
}, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
394
396
|
dataTest: "datepicker_start-date-input",
|
|
395
|
-
className: (0, _classnames.default)(
|
|
397
|
+
className: (0, _classnames.default)({
|
|
396
398
|
'date-picker__date-input_active': hoverStatus === 'start'
|
|
397
399
|
}),
|
|
398
|
-
value: isStartFocused ? startDateInput :
|
|
399
|
-
disabled: !startDate,
|
|
400
|
+
value: isStartFocused ? startDateInput : startDateValue,
|
|
400
401
|
onChange: function onChange(value) {
|
|
401
402
|
return setStartDateInput(handleDateInputOnChange(value));
|
|
402
403
|
},
|
|
403
404
|
onFocus: handleStartDateFocus,
|
|
405
|
+
disabled: !startDate,
|
|
404
406
|
onBlur: handleStartDateBlur,
|
|
405
407
|
onKeyUp: function onKeyUp(code, e) {
|
|
406
408
|
return handleKeyPressed(code, e, 'start');
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
+
} //ref={startDateInputRef}
|
|
410
|
+
// mask={moment(startDate).format('L').replace(/[0-9]/g, '9')}
|
|
409
411
|
|
|
410
412
|
}), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
|
|
411
413
|
dataTest: "datepicker_start-hour-select-input",
|
|
@@ -421,10 +423,10 @@ var Datepicker = function Datepicker(props) {
|
|
|
421
423
|
className: "date-picker__inputs-separator date-picker__header--gray"
|
|
422
424
|
}, "\u2014"), /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
423
425
|
dataTest: "datepicker_end-date-input",
|
|
424
|
-
className: (0, _classnames.default)(
|
|
426
|
+
className: (0, _classnames.default)({
|
|
425
427
|
'date-picker__date-input_active': hoverStatus === 'end'
|
|
426
428
|
}),
|
|
427
|
-
value: isEndFocused ? endDateInput :
|
|
429
|
+
value: isEndFocused ? endDateInput : endDateValue,
|
|
428
430
|
disabled: !endDate,
|
|
429
431
|
onChange: function onChange(value) {
|
|
430
432
|
return setEndDateInput(handleDateInputOnChange(value));
|
|
@@ -433,8 +435,8 @@ var Datepicker = function Datepicker(props) {
|
|
|
433
435
|
onBlur: handleEndDateBlur,
|
|
434
436
|
onKeyUp: function onKeyUp(code, e) {
|
|
435
437
|
return handleKeyPressed(code, e, 'end');
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
+
} //ref={endDateInputRef}
|
|
439
|
+
|
|
438
440
|
}), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
|
|
439
441
|
dataTest: "datepicker_end-hour-select-input",
|
|
440
442
|
className: (0, _classnames.default)('date-picker__hour-select-input'),
|
|
@@ -36,9 +36,9 @@ var SelectItem = function SelectItem(_ref) {
|
|
|
36
36
|
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
37
37
|
d: "M13.3333 4L5.99999 11.3333L2.66666 8",
|
|
38
38
|
stroke: "black",
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
strokeWidth: "1.33333",
|
|
40
|
+
strokeLinecap: "round",
|
|
41
|
+
strokeLinejoin: "round"
|
|
42
42
|
})), label);
|
|
43
43
|
};
|
|
44
44
|
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
21
|
+
|
|
22
|
+
var _reactFeather = require("react-feather");
|
|
23
|
+
|
|
24
|
+
var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
|
|
25
|
+
|
|
26
|
+
var _index = require("../../../Constants/index.constants");
|
|
27
|
+
|
|
28
|
+
var _inputExecutor = require("../../../Functions/inputExecutor");
|
|
29
|
+
|
|
30
|
+
require("./NumericInput.scss");
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
37
|
+
|
|
38
|
+
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) { (0, _defineProperty2.default)(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; }
|
|
39
|
+
|
|
40
|
+
var NumericInput = function NumericInput(_ref) {
|
|
41
|
+
var onChange = _ref.onChange,
|
|
42
|
+
disabled = _ref.disabled,
|
|
43
|
+
withDelete = _ref.withDelete,
|
|
44
|
+
_ref$numStep = _ref.numStep,
|
|
45
|
+
numStep = _ref$numStep === void 0 ? 1 : _ref$numStep,
|
|
46
|
+
_ref$min = _ref.min,
|
|
47
|
+
min = _ref$min === void 0 ? 0 : _ref$min,
|
|
48
|
+
max = _ref.max,
|
|
49
|
+
value = _ref.value,
|
|
50
|
+
placeholder = _ref.placeholder,
|
|
51
|
+
className = _ref.className,
|
|
52
|
+
_ref$type = _ref.type,
|
|
53
|
+
type = _ref$type === void 0 ? 'number' : _ref$type,
|
|
54
|
+
onBlur = _ref.onBlur,
|
|
55
|
+
onFocus = _ref.onFocus,
|
|
56
|
+
onKeyUp = _ref.onKeyUp,
|
|
57
|
+
mask = _ref.mask,
|
|
58
|
+
maskChar = _ref.maskChar,
|
|
59
|
+
formatChars = _ref.formatChars,
|
|
60
|
+
error = _ref.error,
|
|
61
|
+
icon = _ref.icon,
|
|
62
|
+
symbolsLimit = _ref.symbolsLimit,
|
|
63
|
+
isNotBlinkErrors = _ref.isNotBlinkErrors,
|
|
64
|
+
blinkTime = _ref.blinkTime,
|
|
65
|
+
isPriceInput = _ref.isPriceInput;
|
|
66
|
+
var DEFAULT_BLINK_TIME = 200; // STATES
|
|
67
|
+
|
|
68
|
+
var _useState = (0, _react.useState)(false),
|
|
69
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
70
|
+
isFocused = _useState2[0],
|
|
71
|
+
setIsFocused = _useState2[1];
|
|
72
|
+
|
|
73
|
+
var _useState3 = (0, _react.useState)(false),
|
|
74
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
75
|
+
isEditing = _useState4[0],
|
|
76
|
+
setEditing = _useState4[1];
|
|
77
|
+
|
|
78
|
+
var inputRef = (0, _react.useRef)(null);
|
|
79
|
+
var decRef = (0, _react.useRef)(null);
|
|
80
|
+
var incRef = (0, _react.useRef)(null);
|
|
81
|
+
var previousValueRef = (0, _react.useRef)(value);
|
|
82
|
+
|
|
83
|
+
var _useState5 = (0, _react.useState)(false),
|
|
84
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
85
|
+
isAttemptToChange = _useState6[0],
|
|
86
|
+
setIsAttemptToChange = _useState6[1];
|
|
87
|
+
|
|
88
|
+
var _useState7 = (0, _react.useState)(false),
|
|
89
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
90
|
+
isToHighlightError = _useState8[0],
|
|
91
|
+
setIsToHighlightError = _useState8[1];
|
|
92
|
+
|
|
93
|
+
var _useState9 = (0, _react.useState)(0),
|
|
94
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
95
|
+
intMemoVal = _useState10[0],
|
|
96
|
+
setIntMemoVal = _useState10[1];
|
|
97
|
+
|
|
98
|
+
var onlyNumbers = _inputExecutor.formatInput.onlyNumbers;
|
|
99
|
+
var _formatInput$priceInp = _inputExecutor.formatInput.priceInput,
|
|
100
|
+
addCommas = _formatInput$priceInp.addCommas,
|
|
101
|
+
removeComma = _formatInput$priceInp.removeComma; // HANDLES
|
|
102
|
+
|
|
103
|
+
var handle = {
|
|
104
|
+
change: function change(e) {
|
|
105
|
+
var inputValue = e.target ? onlyNumbers(e.target.value) : e;
|
|
106
|
+
|
|
107
|
+
if (inputValue !== '') {
|
|
108
|
+
inputValue = parseFloat(inputValue) || '';
|
|
109
|
+
|
|
110
|
+
if (min && +min > inputValue) {
|
|
111
|
+
inputValue = min;
|
|
112
|
+
} else if (max && +max < inputValue) inputValue = max;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (symbolsLimit) {
|
|
116
|
+
inputValue = inputValue.toString().substring(0, +symbolsLimit);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
setIntMemoVal(parseFloat(inputValue));
|
|
120
|
+
onChange(inputValue.toString());
|
|
121
|
+
},
|
|
122
|
+
toggleEdit: function toggleEdit() {
|
|
123
|
+
setEditing(!isEditing);
|
|
124
|
+
onChange('');
|
|
125
|
+
},
|
|
126
|
+
focus: function focus(e) {
|
|
127
|
+
setIsFocused(true);
|
|
128
|
+
if (isPriceInput) onChange(removeComma(value));
|
|
129
|
+
if (onFocus) onFocus(e);
|
|
130
|
+
},
|
|
131
|
+
blur: function blur(e) {
|
|
132
|
+
setIsFocused(false);
|
|
133
|
+
setEditing(false);
|
|
134
|
+
|
|
135
|
+
if (isPriceInput) {
|
|
136
|
+
if (!isFinite(value)) {
|
|
137
|
+
value = intMemoVal;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
onChange(addCommas(value));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (onBlur) onBlur(e);
|
|
144
|
+
},
|
|
145
|
+
keyUp: function keyUp(e) {
|
|
146
|
+
if (!isNotBlinkErrors) {
|
|
147
|
+
var _value, _previousValueRef$cur;
|
|
148
|
+
|
|
149
|
+
var changedValue = '' + ((_value = value) !== null && _value !== void 0 ? _value : '');
|
|
150
|
+
var previousValue = '' + ((_previousValueRef$cur = previousValueRef.current) !== null && _previousValueRef$cur !== void 0 ? _previousValueRef$cur : '');
|
|
151
|
+
|
|
152
|
+
var currentSet = function () {
|
|
153
|
+
if (previousValue.length < changedValue.length) return value.toString().slice(previousValue.length - changedValue.length);else return changedValue.toString().includes(e.key) ? e.key : '';
|
|
154
|
+
}();
|
|
155
|
+
|
|
156
|
+
if (!_index.KEYBOARD_SERVICE_KEYS.includes(e.key) && changedValue === previousValue) setIsAttemptToChange(true);
|
|
157
|
+
if (_index.KEYBOARD_SERVICE_KEYS.includes(e.key) || !currentSet) previousValueRef.current = value;else previousValueRef.current = previousValue + currentSet[0];
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (onKeyUp) onKeyUp(e.keyCode, e.target.value);
|
|
161
|
+
},
|
|
162
|
+
decrement: function decrement() {
|
|
163
|
+
handle.change(intMemoVal - +numStep);
|
|
164
|
+
},
|
|
165
|
+
increment: function increment() {
|
|
166
|
+
handle.change(intMemoVal + +numStep);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
var handleClickOutside = function handleClickOutside(event) {
|
|
171
|
+
if (inputRef.current && !inputRef.current.contains(event.target) && !decRef.current.contains(event.target) && !incRef.current.contains(event.target)) {
|
|
172
|
+
setTimeout(function () {
|
|
173
|
+
inputRef.current.focus();
|
|
174
|
+
inputRef.current.blur();
|
|
175
|
+
}, 0);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
(0, _react.useEffect)(function () {
|
|
180
|
+
if (!isNotBlinkErrors && isAttemptToChange) {
|
|
181
|
+
setIsAttemptToChange(false);
|
|
182
|
+
setIsToHighlightError(true);
|
|
183
|
+
setTimeout(function () {
|
|
184
|
+
setIsToHighlightError(false);
|
|
185
|
+
}, blinkTime || DEFAULT_BLINK_TIME);
|
|
186
|
+
}
|
|
187
|
+
}, [isAttemptToChange]);
|
|
188
|
+
(0, _react.useEffect)(function () {
|
|
189
|
+
document.addEventListener('click', handleClickOutside, true);
|
|
190
|
+
return function () {
|
|
191
|
+
return document.removeEventListener('click', handleClickOutside, true);
|
|
192
|
+
};
|
|
193
|
+
}, []);
|
|
194
|
+
(0, _react.useEffect)(function () {
|
|
195
|
+
if (isNaN(intMemoVal)) setIntMemoVal(min || '');
|
|
196
|
+
}, [intMemoVal]);
|
|
197
|
+
(0, _react.useEffect)(function () {
|
|
198
|
+
if (isEditing || isFocused) inputRef.current.focus();
|
|
199
|
+
}, [isEditing, isFocused]);
|
|
200
|
+
|
|
201
|
+
var uniProps = _objectSpread(_objectSpread({
|
|
202
|
+
className: "input ".concat(className),
|
|
203
|
+
placeholder: placeholder,
|
|
204
|
+
value: value || '',
|
|
205
|
+
disabled: disabled,
|
|
206
|
+
onChange: handle.change,
|
|
207
|
+
onFocus: handle.focus,
|
|
208
|
+
onBlur: handle.blur,
|
|
209
|
+
onKeyUp: handle.keyUp,
|
|
210
|
+
min: min,
|
|
211
|
+
max: max
|
|
212
|
+
}, maskChar ? {
|
|
213
|
+
maskChar: maskChar
|
|
214
|
+
} : {}), formatChars ? {
|
|
215
|
+
formatChars: formatChars
|
|
216
|
+
} : {});
|
|
217
|
+
|
|
218
|
+
function renderInput() {
|
|
219
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, uniProps, {
|
|
220
|
+
ref: inputRef,
|
|
221
|
+
type: type
|
|
222
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
223
|
+
className: "input__nums"
|
|
224
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
225
|
+
ref: decRef,
|
|
226
|
+
onClick: function onClick() {
|
|
227
|
+
return handle.decrement();
|
|
228
|
+
},
|
|
229
|
+
className: (0, _classnames.default)("input__num-btn", {
|
|
230
|
+
disabled: +value <= min
|
|
231
|
+
})
|
|
232
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.Minus, null)), /*#__PURE__*/_react.default.createElement("button", {
|
|
233
|
+
ref: incRef,
|
|
234
|
+
onClick: function onClick() {
|
|
235
|
+
return handle.increment();
|
|
236
|
+
},
|
|
237
|
+
className: (0, _classnames.default)("input__num-btn", {
|
|
238
|
+
disabled: +value >= max
|
|
239
|
+
})
|
|
240
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.Plus, null))));
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
244
|
+
className: (0, _classnames.default)("input__wrap", (0, _defineProperty2.default)({}, "input__wrap_focus", isFocused), (0, _defineProperty2.default)({}, "input__wrap_error", error || isToHighlightError), (0, _defineProperty2.default)({}, "input__wrap_disabled", disabled))
|
|
245
|
+
}, renderInput(), icon, withDelete && /*#__PURE__*/_react.default.createElement("span", {
|
|
246
|
+
className: (0, _classnames.default)("input__close", {
|
|
247
|
+
hidden: !value
|
|
248
|
+
}),
|
|
249
|
+
onClick: handle.toggleEdit
|
|
250
|
+
}));
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
var _default = NumericInput;
|
|
254
|
+
exports.default = _default;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
.input {
|
|
2
|
+
position: relative;
|
|
3
|
+
word-break: break-all;
|
|
4
|
+
border: none;
|
|
5
|
+
background: none;
|
|
6
|
+
padding: 0 10px;
|
|
7
|
+
width: 100%;
|
|
8
|
+
&::-webkit-outer-spin-button,
|
|
9
|
+
&::-webkit-inner-spin-button {
|
|
10
|
+
-webkit-appearance: none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__wrap {
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: center;
|
|
16
|
+
border: 1px solid #e2e5ec;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
background-color: #fff;
|
|
19
|
+
height: 28px;
|
|
20
|
+
border-radius: 4px;
|
|
21
|
+
|
|
22
|
+
&_focus {
|
|
23
|
+
border-color: #6b81dd;
|
|
24
|
+
filter: drop-shadow(0px 0px 4px rgba(93, 120, 255, 0.5));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&_disabled {
|
|
28
|
+
background: #f7f8fa;
|
|
29
|
+
opacity: 0.5;
|
|
30
|
+
border-color: #a6acb1;
|
|
31
|
+
pointer-events: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&_error {
|
|
35
|
+
border-color: #f06d8d;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&_disabled {
|
|
40
|
+
background: #f7f8fa;
|
|
41
|
+
opacity: 0.5;
|
|
42
|
+
border-color: #a6acb1;
|
|
43
|
+
pointer-events: none;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&_error {
|
|
47
|
+
border-color: #f06d8d;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
svg {
|
|
51
|
+
margin-right: 4px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&__input {
|
|
55
|
+
width: 100%;
|
|
56
|
+
height: 100%;
|
|
57
|
+
box-sizing: border-box;
|
|
58
|
+
font-size: 13px;
|
|
59
|
+
font-weight: 400;
|
|
60
|
+
color: #1e1e2d;
|
|
61
|
+
border: none;
|
|
62
|
+
padding: 0 5px;
|
|
63
|
+
border-radius: 4px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&__close {
|
|
67
|
+
position: relative;
|
|
68
|
+
opacity: 0.6;
|
|
69
|
+
width: 14px;
|
|
70
|
+
height: 14px;
|
|
71
|
+
background: none;
|
|
72
|
+
cursor: pointer;
|
|
73
|
+
margin-right: 4px;
|
|
74
|
+
visibility: hidden;
|
|
75
|
+
pointer-events: none;
|
|
76
|
+
&:hover {
|
|
77
|
+
opacity: 1;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&:before,
|
|
81
|
+
&:after {
|
|
82
|
+
content: '';
|
|
83
|
+
position: absolute;
|
|
84
|
+
top: 0;
|
|
85
|
+
left: 0;
|
|
86
|
+
right: 0;
|
|
87
|
+
margin: auto;
|
|
88
|
+
height: 14px;
|
|
89
|
+
width: 2px;
|
|
90
|
+
background-color: #9aa0b9;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&:before {
|
|
94
|
+
transform: rotate(45deg);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&:after {
|
|
98
|
+
transform: rotate(-45deg);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&__nums {
|
|
103
|
+
display: flex;
|
|
104
|
+
align-items: center;
|
|
105
|
+
height: 100%;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&__num-btn {
|
|
109
|
+
cursor: pointer;
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
justify-content: center;
|
|
113
|
+
height: 100%;
|
|
114
|
+
width: 24px;
|
|
115
|
+
border-left: 1px solid #e2e5ec;
|
|
116
|
+
background: none;
|
|
117
|
+
font-size: 20px;
|
|
118
|
+
user-select: none;
|
|
119
|
+
&.disabled {
|
|
120
|
+
opacity: 0.3;
|
|
121
|
+
}
|
|
122
|
+
svg {
|
|
123
|
+
margin-right: 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
&-label {
|
|
128
|
+
margin-bottom: 5px;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.input__wrap:hover .input__close {
|
|
133
|
+
visibility: visible;
|
|
134
|
+
pointer-events: all;
|
|
135
|
+
}
|