@salutejs/plasma-new-hope 0.135.0-dev.0 → 0.136.0-dev.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 +19 -9
- package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/cjs/components/DatePicker/SingleDate/SingleDate.js +12 -5
- package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
- package/cjs/components/DatePicker/hooks/useDatePicker.js +9 -7
- package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
- package/cjs/components/DatePicker/utils/dateHelper.js +13 -13
- package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
- package/cjs/utils/datejs.js +2 -0
- package/cjs/utils/datejs.js.map +1 -1
- package/emotion/cjs/components/DatePicker/DatePicker.template-doc.mdx +32 -0
- package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +19 -9
- package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +12 -5
- package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +9 -7
- package/emotion/cjs/components/DatePicker/utils/dateHelper.js +13 -13
- package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +33 -0
- package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +34 -0
- package/emotion/cjs/utils/datejs.js +2 -0
- package/emotion/es/components/DatePicker/DatePicker.template-doc.mdx +32 -0
- package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +19 -9
- package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +12 -5
- package/emotion/es/components/DatePicker/hooks/useDatePicker.js +9 -7
- package/emotion/es/components/DatePicker/utils/dateHelper.js +13 -13
- package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +33 -0
- package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +34 -0
- package/emotion/es/utils/datejs.js +2 -0
- package/es/components/DatePicker/RangeDate/RangeDate.js +19 -9
- package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
- package/es/components/DatePicker/SingleDate/SingleDate.js +12 -5
- package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
- package/es/components/DatePicker/hooks/useDatePicker.js +9 -7
- package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
- package/es/components/DatePicker/utils/dateHelper.js +13 -13
- package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
- package/es/utils/datejs.js +2 -0
- package/es/utils/datejs.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/DatePicker/DatePicker.template-doc.mdx +32 -0
- package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +19 -9
- package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +12 -5
- package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +9 -7
- package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +13 -13
- package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +33 -0
- package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +34 -0
- package/styled-components/cjs/utils/datejs.js +2 -0
- package/styled-components/es/components/DatePicker/DatePicker.template-doc.mdx +32 -0
- package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +19 -9
- package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +12 -5
- package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +9 -7
- package/styled-components/es/components/DatePicker/utils/dateHelper.js +13 -13
- package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +33 -0
- package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +34 -0
- package/styled-components/es/utils/datejs.js +2 -0
- package/types/components/DatePicker/DatePickerBase.types.d.ts +6 -0
- package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
- package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
- package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
- package/types/components/DatePicker/hooks/useDatePicker.d.ts +1 -1
- package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
- package/types/components/DatePicker/utils/dateHelper.d.ts +4 -3
- package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
- package/types/utils/datejs.d.ts +2 -0
- package/types/utils/datejs.d.ts.map +1 -1
package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx
CHANGED
@@ -47,6 +47,12 @@ const meta: Meta = {
|
|
47
47
|
type: 'date',
|
48
48
|
},
|
49
49
|
},
|
50
|
+
lang: {
|
51
|
+
options: ['ru', 'en'],
|
52
|
+
control: {
|
53
|
+
type: 'inline-radio',
|
54
|
+
},
|
55
|
+
},
|
50
56
|
},
|
51
57
|
};
|
52
58
|
|
@@ -63,6 +69,8 @@ const StoryDefault = ({
|
|
63
69
|
valueError,
|
64
70
|
valueSuccess,
|
65
71
|
size,
|
72
|
+
lang,
|
73
|
+
format,
|
66
74
|
...rest
|
67
75
|
}: StoryPropsDefault) => {
|
68
76
|
const [isOpen, setIsOpen] = useState(false);
|
@@ -83,6 +91,8 @@ const StoryDefault = ({
|
|
83
91
|
onChangeValue={(e, currentValue) => {
|
84
92
|
onChangeValue(e, currentValue);
|
85
93
|
}}
|
94
|
+
lang={lang}
|
95
|
+
format={format}
|
86
96
|
onCommitDate={() => setIsOpen(false)}
|
87
97
|
{...rest}
|
88
98
|
/>
|
@@ -102,6 +112,12 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
102
112
|
type: 'inline-radio',
|
103
113
|
},
|
104
114
|
},
|
115
|
+
format: {
|
116
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
117
|
+
control: {
|
118
|
+
type: 'select',
|
119
|
+
},
|
120
|
+
},
|
105
121
|
},
|
106
122
|
args: {
|
107
123
|
label: 'Лейбл',
|
@@ -121,6 +137,8 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
121
137
|
enableContentRight: true,
|
122
138
|
valueError: false,
|
123
139
|
valueSuccess: false,
|
140
|
+
lang: 'ru',
|
141
|
+
format: 'DD.MM.YYYY',
|
124
142
|
},
|
125
143
|
render: (args) => <StoryDefault {...args} />,
|
126
144
|
};
|
@@ -230,6 +248,12 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
230
248
|
type: 'inline-radio',
|
231
249
|
},
|
232
250
|
},
|
251
|
+
format: {
|
252
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
253
|
+
control: {
|
254
|
+
type: 'select',
|
255
|
+
},
|
256
|
+
},
|
233
257
|
},
|
234
258
|
args: {
|
235
259
|
label: 'Лейбл',
|
@@ -256,6 +280,9 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
256
280
|
enableSecondTextfieldContentLeft: false,
|
257
281
|
enableSecondTextfieldContentRight: false,
|
258
282
|
|
283
|
+
lang: 'ru',
|
284
|
+
format: 'DD.MM.YYYY',
|
285
|
+
|
259
286
|
firstValueError: false,
|
260
287
|
firstValueSuccess: false,
|
261
288
|
secondValueError: false,
|
@@ -321,6 +348,12 @@ export const Deferred: StoryObj<StoryPropsDefault> = {
|
|
321
348
|
type: 'inline-radio',
|
322
349
|
},
|
323
350
|
},
|
351
|
+
format: {
|
352
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
353
|
+
control: {
|
354
|
+
type: 'select',
|
355
|
+
},
|
356
|
+
},
|
324
357
|
},
|
325
358
|
args: {
|
326
359
|
label: 'Лейбл',
|
package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx
CHANGED
@@ -47,6 +47,12 @@ const meta: Meta = {
|
|
47
47
|
type: 'date',
|
48
48
|
},
|
49
49
|
},
|
50
|
+
lang: {
|
51
|
+
options: ['ru', 'en'],
|
52
|
+
control: {
|
53
|
+
type: 'inline-radio',
|
54
|
+
},
|
55
|
+
},
|
50
56
|
},
|
51
57
|
};
|
52
58
|
|
@@ -63,6 +69,8 @@ const StoryDefault = ({
|
|
63
69
|
valueError,
|
64
70
|
valueSuccess,
|
65
71
|
size,
|
72
|
+
lang,
|
73
|
+
format,
|
66
74
|
...rest
|
67
75
|
}: StoryPropsDefault) => {
|
68
76
|
const [isOpen, setIsOpen] = useState(false);
|
@@ -83,6 +91,8 @@ const StoryDefault = ({
|
|
83
91
|
onChangeValue={(e, currentValue) => {
|
84
92
|
onChangeValue(e, currentValue);
|
85
93
|
}}
|
94
|
+
lang={lang}
|
95
|
+
format={format}
|
86
96
|
onCommitDate={() => setIsOpen(false)}
|
87
97
|
{...rest}
|
88
98
|
/>
|
@@ -102,6 +112,12 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
102
112
|
type: 'inline-radio',
|
103
113
|
},
|
104
114
|
},
|
115
|
+
format: {
|
116
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
117
|
+
control: {
|
118
|
+
type: 'select',
|
119
|
+
},
|
120
|
+
},
|
105
121
|
},
|
106
122
|
args: {
|
107
123
|
label: 'Лейбл',
|
@@ -109,6 +125,7 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
109
125
|
placeholder: '30.05.2024',
|
110
126
|
size: 'l',
|
111
127
|
view: 'default',
|
128
|
+
labelPlacement: 'outer',
|
112
129
|
defaultDate: new Date(2024, 5, 14),
|
113
130
|
min: new Date(2024, 1, 1),
|
114
131
|
max: new Date(2024, 12, 29),
|
@@ -120,6 +137,8 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
120
137
|
enableContentRight: true,
|
121
138
|
valueError: false,
|
122
139
|
valueSuccess: false,
|
140
|
+
lang: 'ru',
|
141
|
+
format: 'DD.MM.YYYY',
|
123
142
|
},
|
124
143
|
render: (args) => <StoryDefault {...args} />,
|
125
144
|
};
|
@@ -229,6 +248,12 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
229
248
|
type: 'inline-radio',
|
230
249
|
},
|
231
250
|
},
|
251
|
+
format: {
|
252
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
253
|
+
control: {
|
254
|
+
type: 'select',
|
255
|
+
},
|
256
|
+
},
|
232
257
|
},
|
233
258
|
args: {
|
234
259
|
label: 'Лейбл',
|
@@ -255,6 +280,9 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
255
280
|
enableSecondTextfieldContentLeft: false,
|
256
281
|
enableSecondTextfieldContentRight: false,
|
257
282
|
|
283
|
+
lang: 'ru',
|
284
|
+
format: 'DD.MM.YYYY',
|
285
|
+
|
258
286
|
firstValueError: false,
|
259
287
|
firstValueSuccess: false,
|
260
288
|
secondValueError: false,
|
@@ -320,6 +348,12 @@ export const Deferred: StoryObj<StoryPropsDefault> = {
|
|
320
348
|
type: 'inline-radio',
|
321
349
|
},
|
322
350
|
},
|
351
|
+
format: {
|
352
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
353
|
+
control: {
|
354
|
+
type: 'select',
|
355
|
+
},
|
356
|
+
},
|
323
357
|
},
|
324
358
|
args: {
|
325
359
|
label: 'Лейбл',
|
@@ -8,6 +8,8 @@ var _dayjs = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("dayjs"))
|
|
8
8
|
var _customParseFormat = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("dayjs/plugin/customParseFormat"));
|
9
9
|
var _quarterOfYear = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("dayjs/plugin/quarterOfYear"));
|
10
10
|
var _advancedFormat = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("dayjs/plugin/advancedFormat"));
|
11
|
+
require("dayjs/locale/ru");
|
12
|
+
require("dayjs/locale/en");
|
11
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
12
14
|
_dayjs["default"].extend(_customParseFormat["default"]);
|
13
15
|
_dayjs["default"].extend(_quarterOfYear["default"]);
|
@@ -70,6 +70,38 @@ export function App() {
|
|
70
70
|
}
|
71
71
|
```
|
72
72
|
|
73
|
+
### Язык даты
|
74
|
+
Язык даты задается с помощью свойства `lang`.
|
75
|
+
|
76
|
+
| Обозначение | Отображение | Описание |
|
77
|
+
|-------------|-------------|---------------------|
|
78
|
+
| ru | June | Английский Язык |
|
79
|
+
| en | июнь | Русский язык |
|
80
|
+
|
81
|
+
По умолчанию используется `ru`
|
82
|
+
|
83
|
+
```tsx live
|
84
|
+
import React from 'react';
|
85
|
+
import { DatePicker } from '@salutejs/{{ package }}';
|
86
|
+
import { IconDone } from '@salutejs/plasma-icons';
|
87
|
+
|
88
|
+
export function App() {
|
89
|
+
return (
|
90
|
+
<div style=\{{ height: "450px" }}>
|
91
|
+
<DatePicker
|
92
|
+
label="Лейбл"
|
93
|
+
leftHelper="Подсказка к полю"
|
94
|
+
placeholder="Введите дату"
|
95
|
+
format="DD MMMM YYYY"
|
96
|
+
lang="en"
|
97
|
+
maskWithFormat
|
98
|
+
contentRight={<IconDone size="s" />}
|
99
|
+
/>
|
100
|
+
</div>
|
101
|
+
);
|
102
|
+
}
|
103
|
+
```
|
104
|
+
|
73
105
|
### Валидация и индикация успешного ввода даты.
|
74
106
|
За индикацию ошибки или успешного ввода отвечают `valueError`, `valueSuccess`.
|
75
107
|
В данном примере валидация происходит при нажатии клавиши `Enter` после ввода значений:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
|
1
|
+
var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "dividerVariant", "dividerIcon", "defaultFirstDate", "defaultSecondDate", "firstValueError", "secondValueError", "firstValueSuccess", "secondValueSuccess", "firstPlaceholder", "secondPlaceholder", "firstTextfieldContentLeft", "firstTextfieldContentRight", "secondTextfieldContentLeft", "secondTextfieldContentRight", "firstTextfieldTextBefore", "secondTextfieldTextBefore", "firstTextfieldTextAfter", "secondTextfieldTextAfter", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
4
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
@@ -61,6 +61,8 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
61
61
|
secondTextfieldTextAfter = _ref.secondTextfieldTextAfter,
|
62
62
|
_ref$format = _ref.format,
|
63
63
|
format = _ref$format === void 0 ? 'DD.MM.YYYY' : _ref$format,
|
64
|
+
_ref$lang = _ref.lang,
|
65
|
+
lang = _ref$lang === void 0 ? 'ru' : _ref$lang,
|
64
66
|
maskWithFormat = _ref.maskWithFormat,
|
65
67
|
min = _ref.min,
|
66
68
|
max = _ref.max,
|
@@ -107,19 +109,19 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
107
109
|
_useState6 = _slicedToArray(_useState5, 2),
|
108
110
|
isInnerOpen = _useState6[0],
|
109
111
|
setIsInnerOpen = _useState6[1];
|
110
|
-
var _useState7 = useState(formatCalendarValue(defaultFirstDate, format)),
|
112
|
+
var _useState7 = useState(formatCalendarValue(defaultFirstDate, format, lang)),
|
111
113
|
_useState8 = _slicedToArray(_useState7, 2),
|
112
114
|
calendarFirstValue = _useState8[0],
|
113
115
|
setCalendarFirstValue = _useState8[1];
|
114
|
-
var _useState9 = useState(formatInputValue(defaultFirstDate, format)),
|
116
|
+
var _useState9 = useState(formatInputValue(defaultFirstDate, format, lang)),
|
115
117
|
_useState10 = _slicedToArray(_useState9, 2),
|
116
118
|
inputFirstValue = _useState10[0],
|
117
119
|
setInputFirstValue = _useState10[1];
|
118
|
-
var _useState11 = useState(formatCalendarValue(defaultSecondDate, format)),
|
120
|
+
var _useState11 = useState(formatCalendarValue(defaultSecondDate, format, lang)),
|
119
121
|
_useState12 = _slicedToArray(_useState11, 2),
|
120
122
|
calendarSecondValue = _useState12[0],
|
121
123
|
setCalendarSecondValue = _useState12[1];
|
122
|
-
var _useState13 = useState(formatInputValue(defaultSecondDate, format)),
|
124
|
+
var _useState13 = useState(formatInputValue(defaultSecondDate, format, lang)),
|
123
125
|
_useState14 = _slicedToArray(_useState13, 2),
|
124
126
|
inputSecondValue = _useState14[0],
|
125
127
|
setInputSecondValue = _useState14[1];
|
@@ -133,6 +135,7 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
133
135
|
setIsInnerOpen: setIsInnerOpen,
|
134
136
|
dateFormatDelimiter: dateFormatDelimiter,
|
135
137
|
format: format,
|
138
|
+
lang: lang,
|
136
139
|
disabled: disabled,
|
137
140
|
readOnly: readOnly,
|
138
141
|
maskWithFormat: maskWithFormat,
|
@@ -151,6 +154,7 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
151
154
|
setIsInnerOpen: setIsInnerOpen,
|
152
155
|
dateFormatDelimiter: dateFormatDelimiter,
|
153
156
|
format: format,
|
157
|
+
lang: lang,
|
154
158
|
disabled: disabled,
|
155
159
|
readOnly: readOnly,
|
156
160
|
maskWithFormat: maskWithFormat,
|
@@ -235,13 +239,19 @@ export var datePickerRangeRoot = function datePickerRangeRoot(Root) {
|
|
235
239
|
});
|
236
240
|
}, [opened]);
|
237
241
|
useEffect(function () {
|
238
|
-
setCalendarFirstValue(formatCalendarValue(defaultFirstDate, format));
|
239
|
-
setInputFirstValue(formatInputValue(defaultFirstDate, format));
|
242
|
+
setCalendarFirstValue(formatCalendarValue(defaultFirstDate, format, lang));
|
243
|
+
setInputFirstValue(formatInputValue(defaultFirstDate, format, lang));
|
240
244
|
}, [defaultFirstDate]);
|
241
245
|
useEffect(function () {
|
242
|
-
setCalendarSecondValue(formatCalendarValue(defaultSecondDate, format));
|
243
|
-
setInputSecondValue(formatInputValue(defaultSecondDate, format));
|
246
|
+
setCalendarSecondValue(formatCalendarValue(defaultSecondDate, format, lang));
|
247
|
+
setInputSecondValue(formatInputValue(defaultSecondDate, format, lang));
|
244
248
|
}, [defaultSecondDate]);
|
249
|
+
useEffect(function () {
|
250
|
+
setCalendarFirstValue(formatCalendarValue(defaultFirstDate, format, lang));
|
251
|
+
setInputFirstValue(formatInputValue(defaultFirstDate, format, lang));
|
252
|
+
setCalendarSecondValue(formatCalendarValue(defaultSecondDate, format, lang));
|
253
|
+
setInputSecondValue(formatInputValue(defaultSecondDate, format, lang));
|
254
|
+
}, [format, lang]);
|
245
255
|
return /*#__PURE__*/React.createElement(Root, _extends({
|
246
256
|
ref: rootRef,
|
247
257
|
view: view,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["className", "opened", "label", "labelPlacement", "placeholder", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "view", "size", "readOnly", "disabled", "defaultDate", "valueError", "valueSuccess", "format", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "offset", "onChangeValue", "onCommitDate", "onToggle", "onFocus", "onBlur"];
|
1
|
+
var _excluded = ["className", "opened", "label", "labelPlacement", "placeholder", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "view", "size", "readOnly", "disabled", "defaultDate", "valueError", "valueSuccess", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "placement", "closeOnOverlayClick", "offset", "onChangeValue", "onCommitDate", "onToggle", "onFocus", "onBlur"];
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
4
4
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
@@ -46,6 +46,8 @@ export var datePickerRoot = function datePickerRoot(Root) {
|
|
46
46
|
valueSuccess = _ref.valueSuccess,
|
47
47
|
_ref$format = _ref.format,
|
48
48
|
format = _ref$format === void 0 ? 'DD.MM.YYYY' : _ref$format,
|
49
|
+
_ref$lang = _ref.lang,
|
50
|
+
lang = _ref$lang === void 0 ? 'ru' : _ref$lang,
|
49
51
|
maskWithFormat = _ref.maskWithFormat,
|
50
52
|
min = _ref.min,
|
51
53
|
max = _ref.max,
|
@@ -77,11 +79,11 @@ export var datePickerRoot = function datePickerRoot(Root) {
|
|
77
79
|
_useState2 = _slicedToArray(_useState, 2),
|
78
80
|
isInnerOpen = _useState2[0],
|
79
81
|
setIsInnerOpen = _useState2[1];
|
80
|
-
var _useState3 = useState(formatCalendarValue(defaultDate, format)),
|
82
|
+
var _useState3 = useState(formatCalendarValue(defaultDate, format, lang)),
|
81
83
|
_useState4 = _slicedToArray(_useState3, 2),
|
82
84
|
calendarValue = _useState4[0],
|
83
85
|
setCalendarValue = _useState4[1];
|
84
|
-
var _useState5 = useState(formatInputValue(defaultDate, format)),
|
86
|
+
var _useState5 = useState(formatInputValue(defaultDate, format, lang)),
|
85
87
|
_useState6 = _slicedToArray(_useState5, 2),
|
86
88
|
inputValue = _useState6[0],
|
87
89
|
setInputValue = _useState6[1];
|
@@ -96,6 +98,7 @@ export var datePickerRoot = function datePickerRoot(Root) {
|
|
96
98
|
setIsInnerOpen: setIsInnerOpen,
|
97
99
|
dateFormatDelimiter: dateFormatDelimiter,
|
98
100
|
format: format,
|
101
|
+
lang: lang,
|
99
102
|
disabled: disabled,
|
100
103
|
readOnly: readOnly,
|
101
104
|
maskWithFormat: maskWithFormat,
|
@@ -145,9 +148,13 @@ export var datePickerRoot = function datePickerRoot(Root) {
|
|
145
148
|
});
|
146
149
|
}, [opened]);
|
147
150
|
useEffect(function () {
|
148
|
-
setCalendarValue(formatCalendarValue(defaultDate, format));
|
149
|
-
setInputValue(formatInputValue(defaultDate, format));
|
151
|
+
setCalendarValue(formatCalendarValue(defaultDate, format, lang));
|
152
|
+
setInputValue(formatInputValue(defaultDate, format, lang));
|
150
153
|
}, [defaultDate]);
|
154
|
+
useEffect(function () {
|
155
|
+
setCalendarValue(formatCalendarValue(defaultDate, format, lang));
|
156
|
+
setInputValue(formatInputValue(defaultDate, format, lang));
|
157
|
+
}, [format, lang]);
|
151
158
|
return /*#__PURE__*/React.createElement(Root, _extends({
|
152
159
|
view: view,
|
153
160
|
size: size,
|
@@ -7,6 +7,8 @@ export var useDatePicker = function useDatePicker(_ref) {
|
|
7
7
|
setIsInnerOpen = _ref.setIsInnerOpen,
|
8
8
|
dateFormatDelimiter = _ref.dateFormatDelimiter,
|
9
9
|
format = _ref.format,
|
10
|
+
_ref$lang = _ref.lang,
|
11
|
+
lang = _ref$lang === void 0 ? 'ru' : _ref$lang,
|
10
12
|
disabled = _ref.disabled,
|
11
13
|
readOnly = _ref.readOnly,
|
12
14
|
maskWithFormat = _ref.maskWithFormat,
|
@@ -37,9 +39,9 @@ export var useDatePicker = function useDatePicker(_ref) {
|
|
37
39
|
if (!format) {
|
38
40
|
setCalendarValue(formatCalendarValue(newValue));
|
39
41
|
} else if ((newValue === null || newValue === void 0 ? void 0 : newValue.length) === format.length) {
|
40
|
-
setCalendarValue(formatCalendarValue(newValue, format));
|
42
|
+
setCalendarValue(formatCalendarValue(newValue, format, lang));
|
41
43
|
}
|
42
|
-
setInputValue(formatInputValue(newValue, format));
|
44
|
+
setInputValue(formatInputValue(newValue, format, lang));
|
43
45
|
onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, newValue);
|
44
46
|
};
|
45
47
|
var handleCommitDate = function handleCommitDate(date, applyFormat, isCalendarValue, dateInfo) {
|
@@ -52,17 +54,17 @@ export var useDatePicker = function useDatePicker(_ref) {
|
|
52
54
|
return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
|
53
55
|
}
|
54
56
|
if (isCalendarValue) {
|
55
|
-
setCalendarValue(formatCalendarValue(date, format));
|
56
|
-
setInputValue(formatInputValue(date, format));
|
57
|
+
setCalendarValue(formatCalendarValue(date, format, lang));
|
58
|
+
setInputValue(formatInputValue(date, format, lang));
|
57
59
|
return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate(date, false, true, dateInfo);
|
58
60
|
}
|
59
61
|
var formatString = applyFormat ? format : undefined;
|
60
|
-
var _getDateFromFormat = getDateFromFormat(date, formatString),
|
62
|
+
var _getDateFromFormat = getDateFromFormat(date, formatString, lang),
|
61
63
|
newDate = _getDateFromFormat.value,
|
62
64
|
isError = _getDateFromFormat.isError,
|
63
65
|
isSuccess = _getDateFromFormat.isSuccess;
|
64
|
-
setCalendarValue(formatCalendarValue(newDate, format));
|
65
|
-
setInputValue(formatInputValue(newDate, format));
|
66
|
+
setCalendarValue(formatCalendarValue(newDate, format, lang));
|
67
|
+
setInputValue(formatInputValue(newDate, format, lang));
|
66
68
|
onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
|
67
69
|
};
|
68
70
|
return {
|
@@ -1,39 +1,39 @@
|
|
1
1
|
import { customDayjs } from '../../../utils/datejs';
|
2
|
-
export var formatInputValue = function formatInputValue(value, format) {
|
3
|
-
if (!value) {
|
2
|
+
export var formatInputValue = function formatInputValue(value, format, lang) {
|
3
|
+
if (!value || !lang) {
|
4
4
|
return '';
|
5
5
|
}
|
6
6
|
if (format && customDayjs(value, format, true).isValid()) {
|
7
|
-
return customDayjs(value, format).format(format);
|
7
|
+
return customDayjs(value, format).locale(lang).format(format);
|
8
8
|
}
|
9
9
|
if (format && String(value).length >= 10 && String(new Date(value)) !== 'Invalid Date') {
|
10
|
-
return customDayjs(value).format(format);
|
10
|
+
return customDayjs(value).locale(lang).format(format);
|
11
11
|
}
|
12
12
|
return String(value);
|
13
13
|
};
|
14
|
-
export var formatCalendarValue = function formatCalendarValue(value, format) {
|
15
|
-
if (!value) {
|
14
|
+
export var formatCalendarValue = function formatCalendarValue(value, format, lang) {
|
15
|
+
if (!value || !lang) {
|
16
16
|
return undefined;
|
17
17
|
}
|
18
18
|
if (format && customDayjs(value, format, true).isValid()) {
|
19
|
-
return customDayjs(value, format, true).toDate();
|
19
|
+
return customDayjs(value, format, true).locale(lang).toDate();
|
20
20
|
}
|
21
21
|
if (String(new Date(value)) !== 'Invalid Date') {
|
22
|
-
return customDayjs(value).toDate();
|
22
|
+
return customDayjs(value).locale(lang).toDate();
|
23
23
|
}
|
24
24
|
return undefined;
|
25
25
|
};
|
26
|
-
export var getDateFromFormat = function getDateFromFormat(value, format) {
|
27
|
-
if (format && customDayjs(value, format, true).isValid()) {
|
26
|
+
export var getDateFromFormat = function getDateFromFormat(value, format, lang) {
|
27
|
+
if (format && customDayjs(value, format, true).isValid() && lang) {
|
28
28
|
return {
|
29
|
-
value: customDayjs(value, format, true).toDate(),
|
29
|
+
value: customDayjs(value, format, true).locale(lang).toDate(),
|
30
30
|
isError: false,
|
31
31
|
isSuccess: true
|
32
32
|
};
|
33
33
|
}
|
34
|
-
if (!format && String(new Date(value)) !== 'Invalid Date') {
|
34
|
+
if (!format && String(new Date(value)) !== 'Invalid Date' && lang) {
|
35
35
|
return {
|
36
|
-
value: customDayjs(value).toDate(),
|
36
|
+
value: customDayjs(value).locale(lang).toDate(),
|
37
37
|
isError: false,
|
38
38
|
isSuccess: true
|
39
39
|
};
|
package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx
CHANGED
@@ -47,6 +47,12 @@ const meta: Meta = {
|
|
47
47
|
type: 'date',
|
48
48
|
},
|
49
49
|
},
|
50
|
+
lang: {
|
51
|
+
options: ['ru', 'en'],
|
52
|
+
control: {
|
53
|
+
type: 'inline-radio',
|
54
|
+
},
|
55
|
+
},
|
50
56
|
},
|
51
57
|
};
|
52
58
|
|
@@ -63,6 +69,8 @@ const StoryDefault = ({
|
|
63
69
|
valueError,
|
64
70
|
valueSuccess,
|
65
71
|
size,
|
72
|
+
lang,
|
73
|
+
format,
|
66
74
|
...rest
|
67
75
|
}: StoryPropsDefault) => {
|
68
76
|
const [isOpen, setIsOpen] = useState(false);
|
@@ -83,6 +91,8 @@ const StoryDefault = ({
|
|
83
91
|
onChangeValue={(e, currentValue) => {
|
84
92
|
onChangeValue(e, currentValue);
|
85
93
|
}}
|
94
|
+
lang={lang}
|
95
|
+
format={format}
|
86
96
|
onCommitDate={() => setIsOpen(false)}
|
87
97
|
{...rest}
|
88
98
|
/>
|
@@ -102,6 +112,12 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
102
112
|
type: 'inline-radio',
|
103
113
|
},
|
104
114
|
},
|
115
|
+
format: {
|
116
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
117
|
+
control: {
|
118
|
+
type: 'select',
|
119
|
+
},
|
120
|
+
},
|
105
121
|
},
|
106
122
|
args: {
|
107
123
|
label: 'Лейбл',
|
@@ -121,6 +137,8 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
121
137
|
enableContentRight: true,
|
122
138
|
valueError: false,
|
123
139
|
valueSuccess: false,
|
140
|
+
lang: 'ru',
|
141
|
+
format: 'DD.MM.YYYY',
|
124
142
|
},
|
125
143
|
render: (args) => <StoryDefault {...args} />,
|
126
144
|
};
|
@@ -230,6 +248,12 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
230
248
|
type: 'inline-radio',
|
231
249
|
},
|
232
250
|
},
|
251
|
+
format: {
|
252
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
253
|
+
control: {
|
254
|
+
type: 'select',
|
255
|
+
},
|
256
|
+
},
|
233
257
|
},
|
234
258
|
args: {
|
235
259
|
label: 'Лейбл',
|
@@ -256,6 +280,9 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
256
280
|
enableSecondTextfieldContentLeft: false,
|
257
281
|
enableSecondTextfieldContentRight: false,
|
258
282
|
|
283
|
+
lang: 'ru',
|
284
|
+
format: 'DD.MM.YYYY',
|
285
|
+
|
259
286
|
firstValueError: false,
|
260
287
|
firstValueSuccess: false,
|
261
288
|
secondValueError: false,
|
@@ -321,6 +348,12 @@ export const Deferred: StoryObj<StoryPropsDefault> = {
|
|
321
348
|
type: 'inline-radio',
|
322
349
|
},
|
323
350
|
},
|
351
|
+
format: {
|
352
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
353
|
+
control: {
|
354
|
+
type: 'select',
|
355
|
+
},
|
356
|
+
},
|
324
357
|
},
|
325
358
|
args: {
|
326
359
|
label: 'Лейбл',
|
package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx
CHANGED
@@ -47,6 +47,12 @@ const meta: Meta = {
|
|
47
47
|
type: 'date',
|
48
48
|
},
|
49
49
|
},
|
50
|
+
lang: {
|
51
|
+
options: ['ru', 'en'],
|
52
|
+
control: {
|
53
|
+
type: 'inline-radio',
|
54
|
+
},
|
55
|
+
},
|
50
56
|
},
|
51
57
|
};
|
52
58
|
|
@@ -63,6 +69,8 @@ const StoryDefault = ({
|
|
63
69
|
valueError,
|
64
70
|
valueSuccess,
|
65
71
|
size,
|
72
|
+
lang,
|
73
|
+
format,
|
66
74
|
...rest
|
67
75
|
}: StoryPropsDefault) => {
|
68
76
|
const [isOpen, setIsOpen] = useState(false);
|
@@ -83,6 +91,8 @@ const StoryDefault = ({
|
|
83
91
|
onChangeValue={(e, currentValue) => {
|
84
92
|
onChangeValue(e, currentValue);
|
85
93
|
}}
|
94
|
+
lang={lang}
|
95
|
+
format={format}
|
86
96
|
onCommitDate={() => setIsOpen(false)}
|
87
97
|
{...rest}
|
88
98
|
/>
|
@@ -102,6 +112,12 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
102
112
|
type: 'inline-radio',
|
103
113
|
},
|
104
114
|
},
|
115
|
+
format: {
|
116
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
117
|
+
control: {
|
118
|
+
type: 'select',
|
119
|
+
},
|
120
|
+
},
|
105
121
|
},
|
106
122
|
args: {
|
107
123
|
label: 'Лейбл',
|
@@ -109,6 +125,7 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
109
125
|
placeholder: '30.05.2024',
|
110
126
|
size: 'l',
|
111
127
|
view: 'default',
|
128
|
+
labelPlacement: 'outer',
|
112
129
|
defaultDate: new Date(2024, 5, 14),
|
113
130
|
min: new Date(2024, 1, 1),
|
114
131
|
max: new Date(2024, 12, 29),
|
@@ -120,6 +137,8 @@ export const Default: StoryObj<StoryPropsDefault> = {
|
|
120
137
|
enableContentRight: true,
|
121
138
|
valueError: false,
|
122
139
|
valueSuccess: false,
|
140
|
+
lang: 'ru',
|
141
|
+
format: 'DD.MM.YYYY',
|
123
142
|
},
|
124
143
|
render: (args) => <StoryDefault {...args} />,
|
125
144
|
};
|
@@ -229,6 +248,12 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
229
248
|
type: 'inline-radio',
|
230
249
|
},
|
231
250
|
},
|
251
|
+
format: {
|
252
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
253
|
+
control: {
|
254
|
+
type: 'select',
|
255
|
+
},
|
256
|
+
},
|
232
257
|
},
|
233
258
|
args: {
|
234
259
|
label: 'Лейбл',
|
@@ -255,6 +280,9 @@ export const Range: StoryObj<StoryPropsRange> = {
|
|
255
280
|
enableSecondTextfieldContentLeft: false,
|
256
281
|
enableSecondTextfieldContentRight: false,
|
257
282
|
|
283
|
+
lang: 'ru',
|
284
|
+
format: 'DD.MM.YYYY',
|
285
|
+
|
258
286
|
firstValueError: false,
|
259
287
|
firstValueSuccess: false,
|
260
288
|
secondValueError: false,
|
@@ -320,6 +348,12 @@ export const Deferred: StoryObj<StoryPropsDefault> = {
|
|
320
348
|
type: 'inline-radio',
|
321
349
|
},
|
322
350
|
},
|
351
|
+
format: {
|
352
|
+
options: ['DD.MM.YYYY', 'DD MMMM YYYY'],
|
353
|
+
control: {
|
354
|
+
type: 'select',
|
355
|
+
},
|
356
|
+
},
|
323
357
|
},
|
324
358
|
args: {
|
325
359
|
label: 'Лейбл',
|
@@ -2,6 +2,8 @@ import dayjs from 'dayjs';
|
|
2
2
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
3
3
|
import quarterOfYear from 'dayjs/plugin/quarterOfYear';
|
4
4
|
import advancedFormat from 'dayjs/plugin/advancedFormat';
|
5
|
+
import 'dayjs/locale/ru';
|
6
|
+
import 'dayjs/locale/en';
|
5
7
|
dayjs.extend(customParseFormat);
|
6
8
|
dayjs.extend(quarterOfYear);
|
7
9
|
dayjs.extend(advancedFormat);
|