@salutejs/plasma-new-hope 0.322.0-canary.1939.14616445713.0 → 0.322.0-canary.1941.14637562685.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/cjs/components/Calendar/Calendar.types.js.map +1 -1
  2. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +6 -3
  3. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  4. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +6 -3
  5. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  6. package/cjs/components/Calendar/hoc/withRange.js.map +1 -1
  7. package/cjs/components/Calendar/store/reducer.js.map +1 -1
  8. package/cjs/components/Calendar/utils/calendarGridHelper.js.map +1 -1
  9. package/cjs/components/Calendar/utils/calendarRangeHelper.js.map +1 -1
  10. package/cjs/components/DatePicker/DatePicker.tokens.js +1 -2
  11. package/cjs/components/DatePicker/DatePicker.tokens.js.map +1 -1
  12. package/cjs/components/DatePicker/DatePickerBase.styles.js +1 -1
  13. package/cjs/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  14. package/cjs/components/DatePicker/DatePickerBase.styles_1jm7rc0.css +2 -0
  15. package/cjs/components/DatePicker/RangeDate/RangeDate.css +4 -4
  16. package/cjs/components/DatePicker/RangeDate/RangeDate.js +84 -160
  17. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  18. package/cjs/components/DatePicker/RangeDate/RangeDate.styles.js.map +1 -1
  19. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  20. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  21. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  22. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js.map +1 -1
  23. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_r5ataz.css +2 -0
  24. package/cjs/components/DatePicker/SingleDate/SingleDate.css +2 -2
  25. package/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -66
  26. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  27. package/cjs/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
  28. package/cjs/components/DatePicker/hooks/useDatePicker.js +76 -133
  29. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  30. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +0 -7
  31. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  32. package/cjs/components/DatePicker/utils/dateHelper.js +109 -0
  33. package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
  34. package/cjs/index.css +4 -4
  35. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +6 -3
  36. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +6 -3
  37. package/emotion/cjs/components/CodeField/CodeField.types.js +5 -0
  38. package/emotion/cjs/components/DatePicker/DatePicker.tokens.js +1 -2
  39. package/emotion/cjs/components/DatePicker/DatePickerBase.styles.js +4 -4
  40. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +84 -160
  41. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.styles.js +4 -4
  42. package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +3 -3
  43. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -66
  44. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.styles.js +4 -4
  45. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +76 -132
  46. package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +0 -7
  47. package/emotion/cjs/components/DatePicker/utils/dateHelper.js +104 -1
  48. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +7 -7
  49. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +19 -20
  50. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.config.js +7 -7
  51. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +12 -17
  52. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +6 -3
  53. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +6 -3
  54. package/emotion/es/components/CodeField/CodeField.types.js +1 -0
  55. package/emotion/es/components/DatePicker/DatePicker.tokens.js +1 -2
  56. package/emotion/es/components/DatePicker/DatePickerBase.styles.js +4 -4
  57. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +85 -161
  58. package/emotion/es/components/DatePicker/RangeDate/RangeDate.styles.js +4 -4
  59. package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +3 -3
  60. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +34 -67
  61. package/emotion/es/components/DatePicker/SingleDate/SingleDate.styles.js +4 -4
  62. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +75 -131
  63. package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +0 -7
  64. package/emotion/es/components/DatePicker/utils/dateHelper.js +103 -0
  65. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +7 -7
  66. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +19 -20
  67. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.config.js +7 -7
  68. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +12 -17
  69. package/es/components/Calendar/Calendar.types.js.map +1 -1
  70. package/es/components/Calendar/CalendarBase/CalendarBase.js +6 -3
  71. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  72. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +6 -3
  73. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  74. package/es/components/Calendar/hoc/withRange.js.map +1 -1
  75. package/es/components/Calendar/store/reducer.js.map +1 -1
  76. package/es/components/Calendar/utils/calendarGridHelper.js.map +1 -1
  77. package/es/components/Calendar/utils/calendarRangeHelper.js.map +1 -1
  78. package/es/components/DatePicker/DatePicker.tokens.js +1 -2
  79. package/es/components/DatePicker/DatePicker.tokens.js.map +1 -1
  80. package/es/components/DatePicker/DatePickerBase.styles.js +1 -1
  81. package/es/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  82. package/es/components/DatePicker/DatePickerBase.styles_1jm7rc0.css +2 -0
  83. package/es/components/DatePicker/RangeDate/RangeDate.css +4 -4
  84. package/es/components/DatePicker/RangeDate/RangeDate.js +86 -162
  85. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  86. package/es/components/DatePicker/RangeDate/RangeDate.styles.js.map +1 -1
  87. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  88. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  89. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  90. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js.map +1 -1
  91. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_r5ataz.css +2 -0
  92. package/es/components/DatePicker/SingleDate/SingleDate.css +2 -2
  93. package/es/components/DatePicker/SingleDate/SingleDate.js +35 -68
  94. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  95. package/es/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
  96. package/es/components/DatePicker/hooks/useDatePicker.js +75 -132
  97. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  98. package/es/components/DatePicker/hooks/useKeyboardNavigation.js +0 -7
  99. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  100. package/es/components/DatePicker/utils/dateHelper.js +105 -1
  101. package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
  102. package/es/index.css +4 -4
  103. package/package.json +4 -4
  104. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +6 -3
  105. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +6 -3
  106. package/styled-components/cjs/components/CodeField/CodeField.types.js +5 -0
  107. package/styled-components/cjs/components/DatePicker/DatePicker.tokens.js +1 -2
  108. package/styled-components/cjs/components/DatePicker/DatePickerBase.styles.js +2 -2
  109. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +84 -160
  110. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  111. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -66
  112. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +76 -132
  113. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +0 -7
  114. package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +104 -1
  115. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +1 -1
  116. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +19 -20
  117. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.config.js +1 -1
  118. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +12 -17
  119. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +6 -3
  120. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +6 -3
  121. package/styled-components/es/components/CodeField/CodeField.types.js +1 -0
  122. package/styled-components/es/components/DatePicker/DatePicker.tokens.js +1 -2
  123. package/styled-components/es/components/DatePicker/DatePickerBase.styles.js +2 -2
  124. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +85 -161
  125. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  126. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +34 -67
  127. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +75 -131
  128. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +0 -7
  129. package/styled-components/es/components/DatePicker/utils/dateHelper.js +103 -0
  130. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +1 -1
  131. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +19 -20
  132. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.config.js +1 -1
  133. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +12 -17
  134. package/types/components/Calendar/Calendar.types.d.ts +3 -4
  135. package/types/components/Calendar/Calendar.types.d.ts.map +1 -1
  136. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  137. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  138. package/types/components/Calendar/hoc/withRange.d.ts.map +1 -1
  139. package/types/components/Calendar/store/reducer.d.ts +1 -2
  140. package/types/components/Calendar/store/reducer.d.ts.map +1 -1
  141. package/types/components/Calendar/utils/calendarGridHelper.d.ts +4 -4
  142. package/types/components/Calendar/utils/calendarGridHelper.d.ts.map +1 -1
  143. package/types/components/Calendar/utils/calendarRangeHelper.d.ts +4 -4
  144. package/types/components/Calendar/utils/calendarRangeHelper.d.ts.map +1 -1
  145. package/types/components/CodeField/CodeField.types.d.ts +56 -0
  146. package/types/components/CodeField/CodeField.types.d.ts.map +1 -0
  147. package/types/components/DatePicker/DatePicker.tokens.d.ts +0 -1
  148. package/types/components/DatePicker/DatePicker.tokens.d.ts.map +1 -1
  149. package/types/components/DatePicker/DatePickerBase.styles.d.ts.map +1 -1
  150. package/types/components/DatePicker/DatePickerBase.types.d.ts +6 -16
  151. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  152. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +2 -3
  153. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  154. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +2 -2
  155. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  156. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.d.ts +1 -1
  157. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.d.ts.map +1 -1
  158. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts +3 -3
  159. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts.map +1 -1
  160. package/types/components/DatePicker/SingleDate/SingleDate.d.ts +6 -10
  161. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  162. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +6 -8
  163. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  164. package/types/components/DatePicker/hooks/useDatePicker.d.ts +4 -5
  165. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  166. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts +1 -4
  167. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
  168. package/types/components/DatePicker/utils/dateHelper.d.ts +27 -0
  169. package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
  170. package/cjs/components/DatePicker/DatePickerBase.styles_1a5ddg3.css +0 -2
  171. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1fhuiqs.css +0 -2
  172. package/cjs/components/DatePicker/utils/getFormattedDates.js +0 -45
  173. package/cjs/components/DatePicker/utils/getFormattedDates.js.map +0 -1
  174. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +0 -27
  175. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js.map +0 -1
  176. package/cjs/components/DatePicker/utils/getOriginalDates.js +0 -49
  177. package/cjs/components/DatePicker/utils/getOriginalDates.js.map +0 -1
  178. package/cjs/components/DatePicker/utils/normalizeDates.js +0 -33
  179. package/cjs/components/DatePicker/utils/normalizeDates.js.map +0 -1
  180. package/emotion/cjs/components/DatePicker/utils/getFormattedDates.js +0 -43
  181. package/emotion/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +0 -26
  182. package/emotion/cjs/components/DatePicker/utils/getOriginalDates.js +0 -47
  183. package/emotion/cjs/components/DatePicker/utils/index.js +0 -33
  184. package/emotion/cjs/components/DatePicker/utils/normalizeDates.js +0 -31
  185. package/emotion/es/components/DatePicker/utils/getFormattedDates.js +0 -37
  186. package/emotion/es/components/DatePicker/utils/getMaskedDateOnInput.js +0 -20
  187. package/emotion/es/components/DatePicker/utils/getOriginalDates.js +0 -41
  188. package/emotion/es/components/DatePicker/utils/index.js +0 -4
  189. package/emotion/es/components/DatePicker/utils/normalizeDates.js +0 -25
  190. package/es/components/DatePicker/DatePickerBase.styles_1a5ddg3.css +0 -2
  191. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1fhuiqs.css +0 -2
  192. package/es/components/DatePicker/utils/getFormattedDates.js +0 -41
  193. package/es/components/DatePicker/utils/getFormattedDates.js.map +0 -1
  194. package/es/components/DatePicker/utils/getMaskedDateOnInput.js +0 -23
  195. package/es/components/DatePicker/utils/getMaskedDateOnInput.js.map +0 -1
  196. package/es/components/DatePicker/utils/getOriginalDates.js +0 -45
  197. package/es/components/DatePicker/utils/getOriginalDates.js.map +0 -1
  198. package/es/components/DatePicker/utils/normalizeDates.js +0 -29
  199. package/es/components/DatePicker/utils/normalizeDates.js.map +0 -1
  200. package/styled-components/cjs/components/DatePicker/utils/getFormattedDates.js +0 -43
  201. package/styled-components/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +0 -26
  202. package/styled-components/cjs/components/DatePicker/utils/getOriginalDates.js +0 -47
  203. package/styled-components/cjs/components/DatePicker/utils/index.js +0 -33
  204. package/styled-components/cjs/components/DatePicker/utils/normalizeDates.js +0 -31
  205. package/styled-components/es/components/DatePicker/utils/getFormattedDates.js +0 -37
  206. package/styled-components/es/components/DatePicker/utils/getMaskedDateOnInput.js +0 -20
  207. package/styled-components/es/components/DatePicker/utils/getOriginalDates.js +0 -41
  208. package/styled-components/es/components/DatePicker/utils/index.js +0 -4
  209. package/styled-components/es/components/DatePicker/utils/normalizeDates.js +0 -25
  210. package/types/components/DatePicker/utils/getFormattedDates.d.ts +0 -21
  211. package/types/components/DatePicker/utils/getFormattedDates.d.ts.map +0 -1
  212. package/types/components/DatePicker/utils/getMaskedDateOnInput.d.ts +0 -2
  213. package/types/components/DatePicker/utils/getMaskedDateOnInput.d.ts.map +0 -1
  214. package/types/components/DatePicker/utils/getOriginalDates.d.ts +0 -10
  215. package/types/components/DatePicker/utils/getOriginalDates.d.ts.map +0 -1
  216. package/types/components/DatePicker/utils/index.d.ts +0 -5
  217. package/types/components/DatePicker/utils/index.d.ts.map +0 -1
  218. package/types/components/DatePicker/utils/normalizeDates.d.ts +0 -15
  219. package/types/components/DatePicker/utils/normalizeDates.d.ts.map +0 -1
