intelicoreact 0.0.4 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) 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/DateTime/DateTime.stories.js +1 -1
  5. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +64 -32
  6. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +26 -3
  7. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +40 -9
  8. package/dist/Atomic/FormElements/Input/Input.js +141 -97
  9. package/dist/Atomic/FormElements/Input/Input.scss +18 -15
  10. package/dist/Atomic/FormElements/Input/Input.stories.js +46 -29
  11. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +89 -0
  12. package/dist/Atomic/FormElements/{Calendar/Calendar.stories.js → InputCalendar/InputCalendar.stories.js} +19 -20
  13. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +234 -0
  14. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.scss +626 -0
  15. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +91 -0
  16. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +491 -0
  17. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +156 -0
  18. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +46 -0
  19. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +249 -0
  20. package/dist/Atomic/FormElements/Label/Label.js +3 -10
  21. package/dist/Atomic/FormElements/Label/Label.scss +2 -0
  22. package/dist/Atomic/FormElements/Label/Label.stories.js +5 -4
  23. package/dist/Atomic/FormElements/Modal/Modal.stories.js +64 -18
  24. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +254 -0
  25. package/dist/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
  26. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +121 -0
  27. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +167 -0
  28. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  29. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +81 -0
  30. package/dist/Atomic/FormElements/Table/Table.scss +1 -1
  31. package/dist/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  32. package/dist/Atomic/MainMenu/MainMenu.scss +2 -2
  33. package/dist/Atomic/UI/Accordion/Accordion.scss +2 -2
  34. package/dist/Atomic/UI/Arrow/Arrow.js +80 -0
  35. package/dist/Atomic/UI/Arrow/Arrow.scss +19 -0
  36. package/dist/Atomic/UI/Arrow/Arrow.stories.js +46 -0
  37. package/dist/Atomic/UI/Button/Button.js +4 -2
  38. package/dist/Atomic/UI/Button/Button.scss +26 -0
  39. package/dist/Atomic/UI/Button/Button.stories.js +2 -2
  40. package/dist/Atomic/UI/Calendar/Calendar.js +146 -0
  41. package/dist/Atomic/UI/Calendar/Calendar.scss +544 -0
  42. package/dist/Atomic/UI/Calendar/Calendar.stories.js +38 -0
  43. package/dist/Atomic/UI/Price/Price.js +1 -0
  44. package/dist/Atomic/UI/Status/Status.scss +1 -1
  45. package/dist/Constants/index.constants.js +8 -0
  46. package/dist/Functions/inputExecutor.js +58 -0
  47. package/dist/Functions/useClickOutside.js +25 -0
  48. package/dist/Functions/utils.js +10 -2
  49. package/dist/Molecular/Datepicker/Datepicker.js +451 -0
  50. package/dist/Molecular/Datepicker/Datepicker.scss +8 -0
  51. package/dist/Molecular/Datepicker/Datepicker.stories.js +44 -0
  52. package/dist/Molecular/Datepicker/components/Calendar.js +156 -0
  53. package/dist/Molecular/FormElements/FormElement.js +40 -0
  54. package/dist/Molecular/FormElements/FormElement.scss +8 -0
  55. package/dist/Molecular/FormElements/FormElement.stories.js +73 -0
  56. package/dist/scss/_vars.scss +3 -1
  57. package/dist/scss/main.scss +3 -3
  58. package/package.json +9 -4
  59. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +12 -2
  60. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +91 -60
  61. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +4 -3
  62. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +1 -1
  63. package/src/Atomic/FormElements/Dropdown/Dropdown.js +57 -19
  64. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +26 -3
  65. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +37 -15
  66. package/src/Atomic/FormElements/Input/Input.js +136 -79
  67. package/src/Atomic/FormElements/Input/Input.scss +18 -15
  68. package/src/Atomic/FormElements/Input/Input.stories.js +48 -31
  69. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +43 -0
  70. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +27 -0
  71. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +214 -0
  72. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +626 -0
  73. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +61 -0
  74. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +412 -0
  75. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +114 -0
  76. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +24 -0
  77. package/src/Atomic/FormElements/InputDateRange/dependencies.js +161 -0
  78. package/src/Atomic/FormElements/Label/Label.js +3 -4
  79. package/src/Atomic/FormElements/Label/Label.scss +2 -0
  80. package/src/Atomic/FormElements/Label/Label.stories.js +5 -4
  81. package/src/Atomic/FormElements/Modal/Modal.stories.js +60 -15
  82. package/src/Atomic/FormElements/NumericInput/NumericInput.js +220 -0
  83. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +135 -0
  84. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +94 -0
  85. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +146 -0
  86. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  87. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +54 -0
  88. package/src/Atomic/FormElements/Table/Table.scss +1 -1
  89. package/src/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  90. package/src/Atomic/MainMenu/MainMenu.scss +2 -2
  91. package/src/Atomic/UI/Accordion/Accordion.scss +2 -2
  92. package/src/Atomic/UI/Arrow/Arrow.js +41 -0
  93. package/src/Atomic/UI/Arrow/Arrow.scss +19 -0
  94. package/src/Atomic/UI/Arrow/Arrow.stories.js +32 -0
  95. package/src/Atomic/UI/Button/Button.js +3 -3
  96. package/src/Atomic/UI/Button/Button.scss +26 -0
  97. package/src/Atomic/UI/Button/Button.stories.js +4 -3
  98. package/src/Atomic/{FormElements → UI}/Calendar/Calendar.js +26 -23
  99. package/src/Atomic/UI/Calendar/Calendar.scss +544 -0
  100. package/src/Atomic/UI/Calendar/Calendar.stories.js +24 -0
  101. package/src/Atomic/UI/Price/Price.js +1 -0
  102. package/src/Atomic/UI/Status/Status.scss +1 -1
  103. package/src/Constants/index.constants.js +41 -0
  104. package/src/Functions/inputExecutor.js +62 -0
  105. package/src/Functions/useClickOutside.js +15 -0
  106. package/src/Functions/utils.js +10 -1
  107. package/src/Molecular/Datepicker/Datepicker.js +346 -0
  108. package/src/Molecular/Datepicker/Datepicker.scss +8 -0
  109. package/src/Molecular/Datepicker/Datepicker.stories.js +27 -0
  110. package/src/Molecular/Datepicker/components/Calendar.js +118 -0
  111. package/src/Molecular/FormElements/FormElement.js +18 -0
  112. package/src/Molecular/FormElements/FormElement.scss +8 -0
  113. package/src/Molecular/FormElements/FormElement.stories.js +59 -0
  114. package/src/scss/_vars.scss +3 -1
  115. package/src/scss/main.scss +3 -3
  116. package/dist/Atomic/FormElements/Calendar/Calendar.js +0 -127
  117. package/dist/Atomic/FormElements/Calendar/Calendar.scss +0 -498
  118. package/dist/scss/anme/_anme-bootstrap-grid.scss +0 -748
  119. package/dist/scss/anme/_anme-elements.scss +0 -269
  120. package/dist/scss/anme/_anme-grid.scss +0 -111
  121. package/dist/scss/anme/_anme-justify.scss +0 -111
  122. package/dist/scss/anme/_anme-mixins-media.scss +0 -116
  123. package/dist/scss/anme/_anme-mixins.scss +0 -166
  124. package/dist/scss/anme/_anme-normalize.scss +0 -8
  125. package/dist/scss/anme/_anme-overall.scss +0 -34
  126. package/dist/scss/anme/_anme-padding-margins.scss +0 -419
  127. package/dist/scss/anme/_anme-table.scss +0 -81
  128. package/dist/scss/anme/_anme-theme.scss +0 -275
  129. package/dist/scss/anme/_anme-vars.scss +0 -91
  130. package/dist/scss/anme/_code-styling.scss +0 -23
  131. package/dist/scss/anme/styles.scss +0 -12
  132. package/src/Atomic/FormElements/Calendar/Calendar.scss +0 -498
  133. package/src/Atomic/FormElements/Calendar/Calendar.stories.js +0 -26
  134. package/src/scss/anme/_anme-bootstrap-grid.scss +0 -748
  135. package/src/scss/anme/_anme-elements.scss +0 -269
  136. package/src/scss/anme/_anme-grid.scss +0 -111
  137. package/src/scss/anme/_anme-justify.scss +0 -111
  138. package/src/scss/anme/_anme-mixins-media.scss +0 -116
  139. package/src/scss/anme/_anme-mixins.scss +0 -166
  140. package/src/scss/anme/_anme-normalize.scss +0 -8
  141. package/src/scss/anme/_anme-overall.scss +0 -34
  142. package/src/scss/anme/_anme-padding-margins.scss +0 -419
  143. package/src/scss/anme/_anme-table.scss +0 -81
  144. package/src/scss/anme/_anme-theme.scss +0 -275
  145. package/src/scss/anme/_anme-vars.scss +0 -91
  146. package/src/scss/anme/_code-styling.scss +0 -23
  147. package/src/scss/anme/styles.scss +0 -12
