intelicoreact 0.0.95 → 0.0.98

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 (166) hide show
  1. package/dist/Atomic/FormElements/Input/Input.js +3 -1
  2. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  3. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +4 -4
  4. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +179 -70
  5. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +23 -23
  6. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +87 -12
  7. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  8. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  9. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  10. package/dist/Functions/inputExecutor.js +7 -1
  11. package/{src → dist}/Functions/useMouseUpOutside.js +13 -4
  12. package/dist/Functions/useToggle.js +40 -0
  13. package/dist/Functions/utils.js +66 -0
  14. package/dist/Molecular/Datepicker/Datepicker.js +451 -0
  15. package/{src → dist}/Molecular/Datepicker/Datepicker.scss +0 -0
  16. package/dist/Molecular/Datepicker/Datepicker.stories.js +44 -0
  17. package/dist/Molecular/Datepicker/components/Calendar.js +156 -0
  18. package/dist/Molecular/FormElements/FormElement.js +40 -0
  19. package/{src → dist}/Molecular/FormElements/FormElement.scss +0 -0
  20. package/dist/Molecular/FormElements/FormElement.stories.js +73 -0
  21. package/dist/index.js +15 -0
  22. package/{src → dist}/scss/_fonts.scss +0 -0
  23. package/{src → dist}/scss/_vars.scss +0 -0
  24. package/{src → dist}/scss/main.scss +0 -0
  25. package/package.json +3 -2
  26. package/.babelrc +0 -12
  27. package/.eslintignore +0 -10
  28. package/.eslintrc.json +0 -93
  29. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  30. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  31. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  32. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  33. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  34. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  35. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  36. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  37. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  38. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  39. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  40. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  41. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  42. package/src/Atomic/FormElements/Header/Header.js +0 -67
  43. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  44. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  45. package/src/Atomic/FormElements/Input/Input.js +0 -186
  46. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  47. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  48. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -104
  49. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  50. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  51. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -254
  52. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  53. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -65
  54. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -432
  55. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -126
  56. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  57. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  58. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  59. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  60. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  61. package/src/Atomic/FormElements/Label/Label.js +0 -13
  62. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  63. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  64. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -315
  65. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +0 -120
  66. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -30
  67. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  68. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  69. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  70. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  71. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  72. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  73. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  74. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  75. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  76. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  77. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  78. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  79. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  80. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  81. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  82. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -152
  83. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  84. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  85. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  86. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  87. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  88. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  89. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  90. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  91. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  92. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  93. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  94. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  95. package/src/Atomic/FormElements/Table/Table.js +0 -50
  96. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  97. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  98. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  99. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  100. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  101. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  102. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  103. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  104. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  105. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  106. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  107. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  108. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  109. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  110. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  111. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  112. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  113. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  114. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  115. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  116. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  117. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  118. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  119. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  120. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  121. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  122. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  123. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  124. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  125. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  126. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  127. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  128. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  129. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  130. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  131. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  132. package/src/Atomic/UI/Alert/Alert.js +0 -23
  133. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  134. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  135. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  136. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  137. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  138. package/src/Atomic/UI/Button/Button.js +0 -17
  139. package/src/Atomic/UI/Button/Button.scss +0 -108
  140. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  141. package/src/Atomic/UI/Calendar/Calendar.js +0 -190
  142. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  143. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  144. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  145. package/src/Atomic/UI/Hint/Hint.js +0 -34
  146. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  147. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  148. package/src/Atomic/UI/Price/Price.js +0 -20
  149. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  150. package/src/Atomic/UI/Status/Status.js +0 -38
  151. package/src/Atomic/UI/Status/Status.scss +0 -69
  152. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  153. package/src/Constants/index.constants.js +0 -41
  154. package/src/Functions/customEventListener.js +0 -58
  155. package/src/Functions/inputExecutor.js +0 -53
  156. package/src/Functions/schemas.js +0 -31
  157. package/src/Functions/useClickOutside.js +0 -15
  158. package/src/Functions/useToggle.js +0 -17
  159. package/src/Functions/utils.js +0 -51
  160. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  161. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  162. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  163. package/src/Molecular/FormElements/FormElement.js +0 -18
  164. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  165. package/src/index.js +0 -3
  166. package/webpack.config.js +0 -61