@@ -4,206 +4,150 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useDatePicker = void 0;
7
- var _datejs = /*#__PURE__*/require("../../../utils/datejs");
8
- var _utils = /*#__PURE__*/require("../../Calendar/utils");
9
7
  var _DatePicker = /*#__PURE__*/require("../DatePicker.tokens");
10
- var _utils2 = /*#__PURE__*/require("../utils");
8
+ var _dateHelper = /*#__PURE__*/require("../utils/dateHelper");
11
9
  var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
12
10
  var currentValue = _ref.currentValue,
11
+ setInputValue = _ref.setInputValue,
12
+ setCalendarValue = _ref.setCalendarValue,
13
+ dateFormatDelimiter = _ref.dateFormatDelimiter,
13
14
  format = _ref.format,
14
15
  _ref$lang = _ref.lang,
15
16
  lang = _ref$lang === void 0 ? 'ru' : _ref$lang,
16
17
  disabled = _ref.disabled,
17
18
  readOnly = _ref.readOnly,
19
+ maskWithFormat = _ref.maskWithFormat,
18
20
  valueError = _ref.valueError,
19
21
  valueSuccess = _ref.valueSuccess,
20
22
  name = _ref.name,
21
- type = _ref.type,
22
- min = _ref.min,
23
- max = _ref.max,
24
- includeEdgeDates = _ref.includeEdgeDates,
25
- maskWithFormat = _ref.maskWithFormat,
26
- setCorrectDates = _ref.setCorrectDates,
27
- setInputValue = _ref.setInputValue,
28
- setCalendarValue = _ref.setCalendarValue,
29
- dateFormatDelimiter = _ref.dateFormatDelimiter,
30
23
  onChangeValue = _ref.onChangeValue,
