intelicoreact 0.0.5 → 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 (58) hide show
  1. package/dist/Atomic/FormElements/Calendar/Calendar.js +20 -9
  2. package/dist/Atomic/FormElements/Calendar/Calendar.scss +1 -1
  3. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +12 -54
  4. package/dist/Atomic/FormElements/DateTime/DateTime.stories.js +1 -1
  5. package/dist/Atomic/FormElements/Input/Input.js +8 -7
  6. package/dist/Atomic/FormElements/Input/Input.stories.js +5 -1
  7. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +89 -0
  8. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +46 -0
  9. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +238 -0
  10. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +468 -0
  11. package/dist/Atomic/FormElements/InputDateRange/components/InputDateRange.js +248 -0
  12. package/dist/Atomic/FormElements/InputDateRange/components/InputDateRange.scss +598 -0
  13. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +147 -0
  14. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +38 -0
  15. package/dist/Atomic/FormElements/InputDateRange/index.js +248 -0
  16. package/dist/Atomic/FormElements/Modal/Modal.stories.js +64 -18
  17. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +162 -0
  18. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  19. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +81 -0
  20. package/dist/Atomic/UI/Arrow/Arrow.js +80 -0
  21. package/dist/Atomic/UI/Arrow/Arrow.scss +22 -0
  22. package/dist/Atomic/UI/Arrow/Arrow.stories.js +46 -0
  23. package/dist/Atomic/UI/Button/Button.js +4 -2
  24. package/dist/Atomic/UI/Button/Button.scss +26 -0
  25. package/dist/Atomic/UI/Button/Button.stories.js +2 -2
  26. package/dist/Atomic/UI/Calendar/Calendar.js +145 -0
  27. package/dist/Atomic/UI/Calendar/Calendar.scss +544 -0
  28. package/dist/Atomic/UI/Calendar/Calendar.stories.js +37 -0
  29. package/dist/Functions/utils.js +10 -2
  30. package/package.json +7 -5
  31. package/src/Atomic/FormElements/DateTime/DateTime.stories.js +1 -1
  32. package/src/Atomic/FormElements/Input/Input.js +8 -7
  33. package/src/Atomic/FormElements/Input/Input.stories.js +3 -1
  34. package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +43 -0
  35. package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +27 -0
  36. package/src/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +142 -0
  37. package/src/Atomic/FormElements/InputDateRange/components/Datepicker.js +394 -0
  38. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.js +230 -0
  39. package/src/Atomic/FormElements/InputDateRange/components/InputDateRange.scss +598 -0
  40. package/src/Atomic/FormElements/InputDateRange/components/OpenedPart.js +109 -0
  41. package/src/Atomic/FormElements/InputDateRange/components/SelectItem.js +22 -0
  42. package/src/Atomic/FormElements/InputDateRange/index.js +157 -0
  43. package/src/Atomic/FormElements/Modal/Modal.stories.js +60 -15
  44. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.js +143 -0
  45. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.scss +101 -0
  46. package/src/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +54 -0
  47. package/src/Atomic/UI/Arrow/Arrow.js +41 -0
  48. package/src/Atomic/UI/Arrow/Arrow.scss +22 -0
  49. package/src/Atomic/UI/Arrow/Arrow.stories.js +32 -0
  50. package/src/Atomic/UI/Button/Button.js +3 -3
  51. package/src/Atomic/UI/Button/Button.scss +26 -0
  52. package/src/Atomic/UI/Button/Button.stories.js +4 -3
  53. package/src/Atomic/{FormElements → UI}/Calendar/Calendar.js +13 -10
  54. package/src/Atomic/UI/Calendar/Calendar.scss +544 -0
  55. package/src/Atomic/UI/Calendar/Calendar.stories.js +23 -0
  56. package/src/Functions/utils.js +6 -0
  57. package/src/Atomic/FormElements/Calendar/Calendar.scss +0 -543
  58. package/src/Atomic/FormElements/Calendar/Calendar.stories.js +0 -38