@@ -0,0 +1,491 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _dependencies = require("../dependencies");
23
+
24
+ var _Dropdown = _interopRequireDefault(require("../../Dropdown/Dropdown"));
25
+
26
+ var _Input = _interopRequireDefault(require("../../Input/Input"));
27
+
28
+ var _Button = _interopRequireDefault(require("../../../UI/Button/Button"));
29
+
30
+ var _RangeCalendar = _interopRequireDefault(require("../../RangeCalendar/RangeCalendar"));
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ // eslint-disable-next-line no-unused-vars
37
+ // import Switcher from '../../Switcher/Switcher';
38
+ var padTime = function padTime(time) {
39
+ return "".concat(time.toString().padStart(2, '0'), ":00");
40
+ };
41
+
42
+ var handleDateInputOnChange = function handleDateInputOnChange(value) {
43
+ var replace = function replace(val) {
44
+ return val.replace(/[^0-9\/]/g, '');
45
+ };
46
+
47
+ var input = replace(value);
48
+ var lastSymbol = input ? input.slice(-1) : '';
49
+ var previousValue = input ? input.slice(0, input.length - 1) : '';
50
+ if (value.length > 10 || lastSymbol === '/') return previousValue;
51
+ return previousValue.length === 2 || previousValue.length === 5 ? previousValue + '/' + lastSymbol : input;
52
+ };
53
+
54
+ var Datepicker = function Datepicker(props) {
55
+ var txt = props.txt,
56
+ className = props.className,
57
+ _props$buttonsTypes = props.buttonsTypes,
58
+ buttonsTypes = _props$buttonsTypes === void 0 ? {} : _props$buttonsTypes,
59
+ _props$values = props.values,
60
+ values = _props$values === void 0 ? {} : _props$values,
61
+ onChange = props.onChange,
62
+ onChangeCompare = props.onChangeCompare,
63
+ onCancel = props.onCancel,
64
+ getSelectedMode = props.getSelectedMode,
65
+ onChangeInterval = props.onChangeInterval,
66
+ isCompareHidden = props.isCompareHidden,
67
+ limitRange = props.limitRange,
68
+ handleItemClick = props.handleItemClick,
69
+ setActiveInterval = props.setActiveInterval,
70
+ isShortWeekNames = props.isShortWeekNames;
71
+ var _values$start = values.start,
72
+ start = _values$start === void 0 ? null : _values$start,
73
+ _values$end = values.end,
74
+ end = _values$end === void 0 ? null : _values$end,
75
+ _values$compare = values.compare,
76
+ compare = _values$compare === void 0 ? false : _values$compare;
77
+ var startDateInputRef = (0, _react.useRef)(null);
78
+ var endDateInputRef = (0, _react.useRef)(null);
79
+
80
+ var _useState = (0, _react.useState)(start),
81
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
82
+ startDate = _useState2[0],
83
+ setStartDate = _useState2[1];
84
+
85
+ var _useState3 = (0, _react.useState)(end),
86
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
87
+ endDate = _useState4[0],
88
+ setEndDate = _useState4[1];
89
+
90
+ var dateInterval = getSelectedMode({
91
+ start: startDate,
92
+ end: endDate
93
+ });
94
+
95
+ var _useState5 = (0, _react.useState)(start),
96
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
97
+ startDateInput = _useState6[0],
98
+ setStartDateInput = _useState6[1];
99
+
100
+ var _useState7 = (0, _react.useState)(end),
101
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
102
+ endDateInput = _useState8[0],
103
+ setEndDateInput = _useState8[1];
104
+
105
+ var _useState9 = (0, _react.useState)(start ? (0, _momentTimezone.default)(start).hour() : 0),
106
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
107
+ startHour = _useState10[0],
108
+ setStartHour = _useState10[1];
109
+
110
+ var _useState11 = (0, _react.useState)(end ? (0, _momentTimezone.default)(end).hour() : 0),
111
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
112
+ endHour = _useState12[0],
113
+ setEndHour = _useState12[1]; // eslint-disable-next-line no-unused-vars
114
+
115
+
116
+ var _useState13 = (0, _react.useState)(compare),
117
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
118
+ isCompare = _useState14[0],
119
+ setIsCompare = _useState14[1];
120
+
121
+ var _useState15 = (0, _react.useState)(start ? (0, _momentTimezone.default)(start).toDate() : (0, _momentTimezone.default)().subtract(1, 'month').toDate()),
122
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
123
+ date1 = _useState16[0],
124
+ setDate1 = _useState16[1];
125
+
126
+ var _useState17 = (0, _react.useState)(end ? (0, _momentTimezone.default)(end).toDate() : (0, _momentTimezone.default)().toDate()),
127
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
128
+ date2 = _useState18[0],
129
+ setDate2 = _useState18[1];
130
+
131
+ var _useState19 = (0, _react.useState)(false),
132
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
133
+ isStartFocused = _useState20[0],
134
+ setIsStartFocused = _useState20[1];
135
+
136
+ var _useState21 = (0, _react.useState)(false),
137
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
138
+ isEndFocused = _useState22[0],
139
+ setIsEndFocused = _useState22[1];
140
+
141
+ var _useState23 = (0, _react.useState)(null),
142
+ _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
143
+ hoverStatus = _useState24[0],
144
+ setHoverStatus = _useState24[1];
145
+
146
+ var isNearby = (0, _react.useMemo)(function () {
147
+ return (0, _momentTimezone.default)(date2).subtract(1, 'month').isSame((0, _momentTimezone.default)(date1), 'month');
148
+ }, [date1, date2]);
149
+ var isPreviousPeriodShowed = (0, _react.useMemo)(function () {
150
+ return isCompare && !isCompareHidden && startDate && endDate;
151
+ }, [startDate, endDate, isCompare]);
152
+
153
+ var setInterval = function setInterval() {
154
+ setActiveInterval((0, _dependencies.getActualDateRange)({
155
+ start: startDate,
156
+ end: endDate
157
+ }).intervalKey);
158
+ };
159
+
160
+ var prevEndHour = (0, _react.useRef)(endHour);
161
+
162
+ var getStartHourItems = function getStartHourItems() {
163
+ return (0, _toConsumableArray2.default)(Array(24).keys()).map(function (hour) {
164
+ return {
165
+ label: padTime(hour),
166
+ value: hour,
167
+ disabled: (0, _momentTimezone.default)(startDate).isSame(endDate, 'day') && endHour <= hour
168
+ };
169
+ });
170
+ };
171
+
172
+ var getEndHourItems = function getEndHourItems() {
173
+ return (0, _toConsumableArray2.default)(Array(24).keys()).map(function (hour) {
174
+ return {
175
+ label: padTime(hour + 1),
176
+ value: hour === 23 ? 0 : hour + 1,
177
+ disabled: ((0, _momentTimezone.default)(startDate).isSame(endDate, 'day') || (0, _momentTimezone.default)(startDate).isSame((0, _momentTimezone.default)(endDate).subtract(1, 'days'), 'day') && endHour === 0) && hour < startHour
178
+ };
179
+ });
180
+ };
181
+
182
+ var startPrevDate = (0, _react.useMemo)(function () {
183
+ if (isPreviousPeriodShowed) {
184
+ var intervalHoursCount = (0, _momentTimezone.default)(endDate).diff(startDate, 'hours');
185
+ return (0, _momentTimezone.default)(startDate).subtract(intervalHoursCount, 'hours').toDate();
186
+ } else return null;
187
+ }, [startDate, endDate, isCompare]);
188
+ var endPrevDate = (0, _react.useMemo)(function () {
189
+ if (isPreviousPeriodShowed) {
190
+ return startDate;
191
+ } else return null;
192
+ }, [startDate, endDate, isCompare]);
193
+ var title = (0, _react.useMemo)(function () {
194
+ if (isCompare && !isCompareHidden && startDate && endDate) {
195
+ return "".concat((0, _momentTimezone.default)(startPrevDate).format('ll'), " (").concat((0, _momentTimezone.default)(startPrevDate).format('HH:mm'), ") - ").concat((0, _momentTimezone.default)(endPrevDate).format('ll'), " (").concat((0, _momentTimezone.default)(endPrevDate).format('HH:mm'), ")");
196
+ } else return '';
197
+ }, [startDate, endDate, isCompare]);
198
+
199
+ var subtractDay = function subtractDay(date) {
200
+ return endHour === 0 ? (0, _momentTimezone.default)(date).subtract(1, 'days') : date;
201
+ };
202
+
203
+ var addDay = function addDay(date) {
204
+ return endHour === 0 ? (0, _momentTimezone.default)(date).add(1, 'days') : date;
205
+ };
206
+
207
+ (0, _react.useEffect)(function () {
208
+ if ((0, _momentTimezone.default)(startDate).isSameOrAfter(endDate)) {
209
+ setStartDate((0, _momentTimezone.default)(endDate).subtract(1, 'd').toDate());
210
+ setDate1((0, _momentTimezone.default)(endDate).subtract(1, 'd'));
211
+ }
212
+ }, [startDate]);
213
+ (0, _react.useEffect)(function () {
214
+ if ((0, _momentTimezone.default)(endDate).isSameOrBefore(startDate)) {
215
+ setEndDate((0, _momentTimezone.default)(startDate).add(1, 'd').toDate());
216
+ setDate2((0, _momentTimezone.default)(startDate).add(1, 'd'));
217
+ }
218
+ }, [endDate]);
219
+ (0, _react.useEffect)(function () {
220
+ setStartDateInput(startDate);
221
+ setEndDateInput(endDate);
222
+
223
+ if ((0, _momentTimezone.default)(startDate).isBefore((0, _momentTimezone.default)(endDate), 'month')) {
224
+ setDate1((0, _momentTimezone.default)(startDate));
225
+ setDate2((0, _momentTimezone.default)(endDate));
226
+ }
227
+
228
+ setInterval();
229
+ }, [startDate, endDate]);
230
+ (0, _react.useEffect)(function () {
231
+ if ((0, _momentTimezone.default)(date1).isSameOrAfter((0, _momentTimezone.default)(date2), 'month')) {
232
+ setDate1((0, _momentTimezone.default)(date2).subtract(1, 'month'));
233
+ }
234
+ }, [date1, date2]);
235
+ (0, _react.useEffect)(function () {
236
+ onChangeInterval(dateInterval);
237
+ }, [dateInterval]);
238
+
239
+ var handleClick = function handleClick(date) {
240
+ prevEndHour.current = 0;
241
+
242
+ if (!startDate || startDate && endDate && !((0, _momentTimezone.default)(startDate).add(1, 'd').isSame(endDate, 'day') && endHour === 0)) {
243
+ setStartDate((0, _momentTimezone.default)(date).startOf('day').toDate());
244
+ setEndDate((0, _momentTimezone.default)(date).add(1, 'd').startOf('day').toDate());
245
+ setStartHour(0);
246
+ setEndHour(0);
247
+ } else if ((0, _momentTimezone.default)(date).isBefore((0, _momentTimezone.default)(startDate), 'day')) {
248
+ setEndDate((0, _momentTimezone.default)(startDate).add(1, 'd').startOf('day').toDate());
249
+ setStartDate((0, _momentTimezone.default)(date).set('hour', parseInt(startHour, 10)).toDate());
250
+ } else if ((0, _momentTimezone.default)(date).isAfter((0, _momentTimezone.default)(startDate), 'day')) {
251
+ setEndDate((0, _momentTimezone.default)(date).add(1, 'd').startOf('day').toDate());
252
+ }
253
+
254
+ setHoverStatus(null);
255
+ };
256
+
257
+ var timerId;
258
+
259
+ var handleHover = function handleHover(date) {
260
+ if (!date) {
261
+ timerId = setTimeout(function () {
262
+ setHoverStatus(null);
263
+ }, 400);
264
+ return;
265
+ }
266
+
267
+ if (timerId) clearTimeout(timerId);
268
+
269
+ if ((0, _momentTimezone.default)(startDate).add(1, 'd').isSame(endDate, 'day') && endHour === 0) {
270
+ if ((0, _momentTimezone.default)(date).isAfter((0, _momentTimezone.default)(startDate), 'day')) setHoverStatus('end');else if ((0, _momentTimezone.default)(date).isBefore((0, _momentTimezone.default)(startDate), 'day')) setHoverStatus('start');else setHoverStatus(null);
271
+ } else {
272
+ setHoverStatus('start');
273
+ }
274
+ };
275
+
276
+ var handleChangeStartHour = function handleChangeStartHour(val) {
277
+ setStartHour(+val);
278
+ setStartDate((0, _momentTimezone.default)(startDate).set('hour', +val).toDate());
279
+ };
280
+
281
+ var handleChangeEndHour = function handleChangeEndHour(val) {
282
+ var newHour = +val;
283
+ setEndHour(newHour);
284
+ var newEndDate;
285
+
286
+ if (prevEndHour.current === 0 && newHour !== 0) {
287
+ newEndDate = (0, _momentTimezone.default)(endDate).subtract(1, 'days');
288
+ } else if (prevEndHour.current !== 0 && newHour === 0) {
289
+ newEndDate = (0, _momentTimezone.default)(endDate).add(1, 'days');
290
+ } else {
291
+ newEndDate = endDate;
292
+ }
293
+
294
+ prevEndHour.current = newHour;
295
+ setEndDate((0, _momentTimezone.default)(newEndDate).set('hour', newHour).toDate());
296
+ };
297
+
298
+ var renderButtons = function renderButtons() {
299
+ var _txt$buttons, _txt$buttons2;
300
+
301
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
302
+ className: "date-picker__button",
303
+ onClick: function onClick() {
304
+ return onCancel();
305
+ },
306
+ variant: buttonsTypes === null || buttonsTypes === void 0 ? void 0 : buttonsTypes.cancel
307
+ }, (txt === null || txt === void 0 ? void 0 : (_txt$buttons = txt.buttons) === null || _txt$buttons === void 0 ? void 0 : _txt$buttons.cancel) || 'cancel'), /*#__PURE__*/_react.default.createElement(_Button.default, {
308
+ className: "date-picker__button",
309
+ variant: buttonsTypes === null || buttonsTypes === void 0 ? void 0 : buttonsTypes.apply,
310
+ disabled: !startDate || !endDate,
311
+ onClick: function onClick() {
312
+ return onChange({
313
+ start: startDate,
314
+ end: endDate,
315
+ startPrevDate: startPrevDate,
316
+ endPrevDate: endPrevDate,
317
+ compare: isCompare
318
+ });
319
+ }
320
+ }, (txt === null || txt === void 0 ? void 0 : (_txt$buttons2 = txt.buttons) === null || _txt$buttons2 === void 0 ? void 0 : _txt$buttons2.apply) || 'apply'));
321
+ };
322
+
323
+ var renderPreviousPeriod = function renderPreviousPeriod() {
324
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, txt.labels.previousPeriod, ": ", /*#__PURE__*/_react.default.createElement("span", {
325
+ className: "date-picker__previous-period-interval"
326
+ }, title));
327
+ };
328
+
329
+ var doBlur = function doBlur(type, e) {
330
+ var executor = type === 'start' ? setIsStartFocused : setIsEndFocused;
331
+ e.target.blur();
332
+ executor(false);
333
+ };
334
+
335
+ var handleStartDateFocus = function handleStartDateFocus(e) {
336
+ setIsStartFocused(true);
337
+ setStartDateInput((0, _momentTimezone.default)(startDate).format('L'));
338
+ setTimeout(function () {
339
+ return e.target.select();
340
+ }, 0);
341
+ };
342
+
343
+ var handleStartDateBlur = function handleStartDateBlur(e) {
344
+ var newDate;
345
+
346
+ if ((0, _momentTimezone.default)(startDateInput).isValid()) {
347
+ newDate = (0, _momentTimezone.default)(startDateInput).set('hour', parseInt(startHour, 10)).toDate();
348
+ setStartDate(newDate);
349
+ } else {
350
+ newDate = startDate;
351
+ setStartDateInput(newDate);
352
+ }
353
+
354
+ doBlur('start', e);
355
+ setDate1((0, _momentTimezone.default)(newDate).isSameOrAfter((0, _momentTimezone.default)(date2), 'month') ? (0, _momentTimezone.default)(date2).subtract(1, 'month') : (0, _momentTimezone.default)(newDate));
356
+ };
357
+
358
+ var handleEndDateFocus = function handleEndDateFocus(e) {
359
+ setIsEndFocused(true);
360
+ setEndDateInput((0, _momentTimezone.default)(subtractDay(endDateInput)).format('L'));
361
+ setTimeout(function () {
362
+ return e.target.select();
363
+ }, 0);
364
+ };
365
+
366
+ var handleEndDateBlur = function handleEndDateBlur(e) {
367
+ var newDate;
368
+
369
+ if ((0, _momentTimezone.default)(endDateInput).isValid()) {
370
+ newDate = (0, _momentTimezone.default)(endDateInput).set('hour', parseInt(endHour, 10)).toDate();
371
+ setEndDate(addDay(newDate));
372
+ } else {
373
+ newDate = endDate;
374
+ setEndDateInput(newDate);
375
+ }
376
+
377
+ doBlur('end', e);
378
+ setDate2(newDate);
379
+ setEndDateInput();
380
+ };
381
+
382
+ var handleKeyPressed = function handleKeyPressed(code, e, type) {
383
+ if (code === 13) (type === 'start' ? handleStartDateBlur : handleEndDateBlur)(e);
384
+ if (code === 27) doBlur(type, e);
385
+ };
386
+
387
+ var startDateValue = startDate ? (0, _momentTimezone.default)(startDate).format('ll') : '';
388
+ var endDateValue = endDate ? (0, _momentTimezone.default)(endDate).subtract(1, 'm').format('ll') : '';
389
+ return /*#__PURE__*/_react.default.createElement("div", {
390
+ className: (0, _classnames.default)('date-picker', className)
391
+ }, /*#__PURE__*/_react.default.createElement("div", {
392
+ className: "date-picker__header"
393
+ }, /*#__PURE__*/_react.default.createElement("div", {
394
+ className: "date-picker__inputs-block"
395
+ }, /*#__PURE__*/_react.default.createElement(_Input.default, {
396
+ dataTest: "datepicker_start-date-input",
397
+ className: (0, _classnames.default)({
398
+ 'date-picker__date-input_active': hoverStatus === 'start'
399
+ }),
400
+ value: isStartFocused ? startDateInput : startDateValue,
401
+ onChange: function onChange(value) {
402
+ return setStartDateInput(handleDateInputOnChange(value));
403
+ },
404
+ onFocus: handleStartDateFocus,
405
+ disabled: !startDate,
406
+ onBlur: handleStartDateBlur,
407
+ onKeyUp: function onKeyUp(code, e) {
408
+ return handleKeyPressed(code, e, 'start');
409
+ } //ref={startDateInputRef}
410
+ // mask={moment(startDate).format('L').replace(/[0-9]/g, '9')}
411
+
412
+ }), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
413
+ dataTest: "datepicker_start-hour-select-input",
414
+ className: (0, _classnames.default)('date-picker__hour-select-input'),
415
+ onChange: function onChange(value) {
416
+ return handleChangeStartHour(value);
417
+ },
418
+ value: startHour,
419
+ options: getStartHourItems(),
420
+ disabled: !startDate,
421
+ short: true
422
+ }), /*#__PURE__*/_react.default.createElement("div", {
423
+ className: "date-picker__inputs-separator date-picker__header--gray"
424
+ }, "\u2014"), /*#__PURE__*/_react.default.createElement(_Input.default, {
425
+ dataTest: "datepicker_end-date-input",
426
+ className: (0, _classnames.default)({
427
+ 'date-picker__date-input_active': hoverStatus === 'end'
428
+ }),
429
+ value: isEndFocused ? endDateInput : endDateValue,
430
+ disabled: !endDate,
431
+ onChange: function onChange(value) {
432
+ return setEndDateInput(handleDateInputOnChange(value));
433
+ },
434
+ onFocus: handleEndDateFocus,
435
+ onBlur: handleEndDateBlur,
436
+ onKeyUp: function onKeyUp(code, e) {
437
+ return handleKeyPressed(code, e, 'end');
438
+ } //ref={endDateInputRef}
439
+
440
+ }), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
441
+ dataTest: "datepicker_end-hour-select-input",
442
+ className: (0, _classnames.default)('date-picker__hour-select-input'),
443
+ onChange: function onChange(value) {
444
+ return handleChangeEndHour(value);
445
+ },
446
+ value: endHour,
447
+ options: getEndHourItems(),
448
+ disabled: !endDate,
449
+ short: true
450
+ })), isCompare && !isCompareHidden && startDate && endDate && /*#__PURE__*/_react.default.createElement("div", {
451
+ className: "date-picker__previous-period"
452
+ }, renderPreviousPeriod())), /*#__PURE__*/_react.default.createElement("div", {
453
+ className: "date-picker__calendars"
454
+ }, /*#__PURE__*/_react.default.createElement("div", {
455
+ className: "date-picker__calendars-wrapper"
456
+ }, /*#__PURE__*/_react.default.createElement(_RangeCalendar.default, {
457
+ className: "date-picker__calendar",
458
+ date: date1,
459
+ setDate: setDate1,
460
+ allowNext: !isNearby,
461
+ startDate: startDate,
462
+ endDate: endDate,
463
+ startPrevDate: startPrevDate,
464
+ endPrevDate: endPrevDate,
465
+ onClick: handleClick,
466
+ onHover: handleHover,
467
+ limitRange: limitRange,
468
+ isShortWeekNames: isShortWeekNames
469
+ }), /*#__PURE__*/_react.default.createElement(_RangeCalendar.default, {
470
+ className: "date-picker__calendar",
471
+ date: date2,
472
+ setDate: setDate2,
473
+ allowPrev: !isNearby,
474
+ startDate: startDate,
475
+ endDate: endDate,
476
+ startPrevDate: startPrevDate,
477
+ endPrevDate: endPrevDate,
478
+ onClick: handleClick,
479
+ onHover: handleHover,
480
+ isShortWeekNames: isShortWeekNames
481
+ }))), /*#__PURE__*/_react.default.createElement("div", {
482
+ className: (0, _classnames.default)('date-picker__footer', {
483
+ 'date-picker__footer_once-element': isCompareHidden
484
+ })
485
+ }, /*#__PURE__*/_react.default.createElement("div", {
486
+ className: "date-picker__buttons-block"
487
+ }, renderButtons())));
488
+ };
489
+
490
+ var _default = Datepicker;
491
+ exports.default = _default;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
21
+
22
+ var _classnames = _interopRequireDefault(require("classnames"));
23
+
24
+ var _dependencies = require("../dependencies");
25
+
26
+ var _SelectItem = _interopRequireDefault(require("./SelectItem"));
27
+
28
+ var _Datepicker = _interopRequireDefault(require("./Datepicker"));
29
+
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); }
31
+
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; }
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
+
38
+ var OpenedPart = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
39
+ var txt = props.txt,
40
+ buttonsTypes = props.buttonsTypes,
41
+ actualValues = props.actualValues,
42
+ _props$onChange = props.onChange,
43
+ _onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
44
+ isHoverable = props.isHoverable,
45
+ short = props.short,
46
+ _props$isCompact = props.isCompact,
47
+ isCompact = _props$isCompact === void 0 ? false : _props$isCompact,
48
+ _props$isIntervalsHid = props.isIntervalsHidden,
49
+ isIntervalsHidden = _props$isIntervalsHid === void 0 ? false : _props$isIntervalsHid,
50
+ _props$isCompareHidde = props.isCompareHidden,
51
+ isCompareHidden = _props$isCompareHidde === void 0 ? false : _props$isCompareHidde,
52
+ limitRange = props.limitRange,
53
+ isOptionsRight = props.isOptionsRight,
54
+ current = props.current,
55
+ setCurrent = props.setCurrent,
56
+ isCompare = props.isCompare,
57
+ setIsCompare = props.setIsCompare,
58
+ toggleOff = props.toggleOff,
59
+ isShortWeekNames = props.isShortWeekNames;
60
+
61
+ var items = isCompact ? (0, _toConsumableArray2.default)(Object.keys(_dependencies.INTERVALS)) : [].concat((0, _toConsumableArray2.default)(Object.keys(_dependencies.INTERVALS)), [_dependencies.CUSTOM_INTERVAL_KEY]);
62
+
63
+ var _useState = (0, _react.useState)(actualValues.intervalKey),
64
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
65
+ activeInterval = _useState2[0],
66
+ setActiveInterval = _useState2[1];
67
+
68
+ var handleItemClick = function handleItemClick(item) {
69
+ if (item !== _dependencies.CUSTOM_INTERVAL_KEY) {
70
+ _onChange({
71
+ intervalKey: item,
72
+ compare: isCompare
73
+ });
74
+
75
+ setTimeout(function () {
76
+ return toggleOff();
77
+ }, 0);
78
+ }
79
+
80
+ setCurrent(item);
81
+ };
82
+
83
+ var getSelectedMode = function getSelectedMode(newValues) {
84
+ var start = newValues.start,
85
+ end = newValues.end;
86
+
87
+ if ((0, _momentTimezone.default)(start).get('hour') !== 0 || (0, _momentTimezone.default)(end).get('hour') !== 0) {
88
+ return _dependencies.CUSTOM_INTERVAL_KEY;
89
+ }
90
+
91
+ for (var _i = 0, _Object$entries = Object.entries(_dependencies.INTERVALS); _i < _Object$entries.length; _i++) {
92
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
93
+ key = _Object$entries$_i[0],
94
+ interval = _Object$entries$_i[1];
95
+
96
+ if ((0, _momentTimezone.default)(start).isSame(interval.start()) && (0, _momentTimezone.default)(end).isSame(interval.end())) {
97
+ return key;
98
+ }
99
+ }
100
+
101
+ return _dependencies.CUSTOM_INTERVAL_KEY;
102
+ };
103
+
104
+ return /*#__PURE__*/_react.default.createElement("div", {
105
+ className: (0, _classnames.default)('date-range-input__opened-part', 'opened-part') // style={styles}
106
+
107
+ }, /*#__PURE__*/_react.default.createElement("div", {
108
+ className: (0, _classnames.default)('opened-part__wrapper', {
109
+ 'opened-part__wrapper_right-position-once-element': isOptionsRight && (isCompact || isIntervalsHidden)
110
+ })
111
+ }, !isIntervalsHidden && /*#__PURE__*/_react.default.createElement("div", {
112
+ className: (0, _classnames.default)('opened-part__intervals-list' // 'form-select-options',
113
+ // { 'form-select-options--short': short },
114
+ // { 'form-select-options--hoverable': isHoverable },
115
+ )
116
+ }, items.map(function (item, index) {
117
+ var _intervals$item;
118
+
119
+ return /*#__PURE__*/_react.default.createElement(_SelectItem.default, {
120
+ key: index,
121
+ item: item,
122
+ label: (txt === null || txt === void 0 ? void 0 : txt.labels) && (txt === null || txt === void 0 ? void 0 : txt.labels[item]) || ((_intervals$item = _dependencies.INTERVALS[item]) === null || _intervals$item === void 0 ? void 0 : _intervals$item.label) || (item === _dependencies.CUSTOM_INTERVAL_KEY ? _dependencies.CUSTOM_INTERVAL_KEY_TEXT : item),
123
+ isActive: activeInterval === item,
124
+ onItemClick: function onItemClick() {
125
+ return handleItemClick(item.value || item);
126
+ },
127
+ disabled: item === _dependencies.CUSTOM_INTERVAL_KEY
128
+ });
129
+ })), !isCompact && /*#__PURE__*/_react.default.createElement(_Datepicker.default, {
130
+ className: (0, _classnames.default)('opened-part__date-picker'),
131
+ buttonsTypes: buttonsTypes,
132
+ values: actualValues,
133
+ onChange: function onChange(data) {
134
+ _onChange(_objectSpread({
135
+ intervalKey: current
136
+ }, data));
137
+
138
+ toggleOff();
139
+ },
140
+ getSelectedMode: getSelectedMode,
141
+ onChangeInterval: function onChangeInterval(val) {
142
+ return setCurrent(val);
143
+ },
144
+ onChangeCompare: function onChangeCompare(data) {
145
+ return setIsCompare(data);
146
+ },
147
+ onCancel: toggleOff,
148
+ isCompareHidden: isCompareHidden,
149
+ limitRange: limitRange,
150
+ setActiveInterval: setActiveInterval,
151
+ isShortWeekNames: isShortWeekNames
152
+ })));
153
+ });
154
+
155
+ var _default = OpenedPart;
156
+ exports.default = _default;