31
24
  onCommitDate = _ref.onCommitDate,
32
25
  onChange = _ref.onChange;
33
26
  var datePickerErrorClass = valueError ? _DatePicker.classes.datePickerError : undefined;
34
27
  var datePickerSuccessClass = valueSuccess ? _DatePicker.classes.datePickerSuccess : undefined;
35
- var getQuarterInfo = function getQuarterInfo(originalDate) {
36
- if (type !== 'Quarters') {
37
- return;
38
- }
39
- var endQuarter = new Date(originalDate);
40
- endQuarter.setMonth(originalDate.getMonth() + 3);
41
- endQuarter.setDate(0);
42
- _datejs.customDayjs.locale(lang);
43
- var quarterIndex = (0, _datejs.customDayjs)(originalDate).quarter() - 1;
44
- return {
45
- name: _utils.QUARTER_NAMES[quarterIndex],
46
- fullValue: [originalDate, endQuarter]
47
- };
48
- };
49
28
  var handleChangeValue = function handleChangeValue(event) {
50
29
  if (disabled || readOnly) {
51
30
  return;
52
31
  }
53
32
  var value = event.target.value;
54
- var newValue = maskWithFormat ? (0, _utils2.getMaskedDateOnInput)(value, format, dateFormatDelimiter(), currentValue) : value;
55
- var _getFormattedDates = (0, _utils2.getFormattedDates)({
33
+ var newValue = maskWithFormat ? (0, _dateHelper.getMaskedDateOnInput)(value, format, dateFormatDelimiter(), currentValue) : value;
34
+ if (!format) {
35
+ setCalendarValue((0, _dateHelper.formatCalendarValue)(newValue));
36
+ setInputValue((0, _dateHelper.formatInputValue)({
56
37
  value: newValue,
57
- lang: lang,
58
- delimiter: dateFormatDelimiter(),
59
38
  format: format,
60
- includeEdgeDates: includeEdgeDates,
61
- min: min,
62
- max: max
63
- }),
64
- formattedDate = _getFormattedDates.formattedDate,
65
- isoDate = _getFormattedDates.isoDate,
66
- originalDate = _getFormattedDates.originalDate;
67
- if (originalDate) {
68
- setCorrectDates({
69
- calendar: originalDate,
70
- input: formattedDate
71
- });
72
- var dateInfo = getQuarterInfo(originalDate);
73
- onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, originalDate, isoDate);
74
- setCalendarValue(originalDate);
75
- setInputValue(formattedDate);
76
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, formattedDate, originalDate, isoDate);
39
+ lang: lang
40
+ }));
41
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, newValue);
77
42
  onChange === null || onChange === void 0 || onChange({
78
43
  target: {
79
- value: formattedDate,
80
- originalDate: originalDate,
81
- isoDate: isoDate,
44
+ value: newValue,
82
45
  name: name
83
46
  }
84
47
  });
