@salutejs/plasma-new-hope 0.322.0-canary.1933.14614537450.0 → 0.322.0-canary.1939.14642328722.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 (213) hide show
  1. package/cjs/components/Calendar/Calendar.types.js.map +1 -1
  2. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +3 -6
  3. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  4. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +3 -6
  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 +2 -1
  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_1a5ddg3.css +2 -0
  15. package/cjs/components/DatePicker/RangeDate/RangeDate.css +4 -4
  16. package/cjs/components/DatePicker/RangeDate/RangeDate.js +158 -82
  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_1fhuiqs.css +2 -0
  24. package/cjs/components/DatePicker/SingleDate/SingleDate.css +2 -2
  25. package/cjs/components/DatePicker/SingleDate/SingleDate.js +68 -33
  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 +133 -76
  29. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  30. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +9 -0
  31. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  32. package/cjs/components/DatePicker/utils/dateHelper.js +3 -108
  33. package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
  34. package/cjs/components/DatePicker/utils/getFormattedDates.js +46 -0
  35. package/cjs/components/DatePicker/utils/getFormattedDates.js.map +1 -0
  36. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +29 -0
  37. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js.map +1 -0
  38. package/cjs/components/DatePicker/utils/getOriginalDates.js +38 -0
  39. package/cjs/components/DatePicker/utils/getOriginalDates.js.map +1 -0
  40. package/cjs/components/DatePicker/utils/normalizeDates.js +36 -0
  41. package/cjs/components/DatePicker/utils/normalizeDates.js.map +1 -0
  42. package/cjs/index.css +4 -4
  43. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +3 -6
  44. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +3 -6
  45. package/emotion/cjs/components/DatePicker/DatePicker.tokens.js +2 -1
  46. package/emotion/cjs/components/DatePicker/DatePickerBase.styles.js +4 -4
  47. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +158 -82
  48. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.styles.js +4 -4
  49. package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +3 -3
  50. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +68 -33
  51. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.styles.js +4 -4
  52. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +132 -76
  53. package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +8 -0
  54. package/emotion/cjs/components/DatePicker/utils/dateHelper.js +3 -103
  55. package/emotion/cjs/components/DatePicker/utils/getFormattedDates.js +44 -0
  56. package/emotion/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +27 -0
  57. package/emotion/cjs/components/DatePicker/utils/getOriginalDates.js +36 -0
  58. package/emotion/cjs/components/DatePicker/utils/index.js +33 -0
  59. package/emotion/cjs/components/DatePicker/utils/normalizeDates.js +34 -0
  60. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +7 -7
  61. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +20 -19
  62. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.config.js +7 -7
  63. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +17 -12
  64. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +3 -6
  65. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +3 -6
  66. package/emotion/es/components/DatePicker/DatePicker.tokens.js +2 -1
  67. package/emotion/es/components/DatePicker/DatePickerBase.styles.js +4 -4
  68. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +159 -83
  69. package/emotion/es/components/DatePicker/RangeDate/RangeDate.styles.js +4 -4
  70. package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +3 -3
  71. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +69 -34
  72. package/emotion/es/components/DatePicker/SingleDate/SingleDate.styles.js +4 -4
  73. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +131 -75
  74. package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +8 -0
  75. package/emotion/es/components/DatePicker/utils/dateHelper.js +2 -102
  76. package/emotion/es/components/DatePicker/utils/getFormattedDates.js +38 -0
  77. package/emotion/es/components/DatePicker/utils/getMaskedDateOnInput.js +21 -0
  78. package/emotion/es/components/DatePicker/utils/getOriginalDates.js +30 -0
  79. package/emotion/es/components/DatePicker/utils/index.js +4 -0
  80. package/emotion/es/components/DatePicker/utils/normalizeDates.js +28 -0
  81. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +7 -7
  82. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +20 -19
  83. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.config.js +7 -7
  84. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +17 -12
  85. package/es/components/Calendar/Calendar.types.js.map +1 -1
  86. package/es/components/Calendar/CalendarBase/CalendarBase.js +3 -6
  87. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  88. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +3 -6
  89. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  90. package/es/components/Calendar/hoc/withRange.js.map +1 -1
  91. package/es/components/Calendar/store/reducer.js.map +1 -1
  92. package/es/components/Calendar/utils/calendarGridHelper.js.map +1 -1
  93. package/es/components/Calendar/utils/calendarRangeHelper.js.map +1 -1
  94. package/es/components/DatePicker/DatePicker.tokens.js +2 -1
  95. package/es/components/DatePicker/DatePicker.tokens.js.map +1 -1
  96. package/es/components/DatePicker/DatePickerBase.styles.js +1 -1
  97. package/es/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  98. package/es/components/DatePicker/DatePickerBase.styles_1a5ddg3.css +2 -0
  99. package/es/components/DatePicker/RangeDate/RangeDate.css +4 -4
  100. package/es/components/DatePicker/RangeDate/RangeDate.js +160 -84
  101. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  102. package/es/components/DatePicker/RangeDate/RangeDate.styles.js.map +1 -1
  103. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +2 -2
  104. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  105. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  106. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js.map +1 -1
  107. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1fhuiqs.css +2 -0
  108. package/es/components/DatePicker/SingleDate/SingleDate.css +2 -2
  109. package/es/components/DatePicker/SingleDate/SingleDate.js +70 -35
  110. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  111. package/es/components/DatePicker/SingleDate/SingleDate.styles.js.map +1 -1
  112. package/es/components/DatePicker/hooks/useDatePicker.js +132 -75
  113. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  114. package/es/components/DatePicker/hooks/useKeyboardNavigation.js +9 -0
  115. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  116. package/es/components/DatePicker/utils/dateHelper.js +3 -104
  117. package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
  118. package/es/components/DatePicker/utils/getFormattedDates.js +42 -0
  119. package/es/components/DatePicker/utils/getFormattedDates.js.map +1 -0
  120. package/es/components/DatePicker/utils/getMaskedDateOnInput.js +25 -0
  121. package/es/components/DatePicker/utils/getMaskedDateOnInput.js.map +1 -0
  122. package/es/components/DatePicker/utils/getOriginalDates.js +34 -0
  123. package/es/components/DatePicker/utils/getOriginalDates.js.map +1 -0
  124. package/es/components/DatePicker/utils/normalizeDates.js +32 -0
  125. package/es/components/DatePicker/utils/normalizeDates.js.map +1 -0
  126. package/es/index.css +4 -4
  127. package/package.json +4 -4
  128. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +3 -6
  129. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +3 -6
  130. package/styled-components/cjs/components/DatePicker/DatePicker.tokens.js +2 -1
  131. package/styled-components/cjs/components/DatePicker/DatePickerBase.styles.js +2 -2
  132. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +158 -82
  133. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  134. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +68 -33
  135. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +132 -76
  136. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +8 -0
  137. package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +3 -103
  138. package/styled-components/cjs/components/DatePicker/utils/getFormattedDates.js +44 -0
  139. package/styled-components/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +27 -0
  140. package/styled-components/cjs/components/DatePicker/utils/getOriginalDates.js +36 -0
  141. package/styled-components/cjs/components/DatePicker/utils/index.js +33 -0
  142. package/styled-components/cjs/components/DatePicker/utils/normalizeDates.js +34 -0
  143. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +1 -1
  144. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +20 -19
  145. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.config.js +1 -1
  146. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +17 -12
  147. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +3 -6
  148. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +3 -6
  149. package/styled-components/es/components/DatePicker/DatePicker.tokens.js +2 -1
  150. package/styled-components/es/components/DatePicker/DatePickerBase.styles.js +2 -2
  151. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +159 -83
  152. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  153. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +69 -34
  154. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +131 -75
  155. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +8 -0
  156. package/styled-components/es/components/DatePicker/utils/dateHelper.js +2 -102
  157. package/styled-components/es/components/DatePicker/utils/getFormattedDates.js +38 -0
  158. package/styled-components/es/components/DatePicker/utils/getMaskedDateOnInput.js +21 -0
  159. package/styled-components/es/components/DatePicker/utils/getOriginalDates.js +30 -0
  160. package/styled-components/es/components/DatePicker/utils/index.js +4 -0
  161. package/styled-components/es/components/DatePicker/utils/normalizeDates.js +28 -0
  162. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +1 -1
  163. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.stories.tsx +20 -19
  164. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.config.js +1 -1
  165. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.stories.tsx +17 -12
  166. package/types/components/Calendar/Calendar.types.d.ts +4 -3
  167. package/types/components/Calendar/Calendar.types.d.ts.map +1 -1
  168. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  169. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  170. package/types/components/Calendar/hoc/withRange.d.ts.map +1 -1
  171. package/types/components/Calendar/store/reducer.d.ts +2 -1
  172. package/types/components/Calendar/store/reducer.d.ts.map +1 -1
  173. package/types/components/Calendar/utils/calendarGridHelper.d.ts +4 -4
  174. package/types/components/Calendar/utils/calendarGridHelper.d.ts.map +1 -1
  175. package/types/components/Calendar/utils/calendarRangeHelper.d.ts +4 -4
  176. package/types/components/Calendar/utils/calendarRangeHelper.d.ts.map +1 -1
  177. package/types/components/DatePicker/DatePicker.tokens.d.ts +1 -0
  178. package/types/components/DatePicker/DatePicker.tokens.d.ts.map +1 -1
  179. package/types/components/DatePicker/DatePickerBase.styles.d.ts.map +1 -1
  180. package/types/components/DatePicker/DatePickerBase.types.d.ts +16 -6
  181. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  182. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +3 -2
  183. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  184. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +4 -4
  185. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  186. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.d.ts +1 -1
  187. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.d.ts.map +1 -1
  188. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts +3 -3
  189. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts.map +1 -1
  190. package/types/components/DatePicker/SingleDate/SingleDate.d.ts +11 -6
  191. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  192. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +9 -7
  193. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  194. package/types/components/DatePicker/hooks/useDatePicker.d.ts +5 -4
  195. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  196. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts +4 -1
  197. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
  198. package/types/components/DatePicker/utils/dateHelper.d.ts +1 -27
  199. package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
  200. package/types/components/DatePicker/utils/getFormattedDates.d.ts +21 -0
  201. package/types/components/DatePicker/utils/getFormattedDates.d.ts.map +1 -0
  202. package/types/components/DatePicker/utils/getMaskedDateOnInput.d.ts +2 -0
  203. package/types/components/DatePicker/utils/getMaskedDateOnInput.d.ts.map +1 -0
  204. package/types/components/DatePicker/utils/getOriginalDates.d.ts +10 -0
  205. package/types/components/DatePicker/utils/getOriginalDates.d.ts.map +1 -0
  206. package/types/components/DatePicker/utils/index.d.ts +5 -0
  207. package/types/components/DatePicker/utils/index.d.ts.map +1 -0
  208. package/types/components/DatePicker/utils/normalizeDates.d.ts +15 -0
  209. package/types/components/DatePicker/utils/normalizeDates.d.ts.map +1 -0
  210. package/cjs/components/DatePicker/DatePickerBase.styles_1jm7rc0.css +0 -2
  211. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_r5ataz.css +0 -2
  212. package/es/components/DatePicker/DatePickerBase.styles_1jm7rc0.css +0 -2
  213. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_r5ataz.css +0 -2
