@salutejs/plasma-new-hope 0.168.0-canary.1484.11355807813.0 → 0.168.0-dev.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.css +11 -12
- package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +4 -6
- package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js.map +1 -1
- package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +12 -18
- package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
- package/cjs/components/Accordion/ui/AccordionItem/{AccordionItem.styles_t0tdpe.css → AccordionItem.styles_aus2x3.css} +7 -8
- package/cjs/components/DatePicker/RangeDate/RangeDate.css +1 -1
- package/cjs/components/DatePicker/RangeDate/RangeDate.js +77 -15
- package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
- package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
- package/cjs/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
- package/cjs/components/DatePicker/RangeDate/variations/_size/base.js.map +1 -1
- package/cjs/components/DatePicker/RangeDate/variations/_size/base_1d0sbzw.css +1 -0
- package/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -8
- 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/cjs/index.css +12 -13
- package/emotion/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +4 -6
- package/emotion/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +16 -20
- package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +77 -15
- package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
- package/emotion/cjs/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
- package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -8
- 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/Accordion/Accordion.stories.tsx +1 -80
- package/emotion/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
- package/emotion/es/components/Accordion/ui/AccordionItem/AccordionItem.js +6 -8
- package/emotion/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +15 -19
- package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +79 -17
- package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
- package/emotion/es/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
- package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +34 -9
- 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/Accordion/Accordion.stories.tsx +1 -80
- package/emotion/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
- package/es/components/Accordion/ui/AccordionItem/AccordionItem.css +11 -12
- package/es/components/Accordion/ui/AccordionItem/AccordionItem.js +6 -8
- package/es/components/Accordion/ui/AccordionItem/AccordionItem.js.map +1 -1
- package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +13 -18
- package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
- package/es/components/Accordion/ui/AccordionItem/{AccordionItem.styles_t0tdpe.css → AccordionItem.styles_aus2x3.css} +7 -8
- package/es/components/DatePicker/RangeDate/RangeDate.css +1 -1
- package/es/components/DatePicker/RangeDate/RangeDate.js +79 -17
- package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
- package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
- package/es/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
- package/es/components/DatePicker/RangeDate/variations/_size/base.js.map +1 -1
- package/es/components/DatePicker/RangeDate/variations/_size/base_1d0sbzw.css +1 -0
- package/es/components/DatePicker/SingleDate/SingleDate.js +34 -9
- 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/es/index.css +12 -13
- package/package.json +2 -2
- package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +4 -6
- package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +8 -11
- package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +77 -15
- package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
- package/styled-components/cjs/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
- package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -8
- 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/Accordion/Accordion.stories.tsx +1 -80
- package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
- package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.js +6 -8
- package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +7 -10
- package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +79 -17
- package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
- package/styled-components/es/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
- package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +34 -9
- 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/Accordion/Accordion.stories.tsx +1 -80
- package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts +2 -16
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts.map +1 -1
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts +0 -1
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts.map +1 -1
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts +1 -5
- package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts.map +1 -1
- package/types/components/DatePicker/DatePickerBase.types.d.ts +8 -6
- package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts +10 -10
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +16 -6
- 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/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts +2 -1
- package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/variations/_size/base.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.d.ts +2 -2
- package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +14 -4
- 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/DatePicker/DatePicker.d.ts +6 -6
- package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +6 -6
- package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/cjs/components/DatePicker/RangeDate/variations/_size/base_1911nyw.css +0 -1
- package/es/components/DatePicker/RangeDate/variations/_size/base_1911nyw.css +0 -1
@@ -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
|
};
|
package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React
|
1
|
+
import React from 'react';
|
2
2
|
import type { ComponentProps, ReactNode } from 'react';
|
3
3
|
import type { StoryObj, Meta } from '@storybook/react';
|
4
4
|
import { disableProps } from '@salutejs/plasma-sb-utils';
|
@@ -7,8 +7,6 @@ import { mergeConfig } from '../../../../engines';
|
|
7
7
|
import { WithTheme, argTypesFromConfig } from '../../../_helpers';
|
8
8
|
import { accordionConfig } from '../../../../components/Accordion';
|
9
9
|
import { Pin } from '../../../../utils/roundness';
|
10
|
-
import { IconButton } from '../IconButton/IconButton';
|
11
|
-
import { IconPlus } from '../../../../components/_Icon';
|
12
10
|
|
13
11
|
import { config } from './Accordion.config';
|
14
12
|
import { Accordion, AccordionItem } from './Accordion';
|
@@ -93,80 +91,3 @@ export const Default: StoryObj<AccordionProps> = {
|
|
93
91
|
);
|
94
92
|
},
|
95
93
|
};
|
96
|
-
|
97
|
-
const getSizeForIcon = (size) => {
|
98
|
-
const map = {
|
99
|
-
mr: 's',
|
100
|
-
lr: 's',
|
101
|
-
m: 's',
|
102
|
-
l: 's',
|
103
|
-
sr: 's',
|
104
|
-
xsr: 'xs',
|
105
|
-
};
|
106
|
-
if (map[size]) {
|
107
|
-
return map[size];
|
108
|
-
}
|
109
|
-
|
110
|
-
return size;
|
111
|
-
};
|
112
|
-
|
113
|
-
const ControlledAccordion = (props: AccordionProps) => {
|
114
|
-
const args = { ...props, text: undefined };
|
115
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
116
|
-
const [activeFirst, setActiveFirst] = useState(false);
|
117
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
118
|
-
const [activeSecond, setActiveSecond] = useState(false);
|
119
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
120
|
-
const [activeThree, setActiveThree] = useState(false);
|
121
|
-
|
122
|
-
return (
|
123
|
-
<Accordion {...args}>
|
124
|
-
<AccordionItem
|
125
|
-
contentRight={
|
126
|
-
<IconButton view="secondary" size={args.size} onClick={() => setActiveFirst(!activeFirst)}>
|
127
|
-
<IconPlus size={getSizeForIcon(args.size)} />
|
128
|
-
</IconButton>
|
129
|
-
}
|
130
|
-
alignWithTitle={args.alignWithTitle}
|
131
|
-
type={args.type}
|
132
|
-
pin={args.pin}
|
133
|
-
title={args.title}
|
134
|
-
opened={activeFirst}
|
135
|
-
>
|
136
|
-
{args.body}
|
137
|
-
</AccordionItem>
|
138
|
-
<AccordionItem
|
139
|
-
contentRight={
|
140
|
-
<IconButton view="secondary" size={args.size} onClick={() => setActiveSecond(!activeSecond)}>
|
141
|
-
<IconPlus size={getSizeForIcon(args.size)} />
|
142
|
-
</IconButton>
|
143
|
-
}
|
144
|
-
alignWithTitle={args.alignWithTitle}
|
145
|
-
type={args.type}
|
146
|
-
pin={args.pin}
|
147
|
-
title={args.title}
|
148
|
-
opened={activeSecond}
|
149
|
-
>
|
150
|
-
{args.body}
|
151
|
-
</AccordionItem>
|
152
|
-
<AccordionItem
|
153
|
-
contentRight={
|
154
|
-
<IconButton view="secondary" size={args.size} onClick={() => setActiveThree(!activeThree)}>
|
155
|
-
<IconPlus size={getSizeForIcon(args.size)} />
|
156
|
-
</IconButton>
|
157
|
-
}
|
158
|
-
alignWithTitle={args.alignWithTitle}
|
159
|
-
type={args.type}
|
160
|
-
pin={args.pin}
|
161
|
-
title={args.title}
|
162
|
-
opened={activeThree}
|
163
|
-
>
|
164
|
-
{args.body}
|
165
|
-
</AccordionItem>
|
166
|
-
</Accordion>
|
167
|
-
);
|
168
|
-
};
|
169
|
-
|
170
|
-
export const Controlled: StoryObj<AccordionProps> = {
|
171
|
-
render: (props: AccordionProps) => ControlledAccordion(props),
|
172
|
-
};
|
package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React
|
1
|
+
import React from 'react';
|
2
2
|
import type { ComponentProps, ReactNode } from 'react';
|
3
3
|
import type { StoryObj, Meta } from '@storybook/react';
|
4
4
|
import { disableProps } from '@salutejs/plasma-sb-utils';
|
@@ -7,8 +7,6 @@ import { mergeConfig } from '../../../../engines';
|
|
7
7
|
import { WithTheme, argTypesFromConfig } from '../../../_helpers';
|
8
8
|
import { accordionConfig } from '../../../../components/Accordion';
|
9
9
|
import { Pin } from '../../../../utils/roundness';
|
10
|
-
import { IconButton } from '../IconButton/IconButton';
|
11
|
-
import { IconPlus } from '../../../../components/_Icon';
|
12
10
|
|
13
11
|
import { config } from './Accordion.config';
|
14
12
|
import { Accordion, AccordionItem } from './Accordion';
|
@@ -93,80 +91,3 @@ export const Default: StoryObj<AccordionProps> = {
|
|
93
91
|
);
|
94
92
|
},
|
95
93
|
};
|
96
|
-
|
97
|
-
const getSizeForIcon = (size) => {
|
98
|
-
const map = {
|
99
|
-
mr: 's',
|
100
|
-
lr: 's',
|
101
|
-
m: 's',
|
102
|
-
l: 's',
|
103
|
-
sr: 's',
|
104
|
-
xsr: 'xs',
|
105
|
-
};
|
106
|
-
if (map[size]) {
|
107
|
-
return map[size];
|
108
|
-
}
|
109
|
-
|
110
|
-
return size;
|
111
|
-
};
|
112
|
-
|
113
|
-
const ControlledAccordion = (props: AccordionProps) => {
|
114
|
-
const args = { ...props, text: undefined };
|
115
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
116
|
-
const [activeFirst, setActiveFirst] = useState(false);
|
117
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
118
|
-
const [activeSecond, setActiveSecond] = useState(false);
|
119
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
120
|
-
const [activeThree, setActiveThree] = useState(false);
|
121
|
-
|
122
|
-
return (
|
123
|
-
<Accordion {...args}>
|
124
|
-
<AccordionItem
|
125
|
-
contentRight={
|
126
|
-
<IconButton view="secondary" size={args.size} onClick={() => setActiveFirst(!activeFirst)}>
|
127
|
-
<IconPlus size={getSizeForIcon(args.size)} />
|
128
|
-
</IconButton>
|
129
|
-
}
|
130
|
-
alignWithTitle={args.alignWithTitle}
|
131
|
-
type={args.type}
|
132
|
-
pin={args.pin}
|
133
|
-
title={args.title}
|
134
|
-
opened={activeFirst}
|
135
|
-
>
|
136
|
-
{args.body}
|
137
|
-
</AccordionItem>
|
138
|
-
<AccordionItem
|
139
|
-
contentRight={
|
140
|
-
<IconButton view="secondary" size={args.size} onClick={() => setActiveSecond(!activeSecond)}>
|
141
|
-
<IconPlus size={getSizeForIcon(args.size)} />
|
142
|
-
</IconButton>
|
143
|
-
}
|
144
|
-
alignWithTitle={args.alignWithTitle}
|
145
|
-
type={args.type}
|
146
|
-
pin={args.pin}
|
147
|
-
title={args.title}
|
148
|
-
opened={activeSecond}
|
149
|
-
>
|
150
|
-
{args.body}
|
151
|
-
</AccordionItem>
|
152
|
-
<AccordionItem
|
153
|
-
contentRight={
|
154
|
-
<IconButton view="secondary" size={args.size} onClick={() => setActiveThree(!activeThree)}>
|
155
|
-
<IconPlus size={getSizeForIcon(args.size)} />
|
156
|
-
</IconButton>
|
157
|
-
}
|
158
|
-
alignWithTitle={args.alignWithTitle}
|
159
|
-
type={args.type}
|
160
|
-
pin={args.pin}
|
161
|
-
title={args.title}
|
162
|
-
opened={activeThree}
|
163
|
-
>
|
164
|
-
{args.body}
|
165
|
-
</AccordionItem>
|
166
|
-
</Accordion>
|
167
|
-
);
|
168
|
-
};
|
169
|
-
|
170
|
-
export const Controlled: StoryObj<AccordionProps> = {
|
171
|
-
render: (props: AccordionProps) => ControlledAccordion(props),
|
172
|
-
};
|
@@ -11,12 +11,12 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
11
11
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
12
12
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
13
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
14
|
-
import React, { useState, useRef,
|
14
|
+
import React, { useState, useRef, useEffect } from 'react';
|
15
15
|
import { convertRoundnessMatrix } from '../../../../utils/roundness';
|
16
16
|
import { classes, tokens } from '../../Accordion.tokens';
|
17
17
|
import { cx } from '../../../../utils';
|
18
|
-
import { StyledAccordionItem, StyledAccordionHeader, StyledAccordionBody, StyledAccordionTitle, StyledAccordionContentLeft, StyledAccordionHeaderLeft, StyledAccordionContentRight, StyledArrow, StyledMinus, StyledPlus, StyledAccordionBodyAnimate
|
19
|
-
export var AccordionItem =
|
18
|
+
import { StyledAccordionItem, StyledAccordionHeader, StyledAccordionBody, StyledAccordionTitle, StyledAccordionContentLeft, StyledAccordionHeaderLeft, StyledAccordionContentRight, StyledArrow, StyledMinus, StyledPlus, StyledAccordionBodyAnimate } from './AccordionItem.styles';
|
19
|
+
export var AccordionItem = function AccordionItem(_ref) {
|
20
20
|
var _ref2;
|
21
21
|
var value = _ref.value,
|
22
22
|
contentRight = _ref.contentRight,
|
@@ -34,7 +34,6 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
|
|
34
34
|
disabled = _ref.disabled,
|
35
35
|
_ref$alignWithTitle = _ref.alignWithTitle,
|
36
36
|
alignWithTitle = _ref$alignWithTitle === void 0 ? true : _ref$alignWithTitle,
|
37
|
-
opened = _ref.opened,
|
38
37
|
view = _ref.view,
|
39
38
|
onChange = _ref.onChange;
|
40
39
|
var key = (_ref2 = eventKey !== null && eventKey !== void 0 ? eventKey : index) !== null && _ref2 !== void 0 ? _ref2 : 0;
|
@@ -57,7 +56,7 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
|
|
57
56
|
var leftPaddingBody = leftContentWidth && (alignWithTitle || view === 'clear') ? "calc(".concat(leftContentWidth, "px + var(").concat(tokens.accordionItemGap, "))") : 0;
|
58
57
|
setLeftPadding(leftPaddingBody);
|
59
58
|
}, [value, type, leftContentRef, setLeftPadding]);
|
60
|
-
var openedBodyClass =
|
59
|
+
var openedBodyClass = value ? classes.accordionItemShowBody : undefined;
|
61
60
|
var StyledAnimationPLus = function StyledAnimationPLus() {
|
62
61
|
return /*#__PURE__*/React.createElement(StyledPlus, null, _StyledMinus || (_StyledMinus = /*#__PURE__*/React.createElement(StyledMinus, {
|
63
62
|
size: "xs",
|
@@ -80,7 +79,6 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
|
|
80
79
|
return /*#__PURE__*/React.createElement(StyledAccordionItem, {
|
81
80
|
className: cx(classes.accordionItem, className, disabledClass),
|
82
81
|
key: key,
|
83
|
-
ref: outerRef,
|
84
82
|
style: _objectSpread({
|
85
83
|
borderRadius: accordionBorderRadius
|
86
84
|
}, style)
|
@@ -94,7 +92,7 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
|
|
94
92
|
}, /*#__PURE__*/React.createElement(StyledAccordionHeaderLeft, null, leftContent && /*#__PURE__*/React.createElement(StyledAccordionContentLeft, {
|
95
93
|
ref: leftContentRef,
|
96
94
|
className: leftContentRotate
|
97
|
-
}, leftContent), /*#__PURE__*/React.createElement(StyledAccordionTitle, null, title)),
|
95
|
+
}, leftContent), /*#__PURE__*/React.createElement(StyledAccordionTitle, null, title)), /*#__PURE__*/React.createElement(StyledAccordionContentRight, {
|
98
96
|
className: rightContentRotate
|
99
97
|
}, rightContent && rightContent)), /*#__PURE__*/React.createElement(StyledAccordionBodyAnimate, {
|
100
98
|
"aria-labelledby": "accordion-item-".concat(key),
|
@@ -107,4 +105,4 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
|
|
107
105
|
}, /*#__PURE__*/React.createElement(StyledAccordionBody, {
|
108
106
|
className: classes.accordionItemBody
|
109
107
|
}, children)));
|
110
|
-
}
|
108
|
+
};
|
@@ -19,27 +19,24 @@ export var StyledAccordionHeaderLeft = /*#__PURE__*/styled.div.withConfig({
|
|
19
19
|
export var StyledAccordionContentRight = /*#__PURE__*/styled.div.withConfig({
|
20
20
|
componentId: "plasma-new-hope__sc-20ij9z-3"
|
21
21
|
})(["transition:0.2s;transform:rotate(90deg);&.", "{transition:0.2s;transform:rotate(0deg);}"], classes.accordionItemShowBody);
|
22
|
-
export var StyledAccordionContentRightDefault = /*#__PURE__*/styled.div.withConfig({
|
23
|
-
componentId: "plasma-new-hope__sc-20ij9z-4"
|
24
|
-
})(["margin-top:calc(0px - var(", "));margin-right:calc(0px - var(", "));margin-bottom:calc(0px - var(", "));"], tokens.accordionItemPaddingVertical, tokens.accordionItemPaddingHorizontalLeft, tokens.accordionItemPaddingVertical);
|
25
22
|
export var StyledAccordionContentLeft = /*#__PURE__*/styled.div.withConfig({
|
26
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
23
|
+
componentId: "plasma-new-hope__sc-20ij9z-4"
|
27
24
|
})(["transition:0.2s;display:flex;align-items:center;&.", "{transition:0.2s;transform:rotate(180deg);}"], classes.accordionItemShowBody);
|
28
25
|
export var StyledAccordionTitle = /*#__PURE__*/styled.div.withConfig({
|
29
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
26
|
+
componentId: "plasma-new-hope__sc-20ij9z-5"
|
30
27
|
})(["color:var(", ");font-family:var(", ");font-size:var(", ");font-weight:var(", ");font-style:var(", ");letter-spacing:var(", ");line-height:var(", ");text-align:left;"], tokens.accordionItemTitleColor, tokens.accordionItemTitleFontFamily, tokens.accordionItemTitleFontSize, tokens.accordionItemTitleFontWeight, tokens.accordionItemTitleFontStyle, tokens.accordionItemTitleLetterSpacing, tokens.accordionItemTitleLineHeight);
|
31
28
|
export var StyledAccordionBodyAnimate = /*#__PURE__*/styled.div.withConfig({
|
32
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
29
|
+
componentId: "plasma-new-hope__sc-20ij9z-6"
|
33
30
|
})(["display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out;overflow:hidden;&.", "{grid-template-rows:1fr;padding-bottom:var(", ");&.", "{transition:0.2s;transform:rotate(0deg);}}"], classes.accordionItemShowBody, tokens.accordionItemPaddingVertical, classes.accordionPlusAnimationElement);
|
34
31
|
export var StyledAccordionBody = /*#__PURE__*/styled.div.withConfig({
|
35
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
32
|
+
componentId: "plasma-new-hope__sc-20ij9z-7"
|
36
33
|
})(["color:var(", ");font-family:var(", ");font-size:var(", ");font-weight:var(", ");font-style:var(", ");letter-spacing:var(", ");line-height:var(", ");overflow:hidden;padding-right:var(", ");padding-left:var(", ");text-align:left;"], tokens.accordionItemTextColor, tokens.accordionItemTextFontFamily, tokens.accordionItemTextFontSize, tokens.accordionItemTextFontWeight, tokens.accordionItemTextFontStyle, tokens.accordionItemTextLetterSpacing, tokens.accordionItemTextLineHeight, tokens.accordionItemPaddingHorizontal, tokens.accordionItemPaddingHorizontalLeft);
|
37
34
|
export var StyledArrow = /*#__PURE__*/styled(IconChevronDownFill).withConfig({
|
38
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
35
|
+
componentId: "plasma-new-hope__sc-20ij9z-8"
|
39
36
|
})(["pointer-events:none;user-select:none;color:var(", ");"], tokens.accordionItemIconColor);
|
40
37
|
export var StyledMinus = /*#__PURE__*/styled(IconMinus).withConfig({
|
41
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
38
|
+
componentId: "plasma-new-hope__sc-20ij9z-9"
|
42
39
|
})(["pointer-events:none;user-select:none;color:var(", ");display:flex;align-items:center;position:absolute;top:0;left:0;&.", "{transition:0.2s;transform:rotate(90deg);}&.", "{transition:0.2s;transform:rotate(0deg);}"], tokens.accordionItemIconColor, classes.accordionPlusAnimationElement, classes.accordionItemShowBody);
|
43
40
|
export var StyledPlus = /*#__PURE__*/styled.div.withConfig({
|
44
|
-
componentId: "plasma-new-hope__sc-20ij9z-
|
41
|
+
componentId: "plasma-new-hope__sc-20ij9z-10"
|
45
42
|
})(["position:relative;height:1rem;display:flex;align-items:center;justify-content:center;width:1rem;"]);
|