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