intelicoreact 0.0.6 → 0.0.9

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 (117) hide show
  1. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +6 -2
  2. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +91 -60
  3. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +2 -1
  4. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +84 -28
  5. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +27 -3
  6. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +50 -7
  7. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +20 -0
  8. package/dist/Atomic/FormElements/Dropdown/components/Loader.scss +57 -0
  9. package/dist/Atomic/FormElements/Input/Input.js +124 -50
  10. package/dist/Atomic/FormElements/Input/Input.stories.js +19 -15
  11. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +33 -31
  12. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +29 -19
  13. package/dist/Atomic/FormElements/InputDateRange/{components/InputDateRange.js → InputDateRange.js} +54 -62
  14. package/dist/Atomic/FormElements/InputDateRange/{components/InputDateRange.scss → InputDateRange.scss} +254 -228
  15. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +15 -160
  16. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +72 -34
  17. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +26 -11
  18. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +14 -6
  19. package/dist/Atomic/FormElements/InputDateRange/{index.js → dependencies.js} +19 -18
  20. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +292 -0
  21. package/dist/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
  22. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +117 -0
  23. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +10 -3
  24. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +4 -4
  25. package/dist/Atomic/FormElements/Table/Table.scss +1 -1
  26. package/dist/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  27. package/dist/Atomic/MainMenu/MainMenu.scss +2 -2
  28. package/dist/Atomic/UI/Accordion/Accordion.scss +2 -2
  29. package/dist/Atomic/UI/Arrow/Arrow.js +6 -6
  30. package/dist/Atomic/UI/Arrow/Arrow.scss +0 -3
  31. package/dist/Atomic/UI/Calendar/Calendar.js +8 -5
  32. package/dist/Atomic/UI/Calendar/Calendar.scss +19 -3
  33. package/dist/Atomic/UI/Calendar/Calendar.stories.js +3 -2
  34. package/dist/Atomic/UI/Status/Status.scss +1 -1
  35. package/dist/Constants/index.constants.js +8 -0
  36. package/dist/Functions/inputExecutor.js +58 -0
  37. package/dist/Molecular/Datepicker/Datepicker.js +451 -0
  38. package/dist/Molecular/Datepicker/Datepicker.scss +8 -0
  39. package/dist/Molecular/Datepicker/Datepicker.stories.js +44 -0
  40. package/dist/{Atomic/FormElements/Calendar → Molecular/Datepicker/components}/Calendar.js +50 -39
  41. package/dist/scss/_vars.scss +3 -1
  42. package/dist/scss/main.scss +1 -1
  43. package/package.json +5 -4
  44. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +12 -2
  45. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +91 -60
  46. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +4 -3
  47. package/src/Atomic/FormElements/Dropdown/Dropdown.js +104 -39
  48. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +27 -3
  49. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +42 -15
  50. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +16 -0
  51. package/src/Atomic/FormElements/Dropdown/components/Loader.scss +57 -0
  52. package/src/Atomic/FormElements/Input/Input.js +108 -37
  53. package/src/Atomic/FormElements/Input/Input.stories.js +43 -22
  54. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +18 -17
  55. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +17 -14
  56. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +219 -0
  57. package/src/Atomic/FormElements/InputDateRange/{components/InputDateRange.scss → InputDateRange.scss} +254 -228
  58. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +38 -117
  59. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +92 -53
  60. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +14 -5
  61. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +5 -3
  62. package/src/Atomic/FormElements/InputDateRange/{index.js → dependencies.js} +16 -12
  63. package/src/Atomic/FormElements/NumericInput/NumericInput.js +263 -0
  64. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
  65. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +78 -0
  66. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +6 -3
  67. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +4 -4
  68. package/src/Atomic/FormElements/Table/Table.scss +1 -1
  69. package/src/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  70. package/src/Atomic/MainMenu/MainMenu.scss +2 -2
  71. package/src/Atomic/UI/Accordion/Accordion.scss +2 -2
  72. package/src/Atomic/UI/Arrow/Arrow.js +4 -4
  73. package/src/Atomic/UI/Arrow/Arrow.scss +0 -3
  74. package/src/Atomic/UI/Calendar/Calendar.js +4 -4
  75. package/src/Atomic/UI/Calendar/Calendar.scss +19 -3
  76. package/src/Atomic/UI/Calendar/Calendar.stories.js +2 -1
  77. package/src/Atomic/UI/Status/Status.scss +1 -1
  78. package/src/Constants/index.constants.js +41 -0
  79. package/src/Functions/inputExecutor.js +53 -0
  80. package/src/Functions/utils.js +4 -1
  81. package/src/Molecular/Datepicker/Datepicker.js +346 -0
  82. package/src/Molecular/Datepicker/Datepicker.scss +8 -0
  83. package/src/Molecular/Datepicker/Datepicker.stories.js +27 -0
  84. package/src/Molecular/Datepicker/components/Calendar.js +118 -0
  85. package/src/scss/_vars.scss +3 -1
  86. package/src/scss/main.scss +1 -1
  87. package/dist/Atomic/FormElements/Calendar/Calendar.scss +0 -543
  88. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +0 -33
  89. package/dist/scss/anme/_anme-bootstrap-grid.scss +0 -748
  90. package/dist/scss/anme/_anme-elements.scss +0 -269
  91. package/dist/scss/anme/_anme-grid.scss +0 -111
  92. package/dist/scss/anme/_anme-justify.scss +0 -111
  93. package/dist/scss/anme/_anme-mixins-media.scss +0 -116
  94. package/dist/scss/anme/_anme-mixins.scss +0 -166
  95. package/dist/scss/anme/_anme-normalize.scss +0 -8
  96. package/dist/scss/anme/_anme-overall.scss +0 -34
  97. package/dist/scss/anme/_anme-padding-margins.scss +0 -419
  98. package/dist/scss/anme/_anme-table.scss +0 -81
  99. package/dist/scss/anme/_anme-theme.scss +0 -275
  100. package/dist/scss/anme/_anme-vars.scss +0 -91
  101. package/dist/scss/anme/_code-styling.scss +0 -23
  102. package/dist/scss/anme/styles.scss +0 -12
  103. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.js +0 -230
  104. package/src/scss/anme/_anme-bootstrap-grid.scss +0 -748
  105. package/src/scss/anme/_anme-elements.scss +0 -269
  106. package/src/scss/anme/_anme-grid.scss +0 -111
  107. package/src/scss/anme/_anme-justify.scss +0 -111
  108. package/src/scss/anme/_anme-mixins-media.scss +0 -116
  109. package/src/scss/anme/_anme-mixins.scss +0 -166
  110. package/src/scss/anme/_anme-normalize.scss +0 -8
  111. package/src/scss/anme/_anme-overall.scss +0 -34
  112. package/src/scss/anme/_anme-padding-margins.scss +0 -419
  113. package/src/scss/anme/_anme-table.scss +0 -81
  114. package/src/scss/anme/_anme-theme.scss +0 -275
  115. package/src/scss/anme/_anme-vars.scss +0 -91
  116. package/src/scss/anme/_code-styling.scss +0 -23
  117. package/src/scss/anme/styles.scss +0 -12
