intelicoreact 0.0.95 → 0.0.98

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 (166) hide show
  1. package/dist/Atomic/FormElements/Input/Input.js +3 -1
  2. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  3. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +4 -4
  4. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +179 -70
  5. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +23 -23
  6. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +87 -12
  7. package/dist/Atomic/FormElements/Spinner/Spinner.js +21 -0
  8. package/{src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss → dist/Atomic/FormElements/Spinner/Spinner.scss} +8 -5
  9. package/dist/Atomic/FormElements/Spinner/Spinner.stories.js +34 -0
  10. package/dist/Functions/inputExecutor.js +7 -1
  11. package/{src → dist}/Functions/useMouseUpOutside.js +13 -4
  12. package/dist/Functions/useToggle.js +40 -0
  13. package/dist/Functions/utils.js +66 -0
  14. package/dist/Molecular/Datepicker/Datepicker.js +451 -0
  15. package/{src → dist}/Molecular/Datepicker/Datepicker.scss +0 -0
  16. package/dist/Molecular/Datepicker/Datepicker.stories.js +44 -0
  17. package/dist/Molecular/Datepicker/components/Calendar.js +156 -0
  18. package/dist/Molecular/FormElements/FormElement.js +40 -0
  19. package/{src → dist}/Molecular/FormElements/FormElement.scss +0 -0
  20. package/dist/Molecular/FormElements/FormElement.stories.js +73 -0
  21. package/dist/index.js +15 -0
  22. package/{src → dist}/scss/_fonts.scss +0 -0
  23. package/{src → dist}/scss/_vars.scss +0 -0
  24. package/{src → dist}/scss/main.scss +0 -0
  25. package/package.json +3 -2
  26. package/.babelrc +0 -12
  27. package/.eslintignore +0 -10
  28. package/.eslintrc.json +0 -93
  29. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.js +0 -28
  30. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +0 -107
  31. package/src/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +0 -26
  32. package/src/Atomic/FormElements/DateTime/DateTime.js +0 -18
  33. package/src/Atomic/FormElements/DateTime/DateTime.scss +0 -12
  34. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +0 -17
  35. package/src/Atomic/FormElements/DoubleString/DoubleString.js +0 -13
  36. package/src/Atomic/FormElements/DoubleString/DoubleString.scss +0 -20
  37. package/src/Atomic/FormElements/DoubleString/DoubleString.stories.js +0 -18
  38. package/src/Atomic/FormElements/Dropdown/Dropdown.js +0 -178
  39. package/src/Atomic/FormElements/Dropdown/Dropdown.scss +0 -192
  40. package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +0 -87
  41. package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +0 -17
  42. package/src/Atomic/FormElements/Header/Header.js +0 -67
  43. package/src/Atomic/FormElements/Header/Header.scss +0 -93
  44. package/src/Atomic/FormElements/Header/Header.stories.js +0 -30
  45. package/src/Atomic/FormElements/Input/Input.js +0 -186
  46. package/src/Atomic/FormElements/Input/Input.scss +0 -136
  47. package/src/Atomic/FormElements/Input/Input.stories.js +0 -94
  48. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +0 -104
  49. package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +0 -23
  50. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +0 -39
  51. package/src/Atomic/FormElements/InputDateRange/InputDateRange.js +0 -254
  52. package/src/Atomic/FormElements/InputDateRange/InputDateRange.scss +0 -624
  53. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +0 -65
  54. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +0 -432
  55. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +0 -126
  56. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +0 -24
  57. package/src/Atomic/FormElements/InputDateRange/dependencies.js +0 -161
  58. package/src/Atomic/FormElements/InputsRow/InputsRow.js +0 -112
  59. package/src/Atomic/FormElements/InputsRow/InputsRow.scss +0 -45
  60. package/src/Atomic/FormElements/InputsRow/InputsRow.stories.js +0 -34
  61. package/src/Atomic/FormElements/Label/Label.js +0 -13
  62. package/src/Atomic/FormElements/Label/Label.scss +0 -20
  63. package/src/Atomic/FormElements/Label/Label.stories.js +0 -23
  64. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.js +0 -315
  65. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +0 -120
  66. package/src/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +0 -30
  67. package/src/Atomic/FormElements/Modal/Modal.js +0 -69
  68. package/src/Atomic/FormElements/Modal/Modal.scss +0 -230
  69. package/src/Atomic/FormElements/Modal/Modal.stories.js +0 -116
  70. package/src/Atomic/FormElements/MultiSelect/MultiSelect.js +0 -39
  71. package/src/Atomic/FormElements/MultiSelect/MultiSelect.scss +0 -16
  72. package/src/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +0 -28
  73. package/src/Atomic/FormElements/NavLine/NavLine.js +0 -67
  74. package/src/Atomic/FormElements/NavLine/NavLine.scss +0 -108
  75. package/src/Atomic/FormElements/NavLine/NavLine.stories.js +0 -108
  76. package/src/Atomic/FormElements/NumericInput/NumericInput.js +0 -263
  77. package/src/Atomic/FormElements/NumericInput/NumericInput.scss +0 -135
  78. package/src/Atomic/FormElements/NumericInput/NumericInput.stories.js +0 -78
  79. package/src/Atomic/FormElements/RadioInput/RadioInput.js +0 -28
  80. package/src/Atomic/FormElements/RadioInput/RadioInput.scss +0 -63
  81. package/src/Atomic/FormElements/RadioInput/RadioInput.stories.js +0 -23
  82. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +0 -152
  83. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +0 -101
  84. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +0 -54
  85. package/src/Atomic/FormElements/RangeInputs/RangeInputs.js +0 -41
  86. package/src/Atomic/FormElements/RangeInputs/RangeInputs.scss +0 -20
  87. package/src/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +0 -23
  88. package/src/Atomic/FormElements/Switcher/Switcher.js +0 -24
  89. package/src/Atomic/FormElements/Switcher/Switcher.scss +0 -56
  90. package/src/Atomic/FormElements/Switcher/Switcher.stories.js +0 -22
  91. package/src/Atomic/FormElements/Table/Partials/TdCell.js +0 -47
  92. package/src/Atomic/FormElements/Table/Partials/TdHeader.js +0 -33
  93. package/src/Atomic/FormElements/Table/Partials/TdRow.js +0 -84
  94. package/src/Atomic/FormElements/Table/Partials/TdTitle.js +0 -38
  95. package/src/Atomic/FormElements/Table/Table.js +0 -50
  96. package/src/Atomic/FormElements/Table/Table.scss +0 -78
  97. package/src/Atomic/FormElements/Table/Table.stories.js +0 -102
  98. package/src/Atomic/FormElements/Table/TdTypes/TdActions.js +0 -59
  99. package/src/Atomic/FormElements/Table/TdTypes/TdPriority.js +0 -20
  100. package/src/Atomic/FormElements/Table/TdTypes/TdRange.js +0 -15
  101. package/src/Atomic/FormElements/Table/TdTypes/TdTypes.scss +0 -35
  102. package/src/Atomic/FormElements/Table/TdTypes/TdWeight.js +0 -43
  103. package/src/Atomic/FormElements/Tag/Tag.js +0 -24
  104. package/src/Atomic/FormElements/Tag/Tag.scss +0 -38
  105. package/src/Atomic/FormElements/Tag/Tag.stories.js +0 -30
  106. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.js +0 -108
  107. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +0 -131
  108. package/src/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +0 -44
  109. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.js +0 -18
  110. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +0 -50
  111. package/src/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +0 -21
  112. package/src/Atomic/FormElements/Textarea/Textarea.js +0 -19
  113. package/src/Atomic/FormElements/Textarea/Textarea.scss +0 -35
  114. package/src/Atomic/FormElements/Textarea/Textarea.stories.js +0 -24
  115. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +0 -66
  116. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.scss +0 -10
  117. package/src/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +0 -57
  118. package/src/Atomic/FormElements/TimeRange/TimeRange.js +0 -55
  119. package/src/Atomic/FormElements/TimeRange/TimeRange.scss +0 -17
  120. package/src/Atomic/FormElements/TimeRange/TimeRange.stories.js +0 -21
  121. package/src/Atomic/MainMenu/MainMenu.js +0 -112
  122. package/src/Atomic/MainMenu/MainMenu.scss +0 -176
  123. package/src/Atomic/MainMenu/MainMenu.stories.js +0 -91
  124. package/src/Atomic/UI/Accordion/Accordion.js +0 -45
  125. package/src/Atomic/UI/Accordion/Accordion.scss +0 -73
  126. package/src/Atomic/UI/Accordion/Accordion.stories.js +0 -78
  127. package/src/Atomic/UI/Accordion/AccordionItem.js +0 -92
  128. package/src/Atomic/UI/AdvancedTag/AdvTag.js +0 -81
  129. package/src/Atomic/UI/AdvancedTag/AdvancedTags.js +0 -32
  130. package/src/Atomic/UI/AdvancedTag/AdvancedTags.scss +0 -72
  131. package/src/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +0 -49
  132. package/src/Atomic/UI/Alert/Alert.js +0 -23
  133. package/src/Atomic/UI/Alert/Alert.scss +0 -65
  134. package/src/Atomic/UI/Alert/Alert.stories.js +0 -34
  135. package/src/Atomic/UI/Arrow/Arrow.js +0 -41
  136. package/src/Atomic/UI/Arrow/Arrow.scss +0 -19
  137. package/src/Atomic/UI/Arrow/Arrow.stories.js +0 -32
  138. package/src/Atomic/UI/Button/Button.js +0 -17
  139. package/src/Atomic/UI/Button/Button.scss +0 -108
  140. package/src/Atomic/UI/Button/Button.stories.js +0 -49
  141. package/src/Atomic/UI/Calendar/Calendar.js +0 -190
  142. package/src/Atomic/UI/Calendar/Calendar.scss +0 -607
  143. package/src/Atomic/UI/Calendar/Calendar.stories.js +0 -26
  144. package/src/Atomic/UI/Header/partials/default_ava.png +0 -0
  145. package/src/Atomic/UI/Hint/Hint.js +0 -34
  146. package/src/Atomic/UI/Hint/Hint.scss +0 -92
  147. package/src/Atomic/UI/Hint/Hint.stories.js +0 -34
  148. package/src/Atomic/UI/Price/Price.js +0 -20
  149. package/src/Atomic/UI/Price/Price.stories.js +0 -30
  150. package/src/Atomic/UI/Status/Status.js +0 -38
  151. package/src/Atomic/UI/Status/Status.scss +0 -69
  152. package/src/Atomic/UI/Status/Status.stories.js +0 -47
  153. package/src/Constants/index.constants.js +0 -41
  154. package/src/Functions/customEventListener.js +0 -58
  155. package/src/Functions/inputExecutor.js +0 -53
  156. package/src/Functions/schemas.js +0 -31
  157. package/src/Functions/useClickOutside.js +0 -15
  158. package/src/Functions/useToggle.js +0 -17
  159. package/src/Functions/utils.js +0 -51
  160. package/src/Molecular/Datepicker/Datepicker.js +0 -346
  161. package/src/Molecular/Datepicker/Datepicker.stories.js +0 -27
  162. package/src/Molecular/Datepicker/components/Calendar.js +0 -118
  163. package/src/Molecular/FormElements/FormElement.js +0 -18
  164. package/src/Molecular/FormElements/FormElement.stories.js +0 -59
  165. package/src/index.js +0 -3
  166. package/webpack.config.js +0 -61