85
48
  return;
86
49
  }
87
- if (formattedDate === '') {
88
- setCorrectDates({
89
- calendar: undefined,
90
- input: ''
91
- });
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;
58
+ if (!hasMonthFullName && (newValue === null || newValue === void 0 ? void 0 : newValue.length) === (format === null || format === void 0 ? void 0 : format.length) || isValidMonth && isLengthEqual) {
59
+ setCalendarValue((0, _dateHelper.formatCalendarValue)(newValue, format, lang));
92
60
  }
93
- setCalendarValue(originalDate);
94
- setInputValue(formattedDate);
95
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, formattedDate, originalDate, isoDate);
61
+ setInputValue((0, _dateHelper.formatInputValue)({
62
+ value: newValue,
63
+ format: format,
64
+ lang: lang,
65
+ hasMonthFullName: hasMonthFullName,
66
+ isValidMonth: isValidMonth,
67
+ isLengthEqual: isLengthEqual
68
+ }));
69
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, newValue);
96
70
  onChange === null || onChange === void 0 || onChange({
97
71
  target: {
98
- value: formattedDate,
99
- originalDate: originalDate,
100
- isoDate: isoDate,
72
+ value: newValue,
101
73
  name: name
102
74
  }
103
75
  });
104
76
  };
105
- var handleSearch = function handleSearch(date) {
77
+ var handleCommitDate = function handleCommitDate(date, applyFormat, isCalendarValue, dateInfo) {
106
78
  if (disabled || readOnly) {
107
79
  return;
108
80
  }
109
81
  if (!date) {
110
82
  setCalendarValue(undefined);
111
83
  setInputValue('');
112
- return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true, undefined, undefined, '');
84
+ return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
113
85
  }
114
- var _getFormattedDates2 = (0, _utils2.getFormattedDates)({
86
+ if (isCalendarValue) {
87
+ var _formattedInputValue = (0, _dateHelper.formatInputValue)({
115
88
  value: date,
116
- lang: lang,
117
- delimiter: dateFormatDelimiter(),
118
89
  format: format,
119
- includeEdgeDates: includeEdgeDates,
120
- min: min,
121
- max: max
122
- }),
123
- formattedDate = _getFormattedDates2.formattedDate,
124
- isoDate = _getFormattedDates2.isoDate,
125
- originalDate = _getFormattedDates2.originalDate;
126
- if (originalDate) {
127
- var dateInfo = getQuarterInfo(originalDate);
128
- onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, originalDate, isoDate);
129
- }
130
- };
131
- var handleCalendarPick = function handleCalendarPick(date, dateInfo) {
132
- if (disabled || readOnly) {
133
- return;
134
- }
135
- if (!date) {
136
- setInputValue('');
137
- setCalendarValue(date);
138
- setCorrectDates({
139
- calendar: date || undefined,
140
- input: ''
90
+ lang: lang
141
91
  });
142
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, '', date, '');
92
+ setCalendarValue((0, _dateHelper.formatCalendarValue)(date, format, lang));
93
+ setInputValue(_formattedInputValue);
94
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate(date, false, true, dateInfo);
95
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, _formattedInputValue);
143
96
  onChange === null || onChange === void 0 || onChange({
144
97
  target: {
145
- value: '',
146
- originalDate: date,
147
- isoDate: '',
98
+ value: _formattedInputValue,
148
99
  name: name
149
100
  }
150
101
  });
151
- onCommitDate === null || onCommitDate === void 0 || onCommitDate('', false, true, dateInfo, date || undefined, '');
152
102
  return;
153
103
  }
154
- _datejs.customDayjs.locale(lang);
155
- var formattedDate = (0, _datejs.customDayjs)(date).format(format);
156
- var isoDate = date.toISOString();
157
- setCalendarValue(date);
158
- setInputValue(formattedDate);
159
- setCorrectDates({
160
- calendar: date,
161
- input: formattedDate
104
+ var formatString = applyFormat ? format : undefined;
105
+ var _getDateFromFormat = (0, _dateHelper.getDateFromFormat)(date, formatString, lang),
106
+ newDate = _getDateFromFormat.value,
107
+ isError = _getDateFromFormat.isError,
108
+ isSuccess = _getDateFromFormat.isSuccess;
109
+ var formattedInputValue = (0, _dateHelper.formatInputValue)({
110
+ value: newDate,
111
+ format: format,
112
+ lang: lang
162
113
  });
163
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedDate, date, isoDate);
114
+ setCalendarValue((0, _dateHelper.formatCalendarValue)(newDate, format, lang));
115
+ setInputValue(formattedInputValue);
116
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
117
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedInputValue);
164
118
  onChange === null || onChange === void 0 || onChange({
165
119
  target: {
166
- value: formattedDate,
167
- originalDate: date,
168
- isoDate: isoDate,
120
+ value: formattedInputValue,
169
121
  name: name
170
122
  }
171
123
  });
172
- onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, date, isoDate);
173
124
  };
