intelicoreact 0.0.65 → 0.0.73

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 (86) hide show
  1. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +6 -2
  2. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +91 -60
  3. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +2 -1
  4. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +48 -17
  5. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +21 -3
  6. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +22 -6
  7. package/dist/Atomic/FormElements/Input/Input.js +15 -4
  8. package/dist/Atomic/FormElements/Input/Input.stories.js +7 -1
  9. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +24 -43
  10. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.scss +98 -73
  11. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +3 -156
  12. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +11 -9
  13. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +3 -3
  14. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +7 -7
  15. package/dist/Atomic/FormElements/Table/Table.scss +1 -1
  16. package/dist/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  17. package/dist/Atomic/MainMenu/MainMenu.scss +2 -2
  18. package/dist/Atomic/UI/Accordion/Accordion.scss +2 -2
  19. package/dist/Atomic/UI/Arrow/Arrow.js +7 -8
  20. package/dist/Atomic/UI/Calendar/Calendar.js +3 -2
  21. package/dist/Atomic/UI/Calendar/Calendar.stories.js +3 -2
  22. package/dist/Atomic/UI/Status/Status.scss +1 -1
  23. package/dist/Molecular/Datepicker/Datepicker.js +451 -0
  24. package/dist/Molecular/Datepicker/Datepicker.scss +8 -0
  25. package/dist/Molecular/Datepicker/Datepicker.stories.js +44 -0
  26. package/dist/Molecular/Datepicker/components/Calendar.js +156 -0
  27. package/dist/scss/_vars.scss +3 -1
  28. package/dist/scss/main.scss +1 -1
  29. package/package.json +6 -4
  30. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +12 -2
  31. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +91 -60
  32. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +4 -3
  33. package/src/Atomic/FormElements/Dropdown/Dropdown.js +53 -19
  34. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +21 -3
  35. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +28 -15
  36. package/src/Atomic/FormElements/Input/Input.js +4 -0
  37. package/src/Atomic/FormElements/Input/Input.stories.js +7 -1
  38. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +191 -213
  39. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +98 -73
  40. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +35 -123
  41. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +10 -7
  42. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +2 -2
  43. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -1
  44. package/src/Atomic/FormElements/InputDateRange/dependencies.js +6 -6
  45. package/src/Atomic/FormElements/Table/Table.scss +1 -1
  46. package/src/Atomic/FormElements/Textarea/Textarea.scss +1 -1
  47. package/src/Atomic/MainMenu/MainMenu.scss +2 -2
  48. package/src/Atomic/UI/Accordion/Accordion.scss +2 -2
  49. package/src/Atomic/UI/Arrow/Arrow.js +5 -5
  50. package/src/Atomic/UI/Calendar/Calendar.js +2 -2
  51. package/src/Atomic/UI/Calendar/Calendar.stories.js +2 -1
  52. package/src/Atomic/UI/Status/Status.scss +1 -1
  53. package/src/Molecular/Datepicker/Datepicker.js +346 -0
  54. package/src/Molecular/Datepicker/Datepicker.scss +8 -0
  55. package/src/Molecular/Datepicker/Datepicker.stories.js +27 -0
  56. package/src/Molecular/Datepicker/components/Calendar.js +118 -0
  57. package/src/scss/_vars.scss +3 -1
  58. package/src/scss/main.scss +1 -1
  59. package/dist/scss/anme/_anme-bootstrap-grid.scss +0 -748
  60. package/dist/scss/anme/_anme-elements.scss +0 -269
  61. package/dist/scss/anme/_anme-grid.scss +0 -111
  62. package/dist/scss/anme/_anme-justify.scss +0 -111
  63. package/dist/scss/anme/_anme-mixins-media.scss +0 -116
  64. package/dist/scss/anme/_anme-mixins.scss +0 -166
  65. package/dist/scss/anme/_anme-normalize.scss +0 -8
  66. package/dist/scss/anme/_anme-overall.scss +0 -34
  67. package/dist/scss/anme/_anme-padding-margins.scss +0 -419
  68. package/dist/scss/anme/_anme-table.scss +0 -81
  69. package/dist/scss/anme/_anme-theme.scss +0 -275
  70. package/dist/scss/anme/_anme-vars.scss +0 -91
  71. package/dist/scss/anme/_code-styling.scss +0 -23
  72. package/dist/scss/anme/styles.scss +0 -12
  73. package/src/scss/anme/_anme-bootstrap-grid.scss +0 -748
  74. package/src/scss/anme/_anme-elements.scss +0 -269
  75. package/src/scss/anme/_anme-grid.scss +0 -111
  76. package/src/scss/anme/_anme-justify.scss +0 -111
  77. package/src/scss/anme/_anme-mixins-media.scss +0 -116
  78. package/src/scss/anme/_anme-mixins.scss +0 -166
  79. package/src/scss/anme/_anme-normalize.scss +0 -8
  80. package/src/scss/anme/_anme-overall.scss +0 -34
  81. package/src/scss/anme/_anme-padding-margins.scss +0 -419
  82. package/src/scss/anme/_anme-table.scss +0 -81
  83. package/src/scss/anme/_anme-theme.scss +0 -275
  84. package/src/scss/anme/_anme-vars.scss +0 -91
  85. package/src/scss/anme/_code-styling.scss +0 -23
  86. package/src/scss/anme/styles.scss +0 -12
