intelicoreact 0.0.92 → 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/Dropdown/Dropdown.stories.js +1 -1
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -1
- package/dist/Atomic/FormElements/Dropdown/components/{Loader.scss → DropdownLoader.scss} +0 -0
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +35 -6
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.scss +23 -0
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +28 -6
- 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 +23 -22
- package/dist/Atomic/UI/Calendar/Calendar.scss +23 -23
- package/dist/Functions/customEventListener.js +66 -0
- package/package.json +1 -1
- package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +1 -1
- package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -1
- package/src/Atomic/FormElements/Dropdown/components/{Loader.scss → DropdownLoader.scss} +0 -0
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +58 -5
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +23 -0
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +16 -6
- 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 +35 -23
- package/src/Atomic/UI/Calendar/Calendar.scss +23 -23
- 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
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _moment = _interopRequireDefault(require("moment"));
|
|
17
|
+
|
|
18
|
+
require("./MobileCalendar.scss");
|
|
19
|
+
|
|
20
|
+
var _reactFeather = require("react-feather");
|
|
21
|
+
|
|
22
|
+
var _io = require("react-icons/io5");
|
|
23
|
+
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
28
|
+
require('./../../../../src/Functions/customEventListener');
|
|
29
|
+
|
|
30
|
+
var MobileCalendar = function MobileCalendar(_ref) {
|
|
31
|
+
var _listItem$getBounding;
|
|
32
|
+
|
|
33
|
+
var _ref$minDate = _ref.minDate,
|
|
34
|
+
minDate = _ref$minDate === void 0 ? (0, _moment.default)().subtract('10', 'years') : _ref$minDate,
|
|
35
|
+
_ref$maxDate = _ref.maxDate,
|
|
36
|
+
maxDate = _ref$maxDate === void 0 ? (0, _moment.default)().add('10', 'years') : _ref$maxDate,
|
|
37
|
+
value = _ref.value,
|
|
38
|
+
_ref$rows = _ref.rows,
|
|
39
|
+
rows = _ref$rows === void 0 ? 5 : _ref$rows,
|
|
40
|
+
_ref$label = _ref.label,
|
|
41
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
42
|
+
_ref$timeout = _ref.timeout,
|
|
43
|
+
timeout = _ref$timeout === void 0 ? 500 : _ref$timeout,
|
|
44
|
+
_ref$isMobile = _ref.isMobile,
|
|
45
|
+
isMobile = _ref$isMobile === void 0 ? true : _ref$isMobile,
|
|
46
|
+
_ref$showSelectedDate = _ref.showSelectedDate,
|
|
47
|
+
showSelectedDate = _ref$showSelectedDate === void 0 ? false : _ref$showSelectedDate,
|
|
48
|
+
_ref$classes = _ref.classes,
|
|
49
|
+
classes = _ref$classes === void 0 ? {
|
|
50
|
+
wrapper: "",
|
|
51
|
+
label: "",
|
|
52
|
+
body: "",
|
|
53
|
+
yearsBlock: "",
|
|
54
|
+
yearsList: "",
|
|
55
|
+
yearsListItem: "",
|
|
56
|
+
monthsBlock: "",
|
|
57
|
+
monthsList: "",
|
|
58
|
+
monthsListItem: "",
|
|
59
|
+
daysBlock: "",
|
|
60
|
+
daysList: "",
|
|
61
|
+
daysListItem: "",
|
|
62
|
+
prevItem: "",
|
|
63
|
+
nextItem: "",
|
|
64
|
+
activeItem: ""
|
|
65
|
+
} : _ref$classes,
|
|
66
|
+
_ref$onChange = _ref.onChange,
|
|
67
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
|
|
68
|
+
var Body = document.querySelector("body");
|
|
69
|
+
var listItem = document.querySelector(".mobile-calendar_wrapper_body_months-list--item");
|
|
70
|
+
|
|
71
|
+
var _useState = (0, _react.useState)(value || (0, _moment.default)()),
|
|
72
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
73
|
+
date = _useState2[0],
|
|
74
|
+
setDate = _useState2[1];
|
|
75
|
+
|
|
76
|
+
var _useState3 = (0, _react.useState)(false),
|
|
77
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
78
|
+
isMouseDown = _useState4[0],
|
|
79
|
+
setIsMouseDown = _useState4[1];
|
|
80
|
+
|
|
81
|
+
var _useState5 = (0, _react.useState)(null),
|
|
82
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
83
|
+
mouseDownOn = _useState6[0],
|
|
84
|
+
setMouseDownOn = _useState6[1];
|
|
85
|
+
|
|
86
|
+
var _useState7 = (0, _react.useState)(null),
|
|
87
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
88
|
+
changeInterval = _useState8[0],
|
|
89
|
+
setChangeInterval = _useState8[1];
|
|
90
|
+
|
|
91
|
+
var _useState9 = (0, _react.useState)(null),
|
|
92
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
93
|
+
touchY = _useState10[0],
|
|
94
|
+
setTouchY = _useState10[1];
|
|
95
|
+
|
|
96
|
+
var _useState11 = (0, _react.useState)(null),
|
|
97
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
98
|
+
touchType = _useState12[0],
|
|
99
|
+
setTouchType = _useState12[1];
|
|
100
|
+
|
|
101
|
+
var _useState13 = (0, _react.useState)(null),
|
|
102
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
103
|
+
touchTimestamp = _useState14[0],
|
|
104
|
+
setTouchTimestamp = _useState14[1];
|
|
105
|
+
|
|
106
|
+
var _useState15 = (0, _react.useState)(0),
|
|
107
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
108
|
+
scrollDirection = _useState16[0],
|
|
109
|
+
setScrollDirection = _useState16[1];
|
|
110
|
+
|
|
111
|
+
var listItemHeight = listItem === null || listItem === void 0 ? void 0 : (_listItem$getBounding = listItem.getBoundingClientRect()) === null || _listItem$getBounding === void 0 ? void 0 : _listItem$getBounding.height; //--HANDLERS--//
|
|
112
|
+
|
|
113
|
+
var changeItem = function changeItem(type, value) {
|
|
114
|
+
setScrollDirection(value);
|
|
115
|
+
setDate(function (date) {
|
|
116
|
+
var newDate = (0, _moment.default)(date).add(value, type);
|
|
117
|
+
if ((0, _moment.default)(newDate).isBefore(minDate)) return minDate;
|
|
118
|
+
if ((0, _moment.default)(newDate).isAfter(maxDate)) return maxDate;
|
|
119
|
+
return newDate;
|
|
120
|
+
});
|
|
121
|
+
setTimeout(function () {
|
|
122
|
+
setScrollDirection(0);
|
|
123
|
+
}, 50);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
var onArrowMouseDown = function onArrowMouseDown(type, value) {
|
|
127
|
+
setIsMouseDown(true);
|
|
128
|
+
setMouseDownOn({
|
|
129
|
+
type: type,
|
|
130
|
+
value: value
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
var onArrowMouseUp = function onArrowMouseUp() {
|
|
135
|
+
setIsMouseDown(false);
|
|
136
|
+
setMouseDownOn(null);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
var _onWheel = function onWheel(e, type) {
|
|
140
|
+
var deltaY = e.deltaY;
|
|
141
|
+
changeItem(type, deltaY < 0 ? -1 : 1);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var _onTouchStart = function onTouchStart(e, type) {
|
|
145
|
+
var timeStamp = e.timeStamp,
|
|
146
|
+
changedTouches = e.changedTouches;
|
|
147
|
+
var pageY = changedTouches[0].pageY;
|
|
148
|
+
setTouchY(pageY);
|
|
149
|
+
setTouchTimestamp(timeStamp);
|
|
150
|
+
setTouchType(type);
|
|
151
|
+
Body === null || Body === void 0 ? void 0 : Body.addEventListener('touchend', function (e) {
|
|
152
|
+
return onTouchEnd(e, pageY, timeStamp, type);
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
var onTouchMove = function onTouchMove(e) {
|
|
157
|
+
if (!touchY || !touchType) return;
|
|
158
|
+
var timeStamp = e.timeStamp,
|
|
159
|
+
changedTouches = e.changedTouches;
|
|
160
|
+
var pageY = changedTouches[0].pageY;
|
|
161
|
+
var deltaY = touchY - pageY;
|
|
162
|
+
if (Math.abs(deltaY) < listItemHeight / 2) return;
|
|
163
|
+
var direction = deltaY < 0 ? -1 : 1;
|
|
164
|
+
setScrollDirection(direction);
|
|
165
|
+
changeItem(touchType, direction);
|
|
166
|
+
setTouchY(pageY);
|
|
167
|
+
setTouchTimestamp(timeStamp);
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
var onTouchEnd = function onTouchEnd(e, startY, startTime, touchType) {
|
|
171
|
+
var timeStamp = e.timeStamp,
|
|
172
|
+
changedTouches = e.changedTouches;
|
|
173
|
+
var pageY = changedTouches[0].pageY;
|
|
174
|
+
var path = Math.abs(startY - pageY); //in px
|
|
175
|
+
|
|
176
|
+
var time = timeStamp - startTime; //ms
|
|
177
|
+
|
|
178
|
+
var pxPerMs = path / time;
|
|
179
|
+
if (pxPerMs > 1) innertionScroll({
|
|
180
|
+
startY: startY,
|
|
181
|
+
pageY: pageY,
|
|
182
|
+
timeStamp: timeStamp,
|
|
183
|
+
startTime: startTime,
|
|
184
|
+
touchType: touchType
|
|
185
|
+
});else setTouchType(null);
|
|
186
|
+
setTouchY(null);
|
|
187
|
+
Body === null || Body === void 0 ? void 0 : Body.clearEventListeners('touchend');
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var innertionScroll = function innertionScroll(_ref2) {
|
|
191
|
+
var startY = _ref2.startY,
|
|
192
|
+
pageY = _ref2.pageY,
|
|
193
|
+
timeStamp = _ref2.timeStamp,
|
|
194
|
+
startTime = _ref2.startTime,
|
|
195
|
+
touchType = _ref2.touchType;
|
|
196
|
+
var path = Math.abs(startY - pageY); //in px
|
|
197
|
+
|
|
198
|
+
var time = timeStamp - startTime; //ms
|
|
199
|
+
|
|
200
|
+
var pxPerMs = path / time; //speed
|
|
201
|
+
|
|
202
|
+
var S = pxPerMs / 2 * time / 2;
|
|
203
|
+
var blocks = Math.ceil(S / listItemHeight) * 6 * pxPerMs;
|
|
204
|
+
var timeout;
|
|
205
|
+
|
|
206
|
+
for (var i = 1; i <= blocks; ++i) {
|
|
207
|
+
timeout = i * pxPerMs + Math.pow(i, 2) * 1.2;
|
|
208
|
+
setTimeout(function () {
|
|
209
|
+
changeItem(touchType, startY - pageY < 0 ? -1 : 1);
|
|
210
|
+
}, timeout);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
setTimeout(function () {
|
|
214
|
+
setTouchType(null);
|
|
215
|
+
}, timeout);
|
|
216
|
+
}; //--FUNCTIONS--//
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
var intervalWorker = function intervalWorker() {
|
|
220
|
+
if (!mouseDownOn) return;
|
|
221
|
+
var type = mouseDownOn.type,
|
|
222
|
+
value = mouseDownOn.value;
|
|
223
|
+
changeItem(type, value);
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
var getList = function getList(type, format) {
|
|
227
|
+
var list = [];
|
|
228
|
+
var renderRows = rows;
|
|
229
|
+
|
|
230
|
+
for (var i = (renderRows - 1) / 2; i >= (renderRows - 1) / 2 * -1; --i) {
|
|
231
|
+
list.push((0, _moment.default)(date).subtract(i, type).format(format));
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return list;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
var getMonthList = function getMonthList() {
|
|
238
|
+
return getList('months', 'MMMM');
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
var getDaysList = function getDaysList() {
|
|
242
|
+
return getList('days', 'D');
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
var getYearsList = function getYearsList() {
|
|
246
|
+
return getList('years', 'YYYY');
|
|
247
|
+
}; //--OBSERVERS--//
|
|
248
|
+
//Events Observer
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
(0, _react.useEffect)(function () {
|
|
252
|
+
document.addEventListener('mouseup', onArrowMouseUp);
|
|
253
|
+
return function () {
|
|
254
|
+
document.removeEventListener('mouseup', onArrowMouseUp);
|
|
255
|
+
};
|
|
256
|
+
}, []);
|
|
257
|
+
(0, _react.useEffect)(function () {
|
|
258
|
+
onChange(date);
|
|
259
|
+
}, [date]); //--RENDER--//
|
|
260
|
+
|
|
261
|
+
var renderMonthsList = function renderMonthsList() {
|
|
262
|
+
var half = (rows - 1) / 2;
|
|
263
|
+
return getMonthList().map(function (month, i) {
|
|
264
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
265
|
+
className: "mobile-calendar_wrapper_body_months-list--item ".concat(i === half ? 'active' : '', " ").concat(i === 0 || i === rows - 1 ? 'transparent' : '', " ").concat(classes === null || classes === void 0 ? void 0 : classes.monthsListItem, " ").concat(i === half ? classes === null || classes === void 0 ? void 0 : classes.activeItem : ''),
|
|
266
|
+
key: "month-".concat(month),
|
|
267
|
+
onClick: touchY ? null : function () {
|
|
268
|
+
return i - half === 0 ? {} : changeItem('months', i - half);
|
|
269
|
+
},
|
|
270
|
+
"attr-scroll-direction": touchType === 'months' ? scrollDirection : 0,
|
|
271
|
+
"attr-is-scrolling": touchType === 'months' ? 1 : 0
|
|
272
|
+
}, month);
|
|
273
|
+
});
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
var renderDaysList = function renderDaysList() {
|
|
277
|
+
var half = (rows - 1) / 2;
|
|
278
|
+
return getDaysList().map(function (day, i) {
|
|
279
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
280
|
+
className: "mobile-calendar_wrapper_body_days-list--item ".concat(i === half ? 'active' : '', " ").concat(i === 0 || i === rows - 1 ? 'transparent' : '', " ").concat(classes === null || classes === void 0 ? void 0 : classes.daysListItem, " ").concat(i === half ? classes === null || classes === void 0 ? void 0 : classes.activeItem : ''),
|
|
281
|
+
key: "day-".concat(day),
|
|
282
|
+
onClick: function onClick() {
|
|
283
|
+
return i - half === 0 ? {} : changeItem('days', i - half);
|
|
284
|
+
},
|
|
285
|
+
"attr-scroll-direction": touchType === 'days' ? scrollDirection : 0,
|
|
286
|
+
"attr-is-scrolling": touchType === 'days' ? 1 : 0
|
|
287
|
+
}, day);
|
|
288
|
+
});
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
var renderYearsList = function renderYearsList() {
|
|
292
|
+
var half = (rows - 1) / 2;
|
|
293
|
+
return getYearsList().map(function (year, i) {
|
|
294
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
295
|
+
className: "mobile-calendar_wrapper_body_years-list--item ".concat(i === half ? 'active' : '', " ").concat(i === 0 || i === rows - 1 ? 'transparent' : '', " ").concat(classes === null || classes === void 0 ? void 0 : classes.yearsListItem, " ").concat(i === half ? classes === null || classes === void 0 ? void 0 : classes.activeItem : ''),
|
|
296
|
+
key: "year-".concat(year),
|
|
297
|
+
onClick: function onClick() {
|
|
298
|
+
return i - half === 0 ? {} : changeItem('years', i - half);
|
|
299
|
+
},
|
|
300
|
+
"attr-scroll-direction": touchType === 'years' ? scrollDirection : 0,
|
|
301
|
+
"attr-is-scrolling": touchType === 'years' ? 1 : 0
|
|
302
|
+
}, year);
|
|
303
|
+
});
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
var renderMonthBlock = function renderMonthBlock() {
|
|
307
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
308
|
+
className: "mobile-calendar_wrapper_body_months ".concat(classes === null || classes === void 0 ? void 0 : classes.monthsBlock)
|
|
309
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
310
|
+
className: "mobile-calendar_wrapper_body_months--prev ".concat(classes === null || classes === void 0 ? void 0 : classes.prevItem)
|
|
311
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, {
|
|
312
|
+
onClick: function onClick() {
|
|
313
|
+
return changeItem('months', -1);
|
|
314
|
+
},
|
|
315
|
+
onMouseDown: function onMouseDown() {
|
|
316
|
+
return onArrowMouseDown('months', -1);
|
|
317
|
+
},
|
|
318
|
+
onMouseUp: onArrowMouseUp
|
|
319
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
320
|
+
className: "mobile-calendar_wrapper_body_months-list ".concat(classes === null || classes === void 0 ? void 0 : classes.monthsList),
|
|
321
|
+
onTouchStart: function onTouchStart(e) {
|
|
322
|
+
return _onTouchStart(e, "months");
|
|
323
|
+
},
|
|
324
|
+
onWheel: function onWheel(e) {
|
|
325
|
+
return _onWheel(e, "months");
|
|
326
|
+
}
|
|
327
|
+
}, renderMonthsList(), isMobile && /*#__PURE__*/_react.default.createElement("div", {
|
|
328
|
+
className: "mobile-calendar_wrapper_body_months-list_touch-zone"
|
|
329
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
330
|
+
className: "mobile-calendar_wrapper_body_months--next ".concat(classes === null || classes === void 0 ? void 0 : classes.nextItem)
|
|
331
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, {
|
|
332
|
+
onClick: function onClick() {
|
|
333
|
+
return changeItem('months', 1);
|
|
334
|
+
},
|
|
335
|
+
onMouseDown: function onMouseDown() {
|
|
336
|
+
return onArrowMouseDown('months', 1);
|
|
337
|
+
},
|
|
338
|
+
onMouseUp: onArrowMouseUp
|
|
339
|
+
})));
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
var renderDaysBlock = function renderDaysBlock() {
|
|
343
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
344
|
+
className: "mobile-calendar_wrapper_body_days ".concat(classes === null || classes === void 0 ? void 0 : classes.daysBlock)
|
|
345
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
346
|
+
className: "mobile-calendar_wrapper_body_days--prev ".concat(classes === null || classes === void 0 ? void 0 : classes.prevItem)
|
|
347
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, {
|
|
348
|
+
onClick: function onClick() {
|
|
349
|
+
return changeItem('days', -1);
|
|
350
|
+
},
|
|
351
|
+
onMouseDown: function onMouseDown() {
|
|
352
|
+
return onArrowMouseDown('days', -1);
|
|
353
|
+
},
|
|
354
|
+
onMouseUp: onArrowMouseUp
|
|
355
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
356
|
+
className: "mobile-calendar_wrapper_body_days-list ".concat(classes === null || classes === void 0 ? void 0 : classes.daysList),
|
|
357
|
+
onTouchStart: function onTouchStart(e) {
|
|
358
|
+
return _onTouchStart(e, "days");
|
|
359
|
+
},
|
|
360
|
+
onWheel: function onWheel(e) {
|
|
361
|
+
return _onWheel(e, "days");
|
|
362
|
+
}
|
|
363
|
+
}, renderDaysList(), isMobile && /*#__PURE__*/_react.default.createElement("div", {
|
|
364
|
+
className: "mobile-calendar_wrapper_body_days-list_touch-zone"
|
|
365
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
366
|
+
className: "mobile-calendar_wrapper_body_days--next ".concat(classes === null || classes === void 0 ? void 0 : classes.nextItem)
|
|
367
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, {
|
|
368
|
+
onClick: function onClick() {
|
|
369
|
+
return changeItem('days', 1);
|
|
370
|
+
},
|
|
371
|
+
onMouseDown: function onMouseDown() {
|
|
372
|
+
return onArrowMouseDown('days', 1);
|
|
373
|
+
},
|
|
374
|
+
onMouseUp: onArrowMouseUp
|
|
375
|
+
})));
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
var renderYearsBlock = function renderYearsBlock() {
|
|
379
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
380
|
+
className: "mobile-calendar_wrapper_body_years ".concat(classes === null || classes === void 0 ? void 0 : classes.yearsBlock)
|
|
381
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
382
|
+
className: "mobile-calendar_wrapper_body_years--prev ".concat(classes === null || classes === void 0 ? void 0 : classes.prevItem)
|
|
383
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, {
|
|
384
|
+
onClick: function onClick() {
|
|
385
|
+
return changeItem('years', -1);
|
|
386
|
+
},
|
|
387
|
+
onMouseDown: function onMouseDown() {
|
|
388
|
+
return onArrowMouseDown('years', -1);
|
|
389
|
+
},
|
|
390
|
+
onMouseUp: onArrowMouseUp
|
|
391
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
392
|
+
className: "mobile-calendar_wrapper_body_years-list ".concat(classes === null || classes === void 0 ? void 0 : classes.yearsList),
|
|
393
|
+
onTouchStart: function onTouchStart(e) {
|
|
394
|
+
return _onTouchStart(e, "years");
|
|
395
|
+
},
|
|
396
|
+
onWheel: function onWheel(e) {
|
|
397
|
+
return _onWheel(e, "years");
|
|
398
|
+
}
|
|
399
|
+
}, renderYearsList(), isMobile && /*#__PURE__*/_react.default.createElement("div", {
|
|
400
|
+
className: "mobile-calendar_wrapper_body_years-list_touch-zone"
|
|
401
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
402
|
+
className: "mobile-calendar_wrapper_body_years--next ".concat(classes === null || classes === void 0 ? void 0 : classes.nextItem)
|
|
403
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, {
|
|
404
|
+
onClick: function onClick() {
|
|
405
|
+
return changeItem('years', 1);
|
|
406
|
+
},
|
|
407
|
+
onMouseDown: function onMouseDown() {
|
|
408
|
+
return onArrowMouseDown('years', 1);
|
|
409
|
+
},
|
|
410
|
+
onMouseUp: onArrowMouseUp
|
|
411
|
+
})));
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
415
|
+
className: "mobile-calendar_wrapper ".concat(classes === null || classes === void 0 ? void 0 : classes.wrapper),
|
|
416
|
+
onTouchMove: onTouchMove
|
|
417
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
418
|
+
className: "mobile-calendar_wrapper_label ".concat(classes === null || classes === void 0 ? void 0 : classes.label)
|
|
419
|
+
}, label), showSelectedDate && /*#__PURE__*/_react.default.createElement("div", {
|
|
420
|
+
className: "mobile-calendar_wrapper_label ".concat(classes === null || classes === void 0 ? void 0 : classes.label)
|
|
421
|
+
}, (0, _moment.default)(date).format("LL")), /*#__PURE__*/_react.default.createElement("div", {
|
|
422
|
+
className: "mobile-calendar_wrapper_body ".concat(classes === null || classes === void 0 ? void 0 : classes.body)
|
|
423
|
+
}, renderMonthBlock(), renderDaysBlock(), renderYearsBlock()));
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
var _default = MobileCalendar;
|
|
427
|
+
exports.default = _default;
|
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
}
|
|
@@ -7,38 +7,50 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.CalendarTemplate = exports.default = void 0;
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _MobileCalendar = _interopRequireDefault(require("./MobileCalendar"));
|
|
17
17
|
|
|
18
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
19
|
|
|
20
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
|
|
22
|
-
global.lng = 'en';
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
global.lng = 'en';
|
|
23
|
+
var _default = {
|
|
24
|
+
title: 'Form Elements/Mobile Calendar',
|
|
25
|
+
component: _MobileCalendar.default,
|
|
26
|
+
argTypes: {
|
|
27
|
+
value: {
|
|
28
|
+
description: 'string (mm.dd.yyyy)'
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.default = _default;
|
|
26
33
|
|
|
27
34
|
var Template = function Template(args) {
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
var _useState = (0, _react.useState)(''),
|
|
36
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
37
|
+
date = _useState2[0],
|
|
38
|
+
setDate = _useState2[1];
|
|
39
|
+
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_MobileCalendar.default, {
|
|
41
|
+
classes: {
|
|
42
|
+
wrapper: "123"
|
|
43
|
+
},
|
|
44
|
+
onChange: console.log
|
|
35
45
|
});
|
|
36
46
|
};
|
|
37
47
|
|
|
38
|
-
var
|
|
39
|
-
exports.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
minDate: '
|
|
43
|
-
maxDate: '
|
|
48
|
+
var CalendarTemplate = Template.bind({});
|
|
49
|
+
exports.CalendarTemplate = CalendarTemplate;
|
|
50
|
+
CalendarTemplate.args = {
|
|
51
|
+
value: '',
|
|
52
|
+
minDate: '01/01/1900',
|
|
53
|
+
maxDate: '01/01/2100',
|
|
54
|
+
isDontLimitFuture: true // isListTop: true,
|
|
55
|
+
|
|
44
56
|
};
|
|
@@ -44,7 +44,12 @@ var RangeCalendar = function RangeCalendar(props) {
|
|
|
44
44
|
startPrevDate = props.startPrevDate,
|
|
45
45
|
endPrevDate = props.endPrevDate,
|
|
46
46
|
limitRange = props.limitRange,
|
|
47
|
-
isShortWeekNames = props.isShortWeekNames
|
|
47
|
+
isShortWeekNames = props.isShortWeekNames,
|
|
48
|
+
minDate = props.minDate,
|
|
49
|
+
maxDate = props.maxDate,
|
|
50
|
+
momentMinDate = props.momentMinDate,
|
|
51
|
+
momentMaxDate = props.momentMaxDate,
|
|
52
|
+
isDontLimitFuture = props.isDontLimitFuture;
|
|
48
53
|
|
|
49
54
|
var _useState = (0, _react.useState)({}),
|
|
50
55
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -89,9 +94,7 @@ var RangeCalendar = function RangeCalendar(props) {
|
|
|
89
94
|
var classNames = (0, _classnames.default)('range-calendar__day', {
|
|
90
95
|
'range-calendar__day--clickable': day
|
|
91
96
|
}, {
|
|
92
|
-
'range-calendar__day--disabled': isFutureDay
|
|
93
|
-
}, {
|
|
94
|
-
'range-calendar__day--disabled': isPastDay
|
|
97
|
+
'range-calendar__day--disabled': isPastDay || minDate && (0, _momentTimezone.default)(day === null || day === void 0 ? void 0 : day.date).isBefore(minDate, 'day') || !isDontLimitFuture && (maxDate ? (0, _momentTimezone.default)(day === null || day === void 0 ? void 0 : day.date).isAfter(momentMaxDate) : isFutureDay)
|
|
95
98
|
}, {
|
|
96
99
|
'range-calendar__day--range-start': isRangeStart
|
|
97
100
|
}, {
|
|
@@ -106,10 +109,10 @@ var RangeCalendar = function RangeCalendar(props) {
|
|
|
106
109
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
107
110
|
key: "".concat(week, "_").concat(dayOfWeek),
|
|
108
111
|
className: classNames,
|
|
109
|
-
onClick: day
|
|
112
|
+
onClick: day ? function (e) {
|
|
110
113
|
return onClick(day.date, e);
|
|
111
114
|
} : null,
|
|
112
|
-
onMouseOver: day
|
|
115
|
+
onMouseOver: day ? function () {
|
|
113
116
|
return onHover(day.date);
|
|
114
117
|
} : null,
|
|
115
118
|
onMouseLeave: function onMouseLeave() {
|
|
@@ -138,14 +141,14 @@ var RangeCalendar = function RangeCalendar(props) {
|
|
|
138
141
|
className: "range-calendar-header"
|
|
139
142
|
}, /*#__PURE__*/_react.default.createElement(_Arrow.default, {
|
|
140
143
|
type: "left",
|
|
141
|
-
disabled: !allowPrev,
|
|
144
|
+
disabled: !allowPrev || minDate && (0, _momentTimezone.default)(date).startOf('month').isSameOrBefore(momentMinDate, 'months'),
|
|
142
145
|
onClick: handlePrev,
|
|
143
146
|
className: "range-calendar-header__prev"
|
|
144
147
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
145
148
|
className: "range-calendar-header__title"
|
|
146
149
|
}, title), /*#__PURE__*/_react.default.createElement(_Arrow.default, {
|
|
147
150
|
type: "right",
|
|
148
|
-
disabled: !allowNext,
|
|
151
|
+
disabled: !allowNext || !isDontLimitFuture && (0, _momentTimezone.default)(date).startOf('month').isSameOrAfter(maxDate ? momentMaxDate : (0, _momentTimezone.default)().add(1, 'day').startOf('day'), 'months'),
|
|
149
152
|
onClick: handleNext,
|
|
150
153
|
className: "range-calendar-header__next"
|
|
151
154
|
})), /*#__PURE__*/_react.default.createElement("div", {
|