174
- var updateExternalDate = function updateExternalDate(externalDate) {
175
- var _getFormattedDates3 = (0, _utils2.getFormattedDates)({
176
- value: externalDate || null,
177
- lang: lang,
178
- delimiter: dateFormatDelimiter(),
179
- format: format,
180
- includeEdgeDates: includeEdgeDates,
181
- min: min,
182
- max: max
183
- }),
184
- formattedDate = _getFormattedDates3.formattedDate,
185
- originalDate = _getFormattedDates3.originalDate;
186
- setInputValue(formattedDate);
187
- setCalendarValue(originalDate);
188
- if (originalDate) {
189
- setCorrectDates({
190
- calendar: originalDate,
191
- input: formattedDate
192
- });
125
+ var updateExternalDate = function updateExternalDate(externalDate, inputSetter, calendarSetter) {
126
+ inputSetter((0, _dateHelper.formatInputValue)({
127
+ value: externalDate,
128
+ format: format,
129
+ lang: lang
130
+ }));
131
+ if (!format) {
132
+ calendarSetter((0, _dateHelper.formatCalendarValue)(externalDate, undefined, lang));
133
+ return;
193
134
  }
194
- if (formattedDate === '') {
195
- setCorrectDates({
196
- calendar: undefined,
197
- input: ''
198
- });
135
+ if (!externalDate) {
136
+ calendarSetter(undefined);
137
+ return;
138
+ }
139
+ var _getDateFromFormat2 = (0, _dateHelper.getDateFromFormat)(externalDate, undefined, lang),
140
+ newDate = _getDateFromFormat2.value,
141
+ isError = _getDateFromFormat2.isError;
142
+ if (!isError) {
143
+ calendarSetter((0, _dateHelper.formatCalendarValue)(newDate, format, lang));
199
144
  }
200
145
  };
201
146
  return {
202
147
  datePickerErrorClass: datePickerErrorClass,
203
148
  datePickerSuccessClass: datePickerSuccessClass,
204
149
  handleChangeValue: handleChangeValue,
205
- handleSearch: handleSearch,
206
- handleCalendarPick: handleCalendarPick,
150
+ handleCommitDate: handleCommitDate,
207
151
  updateExternalDate: updateExternalDate
208
152
  };
209
153
  };
@@ -11,15 +11,8 @@ var keys = exports.keys = {
11
11
  var useKeyNavigation = exports.useKeyNavigation = function useKeyNavigation(_ref) {
12
12
  var isCalendarOpen = _ref.isCalendarOpen,
13
13
  closeOnEsc = _ref.closeOnEsc,
14
- format = _ref.format,
15
- maskWithFormat = _ref.maskWithFormat,
16
- delimiter = _ref.delimiter,
17
14
  onToggle = _ref.onToggle;
18
15
  var onKeyDown = function onKeyDown(event) {
19
- if (event.key === delimiter && maskWithFormat && format && !/M{3,4}/g.test(format)) {
20
- event.preventDefault();
21
- return;
22
- }
23
16
  switch (event.code) {
24
17
  case keys.Space:
25
18
  {
@@ -3,7 +3,62 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getDateFormatDelimiter = void 0;
6
+ exports.validateDateWithFullMonth = exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
7
+ var _datejs = /*#__PURE__*/require("../../../utils/datejs");
8
+ var formatInputValue = exports.formatInputValue = function formatInputValue(_ref) {
9
+ var value = _ref.value,
10
+ format = _ref.format,
11
+ lang = _ref.lang,
12
+ hasMonthFullName = _ref.hasMonthFullName,
13
+ isValidMonth = _ref.isValidMonth,
14
+ isLengthEqual = _ref.isLengthEqual;
15
+ if (!value || !lang) {
16
+ return '';
17
+ }
18
+ if (hasMonthFullName && (!isValidMonth || !isLengthEqual)) {
19
+ return String(value);
20
+ }
21
+ if (format && (0, _datejs.customDayjs)(value, format, true).isValid()) {
22
+ return (0, _datejs.customDayjs)(value, format).locale(lang).format(format);
23
+ }
24
+ if (format && String(value).length >= 10 && String(new Date(value)) !== 'Invalid Date') {
25
+ return (0, _datejs.customDayjs)(value).locale(lang).format(format);
26
+ }
27
+ return String(value);
28
+ };
29
+ var formatCalendarValue = exports.formatCalendarValue = function formatCalendarValue(value, format, lang) {
30
+ if (!value || !lang) {
31
+ return undefined;
32
+ }
33
+ if (format && (0, _datejs.customDayjs)(value, format, true).isValid()) {
34
+ return (0, _datejs.customDayjs)(value, format, true).locale(lang).toDate();
35
+ }
36
+ if (String(new Date(value)) !== 'Invalid Date') {
37
+ return (0, _datejs.customDayjs)(value).locale(lang).toDate();
38
+ }
39
+ return undefined;
40
+ };
41
+ var getDateFromFormat = exports.getDateFromFormat = function getDateFromFormat(value, format, lang) {
42
+ if (format && (0, _datejs.customDayjs)(value, format, true).isValid() && lang) {
43
+ return {
44
+ value: (0, _datejs.customDayjs)(value, format, true).locale(lang).toDate(),
45
+ isError: false,
46
+ isSuccess: true
47
+ };
48
+ }
49
+ if (!format && String(new Date(value)) !== 'Invalid Date' && lang) {
50
+ return {
51
+ value: (0, _datejs.customDayjs)(value).locale(lang).toDate(),
52
+ isError: false,
53
+ isSuccess: true
54
+ };
55
+ }
56
+ return {
57
+ value: value,
58
+ isError: true,
59
+ isSuccess: false
60
+ };
61
+ };
7
62
  var getDateFormatDelimiter = exports.getDateFormatDelimiter = function getDateFormatDelimiter(format) {
8
63
  var _format$match;
9
64
  if (!format) {
@@ -11,4 +66,52 @@ var getDateFormatDelimiter = exports.getDateFormatDelimiter = function getDateFo
11
66
  }
12
67
  var delimiter = (_format$match = format.match(/[^a-zA-Z0-9]/)) === null || _format$match === void 0 ? void 0 : _format$match[0];
13
68
  return delimiter !== null && delimiter !== void 0 ? delimiter : '';
69
+ };
70
+ var getMaskedDateOnInput = exports.getMaskedDateOnInput = function getMaskedDateOnInput(value, format, delimiter, prevValue) {
71
+ if (!value) {
72
+ return '';
73
+ }
74
+ if (!format || !delimiter || /M{3,4}/g.test(format)) {
75
+ return value;
76
+ }
77
+ if (value.length >= format.length) {
78
+ return value.slice(0, format.length);
79
+ }
80
+ if (prevValue && value.length < prevValue.length && (prevValue === null || prevValue === void 0 ? void 0 : prevValue[value.length]) === delimiter) {
81
+ return value.slice(0, -1);
82
+ }
83
+ if ((format === null || format === void 0 ? void 0 : format[value.length]) === delimiter) {
84
+ return value + delimiter;
85
+ }
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
+ };
14
117
  };