@@ -1,315 +0,0 @@
1
- import React, { useState, useRef, useEffect, useMemo } from 'react';
2
- import moment from 'moment';
3
-
4
- import './MobileCalendar.scss';
5
- import { ChevronDown, ChevronUp } from 'react-feather';
6
- import { IoFastFood } from 'react-icons/io5';
7
-
8
- require('./../../../../src/Functions/customEventListener');
9
-
10
- const MobileCalendar = ({
11
- minDate = moment().subtract('10', 'years'),
12
- maxDate = moment().add('10', 'years'),
13
- value,
14
- rows = 5,
15
- label = "",
16
- timeout = 500,
17
- isMobile = true,
18
- showSelectedDate = false,
19
-
20
- classes = {
21
- wrapper: "",
22
- label: "",
23
- body: "",
24
-
25
- yearsBlock: "",
26
- yearsList: "",
27
- yearsListItem: "",
28
-
29
- monthsBlock: "",
30
- monthsList: "",
31
- monthsListItem: "",
32
-
33
- daysBlock: "",
34
- daysList: "",
35
- daysListItem: "",
36
-
37
- prevItem: "",
38
- nextItem: "",
39
- activeItem: "",
40
- },
41
- onChange = () => {},
42
- }) => {
43
- const Body = document.querySelector("body");
44
- const listItem = document.querySelector(".mobile-calendar_wrapper_body_months-list--item");
45
-
46
- const [date, setDate] = useState(value || moment());
47
-
48
- const [isMouseDown, setIsMouseDown] = useState(false);
49
- const [mouseDownOn, setMouseDownOn] = useState(null);
50
- const [changeInterval, setChangeInterval] = useState(null);
51
-
52
- const [touchY, setTouchY] = useState(null);
53
- const [touchType, setTouchType] = useState(null);
54
- const [touchTimestamp, setTouchTimestamp] = useState(null);
55
-
56
- const [scrollDirection, setScrollDirection] = useState(0);
57
-
58
- const listItemHeight = listItem?.getBoundingClientRect()?.height;
59
-
60
- //--HANDLERS--//
61
- const changeItem = (type, value) => {
62
- setScrollDirection(value);
63
- setDate((date) => {
64
- const newDate = moment(date).add(value, type);
65
-
66
- if(moment(newDate).isBefore(minDate)) return minDate;
67
- if(moment(newDate).isAfter(maxDate)) return maxDate;
68
-
69
- return newDate;
70
- });
71
- setTimeout(() => {
72
- setScrollDirection(0);
73
- }, 50);
74
- };
75
- const onArrowMouseDown = (type, value) => {
76
- setIsMouseDown(true);
77
- setMouseDownOn({ type, value });
78
- };
79
- const onArrowMouseUp = () => {
80
- setIsMouseDown(false);
81
- setMouseDownOn(null);
82
- };
83
- const onWheel = (e, type) => {
84
- const { deltaY } = e;
85
-
86
- changeItem(type, deltaY < 0 ? -1 : 1);
87
- };
88
- const onTouchStart = (e, type) => {
89
- const { timeStamp, changedTouches } = e;
90
- const { pageY } = changedTouches[0];
91
-
92
- setTouchY(pageY);
93
- setTouchTimestamp(timeStamp);
94
- setTouchType(type);
95
-
96
- Body?.addEventListener('touchend', (e) => onTouchEnd(e, pageY, timeStamp, type));
97
-
98
- };
99
- const onTouchMove = (e) => {
100
- if(!touchY || !touchType) return;
101
-
102
- const { timeStamp, changedTouches } = e;
103
- const { pageY } = changedTouches[0];
104
-
105
- const deltaY = touchY - pageY;
106
-
107
- if(Math.abs(deltaY) < listItemHeight/2) return;
108
-
109
- const direction = deltaY < 0 ? -1 : 1;
110
-
111
- setScrollDirection(direction);
112
-
113
- changeItem(touchType, direction);
114
- setTouchY(pageY);
115
- setTouchTimestamp(timeStamp);
116
- };
117
- const onTouchEnd = (e, startY, startTime, touchType) => {
118
- const { timeStamp, changedTouches } = e;
119
- const { pageY } = changedTouches[0];
120
-
121
- const path = Math.abs(startY-pageY);//in px
122
- const time = timeStamp-startTime;//ms
123
- const pxPerMs = path/time;
124
-
125
- if(pxPerMs > 1)
126
- innertionScroll({startY, pageY, timeStamp, startTime, touchType});
127
- else
128
- setTouchType(null);
129
-
130
- setTouchY(null);
131
-
132
- Body?.clearEventListeners('touchend');
133
- };
134
- const innertionScroll = ({startY, pageY, timeStamp, startTime, touchType}) => {
135
- const path = Math.abs(startY-pageY);//in px
136
- const time = timeStamp-startTime;//ms
137
- const pxPerMs = path/time;//speed
138
-
139
- const S = (pxPerMs/2*time)/2;
140
- const blocks = Math.ceil(S/listItemHeight)*6*pxPerMs;
141
- let timeout;
142
-
143
- for(let i = 1; i <= blocks; ++i){
144
- timeout = i*pxPerMs+Math.pow(i,2)*1.2;
145
- setTimeout(() => {
146
- changeItem(touchType, startY-pageY < 0 ? -1 : 1);
147
- }, timeout)
148
- }
149
-
150
- setTimeout(() => {
151
- setTouchType(null);
152
- }, timeout)
153
- };
154
-
155
- //--FUNCTIONS--//
156
- const intervalWorker = () => {
157
- if(!mouseDownOn) return;
158
-
159
- const { type, value } = mouseDownOn;
160
- changeItem(type, value);
161
- };
162
- const getList = (type, format) => {
163
- const list = [];
164
-
165
- const renderRows = rows;
166
-
167
- for (let i = (renderRows - 1) / 2; i >= ((renderRows - 1) / 2) * -1; --i) {
168
- list.push(moment(date).subtract(i, type).format(format));
169
- }
170
-
171
- return list;
172
- };
173
- const getMonthList = () => getList('months', 'MMMM');
174
- const getDaysList = () => getList('days', 'D');
175
- const getYearsList = () => getList('years', 'YYYY');
176
-
177
- //--OBSERVERS--//
178
- //Events Observer
179
- useEffect(() => {
180
- document.addEventListener('mouseup', onArrowMouseUp);
181
- return () => {
182
- document.removeEventListener('mouseup', onArrowMouseUp);
183
- };
184
- }, []);
185
-
186
- useEffect(() => {
187
- onChange(date);
188
- }, [date]);
189
-
190
- //--RENDER--//
191
- const renderMonthsList = () => {
192
- const half = (rows-1)/2;
193
- return getMonthList()
194
- .map((month, i) => (
195
- <div
196
- className={`mobile-calendar_wrapper_body_months-list--item ${i === half ? 'active' : ''} ${i === 0 || i === rows-1 ? 'transparent' : ''} ${classes?.monthsListItem} ${i === half ? classes?.activeItem : ''}`}
197
- key={`month-${month}`}
198
- onClick={touchY ? null : () => i-half === 0 ? ({}) : changeItem('months', i-half)}
199
- attr-scroll-direction={touchType === 'months' ? scrollDirection : 0}
200
- attr-is-scrolling={touchType === 'months' ? 1 : 0}
201
- >
202
- {month}
203
- </div>
204
- ));
205
- };
206
- const renderDaysList = () => {
207
- const half = (rows-1)/2;
208
- return getDaysList()
209
- .map((day, i) => (
210
- <div
211
- className={`mobile-calendar_wrapper_body_days-list--item ${i === half ? 'active' : ''} ${i === 0 || i === rows-1 ? 'transparent' : ''} ${classes?.daysListItem} ${i === half ? classes?.activeItem : ''}`}
212
- key={`day-${day}`}
213
- onClick={() => i-half === 0 ? ({}) : changeItem('days', i-half)}
214
- attr-scroll-direction={touchType === 'days' ? scrollDirection : 0}
215
- attr-is-scrolling={touchType === 'days' ? 1 : 0}
216
- >
217
- {day}
218
- </div>
219
- ));
220
- };
221
- const renderYearsList = () => {
222
- const half = (rows-1)/2;
223
- return getYearsList()
224
- .map((year, i) => (
225
- <div
226
- className={`mobile-calendar_wrapper_body_years-list--item ${i === half ? 'active' : ''} ${i === 0 || i === rows-1 ? 'transparent' : ''} ${classes?.yearsListItem} ${i === half ? classes?.activeItem : ''}`}
227
- key={`year-${year}`}
228
- onClick={() => i-half === 0 ? ({}) : changeItem('years', i-half)}
229
- attr-scroll-direction={touchType === 'years' ? scrollDirection : 0}
230
- attr-is-scrolling={touchType === 'years' ? 1 : 0}
231
- >
232
- {year}
233
- </div>
234
- ));
235
- };
236
-
237
- const renderMonthBlock = () => {
238
- return (
239
- <div className={`mobile-calendar_wrapper_body_months ${classes?.monthsBlock}`}>
240
- <div className={`mobile-calendar_wrapper_body_months--prev ${classes?.prevItem}`}>
241
- <ChevronUp onClick={() => changeItem('months', -1)} onMouseDown={() => onArrowMouseDown('months', -1)} onMouseUp={onArrowMouseUp} />
242
- </div>
243
- <div
244
- className={`mobile-calendar_wrapper_body_months-list ${classes?.monthsList}`}
245
- onTouchStart={(e) => onTouchStart(e, "months")}
246
- onWheel={(e) => onWheel(e, "months")}
247
- >
248
- {renderMonthsList()}
249
- {isMobile && <div className="mobile-calendar_wrapper_body_months-list_touch-zone"></div>}
250
- </div>
251
- <div className={`mobile-calendar_wrapper_body_months--next ${classes?.nextItem}`}>
252
- <ChevronDown onClick={() => changeItem('months', 1)} onMouseDown={() => onArrowMouseDown('months', 1)} onMouseUp={onArrowMouseUp} />
253
- </div>
254
- </div>
255
- );
256
- };
257
- const renderDaysBlock = () => {
258
- return (
259
- <div className={`mobile-calendar_wrapper_body_days ${classes?.daysBlock}`}>
260
- <div className={`mobile-calendar_wrapper_body_days--prev ${classes?.prevItem}`}>
261
- <ChevronUp onClick={() => changeItem('days', -1)} onMouseDown={() => onArrowMouseDown('days', -1)} onMouseUp={onArrowMouseUp} />
262
- </div>
263
- <div
264
- className={`mobile-calendar_wrapper_body_days-list ${classes?.daysList}`}
265
- onTouchStart={(e) => onTouchStart(e, "days")}
266
- onWheel={(e) => onWheel(e, "days")}
267
- >
268
- {renderDaysList()}
269
- {isMobile && <div className="mobile-calendar_wrapper_body_days-list_touch-zone"></div>}
270
- </div>
271
- <div className={`mobile-calendar_wrapper_body_days--next ${classes?.nextItem}`}>
272
- <ChevronDown onClick={() => changeItem('days', 1)} onMouseDown={() => onArrowMouseDown('days', 1)} onMouseUp={onArrowMouseUp} />
273
- </div>
274
- </div>
275
- );
276
- };
277
- const renderYearsBlock = () => {
278
- return (
279
- <div className={`mobile-calendar_wrapper_body_years ${classes?.yearsBlock}`}>
280
- <div className={`mobile-calendar_wrapper_body_years--prev ${classes?.prevItem}`}>
281
- <ChevronUp onClick={() => changeItem('years', -1)} onMouseDown={() => onArrowMouseDown('years', -1)} onMouseUp={onArrowMouseUp} />
282
- </div>
283
- <div
284
- className={`mobile-calendar_wrapper_body_years-list ${classes?.yearsList}`}
285
- onTouchStart={(e) => onTouchStart(e, "years")}
286
- onWheel={(e) => onWheel(e, "years")}
287
- >
288
- {renderYearsList()}
289
- {isMobile && <div className="mobile-calendar_wrapper_body_years-list_touch-zone"></div>}
290
- </div>
291
- <div className={`mobile-calendar_wrapper_body_years--next ${classes?.nextItem}`}>
292
- <ChevronDown onClick={() => changeItem('years', 1)} onMouseDown={() => onArrowMouseDown('years', 1)} onMouseUp={onArrowMouseUp} />
293
- </div>
294
- </div>
295
- );
296
- };
297
-
298
- return (
299
- <div
300
- className={`mobile-calendar_wrapper ${classes?.wrapper}`}
301
-
302
- onTouchMove={onTouchMove}
303
- >
304
- <div className={`mobile-calendar_wrapper_label ${classes?.label}`}>{label}</div>
305
- {showSelectedDate && <div className={`mobile-calendar_wrapper_label ${classes?.label}`}>{moment(date).format("LL")}</div>}
306
- <div className={`mobile-calendar_wrapper_body ${classes?.body}`}>
307
- {renderMonthBlock()}
308
- {renderDaysBlock()}
309
- {renderYearsBlock()}
310
- </div>
311
- </div>
312
- );
313
- };
314
-
315
- export default MobileCalendar;
@@ -1,120 +0,0 @@
1
- .unselectable {
2
- -webkit-touch-callout: none;
3
- -webkit-user-select: none;
4
- -khtml-user-select: none;
5
- -moz-user-select: none;
6
- -ms-user-select: none;
7
- user-select: none;
8
- }
9
-
10
- .mobile-calendar_wrapper{
11
- @extend .unselectable;
12
- max-width: 350px;
13
- background: #F8FBFF;
14
- padding: 10px;
15
- box-shadow: 0 0 10px 10px #00000014;
16
- border-radius: 16px;
17
-
18
- &_label{
19
- text-align: center;
20
- font-size: 16px;
21
- line-height: 24px;
22
- margin: 16px 0px;
23
- }
24
-
25
- &_body{
26
- display: flex;
27
- justify-content: space-between;
28
-
29
- &_months,
30
- &_days,
31
- &_years{
32
- display: flex;
33
- flex-direction: column;
34
- align-items: center;
35
-
36
- &--prev,
37
- &--next{
38
- color:#A6AAB4;
39
- cursor: pointer;
40
- }
41
-
42
- &-list{
43
- position: relative;
44
- overflow: hidden;
45
-
46
- &::before,
47
- &::after{
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
- color: #3B414B;
52
- height: 32px;
53
- width: 90px;
54
- cursor: pointer;
55
- content: "0000";
56
- background-color: red;
57
- position: absolute;
58
- }
59
-
60
- &::before{
61
- top: 0;
62
- transform: translateY(-100%);
63
- }
64
-
65
- &::after{
66
- bottom: 0;
67
- transform: translateY(100%);
68
- }
69
-
70
- &--item{
71
- display: flex;
72
- align-items: center;
73
- justify-content: center;
74
- color: #3B414B;
75
- height: 32px;
76
- width: 90px;
77
- cursor: pointer;
78
-
79
- &:not(.active){
80
- transition: transform 1s;
81
- }
82
- &:not(.active)[attr-scroll-direction="1"]{
83
- transform: translateY(25%);
84
- }
85
- &:not(.active)[attr-scroll-direction="-1"]{
86
- transform: translateY(-25%);
87
- }
88
-
89
- &:not(.active)[attr-is-scrolling="1"]{
90
- opacity: 0.3;
91
- }
92
-
93
-
94
- &.active{
95
- background: #FFFFFF;
96
- border: 1px solid #FFFFFF;
97
- box-sizing: border-box;
98
- box-shadow: 0px 4px 26px rgba(0, 67, 96, 0.1);
99
- border-radius: 8px;
100
- }
101
-
102
- &.transparent{
103
- opacity: 0.5;
104
- }
105
- }
106
-
107
- &_touch-zone{
108
- top: 0;
109
- left: 0;
110
- width: 100%;
111
- height: 100%;
112
- position: absolute;
113
- z-index: 5;
114
- }
115
- }
116
-
117
-
118
- }
119
- }
120
- }
@@ -1,30 +0,0 @@
1
- import React, { useState } from 'react';
2
- import MobileCalendar from './MobileCalendar';
3
-
4
- global.lng = 'en';
5
-
6
- export default {
7
- title: 'Form Elements/Mobile Calendar',
8
- component: MobileCalendar,
9
- argTypes: {
10
- value: {
11
- description: 'string (mm.dd.yyyy)',
12
- },
13
- },
14
- };
15
-
16
- const Template = (args) => {
17
- const [date, setDate] = useState('');
18
-
19
- return <MobileCalendar classes={{wrapper: "123"}} onChange={console.log}/>;
20
- };
21
-
22
- export const CalendarTemplate = Template.bind({});
23
-
24
- CalendarTemplate.args = {
25
- value: '',
26
- minDate: '01/01/1900',
27
- maxDate: '01/01/2100',
28
- isDontLimitFuture: true,
29
- // isListTop: true,
30
- };
@@ -1,69 +0,0 @@
1
- import React from 'react';
2
- import cn from 'classnames';
3
- import { X } from 'react-feather';
4
-
5
- import Button from '../../UI/Button/Button';
6
-
7
- import './Modal.scss';
8
-
9
- const Modal = ({
10
- isOpen,
11
- onConfirm,
12
- closeModal,
13
- children,
14
- className,
15
- title,
16
- variant,
17
- mode,
18
- size,
19
- confirmBtnLabel,
20
- noConfirmBtn,
21
- noFooter,
22
- confirmBtnVariant = 'primary',
23
- closeBtnText
24
- }) => {
25
- if (!isOpen) return null;
26
-
27
- const renderModalTitle = () => {
28
- if (mode && mode !== 'default') return `${mode?.[0].toUpperCase() + mode?.slice(1)} ${title}`;
29
- return title;
30
- };
31
-
32
- const handleConfirm = () => {
33
- if (onConfirm) onConfirm();
34
- closeModal();
35
- };
36
-
37
- return (
38
- <div className="modal-box j5">
39
- <div className={isOpen ? 'modal-overlay' : 'hidden'} onClick={closeModal} />
40
-
41
- <div className={cn(className, { [`modal-${size}`]: size }, `${isOpen ? 'modal' : 'hidden'}`)}>
42
- <div className={cn('modal__header', { [`modal__header-${variant}`]: variant })}>
43
- <span className={cn('modal__header-title', { [`modal__header-${variant}-title`]: variant })}>{renderModalTitle()}</span>
44
-
45
- <div onClick={closeModal} className={cn('modal-close-icon-box', { 'modal-close-icon-box-primary': variant === 'primary' })}>
46
- <X className="modal-close-icon" />
47
- </div>
48
- </div>
49
-
50
- <div className="modal__body">{children}</div>
51
- {!noFooter && (
52
- <div className="modal__footer">
53
- <Button variant="dark-outline" onClick={closeModal} label={closeBtnText || 'Cancel'} />
54
- {!noConfirmBtn && (
55
- <Button
56
- onClick={() => handleConfirm()}
57
- label={confirmBtnLabel || mode?.[0].toUpperCase() + mode?.slice(1) || 'Apply'}
58
- className="ml5"
59
- variant={confirmBtnVariant}
60
- />
61
- )}
62
- </div>
63
- )}
64
- </div>
65
- </div>
66
- );
67
- };
68
-
69
- export default Modal;