@@ -4,150 +4,206 @@ 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");
7
9
  var _DatePicker = /*#__PURE__*/require("../DatePicker.tokens");
8
- var _dateHelper = /*#__PURE__*/require("../utils/dateHelper");
10
+ var _utils2 = /*#__PURE__*/require("../utils");
9
11
  var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
10
12
  var currentValue = _ref.currentValue,
11
- setInputValue = _ref.setInputValue,
12
- setCalendarValue = _ref.setCalendarValue,
13
- dateFormatDelimiter = _ref.dateFormatDelimiter,
14
13
  format = _ref.format,
15
14
  _ref$lang = _ref.lang,
16
15
  lang = _ref$lang === void 0 ? 'ru' : _ref$lang,
17
16
  disabled = _ref.disabled,
18
17
  readOnly = _ref.readOnly,
19
- maskWithFormat = _ref.maskWithFormat,
20
18
  valueError = _ref.valueError,
21
19
  valueSuccess = _ref.valueSuccess,
22
20
  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,
23
30
  onChangeValue = _ref.onChangeValue,
24
31
  onCommitDate = _ref.onCommitDate,
25
32
  onChange = _ref.onChange;
26
33
  var datePickerErrorClass = valueError ? _DatePicker.classes.datePickerError : undefined;
27
34
  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