@@ -0,0 +1,248 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
23
+
24
+ var _ = require("..");
25
+
26
+ var _OpenedPart = _interopRequireDefault(require("./OpenedPart"));
27
+
28
+ var _Arrow = _interopRequireDefault(require("../../../UI/Arrow/Arrow"));
29
+
30
+ require("./InputDateRange.scss");
31
+
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
+
40
+ var InputDateRange = function InputDateRange(props) {
41
+ var _ref, _INTERVALS$actualValu;
42
+
43
+ var txt = props.txt,
44
+ id = props.id,
45
+ label = props.label,
46
+ className = props.className,
47
+ value = props.value,
48
+ _props$onChange = props.onChange,
49
+ onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
50
+ error = props.error,
51
+ disabled = props.disabled,
52
+ isHoverable = props.isHoverable,
53
+ short = props.short,
54
+ _props$isCompact = props.isCompact,
55
+ isCompact = _props$isCompact === void 0 ? false : _props$isCompact,
56
+ _props$isIntervalsHid = props.isIntervalsHidden,
57
+ isIntervalsHidden = _props$isIntervalsHid === void 0 ? false : _props$isIntervalsHid,
58
+ _props$isCompareHidde = props.isCompareHidden,
59
+ isCompareHidden = _props$isCompareHidde === void 0 ? false : _props$isCompareHidde,
60
+ _props$hideArrows = props.hideArrows,
61
+ hideArrows = _props$hideArrows === void 0 ? false : _props$hideArrows,
62
+ isOptionsRight = props.isOptionsRight,
63
+ limitRange = props.limitRange,
64
+ isUseAbs = props.isUseAbs,
65
+ absTooltip = props.absTooltip;
66
+ var actualValues = (0, _.getActualDateRange)(value);
67
+
68
+ var _useToggle = (0, _.useToggle)(false),
69
+ isToggled = _useToggle.isToggled,
70
+ toggle = _useToggle.toggle,
71
+ toggleOn = _useToggle.toggleOn,
72
+ toggleOff = _useToggle.toggleOff;
73
+
74
+ var _useState = (0, _react.useState)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey),
75
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
76
+ current = _useState2[0],
77
+ setCurrent = _useState2[1];
78
+
79
+ var _useState3 = (0, _react.useState)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.compare),
80
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
81
+ isCompare = _useState4[0],
82
+ setIsCompare = _useState4[1];
83
+
84
+ var ref = !isUseAbs ? (0, _.useClickOutside)(toggleOff) : (0, _react.useRef)(null);
85
+ var internalContainerRef = (0, _react.useRef)(null);
86
+ var isEndDateNearFuture = (0, _momentTimezone.default)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.end).isSameOrAfter((0, _momentTimezone.default)());
87
+
88
+ var Range = function Range() {
89
+ var SYMBOLS_QUANTITY_IF_TIME_ADDED = 13;
90
+ var start = actualValues.start,
91
+ end = actualValues.end;
92
+ if (!start || !end) return null;
93
+ var startTime = (0, _momentTimezone.default)(start).format('HH:mm');
94
+ var endTime = (0, _momentTimezone.default)(end).format('HH:mm');
95
+ var firstPart = "".concat((0, _momentTimezone.default)(start).format('ll'), " ").concat(startTime !== '00:00' ? "(".concat(startTime, ")") : '');
96
+ var secondPart = "".concat((endTime !== '00:00' ? (0, _momentTimezone.default)(end) : (0, _momentTimezone.default)(end).subtract(1, 'days')).format('ll'), " ").concat(endTime !== '00:00' ? "(".concat(endTime, ")") : '');
97
+
98
+ var getClasses = function getClasses(base) {
99
+ return (0, _classnames.default)('date-range-input__range-text', {
100
+ 'date-range-input__range-text_little': base.length > SYMBOLS_QUANTITY_IF_TIME_ADDED
101
+ });
102
+ };
103
+
104
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
105
+ className: getClasses(firstPart)
106
+ }, firstPart, endTime === '00:00' && (0, _momentTimezone.default)(end).isSame((0, _momentTimezone.default)(start).add(1, 'days'), 'day') ? '' : " - "), endTime === '00:00' && (0, _momentTimezone.default)(end).isSame((0, _momentTimezone.default)(start).add(1, 'days'), 'day') ? null : /*#__PURE__*/_react.default.createElement("span", {
107
+ className: getClasses(secondPart)
108
+ }, secondPart));
109
+ };
110
+
111
+ var slideInterval = function slideInterval() {
112
+ var _getActualDateRange;
113
+
114
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'forward';
115
+ var start = actualValues.start,
116
+ end = actualValues.end;
117
+ var intervalHoursCount = (0, _momentTimezone.default)(end).diff(start, 'hours');
118
+ console.log(intervalHoursCount);
119
+ var newEnd, newStart;
120
+ var endHours = (0, _momentTimezone.default)(end).hours();
121
+ var startHours = (0, _momentTimezone.default)(start).hours();
122
+
123
+ if (direction === 'forward') {
124
+ newStart = (0, _momentTimezone.default)(end).add(endHours === 0 ? 0 : 1, 'day').hours(startHours).toDate();
125
+ newEnd = (0, _momentTimezone.default)(newStart).add(intervalHoursCount, 'hours');
126
+ } else {
127
+ newEnd = (0, _momentTimezone.default)(start).subtract(endHours === 0 ? 0 : 1, 'day').hours(endHours).toDate();
128
+ newStart = (0, _momentTimezone.default)(newEnd).subtract(intervalHoursCount, 'hours');
129
+ }
130
+
131
+ var startPrevDate = (0, _momentTimezone.default)(newStart).subtract(intervalHoursCount, 'hours').subtract(1, 'seconds');
132
+ var endPrevDate = (0, _momentTimezone.default)(newEnd).subtract(1, 'seconds');
133
+ onChange(_objectSpread(_objectSpread({}, value), {}, {
134
+ intervalKey: (_getActualDateRange = (0, _.getActualDateRange)({
135
+ start: newStart,
136
+ end: newEnd
137
+ })) === null || _getActualDateRange === void 0 ? void 0 : _getActualDateRange.intervalKey,
138
+ start: newStart,
139
+ end: newEnd,
140
+ startPrevDate: startPrevDate,
141
+ endPrevDate: endPrevDate
142
+ }));
143
+ };
144
+
145
+ var handleArrowClick = function handleArrowClick(type) {
146
+ slideInterval(type === 'right' ? 'forward' : 'back');
147
+ toggleOff();
148
+ };
149
+
150
+ var absData = (0, _react.useMemo)(function () {
151
+ var _internalContainerRef, _internalContainerRef2, _internalContainerRef3, _internalContainerRef4;
152
+
153
+ return {
154
+ body: _OpenedPart.default,
155
+ props: _objectSpread(_objectSpread({}, props), {}, {
156
+ key: "".concat(actualValues.start, "-").concat(actualValues.end, "-").concat(actualValues.intervalKey, "-").concat(current, "-").concat(isCompare),
157
+ actualValues: actualValues,
158
+ current: current,
159
+ setCurrent: setCurrent,
160
+ isCompare: isCompare,
161
+ setIsCompare: setIsCompare,
162
+ toggleOff: toggleOff,
163
+ onChange: onChange
164
+ }),
165
+ clickOutsideCallback: function clickOutsideCallback() {
166
+ return toggleOff();
167
+ },
168
+ top: ((_internalContainerRef = internalContainerRef.current) === null || _internalContainerRef === void 0 ? void 0 : (_internalContainerRef2 = _internalContainerRef.getBoundingClientRect()) === null || _internalContainerRef2 === void 0 ? void 0 : _internalContainerRef2.bottom) || 0,
169
+ left: ((_internalContainerRef3 = internalContainerRef.current) === null || _internalContainerRef3 === void 0 ? void 0 : (_internalContainerRef4 = _internalContainerRef3.getBoundingClientRect()) === null || _internalContainerRef4 === void 0 ? void 0 : _internalContainerRef4.left) || 0
170
+ };
171
+ }, [isToggled, value, actualValues, current, isCompare]);
172
+ (0, _react.useEffect)(function () {
173
+ if (current && isUseAbs && absTooltip) onChange(current, 'absTooltip/props/current');
174
+ }, [current]);
175
+ (0, _react.useEffect)(function () {
176
+ if (isUseAbs) onChange(isToggled ? absData : null, 'absTooltip');
177
+ }, [isToggled]);
178
+ return /*#__PURE__*/_react.default.createElement("div", {
179
+ ref: internalContainerRef,
180
+ className: (0, _classnames.default)('date-range-input', className, {
181
+ 'date-range-input_compact': isCompact,
182
+ 'date-range-input_hide-arrows': hideArrows,
183
+ 'date-range-input_focused': isToggled,
184
+ 'date-range-input_error': error,
185
+ 'date-range-input_disabled': disabled
186
+ })
187
+ }, /*#__PURE__*/_react.default.createElement("span", {
188
+ className: "date-range-input__label"
189
+ }, label), /*#__PURE__*/_react.default.createElement("div", {
190
+ className: "date-range-input__wraper",
191
+ ref: ref,
192
+ onMouseEnter: isHoverable && toggleOn,
193
+ onMouseLeave: isHoverable && toggleOff
194
+ }, /*#__PURE__*/_react.default.createElement("div", {
195
+ className: (0, _classnames.default)('date-range-input__absolut-wraper', {
196
+ 'date-range-input__absolut-wraper_right-position': isOptionsRight
197
+ })
198
+ }, /*#__PURE__*/_react.default.createElement("div", {
199
+ className: (0, _classnames.default)('date-range-input__static-part')
200
+ }, /*#__PURE__*/_react.default.createElement("button", {
201
+ id: id,
202
+ className: (0, _classnames.default)('date-range-input__toggle-button') // className={cn(
203
+ // 'date-range-input__toggle-button',
204
+ // { 'form-select__input--disabled': disabled },
205
+ // { 'form-select__input--opened': isToggled },
206
+ // { 'form-select__input--focused': isToggled },
207
+ // className,
208
+ // )}
209
+ ,
210
+ disabled: disabled,
211
+ onClick: !disabled && !isHoverable ? toggle : undefined
212
+ }, /*#__PURE__*/_react.default.createElement("div", {
213
+ className: "date-range-input__interval-key"
214
+ }, /*#__PURE__*/_react.default.createElement("span", null, (_ref = (txt === null || txt === void 0 ? void 0 : txt.labels) && txt.labels[actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey]) !== null && _ref !== void 0 ? _ref : ((_INTERVALS$actualValu = _.INTERVALS[actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey]) === null || _INTERVALS$actualValu === void 0 ? void 0 : _INTERVALS$actualValu.label) || _.CUSTOM_INTERVAL_KEY_TEXT), current !== _.ALL_TIME_KEY && /*#__PURE__*/_react.default.createElement("span", null, ":")), !isCompact && /*#__PURE__*/_react.default.createElement("div", {
215
+ className: (0, _classnames.default)('date-range-input__range', {})
216
+ }, /*#__PURE__*/_react.default.createElement(Range, null))), !isCompact && !hideArrows && /*#__PURE__*/_react.default.createElement("div", {
217
+ className: (0, _classnames.default)('date-range-input__arrows-block')
218
+ }, /*#__PURE__*/_react.default.createElement(_Arrow.default, {
219
+ type: "left",
220
+ className: "date-range-input__arrow",
221
+ onClick: function onClick() {
222
+ return handleArrowClick("left");
223
+ },
224
+ disabled: disabled || (actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey) === _.ALL_TIME_KEY
225
+ }), /*#__PURE__*/_react.default.createElement(_Arrow.default, {
226
+ type: "right",
227
+ className: "date-range-input__arrow",
228
+ onClick: function onClick() {
229
+ return handleArrowClick("right");
230
+ },
231
+ disabled: disabled || (actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey) === _.ALL_TIME_KEY || (actualValues === null || actualValues === void 0 ? void 0 : actualValues.intervalKey) === 'today' || (0, _momentTimezone.default)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.end).add((0, _momentTimezone.default)(actualValues === null || actualValues === void 0 ? void 0 : actualValues.end).diff(actualValues === null || actualValues === void 0 ? void 0 : actualValues.start, 'hours'), 'hours').isSameOrAfter((0, _momentTimezone.default)())
232
+ }))), isToggled && !isUseAbs && /*#__PURE__*/_react.default.createElement(_OpenedPart.default, (0, _extends2.default)({}, props, {
233
+ ref: internalContainerRef,
234
+ actualValues: actualValues,
235
+ current: current,
236
+ setCurrent: setCurrent,
237
+ isCompare: isCompare,
238
+ setIsCompare: setIsCompare,
239
+ toggleOff: toggleOff,
240
+ onChange: onChange
241
+ })))), error && /*#__PURE__*/_react.default.createElement("span", {
242
+ className: "date-range-input__error-block"
243
+ }, error));
244
+ };
245
+
246
+ var _default = /*#__PURE__*/_react.default.memo(InputDateRange);
247
+
248
+ exports.default = _default;