intelicoreact 0.0.2 → 0.0.6

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 (208) hide show
  1. package/.eslintignore +10 -0
  2. package/.eslintrc.json +93 -0
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +145 -0
  4. package/dist/Atomic/FormElements/Calendar/Calendar.scss +543 -0
  5. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +33 -0
  6. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +3 -5
  7. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +2 -5
  8. package/dist/Atomic/FormElements/DateTime/DateTime.stories.js +1 -3
  9. package/dist/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -2
  10. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +19 -19
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +8 -3
  12. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +20 -7
  13. package/dist/Atomic/FormElements/Header/Header.js +9 -11
  14. package/dist/Atomic/FormElements/Header/Header.scss +16 -5
  15. package/dist/Atomic/FormElements/Header/Header.stories.js +0 -2
  16. package/dist/Atomic/FormElements/Input/Input.js +94 -102
  17. package/dist/Atomic/FormElements/Input/Input.scss +26 -19
  18. package/dist/Atomic/FormElements/Input/Input.stories.js +42 -27
  19. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +89 -0
  20. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +46 -0
  21. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +238 -0
  22. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +468 -0
  23. package/dist/Atomic/FormElements/InputDateRange/components/InputDateRange.js +248 -0
  24. package/dist/Atomic/FormElements/InputDateRange/components/InputDateRange.scss +598 -0
  25. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +147 -0
  26. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +38 -0
  27. package/dist/Atomic/FormElements/InputDateRange/index.js +248 -0
  28. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +30 -7
  29. package/dist/Atomic/FormElements/InputsRow/InputsRow.scss +1 -3
  30. package/dist/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -2
  31. package/dist/Atomic/FormElements/Label/Label.js +5 -14
  32. package/dist/Atomic/FormElements/Label/Label.scss +3 -3
  33. package/dist/Atomic/FormElements/Label/Label.stories.js +5 -6
  34. package/dist/Atomic/FormElements/Modal/Modal.js +5 -7
  35. package/dist/Atomic/FormElements/Modal/Modal.scss +61 -7
  36. package/dist/Atomic/FormElements/Modal/Modal.stories.js +64 -18
  37. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +3 -5
  38. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.scss +1 -3
  39. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -2
  40. package/dist/Atomic/FormElements/NavLine/NavLine.js +2 -2
  41. package/dist/Atomic/FormElements/NavLine/NavLine.scss +4 -6
  42. package/dist/Atomic/FormElements/NavLine/NavLine.stories.js +21 -13
  43. package/dist/Atomic/FormElements/RadioInput/RadioInput.scss +1 -1
  44. package/dist/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -2
  45. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +162 -0
  46. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  47. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +81 -0
  48. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -2
  49. package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -1
  50. package/dist/Atomic/FormElements/Switcher/Switcher.scss +1 -1
  51. package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +0 -2
  52. package/dist/Atomic/FormElements/Table/Partials/TdCell.js +1 -1
  53. package/dist/Atomic/FormElements/Table/Partials/TdHeader.js +2 -2
  54. package/dist/Atomic/FormElements/Table/TdTypes/TdActions.js +5 -5
  55. package/dist/Atomic/FormElements/Table/TdTypes/TdPriority.js +3 -3
  56. package/dist/Atomic/FormElements/Table/TdTypes/TdTypes.scss +4 -6
  57. package/dist/Atomic/FormElements/Table/TdTypes/TdWeight.js +2 -2
  58. package/dist/Atomic/FormElements/Tag/Tag.js +2 -2
  59. package/dist/Atomic/FormElements/Tag/Tag.scss +1 -1
  60. package/dist/Atomic/FormElements/Tag/Tag.stories.js +0 -2
  61. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +3 -3
  62. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +1 -1
  63. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -2
  64. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +1 -1
  65. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -2
  66. package/dist/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  67. package/dist/Atomic/FormElements/Textarea/Textarea.stories.js +0 -2
  68. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -1
  69. package/dist/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -2
  70. package/dist/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.js +5 -5
  71. package/dist/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.scss +2 -2
  72. package/dist/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.stories.js +11 -11
  73. package/dist/Atomic/UI/Accordion/Accordion.js +2 -2
  74. package/dist/Atomic/UI/Accordion/Accordion.stories.js +4 -4
  75. package/dist/Atomic/UI/Accordion/AccordionItem.js +3 -3
  76. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +3 -3
  77. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +4 -3
  78. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.scss +3 -5
  79. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -3
  80. package/dist/Atomic/UI/Alert/Alert.js +7 -4
  81. package/dist/Atomic/UI/Alert/Alert.scss +7 -0
  82. package/dist/Atomic/UI/Alert/Alert.stories.js +1 -3
  83. package/dist/Atomic/UI/Arrow/Arrow.js +80 -0
  84. package/dist/Atomic/UI/Arrow/Arrow.scss +22 -0
  85. package/dist/Atomic/UI/Arrow/Arrow.stories.js +46 -0
  86. package/dist/Atomic/UI/Button/Button.js +10 -19
  87. package/dist/Atomic/UI/Button/Button.scss +69 -41
  88. package/dist/Atomic/UI/Button/Button.stories.js +9 -25
  89. package/dist/Atomic/UI/Calendar/Calendar.js +145 -0
  90. package/dist/Atomic/UI/Calendar/Calendar.scss +544 -0
  91. package/dist/Atomic/UI/Calendar/Calendar.stories.js +37 -0
  92. package/dist/Atomic/UI/Header/partials/default_ava.png +0 -0
  93. package/dist/Atomic/{FormElements → UI}/Hint/Hint.js +8 -13
  94. package/{src/Atomic/FormElements → dist/Atomic/UI}/Hint/Hint.scss +8 -12
  95. package/dist/Atomic/{FormElements → UI}/Hint/Hint.stories.js +3 -4
  96. package/dist/Atomic/UI/Price/Price.js +33 -0
  97. package/dist/Atomic/UI/Price/Price.stories.js +42 -0
  98. package/dist/Atomic/{FormElements → UI}/Status/Status.js +4 -6
  99. package/dist/Atomic/{FormElements → UI}/Status/Status.scss +0 -0
  100. package/dist/Atomic/{FormElements → UI}/Status/Status.stories.js +4 -3
  101. package/dist/Functions/useClickOutside.js +25 -0
  102. package/dist/Functions/utils.js +10 -2
  103. package/dist/Molecular/FormElements/FormElement.js +40 -0
  104. package/dist/Molecular/FormElements/FormElement.scss +8 -0
  105. package/dist/Molecular/FormElements/FormElement.stories.js +73 -0
  106. package/dist/scss/main.scss +2 -2
  107. package/package.json +10 -6
  108. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +3 -5
  109. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +3 -5
  110. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +1 -3
  111. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -2
  112. package/src/Atomic/FormElements/Dropdown/Dropdown.js +12 -8
  113. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +8 -3
  114. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +15 -7
  115. package/src/Atomic/FormElements/Header/Header.js +9 -10
  116. package/src/Atomic/FormElements/Header/Header.scss +16 -5
  117. package/src/Atomic/FormElements/Header/Header.stories.js +0 -2
  118. package/src/Atomic/FormElements/Input/Input.js +79 -73
  119. package/src/Atomic/FormElements/Input/Input.scss +26 -19
  120. package/src/Atomic/FormElements/Input/Input.stories.js +28 -29
  121. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +43 -0
  122. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +27 -0
  123. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +142 -0
  124. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +394 -0
  125. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.js +230 -0
  126. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.scss +598 -0
  127. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +109 -0
  128. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +22 -0
  129. package/src/Atomic/FormElements/InputDateRange/index.js +157 -0
  130. package/src/Atomic/FormElements/InputsRow/InputsRow.js +28 -5
  131. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +1 -3
  132. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -2
  133. package/src/Atomic/FormElements/Label/Label.js +4 -9
  134. package/src/Atomic/FormElements/Label/Label.scss +3 -3
  135. package/src/Atomic/FormElements/Label/Label.stories.js +6 -6
  136. package/src/Atomic/FormElements/Modal/Modal.js +5 -8
  137. package/src/Atomic/FormElements/Modal/Modal.scss +61 -7
  138. package/src/Atomic/FormElements/Modal/Modal.stories.js +60 -15
  139. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +3 -5
  140. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +1 -3
  141. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +1 -2
  142. package/src/Atomic/FormElements/NavLine/NavLine.js +4 -4
  143. package/src/Atomic/FormElements/NavLine/NavLine.scss +4 -6
  144. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +24 -14
  145. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +1 -1
  146. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -2
  147. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +143 -0
  148. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  149. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +54 -0
  150. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -1
  151. package/src/Atomic/FormElements/Switcher/Switcher.js +1 -1
  152. package/src/Atomic/FormElements/Switcher/Switcher.scss +1 -1
  153. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -2
  154. package/src/Atomic/FormElements/Table/Partials/TdCell.js +1 -1
  155. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +1 -1
  156. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +5 -5
  157. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +3 -3
  158. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +4 -6
  159. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +2 -2
  160. package/src/Atomic/FormElements/Tag/Tag.js +2 -2
  161. package/src/Atomic/FormElements/Tag/Tag.scss +1 -1
  162. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -2
  163. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +3 -3
  164. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +1 -1
  165. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -2
  166. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +1 -1
  167. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -2
  168. package/src/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  169. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -2
  170. package/src/Atomic/FormElements/TimeRange/TimeRange.js +1 -1
  171. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -2
  172. package/src/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.js +5 -5
  173. package/src/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.scss +2 -2
  174. package/src/Atomic/{FormElements/MainMenu → MainMenu}/MainMenu.stories.js +11 -11
  175. package/src/Atomic/UI/Accordion/Accordion.js +2 -2
  176. package/src/Atomic/UI/Accordion/Accordion.stories.js +4 -4
  177. package/src/Atomic/UI/Accordion/AccordionItem.js +3 -3
  178. package/src/Atomic/UI/AdvancedTag/AdvTag.js +3 -3
  179. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +3 -3
  180. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +3 -5
  181. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +1 -3
  182. package/src/Atomic/UI/Alert/Alert.js +9 -6
  183. package/src/Atomic/UI/Alert/Alert.scss +7 -0
  184. package/src/Atomic/UI/Alert/Alert.stories.js +1 -3
  185. package/src/Atomic/UI/Arrow/Arrow.js +41 -0
  186. package/src/Atomic/UI/Arrow/Arrow.scss +22 -0
  187. package/src/Atomic/UI/Arrow/Arrow.stories.js +32 -0
  188. package/src/Atomic/UI/Button/Button.js +6 -10
  189. package/src/Atomic/UI/Button/Button.scss +69 -41
  190. package/src/Atomic/UI/Button/Button.stories.js +9 -25
  191. package/src/Atomic/UI/Calendar/Calendar.js +109 -0
  192. package/src/Atomic/UI/Calendar/Calendar.scss +544 -0
  193. package/src/Atomic/UI/Calendar/Calendar.stories.js +23 -0
  194. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  195. package/src/Atomic/{FormElements → UI}/Hint/Hint.js +6 -9
  196. package/{dist/Atomic/FormElements → src/Atomic/UI}/Hint/Hint.scss +8 -12
  197. package/src/Atomic/{FormElements → UI}/Hint/Hint.stories.js +3 -3
  198. package/src/Atomic/UI/Price/Price.js +20 -0
  199. package/src/Atomic/UI/Price/Price.stories.js +30 -0
  200. package/src/Atomic/{FormElements → UI}/Status/Status.js +2 -4
  201. package/src/Atomic/{FormElements → UI}/Status/Status.scss +0 -0
  202. package/src/Atomic/{FormElements → UI}/Status/Status.stories.js +4 -3
  203. package/src/Functions/useClickOutside.js +15 -0
  204. package/src/Functions/utils.js +6 -0
  205. package/src/Molecular/FormElements/FormElement.js +18 -0
  206. package/src/Molecular/FormElements/FormElement.scss +8 -0
  207. package/src/Molecular/FormElements/FormElement.stories.js +59 -0
  208. package/src/scss/main.scss +2 -2
