intelicoreact 0.0.96 → 0.0.99

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 (160) hide show
  1. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +5 -3
  2. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +2 -1
  3. package/dist/Atomic/FormElements/Input/Input.js +3 -1
  4. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  5. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +4 -4
  6. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +179 -70
  7. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +23 -23
  8. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +87 -12
  9. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  10. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  11. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  12. package/dist/Functions/inputExecutor.js +7 -1
  13. package/package.json +3 -2
  14. package/.babelrc +0 -12
  15. package/.eslintignore +0 -10
  16. package/.eslintrc.json +0 -93
  17. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  18. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  19. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  20. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  21. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  22. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  23. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  24. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  25. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  26. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  27. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  28. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  29. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  30. package/src/Atomic/FormElements/Header/Header.js +0 -67
  31. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  32. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  33. package/src/Atomic/FormElements/Input/Input.js +0 -186
  34. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  35. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  36. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -104
  37. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  38. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  39. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -254
  40. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  41. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -65
  42. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -432
  43. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -126
  44. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  45. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  46. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  47. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  48. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  49. package/src/Atomic/FormElements/Label/Label.js +0 -13
  50. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  51. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  52. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -315
  53. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +0 -120
  54. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -30
  55. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  56. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  57. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  58. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  59. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  60. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  61. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  62. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  63. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  64. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  65. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  66. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  67. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  68. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  69. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  70. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -152
  71. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  72. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  73. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  74. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  75. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  76. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  77. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  78. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  79. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  80. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  81. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  82. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  83. package/src/Atomic/FormElements/Table/Table.js +0 -50
  84. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  85. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  86. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  87. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  88. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  89. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  90. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  91. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  92. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  93. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  94. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  95. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  96. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  97. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  98. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  99. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  100. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  101. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  102. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  103. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  104. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  105. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  106. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  107. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  108. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  109. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  110. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  111. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  112. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  113. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  114. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  115. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  116. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  117. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  118. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  119. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  120. package/src/Atomic/UI/Alert/Alert.js +0 -23
  121. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  122. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  123. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  124. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  125. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  126. package/src/Atomic/UI/Button/Button.js +0 -17
  127. package/src/Atomic/UI/Button/Button.scss +0 -108
  128. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  129. package/src/Atomic/UI/Calendar/Calendar.js +0 -190
  130. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  131. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  132. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  133. package/src/Atomic/UI/Hint/Hint.js +0 -34
  134. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  135. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  136. package/src/Atomic/UI/Price/Price.js +0 -20
  137. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  138. package/src/Atomic/UI/Status/Status.js +0 -38
  139. package/src/Atomic/UI/Status/Status.scss +0 -69
  140. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  141. package/src/Constants/index.constants.js +0 -41
  142. package/src/Functions/customEventListener.js +0 -58
  143. package/src/Functions/inputExecutor.js +0 -53
  144. package/src/Functions/schemas.js +0 -31
  145. package/src/Functions/useClickOutside.js +0 -15
  146. package/src/Functions/useMouseUpOutside.js +0 -16
  147. package/src/Functions/useToggle.js +0 -17
  148. package/src/Functions/utils.js +0 -51
  149. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  150. package/src/Molecular/Datepicker/Datepicker.scss +0 -8
  151. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  152. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  153. package/src/Molecular/FormElements/FormElement.js +0 -18
  154. package/src/Molecular/FormElements/FormElement.scss +0 -8
  155. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  156. package/src/index.js +0 -3
  157. package/src/scss/_fonts.scss +0 -109
  158. package/src/scss/_vars.scss +0 -48
  159. package/src/scss/main.scss +0 -40
  160. package/webpack.config.js +0 -61
@@ -136,10 +136,12 @@ var Dropdown = function Dropdown(_ref) {
136
136
  setSearchValue(name);
137
137
  };
138
138
 