+ };
28
49
  var handleChangeValue = function handleChangeValue(event) {
29
50
  if (disabled || readOnly) {
30
51
  return;
31
52
  }
32
53
  var value = event.target.value;
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)({
54
+ var newValue = maskWithFormat ? (0, _utils2.getMaskedDateOnInput)(value, format, dateFormatDelimiter(), currentValue) : value;
55
+ var _getFormattedDates = (0, _utils2.getFormattedDates)({
37
56
  value: newValue,
57
+ lang: lang,
58
+ delimiter: dateFormatDelimiter(),
38
59
  format: format,
39
- lang: lang
40
- }));
41
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, newValue);
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);
42
77
  onChange === null || onChange === void 0 || onChange({
43
78
  target: {
44
- value: newValue,
79
+ value: formattedDate,
80
+ originalDate: originalDate,
81
+ isoDate: isoDate,
45
82
  name: name
46
83
  }
47
84
  });
48
85
  return;
49
86
  }
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));
87
+ if (formattedDate === '') {
88
+ setCorrectDates({
89
+ calendar: undefined,
90
+ input: ''
91
+ });
60
92
  }
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);
93
+ setCalendarValue(originalDate);
94
+ setInputValue(formattedDate);
95
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, formattedDate, originalDate, isoDate);
70
96
  onChange === null || onChange === void 0 || onChange({
71
97
  target: {
72
- value: newValue,
98
+ value: formattedDate,
99
+ originalDate: originalDate,
100
+ isoDate: isoDate,
73
101
  name: name
74
102
  }
75
103
  });
