intelicoreact 0.0.94 → 0.0.95
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.
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +23 -4
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +3 -3
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +20 -9
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +7 -5
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +29 -24
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +13 -7
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +427 -0
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +120 -0
- package/dist/{Molecular/Datepicker/Datepicker.stories.js → Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js} +33 -21
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +11 -8
- package/dist/Atomic/UI/Calendar/Calendar.js +13 -12
- package/dist/Functions/customEventListener.js +66 -0
- package/package.json +1 -1
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +34 -3
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +4 -4
- package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +57 -22
- package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +10 -8
- package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +391 -392
- package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +11 -3
- package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +315 -0
- package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +120 -0
- package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +30 -0
- package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +132 -126
- package/src/Atomic/UI/Calendar/Calendar.js +21 -11
- package/src/Functions/customEventListener.js +58 -0
- package/src/Functions/useMouseUpOutside.js +14 -0
- package/dist/Functions/useToggle.js +0 -40
- package/dist/Functions/utils.js +0 -66
- package/dist/Molecular/Datepicker/Datepicker.js +0 -451
- package/dist/Molecular/Datepicker/Datepicker.scss +0 -8
- package/dist/Molecular/Datepicker/components/Calendar.js +0 -156
- package/dist/Molecular/FormElements/FormElement.js +0 -40
- package/dist/Molecular/FormElements/FormElement.scss +0 -8
- package/dist/Molecular/FormElements/FormElement.stories.js +0 -73
- package/dist/index.js +0 -15
- package/dist/scss/_fonts.scss +0 -109
- package/dist/scss/_vars.scss +0 -48
- package/dist/scss/main.scss +0 -40
|
@@ -39,11 +39,14 @@ function _default(props) {
|
|
|
39
39
|
allowNext = _props$allowNext === void 0 ? true : _props$allowNext,
|
|
40
40
|
params = props.params,
|
|
41
41
|
className = props.className,
|
|
42
|
-
isDontLimitFuture = props.isDontLimitFuture,
|
|
43
42
|
isListTop = props.isListTop; // const { minDate = '01/01/1900', maxDate = moment().format('MM/DD/YYYY') } = params;
|
|
44
43
|
|
|
45
|
-
var
|
|
46
|
-
|
|
44
|
+
var format = params.format,
|
|
45
|
+
minDate = params.minDate,
|
|
46
|
+
maxDate = params.maxDate,
|
|
47
|
+
momentMinDate = params.momentMinDate,
|
|
48
|
+
momentMaxDate = params.momentMaxDate,
|
|
49
|
+
isDontLimitFuture = params.isDontLimitFuture;
|
|
47
50
|
|
|
48
51
|
var _useState = (0, _react.useState)({}),
|
|
49
52
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -67,17 +70,15 @@ function _default(props) {
|
|
|
67
70
|
|
|
68
71
|
var yearInputRef = (0, _react.useRef)(null);
|
|
69
72
|
var selectedDay = (0, _moment.default)(showDate);
|
|
70
|
-
var isError = 'Invalid date';
|
|
71
|
-
// () => (selectedDay.format('MMM') === isError ? isError : `${selectedDay.format('MMM')} ${moment(showDate).format('YYYY')}`),
|
|
72
|
-
// [date, showDate]
|
|
73
|
-
// );
|
|
74
|
-
|
|
73
|
+
var isError = 'Invalid date';
|
|
75
74
|
var showMonth = (0, _react.useMemo)(function () {
|
|
76
75
|
return (0, _moment.default)(showDate).format('MMM');
|
|
77
76
|
}, [date, showDate]);
|
|
78
77
|
var showYear = (0, _react.useMemo)(function () {
|
|
79
78
|
return (0, _moment.default)(showDate).format('YYYY');
|
|
80
79
|
}, [date, showDate]);
|
|
80
|
+
var isShovPrevArrow = allowPrev && !(minDate && (0, _moment.default)(showDate).startOf('month').isSameOrBefore(momentMinDate, 'months'));
|
|
81
|
+
var isShovNextArrow = allowNext && (isDontLimitFuture || !(0, _moment.default)(showDate).startOf('month').isSameOrAfter(maxDate ? momentMaxDate : (0, _moment.default)().add(1, 'day').startOf('day'), 'months'));
|
|
81
82
|
(0, _react.useEffect)(function () {
|
|
82
83
|
var result = {};
|
|
83
84
|
var day = selectedDay.startOf('month');
|
|
@@ -106,8 +107,8 @@ function _default(props) {
|
|
|
106
107
|
if (!day) return /*#__PURE__*/_react.default.createElement("div", {
|
|
107
108
|
className: "calendar__day"
|
|
108
109
|
});
|
|
109
|
-
var isFutureDay = day && maxDate ? (0, _moment.default)(day.date).isAfter((0, _moment.default)(
|
|
110
|
-
var isBeforeDay = day && (0, _moment.default)(day.date).isBefore(
|
|
110
|
+
var isFutureDay = day && !isDontLimitFuture && maxDate ? (0, _moment.default)(day.date).isAfter(momentMaxDate || (0, _moment.default)().add(1, 'days'), 'day') : (0, _moment.default)(day.date).isAfter((0, _moment.default)(), 'day');
|
|
111
|
+
var isBeforeDay = day && (0, _moment.default)(day.date).isBefore(momentMinDate || '', 'day');
|
|
111
112
|
var classNames = (0, _classnames.default)('calendar__day', {
|
|
112
113
|
'calendar__day--clickable': day
|
|
113
114
|
}, {
|
|
@@ -170,7 +171,7 @@ function _default(props) {
|
|
|
170
171
|
className: "calendar-header"
|
|
171
172
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
172
173
|
className: "calendar-header__prev"
|
|
173
|
-
},
|
|
174
|
+
}, isShovPrevArrow && /*#__PURE__*/_react.default.createElement("div", {
|
|
174
175
|
onClick: handlePrev
|
|
175
176
|
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronLeft, null))), /*#__PURE__*/_react.default.createElement("div", {
|
|
176
177
|
className: (0, _classnames.default)('calendar-header__title'),
|
|
@@ -200,7 +201,7 @@ function _default(props) {
|
|
|
200
201
|
}
|
|
201
202
|
}) : "".concat(showYear))), /*#__PURE__*/_react.default.createElement("div", {
|
|
202
203
|
className: "calendar-header__next"
|
|
203
|
-
},
|
|
204
|
+
}, isShovNextArrow && /*#__PURE__*/_react.default.createElement("div", {
|
|
204
205
|
onClick: handleNext
|
|
205
206
|
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronRight, null)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
206
207
|
className: "calendar__week"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
(function () {
|
|
4
|
+
Element.prototype._addEventListener = Element.prototype.addEventListener;
|
|
5
|
+
|
|
6
|
+
Element.prototype.addEventListener = function (a, b, c) {
|
|
7
|
+
if (c == undefined) c = false;
|
|
8
|
+
|
|
9
|
+
this._addEventListener(a, b, c);
|
|
10
|
+
|
|
11
|
+
if (!this.eventListenerList) this.eventListenerList = {};
|
|
12
|
+
if (!this.eventListenerList[a]) this.eventListenerList[a] = []; //this.removeEventListener(a,b,c); // TODO - handle duplicates..
|
|
13
|
+
|
|
14
|
+
this.eventListenerList[a].push({
|
|
15
|
+
listener: b,
|
|
16
|
+
useCapture: c
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
Element.prototype.getEventListeners = function (a) {
|
|
21
|
+
if (!this.eventListenerList) this.eventListenerList = {};
|
|
22
|
+
if (a == undefined) return this.eventListenerList;
|
|
23
|
+
return this.eventListenerList[a];
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
Element.prototype.clearEventListeners = function (a) {
|
|
27
|
+
if (!this.eventListenerList) this.eventListenerList = {};
|
|
28
|
+
|
|
29
|
+
if (a == undefined) {
|
|
30
|
+
for (var x in this.getEventListeners()) {
|
|
31
|
+
this.clearEventListeners(x);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var el = this.getEventListeners(a);
|
|
38
|
+
if (el == undefined) return;
|
|
39
|
+
|
|
40
|
+
for (var i = el.length - 1; i >= 0; --i) {
|
|
41
|
+
var ev = el[i];
|
|
42
|
+
this.removeEventListener(a, ev.listener, ev.useCapture);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
Element.prototype._removeEventListener = Element.prototype.removeEventListener;
|
|
47
|
+
|
|
48
|
+
Element.prototype.removeEventListener = function (a, b, c) {
|
|
49
|
+
if (c == undefined) c = false;
|
|
50
|
+
|
|
51
|
+
this._removeEventListener(a, b, c);
|
|
52
|
+
|
|
53
|
+
if (!this.eventListenerList) this.eventListenerList = {};
|
|
54
|
+
if (!this.eventListenerList[a]) this.eventListenerList[a] = []; // Find the event in the list
|
|
55
|
+
|
|
56
|
+
for (var i = 0; i < this.eventListenerList[a].length; i++) {
|
|
57
|
+
if (this.eventListenerList[a][i].listener == b, this.eventListenerList[a][i].useCapture == c) {
|
|
58
|
+
// Hmm..
|
|
59
|
+
this.eventListenerList[a].splice(i, 1);
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (this.eventListenerList[a].length == 0) delete this.eventListenerList[a];
|
|
65
|
+
};
|
|
66
|
+
})();
|
package/package.json
CHANGED
|
@@ -12,17 +12,29 @@ const InputCalendar = ({
|
|
|
12
12
|
value,
|
|
13
13
|
minDate,
|
|
14
14
|
maxDate,
|
|
15
|
+
format = 'MM/DD/YYYY',
|
|
16
|
+
isDontLimitFuture,
|
|
15
17
|
onChange,
|
|
16
18
|
className = '',
|
|
17
19
|
placeholder = 'mm/dd/yyyy',
|
|
18
20
|
mask = '99/99/9999',
|
|
19
|
-
isDontLimitFuture,
|
|
20
21
|
isListTop,
|
|
21
22
|
disabled,
|
|
22
23
|
}) => {
|
|
23
24
|
const [isOpened, setIsOpened] = useState(false);
|
|
24
25
|
const calendarRef = useRef(null);
|
|
25
26
|
|
|
27
|
+
const formatedMinDate = moment(minDate).format(format) !== 'Invalid date'
|
|
28
|
+
? moment(minDate).format(format)
|
|
29
|
+
: null;
|
|
30
|
+
|
|
31
|
+
const formatedMaxDate = moment(maxDate).format(format) !== 'Invalid date'
|
|
32
|
+
? moment(maxDate).format(format)
|
|
33
|
+
: null;
|
|
34
|
+
|
|
35
|
+
const momentMinDate = moment(formatedMinDate, format).startOf('day');
|
|
36
|
+
const momentMaxDate = moment(formatedMaxDate, format).startOf('day');
|
|
37
|
+
|
|
26
38
|
useClickOutside(calendarRef, () => setIsOpened(false));
|
|
27
39
|
|
|
28
40
|
const changeInputValue = (val) => {
|
|
@@ -41,6 +53,14 @@ const InputCalendar = ({
|
|
|
41
53
|
return moment(new Date()).format('L');
|
|
42
54
|
};
|
|
43
55
|
|
|
56
|
+
const handleBlur = (e) => {
|
|
57
|
+
const value = e.target.value;
|
|
58
|
+
if (moment(value).format(format) === 'Invalid date') onChange('');
|
|
59
|
+
else if (moment(value).startOf('day').isBefore(momentMinDate, 'days')) onChange(formatedMinDate);
|
|
60
|
+
else if (moment(value).endOf('day').isAfter(momentMaxDate, 'days')) onChange(formatedMaxDate);
|
|
61
|
+
else onChange(moment(value).format(format));
|
|
62
|
+
};
|
|
63
|
+
|
|
44
64
|
return (
|
|
45
65
|
<div
|
|
46
66
|
className={cn('input__wrap calendar-container', className, {
|
|
@@ -55,13 +75,24 @@ const InputCalendar = ({
|
|
|
55
75
|
onChange={(e) => changeInputValue(e.target.value)}
|
|
56
76
|
className="calendar-dropdown"
|
|
57
77
|
onFocus={() => setIsOpened(true)}
|
|
78
|
+
onBlur={!isOpened ? handleBlur : () => {}}
|
|
79
|
+
onKeyUp={e => {
|
|
80
|
+
if (e.key === 'Enter') e.target.blur();
|
|
81
|
+
setIsOpened(false);
|
|
82
|
+
}}
|
|
58
83
|
/>
|
|
59
84
|
{isOpened ? (
|
|
60
85
|
<Calendar
|
|
61
86
|
date={getCalendarValue(value)}
|
|
62
87
|
setDate={(newDate) => changeCalendarDay(newDate)}
|
|
63
|
-
params={{
|
|
64
|
-
|
|
88
|
+
params={{
|
|
89
|
+
format,
|
|
90
|
+
minDate: formatedMinDate,
|
|
91
|
+
maxDate: formatedMaxDate,
|
|
92
|
+
momentMinDate,
|
|
93
|
+
momentMaxDate,
|
|
94
|
+
isDontLimitFuture
|
|
95
|
+
}}
|
|
65
96
|
isListTop={isListTop}
|
|
66
97
|
setIsOpened={setIsOpened}
|
|
67
98
|
/>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import InputCalendar from './InputCalendar';
|
|
3
3
|
|
|
4
4
|
global.lng = 'en';
|
|
@@ -32,8 +32,8 @@ const Template = (args) => {
|
|
|
32
32
|
export const CalendarTemplate = Template.bind({});
|
|
33
33
|
|
|
34
34
|
CalendarTemplate.args = {
|
|
35
|
-
minDate: '01/
|
|
36
|
-
maxDate: '
|
|
37
|
-
isDontLimitFuture: true,
|
|
35
|
+
minDate: '01/10/2022',
|
|
36
|
+
maxDate: '04/20/2022',
|
|
37
|
+
// isDontLimitFuture: true,
|
|
38
38
|
// isListTop: true,
|
|
39
39
|
};
|
|
@@ -9,7 +9,7 @@ import Arrow from '../../UI/Arrow/Arrow';
|
|
|
9
9
|
|
|
10
10
|
import './InputDateRange.scss';
|
|
11
11
|
|
|
12
|
-
const InputDateRange = props => {
|
|
12
|
+
const InputDateRange = (props) => {
|
|
13
13
|
const {
|
|
14
14
|
txt,
|
|
15
15
|
id,
|
|
@@ -26,8 +26,21 @@ const InputDateRange = props => {
|
|
|
26
26
|
isUseAbs,
|
|
27
27
|
minDate = null,
|
|
28
28
|
maxDate = null,
|
|
29
|
+
format = 'MM/DD/YYYY',
|
|
30
|
+
isDontLimitFuture,
|
|
29
31
|
} = props;
|
|
30
32
|
|
|
33
|
+
const formatedMinDate = moment(minDate).format(format) !== 'Invalid date'
|
|
34
|
+
? moment(minDate).format(format)
|
|
35
|
+
: null;
|
|
36
|
+
|
|
37
|
+
const formatedMaxDate = moment(maxDate).format(format) !== 'Invalid date'
|
|
38
|
+
? moment(maxDate).format(format)
|
|
39
|
+
: null;
|
|
40
|
+
|
|
41
|
+
const momentMinDate = moment(formatedMinDate, format).startOf('day');
|
|
42
|
+
const momentMaxDate = moment(formatedMaxDate, format).startOf('day');
|
|
43
|
+
|
|
31
44
|
const actualValues = getActualDateRange(value);
|
|
32
45
|
const { isToggled, toggle, toggleOn, toggleOff } = useToggle(false);
|
|
33
46
|
const [current, setCurrent] = useState(actualValues?.intervalKey);
|
|
@@ -36,16 +49,15 @@ const InputDateRange = props => {
|
|
|
36
49
|
const ref = !isUseAbs ? useClickOutside(toggleOff) : useRef(null);
|
|
37
50
|
const internalContainerRef = useRef(null);
|
|
38
51
|
|
|
39
|
-
const handleChange = input => {
|
|
40
|
-
|
|
52
|
+
const handleChange = (input) => {
|
|
41
53
|
const newValue = getActualDateRange(input);
|
|
42
54
|
const formatedValue = {
|
|
43
55
|
intervalKey: newValue.intervalKey,
|
|
44
|
-
start: newValue.start ? moment(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
|
|
45
|
-
end: newValue.end ? moment(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end,
|
|
56
|
+
start: newValue.start ? moment(newValue.start).format(format || 'YYYY-MM-DDTHH:mm') : newValue.start,
|
|
57
|
+
end: newValue.end ? moment(newValue.end).format(format || 'YYYY-MM-DDTHH:mm') : newValue.end,
|
|
46
58
|
...(newValue.compare ? { compare: newValue.compare } : {}),
|
|
47
|
-
...(newValue.startPrevDate ? { startPrevDate: moment(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm') } : {}),
|
|
48
|
-
...(newValue.endPrevDate ? { endPrevDate: moment(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm') } : {})
|
|
59
|
+
...(newValue.startPrevDate ? { startPrevDate: moment(newValue.startPrevDate).format(format || 'YYYY-MM-DDTHH:mm') } : {}),
|
|
60
|
+
...(newValue.endPrevDate ? { endPrevDate: moment(newValue.endPrevDate).format(format || 'YYYY-MM-DDTHH:mm') } : {}),
|
|
49
61
|
};
|
|
50
62
|
|
|
51
63
|
onChange(formatedValue);
|
|
@@ -69,9 +81,9 @@ const InputDateRange = props => {
|
|
|
69
81
|
endTime !== '00:00' ? `(${endTime})` : ''
|
|
70
82
|
}`;
|
|
71
83
|
|
|
72
|
-
const getClasses = base =>
|
|
84
|
+
const getClasses = (base) =>
|
|
73
85
|
cn('date-range-input__range-text', {
|
|
74
|
-
'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
|
|
86
|
+
'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED,
|
|
75
87
|
});
|
|
76
88
|
|
|
77
89
|
return (
|
|
@@ -113,16 +125,16 @@ const InputDateRange = props => {
|
|
|
113
125
|
...value,
|
|
114
126
|
intervalKey: getActualDateRange({
|
|
115
127
|
start: newStart,
|
|
116
|
-
end: newEnd
|
|
128
|
+
end: newEnd,
|
|
117
129
|
})?.intervalKey,
|
|
118
130
|
start: newStart,
|
|
119
131
|
end: newEnd,
|
|
120
132
|
startPrevDate,
|
|
121
|
-
endPrevDate
|
|
133
|
+
endPrevDate,
|
|
122
134
|
});
|
|
123
135
|
};
|
|
124
136
|
|
|
125
|
-
const handleArrowClick = type => {
|
|
137
|
+
const handleArrowClick = (type) => {
|
|
126
138
|
slideInterval(type === 'right' ? 'forward' : 'back');
|
|
127
139
|
toggleOff();
|
|
128
140
|
};
|
|
@@ -135,7 +147,7 @@ const InputDateRange = props => {
|
|
|
135
147
|
'date-range-input_hide-arrows': hideArrows,
|
|
136
148
|
'date-range-input_focused': isToggled,
|
|
137
149
|
'date-range-input_error': error,
|
|
138
|
-
'date-range-input_disabled': disabled
|
|
150
|
+
'date-range-input_disabled': disabled,
|
|
139
151
|
})}
|
|
140
152
|
>
|
|
141
153
|
<span className="date-range-input__label">{label}</span>
|
|
@@ -147,7 +159,7 @@ const InputDateRange = props => {
|
|
|
147
159
|
>
|
|
148
160
|
<div
|
|
149
161
|
className={cn('date-range-input__absolut-wraper', {
|
|
150
|
-
'date-range-input__absolut-wraper_right-position': isOptionsRight
|
|
162
|
+
'date-range-input__absolut-wraper_right-position': isOptionsRight,
|
|
151
163
|
})}
|
|
152
164
|
>
|
|
153
165
|
<div className={cn('date-range-input__static-part')}>
|
|
@@ -160,7 +172,7 @@ const InputDateRange = props => {
|
|
|
160
172
|
<div className="date-range-input__interval-key">
|
|
161
173
|
<span>
|
|
162
174
|
{(txt?.labels && txt.labels[actualValues?.intervalKey]) ??
|
|
163
|
-
|
|
175
|
+
(INTERVALS[actualValues?.intervalKey]?.label || CUSTOM_INTERVAL_KEY_TEXT)}
|
|
164
176
|
</span>
|
|
165
177
|
{current !== ALL_TIME_KEY && <span>:</span>}
|
|
166
178
|
</div>
|
|
@@ -176,7 +188,15 @@ const InputDateRange = props => {
|
|
|
176
188
|
type="left"
|
|
177
189
|
className="date-range-input__arrow"
|
|
178
190
|
onClick={() => handleArrowClick('left')}
|
|
179
|
-
disabled={
|
|
191
|
+
disabled={
|
|
192
|
+
disabled ||
|
|
193
|
+
actualValues?.intervalKey === ALL_TIME_KEY ||
|
|
194
|
+
(formatedMinDate &&
|
|
195
|
+
moment(actualValues?.start)
|
|
196
|
+
.subtract(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
|
|
197
|
+
.isBefore(momentMinDate)
|
|
198
|
+
)
|
|
199
|
+
}
|
|
180
200
|
/>
|
|
181
201
|
<Arrow
|
|
182
202
|
type="right"
|
|
@@ -185,10 +205,21 @@ const InputDateRange = props => {
|
|
|
185
205
|
disabled={
|
|
186
206
|
disabled ||
|
|
187
207
|
actualValues?.intervalKey === ALL_TIME_KEY ||
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
208
|
+
(!isDontLimitFuture &&
|
|
209
|
+
(formatedMaxDate
|
|
210
|
+
? (
|
|
211
|
+
moment(actualValues?.end)
|
|
212
|
+
.endOf('day')
|
|
213
|
+
.subtract(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
|
|
214
|
+
.isAfter(momentMaxDate.startOf('day'))
|
|
215
|
+
)
|
|
216
|
+
: (
|
|
217
|
+
moment(actualValues?.end)
|
|
218
|
+
.add(moment(actualValues?.end).diff(actualValues?.start, 'hours'), 'hours')
|
|
219
|
+
.isAfter(moment().add(1, 'day').startOf('day'))
|
|
220
|
+
)
|
|
221
|
+
)
|
|
222
|
+
)
|
|
192
223
|
}
|
|
193
224
|
/>
|
|
194
225
|
</div>
|
|
@@ -205,8 +236,12 @@ const InputDateRange = props => {
|
|
|
205
236
|
setIsCompare={setIsCompare}
|
|
206
237
|
toggleOff={toggleOff}
|
|
207
238
|
onChange={handleChange}
|
|
208
|
-
minDate={
|
|
209
|
-
maxDate={
|
|
239
|
+
minDate={formatedMinDate}
|
|
240
|
+
maxDate={formatedMaxDate}
|
|
241
|
+
format={format}
|
|
242
|
+
momentMinDate={momentMinDate}
|
|
243
|
+
momentMaxDate={momentMaxDate}
|
|
244
|
+
isDontLimitFuture={isDontLimitFuture}
|
|
210
245
|
/>
|
|
211
246
|
)}
|
|
212
247
|
</div>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import React, { /* useEffect, */ useState } from 'react';
|
|
2
|
+
import moment from 'moment-timezone';
|
|
3
|
+
|
|
2
4
|
import InputDateRange from './InputDateRange';
|
|
3
5
|
import Table from '../Table/Table';
|
|
4
6
|
|
|
@@ -14,15 +16,13 @@ export default {
|
|
|
14
16
|
// options: ['admin', 'user']
|
|
15
17
|
// }
|
|
16
18
|
// }
|
|
17
|
-
}
|
|
19
|
+
},
|
|
18
20
|
};
|
|
19
21
|
|
|
20
|
-
const Template = args => {
|
|
22
|
+
const Template = (args) => {
|
|
21
23
|
const { dateRange, ...restOfProps } = args;
|
|
22
24
|
const [value, setValue] = useState(dateRange);
|
|
23
|
-
// useEffect(() => console.log(value), [value]);
|
|
24
25
|
|
|
25
|
-
// return <InputDateRange {...restOfProps} value={value} onChange={setValue} />;
|
|
26
26
|
return (
|
|
27
27
|
<div>
|
|
28
28
|
<div className="mb20">
|
|
@@ -38,7 +38,7 @@ InputDateRangeTemplate.args = {
|
|
|
38
38
|
txt: {},
|
|
39
39
|
buttonsTypes: {
|
|
40
40
|
// apply: 'ellipse-apply',
|
|
41
|
-
cancel: 'bark-outline'
|
|
41
|
+
cancel: 'bark-outline',
|
|
42
42
|
},
|
|
43
43
|
label: 'Date Range',
|
|
44
44
|
dateRange: { intervalKey: 'today' },
|
|
@@ -47,8 +47,10 @@ InputDateRangeTemplate.args = {
|
|
|
47
47
|
error: false,
|
|
48
48
|
disabled: false,
|
|
49
49
|
isHoverable: false,
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
// format: 'DD/MM/YYYY',
|
|
51
|
+
minDate: '01/10/2022',
|
|
52
|
+
maxDate: '04/20/2022',
|
|
53
|
+
// isDontLimitFuture: true,
|
|
52
54
|
// short: true,
|
|
53
55
|
isCompact: false,
|
|
54
56
|
// isFocused: true,
|
|
@@ -56,7 +58,7 @@ InputDateRangeTemplate.args = {
|
|
|
56
58
|
isCompareHidden: true,
|
|
57
59
|
hideArrows: false,
|
|
58
60
|
isOptionsRight: false,
|
|
59
|
-
isShortWeekNames: false
|
|
61
|
+
isShortWeekNames: false,
|
|
60
62
|
// limitRange,
|
|
61
63
|
// isUseAbs,
|
|
62
64
|
// absTooltip
|