@@ -0,0 +1,230 @@
1
+ import React, { useState, useEffect, useRef, useMemo } from 'react';
2
+ import cn from 'classnames';
3
+ import moment from 'moment-timezone';
4
+
5
+ import { useClickOutside, useToggle, getActualDateRange, INTERVALS, ALL_TIME_KEY, CUSTOM_INTERVAL_KEY_TEXT } from '..';
6
+
7
+ import OpenedPart from './OpenedPart';
8
+ import Arrow from '../../../UI/Arrow/Arrow';
9
+
10
+ import './InputDateRange.scss'
11
+
12
+ const InputDateRange = props => {
13
+ const {
14
+ txt,
15
+ id,
16
+ label,
17
+ className,
18
+ value,
19
+ onChange = () => {},
20
+ error,
21
+ disabled,
22
+ isHoverable,
23
+ short,
24
+ isCompact = false,
25
+ // isFocused = false,
26
+ isIntervalsHidden = false,
27
+ isCompareHidden = false,
28
+ hideArrows = false,
29
+ isOptionsRight,
30
+ limitRange,
31
+ isUseAbs,
32
+ absTooltip,
33
+ } = props;
34
+
35
+ const actualValues = getActualDateRange(value);
36
+ const { isToggled, toggle, toggleOn, toggleOff } = useToggle(false);
37
+ const [current, setCurrent] = useState(actualValues?.intervalKey);
38
+ const [isCompare, setIsCompare] = useState(actualValues?.compare);
39
+
40
+ const ref = !isUseAbs ? useClickOutside(toggleOff) : useRef(null);
41
+ const internalContainerRef = useRef(null);
42
+ const isEndDateNearFuture = moment(actualValues?.end).isSameOrAfter(moment());
43
+
44
+ const Range = () => {
45
+ const SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
46
+ const { start, end } = actualValues;
47
+ if (!start || !end) return null;
48
+
49
+ const startTime = moment(start).format('HH:mm');
50
+ const endTime = moment(end).format('HH:mm');
51
+
52
+ const firstPart = `${moment(start).format('ll')} ${startTime !== '00:00' ? `(${startTime})` : ''}`;
53
+ const secondPart = `${(endTime !== '00:00' ? moment(end) : moment(end).subtract(1, 'days')).format('ll')} ${
54
+ endTime !== '00:00' ? `(${endTime})` : ''
55
+ }`;
56
+
57
+ const getClasses = base => cn('date-range-input__range-text', {
58
+ 'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
59
+ });
60
+
61
+ return (
62
+ <>
63
+ <span className={getClasses(firstPart)}>
64
+ {firstPart}
65
+ {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? '' : ` - `}
66
+ </span>
67
+ {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day')
68
+ ? null
69
+ :<span className={getClasses(secondPart)}>{secondPart}</span>
70
+
71
+ }
72
+ </>
73
+ )
74
+ }
75
+
76
+ const slideInterval = (direction = 'forward') => {
77
+ const { start, end } = actualValues;
78
+ const intervalHoursCount = moment(end).diff(start, 'hours');
79
+ console.log(intervalHoursCount);
80
+ let newEnd, newStart;
81
+ const endHours = moment(end).hours();
82
+ const startHours = moment(start).hours();
83
+ if (direction === 'forward') {
84
+ newStart = moment(end)
85
+ .add(endHours === 0 ? 0 : 1, 'day')
86
+ .hours(startHours)
87
+ .toDate();
88
+ newEnd = moment(newStart).add(intervalHoursCount, 'hours');
89
+ } else {
90
+ newEnd = moment(start)
91
+ .subtract(endHours === 0 ? 0 : 1, 'day')
92
+ .hours(endHours)
93
+ .toDate();
94
+ newStart = moment(newEnd).subtract(intervalHoursCount, 'hours');
95
+ }
96
+ const startPrevDate = moment(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
97
+ const endPrevDate = moment(newEnd).subtract(1, 'seconds');
98
+ onChange({
99
+ ...value,
100
+ intervalKey: getActualDateRange({
101
+ start: newStart,
102
+ end: newEnd,
103
+ })?.intervalKey,
104
+ start: newStart,
105
+ end: newEnd,
106
+ startPrevDate,
107
+ endPrevDate,
108
+ });
109
+ };
110
+
111
+ const handleArrowClick = type => {
112
+ slideInterval(type === 'right' ? 'forward' : 'back');
113
+ toggleOff();
114
+ };
115
+
116
+ const absData = useMemo(
117
+ () => ({
118
+ body: OpenedPart,
119
+ props: {
120
+ ...props,
121
+ key: `${actualValues.start}-${actualValues.end}-${actualValues.intervalKey}-${current}-${isCompare}`,
122
+ actualValues,
123
+ current,
124
+ setCurrent,
125
+ isCompare,
126
+ setIsCompare,
127
+ toggleOff,
128
+ onChange,
129
+ },
130
+ clickOutsideCallback: () => toggleOff(),
131
+ top: internalContainerRef.current?.getBoundingClientRect()?.bottom || 0,
132
+ left: internalContainerRef.current?.getBoundingClientRect()?.left || 0,
133
+ }),
134
+ [isToggled, value, actualValues, current, isCompare],
135
+ );
136
+
137
+ useEffect(() => {
138
+ if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
139
+ }, [current]);
140
+
141
+ useEffect(() => {
142
+ if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
143
+ }, [isToggled]);
144
+
145
+ return (
146
+ <div
147
+ ref={internalContainerRef}
148
+ className={cn('date-range-input', className, {
149
+ 'date-range-input_compact': isCompact,
150
+ 'date-range-input_hide-arrows': hideArrows,
151
+ 'date-range-input_focused': isToggled,
152
+ 'date-range-input_error': error,
153
+ 'date-range-input_disabled': disabled,
154
+ })}
155
+ >
156
+ <span className="date-range-input__label" >{label}</span>
157
+ <div
158
+ className="date-range-input__wraper"
159
+ ref={ref}
160
+ onMouseEnter={isHoverable && toggleOn}
161
+ onMouseLeave={isHoverable && toggleOff}
162
+ >
163
+ <div className={cn('date-range-input__absolut-wraper', {
164
+ 'date-range-input__absolut-wraper_right-position': isOptionsRight,
165
+ })}>
166
+ <div className={cn('date-range-input__static-part')}>
167
+ <button
168
+ id={id}
169
+ className={cn('date-range-input__toggle-button')}
170
+ // className={cn(
171
+ // 'date-range-input__toggle-button',
172
+ // { 'form-select__input--disabled': disabled },
173
+ // { 'form-select__input--opened': isToggled },
174
+ // { 'form-select__input--focused': isToggled },
175
+ // className,
176
+ // )}
177
+ disabled={disabled}
178
+ onClick={!disabled && !isHoverable ? toggle : undefined}
179
+ >
180
+ <div className="date-range-input__interval-key">
181
+ <span>
182
+ {(txt?.labels && txt.labels[actualValues?.intervalKey]) ?? (INTERVALS[actualValues?.intervalKey]?.label || CUSTOM_INTERVAL_KEY_TEXT)}
183
+ </span>
184
+ {current !== ALL_TIME_KEY && <span>:</span>}
185
+ </div>
186
+ {!isCompact && <div className={cn('date-range-input__range', {})}><Range /></div>}
187
+ </button>
188
+ {!isCompact && !hideArrows && (
189
+ <div className={cn('date-range-input__arrows-block')}>
190
+ <Arrow
191
+ type="left"
192
+ className="date-range-input__arrow"
193
+ onClick={() => handleArrowClick("left")}
194
+ disabled={disabled || actualValues?.intervalKey === ALL_TIME_KEY}
195
+ />
196
+ <Arrow
197
+ type="right"
198
+ className="date-range-input__arrow"
199
+ onClick={() => handleArrowClick("right")}
200
+ disabled={
201
+ disabled ||
202
+ actualValues?.intervalKey === ALL_TIME_KEY ||
203
+ actualValues?.intervalKey === 'today' ||
204
+ moment(actualValues?.end).add(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours').isSameOrAfter(moment())
205
+ }
206
+ />
207
+ </div>
208
+ )}
209
+ </div>
210
+ {isToggled && !isUseAbs && (
211
+ <OpenedPart
212
+ {...props}
213
+ ref={internalContainerRef}
214
+ actualValues={actualValues}
215
+ current={current}
216
+ setCurrent={setCurrent}
217
+ isCompare={isCompare}
218
+ setIsCompare={setIsCompare}
219
+ toggleOff={toggleOff}
220
+ onChange={onChange}
221
+ />
222
+ )}
223
+ </div>
224
+ </div>
225
+ {error && <span className="date-range-input__error-block">{error}</span>}
226
+ </div>
227
+ );
228
+ };
229
+
230
+ export default React.memo(InputDateRange);