76
104
  };
77
- var handleCommitDate = function handleCommitDate(date, applyFormat, isCalendarValue, dateInfo) {
105
+ var handleSearch = function handleSearch(date) {
78
106
  if (disabled || readOnly) {
79
107
  return;
80
108
  }
81
109
  if (!date) {
82
110
  setCalendarValue(undefined);
83
111
  setInputValue('');
84
- return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
112
+ return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true, undefined, undefined, '');
85
113
  }
86
- if (isCalendarValue) {
87
- var _formattedInputValue = (0, _dateHelper.formatInputValue)({
114
+ var _getFormattedDates2 = (0, _utils2.getFormattedDates)({
88
115
  value: date,
116
+ lang: lang,
117
+ delimiter: dateFormatDelimiter(),
89
118
  format: format,
90
- lang: lang
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: ''
91
141
  });
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);
142
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, '', date, '');
96
143
  onChange === null || onChange === void 0 || onChange({
97
144
  target: {
98
- value: _formattedInputValue,
145
+ value: '',
146
+ originalDate: date,
147
+ isoDate: '',
99
148
  name: name
100
149
  }
101
150
  });
151
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate('', false, true, dateInfo, date || undefined, '');
102
152
  return;
103
153
  }
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
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
113
162
  });
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);
163
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedDate, date, isoDate);
118
164
  onChange === null || onChange === void 0 || onChange({
119
165
  target: {
120
- value: formattedInputValue,
166
+ value: formattedDate,
167
+ originalDate: date,
168
+ isoDate: isoDate,
121
169
  name: name
122
170
  }
123
171
  });
172
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, date, isoDate);
124
173
  };
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;
134
- }
135
- if (!externalDate) {
136
- calendarSetter(undefined);
137
- return;
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
+ });
138
193
  }
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));
194
+ if (formattedDate === '') {
195
+ setCorrectDates({
196
+ calendar: undefined,
197
+ input: ''
198
+ });
144
199
  }
145
200
  };
146
201
  return {
147
202
  datePickerErrorClass: datePickerErrorClass,
148
203
  datePickerSuccessClass: datePickerSuccessClass,
149
204
  handleChangeValue: handleChangeValue,
150
- handleCommitDate: handleCommitDate,
205
+ handleSearch: handleSearch,
206
+ handleCalendarPick: handleCalendarPick,
151
207
  updateExternalDate: updateExternalDate
152
208
  };
