@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
@@ -4,13 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
var DatePicker_tokens = require('../DatePicker.tokens.js');
|
6
6
|
var dateHelper = require('../utils/dateHelper.js');
|
7
|
-
var datejs = require('../../../utils/datejs.js');
|
8
7
|
|
9
8
|
var useDatePicker = function useDatePicker(_ref) {
|
10
9
|
var currentValue = _ref.currentValue,
|
11
10
|
setInputValue = _ref.setInputValue,
|
12
11
|
setCalendarValue = _ref.setCalendarValue,
|
13
|
-
setIsInnerOpen = _ref.setIsInnerOpen,
|
14
12
|
dateFormatDelimiter = _ref.dateFormatDelimiter,
|
15
13
|
format = _ref.format,
|
16
14
|
_ref$lang = _ref.lang,
|
@@ -20,24 +18,12 @@ var useDatePicker = function useDatePicker(_ref) {
|
|
20
18
|
maskWithFormat = _ref.maskWithFormat,
|
21
19
|
valueError = _ref.valueError,
|
22
20
|
valueSuccess = _ref.valueSuccess,
|
23
|
-
inputRef = _ref.inputRef,
|
24
21
|
name = _ref.name,
|
25
|
-
onToggle = _ref.onToggle,
|
26
22
|
onChangeValue = _ref.onChangeValue,
|
27
23
|
onCommitDate = _ref.onCommitDate,
|
28
24
|
onChange = _ref.onChange;
|
29
25
|
var datePickerErrorClass = valueError ? DatePicker_tokens.classes.datePickerError : undefined;
|
30
26
|
var datePickerSuccessClass = valueSuccess ? DatePicker_tokens.classes.datePickerSuccess : undefined;
|
31
|
-
var handleToggle = function handleToggle(opened, event) {
|
32
|
-
if (disabled || readOnly) {
|
33
|
-
return;
|
34
|
-
}
|
35
|
-
var isCalendarOpen = event.target === (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) ? true : opened;
|
36
|
-
if (onToggle) {
|
37
|
-
return onToggle(isCalendarOpen, event);
|
38
|
-
}
|
39
|
-
setIsInnerOpen(isCalendarOpen);
|
40
|
-
};
|
41
27
|
var handleChangeValue = function handleChangeValue(event) {
|
42
28
|
if (disabled || readOnly) {
|
43
29
|
return;
|
@@ -60,24 +46,14 @@ var useDatePicker = function useDatePicker(_ref) {
|
|
60
46
|
});
|
61
47
|
return;
|
62
48
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
var isLengthEqual;
|
72
|
-
if (hasMonthFullName) {
|
73
|
-
datejs.customDayjs.locale(lang);
|
74
|
-
var firstIndexOfMonth = format.indexOf('M');
|
75
|
-
var lastIndexOfMonth = newValue.indexOf(dateFormatDelimiter(), firstIndexOfMonth);
|
76
|
-
var fullMonthName = !lastIndexOfMonth ? newValue.slice(firstIndexOfMonth) : newValue.slice(firstIndexOfMonth, lastIndexOfMonth);
|
77
|
-
var monthFormatting = format.replace(/[^M]/g, '');
|
78
|
-
isValidMonth = datejs.customDayjs("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
|
79
|
-
isLengthEqual = format.length - monthFormatting.length === newValue.length - fullMonthName.length;
|
80
|
-
}
|
49
|
+
var _validateDateWithFull = dateHelper.validateDateWithFullMonth({
|
50
|
+
currentValue: newValue,
|
51
|
+
format: format,
|
52
|
+
lang: lang
|
53
|
+
}),
|
54
|
+
hasMonthFullName = _validateDateWithFull.hasMonthFullName,
|
55
|
+
isValidMonth = _validateDateWithFull.isValidMonth,
|
56
|
+
isLengthEqual = _validateDateWithFull.isLengthEqual;
|
81
57
|
if (!hasMonthFullName && (newValue === null || newValue === void 0 ? void 0 : newValue.length) === (format === null || format === void 0 ? void 0 : format.length) || isValidMonth && isLengthEqual) {
|
82
58
|
setCalendarValue(dateHelper.formatCalendarValue(newValue, format, lang));
|
83
59
|
}
|
@@ -107,20 +83,18 @@ var useDatePicker = function useDatePicker(_ref) {
|
|
107
83
|
return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
|
108
84
|
}
|
109
85
|
if (isCalendarValue) {
|
110
|
-
|
111
|
-
setInputValue(dateHelper.formatInputValue({
|
86
|
+
var _formattedInputValue = dateHelper.formatInputValue({
|
112
87
|
value: date,
|
113
88
|
format: format,
|
114
89
|
lang: lang
|
115
|
-
})
|
90
|
+
});
|
91
|
+
setCalendarValue(dateHelper.formatCalendarValue(date, format, lang));
|
92
|
+
setInputValue(_formattedInputValue);
|
116
93
|
onCommitDate === null || onCommitDate === void 0 || onCommitDate(date, false, true, dateInfo);
|
94
|
+
onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, _formattedInputValue);
|
117
95
|
onChange === null || onChange === void 0 || onChange({
|
118
96
|
target: {
|
119
|
-
value:
|
120
|
-
value: date,
|
121
|
-
format: format,
|
122
|
-
lang: lang
|
123
|
-
}),
|
97
|
+
value: _formattedInputValue,
|
124
98
|
name: name
|
125
99
|
}
|
126
100
|
});
|
@@ -131,19 +105,18 @@ var useDatePicker = function useDatePicker(_ref) {
|
|
131
105
|
newDate = _getDateFromFormat.value,
|
132
106
|
isError = _getDateFromFormat.isError,
|
133
107
|
isSuccess = _getDateFromFormat.isSuccess;
|
134
|
-
|
135
|
-
setInputValue(dateHelper.formatInputValue({
|
108
|
+
var formattedInputValue = dateHelper.formatInputValue({
|
136
109
|
value: newDate,
|
137
110
|
format: format,
|
138
111
|
lang: lang
|
139
|
-
})
|
112
|
+
});
|
113
|
+
setCalendarValue(dateHelper.formatCalendarValue(newDate, format, lang));
|
114
|
+
setInputValue(formattedInputValue);
|
140
115
|
onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
|
116
|
+
onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedInputValue);
|
141
117
|
onChange === null || onChange === void 0 || onChange({
|
142
118
|
target: {
|
143
|
-
value:
|
144
|
-
value: date,
|
145
|
-
format: format
|
146
|
-
}),
|
119
|
+
value: formattedInputValue,
|
147
120
|
name: name
|
148
121
|
}
|
149
122
|
});
|
@@ -151,7 +124,6 @@ var useDatePicker = function useDatePicker(_ref) {
|
|
151
124
|
return {
|
152
125
|
datePickerErrorClass: datePickerErrorClass,
|
153
126
|
datePickerSuccessClass: datePickerSuccessClass,
|
154
|
-
handleToggle: handleToggle,
|
155
127
|
handleChangeValue: handleChangeValue,
|
156
128
|
handleCommitDate: handleCommitDate
|
157
129
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDatePicker.js","sources":["../../../../src/components/DatePicker/hooks/useDatePicker.ts"],"sourcesContent":["import { ChangeEvent, SyntheticEvent } from 'react';\n\nimport { classes } from '../DatePicker.tokens';\nimport type { UseDatePickerProps } from '../DatePickerBase.types';\nimport { formatCalendarValue, formatInputValue, getDateFromFormat, getMaskedDateOnInput } from '../utils/dateHelper';\nimport type { DateInfo } from '../../Calendar/Calendar.types';\nimport { customDayjs } from '../../../utils/datejs';\n\nexport const useDatePicker = ({\n currentValue,\n setInputValue,\n setCalendarValue,\n setIsInnerOpen,\n dateFormatDelimiter,\n format,\n lang = 'ru',\n disabled,\n readOnly,\n maskWithFormat,\n valueError,\n valueSuccess,\n inputRef,\n name,\n onToggle,\n onChangeValue,\n onCommitDate,\n onChange,\n}: UseDatePickerProps) => {\n const datePickerErrorClass = valueError ? classes.datePickerError : undefined;\n const datePickerSuccessClass = valueSuccess ? classes.datePickerSuccess : undefined;\n\n const handleToggle = (opened: boolean, event: SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const isCalendarOpen = event.target === inputRef?.current ? true : opened;\n\n if (onToggle) {\n return onToggle(isCalendarOpen, event);\n }\n\n setIsInnerOpen(isCalendarOpen);\n };\n\n const handleChangeValue = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n return;\n }\n const { value } = event.target;\n\n const newValue = maskWithFormat\n ? getMaskedDateOnInput(value, format, dateFormatDelimiter(), currentValue)\n : value;\n\n if (!format) {\n setCalendarValue(formatCalendarValue(newValue));\n setInputValue(formatInputValue({ value: newValue, format, lang }));\n onChangeValue?.(event, newValue);\n onChange?.({ target: { value: newValue, name } });\n\n return;\n }\n\n /**\n * NOTE: если в формате даты есть месяц в полном названии или сокращенном,\n * нужно дополнительно проводить валидацию на полноту введенной даты.\n * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.\n */\n const hasMonthFullName = /M{3,4}/g.test(format);\n let isValidMonth;\n let isLengthEqual;\n\n if (hasMonthFullName) {\n customDayjs.locale(lang);\n\n const firstIndexOfMonth = format.indexOf('M');\n const lastIndexOfMonth = newValue.indexOf(dateFormatDelimiter(), firstIndexOfMonth);\n\n const fullMonthName = !lastIndexOfMonth\n ? newValue.slice(firstIndexOfMonth)\n : newValue.slice(firstIndexOfMonth, lastIndexOfMonth);\n\n const monthFormatting = format.replace(/[^M]/g, '');\n\n isValidMonth = customDayjs(`01 ${fullMonthName} 1970`, `DD ${monthFormatting} YYYY`, true).isValid();\n isLengthEqual = format.length - monthFormatting.length === newValue.length - fullMonthName.length;\n }\n\n if ((!hasMonthFullName && newValue?.length === format?.length) || (isValidMonth && isLengthEqual)) {\n setCalendarValue(formatCalendarValue(newValue, format, lang));\n }\n\n setInputValue(\n formatInputValue({ value: newValue, format, lang, hasMonthFullName, isValidMonth, isLengthEqual }),\n );\n\n onChangeValue?.(event, newValue);\n onChange?.({ target: { value: newValue, name } });\n };\n\n const handleCommitDate = (\n date?: Date | string,\n applyFormat?: boolean,\n isCalendarValue?: boolean,\n dateInfo?: DateInfo,\n ) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (!date) {\n setCalendarValue(undefined);\n setInputValue('');\n\n return onCommitDate?.('', false, true);\n }\n\n if (isCalendarValue) {\n setCalendarValue(formatCalendarValue(date, format, lang));\n setInputValue(formatInputValue({ value: date, format, lang }));\n onCommitDate?.(date, false, true, dateInfo);\n onChange?.({ target: { value: formatInputValue({ value: date, format, lang }), name } });\n\n return;\n }\n\n const formatString = applyFormat ? format : undefined;\n\n const { value: newDate, isError, isSuccess } = getDateFromFormat(date, formatString, lang);\n\n setCalendarValue(formatCalendarValue(newDate, format, lang));\n setInputValue(formatInputValue({ value: newDate, format, lang }));\n\n onCommitDate?.(newDate, isError, isSuccess);\n onChange?.({ target: { value: formatInputValue({ value: date, format }), name } });\n };\n\n return {\n datePickerErrorClass,\n datePickerSuccessClass,\n handleToggle,\n handleChangeValue,\n handleCommitDate,\n };\n};\n"],"names":["useDatePicker","_ref","currentValue","setInputValue","setCalendarValue","setIsInnerOpen","dateFormatDelimiter","format","_ref$lang","lang","disabled","readOnly","maskWithFormat","valueError","valueSuccess","inputRef","name","onToggle","onChangeValue","onCommitDate","onChange","datePickerErrorClass","classes","datePickerError","undefined","datePickerSuccessClass","datePickerSuccess","handleToggle","opened","event","isCalendarOpen","target","current","handleChangeValue","value","newValue","getMaskedDateOnInput","formatCalendarValue","formatInputValue","hasMonthFullName","test","isValidMonth","isLengthEqual","customDayjs","locale","firstIndexOfMonth","indexOf","lastIndexOfMonth","fullMonthName","slice","monthFormatting","replace","concat","isValid","length","handleCommitDate","date","applyFormat","isCalendarValue","dateInfo","formatString","_getDateFromFormat","getDateFromFormat","newDate","isError","isSuccess"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useDatePicker.js","sources":["../../../../src/components/DatePicker/hooks/useDatePicker.ts"],"sourcesContent":["import { ChangeEvent } from 'react';\n\nimport { classes } from '../DatePicker.tokens';\nimport type { UseDatePickerProps } from '../DatePickerBase.types';\nimport {\n formatCalendarValue,\n formatInputValue,\n getDateFromFormat,\n getMaskedDateOnInput,\n validateDateWithFullMonth,\n} from '../utils/dateHelper';\nimport type { DateInfo } from '../../Calendar/Calendar.types';\n\nexport const useDatePicker = ({\n currentValue,\n setInputValue,\n setCalendarValue,\n dateFormatDelimiter,\n format,\n lang = 'ru',\n disabled,\n readOnly,\n maskWithFormat,\n valueError,\n valueSuccess,\n name,\n onChangeValue,\n onCommitDate,\n onChange,\n}: UseDatePickerProps) => {\n const datePickerErrorClass = valueError ? classes.datePickerError : undefined;\n const datePickerSuccessClass = valueSuccess ? classes.datePickerSuccess : undefined;\n\n const handleChangeValue = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n return;\n }\n const { value } = event.target;\n\n const newValue = maskWithFormat\n ? getMaskedDateOnInput(value, format, dateFormatDelimiter(), currentValue)\n : value;\n\n if (!format) {\n setCalendarValue(formatCalendarValue(newValue));\n setInputValue(formatInputValue({ value: newValue, format, lang }));\n onChangeValue?.(event, newValue);\n onChange?.({ target: { value: newValue, name } });\n\n return;\n }\n\n const { hasMonthFullName, isValidMonth, isLengthEqual } = validateDateWithFullMonth({\n currentValue: newValue,\n format,\n lang,\n });\n\n if ((!hasMonthFullName && newValue?.length === format?.length) || (isValidMonth && isLengthEqual)) {\n setCalendarValue(formatCalendarValue(newValue, format, lang));\n }\n\n setInputValue(\n formatInputValue({ value: newValue, format, lang, hasMonthFullName, isValidMonth, isLengthEqual }),\n );\n\n onChangeValue?.(event, newValue);\n onChange?.({ target: { value: newValue, name } });\n };\n\n const handleCommitDate = (\n date?: Date | string,\n applyFormat?: boolean,\n isCalendarValue?: boolean,\n dateInfo?: DateInfo,\n ) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (!date) {\n setCalendarValue(undefined);\n setInputValue('');\n\n return onCommitDate?.('', false, true);\n }\n\n if (isCalendarValue) {\n const formattedInputValue = formatInputValue({ value: date, format, lang });\n\n setCalendarValue(formatCalendarValue(date, format, lang));\n setInputValue(formattedInputValue);\n\n onCommitDate?.(date, false, true, dateInfo);\n onChangeValue?.(null, formattedInputValue);\n onChange?.({ target: { value: formattedInputValue, name } });\n\n return;\n }\n\n const formatString = applyFormat ? format : undefined;\n\n const { value: newDate, isError, isSuccess } = getDateFromFormat(date, formatString, lang);\n const formattedInputValue = formatInputValue({ value: newDate, format, lang });\n\n setCalendarValue(formatCalendarValue(newDate, format, lang));\n setInputValue(formattedInputValue);\n\n onCommitDate?.(newDate, isError, isSuccess);\n onChangeValue?.(null, formattedInputValue);\n onChange?.({ target: { value: formattedInputValue, name } });\n };\n\n return {\n datePickerErrorClass,\n datePickerSuccessClass,\n handleChangeValue,\n handleCommitDate,\n };\n};\n"],"names":["useDatePicker","_ref","currentValue","setInputValue","setCalendarValue","dateFormatDelimiter","format","_ref$lang","lang","disabled","readOnly","maskWithFormat","valueError","valueSuccess","name","onChangeValue","onCommitDate","onChange","datePickerErrorClass","classes","datePickerError","undefined","datePickerSuccessClass","datePickerSuccess","handleChangeValue","event","value","target","newValue","getMaskedDateOnInput","formatCalendarValue","formatInputValue","_validateDateWithFull","validateDateWithFullMonth","hasMonthFullName","isValidMonth","isLengthEqual","length","handleCommitDate","date","applyFormat","isCalendarValue","dateInfo","formattedInputValue","formatString","_getDateFromFormat","getDateFromFormat","newDate","isError","isSuccess"],"mappings":"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"}
|
@@ -3,10 +3,12 @@
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
5
|
var keys = {
|
6
|
-
Space: 'Space'
|
6
|
+
Space: 'Space',
|
7
|
+
Escape: 'Escape'
|
7
8
|
};
|
8
9
|
var useKeyNavigation = function useKeyNavigation(_ref) {
|
9
10
|
var isCalendarOpen = _ref.isCalendarOpen,
|
11
|
+
closeOnEsc = _ref.closeOnEsc,
|
10
12
|
onToggle = _ref.onToggle;
|
11
13
|
var onKeyDown = function onKeyDown(event) {
|
12
14
|
switch (event.code) {
|
@@ -18,6 +20,14 @@ var useKeyNavigation = function useKeyNavigation(_ref) {
|
|
18
20
|
}
|
19
21
|
break;
|
20
22
|
}
|
23
|
+
case keys.Escape:
|
24
|
+
{
|
25
|
+
if (isCalendarOpen && closeOnEsc) {
|
26
|
+
event.preventDefault();
|
27
|
+
onToggle(false, event);
|
28
|
+
}
|
29
|
+
break;
|
30
|
+
}
|
21
31
|
}
|
22
32
|
};
|
23
33
|
return {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/DatePicker/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEvent, SyntheticEvent } from 'react';\n\ninterface Props {\n isCalendarOpen: boolean;\n onToggle: (isOpen: boolean, event: SyntheticEvent | Event) => void;\n}\n\nexport const keys = {\n Space: 'Space',\n};\n\nexport const useKeyNavigation = ({ isCalendarOpen, onToggle }: Props) => {\n const onKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case keys.Space: {\n if (!isCalendarOpen) {\n event.preventDefault();\n onToggle(true, event);\n }\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["keys","Space","useKeyNavigation","_ref","isCalendarOpen","onToggle","onKeyDown","event","code","preventDefault"],"mappings":";;;;
|
1
|
+
{"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/DatePicker/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEvent, SyntheticEvent } from 'react';\n\ninterface Props {\n isCalendarOpen: boolean;\n closeOnEsc: boolean;\n onToggle: (isOpen: boolean, event: SyntheticEvent | Event) => void;\n}\n\nexport const keys = {\n Space: 'Space',\n Escape: 'Escape',\n};\n\nexport const useKeyNavigation = ({ isCalendarOpen, closeOnEsc, onToggle }: Props) => {\n const onKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case keys.Space: {\n if (!isCalendarOpen) {\n event.preventDefault();\n onToggle(true, event);\n }\n break;\n }\n case keys.Escape: {\n if (isCalendarOpen && closeOnEsc) {\n event.preventDefault();\n onToggle(false, event);\n }\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["keys","Space","Escape","useKeyNavigation","_ref","isCalendarOpen","closeOnEsc","onToggle","onKeyDown","event","code","preventDefault"],"mappings":";;;;AAQO,IAAMA,IAAI,GAAG;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAA;AACZ,EAAC;IAEYC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAAwD;AAAA,EAAA,IAAlDC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ,CAAA;AACnE,EAAA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIC,KAAsE,EAAK;IAC1F,QAAQA,KAAK,CAACC,IAAI;MACd,KAAKV,IAAI,CAACC,KAAK;AAAE,QAAA;UACb,IAAI,CAACI,cAAc,EAAE;YACjBI,KAAK,CAACE,cAAc,EAAE,CAAA;AACtBJ,YAAAA,QAAQ,CAAC,IAAI,EAAEE,KAAK,CAAC,CAAA;AACzB,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;MACA,KAAKT,IAAI,CAACE,MAAM;AAAE,QAAA;UACd,IAAIG,cAAc,IAAIC,UAAU,EAAE;YAC9BG,KAAK,CAACE,cAAc,EAAE,CAAA;AACtBJ,YAAAA,QAAQ,CAAC,KAAK,EAAEE,KAAK,CAAC,CAAA;AAC1B,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;AAKJ,KAAA;GACH,CAAA;EAED,OAAO;AAAED,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACxB;;;;;"}
|
@@ -84,10 +84,41 @@ var getMaskedDateOnInput = function getMaskedDateOnInput(value, format, delimite
|
|
84
84
|
}
|
85
85
|
return value;
|
86
86
|
};
|
87
|
+
var validateDateWithFullMonth = function validateDateWithFullMonth(_ref2) {
|
88
|
+
var currentValue = _ref2.currentValue,
|
89
|
+
format = _ref2.format,
|
90
|
+
lang = _ref2.lang;
|
91
|
+
/**
|
92
|
+
* NOTE: если в формате даты есть месяц в полном названии или сокращенном,
|
93
|
+
* нужно дополнительно проводить валидацию на полноту введенной даты.
|
94
|
+
* Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
|
95
|
+
*/
|
96
|
+
var hasMonthFullName = /M{3,4}/g.test(format);
|
97
|
+
if (!hasMonthFullName) {
|
98
|
+
return {
|
99
|
+
hasMonthFullName: hasMonthFullName,
|
100
|
+
isValidMonth: false,
|
101
|
+
isLengthEqual: false
|
102
|
+
};
|
103
|
+
}
|
104
|
+
datejs.customDayjs.locale(lang);
|
105
|
+
var firstIndexOfMonth = format.indexOf('M');
|
106
|
+
var lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);
|
107
|
+
var fullMonthName = !lastIndexOfMonth ? currentValue.slice(firstIndexOfMonth) : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);
|
108
|
+
var monthFormatting = format.replace(/[^M]/g, '');
|
109
|
+
var isValidMonth = datejs.customDayjs("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
|
110
|
+
var isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;
|
111
|
+
return {
|
112
|
+
hasMonthFullName: hasMonthFullName,
|
113
|
+
isValidMonth: isValidMonth,
|
114
|
+
isLengthEqual: isLengthEqual
|
115
|
+
};
|
116
|
+
};
|
87
117
|
|
88
118
|
exports.formatCalendarValue = formatCalendarValue;
|
89
119
|
exports.formatInputValue = formatInputValue;
|
90
120
|
exports.getDateFormatDelimiter = getDateFormatDelimiter;
|
91
121
|
exports.getDateFromFormat = getDateFromFormat;
|
92
122
|
exports.getMaskedDateOnInput = getMaskedDateOnInput;
|
123
|
+
exports.validateDateWithFullMonth = validateDateWithFullMonth;
|
93
124
|
//# sourceMappingURL=dateHelper.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dateHelper.js","sources":["../../../../src/components/DatePicker/utils/dateHelper.ts"],"sourcesContent":["import { customDayjs } from '../../../utils/datejs';\n\nexport type Langs = 'ru' | 'en';\n\ntype FormatInputValueArgs = {\n value?: Date | string;\n format?: string;\n lang?: Langs;\n hasMonthFullName?: boolean;\n isValidMonth?: boolean;\n isLengthEqual?: boolean;\n};\n\nexport const formatInputValue = ({\n value,\n format,\n lang,\n hasMonthFullName,\n isValidMonth,\n isLengthEqual,\n}: FormatInputValueArgs) => {\n if (!value || !lang) {\n return '';\n }\n\n if (hasMonthFullName && (!isValidMonth || !isLengthEqual)) {\n return String(value);\n }\n\n if (format && customDayjs(value, format, true).isValid()) {\n return customDayjs(value, format).locale(lang).format(format);\n }\n\n if (format && String(value).length >= 10 && String(new Date(value)) !== 'Invalid Date') {\n return customDayjs(value).locale(lang).format(format);\n }\n\n return String(value);\n};\n\nexport const formatCalendarValue = (value?: Date | string, format?: string, lang?: Langs) => {\n if (!value || !lang) {\n return undefined;\n }\n\n if (format && customDayjs(value, format, true).isValid()) {\n return customDayjs(value, format, true).locale(lang).toDate();\n }\n\n if (String(new Date(value)) !== 'Invalid Date') {\n return customDayjs(value).locale(lang).toDate();\n }\n\n return undefined;\n};\n\nexport const getDateFromFormat = (value: Date | string, format?: string, lang?: Langs) => {\n if (format && customDayjs(value, format, true).isValid() && lang) {\n return { value: customDayjs(value, format, true).locale(lang).toDate(), isError: false, isSuccess: true };\n }\n\n if (!format && String(new Date(value)) !== 'Invalid Date' && lang) {\n return { value: customDayjs(value).locale(lang).toDate(), isError: false, isSuccess: true };\n }\n\n return { value, isError: true, isSuccess: false };\n};\n\nexport const getDateFormatDelimiter = (format?: string) => {\n if (!format) {\n return '';\n }\n\n const delimiter = format.match(/[^a-zA-Z0-9]/)?.[0];\n\n return delimiter ?? '';\n};\n\nexport const getMaskedDateOnInput = (value?: string, format?: string, delimiter?: string, prevValue?: string) => {\n if (!value) {\n return '';\n }\n\n if (!format || !delimiter || /M{3,4}/g.test(format)) {\n return value;\n }\n\n if (value.length >= format.length) {\n return value.slice(0, format.length);\n }\n\n if (prevValue && value.length < prevValue.length && prevValue?.[value.length] === delimiter) {\n return value.slice(0, -1);\n }\n\n if (format?.[value.length] === delimiter) {\n return value + delimiter;\n }\n\n return value;\n};\n"],"names":["formatInputValue","_ref","value","format","lang","hasMonthFullName","isValidMonth","isLengthEqual","String","customDayjs","isValid","locale","length","Date","formatCalendarValue","undefined","toDate","getDateFromFormat","isError","isSuccess","getDateFormatDelimiter","_format$match","delimiter","match","getMaskedDateOnInput","prevValue","test","slice"],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"dateHelper.js","sources":["../../../../src/components/DatePicker/utils/dateHelper.ts"],"sourcesContent":["import { customDayjs } from '../../../utils/datejs';\nimport { ValidateDateArgs } from '../DatePickerBase.types';\n\nexport type Langs = 'ru' | 'en';\n\ntype FormatInputValueArgs = {\n value?: Date | string;\n format?: string;\n lang?: Langs;\n hasMonthFullName?: boolean;\n isValidMonth?: boolean;\n isLengthEqual?: boolean;\n};\n\nexport const formatInputValue = ({\n value,\n format,\n lang,\n hasMonthFullName,\n isValidMonth,\n isLengthEqual,\n}: FormatInputValueArgs) => {\n if (!value || !lang) {\n return '';\n }\n\n if (hasMonthFullName && (!isValidMonth || !isLengthEqual)) {\n return String(value);\n }\n\n if (format && customDayjs(value, format, true).isValid()) {\n return customDayjs(value, format).locale(lang).format(format);\n }\n\n if (format && String(value).length >= 10 && String(new Date(value)) !== 'Invalid Date') {\n return customDayjs(value).locale(lang).format(format);\n }\n\n return String(value);\n};\n\nexport const formatCalendarValue = (value?: Date | string, format?: string, lang?: Langs) => {\n if (!value || !lang) {\n return undefined;\n }\n\n if (format && customDayjs(value, format, true).isValid()) {\n return customDayjs(value, format, true).locale(lang).toDate();\n }\n\n if (String(new Date(value)) !== 'Invalid Date') {\n return customDayjs(value).locale(lang).toDate();\n }\n\n return undefined;\n};\n\nexport const getDateFromFormat = (value: Date | string, format?: string, lang?: Langs) => {\n if (format && customDayjs(value, format, true).isValid() && lang) {\n return { value: customDayjs(value, format, true).locale(lang).toDate(), isError: false, isSuccess: true };\n }\n\n if (!format && String(new Date(value)) !== 'Invalid Date' && lang) {\n return { value: customDayjs(value).locale(lang).toDate(), isError: false, isSuccess: true };\n }\n\n return { value, isError: true, isSuccess: false };\n};\n\nexport const getDateFormatDelimiter = (format?: string) => {\n if (!format) {\n return '';\n }\n\n const delimiter = format.match(/[^a-zA-Z0-9]/)?.[0];\n\n return delimiter ?? '';\n};\n\nexport const getMaskedDateOnInput = (value?: string, format?: string, delimiter?: string, prevValue?: string) => {\n if (!value) {\n return '';\n }\n\n if (!format || !delimiter || /M{3,4}/g.test(format)) {\n return value;\n }\n\n if (value.length >= format.length) {\n return value.slice(0, format.length);\n }\n\n if (prevValue && value.length < prevValue.length && prevValue?.[value.length] === delimiter) {\n return value.slice(0, -1);\n }\n\n if (format?.[value.length] === delimiter) {\n return value + delimiter;\n }\n\n return value;\n};\n\nexport const validateDateWithFullMonth = ({ currentValue, format, lang }: ValidateDateArgs) => {\n /**\n * NOTE: если в формате даты есть месяц в полном названии или сокращенном,\n * нужно дополнительно проводить валидацию на полноту введенной даты.\n * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.\n */\n const hasMonthFullName = /M{3,4}/g.test(format);\n\n if (!hasMonthFullName) {\n return {\n hasMonthFullName,\n isValidMonth: false,\n isLengthEqual: false,\n };\n }\n\n customDayjs.locale(lang);\n\n const firstIndexOfMonth = format.indexOf('M');\n const lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);\n\n const fullMonthName = !lastIndexOfMonth\n ? currentValue.slice(firstIndexOfMonth)\n : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);\n\n const monthFormatting = format.replace(/[^M]/g, '');\n\n const isValidMonth = customDayjs(`01 ${fullMonthName} 1970`, `DD ${monthFormatting} YYYY`, true).isValid();\n const isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;\n\n return {\n hasMonthFullName,\n isValidMonth,\n isLengthEqual,\n };\n};\n"],"names":["formatInputValue","_ref","value","format","lang","hasMonthFullName","isValidMonth","isLengthEqual","String","customDayjs","isValid","locale","length","Date","formatCalendarValue","undefined","toDate","getDateFromFormat","isError","isSuccess","getDateFormatDelimiter","_format$match","delimiter","match","getMaskedDateOnInput","prevValue","test","slice","validateDateWithFullMonth","_ref2","currentValue","firstIndexOfMonth","indexOf","lastIndexOfMonth","fullMonthName","monthFormatting","replace","concat"],"mappings":"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"}
|
@@ -14,7 +14,7 @@ import { PropsTable, Description } from '@site/src/components';
|
|
14
14
|
### Размер badge
|
15
15
|
Размер задается с помощью свойства `size`.
|
16
16
|
|
17
|
-
Возможные значения свойства: `l`, `m`, `s
|
17
|
+
Возможные значения свойства: `"l"`, `"m"`, `"s"`.
|
18
18
|
|
19
19
|
```tsx live
|
20
20
|
import React from 'react';
|
@@ -26,7 +26,6 @@ export function App() {
|
|
26
26
|
<Badge text="Бейдж" size="l" />
|
27
27
|
<Badge text="Бейдж" size="m" />
|
28
28
|
<Badge text="Бейдж" size="s" />
|
29
|
-
<Badge text="Бейдж" size="xs" />
|
30
29
|
</div>
|
31
30
|
);
|
32
31
|
}
|
@@ -45,7 +44,6 @@ export function App() {
|
|
45
44
|
<Badge text="Бейдж" size="l" pilled />
|
46
45
|
<Badge text="Бейдж" size="m" pilled />
|
47
46
|
<Badge text="Бейдж" size="s" pilled />
|
48
|
-
<Badge text="Бейдж" size="xs" pilled />
|
49
47
|
</div>
|
50
48
|
);
|
51
49
|
}
|
@@ -12,13 +12,14 @@ var _useDatePicker3 = /*#__PURE__*/require("../hooks/useDatePicker");
|
|
12
12
|
var _DatePicker = /*#__PURE__*/require("../DatePicker.tokens");
|
13
13
|
var _useKeyboardNavigation = /*#__PURE__*/require("../hooks/useKeyboardNavigation");
|
14
14
|
var _DatePickerBase = /*#__PURE__*/require("../DatePickerBase.styles");
|
15
|
+
var _utils2 = /*#__PURE__*/require("../../Calendar/utils");
|
15
16
|
var _base = /*#__PURE__*/require("./variations/_size/base");
|
16
17
|
var _base2 = /*#__PURE__*/require("./variations/_view/base");
|
17
18
|
var _base3 = /*#__PURE__*/require("./variations/_disabled/base");
|
18
19
|
var _base4 = /*#__PURE__*/require("./variations/_readonly/base");
|
19
20
|
var _RangeDate = /*#__PURE__*/require("./RangeDate.styles");
|
20
21
|
var _RangeDatePopover = /*#__PURE__*/require("./RangeDatePopover/RangeDatePopover");
|
21
|
-
var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "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", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
|
22
|
+
var _excluded = ["className", "isDoubleCalendar", "opened", "label", "leftHelper", "contentLeft", "contentRight", "view", "size", "readOnly", "disabled", "name", "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", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onToggle", "onChange", "onChangeFirstValue", "onChangeSecondValue", "onCommitFirstDate", "onCommitSecondDate", "onFocusFirstTextfield", "onFocusSecondTextfield", "onBlurFirstTextfield", "onBlurSecondTextfield"];
|
22
23
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
23
24
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
24
25
|
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); }
|
@@ -89,6 +90,10 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
89
90
|
disabledYearList = _ref.disabledYearList,
|
90
91
|
_ref$type = _ref.type,
|
91
92
|
type = _ref$type === void 0 ? 'Days' : _ref$type,
|
93
|
+
_ref$frame = _ref.frame,
|
94
|
+
frame = _ref$frame === void 0 ? 'document' : _ref$frame,
|
95
|
+
_ref$usePortal = _ref.usePortal,
|
96
|
+
usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
|
92
97
|
_ref$placement = _ref.placement,
|
93
98
|
placement = _ref$placement === void 0 ? ['top', 'bottom'] : _ref$placement,
|
94
99
|
_ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
|
@@ -104,8 +109,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
104
109
|
onCommitSecondDate = _ref.onCommitSecondDate,
|
105
110
|
onFocusFirstTextfield = _ref.onFocusFirstTextfield,
|
106
111
|
onFocusSecondTextfield = _ref.onFocusSecondTextfield,
|
107
|
-
|
108
|
-
|
112
|
+
_onBlurFirstTextfield = _ref.onBlurFirstTextfield,
|
113
|
+
_onBlurSecondTextfield = _ref.onBlurSecondTextfield,
|
109
114
|
rest = _objectWithoutProperties(_ref, _excluded);
|
110
115
|
var rangeRef = ref && 'current' in ref ? ref : /*#__PURE__*/(0, _react.createRef)();
|
111
116
|
var rootRef = (0, _react.useRef)(null);
|
@@ -176,7 +181,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
176
181
|
currentValue: inputFirstValue,
|
177
182
|
setInputValue: setFirstInputValue,
|
178
183
|
setCalendarValue: setCalendarFirstValue,
|
179
|
-
setIsInnerOpen: setIsInnerOpen,
|
180
184
|
dateFormatDelimiter: dateFormatDelimiter,
|
181
185
|
format: format,
|
182
186
|
lang: lang,
|
@@ -185,7 +189,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
185
189
|
maskWithFormat: maskWithFormat,
|
186
190
|
valueError: firstValueError,
|
187
191
|
valueSuccess: firstValueSuccess,
|
188
|
-
inputRef: firstInputRef,
|
189
192
|
name: name,
|
190
193
|
onChangeValue: onChangeFirstValue,
|
191
194
|
onCommitDate: onCommitFirstDate
|
@@ -196,7 +199,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
196
199
|
currentValue: inputSecondValue,
|
197
200
|
setInputValue: setSecondInputValue,
|
198
201
|
setCalendarValue: setCalendarSecondValue,
|
199
|
-
setIsInnerOpen: setIsInnerOpen,
|
200
202
|
dateFormatDelimiter: dateFormatDelimiter,
|
201
203
|
format: format,
|
202
204
|
lang: lang,
|
@@ -205,7 +207,6 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
205
207
|
maskWithFormat: maskWithFormat,
|
206
208
|
valueError: secondValueError,
|
207
209
|
valueSuccess: secondValueSuccess,
|
208
|
-
inputRef: secondInputRef,
|
209
210
|
onChangeValue: onChangeSecondValue,
|
210
211
|
onCommitDate: onCommitSecondDate
|
211
212
|
}),
|
@@ -216,15 +217,59 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
216
217
|
if (disabled || readOnly) {
|
217
218
|
return;
|
218
219
|
}
|
219
|
-
var isCalendarOpen = firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null) ? true : opened;
|
220
|
+
var isCalendarOpen = (firstInputRef !== null && firstInputRef !== void 0 && (_firstInputRef$curren = firstInputRef.current) !== null && _firstInputRef$curren !== void 0 && _firstInputRef$curren.contains(event.target || null) || secondInputRef !== null && secondInputRef !== void 0 && (_secondInputRef$curre = secondInputRef.current) !== null && _secondInputRef$curre !== void 0 && _secondInputRef$curre.contains(event.target || null)) && event.code !== _useKeyboardNavigation.keys.Escape ? true : opened;
|
221
|
+
if (!isCalendarOpen) {
|
222
|
+
if (calendarFirstValue && !calendarSecondValue) {
|
223
|
+
var _secondInputRef$curre2;
|
224
|
+
secondInputRef === null || secondInputRef === void 0 || (_secondInputRef$curre2 = secondInputRef.current) === null || _secondInputRef$curre2 === void 0 || _secondInputRef$curre2.focus();
|
225
|
+
}
|
226
|
+
if (calendarSecondValue || !calendarFirstValue) {
|
227
|
+
var _firstInputRef$curren2;
|
228
|
+
firstInputRef === null || firstInputRef === void 0 || (_firstInputRef$curren2 = firstInputRef.current) === null || _firstInputRef$curren2 === void 0 || _firstInputRef$curren2.focus();
|
229
|
+
}
|
230
|
+
}
|
220
231
|
if (onToggle) {
|
221
232
|
return onToggle(isCalendarOpen, event);
|
222
233
|
}
|
223
234
|
setIsInnerOpen(isCalendarOpen);
|
224
235
|
};
|
236
|
+
var handleBlur = function handleBlur(event, outerHandler) {
|
237
|
+
if (!inputFirstValue || !inputSecondValue) {
|
238
|
+
outerHandler === null || outerHandler === void 0 || outerHandler(event);
|
239
|
+
return;
|
240
|
+
}
|
241
|
+
var _getDateFromFormat = (0, _dateHelper.getDateFromFormat)(inputFirstValue, format, lang),
|
242
|
+
firstDate = _getDateFromFormat.value,
|
243
|
+
firstIsSuccess = _getDateFromFormat.isSuccess;
|
244
|
+
var _getDateFromFormat2 = (0, _dateHelper.getDateFromFormat)(inputSecondValue, format, lang),
|
245
|
+
secondDate = _getDateFromFormat2.value,
|
246
|
+
secondIsSuccess = _getDateFromFormat2.isSuccess;
|
247
|
+
if (!firstIsSuccess || !secondIsSuccess) {
|
248
|
+
outerHandler === null || outerHandler === void 0 || outerHandler(event);
|
249
|
+
return;
|
250
|
+
}
|
251
|
+
var _getSortedValues = (0, _utils2.getSortedValues)([new Date(firstDate), new Date(secondDate)]),
|
252
|
+
_getSortedValues2 = _slicedToArray(_getSortedValues, 2),
|
253
|
+
startValue = _getSortedValues2[0],
|
254
|
+
endValue = _getSortedValues2[1];
|
255
|
+
setFirstInputValue((0, _dateHelper.formatInputValue)({
|
256
|
+
value: startValue,
|
257
|
+
format: format,
|
258
|
+
lang: lang
|
259
|
+
}));
|
260
|
+
setSecondInputValue((0, _dateHelper.formatInputValue)({
|
261
|
+
value: endValue,
|
262
|
+
format: format,
|
263
|
+
lang: lang
|
264
|
+
}));
|
265
|
+
setCalendarFirstValue((0, _dateHelper.formatCalendarValue)(startValue, format, lang));
|
266
|
+
setCalendarSecondValue((0, _dateHelper.formatCalendarValue)(endValue, format, lang));
|
267
|
+
outerHandler === null || outerHandler === void 0 || outerHandler(event);
|
268
|
+
};
|
225
269
|
var _useKeyNavigation = (0, _useKeyboardNavigation.useKeyNavigation)({
|
226
270
|
isCalendarOpen: isInnerOpen,
|
227
|
-
onToggle: handleToggle
|
271
|
+
onToggle: handleToggle,
|
272
|
+
closeOnEsc: closeOnEsc
|
228
273
|
}),
|
229
274
|
onKeyDown = _useKeyNavigation.onKeyDown;
|
230
275
|
var RangeComponent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledRange, {
|
@@ -270,8 +315,12 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
270
315
|
},
|
271
316
|
onFocusFirstTextfield: onFocusFirstTextfield,
|
272
317
|
onFocusSecondTextfield: onFocusSecondTextfield,
|
273
|
-
onBlurFirstTextfield: onBlurFirstTextfield
|
274
|
-
|
318
|
+
onBlurFirstTextfield: function onBlurFirstTextfield(event) {
|
319
|
+
return handleBlur(event, _onBlurFirstTextfield);
|
320
|
+
},
|
321
|
+
onBlurSecondTextfield: function onBlurSecondTextfield(event) {
|
322
|
+
return handleBlur(event, _onBlurSecondTextfield);
|
323
|
+
},
|
275
324
|
onKeyDown: onKeyDown
|
276
325
|
}));
|
277
326
|
(0, _react.useEffect)(function () {
|
@@ -336,6 +385,8 @@ var datePickerRangeRoot = exports.datePickerRangeRoot = function datePickerRange
|
|
336
385
|
disabledYearList: disabledYearList,
|
337
386
|
min: min,
|
338
387
|
max: max,
|
388
|
+
frame: frame,
|
389
|
+
usePortal: usePortal,
|
339
390
|
placement: placement,
|
340
391
|
closeOnOverlayClick: closeOnOverlayClick,
|
341
392
|
closeOnEsc: closeOnEsc,
|
@@ -26,6 +26,10 @@ var RangeDatePopover = exports.RangeDatePopover = function RangeDatePopover(_ref
|
|
26
26
|
disabledQuarterList = _ref.disabledQuarterList,
|
27
27
|
eventYearList = _ref.eventYearList,
|
28
28
|
disabledYearList = _ref.disabledYearList,
|
29
|
+
_ref$frame = _ref.frame,
|
30
|
+
frame = _ref$frame === void 0 ? 'document' : _ref$frame,
|
31
|
+
_ref$usePortal = _ref.usePortal,
|
32
|
+
usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
|
29
33
|
_ref$placement = _ref.placement,
|
30
34
|
placement = _ref$placement === void 0 ? ['top', 'bottom'] : _ref$placement,
|
31
35
|
_ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
|
@@ -43,7 +47,8 @@ var RangeDatePopover = exports.RangeDatePopover = function RangeDatePopover(_ref
|
|
43
47
|
if (isDoubleCalendar) {
|
44
48
|
return /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledPopover, {
|
45
49
|
opened: innerIsOpen,
|
46
|
-
|
50
|
+
frame: frame,
|
51
|
+
usePortal: usePortal,
|
47
52
|
onToggle: onToggle,
|
48
53
|
offset: offset,
|
49
54
|
placement: (0, _utils.getPlacements)(placement),
|
@@ -73,7 +78,8 @@ var RangeDatePopover = exports.RangeDatePopover = function RangeDatePopover(_ref
|
|
73
78
|
}
|
74
79
|
return /*#__PURE__*/_react["default"].createElement(_RangeDate.StyledPopover, {
|
75
80
|
opened: innerIsOpen,
|
76
|
-
|
81
|
+
frame: frame,
|
82
|
+
usePortal: usePortal,
|
77
83
|
onToggle: onToggle,
|
78
84
|
offset: offset,
|
79
85
|
placement: (0, _utils.getPlacements)(placement),
|
@@ -17,7 +17,7 @@ var _base2 = /*#__PURE__*/require("./variations/_view/base");
|
|
17
17
|
var _base3 = /*#__PURE__*/require("./variations/_disabled/base");
|
18
18
|
var _base4 = /*#__PURE__*/require("./variations/_readonly/base");
|
19
19
|
var _SingleDate = /*#__PURE__*/require("./SingleDate.styles");
|
20
|
-
var _excluded = ["className", "opened", "label", "labelPlacement", "placeholder", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "view", "size", "readOnly", "disabled", "name", "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", "onChange"];
|
20
|
+
var _excluded = ["className", "opened", "label", "labelPlacement", "placeholder", "leftHelper", "contentLeft", "contentRight", "textBefore", "textAfter", "view", "size", "readOnly", "disabled", "name", "defaultDate", "valueError", "valueSuccess", "format", "lang", "maskWithFormat", "min", "max", "includeEdgeDates", "eventList", "disabledList", "eventMonthList", "disabledMonthList", "eventQuarterList", "disabledQuarterList", "eventYearList", "disabledYearList", "type", "frame", "usePortal", "placement", "closeOnOverlayClick", "closeOnEsc", "offset", "onChangeValue", "onCommitDate", "onToggle", "onFocus", "onBlur", "onChange"];
|
21
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
22
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
23
23
|
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); }
|
@@ -73,10 +73,16 @@ var datePickerRoot = exports.datePickerRoot = function datePickerRoot(Root) {
|
|
73
73
|
disabledYearList = _ref.disabledYearList,
|
74
74
|
_ref$type = _ref.type,
|
75
75
|
type = _ref$type === void 0 ? 'Days' : _ref$type,
|
76
|
+
_ref$frame = _ref.frame,
|
77
|
+
frame = _ref$frame === void 0 ? 'document' : _ref$frame,
|
78
|
+
_ref$usePortal = _ref.usePortal,
|
79
|
+
usePortal = _ref$usePortal === void 0 ? false : _ref$usePortal,
|
76
80
|
_ref$placement = _ref.placement,
|
77
81
|
placement = _ref$placement === void 0 ? ['top', 'bottom'] : _ref$placement,
|
78
82
|
_ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
|
79
83
|
closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
|
84
|
+
_ref$closeOnEsc = _ref.closeOnEsc,
|
85
|
+
closeOnEsc = _ref$closeOnEsc === void 0 ? true : _ref$closeOnEsc,
|
80
86
|
offset = _ref.offset,
|
81
87
|
onChangeValue = _ref.onChangeValue,
|
82
88
|
onCommitDate = _ref.onCommitDate,
|
@@ -111,7 +117,6 @@ var datePickerRoot = exports.datePickerRoot = function datePickerRoot(Root) {
|
|
111
117
|
currentValue: inputValue,
|
112
118
|
setInputValue: setInputValue,
|
113
119
|
setCalendarValue: setCalendarValue,
|
114
|
-
setIsInnerOpen: setIsInnerOpen,
|
115
120
|
dateFormatDelimiter: dateFormatDelimiter,
|
116
121
|
format: format,
|
117
122
|
lang: lang,
|
@@ -120,21 +125,33 @@ var datePickerRoot = exports.datePickerRoot = function datePickerRoot(Root) {
|
|
120
125
|
maskWithFormat: maskWithFormat,
|
121
126
|
valueError: valueError,
|
122
127
|
valueSuccess: valueSuccess,
|
123
|
-
inputRef: inputRef,
|
124
128
|
name: name,
|
125
|
-
onToggle: onToggle,
|
126
129
|
onChangeValue: onChangeValue,
|
127
130
|
onCommitDate: onCommitDate,
|
128
131
|
onChange: onChange
|
129
132
|
}),
|
130
133
|
datePickerErrorClass = _useDatePicker.datePickerErrorClass,
|
131
134
|
datePickerSuccessClass = _useDatePicker.datePickerSuccessClass,
|
132
|
-
handleToggle = _useDatePicker.handleToggle,
|
133
135
|
handleChangeValue = _useDatePicker.handleChangeValue,
|
134
136
|
handleCommitDate = _useDatePicker.handleCommitDate;
|
137
|
+
var handleToggle = function handleToggle(opened, event) {
|
138
|
+
if (disabled || readOnly) {
|
139
|
+
return;
|
140
|
+
}
|
141
|
+
var isCalendarOpen = event.target === (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) && event.code !== _useKeyboardNavigation.keys.Escape ? true : opened;
|
142
|
+
if (!isCalendarOpen && inputValue) {
|
143
|
+
var _inputRef$current;
|
144
|
+
inputRef === null || inputRef === void 0 || (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
145
|
+
}
|
146
|
+
if (onToggle) {
|
147
|
+
return onToggle(isCalendarOpen, event);
|
148
|
+
}
|
149
|
+
setIsInnerOpen(isCalendarOpen);
|
150
|
+
};
|
135
151
|
var _useKeyNavigation = (0, _useKeyboardNavigation.useKeyNavigation)({
|
136
152
|
isCalendarOpen: isInnerOpen,
|
137
|
-
onToggle: handleToggle
|
153
|
+
onToggle: handleToggle,
|
154
|
+
closeOnEsc: closeOnEsc
|
138
155
|
}),
|
139
156
|
onKeyDown = _useKeyNavigation.onKeyDown;
|
140
157
|
var DatePickerInput = /*#__PURE__*/_react["default"].createElement(_SingleDate.StyledInput, _extends({
|
@@ -190,7 +207,8 @@ var datePickerRoot = exports.datePickerRoot = function datePickerRoot(Root) {
|
|
190
207
|
ref: ref
|
191
208
|
}, rest), !innerLabelPlacement && label && /*#__PURE__*/_react["default"].createElement(_SingleDate.StyledLabel, null, label), /*#__PURE__*/_react["default"].createElement(_SingleDate.StyledPopover, {
|
192
209
|
opened: isInnerOpen,
|
193
|
-
usePortal:
|
210
|
+
usePortal: usePortal,
|
211
|
+
frame: frame,
|
194
212
|
onToggle: handleToggle,
|
195
213
|
offset: offset,
|
196
214
|
placement: (0, _utils.getPlacements)(placement),
|