@@ -9,50 +9,60 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = void 0;
11
11
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _reactFeather = require("react-feather");
23
-
24
22
  var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
25
23
 
24
+ var _index = require("../../../Constants/index.constants");
25
+
26
+ var _inputExecutor = require("../../../Functions/inputExecutor");
27
+
26
28
  require("./Input.scss");
27
29
 
28
30
  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); }
29
31
 
30
32
  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
33
 
34
+ 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; }
35
+
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
+
32
38
  var Input = function Input(_ref) {
33
39
  var onChange = _ref.onChange,
40
+ onBlur = _ref.onBlur,
41
+ onFocus = _ref.onFocus,
42
+ onKeyUp = _ref.onKeyUp,
43
+ isNotBlinkErrors = _ref.isNotBlinkErrors,
44
+ isPriceInput = _ref.isPriceInput,
45
+ isOnlyNumber = _ref.isOnlyNumber,
46
+ isOnlyString = _ref.isOnlyString,
47
+ isTwoDigitAfterDot = _ref.isTwoDigitAfterDot,
34
48
  disabled = _ref.disabled,
35
49
  withDelete = _ref.withDelete,
36
- isNumeric = _ref.isNumeric,
37
- _ref$numStep = _ref.numStep,
38
- numStep = _ref$numStep === void 0 ? 1 : _ref$numStep,
39
- _ref$min = _ref.min,
40
- min = _ref$min === void 0 ? 0 : _ref$min,
41
- max = _ref.max,
42
50
  value = _ref.value,
43
51
  placeholder = _ref.placeholder,
44
52
  className = _ref.className,
45
53
  _ref$type = _ref.type,
46
54
  type = _ref$type === void 0 ? 'text' : _ref$type,
47
- onBlur = _ref.onBlur,
48
- onFocus = _ref.onFocus,
49
- onKeyUp = _ref.onKeyUp,
50
55
  mask = _ref.mask,
56
+ maskChar = _ref.maskChar,
57
+ formatChars = _ref.formatChars,
51
58
  error = _ref.error,
52
59
  icon = _ref.icon,
53
- symbolsLimit = _ref.symbolsLimit;
60
+ symbolsLimit = _ref.symbolsLimit,
61
+ blinkTime = _ref.blinkTime,
62
+ _ref$isFocusDefault = _ref.isFocusDefault,
63
+ isFocusDefault = _ref$isFocusDefault === void 0 ? false : _ref$isFocusDefault;
64
+ var DEFAULT_BLINK_TIME = 100; // STATES
54
65
 
55
- // STATES
56
66
  var _useState = (0, _react.useState)(false),
57
67
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
68
  isFocused = _useState2[0],
@@ -63,20 +73,37 @@ var Input = function Input(_ref) {
63
73
  isEditing = _useState4[0],
64
74
  setEditing = _useState4[1];
65
75
 
66
- var inputRef = (0, _react.useRef)(null); // HANDLES
76
+ var inputRef = (0, _react.useRef)(null);
77
+ var previousValueRef = (0, _react.useRef)(value);
78
+
79
+ var _useState5 = (0, _react.useState)(false),
80
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
81
+ isAttemptToChange = _useState6[0],
82
+ setIsAttemptToChange = _useState6[1];
83
+
84
+ var _useState7 = (0, _react.useState)(false),
85
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
86
+ isToHighlightError = _useState8[0],
87
+ setIsToHighlightError = _useState8[1];
88
+
89
+ var onlyNumbers = _inputExecutor.formatInput.onlyNumbers,
90
+ onlyString = _inputExecutor.formatInput.onlyString;
91
+ var _formatInput$priceInp = _inputExecutor.formatInput.priceInput,
92
+ addCommas = _formatInput$priceInp.addCommas,
93
+ removeComma = _formatInput$priceInp.removeComma;
94
+ var isUseErrorsBlink = !isNotBlinkErrors && !mask; // HANDLES
67
95
 
68
96
  var handle = {
69
97
  change: function change(e) {
70
98
  var inputValue = e.target ? e.target.value : e;
71
99
 
72
- if (isNumeric || type === 'number' && inputValue !== '') {
73
- inputValue = parseFloat(inputValue) || '';
74
-
75
- if (min && +min > inputValue) {
76
- inputValue = min;
77
- } else if (max && +max < inputValue) inputValue = max;
78
- } else if (symbolsLimit && inputValue.length > +symbolsLimit) inputValue = inputValue.substring(0, +symbolsLimit);
100
+ if (symbolsLimit && inputValue.length > +symbolsLimit) {
101
+ inputValue = inputValue.substring(0, +symbolsLimit);
102
+ }
79
103
 
104
+ if (isOnlyNumber && !isTwoDigitAfterDot) inputValue = onlyNumbers(inputValue);
105
+ if (isTwoDigitAfterDot) inputValue = onlyNumbers(inputValue, true);
106
+ if (isOnlyString) inputValue = onlyString(inputValue);
80
107
  onChange(inputValue.toString());
81
108
  },
82
109
  toggleEdit: function toggleEdit() {
@@ -85,21 +112,69 @@ var Input = function Input(_ref) {
85
112
  },
86
113
  focus: function focus(e) {
87
114
  setIsFocused(true);
115
+ if (isPriceInput && isOnlyNumber) onChange(removeComma(value));
88
116
  if (onFocus) onFocus(e);
89
117
  },
90
118
  blur: function blur(e) {
91
119
  setIsFocused(false);
92
120
  setEditing(false);
121
+
122
+ if (isTwoDigitAfterDot) {
123
+ onChange(cutOffsingleDot(value));
124
+ }
125
+
126
+ if (isPriceInput && isOnlyNumber) {
127
+ onChange(addCommas(value));
128
+ }
129
+
93
130
  if (onBlur) onBlur(e);
94
131
  },
95
132
  keyUp: function keyUp(e) {
96
- return onKeyUp ? onKeyUp(e.keyCode, event) : null;
133
+ if (isUseErrorsBlink) {
134
+ var _previousValueRef$cur;
135
+
136
+ var changedValue = '' + (value !== null && value !== void 0 ? value : '');
137
+ var previousValue = '' + ((_previousValueRef$cur = previousValueRef.current) !== null && _previousValueRef$cur !== void 0 ? _previousValueRef$cur : '');
138
+ var short = previousValue.length <= changedValue.length ? previousValue : changedValue;
139
+ var long = previousValue.length > changedValue.length ? previousValue : changedValue;
140
+ var infoAboutDifferencesSameness = short.split('').reduce(function (acc, symbol, idx) {
141
+ if (acc.countOn && symbol === long[idx]) acc.same.push(symbol);else {
142
+ acc.countOn = false;
143
+ acc.differences.push([idx, symbol]);
144
+ }
145
+ return acc;
146
+ }, {
147
+ same: [],
148
+ countOn: true,
149
+ differences: []
150
+ });
151
+ var samePart = infoAboutDifferencesSameness.same.join('');
152
+ var differencesLength = infoAboutDifferencesSameness.differences.length;
153
+ var currentSet = changedValue.replace(samePart, '');
154
+
155
+ var getNext = function getNext(inputPartToAdd, correctedSamePart) {
156
+ var partToAdd = inputPartToAdd || currentSet;
157
+ var currentSamePart = correctedSamePart || samePart;
158
+ return changedValue.includes(e.key) && e.key !== changedValue[changedValue.length - 1] ? currentSamePart + (partToAdd[0] || '') : changedValue;
159
+ };
160
+
161
+ if (!_index.KEYBOARD_SERVICE_KEYS.includes(e.key) && changedValue === previousValue) setIsAttemptToChange(!(!differencesLength && e.key === changedValue[changedValue.length - 2]));
162
+ if (!previousValueRef.current || _index.KEYBOARD_SERVICE_KEYS.includes(e.key)) previousValueRef.current = getNext();else if (changedValue === samePart) previousValueRef.current = getNext(changedValue, changedValue.slice(0, -1));else previousValueRef.current = getNext();
163
+ }
164
+
165
+ if (onKeyUp) onKeyUp(e.keyCode, e);
97
166
  }
98
167
  };
168
+
169
+ function cutOffsingleDot(value) {
170
+ return value.toString().slice(-1) === '.' ? value.slice(0, -1) : value;
171
+ }
172
+
99
173
  (0, _react.useEffect)(function () {
100
174
  if (isEditing) inputRef.current.focus();
101
175
  }, [isEditing, isFocused]);
102
- var uniProps = {
176
+
177
+ var uniProps = _objectSpread(_objectSpread({
103
178
  className: "input ".concat(className),
104
179
  placeholder: placeholder,
105
180
  value: value || '',
@@ -107,10 +182,12 @@ var Input = function Input(_ref) {
107
182
  onChange: handle.change,
108
183
  onFocus: handle.focus,
109
184
  onBlur: handle.blur,
110
- onKeyUp: handle.keyUp,
111
- min: min,
112
- max: max
113
- };
185
+ onKeyUp: handle.keyUp
186
+ }, maskChar ? {
187
+ maskChar: maskChar
188
+ } : {}), formatChars ? {
189
+ formatChars: formatChars
190
+ } : {});
114
191
 
115
192
  function renderInput() {
116
193
  if (mask) {
@@ -120,31 +197,28 @@ var Input = function Input(_ref) {
120
197
  }));
121
198
  }
122
199
 
123
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, uniProps, {
200
+ return /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, uniProps, {
124
201
  ref: inputRef,
125
- type: isNumeric ? 'number' : type
126
- })), isNumeric && /*#__PURE__*/_react.default.createElement("div", {
127
- className: "input__nums"
128
- }, /*#__PURE__*/_react.default.createElement("button", {
129
- onClick: function onClick() {
130
- return handle.change(value - numStep);
131
- },
132
- className: (0, _classnames.default)("input__num-btn", {
133
- disabled: value <= min
134
- })
135
- }, /*#__PURE__*/_react.default.createElement(_reactFeather.Minus, null)), /*#__PURE__*/_react.default.createElement("button", {
136
- onClick: function onClick() {
137
- return handle.change(+value + +numStep);
138
- },
139
- className: (0, _classnames.default)("input__num-btn", {
140
- disabled: value >= max
141
- })
142
- }, /*#__PURE__*/_react.default.createElement(_reactFeather.Plus, null))));
202
+ type: isPriceInput ? 'text' : type
203
+ }));
143
204
  }
