intelicoreact 0.0.87 → 0.0.93
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.js +44 -19
- package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +12 -0
- package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +35 -7
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +24 -0
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.scss +57 -0
- package/dist/Atomic/FormElements/Input/Input.js +29 -10
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +10 -3
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.scss +18 -0
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +4 -2
- package/dist/Atomic/UI/Calendar/Calendar.js +87 -15
- package/dist/Atomic/UI/Calendar/Calendar.scss +73 -26
- package/dist/Atomic/UI/Calendar/Calendar.stories.js +20 -3
- package/package.json +1 -2
- package/src/Atomic/FormElements/Dropdown/Dropdown.js +72 -35
- package/src/Atomic/FormElements/Dropdown/Dropdown.scss +12 -0
- package/src/Atomic/FormElements/Dropdown/Dropdown.stories.js +23 -8
- package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.js +17 -0
- package/src/Atomic/FormElements/Dropdown/components/DropdownLoader.scss +57 -0
- package/src/Atomic/FormElements/Input/Input.js +46 -34
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.js +28 -7
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.scss +18 -0
- package/src/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +8 -8
- package/src/Atomic/UI/Calendar/Calendar.js +75 -11
- package/src/Atomic/UI/Calendar/Calendar.scss +73 -26
- package/src/Atomic/UI/Calendar/Calendar.stories.js +9 -7
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
10
|
exports.default = void 0;
|
|
11
11
|
|
|
12
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
+
|
|
12
14
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
15
|
|
|
14
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -21,11 +23,13 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
21
23
|
|
|
22
24
|
var _reactFeather = require("react-feather");
|
|
23
25
|
|
|
26
|
+
var _DropdownLoader = _interopRequireDefault(require("./components/DropdownLoader"));
|
|
27
|
+
|
|
24
28
|
require("./Dropdown.scss");
|
|
25
29
|
|
|
26
30
|
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); }
|
|
27
31
|
|
|
28
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
|
|
29
33
|
|
|
30
34
|
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; }
|
|
31
35
|
|
|
@@ -34,29 +38,33 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
34
38
|
var RC = 'dropdown';
|
|
35
39
|
|
|
36
40
|
var Dropdown = function Dropdown(_ref) {
|
|
37
|
-
var _options$find
|
|
41
|
+
var _options$find;
|
|
38
42
|
|
|
39
43
|
var _ref$options = _ref.options,
|
|
40
44
|
options = _ref$options === void 0 ? [] : _ref$options,
|
|
41
45
|
value = _ref.value,
|
|
42
46
|
error = _ref.error,
|
|
47
|
+
disabled = _ref.disabled,
|
|
43
48
|
onChange = _ref.onChange,
|
|
44
49
|
placeholder = _ref.placeholder,
|
|
45
50
|
className = _ref.className,
|
|
46
51
|
isSearchable = _ref.isSearchable,
|
|
47
|
-
entity = _ref.entity
|
|
52
|
+
entity = _ref.entity,
|
|
53
|
+
scrollReactionObj = _ref.scrollReactionObj,
|
|
54
|
+
isListTop = _ref.isListTop;
|
|
48
55
|
|
|
49
56
|
var _useState = (0, _react.useState)(false),
|
|
50
57
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
51
58
|
isOpen = _useState2[0],
|
|
52
59
|
setIsOpen = _useState2[1];
|
|
53
60
|
|
|
54
|
-
var _useState3 = (0, _react.useState)(
|
|
61
|
+
var _useState3 = (0, _react.useState)(),
|
|
55
62
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
56
63
|
searchValue = _useState4[0],
|
|
57
64
|
setSearchValue = _useState4[1];
|
|
58
65
|
|
|
59
66
|
var dropdownRef = (0, _react.useRef)(null);
|
|
67
|
+
var dropdownListRef = (0, _react.useRef)(null);
|
|
60
68
|
if (!options) return null;
|
|
61
69
|
var filteredGroups = options.filter(function (item) {
|
|
62
70
|
var _item$items;
|
|
@@ -153,14 +161,6 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
153
161
|
})) : null;
|
|
154
162
|
};
|
|
155
163
|
|
|
156
|
-
(0, _react.useEffect)(function () {
|
|
157
|
-
if (!value) setSearchValue(null);
|
|
158
|
-
document.addEventListener('click', handleClickOutside, true);
|
|
159
|
-
return function () {
|
|
160
|
-
return document.removeEventListener('click', handleClickOutside, true);
|
|
161
|
-
};
|
|
162
|
-
}, [value]);
|
|
163
|
-
|
|
164
164
|
var filteredOptionList = function filteredOptionList(filteredOption) {
|
|
165
165
|
var _filteredOption$items;
|
|
166
166
|
|
|
@@ -183,8 +183,34 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
183
183
|
return el.value === value;
|
|
184
184
|
})) === null || _item$items4$find === void 0 ? void 0 : _item$items4$find.label);
|
|
185
185
|
}, null);
|
|
186
|
+
var doScrollCallback = (0, _react.useCallback)(function (e) {
|
|
187
|
+
var callback = scrollReactionObj.callback,
|
|
188
|
+
isWithAnyScrolling = scrollReactionObj.isWithAnyScrolling;
|
|
189
|
+
|
|
190
|
+
if (callback && typeof callback === 'function') {
|
|
191
|
+
if (isWithAnyScrolling) callback(e);else if (e.target.clientHeight + e.target.scrollTop >= e.target.scrollHeight) callback(e);
|
|
192
|
+
}
|
|
193
|
+
}, [filteredOptions]);
|
|
194
|
+
(0, _react.useEffect)(function () {
|
|
195
|
+
if (!value) setSearchValue(null);
|
|
196
|
+
document.addEventListener('click', handleClickOutside, true);
|
|
197
|
+
return function () {
|
|
198
|
+
return document.removeEventListener('click', handleClickOutside, true);
|
|
199
|
+
};
|
|
200
|
+
}, [value]);
|
|
201
|
+
(0, _react.useEffect)(function () {
|
|
202
|
+
if (scrollReactionObj && (0, _typeof2.default)(scrollReactionObj) === 'object' && isOpen && dropdownListRef && dropdownListRef.current) {
|
|
203
|
+
dropdownListRef.current.addEventListener('scroll', doScrollCallback);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return function () {
|
|
207
|
+
if (scrollReactionObj && (0, _typeof2.default)(scrollReactionObj) === 'object') removeEventListener('scroll', doScrollCallback);
|
|
208
|
+
};
|
|
209
|
+
}, [isOpen, dropdownListRef]);
|
|
186
210
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
187
|
-
className: (0, _classnames.default)(RC, className
|
|
211
|
+
className: (0, _classnames.default)(RC, className, {
|
|
212
|
+
disabled: disabled
|
|
213
|
+
}),
|
|
188
214
|
ref: dropdownRef
|
|
189
215
|
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
190
216
|
className: "".concat(RC, "__trigger input__wrap ").concat(!value ? 'placeholder' : '', " ").concat(error ? 'error' : ''),
|
|
@@ -193,9 +219,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
193
219
|
}
|
|
194
220
|
}, isSearchable ? /*#__PURE__*/_react.default.createElement("input", {
|
|
195
221
|
className: "".concat(RC, "__input"),
|
|
196
|
-
value: searchValue ||
|
|
197
|
-
return el.value === value;
|
|
198
|
-
})) === null || _filteredOptions$find === void 0 ? void 0 : _filteredOptions$find.label) || '',
|
|
222
|
+
value: searchValue || selectedLabel || '',
|
|
199
223
|
onChange: function onChange(e) {
|
|
200
224
|
onSearchHandler(e.target.value);
|
|
201
225
|
},
|
|
@@ -212,12 +236,13 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
212
236
|
return setIsOpen(!isOpen);
|
|
213
237
|
}
|
|
214
238
|
}, isOpen ? /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, null) : /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, null))), isOpen && filteredOptions.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
|
|
215
|
-
className: "".concat(RC, "__list")
|
|
239
|
+
className: (0, _classnames.default)("".concat(RC, "__list"), (0, _defineProperty2.default)({}, "".concat(RC, "__list-top"), isListTop)),
|
|
240
|
+
ref: dropdownListRef
|
|
216
241
|
}, depend.options.map(function (filteredOption) {
|
|
217
242
|
var _filteredOption$items2;
|
|
218
243
|
|
|
219
244
|
return (_filteredOption$items2 = filteredOption.items) !== null && _filteredOption$items2 !== void 0 && _filteredOption$items2.length ? filteredOptionList(filteredOption) : getMarkupForElement(filteredOption);
|
|
220
|
-
})));
|
|
245
|
+
}), disabled && isOpen && /*#__PURE__*/_react.default.createElement(_DropdownLoader.default, null)));
|
|
221
246
|
};
|
|
222
247
|
|
|
223
248
|
var _default = Dropdown;
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
&__list {
|
|
48
|
+
position: relative;
|
|
48
49
|
background: #ffffff;
|
|
49
50
|
border: 1px solid #e2e5ec;
|
|
50
51
|
box-shadow: 0 5px 20px rgb(0 0 0 / 15%);
|
|
@@ -70,6 +71,12 @@
|
|
|
70
71
|
border-radius: 4px;
|
|
71
72
|
}
|
|
72
73
|
|
|
74
|
+
&-top {
|
|
75
|
+
bottom: calc(100% + 4px);
|
|
76
|
+
top: auto;
|
|
77
|
+
box-shadow: 0 -3px 10px rgb(0 0 0 / 15%);
|
|
78
|
+
}
|
|
79
|
+
|
|
73
80
|
&-item {
|
|
74
81
|
display: flex;
|
|
75
82
|
align-items: center;
|
|
@@ -177,4 +184,9 @@
|
|
|
177
184
|
font-size: 10px;
|
|
178
185
|
color: $color--secondary;
|
|
179
186
|
}
|
|
187
|
+
|
|
188
|
+
&.disabled {
|
|
189
|
+
pointer-events: none;
|
|
190
|
+
opacity: 0.5;
|
|
191
|
+
}
|
|
180
192
|
}
|
|
@@ -44,37 +44,65 @@ var _default = {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
exports.default = _default;
|
|
47
|
+
var blockStyles = {
|
|
48
|
+
display: 'flex',
|
|
49
|
+
flexFlow: 'row no-wrap',
|
|
50
|
+
alignItems: 'center'
|
|
51
|
+
};
|
|
47
52
|
var buttonStyles = {
|
|
48
53
|
border: 'solid 1px #000',
|
|
49
|
-
padding: '5px'
|
|
54
|
+
padding: '5px',
|
|
55
|
+
margin: '0 0 0 50px'
|
|
50
56
|
};
|
|
51
57
|
|
|
52
58
|
var Template = function Template(args) {
|
|
53
|
-
var _useState = (0, _react.useState)(
|
|
59
|
+
var _useState = (0, _react.useState)(args.value),
|
|
54
60
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
55
61
|
value = _useState2[0],
|
|
56
62
|
setValue = _useState2[1];
|
|
57
63
|
|
|
58
|
-
|
|
64
|
+
var _useState3 = (0, _react.useState)(false),
|
|
65
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
66
|
+
disabled = _useState4[0],
|
|
67
|
+
setDisabled = _useState4[1];
|
|
68
|
+
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
70
|
+
style: blockStyles
|
|
71
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
key: "dropdown",
|
|
59
73
|
style: {
|
|
60
74
|
width: 200
|
|
61
75
|
}
|
|
62
76
|
}, /*#__PURE__*/_react.default.createElement(_Dropdown.default, (0, _extends2.default)({}, args, {
|
|
63
77
|
value: value,
|
|
64
|
-
onChange: setValue
|
|
78
|
+
onChange: setValue,
|
|
79
|
+
disabled: disabled,
|
|
80
|
+
scrollReactionObj: {
|
|
81
|
+
callback: function callback(e) {
|
|
82
|
+
return setDisabled(true);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
65
85
|
}))), /*#__PURE__*/_react.default.createElement("button", {
|
|
86
|
+
key: "reset",
|
|
87
|
+
style: buttonStyles,
|
|
88
|
+
className: "mt10",
|
|
89
|
+
onClick: function onClick() {
|
|
90
|
+
return setValue('');
|
|
91
|
+
}
|
|
92
|
+
}, "Reset"), /*#__PURE__*/_react.default.createElement("button", {
|
|
93
|
+
key: "enable/disable",
|
|
66
94
|
style: buttonStyles,
|
|
67
95
|
className: "mt10",
|
|
68
96
|
onClick: function onClick() {
|
|
69
|
-
|
|
70
|
-
setValue('');
|
|
97
|
+
return setDisabled(!disabled);
|
|
71
98
|
}
|
|
72
|
-
},
|
|
99
|
+
}, disabled ? 'enable' : 'disable'));
|
|
73
100
|
};
|
|
74
101
|
|
|
75
102
|
var DropdownTemplate = Template.bind({});
|
|
76
103
|
exports.DropdownTemplate = DropdownTemplate;
|
|
77
104
|
DropdownTemplate.args = {
|
|
105
|
+
isListTop: true,
|
|
78
106
|
entity: 'entity',
|
|
79
107
|
value: 'drop6',
|
|
80
108
|
placeholder: 'Placeholder',
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
require("./DropdownLoader.scss");
|
|
13
|
+
|
|
14
|
+
var DropdownLoader = function DropdownLoader(_ref) {
|
|
15
|
+
var variant = _ref.variant;
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
17
|
+
className: "dropdown-loader-box j5"
|
|
18
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
19
|
+
className: "lds-ring".concat(variant === 'little' ? ' lds-ring_little' : '')
|
|
20
|
+
}, /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null), /*#__PURE__*/_react.default.createElement("div", null)));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var _default = DropdownLoader;
|
|
24
|
+
exports.default = _default;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@mixin fill-parent {
|
|
2
|
+
left: 0;
|
|
3
|
+
top: 0;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.dropdown-loader-box {
|
|
9
|
+
position: absolute;
|
|
10
|
+
@include fill-parent;
|
|
11
|
+
background: #fff;
|
|
12
|
+
opacity: 0.1;
|
|
13
|
+
z-index: 100;
|
|
14
|
+
}
|
|
15
|
+
.lds-ring {
|
|
16
|
+
display: inline-block;
|
|
17
|
+
position: relative;
|
|
18
|
+
width: 100px;
|
|
19
|
+
height: 100px;
|
|
20
|
+
}
|
|
21
|
+
.lds-ring.lds-ring_little {
|
|
22
|
+
width: 20px;
|
|
23
|
+
height: 20px;
|
|
24
|
+
}
|
|
25
|
+
.lds-ring div {
|
|
26
|
+
box-sizing: border-box;
|
|
27
|
+
display: block;
|
|
28
|
+
position: absolute;
|
|
29
|
+
width: 84px;
|
|
30
|
+
height: 84px;
|
|
31
|
+
margin: 8px;
|
|
32
|
+
border: 8px solid #000;
|
|
33
|
+
border-radius: 50%;
|
|
34
|
+
animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
35
|
+
border-color: #000 transparent transparent transparent;
|
|
36
|
+
}
|
|
37
|
+
.lds-ring_little div {
|
|
38
|
+
width: 20px;
|
|
39
|
+
height: 20px;
|
|
40
|
+
}
|
|
41
|
+
.lds-ring div:nth-child(1) {
|
|
42
|
+
animation-delay: -0.45s;
|
|
43
|
+
}
|
|
44
|
+
.lds-ring div:nth-child(2) {
|
|
45
|
+
animation-delay: -0.3s;
|
|
46
|
+
}
|
|
47
|
+
.lds-ring div:nth-child(3) {
|
|
48
|
+
animation-delay: -0.15s;
|
|
49
|
+
}
|
|
50
|
+
@keyframes lds-ring {
|
|
51
|
+
0% {
|
|
52
|
+
transform: rotate(0deg);
|
|
53
|
+
}
|
|
54
|
+
100% {
|
|
55
|
+
transform: rotate(360deg);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -90,7 +90,8 @@ var Input = function Input(_ref) {
|
|
|
90
90
|
onlyString = _inputExecutor.formatInput.onlyString;
|
|
91
91
|
var _formatInput$priceInp = _inputExecutor.formatInput.priceInput,
|
|
92
92
|
addCommas = _formatInput$priceInp.addCommas,
|
|
93
|
-
removeComma = _formatInput$priceInp.removeComma;
|
|
93
|
+
removeComma = _formatInput$priceInp.removeComma;
|
|
94
|
+
var isUseErrorsBlink = !isNotBlinkErrors && !mask; // HANDLES
|
|
94
95
|
|
|
95
96
|
var handle = {
|
|
96
97
|
change: function change(e) {
|
|
@@ -129,18 +130,36 @@ var Input = function Input(_ref) {
|
|
|
129
130
|
if (onBlur) onBlur(e);
|
|
130
131
|
},
|
|
131
132
|
keyUp: function keyUp(e) {
|
|
132
|
-
if (
|
|
133
|
+
if (isUseErrorsBlink) {
|
|
133
134
|
var _previousValueRef$cur;
|
|
134
135
|
|
|
135
136
|
var changedValue = '' + (value !== null && value !== void 0 ? value : '');
|
|
136
137
|
var previousValue = '' + ((_previousValueRef$cur = previousValueRef.current) !== null && _previousValueRef$cur !== void 0 ? _previousValueRef$cur : '');
|
|
137
|
-
|
|
138
|
-
var
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
var short = previousValue.length <= changedValue.length ? previousValue : changedValue;
|
|
139
|
+
var long = previousValue.length > changedValue.length ? previousValue : changedValue;
|
|
140
|
+
var infoAboutDifferencesSameness = short.split('').reduce(function (acc, symbol, idx) {
|
|
141
|
+
if (acc.countOn && symbol === long[idx]) acc.same.push(symbol);else {
|
|
142
|
+
acc.countOn = false;
|
|
143
|
+
acc.differences.push([idx, symbol]);
|
|
144
|
+
}
|
|
145
|
+
return acc;
|
|
146
|
+
}, {
|
|
147
|
+
same: [],
|
|
148
|
+
countOn: true,
|
|
149
|
+
differences: []
|
|
150
|
+
});
|
|
151
|
+
var samePart = infoAboutDifferencesSameness.same.join('');
|
|
152
|
+
var differencesLength = infoAboutDifferencesSameness.differences.length;
|
|
153
|
+
var currentSet = changedValue.replace(samePart, '');
|
|
154
|
+
|
|
155
|
+
var getNext = function getNext(inputPartToAdd, correctedSamePart) {
|
|
156
|
+
var partToAdd = inputPartToAdd || currentSet;
|
|
157
|
+
var currentSamePart = correctedSamePart || samePart;
|
|
158
|
+
return changedValue.includes(e.key) && e.key !== changedValue[changedValue.length - 1] ? currentSamePart + (partToAdd[0] || '') : changedValue;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
if (!_index.KEYBOARD_SERVICE_KEYS.includes(e.key) && changedValue === previousValue) setIsAttemptToChange(!(!differencesLength && e.key === changedValue[changedValue.length - 2]));
|
|
162
|
+
if (!previousValueRef.current || _index.KEYBOARD_SERVICE_KEYS.includes(e.key)) previousValueRef.current = getNext();else if (changedValue === samePart) previousValueRef.current = getNext(changedValue, changedValue.slice(0, -1));else previousValueRef.current = getNext();
|
|
144
163
|
}
|
|
145
164
|
|
|
146
165
|
if (onKeyUp) onKeyUp(e.keyCode, e);
|
|
@@ -185,7 +204,7 @@ var Input = function Input(_ref) {
|
|
|
185
204
|
}
|
|
186
205
|
|
|
187
206
|
(0, _react.useEffect)(function () {
|
|
188
|
-
if (
|
|
207
|
+
if (isUseErrorsBlink && isAttemptToChange) {
|
|
189
208
|
setIsAttemptToChange(null);
|
|
190
209
|
setIsToHighlightError(true);
|
|
191
210
|
setTimeout(function () {
|
|
@@ -21,6 +21,8 @@ var _Calendar = _interopRequireDefault(require("../../UI/Calendar/Calendar"));
|
|
|
21
21
|
|
|
22
22
|
var _useClickOutside = require("../../../Functions/useClickOutside");
|
|
23
23
|
|
|
24
|
+
require("./InputCalendar.scss");
|
|
25
|
+
|
|
24
26
|
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
27
|
|
|
26
28
|
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,7 +37,9 @@ var InputCalendar = function InputCalendar(_ref) {
|
|
|
35
37
|
_ref$placeholder = _ref.placeholder,
|
|
36
38
|
placeholder = _ref$placeholder === void 0 ? 'mm/dd/yyyy' : _ref$placeholder,
|
|
37
39
|
_ref$mask = _ref.mask,
|
|
38
|
-
mask = _ref$mask === void 0 ? '99/99/9999' : _ref$mask
|
|
40
|
+
mask = _ref$mask === void 0 ? '99/99/9999' : _ref$mask,
|
|
41
|
+
isDontLimitFuture = _ref.isDontLimitFuture,
|
|
42
|
+
isListTop = _ref.isListTop;
|
|
39
43
|
|
|
40
44
|
var _useState = (0, _react.useState)(false),
|
|
41
45
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -57,7 +61,7 @@ var InputCalendar = function InputCalendar(_ref) {
|
|
|
57
61
|
|
|
58
62
|
var getCalendarValue = function getCalendarValue(value) {
|
|
59
63
|
var date = (0, _moment.default)(value).format('L');
|
|
60
|
-
if (date !==
|
|
64
|
+
if (date !== 'Invalid date') return date;
|
|
61
65
|
return (0, _moment.default)(new Date()).format('L');
|
|
62
66
|
};
|
|
63
67
|
|
|
@@ -76,6 +80,7 @@ var InputCalendar = function InputCalendar(_ref) {
|
|
|
76
80
|
return setIsOpened(!isOpened);
|
|
77
81
|
}
|
|
78
82
|
}), isOpened ? /*#__PURE__*/_react.default.createElement(_Calendar.default, {
|
|
83
|
+
className: isListTop ? '' : '',
|
|
79
84
|
date: getCalendarValue(value),
|
|
80
85
|
setDate: function setDate(newDate) {
|
|
81
86
|
return changeCalendarDay(newDate);
|
|
@@ -83,7 +88,9 @@ var InputCalendar = function InputCalendar(_ref) {
|
|
|
83
88
|
params: {
|
|
84
89
|
minDate: minDate,
|
|
85
90
|
maxDate: maxDate
|
|
86
|
-
}
|
|
91
|
+
},
|
|
92
|
+
isDontLimitFuture: isDontLimitFuture,
|
|
93
|
+
isListTop: isListTop
|
|
87
94
|
}) : null);
|
|
88
95
|
};
|
|
89
96
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.calendar-container {
|
|
2
|
+
min-width: 200px;
|
|
3
|
+
position: relative;
|
|
4
|
+
|
|
5
|
+
.calendar {
|
|
6
|
+
position: absolute;
|
|
7
|
+
z-index: 9;
|
|
8
|
+
top: 100%;
|
|
9
|
+
padding: 10px 16px;
|
|
10
|
+
border: 1px solid var(--border-color);
|
|
11
|
+
|
|
12
|
+
&_list-top {
|
|
13
|
+
bottom: calc(100% + 4px);
|
|
14
|
+
top: auto;
|
|
15
|
+
box-shadow: 0 -3px 15px rgb(0 0 0 / 15%);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -51,6 +51,8 @@ var CalendarTemplate = Template.bind({});
|
|
|
51
51
|
exports.CalendarTemplate = CalendarTemplate;
|
|
52
52
|
CalendarTemplate.args = {
|
|
53
53
|
value: '',
|
|
54
|
-
minDate: '
|
|
55
|
-
maxDate: '
|
|
54
|
+
minDate: '01/01/1900',
|
|
55
|
+
maxDate: '01/01/2100',
|
|
56
|
+
isDontLimitFuture: true // isListTop: true,
|
|
57
|
+
|
|
56
58
|
};
|
|
@@ -13,12 +13,14 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
13
13
|
|
|
14
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
15
|
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
17
|
|
|
18
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
+
|
|
20
20
|
var _moment = _interopRequireDefault(require("moment"));
|
|
21
21
|
|
|
22
|
+
var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
|
|
23
|
+
|
|
22
24
|
var _reactFeather = require("react-feather");
|
|
23
25
|
|
|
24
26
|
require("./Calendar.scss");
|
|
@@ -35,11 +37,12 @@ function _default(props) {
|
|
|
35
37
|
_props$allowNext = props.allowNext,
|
|
36
38
|
allowNext = _props$allowNext === void 0 ? true : _props$allowNext,
|
|
37
39
|
params = props.params,
|
|
38
|
-
className = props.className
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
className = props.className,
|
|
41
|
+
isDontLimitFuture = props.isDontLimitFuture,
|
|
42
|
+
isListTop = props.isListTop; // const { minDate = '01/01/1900', maxDate = moment().format('MM/DD/YYYY') } = params;
|
|
43
|
+
|
|
44
|
+
var minDate = params.minDate,
|
|
45
|
+
maxDate = params.maxDate;
|
|
43
46
|
|
|
44
47
|
var _useState = (0, _react.useState)({}),
|
|
45
48
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -51,10 +54,28 @@ function _default(props) {
|
|
|
51
54
|
showDate = _useState4[0],
|
|
52
55
|
setShowDate = _useState4[1];
|
|
53
56
|
|
|
57
|
+
var _useState5 = (0, _react.useState)(false),
|
|
58
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
59
|
+
isChangeYear = _useState6[0],
|
|
60
|
+
setIsChangeYear = _useState6[1];
|
|
61
|
+
|
|
62
|
+
var _useState7 = (0, _react.useState)((0, _moment.default)(showDate).format('YYYY')),
|
|
63
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
64
|
+
inputYearValue = _useState8[0],
|
|
65
|
+
setInputYearValue = _useState8[1];
|
|
66
|
+
|
|
67
|
+
var yearInputRef = (0, _react.useRef)(null);
|
|
54
68
|
var selectedDay = (0, _moment.default)(showDate);
|
|
55
|
-
var isError = 'Invalid date';
|
|
56
|
-
|
|
57
|
-
|
|
69
|
+
var isError = 'Invalid date'; // const title = useMemo(
|
|
70
|
+
// () => (selectedDay.format('MMM') === isError ? isError : `${selectedDay.format('MMM')} ${moment(showDate).format('YYYY')}`),
|
|
71
|
+
// [date, showDate]
|
|
72
|
+
// );
|
|
73
|
+
|
|
74
|
+
var showMonth = (0, _react.useMemo)(function () {
|
|
75
|
+
return (0, _moment.default)(showDate).format('MMM');
|
|
76
|
+
}, [date, showDate]);
|
|
77
|
+
var showYear = (0, _react.useMemo)(function () {
|
|
78
|
+
return (0, _moment.default)(showDate).format('YYYY');
|
|
58
79
|
}, [date, showDate]);
|
|
59
80
|
(0, _react.useEffect)(function () {
|
|
60
81
|
var result = {};
|
|
@@ -89,7 +110,7 @@ function _default(props) {
|
|
|
89
110
|
var classNames = (0, _classnames.default)('calendar__day', {
|
|
90
111
|
'calendar__day--clickable': day
|
|
91
112
|
}, {
|
|
92
|
-
'calendar__day--disabled': isFutureDay
|
|
113
|
+
'calendar__day--disabled': !isDontLimitFuture && isFutureDay
|
|
93
114
|
}, {
|
|
94
115
|
'calendar__day--disabled': isBeforeDay
|
|
95
116
|
}, {
|
|
@@ -98,7 +119,7 @@ function _default(props) {
|
|
|
98
119
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
99
120
|
key: "".concat(week, "_").concat(dayOfWeek),
|
|
100
121
|
className: classNames,
|
|
101
|
-
onClick: day && !isFutureDay ? function () {
|
|
122
|
+
onClick: day && (isDontLimitFuture || !isFutureDay) ? function () {
|
|
102
123
|
return setDate((0, _moment.default)(day.date).format('L'));
|
|
103
124
|
} : null // onMouseOver={day && !isFutureDay ? () => onHover(day.date) : null}
|
|
104
125
|
// onMouseLeave={() => onHover(null)}
|
|
@@ -114,8 +135,35 @@ function _default(props) {
|
|
|
114
135
|
setShowDate((0, _moment.default)(showDate).add(1, 'month').format('L'));
|
|
115
136
|
};
|
|
116
137
|
|
|
138
|
+
var closeYearInput = function closeYearInput() {
|
|
139
|
+
var newDate = function () {
|
|
140
|
+
var dateArr = showDate.split('/');
|
|
141
|
+
var oldYear = dateArr[2];
|
|
142
|
+
dateArr[2] = inputYearValue;
|
|
143
|
+
return (0, _moment.default)(dateArr.join('/')).format('MM/DD/YYYY') === isError ? showDate : (0, _moment.default)(dateArr.join('/')).format('MM/DD/YYYY');
|
|
144
|
+
}();
|
|
145
|
+
|
|
146
|
+
var resultDate = newDate;
|
|
147
|
+
if (minDate && (0, _moment.default)(minDate) > (0, _moment.default)(newDate)) resultDate = (0, _moment.default)(showDate).format('MM/DD/YYYY');else if (maxDate && (0, _moment.default)(maxDate) < (0, _moment.default)(newDate)) resultDate = (0, _moment.default)(showDate).format('MM/DD/YYYY');
|
|
148
|
+
setIsChangeYear(false);
|
|
149
|
+
setShowDate(resultDate);
|
|
150
|
+
setInputYearValue(resultDate);
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
(0, _react.useEffect)(function () {
|
|
154
|
+
if (isChangeYear && yearInputRef.current) {
|
|
155
|
+
var input = yearInputRef.current.getElementsByTagName('input')[0];
|
|
156
|
+
setInputYearValue(showYear);
|
|
157
|
+
setTimeout(function () {
|
|
158
|
+
input.focus();
|
|
159
|
+
input.select();
|
|
160
|
+
}, 0);
|
|
161
|
+
}
|
|
162
|
+
}, [isChangeYear]);
|
|
117
163
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
118
|
-
className:
|
|
164
|
+
className: (0, _classnames.default)('calendar', className, {
|
|
165
|
+
'calendar_list-top': isListTop
|
|
166
|
+
})
|
|
119
167
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
120
168
|
className: "calendar-header"
|
|
121
169
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -123,8 +171,32 @@ function _default(props) {
|
|
|
123
171
|
}, allowPrev && /*#__PURE__*/_react.default.createElement("div", {
|
|
124
172
|
onClick: handlePrev
|
|
125
173
|
}, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronLeft, null))), /*#__PURE__*/_react.default.createElement("div", {
|
|
126
|
-
className:
|
|
127
|
-
|
|
174
|
+
className: (0, _classnames.default)('calendar-header__title'),
|
|
175
|
+
ref: yearInputRef
|
|
176
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
177
|
+
className: "calendar-header__title-month"
|
|
178
|
+
}, "".concat(showMonth, " ")), /*#__PURE__*/_react.default.createElement("span", {
|
|
179
|
+
className: (0, _classnames.default)('calendar-header__title-year', {
|
|
180
|
+
'calendar-header__title-year_change-mode': isChangeYear
|
|
181
|
+
}),
|
|
182
|
+
onClick: function onClick() {
|
|
183
|
+
return setIsChangeYear(true);
|
|
184
|
+
}
|
|
185
|
+
}, isChangeYear ? /*#__PURE__*/_react.default.createElement(_reactInputMask.default, {
|
|
186
|
+
className: "calendar-header__title-year-change-input",
|
|
187
|
+
value: inputYearValue,
|
|
188
|
+
mask: "9999",
|
|
189
|
+
onBlur: function onBlur(e) {
|
|
190
|
+
return closeYearInput();
|
|
191
|
+
},
|
|
192
|
+
onKeyUp: function onKeyUp(e) {
|
|
193
|
+
if (e.key === 'Escape') setIsChangeYear(false);
|
|
194
|
+
if (e.key === 'Enter') closeYearInput();
|
|
195
|
+
},
|
|
196
|
+
onChange: function onChange(e) {
|
|
197
|
+
return setInputYearValue(e.target.value);
|
|
198
|
+
}
|
|
199
|
+
}) : "".concat(showYear))), /*#__PURE__*/_react.default.createElement("div", {
|
|
128
200
|
className: "calendar-header__next"
|
|
129
201
|
}, allowNext && /*#__PURE__*/_react.default.createElement("div", {
|
|
130
202
|
onClick: handleNext
|