intelicoreact 0.0.85 → 0.0.91

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 (33) hide show
  1. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +43 -19
  2. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +6 -0
  3. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +34 -7
  4. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +23 -0
  5. package/dist/Atomic/FormElements/Dropdown/components/Loader.scss +57 -0
  6. package/dist/Atomic/FormElements/Input/Input.js +30 -10
  7. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +7 -1
  8. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +21 -20
  9. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +8 -2
  10. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +2 -0
  11. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +35 -20
  12. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +8 -2
  13. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -1
  14. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -0
  15. package/dist/Atomic/UI/Calendar/Calendar.js +1 -1
  16. package/dist/Atomic/UI/Calendar/Calendar.scss +7 -0
  17. package/package.json +1 -2
  18. package/src/Atomic/FormElements/Dropdown/Dropdown.js +66 -35
  19. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +6 -0
  20. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +22 -8
  21. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +17 -0
  22. package/src/Atomic/FormElements/Dropdown/components/Loader.scss +57 -0
  23. package/src/Atomic/FormElements/Input/Input.js +46 -33
  24. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +9 -1
  25. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +14 -10
  26. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +5 -0
  27. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +2 -0
  28. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +41 -20
  29. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +5 -1
  30. package/src/Atomic/FormElements/InputDateRange/dependencies.js +1 -1
  31. package/src/Atomic/FormElements/NumericInput/NumericInput.js +1 -0
  32. package/src/Atomic/UI/Calendar/Calendar.js +1 -1
  33. package/src/Atomic/UI/Calendar/Calendar.scss +7 -0
@@ -41,7 +41,9 @@ const Datepicker = props => {
41
41
  limitRange,
42
42
  handleItemClick,
43
43
  setActiveInterval,
44
- isShortWeekNames
44
+ isShortWeekNames,
45
+ minDate = null,
46
+ maxDate = null
45
47
  } = props;
46
48
  const { start = null, end = null, compare = false } = values;
47
49
  const startDateInputRef = useRef(null);
