intelicoreact 0.1.1 → 0.1.4

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 (32) hide show
  1. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +38 -0
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.scss +57 -0
  3. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.stories.js +68 -0
  4. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +7 -4
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +1 -1
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +59 -0
  7. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.scss +29 -0
  8. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.stories.js +74 -0
  9. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +9 -4
  10. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +4 -0
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +4 -2
  12. package/dist/Atomic/FormElements/Input/Input.js +57 -57
  13. package/dist/Atomic/FormElements/Input/Input.stories.js +13 -5
  14. package/dist/Atomic/FormElements/Label/Label.js +7 -2
  15. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -1
  16. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +9 -9
  17. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +2 -2
  18. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +77 -21
  19. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +23 -4
  20. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +37 -36
  21. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +28 -12
  22. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +3 -3
  23. package/dist/Atomic/UI/Button/Button.scss +46 -32
  24. package/dist/Atomic/UI/Button/Button.stories.js +2 -1
  25. package/dist/Atomic/UI/Status/Status.scss +2 -1
  26. package/dist/Constants/index.constants.js +8 -2
  27. package/dist/Functions/README.txt +9 -0
  28. package/dist/Functions/fieldValueFormatters.js +119 -0
  29. package/dist/Functions/inputExecutor.js +16 -17
  30. package/dist/Molecular/FormElements/FormElement.js +6 -3
  31. package/dist/Molecular/FormElements/FormElement.stories.js +1 -0
  32. package/package.json +2 -2
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
12
+ var _TextSwitcher = _interopRequireDefault(require("../TextSwitcher/TextSwitcher"));
13
+
14
+ require("./AdvancedStatus.scss");
15
+
16
+ var AdvancedStatus = function AdvancedStatus(_ref) {
17
+ var onChange = _ref.onChange,
18
+ inactiveText = _ref.inactiveText,
19
+ activeText = _ref.activeText,
20
+ value = _ref.value,
21
+ disabled = _ref.disabled;
22
+ var isUndefined = value === undefined || value === null;
23
+ return /*#__PURE__*/React.createElement("div", {
24
+ className: (0, _classnames.default)('advanced-status', {
25
+ 'advanced-status_undefined': isUndefined,
26
+ 'advanced-status_disabled': disabled
27
+ })
28
+ }, /*#__PURE__*/React.createElement(_TextSwitcher.default, {
29
+ onChange: onChange,
30
+ isIncluded: value,
31
+ inactiveText: inactiveText,
32
+ activeText: activeText,
33
+ className: "advanced-status__switcher"
34
+ }));
35
+ };
36
+
37
+ var _default = AdvancedStatus;
38
+ exports.default = _default;
@@ -0,0 +1,57 @@
1
+ @import '../../../scss/vars';
2
+
3
+ .advanced-status {
4
+ &__switcher {
5
+ height: fit-content;
6
+ min-height: 28px;
7
+ border: none;
8
+
9
+ .text-switcher__btn {
10
+ cursor: pointer;
11
+ min-width: 58px;
12
+ white-space: nowrap;
13
+ padding: 0 14px;
14
+ height: 100%;
15
+ position: relative;
16
+ z-index: 2;
17
+ background-color: transparent;
18
+
19
+ display: flex;
20
+ flex-flow: row nowrap;
21
+ justify-content: center;
22
+ align-items: center;
23
+
24
+ text-transform: capitalize;
25
+ font-style: normal;
26
+ font-weight: 400;
27
+ font-size: 13px;
28
+ line-height: 20px;
29
+ display: flex;
30
+ align-items: center;
31
+ text-align: center;
32
+ color: $color--primary;
33
+
34
+ &_off {
35
+ color: #1E1E2D;;
36
+ }
37
+ }
38
+
39
+ .text-switcher__slider {
40
+ border: 1px solid $color--primary;
41
+ background-color: transparent;
42
+ }
43
+ }
44
+
45
+ &_undefined, &_disabled {
46
+ .advanced-status__switcher {
47
+ cursor: auto;
48
+ pointer-events: none;
49
+ }
50
+ }
51
+
52
+ &_undefined {
53
+ .text-switcher__slider {
54
+ border: none;
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,68 @@
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.TemplateAdvancedStatus = exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _AdvancedStatus = _interopRequireDefault(require("./AdvancedStatus"));
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ global.lng = 'en';
25
+ var _default = {
26
+ title: 'Form Elements/AdvancedStatus',
27
+ component: _AdvancedStatus.default
28
+ };
29
+ exports.default = _default;
30
+
31
+ var Template = function Template(args) {
32
+ var _useState = (0, _react.useState)(null),
33
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
+ value = _useState2[0],
35
+ setValue = _useState2[1];
36
+
37
+ var buttonStyles = {
38
+ border: '1px solid black',
39
+ padding: '10px',
40
+ marginTop: '10px'
41
+ };
42
+ (0, _react.useEffect)(function () {
43
+ if (value === null) setTimeout(function () {
44
+ return setValue(args.value);
45
+ }, 1500);
46
+ console.log(value);
47
+ }, [value]);
48
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AdvancedStatus.default, (0, _extends2.default)({}, args, {
49
+ value: value,
50
+ onChange: setValue
51
+ })), /*#__PURE__*/_react.default.createElement("button", {
52
+ style: buttonStyles,
53
+ disabled: value === null,
54
+ onClick: function onClick() {
55
+ return setValue(null);
56
+ }
57
+ }, "Reload"));
58
+ };
59
+
60
+ var TemplateAdvancedStatus = Template.bind({});
61
+ exports.TemplateAdvancedStatus = TemplateAdvancedStatus;
62
+ TemplateAdvancedStatus.args = {
63
+ value: false,
64
+ className: '',
65
+ activeText: 'Approved',
66
+ inactiveText: 'Review',
67
+ disabled: false
68
+ };
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
10
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
13
 
12
14
  var _react = _interopRequireDefault(require("react"));
@@ -28,19 +30,20 @@ var CheckboxInput = function CheckboxInput(_ref) {
28
30
  htmlFor: id
29
31
  }, /*#__PURE__*/_react.default.createElement("div", {
30
32
  className: (0, _classnames.default)("checkbox-input__input", (0, _defineProperty2.default)({}, "checkbox-input__input_checked", value))
31
- }, /*#__PURE__*/_react.default.createElement("input", {
32
- id: id,
33
+ }, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, id ? (0, _defineProperty2.default)({
34
+ id: id
35
+ }, 'data-id', id) : {}, {
33
36
  type: "checkbox",
34
37
  className: "checkbox-input__checkbox",
35
38
  onChange: function onChange(e) {
36
39
  return _onChange(!value, e);
37
40
  },
38
- checked: value,
41
+ checked: value !== null && value !== void 0 ? value : false,
39
42
  disabled: disabled,
40
43
  ref: function ref(elem) {
41
44
  if (elem) elem.indeterminate = isStark;
42
45
  }
43
- }), /*#__PURE__*/_react.default.createElement("span", {
46
+ })), /*#__PURE__*/_react.default.createElement("span", {
44
47
  className: "checkbox-input__mark"
45
48
  })), label && /*#__PURE__*/_react.default.createElement("div", {
46
49
  className: "checkbox-input__label"
@@ -49,5 +49,5 @@ Checkbox.args = {
49
49
  value: true,
50
50
  disabled: false,
51
51
  forced: false,
52
- isStark: true
52
+ isStark: false
53
53
  };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _CheckboxInput = _interopRequireDefault(require("../CheckboxInput/CheckboxInput"));
17
+
18
+ require("./CheckboxesLine.scss");
19
+
20
+ var CheckboxesLine = function CheckboxesLine(props) {
21
+ var field = props.field,
22
+ onChange = props.onChange;
23
+
24
+ var _ref = field !== null && field !== void 0 ? field : props || {},
25
+ items = _ref.items,
26
+ value = _ref.value,
27
+ disabled = _ref.disabled,
28
+ isPositionColumn = _ref.isPositionColumn,
29
+ className = _ref.className;
30
+
31
+ var handleChange = function handleChange(val, id, e) {
32
+ onChange(val ? [].concat((0, _toConsumableArray2.default)(value), [id]) : (0, _toConsumableArray2.default)(value.filter(function (el) {
33
+ return el !== id;
34
+ })));
35
+ };
36
+
37
+ return /*#__PURE__*/_react.default.createElement("div", {
38
+ className: (0, _classnames.default)('checkboxes-line', {
39
+ 'checkboxes-line_column': isPositionColumn
40
+ }, className)
41
+ }, (items === null || items === void 0 ? void 0 : items.map(function (item, idx) {
42
+ var _value$includes;
43
+
44
+ return /*#__PURE__*/_react.default.createElement(_CheckboxInput.default, {
45
+ id: item.id,
46
+ className: "checkboxes-line__checkbox-input",
47
+ key: item.label,
48
+ label: item.label,
49
+ value: (value === null || value === void 0 ? void 0 : (_value$includes = value.includes) === null || _value$includes === void 0 ? void 0 : _value$includes.call(value, item.id)) || false,
50
+ disabled: disabled,
51
+ onChange: function onChange(val, e) {
52
+ return handleChange(val, item.id, e);
53
+ }
54
+ });
55
+ })) || null);
56
+ };
57
+
58
+ var _default = CheckboxesLine;
59
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ .checkboxes-line {
2
+ display: flex;
3
+ flex-flow: row wrap;
4
+ justify-content: flex-start;
5
+ align-items: center;
6
+
7
+ &__checkbox-input {
8
+ width: fit-content;
9
+ margin-right: 10px;
10
+
11
+ &:last-of-type {
12
+ margin-right: 0;
13
+ }
14
+ }
15
+
16
+ &_column {
17
+ flex-flow: column wrap;
18
+ align-items: flex-start;
19
+
20
+ .checkboxes-line__checkbox-input {
21
+ margin-right: 0;
22
+ margin-bottom: 10px;
23
+
24
+ &:last-of-type {
25
+ margin-bottom: 0;
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,74 @@
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.TemplateCheckboxesLine = exports.default = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _CheckboxesLine = _interopRequireDefault(require("./CheckboxesLine"));
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ global.lng = 'en';
27
+ var _default = {
28
+ title: 'Form Elements/CheckboxesLine',
29
+ component: _CheckboxesLine.default
30
+ };
31
+ exports.default = _default;
32
+
33
+ var Template = function Template(args) {
34
+ var _useState = (0, _react.useState)(args.value),
35
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
+ value = _useState2[0],
37
+ setValue = _useState2[1];
38
+
39
+ (0, _react.useEffect)(function () {
40
+ return console.log(value);
41
+ }, [value]);
42
+ return /*#__PURE__*/_react.default.createElement(_CheckboxesLine.default, (0, _extends2.default)({}, args, {
43
+ value: value,
44
+ onChange: setValue
45
+ }));
46
+ };
47
+
48
+ var TemplateCheckboxesLine = Template.bind({});
49
+ exports.TemplateCheckboxesLine = TemplateCheckboxesLine;
50
+ TemplateCheckboxesLine.args = (0, _defineProperty2.default)({
51
+ items: [{
52
+ label: ' - 1',
53
+ id: '1'
54
+ }, {
55
+ label: ' - 2',
56
+ id: '2'
57
+ }, {
58
+ label: ' - 3',
59
+ id: '3'
60
+ }, {
61
+ label: ' - 4',
62
+ id: '4'
63
+ }, {
64
+ label: ' - 5',
65
+ id: '5'
66
+ }, {
67
+ label: ' - 6',
68
+ id: '6'
69
+ }],
70
+ value: [],
71
+ disabled: false,
72
+ isPositionColumn: true,
73
+ className: ''
74
+ }, "disabled", false);
@@ -38,7 +38,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
38
38
  var RC = 'dropdown';
39
39
 
40
40
  var Dropdown = function Dropdown(_ref) {
41
- var _options$find;
41
+ var _options$find, _filteredOptions$find;
42
42
 
43
43
  var _ref$options = _ref.options,
44
44
  options = _ref$options === void 0 ? [] : _ref$options,
@@ -212,13 +212,16 @@ var Dropdown = function Dropdown(_ref) {
212
212
  if (scrollReactionObj && (0, _typeof2.default)(scrollReactionObj) === 'object') removeEventListener('scroll', doScrollCallback);
213
213
  };
214
214
  }, [isOpen, dropdownListRef]);
215
+ var postfixText = selectedLabel && ((_filteredOptions$find = filteredOptions.find(function (option) {
216
+ return option.value === value;
217
+ })) === null || _filteredOptions$find === void 0 ? void 0 : _filteredOptions$find.postfix) || null;
215
218
  return /*#__PURE__*/_react.default.createElement("div", {
216
219
  className: (0, _classnames.default)(RC, className, {
217
220
  disabled: disabled
218
221
  }),
219
222
  ref: dropdownRef
220
223
  }, /*#__PURE__*/_react.default.createElement("button", {
221
- className: "".concat(RC, "__trigger input__wrap ").concat(!value ? 'placeholder' : '', " ").concat(error ? 'error' : ''),
224
+ className: "".concat(RC, "__trigger input__wrap ").concat(isOpen ? 'input__wrap--focus' : '', " ").concat(!value ? 'placeholder' : '', " ").concat(error ? 'error' : ''),
222
225
  onClick: function onClick() {
223
226
  return !isSearchable ? setIsOpen(!isOpen) : null;
224
227
  }
@@ -233,9 +236,11 @@ var Dropdown = function Dropdown(_ref) {
233
236
  e.target.select();
234
237
  setIsOpen(true);
235
238
  }
236
- }) : /*#__PURE__*/_react.default.createElement("span", {
239
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
237
240
  className: "text"
238
- }, selectedLabel || placeholder), /*#__PURE__*/_react.default.createElement("span", {
241
+ }, selectedLabel || placeholder), postfixText && /*#__PURE__*/_react.default.createElement("span", {
242
+ className: "dropdown__list-item-postfix"
243
+ }, postfixText)), /*#__PURE__*/_react.default.createElement("span", {
239
244
  className: (0, _classnames.default)("".concat(RC, "__arrow"), (0, _defineProperty2.default)({}, "".concat(RC, "__arrow_active"), isOpen)),
240
245
  onClick: function onClick() {
241
246
  return setIsOpen(!isOpen);
@@ -119,6 +119,10 @@
119
119
  opacity: 0.3;
120
120
  pointer-events: none;
121
121
  }
122
+
123
+ &-postfix {
124
+ margin-left: 5px;
125
+ }
122
126
  }
123
127
 
124
128
  &--with-label {
@@ -33,7 +33,9 @@ var _default = {
33
33
  description: 'string - current option'
34
34
  },
35
35
  isSearchable: {
36
- description: 'boolean - enable search'
36
+ description: 'boolean - enable search',
37
+ type: 'boolean',
38
+ defaultValue: false
37
39
  },
38
40
  onChange: {
39
41
  description: 'callback return selected value'
@@ -107,7 +109,7 @@ DropdownTemplate.args = {
107
109
  entity: 'entity',
108
110
  value: 'drop6',
109
111
  placeholder: 'Placeholder',
110
- isSearchable: true,
112
+ // isSearchable: true,
111
113
  options: [{
112
114
  label: 'Dropdown2',
113
115
  value: 'drop2',
@@ -23,7 +23,7 @@ var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
23
23
 
24
24
  var _index = require("../../../Constants/index.constants");
25
25
 
26
- var _inputExecutor = require("../../../Functions/inputExecutor");
26
+ var _fieldValueFormatters = require("../../../Functions/fieldValueFormatters");
27
27
 
28
28
  require("./Input.scss");
29
29
 
@@ -35,16 +35,16 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
35
35
 
36
36
  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; }
37
37
 
38
- var Input = function Input(_ref) {
39
- var onChange = _ref.onChange,
38
+ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
39
+ var isSelect = _ref.isSelect,
40
+ onChange = _ref.onChange,
40
41
  onBlur = _ref.onBlur,
41
42
  onFocus = _ref.onFocus,
42
43
  onKeyUp = _ref.onKeyUp,
43
44
  isNotBlinkErrors = _ref.isNotBlinkErrors,
44
45
  isPriceInput = _ref.isPriceInput,
45
- isOnlyNumber = _ref.isOnlyNumber,
46
+ onlyNumbers = _ref.onlyNumbers,
46
47
  isOnlyString = _ref.isOnlyString,
47
- isTwoDigitAfterDot = _ref.isTwoDigitAfterDot,
48
48
  disabled = _ref.disabled,
49
49
  withDelete = _ref.withDelete,
50
50
  value = _ref.value,
@@ -62,7 +62,9 @@ var Input = function Input(_ref) {
62
62
  symbolsLimit = _ref.symbolsLimit,
63
63
  blinkTime = _ref.blinkTime,
64
64
  _ref$isFocusDefault = _ref.isFocusDefault,
65
- isFocusDefault = _ref$isFocusDefault === void 0 ? false : _ref$isFocusDefault;
65
+ isFocusDefault = _ref$isFocusDefault === void 0 ? false : _ref$isFocusDefault,
66
+ _ref$isNotValidateASC = _ref.isNotValidateASCII,
67
+ isNotValidateASCII = _ref$isNotValidateASC === void 0 ? false : _ref$isNotValidateASC;
66
68
  var DEFAULT_BLINK_TIME = 100; // STATES
67
69
 
68
70
  var _useState = (0, _react.useState)(false),
@@ -75,7 +77,10 @@ var Input = function Input(_ref) {
75
77
  isEditing = _useState4[0],
76
78
  setEditing = _useState4[1];
77
79
 
78
- var inputRef = (0, _react.useRef)(null);
80
+ var inputInnerRef = (0, _react.useRef)(null);
81
+ var inputRef = (0, _react.useMemo)(function () {
82
+ return ref || inputInnerRef;
83
+ }, [ref]);
79
84
  var previousValueRef = (0, _react.useRef)(value);
80
85
 
81
86
  var _useState5 = (0, _react.useState)(false),
@@ -88,24 +93,20 @@ var Input = function Input(_ref) {
88
93
  isToHighlightError = _useState8[0],
89
94
  setIsToHighlightError = _useState8[1];
90
95
 
91
- var onlyNumbers = _inputExecutor.formatInput.onlyNumbers,
92
- onlyString = _inputExecutor.formatInput.onlyString;
93
- var _formatInput$priceInp = _inputExecutor.formatInput.priceInput,
94
- addCommas = _formatInput$priceInp.addCommas,
95
- removeComma = _formatInput$priceInp.removeComma;
96
+ var _useState9 = (0, _react.useState)(false),
97
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
98
+ onInputHover = _useState10[0],
99
+ setOnInputHover = _useState10[1];
100
+
101
+ var isUseBitDepthPoints = !!onlyNumbers && isPriceInput;
96
102
  var isUseErrorsBlink = !isNotBlinkErrors && !mask; // HANDLES
97
103
 
98
104
  var handle = {
99
105
  change: function change(e) {
100
106
  var inputValue = e.target ? e.target.value : e;
101
-
102
- if (symbolsLimit && inputValue.length > +symbolsLimit) {
103
- inputValue = inputValue.substring(0, +symbolsLimit);
104
- }
105
-
106
- if (isOnlyNumber && !isTwoDigitAfterDot) inputValue = onlyNumbers(inputValue);
107
- if (isTwoDigitAfterDot) inputValue = onlyNumbers(inputValue, true);
108
- if (isOnlyString) inputValue = onlyString(inputValue, softStringMode);
107
+ if (type === 'text' && !isNotValidateASCII) inputValue = (0, _fieldValueFormatters.formatToOnlyASCIICodeText)(inputValue);
108
+ if (symbolsLimit && inputValue.length > +symbolsLimit) inputValue = inputValue.substring(0, +symbolsLimit);
109
+ if (onlyNumbers && isOnlyString || isOnlyString) inputValue = (0, _fieldValueFormatters.formatToLetters)(inputValue, softStringMode);else if (onlyNumbers) inputValue = (0, _fieldValueFormatters.filterNumeric)(inputValue, onlyNumbers);
109
110
  onChange(inputValue.toString());
110
111
  },
111
112
  toggleEdit: function toggleEdit() {
@@ -114,21 +115,16 @@ var Input = function Input(_ref) {
114
115
  },
115
116
  focus: function focus(e) {
116
117
  setIsFocused(true);
117
- if (isPriceInput && isOnlyNumber) onChange(removeComma(value));
118
+ if (onlyNumbers) onChange((0, _fieldValueFormatters.formatToRemoveComa)(value));
118
119
  if (onFocus) onFocus(e);
119
120
  },
120
121
  blur: function blur(e) {
121
122
  setIsFocused(false);
122
123
  setEditing(false);
123
-
124
- if (isTwoDigitAfterDot) {
125
- onChange(cutOffsingleDot(value));
126
- }
127
-
128
- if (isPriceInput && isOnlyNumber) {
129
- onChange(addCommas(value));
130
- }
131
-
124
+ var value = e.target.value;
125
+ if (onlyNumbers) value = (0, _fieldValueFormatters.formatToCutOffDotAtTheEnd)(value);
126
+ if (isUseBitDepthPoints) value = (0, _fieldValueFormatters.formatToAddBitDepthPoints)(value);
127
+ if (onlyNumbers || isUseBitDepthPoints) onChange(value);
132
128
  if (onBlur) onBlur(e);
133
129
  },
134
130
  keyUp: function keyUp(e) {
@@ -168,33 +164,25 @@ var Input = function Input(_ref) {
168
164
  }
169
165
  };
170
166
 
171
- function cutOffsingleDot(value) {
172
- return value.toString().slice(-1) === '.' ? value.slice(0, -1) : value;
173
- }
174
-
175
- (0, _react.useEffect)(function () {
176
- if (isEditing) inputRef.current.focus();
177
- }, [isEditing, isFocused]);
178
-
179
- var uniProps = _objectSpread(_objectSpread({
180
- className: "input ".concat(className),
181
- placeholder: placeholder,
182
- value: value || '',
183
- disabled: disabled,
184
- onChange: handle.change,
185
- onFocus: handle.focus,
186
- onBlur: handle.blur,
187
- onKeyUp: handle.keyUp
188
- }, maskChar ? {
189
- maskChar: maskChar
190
- } : {}), formatChars ? {
191
- formatChars: formatChars
192
- } : {});
193
-
194
167
  function renderInput() {
168
+ var uniProps = _objectSpread(_objectSpread({
169
+ className: "input ".concat(className),
170
+ placeholder: placeholder,
171
+ value: value || '',
172
+ disabled: disabled,
173
+ onChange: handle.change,
174
+ onFocus: handle.focus,
175
+ onBlur: handle.blur,
176
+ onKeyUp: handle.keyUp
177
+ }, maskChar ? {
178
+ maskChar: maskChar
179
+ } : {}), formatChars ? {
180
+ formatChars: formatChars
181
+ } : {});
182
+
195
183
  if (mask) {
196
184
  return /*#__PURE__*/_react.default.createElement(_reactInputMask.default, (0, _extends2.default)({}, uniProps, {
197
- ref: inputRef,
185
+ inputRef: inputRef,
198
186
  mask: mask
199
187
  }));
200
188
  }
@@ -205,6 +193,12 @@ var Input = function Input(_ref) {
205
193
  }));
206
194
  }
207
195
 
196
+ (0, _react.useEffect)(function () {
197
+ if (isEditing) inputRef.current.focus();
198
+ }, [isEditing, isFocused]);
199
+ (0, _react.useEffect)(function () {
200
+ setEditing(isSelect !== null && isSelect !== void 0 ? isSelect : false);
201
+ }, [isSelect]);
208
202
  (0, _react.useEffect)(function () {
209
203
  if (isUseErrorsBlink && isAttemptToChange) {
210
204
  setIsAttemptToChange(null);
@@ -219,14 +213,20 @@ var Input = function Input(_ref) {
219
213
  setEditing(isFocusDefault);
220
214
  }, [inputRef, isFocusDefault]);
221
215
  return /*#__PURE__*/_react.default.createElement("div", {
222
- 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))
223
- }, renderInput(), icon, withDelete && /*#__PURE__*/_react.default.createElement("span", {
216
+ 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)),
217
+ onMouseEnter: function onMouseEnter() {
218
+ return setOnInputHover(true);
219
+ },
220
+ onMouseLeave: function onMouseLeave() {
221
+ return setOnInputHover(false);
222
+ }
223
+ }, renderInput(), icon, withDelete && onInputHover && /*#__PURE__*/_react.default.createElement("span", {
224
224
  className: (0, _classnames.default)("input__close", {
225
225
  hidden: !value
226
226
  }),
227
227
  onClick: handle.toggleEdit
228
228
  }));
229
- };
229
+ });
230
230
 
231
231
  var _default = Input;
232
232
  exports.default = _default;