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
@@ -1,9 +1,9 @@
1
1
  import React, { useState } from 'react';
2
+ import { BrowserRouter } from 'react-router-dom';
3
+
2
4
  import NavLine from './NavLine';
3
5
  import Alert from '../../UI/Alert/Alert';
4
- import Status from '../Status/Status';
5
-
6
- import '../../../../scss/main.scss';
6
+ import Status from '../../UI/Status/Status';
7
7
 
8
8
  global.lng = 'en';
9
9
 
@@ -28,9 +28,11 @@ const Template = args => {
28
28
  const [activeTab, setActiveTab] = useState(initialTab);
29
29
 
30
30
  return (
31
- <NavLine {...args} activeTab={activeTab} onChange={setActiveTab}>
32
- {navLineContent[activeTab]}
33
- </NavLine>
31
+ <BrowserRouter>
32
+ <NavLine {...args} activeTab={activeTab} onChange={setActiveTab}>
33
+ {navLineContent[activeTab]}
34
+ </NavLine>
35
+ </BrowserRouter>
34
36
  );
35
37
  };
36
38
 
@@ -43,24 +45,30 @@ NavLineSimpleTemplate.args = {
43
45
  isLocal: false,
44
46
  items: [
45
47
  {
46
- tabId: 'general'
48
+ tabId: 'general',
49
+ label: 'Tab1'
47
50
  },
48
51
  {
49
- tabId: 'payments'
52
+ tabId: 'payments',
53
+ label: 'Tab2'
50
54
  },
51
55
  {
52
- tabId: 'filters'
56
+ tabId: 'filters',
57
+ label: 'Tab3'
53
58
  },
54
59
  {
55
60
  tabId: 'offers',
61
+ label: 'Tab4',
56
62
  count: 2
57
63
  },
58
64
  {
59
65
  tabId: 'merchants',
66
+ label: 'Tab5',
60
67
  count: 15
61
68
  },
62
69
  {
63
- tabId: 'integration'
70
+ tabId: 'integration',
71
+ label: 'Tab6'
64
72
  },
65
73
  {
66
74
  tabId: 'tab',
@@ -76,23 +84,25 @@ NavLineTemplate.args = {
76
84
  items: [
77
85
  {
78
86
  tabId: 'customDetails',
79
- icon: 'FiGift'
87
+ label: 'Tab1',
88
+ icon: 'Gift'
80
89
  },
81
90
  {
82
91
  tabId: 'postsLog',
83
- icon: 'FiGift',
92
+ label: 'Tab2',
93
+ icon: 'Gift',
84
94
  count: 43
85
95
  },
86
96
  {
87
97
  tabId: 'tab1',
88
98
  label: 'disabled tab',
89
- icon: 'FiGift',
99
+ icon: 'Gift',
90
100
  status: 'disabled'
91
101
  },
92
102
  {
93
103
  tabId: 'tab2',
94
104
  label: 'tab 2',
95
- icon: 'FiGift'
105
+ icon: 'Gift'
96
106
  }
97
107
  ]
98
108
  };
@@ -1,4 +1,4 @@
1
- @import "../../../../scss/vars";
1
+ @import "../../../scss/vars";
2
2
 
3
3
  .radio-input {
4
4
  display: inline-flex;
@@ -1,8 +1,6 @@
1
1
  import React from 'react';
2
2
  import RadioInput from './RadioInput';
3
3
 
4
- import '../../../../scss/main.scss';
5
-
6
4
  global.lng = 'en';
7
5
  export default {
8
6
  title: 'RadioInput',
@@ -0,0 +1,143 @@
1
+ import React, { useEffect, useMemo, useState } from 'react';
2
+ import cn from 'classnames';
3
+ import moment from 'moment-timezone';
4
+
5
+ import Arrow from '../../UI/Arrow/Arrow'
6
+
7
+ import './RangeCalendar.scss'
8
+
9
+ const RangeCalendar = props => {
10
+ const {
11
+ className,
12
+ date,
13
+ setDate,
14
+ startDate,
15
+ endDate,
16
+ allowPrev = true,
17
+ allowNext = true,
18
+ onClick = () => {},
19
+ onHover = () => {},
20
+ startPrevDate,
21
+ endPrevDate,
22
+ limitRange
23
+ } = props;
24
+
25
+ const [days, setDays] = useState({});
26
+
27
+ const title = useMemo(() => `${moment(date).format('MMM')} ${moment(date).format('YYYY')}`, [date]);
28
+
29
+ useEffect(() => {
30
+ const result = {};
31
+ const day = moment(date).startOf('month');
32
+ const daysInMonth = day.daysInMonth();
33
+ for (let d = 0; d < daysInMonth; d += 1) {
34
+ let week = day.week();
35
+ if (day.month() === 11 && week === 1) week = 53;
36
+ if (day.month() === 0 && week === 53) week = 0;
37
+ if (!Object.prototype.hasOwnProperty.call(result, week)) {
38
+ result[week] = {};
39
+ }
40
+ result[week][day.weekday()] = { date: day.toDate() };
41
+ day.add(1, 'd');
42
+ }
43
+ setDays(result);
44
+ }, [date]);
45
+
46
+ const renderDay = (week, dayOfWeek) => {
47
+ const day = days[week][dayOfWeek];
48
+ const isFutureDay = day && moment(day.date).isAfter(moment(), 'day');
49
+ const isPastDay = limitRange
50
+ ? day && moment(day.date).isBefore(moment().subtract(limitRange, 'days'), 'day')
51
+ : null;
52
+ const isRangeStart = day && moment(day.date).isSame(startDate, 'day');
53
+ const isRangeEnd = day && moment(day.date).isSame(moment(endDate).subtract(1, 'hour'), 'day');
54
+ const isRangeInside =
55
+ day &&
56
+ startDate &&
57
+ endDate &&
58
+ moment(day.date).isAfter(startDate, 'day') &&
59
+ moment(day.date).isBefore(moment(endDate).subtract(1, 'hour'), 'day');
60
+ const isPrevRangeEnd =
61
+ day &&
62
+ (moment(day.date).isSame(startPrevDate, 'day') ||
63
+ moment(day.date).isSame(moment(endPrevDate).subtract(1, 'day'), 'day'));
64
+ const isPrevRangeInside =
65
+ day &&
66
+ startPrevDate &&
67
+ endPrevDate &&
68
+ moment(day.date).isAfter(startPrevDate, 'day') &&
69
+ moment(day.date).isBefore(moment(endPrevDate).subtract(1, 'day'), 'day');
70
+ const classNames = cn(
71
+ 'range-calendar__day',
72
+ { 'range-calendar__day--clickable': day },
73
+ { 'range-calendar__day--disabled': isFutureDay },
74
+ { 'range-calendar__day--disabled': isPastDay },
75
+ { 'range-calendar__day--range-start': isRangeStart },
76
+ { 'range-calendar__day--range-end': isRangeEnd },
77
+ { 'range-calendar__day--range-inside': isRangeInside },
78
+ { 'range-calendar__day--prev-range-end': isPrevRangeEnd },
79
+ { 'range-calendar__day--prev-range-inside': isPrevRangeInside }
80
+ );
81
+
82
+ return (
83
+ <div
84
+ key={`${week}_${dayOfWeek}`}
85
+ className={classNames}
86
+ onClick={day && !isFutureDay ? e => onClick(day.date, e) : null}
87
+ onMouseOver={day && !isFutureDay ? () => onHover(day.date) : null}
88
+ onMouseLeave={() => onHover(null)}
89
+ >
90
+ {day && day.date.getDate()}
91
+ </div>
92
+ );
93
+ };
94
+
95
+ const handlePrev = () => {
96
+ setDate(moment(date).subtract(1, 'month').toDate());
97
+ };
98
+
99
+ const handleNext = () => {
100
+ setDate(moment(date).add(1, 'month').toDate());
101
+ };
102
+
103
+ return (
104
+ <div className={cn('range-calendar', className)}>
105
+ <div className="range-calendar-header">
106
+ <Arrow type="left" disabled={!allowPrev} onClick={handlePrev} className="range-calendar-header__prev" />
107
+ {/* <div className="range-calendar-header__prev">
108
+ {allowPrev && (
109
+ <div onClick={handlePrev}>
110
+ <Arrow type="left" disabled={!allowPrev} />
111
+ </div>
112
+ )}
113
+ </div> */}
114
+ <div className="range-calendar-header__title">{title}</div>
115
+ <Arrow type="right" disabled={!allowNext} onClick={handleNext} className="range-calendar-header__next" />
116
+
117
+ {/* <div className="range-calendar-header__next">
118
+ {allowNext && (
119
+ <div onClick={handleNext}>
120
+ <Arrow type="right" disabled={!allowNext} />
121
+ </div>
122
+ )}
123
+ </div> */}
124
+ </div>
125
+ <div className="range-calendar__week range-calendar__week-title">
126
+ {[...Array(7).keys()].map(dayOfWeek => {
127
+ return (
128
+ <div key={`day-of-week_${dayOfWeek}`} className="range-calendar__day range-calendar__day--title">
129
+ {moment().weekday(dayOfWeek).format('dd').charAt(0)}
130
+ </div>
131
+ );
132
+ })}
133
+ </div>
134
+ {Object.keys(days).map((week, index) => (
135
+ <div key={`week_${index}`} className="range-calendar__week">
136
+ {[...Array(7).keys()].map(dayOfWeek => renderDay(week, dayOfWeek))}
137
+ </div>
138
+ ))}
139
+ </div>
140
+ );
141
+ };
142
+
143
+ export default RangeCalendar;
@@ -0,0 +1,101 @@
1
+ .range-calendar {
2
+ width: 195px;
3
+ min-height: 195px;
4
+ display: flex;
5
+ flex-direction: column;
6
+ user-select: none;
7
+
8
+ &-header {
9
+ height: 24px;
10
+ margin-bottom: 12px;
11
+
12
+ display: flex;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+
16
+ &__title {
17
+ line-height: 20px;
18
+ font-weight: 500;
19
+ text-align: center;
20
+ flex-grow: 1;
21
+ color: #000000;
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ }
26
+
27
+ &__next, &__prev {
28
+ width: 16px;
29
+ height: 16px;
30
+ background-color: #E2E6F8;
31
+ border-radius: 5px;
32
+ color: #171D33;
33
+ }
34
+ }
35
+
36
+ &__week {
37
+ display: flex;
38
+ }
39
+
40
+ &__day {
41
+ font-size: 13px;
42
+ line-height: 20px;
43
+ margin: 1px 0;
44
+ flex-grow: 1;
45
+ flex-basis: 0;
46
+ text-align: center;
47
+ padding: 1px 6px;
48
+ user-select: none;
49
+
50
+ &--clickable {
51
+ cursor: pointer;
52
+
53
+ &:hover {
54
+ background: #E2E6F8;
55
+ }
56
+ }
57
+
58
+ &--disabled {
59
+ cursor: default;
60
+ color: #9aa0b9;
61
+ pointer-events: none;
62
+
63
+ &:hover {
64
+ background: inherit;
65
+ }
66
+ }
67
+
68
+ &--range-start, &--range-end {
69
+ background: #6B81DD;
70
+ color: white;
71
+ border-radius: 4px;
72
+
73
+ &:hover {
74
+ background: #6B81DD;
75
+ }
76
+ }
77
+
78
+ &--range-inside {
79
+ background: #E2E6F8;
80
+ }
81
+
82
+ &--prev-range-end {
83
+ background: #E2E5EC;
84
+ border-radius: 4px;
85
+ }
86
+
87
+ &--prev-range-inside {
88
+ background: #F7F8FA;
89
+ }
90
+
91
+ &--title {
92
+ font-size: 10px;
93
+ color: #9AA0B9;
94
+ font-weight: normal;
95
+
96
+ &:hover {
97
+ background: inherit;
98
+ }
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,54 @@
1
+ import React, {useState, useMemo, useRef, useEffect} from 'react';
2
+ import moment from 'moment-timezone';
3
+
4
+ import RangeCalendar from './RangeCalendar';
5
+
6
+ global.lng = 'en';
7
+
8
+ export default {
9
+ title: 'RangeCalendar',
10
+ component: RangeCalendar,
11
+ };
12
+
13
+ const Template = args => {
14
+ const [dateOfRenderedMonth, setDateOfRenderedMonth] = useState(moment().subtract(1, 'month').toDate());
15
+
16
+ const [startDate, setStartDate] = useState(dateOfRenderedMonth);
17
+ const [endDate, setEndDate] = useState(dateOfRenderedMonth);
18
+ const isFirstClickRef = useRef(false);
19
+
20
+ const handleClick = date => {
21
+ if (
22
+ !startDate ||
23
+ (startDate && endDate && !(moment(startDate).add(1, 'd').isSame(endDate, 'day')))
24
+ ) {
25
+ setStartDate(moment(date).startOf('day').toDate());
26
+ setEndDate(moment(date).add(1, 'd').startOf('day').toDate());
27
+ } else if (moment(date).isBefore(moment(startDate), 'day')) {
28
+ setEndDate(moment(startDate).add(1, 'd').startOf('day').toDate());
29
+ setStartDate(moment(date).set('hour', parseInt(0, 10)).toDate());
30
+ } else if (moment(date).isAfter(moment(startDate), 'day')) {
31
+ setEndDate(moment(date).add(1, 'd').startOf('day').toDate());
32
+ }
33
+ };
34
+
35
+ return <RangeCalendar
36
+ {...args}
37
+ date={dateOfRenderedMonth}
38
+ setDate={setDateOfRenderedMonth}
39
+ // allowNext={true}
40
+ // allowPrev={true}
41
+ startDate={startDate}
42
+ endDate={endDate}
43
+ // startPrevDate={startPrevDate}
44
+ // endPrevDate={endPrevDate}
45
+ onClick={handleClick}
46
+ // onHover={handleHover}
47
+ />
48
+ };
49
+
50
+ export const RangeCalendarTemplate = Template.bind({});
51
+
52
+ RangeCalendarTemplate.args = {
53
+ limitRange: 60
54
+ };
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import RangeInputs from './RangeInputs';
3
3
 
4
- import '../../../../scss/main.scss';
5
4
  import './RangeInputs.scss';
6
5
 
7
6
  global.lng = 'en';
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import Hint from '../Hint/Hint';
4
+ import Hint from '../../UI/Hint/Hint';
5
5
 
6
6
  import './Switcher.scss';
7
7
 
@@ -1,4 +1,4 @@
1
- @import "../../../../scss/vars";
1
+ @import "../../../scss/vars";
2
2
 
3
3
  .switcher {
4
4
  display: inline-flex;
@@ -1,8 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import Switcher from './Switcher';
3
3
 
4
- import '../../../../scss/main.scss';
5
-
6
4
  global.lng = 'en';
7
5
  export default {
8
6
  title: 'Switcher',
@@ -3,7 +3,7 @@ import React, { useState } from 'react';
3
3
  import AccordionItem from '../../../UI/Accordion/AccordionItem';
4
4
  import { TdActions } from '../TdTypes/TdActions';
5
5
  import AdvancedTags from '../../../UI/AdvancedTag/AdvancedTags';
6
- import Status from '../../Status/Status';
6
+ import Status from '../../../UI/Status/Status';
7
7
  import Tag from '../../Tag/Tag';
8
8
  import TdPriority from '../TdTypes/TdPriority';
9
9
  import TdWeight from '../TdTypes/TdWeight';
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import Langs from '../../../../../Langs';
5
4
 
6
5
  import '../Table.scss';
6
+ import Langs from '../../../../../../Langs';
7
7
 
8
8
  const TdHeader = ({ item }) => {
9
9
  const txt = Langs[global.lng];
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from 'react';
2
- import * as Icons from 'react-icons/fi';
2
+ import * as Icons from 'react-feather';
3
3
 
4
4
  import Switcher from '../../Switcher/Switcher';
5
5
 
@@ -23,25 +23,25 @@ export const TdActions = ({ actions, onChange, onActionClick, rowItem }) => {
23
23
  case 'download':
24
24
  return (
25
25
  <div key={index} className="td-actions--item td-actions--download" onClick={() => {}}>
26
- <Icons.FiDownload />
26
+ <Icons.Download />
27
27
  </div>
28
28
  );
29
29
  case 'edit':
30
30
  return (
31
31
  <div key={index} className="td-actions--item td-actions--edit" onClick={() => {}}>
32
- <Icons.FiEdit3 />
32
+ <Icons.Edit3 />
33
33
  </div>
34
34
  );
35
35
  case 'delete':
36
36
  return (
37
37
  <div key={index} className="td-actions--item td-actions--delete" onClick={() => onActionClick('delete', rowItem)}>
38
- <Icons.FiTrash2 />
38
+ <Icons.Trash2 />
39
39
  </div>
40
40
  );
41
41
  case 'undo':
42
42
  return (
43
43
  <div key={index} className="td-actions--item td-actions--undo" onClick={() => onActionClick('undo', rowItem)}>
44
- <Icons.FiRotateCcw />
44
+ <Icons.RotateCcw />
45
45
  </div>
46
46
  );
47
47
  case 'switcher':
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import { FiArrowDown, FiArrowUp } from 'react-icons/fi';
4
+ import { ArrowDown, ArrowUp } from 'react-feather';
5
5
 
6
6
  import '../Table.scss';
7
7
 
@@ -10,8 +10,8 @@ const TdPriority = ({ onClick, rowIndex, cardLength }) => {
10
10
  <div className="cards-table__priority">
11
11
  <span className="mr5">{rowIndex + 1}</span>
12
12
  <div className="df">
13
- <FiArrowDown onClick={() => onClick(rowIndex)} className={cn('table--icon', { disabled: rowIndex + 1 === cardLength })} />
14
- <FiArrowUp onClick={() => onClick(rowIndex, true)} className={cn('table--icon', { disabled: rowIndex === 0 })} />
13
+ <ArrowDown onClick={() => onClick(rowIndex)} className={cn('table--icon', { disabled: rowIndex + 1 === cardLength })} />
14
+ <ArrowUp onClick={() => onClick(rowIndex, true)} className={cn('table--icon', { disabled: rowIndex === 0 })} />
15
15
  </div>
16
16
  </div>
17
17
  );
@@ -1,5 +1,3 @@
1
- @import '../../../../scss/anme/anme-vars';
2
-
3
1
  .td-actions {
4
2
  &--item {
5
3
  display: flex;
@@ -16,19 +14,19 @@
16
14
  }
17
15
 
18
16
  &--delete {
19
- color: $color--froly !important;
17
+ color: #F06D8DFF !important;
20
18
  }
21
19
 
22
20
  &--undo {
23
- color: $color--froly !important;
21
+ color: #F06D8DFF !important;
24
22
  }
25
23
 
26
24
  &--edit {
27
- color: $color--primary !important;
25
+ color: #6B81DDFF !important;
28
26
  }
29
27
 
30
28
  &--download {
31
- color: $color--primary;
29
+ color: #6B81DDFF;
32
30
  }
33
31
  }
34
32
 
@@ -1,8 +1,8 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import { KEY_CODE } from '../../../../../JS/Constants/index.constants';
5
- import useToggle from '../../../../../JS/Functions/useToggle';
4
+ import { KEY_CODE } from '../../../../../../JS/Constants/index.constants';
5
+ import useToggle from '../../../../../../JS/Functions/useToggle';
6
6
  import Input from '../../Input/Input';
7
7
 
8
8
  import '../Table.scss';
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
  import { IoWarningOutline } from 'react-icons/io5';
4
- import { FiX } from 'react-icons/fi';
4
+ import { X } from 'react-feather';
5
5
 
6
6
  import './Tag.scss';
7
7
 
@@ -14,7 +14,7 @@ const Tag = ({ className, label, warning, removeItem, name }) => {
14
14
 
15
15
  {removeItem && (
16
16
  <button onClick={() => removeItem()} className="tag__button">
17
- <FiX className="color--text" />
17
+ <X className="color--text" />
18
18
  </button>
19
19
  )}
20
20
  </div>
@@ -1,4 +1,4 @@
1
- @import "../../../../scss/vars";
1
+ @import "../../../scss/vars";
2
2
 
3
3
  .tag {
4
4
  display: inline-flex;
@@ -1,8 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import Tag from './Tag';
3
3
 
4
- import '../../../../scss/main.scss';
5
-
6
4
  global.lng = 'en';
7
5
  export default {
8
6
  title: 'Tag',
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useEffect, useRef } from 'react';
2
2
  import cn from 'classnames';
3
- import { FiChevronDown, FiCheck } from 'react-icons/fi';
3
+ import { ChevronDown, Check } from 'react-feather';
4
4
 
5
5
  import Tag from '../Tag/Tag';
6
6
  import Label from '../Label/Label';
@@ -56,7 +56,7 @@ const TagsDropdown = ({ options, chosenOptions, onChange, className, tagClassnam
56
56
  )}
57
57
  >
58
58
  <span className={cn(`${RC}__active-icon`, { [`${RC}__active-icon_active`]: chosenOptions.some(el => el.value === item.value) })}>
59
- <FiCheck className="color--text" />
59
+ <Check className="color--text" />
60
60
  </span>
61
61
  {item.title}
62
62
  </button>
@@ -83,7 +83,7 @@ const TagsDropdown = ({ options, chosenOptions, onChange, className, tagClassnam
83
83
  onKeyDown={e => onKeyPress(e, searchValue)}
84
84
  />
85
85
  <span className={cn(`${RC}__arrow`, { [`${RC}__arrow_active`]: isOpen })}>
86
- <FiChevronDown className="color--text" />
86
+ <ChevronDown className="color--text" />
87
87
  </span>
88
88
  </button>
89
89
  </div>
@@ -1,4 +1,4 @@
1
- @import "../../../../scss/vars";
1
+ @import "../../../scss/vars";
2
2
 
3
3
  .tags-dropdown {
4
4
  display: inline-flex;
@@ -1,8 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import TagsDropdown from './TagsDropdown';
3
3
 
4
- import '../../../../scss/main.scss';
5
-
6
4
  global.lng = 'en';
7
5
  export default {
8
6
  title: 'TagsDropdown',
@@ -1,4 +1,4 @@
1
- @import '../../../../scss/vars';
1
+ @import '../../../scss/vars';
2
2
 
3
3
  .text-switcher {
4
4
  display: grid;
@@ -1,8 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import TextSwitcher from './TextSwitcher';
3
3
 
4
- import '../../../../scss/main.scss';
5
-
6
4
  global.lng = 'en';
7
5
  export default {
8
6
  title: 'TextSwitcher',
@@ -1,4 +1,4 @@
1
- @import "../../../../scss/vars";
1
+ @import "../../../scss/vars";
2
2
  @import "../../../scss/anme/anme-mixins";
3
3
 
4
4
  .textarea {