153
209
  };
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useKeyNavigation = exports.keys = void 0;
7
+ var _dateHelper = /*#__PURE__*/require("../utils/dateHelper");
7
8
  var keys = exports.keys = {
8
9
  Space: 'Space',
9
10
  Escape: 'Escape'
@@ -11,8 +12,15 @@ var keys = exports.keys = {
11
12
  var useKeyNavigation = exports.useKeyNavigation = function useKeyNavigation(_ref) {
12
13
  var isCalendarOpen = _ref.isCalendarOpen,
13
14
  closeOnEsc = _ref.closeOnEsc,
15
+ format = _ref.format,
16
+ maskWithFormat = _ref.maskWithFormat,
17
+ delimiter = _ref.delimiter,
14
18
  onToggle = _ref.onToggle;
15
19
  var onKeyDown = function onKeyDown(event) {
20
+ if (event.key === delimiter && maskWithFormat && format && !(0, _dateHelper.needFullMonth)(format)) {
21
+ event.preventDefault();
22
+ return;
23
+ }
16
24
  switch (event.code) {
17
25
  case keys.Space:
18
26
  {
@@ -3,61 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
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
- };
6
+ exports.needFullMonth = exports.getDateFormatDelimiter = void 0;
7
+ var needFullMonth = exports.needFullMonth = function needFullMonth(format) {
8
+ return /M{3,4}/g.test(format);
61
9
  };
62
10
  var getDateFormatDelimiter = exports.getDateFormatDelimiter = function getDateFormatDelimiter(format) {
63
11
  var _format$match;
@@ -66,52 +14,4 @@ var getDateFormatDelimiter = exports.getDateFormatDelimiter = function getDateFo
66
14
  }
67
15
  var delimiter = (_format$match = format.match(/[^a-zA-Z0-9]/)) === null || _format$match === void 0 ? void 0 : _format$match[0];
68
16
  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
- };
117
17
  };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFormattedDates = void 0;
7
+ var _dateHelper = /*#__PURE__*/require("./dateHelper");
8
+ var _getOriginalDates2 = /*#__PURE__*/require("./getOriginalDates");
9
+ var _normalizeDates2 = /*#__PURE__*/require("./normalizeDates");
10
+ var getFormattedDates = exports.getFormattedDates = function getFormattedDates(_ref) {
11
+ var value = _ref.value,
12
+ lang = _ref.lang,
13
+ format = _ref.format,
14
+ includeEdgeDates = _ref.includeEdgeDates,
15
+ min = _ref.min,
16
+ max = _ref.max;
17
+ var _getOriginalDates = (0, _getOriginalDates2.getOriginalDates)(value, lang, format),
18
+ formattedDate = _getOriginalDates.formattedDate,
19
+ isoDate = _getOriginalDates.isoDate,
20
+ originalDate = _getOriginalDates.originalDate;
21
+ if (!originalDate) {
22
+ var innerValue = format && ((0, _dateHelper.needFullMonth)(format) ? formattedDate : formattedDate.slice(0, format.length));
23
+ return {
24
+ formattedDate: innerValue || '',
25
+ isoDate: isoDate,
26
+ originalDate: originalDate
27
+ };
28
+ }
29
+ var _normalizeDates = (0, _normalizeDates2.normalizeDates)({
30
+ originalDate: originalDate,
31
+ lang: lang,
32
+ format: format,
33
+ includeEdgeDates: includeEdgeDates,
34
+ min: min,
35
+ max: max
36
+ }),
37
+ normalizedDate = _normalizeDates.normalizedDate,
38
+ formattedNormalizedDate = _normalizeDates.formattedNormalizedDate;
39
+ return {
40
+ formattedDate: formattedNormalizedDate,
41
+ isoDate: normalizedDate.toISOString(),
42
+ originalDate: normalizedDate
43
+ };
44
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getMaskedDateOnInput = void 0;
7
+ var _dateHelper = /*#__PURE__*/require("./dateHelper");
8
+ var getMaskedDateOnInput = exports.getMaskedDateOnInput = function getMaskedDateOnInput(value, format, delimiter, prevValue) {
9
+ if (!value) {
10
+ return '';
11
+ }
12
+ if (!format || !delimiter || (0, _dateHelper.needFullMonth)(format)) {
13
+ return value;
14
+ }
15
+ var dateRegExp = new RegExp("[^0-9".concat(delimiter, "]"), 'g');
16
+ var formattedValue = value.replace(dateRegExp, '');
17
+ if (formattedValue.length >= format.length) {
18
+ return formattedValue.slice(0, format.length);
19
+ }
20
+ if (prevValue && formattedValue.length < prevValue.length && (prevValue === null || prevValue === void 0 ? void 0 : prevValue[formattedValue.length]) === delimiter) {
21
+ return formattedValue.slice(0, -1);
22
+ }
23
+ if ((format === null || format === void 0 ? void 0 : format[formattedValue.length]) === delimiter) {
24
+ return formattedValue + delimiter;
25
+ }
26
+ return formattedValue;
27
+ };
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getOriginalDates = void 0;
7
+ var _datejs = /*#__PURE__*/require("../../../utils/datejs");
8
+ var initialValueStructure = {
9
+ isoDate: '',
10
+ originalDate: undefined,
11
+ formattedDate: ''
12
+ };
13
+ var getOriginalDates = exports.getOriginalDates = function getOriginalDates(value, lang, format) {
14
+ if (!value || !lang || !format) {
15
+ return initialValueStructure;
16
+ }
17
+ _datejs.customDayjs.locale(lang);
18
+ if (value instanceof Date) {
19
+ return {
20
+ formattedDate: (0, _datejs.customDayjs)(value).format(format),
21
+ isoDate: new Date(value).toISOString(),
22
+ originalDate: new Date(value)
23
+ };
24
+ }
25
+ if ((0, _datejs.customDayjs)(value, format).isValid()) {
26
+ var isoDate = (0, _datejs.customDayjs)(value, format).toISOString();
27
+ var originalDate = (0, _datejs.customDayjs)(value, format).toDate();
28
+ var formattedDate = (0, _datejs.customDayjs)(value, format).format(format);
29
+ return {
30
+ formattedDate: formattedDate,
31
+ isoDate: isoDate,
32
+ originalDate: originalDate
33
+ };
34
+ }
35
+ return initialValueStructure;
36
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "getFormattedDates", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _getFormattedDates.getFormattedDates;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "getMaskedDateOnInput", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _getMaskedDateOnInput.getMaskedDateOnInput;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "getOriginalDates", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _getOriginalDates.getOriginalDates;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "normalizeDates", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _normalizeDates.normalizeDates;
28
+ }
29
+ });
30
+ var _getFormattedDates = /*#__PURE__*/require("./getFormattedDates");
31
+ var _getOriginalDates = /*#__PURE__*/require("./getOriginalDates");
32
+ var _normalizeDates = /*#__PURE__*/require("./normalizeDates");
33
+ var _getMaskedDateOnInput = /*#__PURE__*/require("./getMaskedDateOnInput");
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizeDates = void 0;
7
+ var _datejs = /*#__PURE__*/require("../../../utils/datejs");
8
+ var normalizeDates = exports.normalizeDates = function normalizeDates(_ref) {
9
+ var originalDate = _ref.originalDate,
10
+ lang = _ref.lang,
11
+ format = _ref.format,
12
+ includeEdgeDates = _ref.includeEdgeDates,
13
+ min = _ref.min,
14
+ max = _ref.max;
15
+ var dateCandidate = originalDate;
16
+ _datejs.customDayjs.locale(lang);
17
+ if (min && includeEdgeDates && min > originalDate) {
18
+ dateCandidate = min;
19
+ }
20
+ if (min && !includeEdgeDates && min >= originalDate) {
21
+ dateCandidate = (0, _datejs.customDayjs)(min).add(1, 'd').toDate();
22
+ }
23
+ if (max && includeEdgeDates && max < originalDate) {
24
+ dateCandidate = max;
25
+ }
26
+ if (max && !includeEdgeDates && max <= originalDate) {
27
+ dateCandidate = (0, _datejs.customDayjs)(max).subtract(1, 'd').toDate();
28
+ }
29
+ var formattedDateCandidate = format ? (0, _datejs.customDayjs)(dateCandidate).format(format) : dateCandidate.toString();
30
+ return {
31
+ normalizedDate: dateCandidate,
32
+ formattedNormalizedDate: formattedDateCandidate
33
+ };
34
+ };