@@ -7,35 +7,48 @@ export default {
7
7
  component: Dropdown,
8
8
  argTypes: {
9
9
  className: {
10
- description: 'string'
10
+ description: 'string',
11
11
  },
12
- value: { description: 'string - current option'},
12
+ value: { description: 'string - current option' },
13
13
  isSearchable: {
14
14
  description: 'boolean - enable search',
15
15
  },
16
- onChange: { description: 'callback return selected value'}
17
- }
16
+ onChange: { description: 'callback return selected value' },
17
+ entity: {
18
+ description: 'string',
19
+ },
20
+ },
21
+ };
22
+
23
+ const buttonStyles={
24
+ border: 'solid 1px #000',
25
+ padding: '5px'
18
26
  };
19
27
 
20
- const Template = args => {
28
+ const Template = (args) => {
21
29
  const [value, setValue] = useState('');
22
30
  return (
23
- <div style={{ width: 200 }}>
24
- <Dropdown {...args} value={value} onChange={setValue} />
25
- </div>
31
+ <>
32
+ <div style={{ width: 200 }}>
33
+ <Dropdown {...args} value={value} onChange={setValue} />
34
+ </div>
35
+ <button style={buttonStyles} className='mt10' onClick={() => {console.log('click!'); setValue('')}} >Reset</button>
36
+ </>
26
37
  );
27
38
  };
28
39
 
29
40
  export const DropdownTemplate = Template.bind({});
30
41
 
31
42
  DropdownTemplate.args = {
43
+ entity: 'entity',
44
+ value: 'drop6',
32
45
  placeholder: 'Placeholder',
33
46
  isSearchable: true,
34
47
  options: [
35
- { label: 'Dropdown1', value: 'drop1', className: 'status status--approved' },
36
48
  { label: 'Dropdown2', value: 'drop2' },
37
49
  { label: 'Dropdown3', value: 'drop3', disabled: true },
38
50
  { label: 'Dropdown4', value: 'drop4' },
51
+ { label: 'Dropdown1', value: 'drop1', className: 'status status--approved' },
39
52
  { label: 'Dropdown5', value: 'drop5' },
40
53
  { label: 'Dropdown6', value: 'drop6' },
41
54
  {
@@ -43,17 +56,17 @@ DropdownTemplate.args = {
43
56
  items: [
44
57
  { label: 'Group 11', value: 'group11' },
45
58
  { label: 'Group 12', value: 'group12', disabled: true },
46
- { label: 'Group 13', value: 'group13' }
47
- ]
59
+ { label: 'Group 13', value: 'group13' },
60
+ ],
48
61
  },
49
62
  {
50
63
  label: 'Some Group 2',
51
64
  items: [
52
65
  { label: 'Group 21', value: 'group21' },
53
66
  { label: 'Group 22', value: 'group22' },
54
- { label: 'Group 23', value: 'group23' }
55
- ]
56
- }
67
+ { label: 'Group 23', value: 'group23' },
68
+ ],
69
+ },
57
70
  ],
58
- error: ''
71
+ error: '',
59
72
  };
