@salutejs/plasma-new-hope 0.163.0-canary.1466.11254522155.0 → 0.163.0-canary.1475.11258202491.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/DatePicker/RangeDate/RangeDate.js +62 -11
- package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
- package/cjs/components/DatePicker/SingleDate/SingleDate.js +25 -7
- package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
- package/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
- package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
- package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
- package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
- package/cjs/components/DatePicker/utils/dateHelper.js +31 -0
- package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
- package/emotion/cjs/components/Badge/Badge.template-doc.mdx +1 -3
- package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +62 -11
- package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
- package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +25 -7
- package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
- package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
- package/emotion/cjs/components/DatePicker/utils/dateHelper.js +31 -1
- package/emotion/cjs/examples/plasma_b2c/components/Badge/Badge.config.js +13 -14
- package/emotion/cjs/examples/plasma_b2c/components/Badge/Badge.stories.tsx +1 -1
- package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
- package/emotion/cjs/examples/plasma_web/components/Badge/Badge.config.js +13 -14
- package/emotion/cjs/examples/plasma_web/components/Badge/Badge.stories.tsx +1 -1
- package/emotion/es/components/Badge/Badge.template-doc.mdx +1 -3
- package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +64 -13
- package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
- package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +26 -8
- package/emotion/es/components/DatePicker/hooks/useDatePicker.js +21 -49
- package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
- package/emotion/es/components/DatePicker/utils/dateHelper.js +30 -0
- package/emotion/es/examples/plasma_b2c/components/Badge/Badge.config.js +13 -14
- package/emotion/es/examples/plasma_b2c/components/Badge/Badge.stories.tsx +1 -1
- package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
- package/emotion/es/examples/plasma_web/components/Badge/Badge.config.js +13 -14
- package/emotion/es/examples/plasma_web/components/Badge/Badge.stories.tsx +1 -1
- package/es/components/DatePicker/RangeDate/RangeDate.js +64 -13
- package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
- package/es/components/DatePicker/SingleDate/SingleDate.js +26 -8
- package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
- package/es/components/DatePicker/hooks/useDatePicker.js +21 -49
- package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
- package/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
- package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
- package/es/components/DatePicker/utils/dateHelper.js +31 -1
- package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Badge/Badge.template-doc.mdx +1 -3
- package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +62 -11
- package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
- package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +25 -7
- package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
- package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
- package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +31 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Badge/Badge.config.js +1 -2
- package/styled-components/cjs/examples/plasma_b2c/components/Badge/Badge.stories.tsx +1 -1
- package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
- package/styled-components/cjs/examples/plasma_web/components/Badge/Badge.config.js +1 -2
- package/styled-components/cjs/examples/plasma_web/components/Badge/Badge.stories.tsx +1 -1
- package/styled-components/es/components/Badge/Badge.template-doc.mdx +1 -3
- package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +64 -13
- package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +8 -2
- package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +26 -8
- package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +21 -49
- package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
- package/styled-components/es/components/DatePicker/utils/dateHelper.js +30 -0
- package/styled-components/es/examples/plasma_b2c/components/Badge/Badge.config.js +1 -2
- package/styled-components/es/examples/plasma_b2c/components/Badge/Badge.stories.tsx +1 -1
- package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +2 -0
- package/styled-components/es/examples/plasma_web/components/Badge/Badge.config.js +1 -2
- package/styled-components/es/examples/plasma_web/components/Badge/Badge.stories.tsx +1 -1
- package/types/components/DatePicker/DatePickerBase.types.d.ts +7 -5
- package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts +8 -8
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +14 -4
- package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts +1 -1
- package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +12 -2
- package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
- package/types/components/DatePicker/hooks/useDatePicker.d.ts +2 -3
- package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
- package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts +3 -1
- package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
- package/types/components/DatePicker/utils/dateHelper.d.ts +10 -0
- package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
- package/types/components/Popover/Popover.types.d.ts +1 -1
- package/types/examples/plasma_b2c/components/Badge/Badge.config.d.ts +0 -1
- package/types/examples/plasma_b2c/components/Badge/Badge.config.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Badge/Badge.d.ts +0 -1
- package/types/examples/plasma_b2c/components/Badge/Badge.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +4 -4
- package/types/examples/plasma_web/components/Badge/Badge.config.d.ts +0 -1
- package/types/examples/plasma_web/components/Badge/Badge.config.d.ts.map +1 -1
- package/types/examples/plasma_web/components/Badge/Badge.d.ts +0 -1
- package/types/examples/plasma_web/components/Badge/Badge.d.ts.map +1 -1
- package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +4 -4
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.useDatePicker = void 0;
|
7
7
|
var _DatePicker = /*#__PURE__*/require("../DatePicker.tokens");
|
8
8
|
var _dateHelper = /*#__PURE__*/require("../utils/dateHelper");
|
9
|
-
var _datejs = /*#__PURE__*/require("../../../utils/datejs");
|
10
9
|
var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
|
11
10
|
var currentValue = _ref.currentValue,
|
12
11
|
setInputValue = _ref.setInputValue,
|
13
12
|
setCalendarValue = _ref.setCalendarValue,
|
14
|
-
setIsInnerOpen = _ref.setIsInnerOpen,
|
15
13
|
dateFormatDelimiter = _ref.dateFormatDelimiter,
|
16
14
|
format = _ref.format,
|
17
15
|
_ref$lang = _ref.lang,
|
@@ -21,24 +19,12 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
|
|
21
19
|
maskWithFormat = _ref.maskWithFormat,
|
22
20
|
valueError = _ref.valueError,
|
23
21
|
valueSuccess = _ref.valueSuccess,
|
24
|
-
inputRef = _ref.inputRef,
|
25
22
|
name = _ref.name,
|
26
|
-
onToggle = _ref.onToggle,
|
27
23
|
onChangeValue = _ref.onChangeValue,
|
28
24
|
onCommitDate = _ref.onCommitDate,
|
29
25
|
onChange = _ref.onChange;
|
30
26
|
var datePickerErrorClass = valueError ? _DatePicker.classes.datePickerError : undefined;
|
31
27
|
var datePickerSuccessClass = valueSuccess ? _DatePicker.classes.datePickerSuccess : undefined;
|
32
|
-
var handleToggle = function handleToggle(opened, event) {
|
33
|
-
if (disabled || readOnly) {
|
34
|
-
return;
|
35
|
-
}
|
36
|
-
var isCalendarOpen = event.target === (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) ? true : opened;
|
37
|
-
if (onToggle) {
|
38
|
-
return onToggle(isCalendarOpen, event);
|
39
|
-
}
|
40
|
-
setIsInnerOpen(isCalendarOpen);
|
41
|
-
};
|
42
28
|
var handleChangeValue = function handleChangeValue(event) {
|
43
29
|
if (disabled || readOnly) {
|
44
30
|
return;
|
@@ -61,24 +47,14 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
|
|
61
47
|
});
|
62
48
|
return;
|
63
49
|
}
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
var isLengthEqual;
|
73
|
-
if (hasMonthFullName) {
|
74
|
-
_datejs.customDayjs.locale(lang);
|
75
|
-
var firstIndexOfMonth = format.indexOf('M');
|
76
|
-
var lastIndexOfMonth = newValue.indexOf(dateFormatDelimiter(), firstIndexOfMonth);
|
77
|
-
var fullMonthName = !lastIndexOfMonth ? newValue.slice(firstIndexOfMonth) : newValue.slice(firstIndexOfMonth, lastIndexOfMonth);
|
78
|
-
var monthFormatting = format.replace(/[^M]/g, '');
|
79
|
-
isValidMonth = (0, _datejs.customDayjs)("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
|
80
|
-
isLengthEqual = format.length - monthFormatting.length === newValue.length - fullMonthName.length;
|
81
|
-
}
|
50
|
+
var _validateDateWithFull = (0, _dateHelper.validateDateWithFullMonth)({
|
51
|
+
currentValue: newValue,
|
52
|
+
format: format,
|
53
|
+
lang: lang
|
54
|
+
}),
|
55
|
+
hasMonthFullName = _validateDateWithFull.hasMonthFullName,
|
56
|
+
isValidMonth = _validateDateWithFull.isValidMonth,
|
57
|
+
isLengthEqual = _validateDateWithFull.isLengthEqual;
|
82
58
|
if (!hasMonthFullName && (newValue === null || newValue === void 0 ? void 0 : newValue.length) === (format === null || format === void 0 ? void 0 : format.length) || isValidMonth && isLengthEqual) {
|
83
59
|
setCalendarValue((0, _dateHelper.formatCalendarValue)(newValue, format, lang));
|
84
60
|
}
|
@@ -108,20 +84,18 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
|
|
108
84
|
return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
|
109
85
|
}
|
110
86
|
if (isCalendarValue) {
|
111
|
-
|
112
|
-
setInputValue((0, _dateHelper.formatInputValue)({
|
87
|
+
var _formattedInputValue = (0, _dateHelper.formatInputValue)({
|
113
88
|
value: date,
|
114
89
|
format: format,
|
115
90
|
lang: lang
|
116
|
-
})
|
91
|
+
});
|
92
|
+
setCalendarValue((0, _dateHelper.formatCalendarValue)(date, format, lang));
|
93
|
+
setInputValue(_formattedInputValue);
|
117
94
|
onCommitDate === null || onCommitDate === void 0 || onCommitDate(date, false, true, dateInfo);
|
95
|
+
onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, _formattedInputValue);
|
118
96
|
onChange === null || onChange === void 0 || onChange({
|
119
97
|
target: {
|
120
|
-
value:
|
121
|
-
value: date,
|
122
|
-
format: format,
|
123
|
-
lang: lang
|
124
|
-
}),
|
98
|
+
value: _formattedInputValue,
|
125
99
|
name: name
|
126
100
|
}
|
127
101
|
});
|
@@ -132,19 +106,18 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
|
|
132
106
|
newDate = _getDateFromFormat.value,
|
133
107
|
isError = _getDateFromFormat.isError,
|
134
108
|
isSuccess = _getDateFromFormat.isSuccess;
|
135
|
-
|
136
|
-
setInputValue((0, _dateHelper.formatInputValue)({
|
109
|
+
var formattedInputValue = (0, _dateHelper.formatInputValue)({
|
137
110
|
value: newDate,
|
138
111
|
format: format,
|
139
112
|
lang: lang
|
140
|
-
})
|
113
|
+
});
|
114
|
+
setCalendarValue((0, _dateHelper.formatCalendarValue)(newDate, format, lang));
|
115
|
+
setInputValue(formattedInputValue);
|
141
116
|
onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
|
117
|
+
onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedInputValue);
|
142
118
|
onChange === null || onChange === void 0 || onChange({
|
143
119
|
target: {
|
144
|
-
value:
|
145
|
-
value: date,
|
146
|
-
format: format
|
147
|
-
}),
|
120
|
+
value: formattedInputValue,
|
148
121
|
name: name
|
149
122
|
}
|
150
123
|
});
|
@@ -152,7 +125,6 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
|
|
152
125
|
return {
|
153
126
|
datePickerErrorClass: datePickerErrorClass,
|
154
127
|
datePickerSuccessClass: datePickerSuccessClass,
|
155
|
-
handleToggle: handleToggle,
|
156
128
|
handleChangeValue: handleChangeValue,
|
157
129
|
handleCommitDate: handleCommitDate
|
158
130
|
};
|
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.useKeyNavigation = exports.keys = void 0;
|
7
7
|
var keys = exports.keys = {
|
8
|
-
Space: 'Space'
|
8
|
+
Space: 'Space',
|
9
|
+
Escape: 'Escape'
|
9
10
|
};
|
10
11
|
var useKeyNavigation = exports.useKeyNavigation = function useKeyNavigation(_ref) {
|
11
12
|
var isCalendarOpen = _ref.isCalendarOpen,
|
13
|
+
closeOnEsc = _ref.closeOnEsc,
|
12
14
|
onToggle = _ref.onToggle;
|
13
15
|
var onKeyDown = function onKeyDown(event) {
|
14
16
|
switch (event.code) {
|
@@ -20,6 +22,14 @@ var useKeyNavigation = exports.useKeyNavigation = function useKeyNavigation(_ref
|
|
20
22
|
}
|
21
23
|
break;
|
22
24
|
}
|
25
|
+
case keys.Escape:
|
26
|
+
{
|
27
|
+
if (isCalendarOpen && closeOnEsc) {
|
28
|
+
event.preventDefault();
|
29
|
+
onToggle(false, event);
|
30
|
+
}
|
31
|
+
break;
|
32
|
+
}
|
23
33
|
default:
|
24
34
|
{
|
25
35
|
break;
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
|
6
|
+
exports.validateDateWithFullMonth = exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
|
7
7
|
var _datejs = /*#__PURE__*/require("../../../utils/datejs");
|
8
8
|
var formatInputValue = exports.formatInputValue = function formatInputValue(_ref) {
|
9
9
|
var value = _ref.value,
|
@@ -84,4 +84,34 @@ var getMaskedDateOnInput = exports.getMaskedDateOnInput = function getMaskedDate
|
|
84
84
|
return value + delimiter;
|
85
85
|
}
|
86
86
|
return value;
|
87
|
+
};
|
88
|
+
var validateDateWithFullMonth = exports.validateDateWithFullMonth = function validateDateWithFullMonth(_ref2) {
|
89
|
+
var currentValue = _ref2.currentValue,
|
90
|
+
format = _ref2.format,
|
91
|
+
lang = _ref2.lang;
|
92
|
+
/**
|
93
|
+
* NOTE: если в формате даты есть месяц в полном названии или сокращенном,
|
94
|
+
* нужно дополнительно проводить валидацию на полноту введенной даты.
|
95
|
+
* Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
|
96
|
+
*/
|
97
|
+
var hasMonthFullName = /M{3,4}/g.test(format);
|
98
|
+
if (!hasMonthFullName) {
|
99
|
+
return {
|
100
|
+
hasMonthFullName: hasMonthFullName,
|
101
|
+
isValidMonth: false,
|
102
|
+
isLengthEqual: false
|
103
|
+
};
|
104
|
+
}
|
105
|
+
_datejs.customDayjs.locale(lang);
|
106
|
+
var firstIndexOfMonth = format.indexOf('M');
|
107
|
+
var lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);
|
108
|
+
var fullMonthName = !lastIndexOfMonth ? currentValue.slice(firstIndexOfMonth) : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);
|
109
|
+
var monthFormatting = format.replace(/[^M]/g, '');
|
110
|
+
var isValidMonth = (0, _datejs.customDayjs)("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
|
111
|
+
var isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;
|
112
|
+
return {
|
113
|
+
hasMonthFullName: hasMonthFullName,
|
114
|
+
isValidMonth: isValidMonth,
|
115
|
+
isLengthEqual: isLengthEqual
|
116
|
+
};
|
87
117
|
};
|