144
205
 
206
+ (0, _react.useEffect)(function () {
207
+ if (isUseErrorsBlink && isAttemptToChange) {
208
+ setIsAttemptToChange(null);
209
+ setIsToHighlightError(true);
210
+ setTimeout(function () {
211
+ setIsToHighlightError(false);
212
+ }, blinkTime || DEFAULT_BLINK_TIME);
213
+ }
214
+ }, [isAttemptToChange]);
215
+ (0, _react.useEffect)(function () {
216
+ if (inputRef !== null && inputRef !== void 0 && inputRef.current && typeof isFocusDefault === 'boolean') setIsFocused(isFocusDefault);
217
+ setEditing(isFocusDefault);
218
+ }, [inputRef, isFocusDefault]);
145
219
  return /*#__PURE__*/_react.default.createElement("div", {
146
- className: (0, _classnames.default)("input__wrap", (0, _defineProperty2.default)({}, "input__wrap_focus", isFocused), (0, _defineProperty2.default)({}, "input__wrap_error", error), (0, _defineProperty2.default)({}, "input__wrap_disabled", disabled))
147
- }, renderInput(), icon, withDelete && !isNumeric && /*#__PURE__*/_react.default.createElement("span", {
220
+ 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))
221
+ }, renderInput(), icon, withDelete && /*#__PURE__*/_react.default.createElement("span", {
148
222
  className: (0, _classnames.default)("input__close", {
149
223
  hidden: !value
150
224
  }),
@@ -34,20 +34,23 @@ var _default = {
34
34
  error: {
35
35
  description: 'text - coloring input if is errored'
36
36
  },
37
+ isPriceInput: {
38
+ description: 'boolean - if true, the input will be styled as PriceInput'
39
+ },
37
40
  withDelete: {
38
41
  description: 'boolean - add clear-cross by hover'
39
42
  },
40
- isNumeric: {
41
- description: 'boolean - add plus/minus buttons, force input to numeric type'
43
+ isOnlyNumber: {
44
+ description: 'boolean - only numbers'
42
45
  },
43
- numStep: {
44
- description: 'number/text - plus/minus buttons factor (default: 1)'
46
+ isOnlyString: {
47
+ description: 'boolean - only strings'
45
48
  },
46
- min: {
47
- description: 'number/text - minimal number for numeric input'
49
+ isTwoDigitAfterDot: {
50
+ description: 'boolean - only two digits after dot'
48
51
  },
49
- max: {
50
- description: 'number/text - maximal number for numeric input'
52
+ isFocusDefault: {
53
+ description: 'boolean - if true, input will be focused on mount'
51
54
  },
52
55
  placeholder: {
53
56
  description: 'text'
@@ -103,15 +106,16 @@ var InputTemplate = Template.bind({});
103
106
  exports.InputTemplate = InputTemplate;
104
107
  InputTemplate.args = {
105
108
  type: 'text',
109
+ isFocusDefault: false,
110
+ isOnlyNumber: false,
111
+ isOnlyString: false,
112
+ isPriceInput: false,
113
+ isTwoDigitAfterDot: false,
106
114
  disabled: false,
107
115
  error: '',
116
+ mask: '',
108
117
  withDelete: true,
109
- isNumeric: false,
110
- numStep: 1,
111
- min: '0',
112
- max: '5',
118
+ symbolsLimit: 255,
113
119
  placeholder: 'Placeholder',
114
- mask: '',
115
- icon: /*#__PURE__*/_react.default.createElement(_reactFeather.User, null),
116
- symbolsLimit: 225
120
+ icon: /*#__PURE__*/_react.default.createElement(_reactFeather.User, null)
117
121
  };
@@ -26,49 +26,48 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
26
26
  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; }
27
27
 
28
28
  var InputCalendar = function InputCalendar(_ref) {
29
- var data = _ref.data,
30
- params = _ref.params;
31
-
32
- var _useState = (0, _react.useState)(data),
29
+ var value = _ref.value,
30
+ minDate = _ref.minDate,
31
+ maxDate = _ref.maxDate,
32
+ onChange = _ref.onChange,
33
+ _ref$className = _ref.className,
34
+ className = _ref$className === void 0 ? '' : _ref$className,
35
+ _ref$placeholder = _ref.placeholder,
36
+ placeholder = _ref$placeholder === void 0 ? 'mm/dd/yyyy' : _ref$placeholder,
37
+ _ref$mask = _ref.mask,
38
+ mask = _ref$mask === void 0 ? '99/99/9999' : _ref$mask;
39
+
40
+ var _useState = (0, _react.useState)(false),
33
41
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
- date = _useState2[0],
35
- setDate = _useState2[1];
36
-
37
- var _useState3 = (0, _react.useState)(date),
38
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
39
- inputValue = _useState4[0],
40
- setInputValue = _useState4[1];
41
-
42
- var _useState5 = (0, _react.useState)(false),
43
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
44
- isOpened = _useState6[0],
45
- setIsOpened = _useState6[1];
42
+ isOpened = _useState2[0],
43
+ setIsOpened = _useState2[1];
46
44
 
47
45
  var calendarRef = (0, _react.useRef)(null);
48
46
  (0, _useClickOutside.useClickOutside)(calendarRef, function () {
49
47
  return setIsOpened(false);
50
48
  });
51
49
 
52
- var changeInputValue = function changeInputValue(value) {
53
- if (!value.includes('_') && value) {
54
- setDate((0, _moment.default)(value).format('L'));
55
- setInputValue((0, _moment.default)(value).format('L'));
56
- } else {
57
- setInputValue(value);
58
- }
50
+ var changeInputValue = function changeInputValue(val) {
51
+ if (onChange) onChange(val);
59
52
  };
60
53
 
61
- var changeCalendarDay = function changeCalendarDay(value) {
62
- setDate(value);
63
- setInputValue(value);
54
+ var changeCalendarDay = function changeCalendarDay(val) {
55
+ if (onChange) onChange(val);
56
+ };
57
+
58
+ var getCalendarValue = function getCalendarValue(value) {
59
+ var date = (0, _moment.default)(value).format('L');
60
+ if (date !== "Invalid date") return date;
61
+ return (0, _moment.default)(new Date()).format('L');
64
62
  };
65
63
 
66
64
  return /*#__PURE__*/_react.default.createElement("div", {
67
- className: "calendar-container",
65
+ className: "input__wrap calendar-container ".concat(className),
68
66
  ref: calendarRef
69
67
  }, /*#__PURE__*/_react.default.createElement(_reactInputMask.default, {
70
- mask: "99/99/9999",
71
- value: inputValue,
68
+ mask: mask,
69
+ placeholder: placeholder,
70
+ value: value,
72
71
  onChange: function onChange(e) {
73
72
  return changeInputValue(e.target.value);
74
73
  },
@@ -77,11 +76,14 @@ var InputCalendar = function InputCalendar(_ref) {
77
76
  return setIsOpened(!isOpened);
78
77
  }
79
78
  }), isOpened ? /*#__PURE__*/_react.default.createElement(_Calendar.default, {
80
- date: date,
79
+ date: getCalendarValue(value),
81
80
  setDate: function setDate(newDate) {
82
81
  return changeCalendarDay(newDate);
83
82
  },
84
- params: params
83
+ params: {
84
+ minDate: minDate,
85
+ maxDate: maxDate
86
+ }
85
87
  }) : null);
86
88
  };
87
89
 
@@ -7,11 +7,13 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.Calendar = exports.default = void 0;
10
+ exports.CalendarTemplate = exports.default = void 0;
11
11
 
12
- var _react = _interopRequireWildcard(require("react"));
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
14
- var _yup = require("yup");
16
+ var _react = _interopRequireWildcard(require("react"));
15
17
 
16
18
  var _InputCalendar = _interopRequireDefault(require("./InputCalendar"));
17
19
 
@@ -21,26 +23,34 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
23
 
22
24
  global.lng = 'en';
23
25
  var _default = {
24
- title: 'Form Elements/InputCalendar',
25
- component: _InputCalendar.default
26
+ title: 'Form Elements/Input Calendar',
27
+ component: _InputCalendar.default,
28
+ argTypes: {
29
+ value: {
30
+ description: 'string (mm.dd.yyyy)'
31
+ }
32
+ }
26
33
  };
27
34
  exports.default = _default;
28
35
 
29
36
  var Template = function Template(args) {
30
- var params = {
31
- minDate: args === null || args === void 0 ? void 0 : args.minDate,
32
- maxDate: args === null || args === void 0 ? void 0 : args.maxDate
33
- };
34
- return /*#__PURE__*/_react.default.createElement(_InputCalendar.default, {
35
- data: args.date,
36
- params: params
37
- });
37
+ var _useState = (0, _react.useState)(''),
38
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
39
+ date = _useState2[0],
40
+ setDate = _useState2[1];
41
+
42
+ return /*#__PURE__*/_react.default.createElement(_InputCalendar.default, (0, _extends2.default)({}, args, {
43
+ value: date,
44
+ onChange: function onChange(val) {
45
+ return setDate(val);
46
+ }
47
+ }));
38
48
  };
39
49
 
40
- var Calendar = Template.bind({});
41
- exports.Calendar = Calendar;
42
- Calendar.args = {
43
- date: '10/14/2021',
44
- minDate: '10/11/2021',
45
- maxDate: '10/25/2021'
50
+ var CalendarTemplate = Template.bind({});
51
+ exports.CalendarTemplate = CalendarTemplate;
52
+ CalendarTemplate.args = {
53
+ value: '',
54
+ minDate: '10/14/2020',
55
+ maxDate: '10/14/2022'
46
56
  };