@@ -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;
@@ -15,6 +15,8 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _MobileCalendar = _interopRequireDefault(require("./MobileCalendar"));
17
17
 
18
+ var _moment = _interopRequireDefault(require("moment"));
19
+
18
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); }
19
21
 
20
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; }
@@ -24,8 +26,65 @@ var _default = {
24
26
  title: 'Form Elements/Mobile Calendar',
25
27
  component: _MobileCalendar.default,
26
28
  argTypes: {
29
+ min: {
30
+ description: 'Min Date',
31
+ control: {
32
+ type: "date"
33
+ }
34
+ },
35
+ max: {
36
+ description: 'Max Date',
37
+ control: {
38
+ type: "date"
39
+ }
40
+ },
27
41
  value: {
28
- description: 'string (mm.dd.yyyy)'
42
+ description: 'Value',
43
+ control: {
44
+ type: "date"
45
+ }
46
+ },
47
+ rows: {
48
+ description: 'Calendar Rows',
49
+ control: {
50
+ type: "number"
51
+ }
52
+ },
53
+ label: {
54
+ description: 'Calendar Label',
55
+ control: {
56
+ type: "text"
57
+ }
58
+ },
59
+ timeout: {
60
+ description: 'Scroll Timeout',
61
+ control: {
62
+ type: "number"
63
+ }
64
+ },
65
+ isMobile: {
66
+ description: 'Touch Scroll Switcher'
67
+ },
68
+ showSelectedDate: {
69
+ description: 'Selected Date Block Visibility'
70
+ },
71
+ listItemHeight: {
72
+ description: 'List Item Height For Scroll Calculate',
73
+ control: {
74
+ type: "number"
75
+ }
76
+ },
77
+ classes: {
78
+ description: 'Style Classes'
79
+ },
80
+ onChange: {
81
+ description: 'On Change Callback'
82
+ },
83
+ onMinDateReached: {
84
+ description: 'On Min Date Reached Callback'
85
+ },
86
+ onMaxDateReached: {
87
+ description: 'On Max Date Reached Callback'
29
88
  }
30
89
  }
31
90
  };
@@ -37,20 +96,36 @@ var Template = function Template(args) {
37
96
  date = _useState2[0],
38
97
  setDate = _useState2[1];
39
98
 
40
- return /*#__PURE__*/_react.default.createElement(_MobileCalendar.default, {
41
- classes: {
42
- wrapper: "123"
43
- },
44
- onChange: console.log
45
- });
99
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_MobileCalendar.default, args));
46
100
  };
47
101
 
48
102
  var CalendarTemplate = Template.bind({});
49
103
  exports.CalendarTemplate = CalendarTemplate;
50
104
  CalendarTemplate.args = {
51
- value: '',
52
- minDate: '01/01/1900',
53
- maxDate: '01/01/2100',
54
- isDontLimitFuture: true // isListTop: true,
55
-
105
+ min: "",
106
+ max: "",
107
+ value: "",
108
+ rows: 5,
109
+ label: "",
110
+ timeout: 75,
111
+ isMobile: true,
112
+ showSelectedDate: false,
113
+ listItemHeight: 32,
114
+ classes: {
115
+ wrapper: "",
116
+ label: "",
117
+ body: "",
118
+ yearsBlock: "",
119
+ yearsList: "",
120
+ yearsListItem: "",
121
+ monthsBlock: "",
122
+ monthsList: "",
123
+ monthsListItem: "",
124
+ daysBlock: "",
125
+ daysList: "",
126
+ daysListItem: "",
127
+ prevItem: "",
128
+ nextItem: "",
129
+ activeItem: ""
130
+ }
56
131
  };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ require("./Spinner.scss");
9
+
10
+ var Spinner = function Spinner(_ref) {
11
+ var _ref$little = _ref.little,
12
+ little = _ref$little === void 0 ? false : _ref$little;
13
+ return /*#__PURE__*/React.createElement("div", {
14
+ className: "loader-box ".concat(little ? 'j8' : 'j5')
15
+ }, /*#__PURE__*/React.createElement("div", {
16
+ className: "lds-ring ".concat(little ? 'lds-ring_little' : '')
17
+ }, /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null), /*#__PURE__*/React.createElement("div", null)));
18
+ };
19
+
20
+ var _default = Spinner;
21
+ exports.default = _default;