@@ -21,6 +21,8 @@ const Input = ({
21
21
  onFocus,
22
22
  onKeyUp,
23
23
  mask,
24
+ maskChar,
25
+ formatChars,
24
26
  error,
25
27
  icon,
26
28
  symbolsLimit,
@@ -72,6 +74,8 @@ const Input = ({
72
74
  onKeyUp: handle.keyUp,
73
75
  min,
74
76
  max,
77
+ ...(maskChar ? { maskChar } : {}),
78
+ ...(formatChars ? { formatChars } : {}),
75
79
  };
76
80
 
77
81
  function renderInput() {
@@ -67,7 +67,13 @@ InputTemplate.args = {
67
67
  min: '0',
68
68
  max: '5',
69
69
  placeholder: 'Placeholder',
70
- mask: '',
70
+ // mask: 'nnnnn0129',
71
+ // maskChar: '_',
72
+ // formatChars: {
73
+ // 'n': '[0-9]',
74
+ // 's': '[A-Za-z]',
75
+ // '*': '[A-Za-z0-9]'
76
+ // },
71
77
  icon: <User />,
72
78
  symbolsLimit: 225
73
79
  };
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect, useRef, useMemo } from 'react';
1
+ import React, { useState, useEffect, useRef } from 'react';
2
2
  import cn from 'classnames';
3
3
  import moment from 'moment-timezone';
4
4
 
@@ -7,235 +7,213 @@ import { useClickOutside, useToggle, getActualDateRange, INTERVALS, ALL_TIME_KEY
7
7
  import OpenedPart from './components/OpenedPart';
8
8
  import Arrow from '../../UI/Arrow/Arrow';
9
9
 
10
- import './InputDateRange.scss'
10
+ import './InputDateRange.scss';
11
11
 
12
12
  const InputDateRange = props => {
13
- const {
14
- txt,
15
- id,
16
- label,
17
- className,
18
- buttonsTypes,
19
- value,
20
- onChange = () => {},
21
- error,
22
- disabled,
23
- isHoverable,
24
- short,
25
- isCompact = false,
26
- // isFocused = false,
27
- isIntervalsHidden = false,
28
- isCompareHidden = false,
29
- hideArrows = false,
30
- isOptionsRight,
31
- limitRange,
32
- isShortWeekNames,
33
- isUseAbs,
34
- absTooltip,
35
- } = props;
36
-
37
- const actualValues = getActualDateRange(value);
38
- const { isToggled, toggle, toggleOn, toggleOff } = useToggle(false);
39
- const [current, setCurrent] = useState(actualValues?.intervalKey);
40
- const [isCompare, setIsCompare] = useState(actualValues?.compare);
41
-
42
- const ref = !isUseAbs ? useClickOutside(toggleOff) : useRef(null);
43
- const internalContainerRef = useRef(null);
44
- const isEndDateNearFuture = moment(actualValues?.end).isSameOrAfter(moment());
45
-
46
- const handleChange = input => {
47
- const newValue = getActualDateRange(input);
48
- const formatedValue = {
49
- intervalKey: newValue.intervalKey,
50
- start: newValue.start ? moment(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
51
- end: newValue.end ? moment(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end,
52
- ...(newValue.compare ? {compare: newValue.compare} : {}),
53
- ...(newValue.startPrevDate ? {startPrevDate: moment(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm')} : {}),
54
- ...(newValue.endPrevDate ? {endPrevDate: moment(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm')} : {}),
55
- };
56
-
57
- onChange(formatedValue);
58
- return formatedValue;
13
+ const {
14
+ txt,
15
+ id,
16
+ label,
17
+ className,
18
+ value,
19
+ onChange = () => {},
20
+ error,
21
+ disabled,
22
+ isHoverable,
23
+ isCompact = false,
24
+ hideArrows = false,
25
+ isOptionsRight,
26
+ isUseAbs,
27
+ } = props;
28
+
29
+ const actualValues = getActualDateRange(value);
30
+ const { isToggled, toggle, toggleOn, toggleOff } = useToggle(false);
31
+ const [current, setCurrent] = useState(actualValues?.intervalKey);
32
+ const [isCompare, setIsCompare] = useState(actualValues?.compare);
33
+
34
+ const ref = !isUseAbs ? useClickOutside(toggleOff) : useRef(null);
35
+ const internalContainerRef = useRef(null);
36
+
37
+ const handleChange = input => {
38
+ const newValue = getActualDateRange(input);
39
+ const formatedValue = {
40
+ intervalKey: newValue.intervalKey,
41
+ start: newValue.start ? moment(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
42
+ end: newValue.end ? moment(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end,
43
+ ...(newValue.compare ? { compare: newValue.compare } : {}),
44
+ ...(newValue.startPrevDate ? { startPrevDate: moment(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm') } : {}),
45
+ ...(newValue.endPrevDate ? { endPrevDate: moment(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm') } : {})
59
46
  };
60
47
 
61
- const Range = () => {
62
- const SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
63
- const { start, end } = actualValues;
64
- if (!start || !end) return null;
48
+ onChange(formatedValue);
49
+ return formatedValue;
50
+ };
65
51
 
66
- const startTime = moment(start).format('HH:mm');
67
- const endTime = moment(end).format('HH:mm');
52
+ const [mountDate, setMD] = useState(false);
68
53
 
69
- const firstPart = `${moment(start).format('ll')} ${startTime !== '00:00' ? `(${startTime})` : ''}`;
70
- const secondPart = `${(endTime !== '00:00' ? moment(end) : moment(end).subtract(1, 'days')).format('ll')} ${
71
- endTime !== '00:00' ? `(${endTime})` : ''
72
- }`;
73
-
74
- const getClasses = base => cn('date-range-input__range-text', {
75
- 'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
76
- });
77
-
78
- return (
79
- <>
80
- <span className={getClasses(firstPart)}>
81
- {firstPart}
82
- {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? '' : ` - `}
83
- </span>
84
- {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day')
85
- ? null
86
- :<span className={getClasses(secondPart)}>{secondPart}</span>
87
-
88
- }
89
- </>
90
- )
54
+ useEffect(() => {
55
+ if (value && !mountDate) {
56
+ setMD(true);
57
+ handleChange({ ...value });
91
58
  }
59
+ }, [value]);
92
60
 
93
- const slideInterval = (direction = 'forward') => {
94
- const { start, end } = actualValues;
95
- const intervalHoursCount = moment(end).diff(start, 'hours');
96
- let newEnd, newStart;
97
- const endHours = moment(end).hours();
98
- const startHours = moment(start).hours();
99
- if (direction === 'forward') {
100
- newStart = moment(end)
101
- .add(endHours === 0 ? 0 : 1, 'day')
102
- .hours(startHours)
103
- .toDate();
104
- newEnd = moment(newStart).add(intervalHoursCount, 'hours');
105
- } else {
106
- newEnd = moment(start)
107
- .subtract(endHours === 0 ? 0 : 1, 'day')
108
- .hours(endHours)
109
- .toDate();
110
- newStart = moment(newEnd).subtract(intervalHoursCount, 'hours');
111
- }
112
- const startPrevDate = moment(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
113
- const endPrevDate = moment(newEnd).subtract(1, 'seconds');
114
- handleChange({
115
- ...value,
116
- intervalKey: getActualDateRange({
117
- start: newStart,
118
- end: newEnd,
119
- })?.intervalKey,
120
- start: newStart,
121
- end: newEnd,
122
- startPrevDate,
123
- endPrevDate,
124
- });
125
- };
61
+ const Range = () => {
62
+ const SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
63
+ const { start, end } = actualValues;
64
+ if (!start || !end) return null;
126
65
 
127
- const handleArrowClick = type => {
128
- slideInterval(type === 'right' ? 'forward' : 'back');
129
- toggleOff();
130
- };
66
+ const startTime = moment(start).format('HH:mm');
67
+ const endTime = moment(end).format('HH:mm');
131
68
 
132
- // const absData = useMemo(
133
- // () => ({
134
- // body: OpenedPart,
135
- // props: {
136
- // ...props,
137
- // key: `${actualValues.start}-${actualValues.end}-${actualValues.intervalKey}-${current}-${isCompare}`,
138
- // actualValues,
139
- // current,
140
- // setCurrent,
141
- // isCompare,
142
- // setIsCompare,
143
- // toggleOff,
144
- // onChange,
145
- // },
146
- // clickOutsideCallback: () => toggleOff(),
147
- // top: internalContainerRef.current?.getBoundingClientRect()?.bottom || 0,
148
- // left: internalContainerRef.current?.getBoundingClientRect()?.left || 0,
149
- // }),
150
- // [isToggled, value, actualValues, current, isCompare],
151
- // );
152
-
153
- // useEffect(() => {
154
- // if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
155
- // }, [current]);
156
-
157
- // useEffect(() => {
158
- // if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
159
- // }, [isToggled]);
69
+ const firstPart = `${moment(start).format('ll')} ${startTime !== '00:00' ? `(${startTime})` : ''}`;
70
+ const secondPart = `${(endTime !== '00:00' ? moment(end) : moment(end).subtract(1, 'days')).format('ll')} ${
71
+ endTime !== '00:00' ? `(${endTime})` : ''
72
+ }`;
73
+
74
+ const getClasses = base =>
75
+ cn('date-range-input__range-text', {
76
+ 'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
77
+ });
160
78
 
161
79
  return (
80
+ <>
81
+ <span className={getClasses(firstPart)}>
82
+ {firstPart}
83
+ {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? '' : ` - `}
84
+ </span>
85
+ {endTime === '00:00' && moment(end).isSame(moment(start).add(1, 'days'), 'day') ? null : (
86
+ <span className={getClasses(secondPart)}>{secondPart}</span>
87
+ )}
88
+ </>
89
+ );
90
+ };
91
+
92
+ const slideInterval = (direction = 'forward') => {
93
+ const { start, end } = actualValues;
94
+ const intervalHoursCount = moment(end).diff(start, 'hours');
95
+ let newEnd;
96
+ let newStart;
97
+ const endHours = moment(end).hours();
98
+ const startHours = moment(start).hours();
99
+ if (direction === 'forward') {
100
+ newStart = moment(end)
101
+ .add(endHours === 0 ? 0 : 1, 'day')
102
+ .hours(startHours)
103
+ .toDate();
104
+ newEnd = moment(newStart).add(intervalHoursCount, 'hours');
105
+ } else {
106
+ newEnd = moment(start)
107
+ .subtract(endHours === 0 ? 0 : 1, 'day')
108
+ .hours(endHours)
109
+ .toDate();
110
+ newStart = moment(newEnd).subtract(intervalHoursCount, 'hours');
111
+ }
112
+ const startPrevDate = moment(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
113
+ const endPrevDate = moment(newEnd).subtract(1, 'seconds');
114
+ handleChange({
115
+ ...value,
116
+ intervalKey: getActualDateRange({
117
+ start: newStart,
118
+ end: newEnd
119
+ })?.intervalKey,
120
+ start: newStart,
121
+ end: newEnd,
122
+ startPrevDate,
123
+ endPrevDate
124
+ });
125
+ };
126
+
127
+ const handleArrowClick = type => {
128
+ slideInterval(type === 'right' ? 'forward' : 'back');
129
+ toggleOff();
130
+ };
131
+
132
+ return (
133
+ <div
134
+ ref={internalContainerRef}
135
+ className={cn('date-range-input', className, {
136
+ 'date-range-input_compact': isCompact,
137
+ 'date-range-input_hide-arrows': hideArrows,
138
+ 'date-range-input_focused': isToggled,
139
+ 'date-range-input_error': error,
140
+ 'date-range-input_disabled': disabled
141
+ })}
142
+ >
143
+ <span className="date-range-input__label">{label}</span>
144
+ <div
145
+ className="date-range-input__wraper"
146
+ ref={ref}
147
+ onMouseEnter={isHoverable ? toggleOn : () => null}
148
+ onMouseLeave={isHoverable ? toggleOff : () => null}
149
+ >
162
150
  <div
163
- ref={internalContainerRef}
164
- className={cn('date-range-input', className, {
165
- 'date-range-input_compact': isCompact,
166
- 'date-range-input_hide-arrows': hideArrows,
167
- 'date-range-input_focused': isToggled,
168
- 'date-range-input_error': error,
169
- 'date-range-input_disabled': disabled,
170
- })}
151
+ className={cn('date-range-input__absolut-wraper', {
152
+ 'date-range-input__absolut-wraper_right-position': isOptionsRight
153
+ })}
171
154
  >
172
- <span className="date-range-input__label" >{label}</span>
173
- <div
174
- className="date-range-input__wraper"
175
- ref={ref}
176
- onMouseEnter={isHoverable && toggleOn}
177
- onMouseLeave={isHoverable && toggleOff}
155
+ <div className={cn('date-range-input__static-part')}>
156
+ <button
157
+ id={id}
158
+ className={cn('date-range-input__toggle-button')}
159
+ disabled={disabled}
160
+ onClick={!disabled && !isHoverable ? toggle : undefined}
178
161
  >
179
- <div className={cn('date-range-input__absolut-wraper', {
180
- 'date-range-input__absolut-wraper_right-position': isOptionsRight,
181
- })}>
182
- <div className={cn('date-range-input__static-part')}>
183
- <button
184
- id={id}
185
- className={cn('date-range-input__toggle-button')}
186
- disabled={disabled}
187
- onClick={!disabled && !isHoverable ? toggle : undefined}
188
- >
189
- <div className="date-range-input__interval-key">
190
- <span>
191
- {(txt?.labels && txt.labels[actualValues?.intervalKey]) ?? (INTERVALS[actualValues?.intervalKey]?.label || CUSTOM_INTERVAL_KEY_TEXT)}
192
- </span>
193
- {current !== ALL_TIME_KEY && <span>:</span>}
194
- </div>
195
- {!isCompact && <div className={cn('date-range-input__range', {})}><Range /></div>}
196
- </button>
197
- {!isCompact && !hideArrows && (
198
- <div className={cn('date-range-input__arrows-block')}>
199
- <Arrow
200
- type="left"
201
- className="date-range-input__arrow"
202
- onClick={() => handleArrowClick("left")}
203
- disabled={disabled || actualValues?.intervalKey === ALL_TIME_KEY}
204
- />
205
- <Arrow
206
- type="right"
207
- className="date-range-input__arrow"
208
- onClick={() => handleArrowClick("right")}
209
- disabled={
210
- disabled ||
211
- actualValues?.intervalKey === ALL_TIME_KEY ||
212
- actualValues?.intervalKey === 'today' ||
213
- moment(actualValues?.end)
214
- .add(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
215
- .isAfter(moment().add(1, 'day').startOf('day'))
216
- }
217
- />
218
- </div>
219
- )}
220
- </div>
221
- {isToggled && !isUseAbs && (
222
- <OpenedPart
223
- {...props}
224
- ref={internalContainerRef}
225
- actualValues={actualValues}
226
- current={current}
227
- setCurrent={setCurrent}
228
- isCompare={isCompare}
229
- setIsCompare={setIsCompare}
230
- toggleOff={toggleOff}
231
- onChange={handleChange}
232
- />
233
- )}
162
+ <div className="date-range-input__interval-key">
163
+ <span>
164
+ {(txt?.labels && txt.labels[actualValues?.intervalKey]) ??
165
+ (INTERVALS[actualValues?.intervalKey]?.label || CUSTOM_INTERVAL_KEY_TEXT)}
166
+ </span>
167
+ {current !== ALL_TIME_KEY && <span>:</span>}
168
+ </div>
169
+ {!isCompact && (
170
+ <div className={cn('date-range-input__range', {})}>
171
+ <Range />
234
172
  </div>
235
- </div>
236
- {error && <span className="date-range-input__error-block">{error}</span>}
173
+ )}
174
+ </button>
175
+ {!isCompact && !hideArrows && (
176
+ <div className={cn('date-range-input__arrows-block')}>
177
+ <Arrow
178
+ type="left"
179
+ className="date-range-input__arrow"
180
+ onClick={() => handleArrowClick('left')}
181
+ disabled={disabled || actualValues?.intervalKey === ALL_TIME_KEY}
182
+ />
183
+ <Arrow
184
+ type="right"
185
+ className="date-range-input__arrow"
186
+ onClick={() => handleArrowClick('right')}
187
+ disabled={
188
+ disabled ||
189
+ actualValues?.intervalKey === ALL_TIME_KEY ||
190
+ actualValues?.intervalKey === 'today' ||
191
+ moment(actualValues?.end)
192
+ .add(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
193
+ .isAfter(moment().add(1, 'day').startOf('day'))
194
+ }
195
+ />
196
+ </div>
197
+ )}
198
+ </div>
199
+ {isToggled && !isUseAbs && (
200
+ <OpenedPart
201
+ {...props}
202
+ ref={internalContainerRef}
203
+ actualValues={actualValues}
204
+ current={current}
205
+ setCurrent={setCurrent}
206
+ isCompare={isCompare}
207
+ setIsCompare={setIsCompare}
208
+ toggleOff={toggleOff}
209
+ onChange={handleChange}
210
+ />
211
+ )}
237
212
  </div>
238
- );
213
+ </div>
214
+ {error && <span className="date-range-input__error-block">{error}</span>}
215
+ </div>
216
+ );
239
217
  };
240
218
 
241
219
  export default React.memo(InputDateRange);