@@ -191,7 +193,7 @@ const Datepicker = props => {
191
193
  const handleChangeStartHour = val => {
192
194
  setStartHour(+val);
193
195
  setStartDate(
194
- moment(startDate)
196
+ moment(startDate || moment())
195
197
  .set('hour', +val)
196
198
  .toDate(),
197
199
  );
@@ -200,14 +202,16 @@ const Datepicker = props => {
200
202
  const handleChangeEndHour = val => {
201
203
  const newHour = +val;
202
204
  setEndHour(newHour);
203
- let newEndDate;
204
- if (prevEndHour.current === 0 && newHour !== 0) {
205
- newEndDate = moment(endDate).subtract(1, 'days');
206
- } else if (prevEndHour.current !== 0 && newHour === 0) {
207
- newEndDate = moment(endDate).add(1, 'days');
208
- } else {
209
- newEndDate = endDate;
205
+ let newEndDate = moment();
206
+
207
+ if(endDate){
208
+ if (prevEndHour.current === 0 && newHour !== 0) {
209
+ newEndDate = moment(endDate).subtract(1, 'days');
210
+ } else if (prevEndHour.current !== 0 && newHour === 0) {
211
+ newEndDate = moment(endDate).add(1, 'days');
212
+ }
210
213
  }
214
+
211
215
  prevEndHour.current = newHour;
212
216
  setEndDate(moment(newEndDate).set('hour', newHour).toDate());
213
217
  };
@@ -256,13 +260,22 @@ const Datepicker = props => {
256
260
 
257
261
  const handleStartDateBlur = e => {
258
262
  let newDate;
259
- if (moment(startDateInput).isValid()) {
260
- newDate = moment(startDateInput).set('hour', parseInt(startHour, 10)).toDate();
261
- setStartDate(newDate);
263
+
264
+ if(!moment(startDateInput).isValid()){
265
+ newDate = startDate;
262
266
  } else {
263
- newDate = startDate;
264
- setStartDateInput(newDate);
267
+ if(minDate && !moment(startDateInput).isSameOrAfter(minDate)){
268
+ newDate = minDate;
269
+ } else if(maxDate && !moment(startDateInput).isSameOrBefore(maxDate)){
270
+ newDate = maxDate;
271
+ } else {
272
+ newDate = moment(startDateInput);
273
+ }
265
274
  }
275
+
276
+ setStartDateInput(newDate);
277
+ setStartDate(newDate.set('hour', parseInt(startHour, 10)).toDate());
278
+
266
279
  doBlur('start', e);
267
280
  setDate1(
268
281
  moment(newDate).isSameOrAfter(moment(date2), 'month') ? moment(date2).subtract(1, 'month') : moment(newDate),
@@ -277,16 +290,24 @@ const Datepicker = props => {
277
290
 
278
291
  const handleEndDateBlur = e => {
279
292
  let newDate;
280
- if (moment(endDateInput).isValid()) {
281
- newDate = moment(endDateInput).set('hour', parseInt(endHour, 10)).toDate();
282
- setEndDate(addDay(newDate));
293
+
294
+ if(!moment(endDateInput).isValid()){
295
+ newDate = endDate;
283
296
  } else {
284
- newDate = endDate;
285
- setEndDateInput(newDate);
297
+ if(minDate && !moment(endDateInput).isSameOrAfter(minDate)){
298
+ newDate = minDate;
299
+ } else if(maxDate && !moment(endDateInput).isSameOrBefore(maxDate)){
300
+ newDate = maxDate;
301
+ } else {
302
+ newDate = moment(endDateInput);
303
+ }
286
304
  }
305
+
306
+ setEndDate(addDay(newDate.set('hour', parseInt(endHour, 10)).toDate()));
307
+ setEndDateInput(newDate);
308
+
287
309
  doBlur('end', e);
288
310
  setDate2(newDate);
289
- setEndDateInput();
290
311
  };
291
312
 
292
313
  const handleKeyPressed = (code, e, type) => {
@@ -25,7 +25,9 @@ const OpenedPart = React.forwardRef((props, ref) => {
25
25
  isCompare,
26
26
  setIsCompare,
27
27
  toggleOff,
28
- isShortWeekNames
28
+ isShortWeekNames,
29
+ minDate = null,
30
+ maxDate = null
29
31
  } = props;
30
32
 
31
33
  const items = isCompact ? [...Object.keys(intervals)] : [...Object.keys(intervals), customKey];
@@ -105,6 +107,8 @@ const OpenedPart = React.forwardRef((props, ref) => {
105
107
  limitRange={limitRange}
106
108
  setActiveInterval={setActiveInterval}
107
109
  isShortWeekNames={isShortWeekNames}
110
+ minDate={minDate}
111
+ maxDate={maxDate}
108
112
  />
109
113
  )}
110
114
  </div>
@@ -89,7 +89,7 @@ export const INTERVALS = {
89
89
  end: () => moment().startOf('month'),
90
90
  },
91
91
  last6Months: {
92
- label: 'Last 6 Months',
92
+ label: '6 Months',
93
93
  start: () => moment().subtract(6, 'month').startOf('month'),
94
94
  end: () => moment().startOf('month'),
95
95
  },
@@ -192,6 +192,7 @@ const NumericInput = ({
192
192
  useEffect(() => {
193
193
  if (inputRef?.current && typeof isFocusDefault === 'boolean')
194
194
  setIsFocused(isFocusDefault);
195
+ setEditing(isFocusDefault)
195
196
  }, [inputRef, isFocusDefault]);
196
197
 
197
198
  function renderInput() {
@@ -70,7 +70,7 @@ export default function (props) {
70
70
  };
71
71
 
72
72
  return (
73
- <div className={`calendar ${className}`}>
73
+ <div className={`calendar ${className ? className : ""}`}>
74
74
  <div className="calendar-header">
75
75
  <div className="calendar-header__prev">
76
76
  {allowPrev && (
@@ -429,6 +429,12 @@
429
429
  display: flex;
430
430
  justify-content: center;
431
431
  align-items: center;
432
+
433
+ &__prev,
434
+ &__next{
435
+ display: flex;
436
+ height: auto;
437
+ }
432
438
  }
433
439
  .calendar {
434
440
  background: #ffffff;
@@ -515,6 +521,7 @@
515
521
  position: relative;
516
522
  .calendar {
517
523
  position: absolute;
524
+ z-index: 9;
518
525
  top: 100%;
519
526
  padding: 10px 16px;
520
527
  border: 1px solid var(--border-color);