139
- var hightlightedText = function hightlightedText(text) {
140
- return searchValue ? text === null || text === void 0 ? void 0 : text.replace(new RegExp(searchValue, 'i'), function (match) {
139
+ var hightlightedText = function hightlightedText(text, postfix) {
140
+ var main = searchValue ? text === null || text === void 0 ? void 0 : text.replace(new RegExp(searchValue, 'i'), function (match) {
141
141
  return "<span class=\"bg--yellow\">".concat(match, "</span>");
142
142
  }) : text;
143
+ var postfixPart = postfix ? "<span class=\"dropdown__list-item-postfix\">".concat(postfix, "</span>") : '';
144
+ return main + postfixPart;
143
145
  };
144
146
 
145
147
  var depend = getDepends(modalBtnTrigger);
@@ -156,7 +158,7 @@ var Dropdown = function Dropdown(_ref) {
156
158
  }, /*#__PURE__*/_react.default.createElement(_reactFeather.Check, null)), /*#__PURE__*/_react.default.createElement("div", {
157
159
  className: item.className || '',
158
160
  dangerouslySetInnerHTML: {
159
- __html: hightlightedText(item.label)
161
+ __html: hightlightedText(item.label, item.postfix)
160
162
  }
161
163
  })) : null;
162
164
  };
@@ -109,7 +109,8 @@ DropdownTemplate.args = {
109
109
  isSearchable: true,
110
110
  options: [{
111
111
  label: 'Dropdown2',
112
- value: 'drop2'
112
+ value: 'drop2',
113
+ postfix: '(postfix)'
113
114
  }, {
114
115
  label: 'Dropdown3',
115
116
  value: 'drop3',
@@ -52,6 +52,8 @@ var Input = function Input(_ref) {
52
52
  className = _ref.className,
53
53
  _ref$type = _ref.type,
54
54
  type = _ref$type === void 0 ? 'text' : _ref$type,
55
+ _ref$softStringMode = _ref.softStringMode,
56
+ softStringMode = _ref$softStringMode === void 0 ? false : _ref$softStringMode,
55
57
  mask = _ref.mask,
56
58
  maskChar = _ref.maskChar,
57
59
  formatChars = _ref.formatChars,
@@ -103,7 +105,7 @@ var Input = function Input(_ref) {
103
105
 
104
106
  if (isOnlyNumber && !isTwoDigitAfterDot) inputValue = onlyNumbers(inputValue);
105
107
  if (isTwoDigitAfterDot) inputValue = onlyNumbers(inputValue, true);
106
- if (isOnlyString) inputValue = onlyString(inputValue);
108
+ if (isOnlyString) inputValue = onlyString(inputValue, softStringMode);
107
109
  onChange(inputValue.toString());
108
110
  },
109
111
  toggleEdit: function toggleEdit() {
@@ -43,9 +43,12 @@ var _default = {
43
43
  isOnlyNumber: {
44
44
  description: 'boolean - only numbers'
45
45
  },
46
- isOnlyString: {
46
+ softStringMode: {
47
47
  description: 'boolean - only strings'
48
48
  },
49
+ hardStringMode: {
50
+ description: 'boolean - soft or hard validation'
51
+ },
49
52
  isTwoDigitAfterDot: {
50
53
  description: 'boolean - only two digits after dot'
51
54
  },
@@ -114,6 +117,7 @@ InputTemplate.args = {
114
117
  disabled: false,
115
118
  error: '',
116
119
  mask: '',
120
+ softStringMode: true,
117
121
  withDelete: true,
118
122
  symbolsLimit: 255,
119
123
  placeholder: 'Placeholder',
@@ -93,14 +93,14 @@ var InputDateRange = function InputDateRange(props) {
93
93
 
94
94
  var formatedValue = _objectSpread(_objectSpread(_objectSpread({
95
95
  intervalKey: newValue.intervalKey,
96
- start: newValue.start ? (0, _momentTimezone.default)(newValue.start).format(format || 'YYYY-MM-DDTHH:mm') : newValue.start,
97
- end: newValue.end ? (0, _momentTimezone.default)(newValue.end).format(format || 'YYYY-MM-DDTHH:mm') : newValue.end
96
+ start: newValue.start ? (0, _momentTimezone.default)(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
97
+ end: newValue.end ? (0, _momentTimezone.default)(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end
98
98
  }, newValue.compare ? {
99
99
  compare: newValue.compare
100
100
  } : {}), newValue.startPrevDate ? {
101
- startPrevDate: (0, _momentTimezone.default)(newValue.startPrevDate).format(format || 'YYYY-MM-DDTHH:mm')
101
+ startPrevDate: (0, _momentTimezone.default)(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm')
102
102
  } : {}), newValue.endPrevDate ? {
103
- endPrevDate: (0, _momentTimezone.default)(newValue.endPrevDate).format(format || 'YYYY-MM-DDTHH:mm')
103
+ endPrevDate: (0, _momentTimezone.default)(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm')
104
104
  } : {});
105
105
 
106
106
  onChange(formatedValue);
@@ -28,23 +28,24 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
28
28
  require('./../../../../src/Functions/customEventListener');
29
29
 
30
30
  var MobileCalendar = function MobileCalendar(_ref) {
31
- var _listItem$getBounding;
32
-
33
- var _ref$minDate = _ref.minDate,
34
- minDate = _ref$minDate === void 0 ? (0, _moment.default)().subtract('10', 'years') : _ref$minDate,
35
- _ref$maxDate = _ref.maxDate,
36
- maxDate = _ref$maxDate === void 0 ? (0, _moment.default)().add('10', 'years') : _ref$maxDate,
37
- value = _ref.value,
31
+ var _ref$min = _ref.min,
32
+ min = _ref$min === void 0 ? (0, _moment.default)().subtract('10', 'years') : _ref$min,
33
+ _ref$max = _ref.max,
34
+ max = _ref$max === void 0 ? (0, _moment.default)().add('10', 'years') : _ref$max,
35
+ _ref$value = _ref.value,
36
+ value = _ref$value === void 0 ? (0, _moment.default)() : _ref$value,
38
37
  _ref$rows = _ref.rows,
39
38
  rows = _ref$rows === void 0 ? 5 : _ref$rows,
40
39
  _ref$label = _ref.label,
41
40
  label = _ref$label === void 0 ? "" : _ref$label,
42
41
  _ref$timeout = _ref.timeout,
43
- timeout = _ref$timeout === void 0 ? 500 : _ref$timeout,
42
+ timeout = _ref$timeout === void 0 ? 75 : _ref$timeout,
44
43
  _ref$isMobile = _ref.isMobile,
45
44
  isMobile = _ref$isMobile === void 0 ? true : _ref$isMobile,
46
45
  _ref$showSelectedDate = _ref.showSelectedDate,
47
46
  showSelectedDate = _ref$showSelectedDate === void 0 ? false : _ref$showSelectedDate,
47
+ _ref$listItemHeight = _ref.listItemHeight,
48
+ listItemHeight = _ref$listItemHeight === void 0 ? 32 : _ref$listItemHeight,
48
49
  _ref$classes = _ref.classes,
49
50
  classes = _ref$classes === void 0 ? {
50
51
  wrapper: "",
@@ -64,51 +65,69 @@ var MobileCalendar = function MobileCalendar(_ref) {
64
65
  activeItem: ""
65
66
  } : _ref$classes,
66
67
  _ref$onChange = _ref.onChange,
67
- onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
68
+ onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
69
+ _ref$onMinDateReached = _ref.onMinDateReached,
70
+ onMinDateReached = _ref$onMinDateReached === void 0 ? function () {} : _ref$onMinDateReached,
71
+ _ref$onMaxDateReached = _ref.onMaxDateReached,
72
+ onMaxDateReached = _ref$onMaxDateReached === void 0 ? function () {} : _ref$onMaxDateReached;
68
73
  var Body = document.querySelector("body");
69
74
  var listItem = document.querySelector(".mobile-calendar_wrapper_body_months-list--item");
70
75
 
71
- var _useState = (0, _react.useState)(value || (0, _moment.default)()),
76
+ var _useState = (0, _react.useState)(value ? (0, _moment.default)(value) : (0, _moment.default)()),
72
77
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
73
78
  date = _useState2[0],
74
79
  setDate = _useState2[1];
75
80
 
76
- var _useState3 = (0, _react.useState)(false),
81
+ var _useState3 = (0, _react.useState)((0, _moment.default)(min)),
77
82
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
78
- isMouseDown = _useState4[0],
79
- setIsMouseDown = _useState4[1];
83
+ minDate = _useState4[0],
84
+ setMinDate = _useState4[1];
80
85
 
81
- var _useState5 = (0, _react.useState)(null),
86
+ var _useState5 = (0, _react.useState)((0, _moment.default)(max)),
82
87
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
83
- mouseDownOn = _useState6[0],
84
- setMouseDownOn = _useState6[1];
88
+ maxDate = _useState6[0],
89
+ setMaxDate = _useState6[1];
85
90
 
86
- var _useState7 = (0, _react.useState)(null),
91
+ var _useState7 = (0, _react.useState)(false),
87
92
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
88
- changeInterval = _useState8[0],
89
- setChangeInterval = _useState8[1];
93
+ isMouseDown = _useState8[0],
94
+ setIsMouseDown = _useState8[1];
90
95
 
91
96
  var _useState9 = (0, _react.useState)(null),
92
97
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
93
- touchY = _useState10[0],
94
- setTouchY = _useState10[1];
98
+ mouseDownOn = _useState10[0],
99
+ setMouseDownOn = _useState10[1];
95
100
 
96
101
  var _useState11 = (0, _react.useState)(null),
97
102
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
98
- touchType = _useState12[0],
99
- setTouchType = _useState12[1];
103
+ changeInterval = _useState12[0],
104
+ setChangeInterval = _useState12[1];
100
105
 
101
106
  var _useState13 = (0, _react.useState)(null),
102
107
  _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
103
- touchTimestamp = _useState14[0],
104
- setTouchTimestamp = _useState14[1];
108
+ touchY = _useState14[0],
109
+ setTouchY = _useState14[1];
105
110
 
106
- var _useState15 = (0, _react.useState)(0),
111
+ var _useState15 = (0, _react.useState)(null),
107
112
  _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
108
- scrollDirection = _useState16[0],
109
- setScrollDirection = _useState16[1];
113
+ touchType = _useState16[0],
114
+ setTouchType = _useState16[1];
115
+
116
+ var _useState17 = (0, _react.useState)(null),
117
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
118
+ touchTimestamp = _useState18[0],
119
+ setTouchTimestamp = _useState18[1];
120
+
121
+ var _useState19 = (0, _react.useState)(0),
122
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
123
+ scrollDirection = _useState20[0],
124
+ setScrollDirection = _useState20[1];
110
125
 
111
- var listItemHeight = listItem === null || listItem === void 0 ? void 0 : (_listItem$getBounding = listItem.getBoundingClientRect()) === null || _listItem$getBounding === void 0 ? void 0 : _listItem$getBounding.height; //--HANDLERS--//
126
+ var monthsListRef = (0, _react.useRef)(null);
127
+ var daysListRef = (0, _react.useRef)(null);
128
+ var yearsListRef = (0, _react.useRef)(null);
129
+ var dateRef = (0, _react.useRef)(null);
130
+ var intervalRef = (0, _react.useRef)(null); //--HANDLERS--//
112
131
 
113
132
  var changeItem = function changeItem(type, value) {
114
133
  setScrollDirection(value);
@@ -123,6 +142,14 @@ var MobileCalendar = function MobileCalendar(_ref) {
123
142
  }, 50);
124
143
  };
125
144
 
145
+ var checkAvailability = function checkAvailability(type, value) {
146
+ if (!(dateRef !== null && dateRef !== void 0 && dateRef.current)) return false;
147
+ var newDate = (0, _moment.default)(dateRef === null || dateRef === void 0 ? void 0 : dateRef.current).add(value, type);
148
+ if ((0, _moment.default)(newDate).isBefore(minDate)) return false;
149
+ if ((0, _moment.default)(newDate).isAfter(maxDate)) return false;
150
+ return true;
151
+ };
152
+
126
153
  var onArrowMouseDown = function onArrowMouseDown(type, value) {
127
154
  setIsMouseDown(true);
128
155
  setMouseDownOn({
@@ -136,20 +163,36 @@ var MobileCalendar = function MobileCalendar(_ref) {
136
163
  setMouseDownOn(null);
137
164
  };
138
165
 
139
- var _onWheel = function onWheel(e, type) {
166
+ var onWheel = function onWheel(e, type) {
167
+ e.preventDefault();
140
168
  var deltaY = e.deltaY;
169
+ var top = window.scrollX;
170
+ var left = window.scrollY;
171
+ window.scrollTo({
172
+ top: top,
173
+ left: left
174
+ });
141
175
  changeItem(type, deltaY < 0 ? -1 : 1);
142
176
  };
143
177
 
144
- var _onTouchStart = function onTouchStart(e, type) {
178
+ var onTouchStart = function onTouchStart(e, type) {
179
+ e.preventDefault();
180
+
181
+ if (intervalRef !== null && intervalRef !== void 0 && intervalRef.current) {
182
+ clearInterval(intervalRef === null || intervalRef === void 0 ? void 0 : intervalRef.current);
183
+ intervalRef.current = null;
184
+ }
185
+
145
186
  var timeStamp = e.timeStamp,
146
187
  changedTouches = e.changedTouches;
147
188
  var pageY = changedTouches[0].pageY;
148
189
  setTouchY(pageY);
149
190
  setTouchTimestamp(timeStamp);
150
191
  setTouchType(type);
151
- Body === null || Body === void 0 ? void 0 : Body.addEventListener('touchend', function (e) {
192
+ window.addEventListener('touchend', function (e) {
152
193
  return onTouchEnd(e, pageY, timeStamp, type);
194
+ }, {
195
+ once: true
153
196
  });
154
197
  };
155
198
 
@@ -159,7 +202,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
159
202
  changedTouches = e.changedTouches;
160
203
  var pageY = changedTouches[0].pageY;
161
204
  var deltaY = touchY - pageY;
162
- if (Math.abs(deltaY) < listItemHeight / 2) return;
205
+ if (Math.abs(deltaY) < listItemHeight) return;
163
206
  var direction = deltaY < 0 ? -1 : 1;
164
207
  setScrollDirection(direction);
165
208
  changeItem(touchType, direction);
@@ -176,7 +219,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
176
219
  var time = timeStamp - startTime; //ms
177
220
 
178
221
  var pxPerMs = path / time;
179
- if (pxPerMs > 1) innertionScroll({
222
+ if (pxPerMs > 0.65) innertionScroll({
180
223
  startY: startY,
181
224
  pageY: pageY,
182
225
  timeStamp: timeStamp,
@@ -184,7 +227,6 @@ var MobileCalendar = function MobileCalendar(_ref) {
184
227
  touchType: touchType
185
228
  });else setTouchType(null);
186
229
  setTouchY(null);
187
- Body === null || Body === void 0 ? void 0 : Body.clearEventListeners('touchend');
188
230
  };
189
231
 
190
232
  var innertionScroll = function innertionScroll(_ref2) {
@@ -197,22 +239,31 @@ var MobileCalendar = function MobileCalendar(_ref) {
197
239
 
198
240
  var time = timeStamp - startTime; //ms
199
241
 
200
- var pxPerMs = path / time; //speed
242
+ var pxPerMs = Math.ceil(path / time); //speed
201
243
 
202
- var S = pxPerMs / 2 * time / 2;
203
- var blocks = Math.ceil(S / listItemHeight) * 6 * pxPerMs;
204
- var timeout;
205
-
206
- for (var i = 1; i <= blocks; ++i) {
207
- timeout = i * pxPerMs + Math.pow(i, 2) * 1.2;
208
- setTimeout(function () {
244
+ var S = pxPerMs / 2 * time;
245
+ var blocks = Math.ceil(S / listItemHeight * pxPerMs);
246
+ var i = 1;
247
+ intervalRef.current = setInterval(function () {
248
+ if (checkAvailability(touchType, startY - pageY < 0 ? -1 : 1, date) && i <= blocks) {
209
249
  changeItem(touchType, startY - pageY < 0 ? -1 : 1);
210
- }, timeout);
211
- }
250
+ } else {
251
+ setTouchType(null);
252
+ clearInterval(intervalRef === null || intervalRef === void 0 ? void 0 : intervalRef.current);
253
+ intervalRef.current = null;
254
+ }
212
255
 
213
- setTimeout(function () {
214
- setTouchType(null);
215
- }, timeout);
256
+ ++i;
257
+ }, timeout); // for(let i = 1; i <= blocks; ++i){
258
+ // // timeout = i*pxPerMs+Math.pow(i,2)*10;
259
+ // timeout += 80;
260
+ // if(checkAvailability(touchType, startY-pageY < 0 ? -1 : 1, date)){
261
+ // setTimeout(() => {
262
+ // console.log({timeout})
263
+ // changeItem(touchType, startY-pageY < 0 ? -1 : 1);
264
+ // }, timeout)
265
+ // }
266
+ // }
216
267
  }; //--FUNCTIONS--//
217
268
 
218
269
 
@@ -245,9 +296,13 @@ var MobileCalendar = function MobileCalendar(_ref) {
245
296
  var getYearsList = function getYearsList() {
246
297
  return getList('years', 'YYYY');
247
298
  }; //--OBSERVERS--//
248
- //Events Observer
249
299
 
250
300
 
301
+ (0, _react.useEffect)(function () {
302
+ if ((0, _moment.default)(date.format("L")).isBefore(minDate.format("L"))) setDate(minDate);
303
+ if ((0, _moment.default)(date.format("L")).isAfter(maxDate.format("L"))) setDate(maxDate);
304
+ }, []); //Events Observer
305
+
251
306
  (0, _react.useEffect)(function () {
252
307
  document.addEventListener('mouseup', onArrowMouseUp);
253
308
  return function () {
@@ -256,7 +311,76 @@ var MobileCalendar = function MobileCalendar(_ref) {
256
311
  }, []);
257
312
  (0, _react.useEffect)(function () {
258
313
  onChange(date);
259
- }, [date]); //--RENDER--//
314
+ dateRef.current = date;
315
+ if ((0, _moment.default)(date.format("L")).isSame(minDate.format("L"))) onMinDateReached(minDate);
316
+ if ((0, _moment.default)(date.format("L")).isSame(maxDate.format("L"))) onMaxDateReached(maxDate);
317
+ }, [date]); //monthList Events
318
+
319
+ (0, _react.useEffect)(function () {
320
+ var _monthsListRef$curren, _monthsListRef$curren2;
321
+
322
+ if (!(monthsListRef !== null && monthsListRef !== void 0 && monthsListRef.current)) return;
323
+ monthsListRef === null || monthsListRef === void 0 ? void 0 : (_monthsListRef$curren = monthsListRef.current) === null || _monthsListRef$curren === void 0 ? void 0 : _monthsListRef$curren.addEventListener("mousewheel", function (e) {
324
+ return onWheel(e, "months");
325
+ }, {
326
+ passive: false
327
+ });
328
+ monthsListRef === null || monthsListRef === void 0 ? void 0 : (_monthsListRef$curren2 = monthsListRef.current) === null || _monthsListRef$curren2 === void 0 ? void 0 : _monthsListRef$curren2.addEventListener("touchstart", function (e) {
329
+ return onTouchStart(e, "months");
330
+ }, {
331
+ passive: false
332
+ });
333
+ return function () {
334
+ var _monthsListRef$curren3, _monthsListRef$curren4;
335
+
336
+ monthsListRef === null || monthsListRef === void 0 ? void 0 : (_monthsListRef$curren3 = monthsListRef.current) === null || _monthsListRef$curren3 === void 0 ? void 0 : _monthsListRef$curren3.clearEventListeners("mousewheel");
337
+ monthsListRef === null || monthsListRef === void 0 ? void 0 : (_monthsListRef$curren4 = monthsListRef.current) === null || _monthsListRef$curren4 === void 0 ? void 0 : _monthsListRef$curren4.clearEventListeners("touchstart");
338
+ };
339
+ }, [monthsListRef]); //daysList Events
340
+
341
+ (0, _react.useEffect)(function () {
342
+ var _daysListRef$current, _daysListRef$current2;
343
+
344
+ if (!(daysListRef !== null && daysListRef !== void 0 && daysListRef.current)) return;
345
+ daysListRef === null || daysListRef === void 0 ? void 0 : (_daysListRef$current = daysListRef.current) === null || _daysListRef$current === void 0 ? void 0 : _daysListRef$current.addEventListener("mousewheel", function (e) {
346
+ return onWheel(e, "days");
347
+ }, {
348
+ passive: false
349
+ });
350
+ daysListRef === null || daysListRef === void 0 ? void 0 : (_daysListRef$current2 = daysListRef.current) === null || _daysListRef$current2 === void 0 ? void 0 : _daysListRef$current2.addEventListener("touchstart", function (e) {
351
+ return onTouchStart(e, "days");
352
+ }, {
353
+ passive: false
354
+ });
355
+ return function () {
356
+ var _daysListRef$current3, _daysListRef$current4;
357
+
358
+ daysListRef === null || daysListRef === void 0 ? void 0 : (_daysListRef$current3 = daysListRef.current) === null || _daysListRef$current3 === void 0 ? void 0 : _daysListRef$current3.clearEventListeners("mousewheel");
359
+ daysListRef === null || daysListRef === void 0 ? void 0 : (_daysListRef$current4 = daysListRef.current) === null || _daysListRef$current4 === void 0 ? void 0 : _daysListRef$current4.clearEventListeners("touchstart");
360
+ };
361
+ }, [daysListRef]); //yearsList Events
362
+
363
+ (0, _react.useEffect)(function () {
364
+ var _yearsListRef$current, _yearsListRef$current2;
365
+
366
+ if (!(yearsListRef !== null && yearsListRef !== void 0 && yearsListRef.current)) return;
367
+ yearsListRef === null || yearsListRef === void 0 ? void 0 : (_yearsListRef$current = yearsListRef.current) === null || _yearsListRef$current === void 0 ? void 0 : _yearsListRef$current.addEventListener("mousewheel", function (e) {
368
+ return onWheel(e, "years");
369
+ }, {
370
+ passive: false
371
+ });
372
+ yearsListRef === null || yearsListRef === void 0 ? void 0 : (_yearsListRef$current2 = yearsListRef.current) === null || _yearsListRef$current2 === void 0 ? void 0 : _yearsListRef$current2.addEventListener("touchstart", function (e) {
373
+ return onTouchStart(e, "years");
374
+ }, {
375
+ passive: false
376
+ });
377
+ return function () {
378
+ var _yearsListRef$current3, _yearsListRef$current4;
379
+
380
+ yearsListRef === null || yearsListRef === void 0 ? void 0 : (_yearsListRef$current3 = yearsListRef.current) === null || _yearsListRef$current3 === void 0 ? void 0 : _yearsListRef$current3.clearEventListeners("mousewheel");
381
+ yearsListRef === null || yearsListRef === void 0 ? void 0 : (_yearsListRef$current4 = yearsListRef.current) === null || _yearsListRef$current4 === void 0 ? void 0 : _yearsListRef$current4.clearEventListeners("touchstart");
382
+ };
383
+ }, [yearsListRef]); //--RENDER--//
260
384
 
261
385
  var renderMonthsList = function renderMonthsList() {
262
386
  var half = (rows - 1) / 2;
@@ -303,7 +427,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
303
427
  });
304
428
  };
305
429
 
306
- var renderMonthBlock = function renderMonthBlock() {
430
+ var renderMonthsBlock = function renderMonthsBlock() {
307
431
  return /*#__PURE__*/_react.default.createElement("div", {
308
432
  className: "mobile-calendar_wrapper_body_months ".concat(classes === null || classes === void 0 ? void 0 : classes.monthsBlock)
309
433
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -318,12 +442,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
318
442
  onMouseUp: onArrowMouseUp
319
443
  })), /*#__PURE__*/_react.default.createElement("div", {
320
444
  className: "mobile-calendar_wrapper_body_months-list ".concat(classes === null || classes === void 0 ? void 0 : classes.monthsList),
321
- onTouchStart: function onTouchStart(e) {
322
- return _onTouchStart(e, "months");
323
- },
324
- onWheel: function onWheel(e) {
325
- return _onWheel(e, "months");
326
- }
445
+ ref: monthsListRef
327
446
  }, renderMonthsList(), isMobile && /*#__PURE__*/_react.default.createElement("div", {
328
447
  className: "mobile-calendar_wrapper_body_months-list_touch-zone"
329
448
  })), /*#__PURE__*/_react.default.createElement("div", {
@@ -354,12 +473,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
354
473
  onMouseUp: onArrowMouseUp
355
474
  })), /*#__PURE__*/_react.default.createElement("div", {
356
475
  className: "mobile-calendar_wrapper_body_days-list ".concat(classes === null || classes === void 0 ? void 0 : classes.daysList),
357
- onTouchStart: function onTouchStart(e) {
358
- return _onTouchStart(e, "days");
359
- },
360
- onWheel: function onWheel(e) {
361
- return _onWheel(e, "days");
362
- }
476
+ ref: daysListRef
363
477
  }, renderDaysList(), isMobile && /*#__PURE__*/_react.default.createElement("div", {
364
478
  className: "mobile-calendar_wrapper_body_days-list_touch-zone"
365
479
  })), /*#__PURE__*/_react.default.createElement("div", {
@@ -390,12 +504,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
390
504
  onMouseUp: onArrowMouseUp
391
505
  })), /*#__PURE__*/_react.default.createElement("div", {
392
506
  className: "mobile-calendar_wrapper_body_years-list ".concat(classes === null || classes === void 0 ? void 0 : classes.yearsList),
393
- onTouchStart: function onTouchStart(e) {
394
- return _onTouchStart(e, "years");
395
- },
396
- onWheel: function onWheel(e) {
397
- return _onWheel(e, "years");
398
- }
507
+ ref: yearsListRef
399
508
  }, renderYearsList(), isMobile && /*#__PURE__*/_react.default.createElement("div", {
400
509
  className: "mobile-calendar_wrapper_body_years-list_touch-zone"
401
510
  })), /*#__PURE__*/_react.default.createElement("div", {
@@ -420,7 +529,7 @@ var MobileCalendar = function MobileCalendar(_ref) {
420
529
  className: "mobile-calendar_wrapper_label ".concat(classes === null || classes === void 0 ? void 0 : classes.label)
421
530
  }, (0, _moment.default)(date).format("LL")), /*#__PURE__*/_react.default.createElement("div", {
422
531
  className: "mobile-calendar_wrapper_body ".concat(classes === null || classes === void 0 ? void 0 : classes.body)
423
- }, renderMonthBlock(), renderDaysBlock(), renderYearsBlock()));
532
+ }, renderMonthsBlock(), renderDaysBlock(), renderYearsBlock()));
424
533
  };
425
534
 
426
535
  var _default = MobileCalendar;
@@ -43,29 +43,29 @@
43
43
  position: relative;
44
44
  overflow: hidden;
45
45
 
46
- &::before,
47
- &::after{
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
- color: #3B414B;
52
- height: 32px;
53
- width: 90px;
54
- cursor: pointer;
55
- content: "0000";
56
- background-color: red;
57
- position: absolute;
58
- }
59
-
60
- &::before{
61
- top: 0;
62
- transform: translateY(-100%);
63
- }
64
-
65
- &::after{
66
- bottom: 0;
67
- transform: translateY(100%);
68
- }
46
+ // &::before,
47
+ // &::after{
48
+ // display: flex;
49
+ // align-items: center;
50
+ // justify-content: center;
51
+ // color: #3B414B;
52
+ // height: 32px;
53
+ // width: 90px;
54
+ // cursor: pointer;
55
+ // content: "0000";
56
+ // background-color: red;
57
+ // position: absolute;
58
+ // }
59
+
60
+ // &::before{
61
+ // top: 0;
62
+ // transform: translateY(-100%);
63
+ // }
64
+
65
+ // &::after{
66
+ // bottom: 0;
67
+ // transform: translateY(100%);
68
+ // }
69
69
 
70
70
  &--item{
71
71
  display: flex;