@ozen-ui/kit 0.74.0 → 0.76.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 (228) hide show
  1. package/StepperVertical/package.json +5 -0
  2. package/__inner__/cjs/components/Autocomplete/helper.d.ts +1 -1
  3. package/__inner__/cjs/components/Autocomplete/types.d.ts +1 -1
  4. package/__inner__/cjs/components/Calendar/Calendar.js +26 -2
  5. package/__inner__/cjs/components/Calendar/CalendarContext.d.ts +8 -1
  6. package/__inner__/cjs/components/Calendar/CalendarContext.js +10 -1
  7. package/__inner__/cjs/components/Calendar/__tests__/utils.d.ts +11 -0
  8. package/__inner__/cjs/components/Calendar/__tests__/utils.js +58 -0
  9. package/__inner__/cjs/components/Calendar/components/CalendarGrid/CalendarGrid.js +4 -3
  10. package/__inner__/cjs/components/Calendar/components/CalendarItem/CalendarItem.js +25 -2
  11. package/__inner__/cjs/components/Calendar/components/CalendarItem/CalendarItemContext.d.ts +1 -0
  12. package/__inner__/cjs/components/Calendar/components/CalendarItem/CalendarItemContext.js +1 -0
  13. package/__inner__/cjs/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +68 -13
  14. package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +62 -16
  15. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/CalendarSwitcher.js +6 -7
  16. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.d.ts +3 -0
  17. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.js +13 -0
  18. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.d.ts +2 -0
  19. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.js +5 -0
  20. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.d.ts +4 -0
  21. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.js +2 -0
  22. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/index.d.ts +1 -0
  23. package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/index.js +4 -0
  24. package/__inner__/cjs/components/Calendar/constants.d.ts +2 -0
  25. package/__inner__/cjs/components/Calendar/constants.js +7 -1
  26. package/__inner__/cjs/components/Calendar/index.d.ts +1 -0
  27. package/__inner__/cjs/components/Calendar/index.js +1 -0
  28. package/__inner__/cjs/components/Calendar/types.d.ts +13 -5
  29. package/__inner__/cjs/components/Calendar/utils.d.ts +10 -1
  30. package/__inner__/cjs/components/Calendar/utils.js +12 -1
  31. package/__inner__/cjs/components/DataList/types.d.ts +1 -1
  32. package/__inner__/cjs/components/DatePicker/components/DateInput/DateInput.js +4 -3
  33. package/__inner__/cjs/components/DatePicker/components/DateInput/types.d.ts +6 -2
  34. package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +2 -1
  35. package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +67 -7
  36. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +32 -20
  37. package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +74 -51
  38. package/__inner__/cjs/components/DatePicker/constants.d.ts +2 -0
  39. package/__inner__/cjs/components/DatePicker/constants.js +4 -1
  40. package/__inner__/cjs/components/DatePicker/types.d.ts +10 -6
  41. package/__inner__/cjs/components/DatePicker/types.js +3 -1
  42. package/__inner__/cjs/components/DatePicker/utils/formatDateToString/formatDateToString.d.ts +2 -1
  43. package/__inner__/cjs/components/DatePicker/utils/formatDateToString/formatDateToString.js +18 -5
  44. package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.d.ts +2 -1
  45. package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +6 -5
  46. package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +2 -2
  47. package/__inner__/cjs/components/DatePicker/utils/index.d.ts +2 -0
  48. package/__inner__/cjs/components/DatePicker/utils/index.js +2 -0
  49. package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +2 -1
  50. package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.js +9 -8
  51. package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/index.d.ts +1 -0
  52. package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/index.js +4 -0
  53. package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/maskPastedDate.d.ts +6 -0
  54. package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/maskPastedDate.js +43 -0
  55. package/__inner__/cjs/components/DatePicker/utils/parseDateString/index.d.ts +1 -0
  56. package/__inner__/cjs/components/DatePicker/utils/parseDateString/index.js +4 -0
  57. package/__inner__/cjs/components/DatePicker/utils/parseDateString/parseDateString.d.ts +6 -0
  58. package/__inner__/cjs/components/DatePicker/utils/parseDateString/parseDateString.js +66 -0
  59. package/__inner__/cjs/components/ListCardItem/hooks/useListCardItemRatio.js +10 -14
  60. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
  61. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
  62. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
  63. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
  64. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
  65. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
  66. package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
  67. package/__inner__/cjs/components/Select/Select.css +10 -1
  68. package/__inner__/cjs/components/Select/Select.d.ts +0 -1
  69. package/__inner__/cjs/components/Select/Select.js +40 -10
  70. package/__inner__/cjs/components/Select/SelectContext.d.ts +21 -0
  71. package/__inner__/cjs/components/Select/SelectContext.js +29 -0
  72. package/__inner__/cjs/components/Select/classNames.d.ts +1 -0
  73. package/__inner__/cjs/components/Select/classNames.js +5 -0
  74. package/__inner__/cjs/components/Select/components/SelectInput/SelectInput.js +14 -15
  75. package/__inner__/cjs/components/Select/components/SelectInput/types.d.ts +0 -22
  76. package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.js +3 -3
  77. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.d.ts +2 -0
  78. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.js +42 -0
  79. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/index.d.ts +1 -0
  80. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/index.js +4 -0
  81. package/__inner__/cjs/components/Select/components/index.d.ts +1 -0
  82. package/__inner__/cjs/components/Select/components/index.js +1 -0
  83. package/__inner__/cjs/components/Select/constants.d.ts +3 -0
  84. package/__inner__/cjs/components/Select/constants.js +8 -1
  85. package/__inner__/cjs/components/Select/entities/index.d.ts +2 -0
  86. package/__inner__/cjs/components/Select/entities/index.js +5 -0
  87. package/__inner__/cjs/components/Select/entities/onClear.d.ts +2 -0
  88. package/__inner__/cjs/components/Select/entities/onClear.js +2 -0
  89. package/__inner__/cjs/components/Select/entities/render.d.ts +6 -0
  90. package/__inner__/cjs/components/Select/entities/render.js +4 -0
  91. package/__inner__/cjs/components/Select/index.d.ts +1 -0
  92. package/__inner__/cjs/components/Select/index.js +1 -0
  93. package/__inner__/cjs/components/Select/types.d.ts +30 -5
  94. package/__inner__/cjs/components/Select/types.js +3 -0
  95. package/__inner__/cjs/components/Stack/Stack.css +3 -0
  96. package/__inner__/cjs/components/Stack/Stack.js +2 -1
  97. package/__inner__/cjs/components/Stack/constants.d.ts +1 -0
  98. package/__inner__/cjs/components/Stack/constants.js +2 -1
  99. package/__inner__/cjs/components/Stack/types.d.ts +4 -0
  100. package/__inner__/cjs/components/Stack/types.js +2 -1
  101. package/__inner__/cjs/hooks/useDevEffect/index.d.ts +1 -0
  102. package/__inner__/cjs/hooks/useDevEffect/index.js +4 -0
  103. package/__inner__/cjs/hooks/useDevEffect/useDevEffect.d.ts +3 -0
  104. package/__inner__/cjs/hooks/useDevEffect/useDevEffect.js +13 -0
  105. package/__inner__/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +3 -2
  106. package/__inner__/cjs/locale/locale.js +48 -3
  107. package/__inner__/cjs/utils/array/createFilled/createFilledArray.d.ts +1 -1
  108. package/__inner__/cjs/utils/array/createFilled/createFilledArray.js +6 -1
  109. package/__inner__/cjs/utils/array/generatePermutations/generatePermutations.d.ts +1 -0
  110. package/__inner__/cjs/utils/array/generatePermutations/generatePermutations.js +47 -0
  111. package/__inner__/cjs/utils/array/generatePermutations/index.d.ts +1 -0
  112. package/__inner__/cjs/utils/array/generatePermutations/index.js +4 -0
  113. package/__inner__/cjs/utils/array/index.d.ts +1 -0
  114. package/__inner__/cjs/utils/array/index.js +1 -0
  115. package/__inner__/esm/components/Autocomplete/helper.d.ts +1 -1
  116. package/__inner__/esm/components/Autocomplete/types.d.ts +1 -1
  117. package/__inner__/esm/components/Calendar/Calendar.js +27 -3
  118. package/__inner__/esm/components/Calendar/CalendarContext.d.ts +8 -1
  119. package/__inner__/esm/components/Calendar/CalendarContext.js +10 -1
  120. package/__inner__/esm/components/Calendar/__tests__/utils.d.ts +11 -0
  121. package/__inner__/esm/components/Calendar/__tests__/utils.js +45 -0
  122. package/__inner__/esm/components/Calendar/components/CalendarGrid/CalendarGrid.js +4 -3
  123. package/__inner__/esm/components/Calendar/components/CalendarItem/CalendarItem.js +25 -2
  124. package/__inner__/esm/components/Calendar/components/CalendarItem/CalendarItemContext.d.ts +1 -0
  125. package/__inner__/esm/components/Calendar/components/CalendarItem/CalendarItemContext.js +1 -0
  126. package/__inner__/esm/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +70 -15
  127. package/__inner__/esm/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +64 -18
  128. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/CalendarSwitcher.js +6 -7
  129. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.d.ts +3 -0
  130. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.js +9 -0
  131. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.d.ts +2 -0
  132. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.js +2 -0
  133. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.d.ts +4 -0
  134. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.js +1 -0
  135. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/index.d.ts +1 -0
  136. package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/index.js +1 -0
  137. package/__inner__/esm/components/Calendar/constants.d.ts +2 -0
  138. package/__inner__/esm/components/Calendar/constants.js +6 -0
  139. package/__inner__/esm/components/Calendar/index.d.ts +1 -0
  140. package/__inner__/esm/components/Calendar/index.js +1 -0
  141. package/__inner__/esm/components/Calendar/types.d.ts +13 -5
  142. package/__inner__/esm/components/Calendar/utils.d.ts +10 -1
  143. package/__inner__/esm/components/Calendar/utils.js +9 -0
  144. package/__inner__/esm/components/DataList/types.d.ts +1 -1
  145. package/__inner__/esm/components/DatePicker/components/DateInput/DateInput.js +3 -2
  146. package/__inner__/esm/components/DatePicker/components/DateInput/types.d.ts +6 -2
  147. package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +2 -1
  148. package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +67 -7
  149. package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +33 -21
  150. package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +68 -45
  151. package/__inner__/esm/components/DatePicker/constants.d.ts +2 -0
  152. package/__inner__/esm/components/DatePicker/constants.js +3 -0
  153. package/__inner__/esm/components/DatePicker/types.d.ts +10 -6
  154. package/__inner__/esm/components/DatePicker/types.js +2 -0
  155. package/__inner__/esm/components/DatePicker/utils/formatDateToString/formatDateToString.d.ts +2 -1
  156. package/__inner__/esm/components/DatePicker/utils/formatDateToString/formatDateToString.js +18 -5
  157. package/__inner__/esm/components/DatePicker/utils/formatStringToDate/formatStringToDate.d.ts +2 -1
  158. package/__inner__/esm/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +6 -5
  159. package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +2 -2
  160. package/__inner__/esm/components/DatePicker/utils/index.d.ts +2 -0
  161. package/__inner__/esm/components/DatePicker/utils/index.js +2 -0
  162. package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +2 -1
  163. package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.js +8 -7
  164. package/__inner__/esm/components/DatePicker/utils/maskPastedDate/index.d.ts +1 -0
  165. package/__inner__/esm/components/DatePicker/utils/maskPastedDate/index.js +1 -0
  166. package/__inner__/esm/components/DatePicker/utils/maskPastedDate/maskPastedDate.d.ts +6 -0
  167. package/__inner__/esm/components/DatePicker/utils/maskPastedDate/maskPastedDate.js +39 -0
  168. package/__inner__/esm/components/DatePicker/utils/parseDateString/index.d.ts +1 -0
  169. package/__inner__/esm/components/DatePicker/utils/parseDateString/index.js +1 -0
  170. package/__inner__/esm/components/DatePicker/utils/parseDateString/parseDateString.d.ts +6 -0
  171. package/__inner__/esm/components/DatePicker/utils/parseDateString/parseDateString.js +62 -0
  172. package/__inner__/esm/components/ListCardItem/hooks/useListCardItemRatio.js +10 -14
  173. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
  174. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
  175. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
  176. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
  177. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
  178. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
  179. package/__inner__/esm/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
  180. package/__inner__/esm/components/Select/Select.css +10 -1
  181. package/__inner__/esm/components/Select/Select.d.ts +0 -1
  182. package/__inner__/esm/components/Select/Select.js +40 -10
  183. package/__inner__/esm/components/Select/SelectContext.d.ts +21 -0
  184. package/__inner__/esm/components/Select/SelectContext.js +25 -0
  185. package/__inner__/esm/components/Select/classNames.d.ts +1 -0
  186. package/__inner__/esm/components/Select/classNames.js +2 -0
  187. package/__inner__/esm/components/Select/components/SelectInput/SelectInput.js +7 -8
  188. package/__inner__/esm/components/Select/components/SelectInput/types.d.ts +0 -22
  189. package/__inner__/esm/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.js +1 -1
  190. package/__inner__/esm/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.d.ts +2 -0
  191. package/__inner__/esm/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.js +38 -0
  192. package/__inner__/esm/components/Select/components/SelectInputRenderRight/index.d.ts +1 -0
  193. package/__inner__/esm/components/Select/components/SelectInputRenderRight/index.js +1 -0
  194. package/__inner__/esm/components/Select/components/index.d.ts +1 -0
  195. package/__inner__/esm/components/Select/components/index.js +1 -0
  196. package/__inner__/esm/components/Select/constants.d.ts +3 -0
  197. package/__inner__/esm/components/Select/constants.js +7 -0
  198. package/__inner__/esm/components/Select/entities/index.d.ts +2 -0
  199. package/__inner__/esm/components/Select/entities/index.js +2 -0
  200. package/__inner__/esm/components/Select/entities/onClear.d.ts +2 -0
  201. package/__inner__/esm/components/Select/entities/onClear.js +1 -0
  202. package/__inner__/esm/components/Select/entities/render.d.ts +6 -0
  203. package/__inner__/esm/components/Select/entities/render.js +1 -0
  204. package/__inner__/esm/components/Select/index.d.ts +1 -0
  205. package/__inner__/esm/components/Select/index.js +1 -0
  206. package/__inner__/esm/components/Select/types.d.ts +30 -5
  207. package/__inner__/esm/components/Select/types.js +2 -1
  208. package/__inner__/esm/components/Stack/Stack.css +3 -0
  209. package/__inner__/esm/components/Stack/Stack.js +3 -2
  210. package/__inner__/esm/components/Stack/constants.d.ts +1 -0
  211. package/__inner__/esm/components/Stack/constants.js +1 -0
  212. package/__inner__/esm/components/Stack/types.d.ts +4 -0
  213. package/__inner__/esm/components/Stack/types.js +1 -0
  214. package/__inner__/esm/hooks/useDevEffect/index.d.ts +1 -0
  215. package/__inner__/esm/hooks/useDevEffect/index.js +1 -0
  216. package/__inner__/esm/hooks/useDevEffect/useDevEffect.d.ts +3 -0
  217. package/__inner__/esm/hooks/useDevEffect/useDevEffect.js +9 -0
  218. package/__inner__/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +3 -2
  219. package/__inner__/esm/locale/locale.js +48 -3
  220. package/__inner__/esm/utils/array/createFilled/createFilledArray.d.ts +1 -1
  221. package/__inner__/esm/utils/array/createFilled/createFilledArray.js +6 -1
  222. package/__inner__/esm/utils/array/generatePermutations/generatePermutations.d.ts +1 -0
  223. package/__inner__/esm/utils/array/generatePermutations/generatePermutations.js +43 -0
  224. package/__inner__/esm/utils/array/generatePermutations/index.d.ts +1 -0
  225. package/__inner__/esm/utils/array/generatePermutations/index.js +1 -0
  226. package/__inner__/esm/utils/array/index.d.ts +1 -0
  227. package/__inner__/esm/utils/array/index.js +1 -0
  228. package/package.json +4 -4
@@ -8,27 +8,30 @@ var useBoolean_1 = require("../../../../hooks/useBoolean");
8
8
  var useControlled_1 = require("../../../../hooks/useControlled");
9
9
  var useMultiRef_1 = require("../../../../hooks/useMultiRef");
10
10
  var useMutableRef_1 = require("../../../../hooks/useMutableRef");
11
- var isKeys_1 = require("../../../../utils/isKeys");
11
+ var useStoredValue_1 = require("../../../../hooks/useStoredValue");
12
+ var utils_1 = require("../../../../utils");
12
13
  var Calendar_1 = require("../../../Calendar");
13
14
  var FieldHint_1 = require("../../../FieldHint");
14
15
  var Popover_1 = require("../../../Popover");
15
16
  var Stack_1 = require("../../../Stack");
17
+ var constants_1 = require("../../constants");
16
18
  var index_1 = require("../../index");
17
- var utils_1 = require("../../utils");
19
+ var utils_2 = require("../../utils");
18
20
  var index_2 = require("../index");
19
- var utils_2 = require("./utils");
21
+ var utils_3 = require("./utils");
20
22
  exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref) {
21
23
  var size = props.size, error = props.error, openProp = props.open, label = props.label, onKeyDown = props.onKeyDown, onInputChange = props.onInputChange, renderLeft = props.renderLeft, renderRight = props.renderRight, required = props.required, fullWidth = props.fullWidth, placeholder = props.placeholder, hint = props.hint, disableStroke = props.disableStroke, hintProps = props.hintProps, onChange = props.onChange, labelProps = props.labelProps, popoverPropsProp = props.popoverProps, calendarPropsProp = props.calendarProps, defaultOpen = props.defaultOpen, onCloseProp = props.onClose, defaultValue = props.defaultValue, valueProp = props.value, inputProps = props.inputProps, disabled = props.disabled, className = props.className, _a = props.calendars, calendars = _a === void 0 ? 2 : _a, onError = props.onError, clearText = props.clearText, disableCloseOnSelect = props.disableCloseOnSelect, disableClearButton = props.disableClearButton, onOpenProp = props.onOpen, fieldsProps = props.fieldsProps,
22
24
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
25
  minDate = props.minDate,
24
26
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
- maxDate = props.maxDate, other = tslib_1.__rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps", "minDate", "maxDate"]);
26
- var _b = tslib_1.__read((0, utils_2.getValueForDoubleProp)(label), 2), labelFrom = _b[0], labelTo = _b[1];
27
- var _c = tslib_1.__read((0, utils_2.getValueForDoubleProp)(renderLeft), 2), renderLeftFrom = _c[0], renderLeftTo = _c[1];
28
- var _d = tslib_1.__read((0, utils_2.getValueForDoubleProp)(renderRight), 2), renderRightFrom = _d[0], renderRightTo = _d[1];
29
- var _e = tslib_1.__read((0, utils_2.getValueForDoubleProp)(placeholder), 2), placeholderFrom = _e[0], placeholderTo = _e[1];
30
- var _f = tslib_1.__read((0, utils_2.getValueForDoubleProp)(inputProps), 2), inputPropsFrom = _f[0], inputPropsTo = _f[1];
31
- var _g = tslib_1.__read((0, utils_2.getValueForDoubleProp)(labelProps), 2), labelPropsFrom = _g[0], labelPropsTo = _g[1];
27
+ maxDate = props.maxDate, _b = props.steps, steps = _b === void 0 ? constants_1.DATE_PICKER_DEFAULT_STEPS : _b, _c = props.initialStep, initialStep = _c === void 0 ? constants_1.DATE_PICKER_DEFAULT_INITIAL_STEP : _c, other = tslib_1.__rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps", "minDate", "maxDate", "steps", "initialStep"]);
28
+ var _d = tslib_1.__read((0, utils_3.getValueForDoubleProp)(label), 2), labelFrom = _d[0], labelTo = _d[1];
29
+ var _e = tslib_1.__read((0, utils_3.getValueForDoubleProp)(renderLeft), 2), renderLeftFrom = _e[0], renderLeftTo = _e[1];
30
+ var _f = tslib_1.__read((0, utils_3.getValueForDoubleProp)(renderRight), 2), renderRightFrom = _f[0], renderRightTo = _f[1];
31
+ var _g = tslib_1.__read((0, utils_3.getValueForDoubleProp)(placeholder), 2), placeholderFrom = _g[0], placeholderTo = _g[1];
32
+ var _h = tslib_1.__read((0, utils_3.getValueForDoubleProp)(inputProps), 2), inputPropsFrom = _h[0], inputPropsTo = _h[1];
33
+ var _j = tslib_1.__read((0, utils_3.getValueForDoubleProp)(labelProps), 2), labelPropsFrom = _j[0], labelPropsTo = _j[1];
34
+ var isWasPaste = (0, useStoredValue_1.useStoredValue)(false);
32
35
  var containerRef = (0, react_1.useRef)(null);
33
36
  var anchorRef = (0, react_1.useRef)(null);
34
37
  var calendarInnerRef = (0, react_1.useRef)(null);
@@ -36,34 +39,34 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
36
39
  var calendarRef = (0, useMultiRef_1.useMultiRef)([calendarInnerRef, calendarPropsProp === null || calendarPropsProp === void 0 ? void 0 : calendarPropsProp.ref]);
37
40
  var fieldsRef = (0, useMultiRef_1.useMultiRef)([anchorRef, fieldsProps === null || fieldsProps === void 0 ? void 0 : fieldsProps.ref]);
38
41
  var rootRef = (0, useMultiRef_1.useMultiRef)([ref, containerRef]);
39
- var _h = tslib_1.__read((0, react_1.useState)(null), 2), offsetDate = _h[0], setOffsetDate = _h[1];
40
- var _j = tslib_1.__read((0, react_1.useState)(null), 2), calendarPeriod = _j[0], setCalendarPeriod = _j[1];
42
+ var _k = tslib_1.__read((0, react_1.useState)(null), 2), offsetDate = _k[0], setOffsetDate = _k[1];
43
+ var _l = tslib_1.__read((0, react_1.useState)(null), 2), calendarPeriod = _l[0], setCalendarPeriod = _l[1];
41
44
  var savedCalendarPeriod = (0, useMutableRef_1.useMutableRef)(calendarPeriod);
42
45
  var lastValidDate = (0, react_1.useRef)(['', '']);
43
- var _k = tslib_1.__read((0, useBoolean_1.useBoolean)(false), 2), focusInputFrom = _k[0], setFocusInputFrom = _k[1];
44
- var _l = tslib_1.__read((0, useBoolean_1.useBoolean)(false), 2), focusInputTo = _l[0], setFocusInputTo = _l[1];
45
- var _m = tslib_1.__read((0, useControlled_1.useControlled)({
46
+ var _m = tslib_1.__read((0, useBoolean_1.useBoolean)(false), 2), focusInputFrom = _m[0], setFocusInputFrom = _m[1];
47
+ var _o = tslib_1.__read((0, useBoolean_1.useBoolean)(false), 2), focusInputTo = _o[0], setFocusInputTo = _o[1];
48
+ var _p = tslib_1.__read((0, useControlled_1.useControlled)({
46
49
  value: valueProp,
47
50
  defaultValue: defaultValue,
48
51
  name: 'DatePicker',
49
52
  state: 'value',
50
- }), 2), value = _m[0], setValue = _m[1];
51
- var _o = tslib_1.__read((0, useControlled_1.useControlled)({
53
+ }), 2), value = _p[0], setValue = _p[1];
54
+ var _q = tslib_1.__read((0, useControlled_1.useControlled)({
52
55
  value: undefined,
53
56
  defaultValue: [],
54
57
  name: 'DatePicker',
55
58
  state: 'inputValue',
56
- }), 2), inputValue = _o[0], setInputValue = _o[1];
57
- var _p = tslib_1.__read(value || [], 2), valueFrom = _p[0], valueTo = _p[1];
58
- var _q = tslib_1.__read(inputValue || [], 2), _r = _q[0], inputValueFrom = _r === void 0 ? '' : _r, _s = _q[1], inputValueTo = _s === void 0 ? '' : _s;
59
- var _t = tslib_1.__read((0, useControlled_1.useControlled)({
59
+ }), 2), inputValue = _q[0], setInputValue = _q[1];
60
+ var _r = tslib_1.__read(value || [], 2), valueFrom = _r[0], valueTo = _r[1];
61
+ var _s = tslib_1.__read(inputValue || [], 2), _t = _s[0], inputValueFrom = _t === void 0 ? '' : _t, _u = _s[1], inputValueTo = _u === void 0 ? '' : _u;
62
+ var _v = tslib_1.__read((0, useControlled_1.useControlled)({
60
63
  value: openProp,
61
64
  defaultValue: defaultOpen,
62
65
  name: 'DatePicker',
63
66
  state: 'open',
64
- }), 2), open = _t[0], setOpen = _t[1];
65
- var popoverProps = (0, utils_1.getCommonPopoverProps)(tslib_1.__assign(tslib_1.__assign({}, props), { popoverProps: popoverPropsProp }));
66
- var calendarProps = (0, utils_1.getCommonCalendarProps)(tslib_1.__assign(tslib_1.__assign({}, props), { calendarProps: calendarPropsProp, ref: calendarRef }));
67
+ }), 2), open = _v[0], setOpen = _v[1];
68
+ var popoverProps = (0, utils_2.getCommonPopoverProps)(tslib_1.__assign(tslib_1.__assign({}, props), { popoverProps: popoverPropsProp }));
69
+ var calendarProps = (0, utils_2.getCommonCalendarProps)(tslib_1.__assign(tslib_1.__assign({}, props), { calendarProps: calendarPropsProp, ref: calendarRef }));
67
70
  var onOffsetDateChange = function (date) {
68
71
  setOffsetDate(date);
69
72
  };
@@ -71,7 +74,7 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
71
74
  setCalendarPeriod(date);
72
75
  }, []);
73
76
  /** Enables calendar keyboard interaction */
74
- var enableEnforceFocusTo = (0, utils_1.useCalendarKeyboard)({
77
+ var enableEnforceFocusTo = (0, utils_2.useCalendarKeyboard)({
75
78
  controlRef: dateInputToRef,
76
79
  calendarRef: calendarInnerRef,
77
80
  active: open,
@@ -79,8 +82,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
79
82
  var disableEnforceFocus = !enableEnforceFocusTo;
80
83
  /** Эффект — синхронизируем значение текстового поля со значением в списке */
81
84
  (0, react_1.useEffect)(function () {
82
- var formattedDateFrom = (0, utils_1.formatDateToString)(valueFrom);
83
- var formattedDateTo = (0, utils_1.formatDateToString)(valueTo);
85
+ var formattedDateFrom = (0, utils_2.formatDateToString)(valueFrom, steps);
86
+ var formattedDateTo = (0, utils_2.formatDateToString)(valueTo, steps);
84
87
  if (formattedDateFrom !== inputValueFrom ||
85
88
  formattedDateTo !== inputValueTo) {
86
89
  setInputValue([formattedDateFrom, formattedDateTo]);
@@ -96,14 +99,14 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
96
99
  }, [onError]);
97
100
  /** Calendar offset when interacting with inputs */
98
101
  (0, react_1.useEffect)(function () {
99
- if (!(0, utils_1.isValidDateString)(inputValueFrom) ||
100
- !(0, utils_1.isValidDateString)(inputValueTo) ||
102
+ if (!(0, utils_2.isValidDateString)(inputValueFrom, steps) ||
103
+ !(0, utils_2.isValidDateString)(inputValueTo, steps) ||
101
104
  !savedCalendarPeriod.current)
102
105
  return;
103
106
  if ((focusInputFrom || focusInputTo) && open && (calendarPeriod === null || calendarPeriod === void 0 ? void 0 : calendarPeriod.length)) {
104
- var firstDate = (0, utils_1.formatStringToDate)(inputValueFrom);
105
- var secondDate = (0, utils_1.formatStringToDate)(inputValueTo);
106
- var offset = (0, utils_2.getOffsetDateInRange)(tslib_1.__assign(tslib_1.__assign({}, (focusInputTo && { type: 'end' })), { calendarPeriod: savedCalendarPeriod.current, value: [firstDate || undefined, secondDate || undefined] }));
107
+ var firstDate = (0, utils_2.formatStringToDate)(inputValueFrom, steps);
108
+ var secondDate = (0, utils_2.formatStringToDate)(inputValueTo, steps);
109
+ var offset = (0, utils_3.getOffsetDateInRange)(tslib_1.__assign(tslib_1.__assign({}, (focusInputTo && { type: 'end' })), { calendarPeriod: savedCalendarPeriod.current, value: [firstDate || undefined, secondDate || undefined] }));
107
110
  setOffsetDate(offset);
108
111
  }
109
112
  }, [
@@ -128,8 +131,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
128
131
  };
129
132
  var callOnChange = function (value) {
130
133
  var _a = tslib_1.__read(value || [], 2), dateFrom = _a[0], dateTo = _a[1];
131
- var formattedDateFrom = (0, utils_1.formatStringToDate)(dateFrom) || undefined;
132
- var formattedDateTo = (0, utils_1.formatStringToDate)(dateTo) || undefined;
134
+ var formattedDateFrom = (0, utils_2.formatStringToDate)(dateFrom, steps) || undefined;
135
+ var formattedDateTo = (0, utils_2.formatStringToDate)(dateTo, steps) || undefined;
133
136
  if (formattedDateTo &&
134
137
  formattedDateFrom &&
135
138
  (formattedDateFrom === null || formattedDateFrom === void 0 ? void 0 : formattedDateFrom.getTime()) > (formattedDateTo === null || formattedDateTo === void 0 ? void 0 : formattedDateTo.getTime())) {
@@ -144,7 +147,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
144
147
  setInputValue(value);
145
148
  onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(e, value);
146
149
  var _a = tslib_1.__read(value || [], 2), valueFrom = _a[0], valueTo = _a[1];
147
- if ((0, utils_1.isValidDateString)(valueFrom) && (0, utils_1.isValidDateString)(valueTo))
150
+ if ((0, utils_2.isValidDateString)(valueFrom, steps) &&
151
+ (0, utils_2.isValidDateString)(valueTo, steps))
148
152
  callOnChange([valueFrom, valueTo]);
149
153
  };
150
154
  var handleExited = function () {
@@ -153,12 +157,20 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
153
157
  setCalendarPeriod(null);
154
158
  (_a = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.onExited) === null || _a === void 0 ? void 0 : _a.call(popoverProps);
155
159
  };
160
+ var prepareInputValue = function (value) {
161
+ var trimmed = value.trim();
162
+ if (isWasPaste.current) {
163
+ return (0, utils_2.maskPastedDate)(trimmed, steps);
164
+ }
165
+ return trimmed;
166
+ };
156
167
  /** Событие ввода значения в текстовом поле */
157
- var handleChangeInputFrom = function (e) {
168
+ var handleChangeInputFrom = function (event) {
158
169
  var _a;
159
- var value = e.target.value;
160
- (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, e);
161
- changeInputValue(e, [value, inputValueTo]);
170
+ var value = prepareInputValue(event.target.value);
171
+ (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, event);
172
+ changeInputValue(event, [value, inputValueTo]);
173
+ isWasPaste.current = false;
162
174
  };
163
175
  /** Очистка поля */
164
176
  var handleClear = function (type) { return function () {
@@ -180,7 +192,7 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
180
192
  setFocusInputFrom.off();
181
193
  if (!inputValue)
182
194
  return;
183
- if (!(0, utils_1.isValidDateString)(inputValueFrom)) {
195
+ if (!(0, utils_2.isValidDateString)(inputValueFrom, steps)) {
184
196
  changeInputValue(null, lastValidDate.current);
185
197
  }
186
198
  };
@@ -190,15 +202,26 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
190
202
  setFocusInputTo.off();
191
203
  if (!inputValue)
192
204
  return;
193
- if (!(0, utils_1.isValidDateString)(inputValueTo))
205
+ if (!(0, utils_2.isValidDateString)(inputValueTo, steps))
194
206
  changeInputValue(null, lastValidDate.current);
195
207
  };
196
208
  /** Событие ввода значения в текстовом поле */
197
- var handleChangeInputTo = function (e) {
209
+ var handleChangeInputTo = function (event) {
210
+ var _a;
211
+ var value = prepareInputValue(event.target.value);
212
+ (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, event);
213
+ changeInputValue(event, [inputValueFrom, value]);
214
+ isWasPaste.current = false;
215
+ };
216
+ var handlePasteInputFrom = function (event) {
217
+ var _a;
218
+ isWasPaste.current = true;
219
+ (_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onPaste) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, event);
220
+ };
221
+ var handlePasteInputTo = function (event) {
198
222
  var _a;
199
- var value = e.target.value;
200
- (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, e);
201
- changeInputValue(e, [inputValueFrom, value]);
223
+ isWasPaste.current = true;
224
+ (_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onPaste) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, event);
202
225
  };
203
226
  /** Открытие списка по клику на текстовом поле */
204
227
  var handleClickOnInputFrom = function (e) {
@@ -214,7 +237,7 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
214
237
  };
215
238
  /** Управление элементом контроля через клавиатуру */
216
239
  var handleKeyDown = function (event) {
217
- if ((0, isKeys_1.isKeys)(event, ['ArrowDown', 'ArrowUp'])) {
240
+ if ((0, utils_1.isKeys)(event, ['ArrowDown', 'ArrowUp'])) {
218
241
  event.preventDefault();
219
242
  handleOpen();
220
243
  }
@@ -224,8 +247,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
224
247
  var handleChangeCalendar = function (date) {
225
248
  var _a = tslib_1.__read(date || [], 2), dateFrom = _a[0], dateTo = _a[1];
226
249
  var formattedDate = [
227
- (0, utils_1.formatDateToString)(dateFrom),
228
- (0, utils_1.formatDateToString)(dateTo),
250
+ (0, utils_2.formatDateToString)(dateFrom, steps),
251
+ (0, utils_2.formatDateToString)(dateTo, steps),
229
252
  ];
230
253
  changeInputValue(null, formattedDate);
231
254
  if (!disableCloseOnSelect && dateFrom && dateTo)
@@ -241,10 +264,10 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
241
264
  disableStroke: disableStroke,
242
265
  }, [className]) }, other, { ref: rootRef }),
243
266
  react_1.default.createElement(Stack_1.Stack, tslib_1.__assign({ gap: "l", className: (0, index_1.cnDatePicker)('Fields', [fieldsProps === null || fieldsProps === void 0 ? void 0 : fieldsProps.className]) }, fieldsProps, { ref: fieldsRef }),
244
- react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelFrom, required: required, disabled: disabled, value: inputValueFrom, onKeyDown: handleKeyDown, renderLeft: renderLeftFrom, labelProps: labelPropsFrom, disableStroke: disableStroke, placeholder: placeholderFrom, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueFrom, clearText: clearText, renderRight: renderRightFrom, onClear: handleClear('from'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsFrom), { onBlur: handleBlurInputFrom, onFocus: handleFocusInputFrom, onClick: handleClickOnInputFrom, onChange: handleChangeInputFrom }), "data-testid": "date-input-from", bodyProps: { 'aria-expanded': open } }),
245
- react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelTo, required: required, disabled: disabled, value: inputValueTo, onKeyDown: handleKeyDown, renderLeft: renderLeftTo, labelProps: labelPropsTo, placeholder: placeholderTo, disableStroke: disableStroke, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueTo, clearText: clearText, renderRight: renderRightTo, onClear: handleClear('to'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsTo), { onBlur: handleBlurInputTo, onFocus: handleFocusInputTo, onClick: handleClickOnInputTo, onChange: handleChangeInputTo }), "data-testid": "date-input-to", bodyProps: { ref: dateInputToRef, 'aria-expanded': open } })),
267
+ react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelFrom, required: required, disabled: disabled, value: inputValueFrom, onKeyDown: handleKeyDown, renderLeft: renderLeftFrom, labelProps: labelPropsFrom, disableStroke: disableStroke, steps: steps, placeholder: placeholderFrom, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueFrom, clearText: clearText, renderRight: renderRightFrom, onClear: handleClear('from'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsFrom), { onBlur: handleBlurInputFrom, onFocus: handleFocusInputFrom, onClick: handleClickOnInputFrom, onChange: handleChangeInputFrom, onPaste: handlePasteInputFrom }), "data-testid": "date-input-from", bodyProps: { 'aria-expanded': open } }),
268
+ react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelTo, required: required, disabled: disabled, value: inputValueTo, onKeyDown: handleKeyDown, renderLeft: renderLeftTo, labelProps: labelPropsTo, placeholder: placeholderTo, disableStroke: disableStroke, steps: steps, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueTo, clearText: clearText, renderRight: renderRightTo, onClear: handleClear('to'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsTo), { onBlur: handleBlurInputTo, onFocus: handleFocusInputTo, onClick: handleClickOnInputTo, onChange: handleChangeInputTo, onPaste: handlePasteInputTo }), "data-testid": "date-input-to", bodyProps: { ref: dateInputToRef, 'aria-expanded': open } })),
246
269
  react_1.default.createElement(FieldHint_1.FieldHint, tslib_1.__assign({ size: size, error: error, disabled: disabled }, hintProps), hint),
247
270
  react_1.default.createElement(Popover_1.Popover, tslib_1.__assign({ open: open, anchorRef: anchorRef, onClose: handleClose }, popoverProps, { onExited: handleExited, ignoreClickOutsideRefs: [containerRef], disableEnforceFocus: disableEnforceFocus }),
248
- react_1.default.createElement(Calendar_1.Calendar, tslib_1.__assign({ calendars: calendars }, calendarProps, { mode: "range", offsetDate: offsetDate, onChange: handleChangeCalendar, value: (0, utils_2.formatDateForCalendar)(value), onCalendarsChange: onCalendarsChange, onOffsetDateChange: onOffsetDateChange })))));
271
+ react_1.default.createElement(Calendar_1.Calendar, tslib_1.__assign({ calendars: calendars }, calendarProps, { initialStep: initialStep, steps: steps, mode: "range", offsetDate: offsetDate, onChange: handleChangeCalendar, value: (0, utils_3.formatDateForCalendar)(value), onCalendarsChange: onCalendarsChange, onOffsetDateChange: onOffsetDateChange })))));
249
272
  });
250
273
  exports.DatePickerModeDateRange.displayName = 'DatePickerModeDateRange';
@@ -1,2 +1,4 @@
1
1
  export declare const DATE_PICKER_DEFAULT_SIZE = "m";
2
2
  export declare const DATE_PICKER_DEFAULT_MODE = "date";
3
+ export declare const DATE_PICKER_DEFAULT_STEPS: ("days" | "months" | "years")[];
4
+ export declare const DATE_PICKER_DEFAULT_INITIAL_STEP = "days";
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DATE_PICKER_DEFAULT_MODE = exports.DATE_PICKER_DEFAULT_SIZE = void 0;
3
+ exports.DATE_PICKER_DEFAULT_INITIAL_STEP = exports.DATE_PICKER_DEFAULT_STEPS = exports.DATE_PICKER_DEFAULT_MODE = exports.DATE_PICKER_DEFAULT_SIZE = void 0;
4
+ var Calendar_1 = require("../Calendar");
4
5
  exports.DATE_PICKER_DEFAULT_SIZE = 'm';
5
6
  exports.DATE_PICKER_DEFAULT_MODE = 'date';
7
+ exports.DATE_PICKER_DEFAULT_STEPS = Calendar_1.CALENDAR_DEFAULT_STEPS;
8
+ exports.DATE_PICKER_DEFAULT_INITIAL_STEP = Calendar_1.CALENDAR_DEFAULT_INITIAL_STEP;
@@ -1,11 +1,11 @@
1
1
  import type { ChangeEvent, ComponentRef, ReactNode } from 'react';
2
2
  import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
3
3
  import type { WithDisplayName } from '../../types/react';
4
- import type { CalendarProps } from '../Calendar';
4
+ import type { CalendarPropCalendars, CalendarProps, CalendarSteps } from '../Calendar';
5
5
  import type { FieldHintProps } from '../FieldHint';
6
6
  import type { FieldInputProps } from '../FieldInput';
7
7
  import type { FieldLabelProps } from '../FieldLabel';
8
- import type { InputProps, InputSizeVariant } from '../Input';
8
+ import type { InputProps } from '../Input';
9
9
  import type { PopoverBaseProps } from '../Popover';
10
10
  import type { StackProps } from '../Stack';
11
11
  import type { DATE_PICKER_DEFAULT_MODE } from './constants';
@@ -19,7 +19,11 @@ export type DatePickerPropOnChange<MODE extends DatePickerModeVariant> = (date:
19
19
  type InputPropLabel = InputProps['label'];
20
20
  type InputPropRenderLeft = InputProps['renderLeft'];
21
21
  type InputPropRenderRight = InputProps['renderRight'];
22
- type InputPropPlaceholder = InputProps['placeholder'];
22
+ type InputPropPlaceholderString = InputProps['placeholder'];
23
+ type InputPropPlaceholderFunction = (steps: CalendarSteps) => InputPropPlaceholderString;
24
+ export type InputPropPlaceholder = InputPropPlaceholderString | InputPropPlaceholderFunction;
25
+ export declare const datePickerSizeVariant: readonly ["2xs", "xs", "s", "m", "l"];
26
+ export type DatePickerSizeVariant = (typeof datePickerSizeVariant)[number];
23
27
  export type DatePickerPropLabel<MODE> = MODE extends Range ? [InputPropLabel?, InputPropLabel?] | InputPropLabel : InputPropLabel;
24
28
  export type DatePickerPropRenderLeft<MODE> = MODE extends Range ? [InputPropRenderLeft?, InputPropRenderLeft?] | InputPropRenderLeft : InputPropRenderLeft;
25
29
  export type DatePickerPropRenderRight<MODE> = MODE extends Range ? [InputPropRenderRight?, InputPropRenderRight?] | InputPropRenderRight : InputPropRenderRight;
@@ -96,7 +100,7 @@ export type DatePickerProps<MODE extends DatePickerModeVariant = typeof DATE_PIC
96
100
  /** Cвойства FieldHint */
97
101
  hintProps?: Omit<FieldHintProps, 'children'>;
98
102
  /** Размер компонента */
99
- size?: InputSizeVariant;
103
+ size?: DatePickerSizeVariant;
100
104
  /** Если `true` растягивает поле на всю ширину */
101
105
  fullWidth?: boolean;
102
106
  /** Если `true` делает элемент обязательным к заполнению */
@@ -108,8 +112,8 @@ export type DatePickerProps<MODE extends DatePickerModeVariant = typeof DATE_PIC
108
112
  /** Свойства обертки для текстовых полей. Принимает свойства компонента [Stack](https://ozen-ui.bereke.tech/?path=/docs/components-stack--docs) */
109
113
  fieldsProps?: DatePickerPropFieldsProps<MODE>;
110
114
  /** Количество отображаемых календарей в компоненте: один или два */
111
- calendars?: 1 | 2;
112
- } & Pick<CalendarProps, 'minDate' | 'maxDate' | 'exclude'> & Pick<InputProps, 'onKeyDown'>, 'div'>;
115
+ calendars?: CalendarPropCalendars;
116
+ } & Pick<CalendarProps, 'minDate' | 'maxDate' | 'exclude' | 'steps' | 'initialStep'> & Pick<InputProps, 'onKeyDown'>, 'div'>;
113
117
  export type DatePickerComponent = WithDisplayName<(<MODE extends DatePickerModeVariant = typeof DATE_PICKER_DEFAULT_MODE>(props: DatePickerProps<MODE>) => ReactNode)>;
114
118
  export type DatePickerModeComponent<MODE extends DatePickerModeVariant> = WithDisplayName<(props: Omit<DatePickerProps<MODE>, 'mode'>) => ReactNode>;
115
119
  export {};
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.datePickerModeVariant = void 0;
3
+ exports.datePickerSizeVariant = exports.datePickerModeVariant = void 0;
4
+ var types_1 = require("../../types");
4
5
  exports.datePickerModeVariant = ['date', 'date-range'];
6
+ exports.datePickerSizeVariant = types_1.formElementSizeVariant;
@@ -1 +1,2 @@
1
- export declare const formatDateToString: (date: Date | undefined | null) => string;
1
+ import type { CalendarSteps } from '../../../Calendar';
2
+ export declare const formatDateToString: (date: Date | undefined | null, steps: CalendarSteps) => string;
@@ -1,13 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatDateToString = void 0;
4
- var formatDateToString = function (date) {
4
+ var formatDateToString = function (date, steps) {
5
5
  if (!date) {
6
6
  return '';
7
7
  }
8
- var year = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date);
9
- var month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date);
10
- var day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date);
11
- return "".concat(day, ".").concat(month, ".").concat(year);
8
+ var hasYearsStep = steps.includes('years');
9
+ var hasMonthsStep = steps.includes('months');
10
+ var hasDaysStep = steps.includes('days');
11
+ var parts = [];
12
+ if (hasDaysStep) {
13
+ var day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date);
14
+ parts.push(day);
15
+ }
16
+ if (hasMonthsStep) {
17
+ var month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date);
18
+ parts.push(month);
19
+ }
20
+ if (hasYearsStep) {
21
+ var year = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date);
22
+ parts.push(year);
23
+ }
24
+ return parts.join('.');
12
25
  };
13
26
  exports.formatDateToString = formatDateToString;
@@ -1 +1,2 @@
1
- export declare const formatStringToDate: (value: string) => Date | null;
1
+ import type { CalendarSteps } from '../../../Calendar';
2
+ export declare const formatStringToDate: (value: string, steps: CalendarSteps) => Date | null;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatStringToDate = void 0;
4
- var tslib_1 = require("tslib");
5
- var formatStringToDate = function (value) {
6
- var _a = tslib_1.__read(value.split('.'), 3), date = _a[0], month = _a[1], year = _a[2];
7
- if (!(date && month && year)) {
4
+ var parseDateString_1 = require("../parseDateString");
5
+ var formatStringToDate = function (value, steps) {
6
+ var parsedDate = (0, parseDateString_1.parseDateString)(value, steps);
7
+ if (!parsedDate) {
8
8
  return null;
9
9
  }
10
- return new Date(+year, +month - 1, +date);
10
+ var day = parsedDate.day, month = parsedDate.month, year = parsedDate.year;
11
+ return new Date(+year, +month - 1, +day);
11
12
  };
12
13
  exports.formatStringToDate = formatStringToDate;
@@ -4,13 +4,13 @@ exports.getCommonCalendarProps = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var getCalendarSizeToFormElement_1 = require("../getCalendarSizeToFormElement");
6
6
  var getCommonCalendarProps = function (props) {
7
- var minDate = props.minDate, maxDate = props.maxDate, exclude = props.exclude, _a = props.size, size = _a === void 0 ? 'm' : _a, ref = props.ref, calendarProps = props.calendarProps;
7
+ var minDate = props.minDate, maxDate = props.maxDate, exclude = props.exclude, _a = props.size, size = _a === void 0 ? 'm' : _a, ref = props.ref, calendarProps = props.calendarProps, steps = props.steps, initialStep = props.initialStep;
8
8
  /** Соотношение размера календаря к размеру элемента контроля */
9
9
  var calendarSize = (0, getCalendarSizeToFormElement_1.getCalendarSizeToFormElement)(size);
10
10
  /** Предотвращаем переход фокуса с текстового поля на интерактивные элементы календаря */
11
11
  var handleMouseDownCalendar = function (e) {
12
12
  e.preventDefault();
13
13
  };
14
- return tslib_1.__assign(tslib_1.__assign({ minDate: minDate, maxDate: maxDate, exclude: exclude, size: calendarSize }, calendarProps), { ref: ref, onMouseDown: handleMouseDownCalendar });
14
+ return tslib_1.__assign(tslib_1.__assign({ minDate: minDate, maxDate: maxDate, exclude: exclude, size: calendarSize }, calendarProps), { ref: ref, onMouseDown: handleMouseDownCalendar, steps: steps, initialStep: initialStep });
15
15
  };
16
16
  exports.getCommonCalendarProps = getCommonCalendarProps;
@@ -6,4 +6,6 @@ export * from './isInExclude';
6
6
  export * from './getCommonPopoverProps';
7
7
  export * from './getCommonCalendarProps';
8
8
  export * from './isValidDateString';
9
+ export * from './maskPastedDate';
10
+ export * from './parseDateString';
9
11
  export * from './useCalendarKeyboard';
@@ -9,4 +9,6 @@ tslib_1.__exportStar(require("./isInExclude"), exports);
9
9
  tslib_1.__exportStar(require("./getCommonPopoverProps"), exports);
10
10
  tslib_1.__exportStar(require("./getCommonCalendarProps"), exports);
11
11
  tslib_1.__exportStar(require("./isValidDateString"), exports);
12
+ tslib_1.__exportStar(require("./maskPastedDate"), exports);
13
+ tslib_1.__exportStar(require("./parseDateString"), exports);
12
14
  tslib_1.__exportStar(require("./useCalendarKeyboard"), exports);
@@ -1 +1,2 @@
1
- export declare const isValidDateString: (value: string | null | undefined) => boolean;
1
+ import type { CalendarSteps } from '../../../Calendar';
2
+ export declare const isValidDateString: (value: string | null | undefined, steps: CalendarSteps) => boolean;
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isValidDateString = void 0;
4
- var tslib_1 = require("tslib");
5
- var date_1 = require("../../../../utils/date");
6
- var isNotNil_1 = require("../../../../utils/isNotNil");
7
- var isValidDateString = function (value) {
8
- if (!(0, isNotNil_1.isNotNil)(value)) {
4
+ var utils_1 = require("../../../../utils");
5
+ var parseDateString_1 = require("../parseDateString");
6
+ var isValidDateString = function (value, steps) {
7
+ if (!(0, utils_1.isNotNil)(value)) {
9
8
  return false;
10
9
  }
11
- var _a = tslib_1.__read(value.split('.'), 3), date = _a[0], month = _a[1], year = _a[2];
12
- return (value === '' ||
13
- (value.length === 10 && (0, date_1.isValidDate)("".concat(year, "-").concat(month, "-").concat(date))));
10
+ if (value === '') {
11
+ return true;
12
+ }
13
+ var parsedDate = (0, parseDateString_1.parseDateString)(value, steps);
14
+ return !!parsedDate;
14
15
  };
15
16
  exports.isValidDateString = isValidDateString;
@@ -0,0 +1 @@
1
+ export * from './maskPastedDate';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./maskPastedDate"), exports);
@@ -0,0 +1,6 @@
1
+ import type { CalendarSteps } from '../../../Calendar';
2
+ /**
3
+ * Функция для обработки вставленного значения.
4
+ * Умеет обрабатывать форматы DD.MM.YYYY/DDMMYYYY, либо сочетания вида DDMM/DD.MM.
5
+ */
6
+ export declare const maskPastedDate: (value: string, steps: CalendarSteps) => string;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maskPastedDate = void 0;
4
+ /**
5
+ * Функция для обработки вставленного значения.
6
+ * Умеет обрабатывать форматы DD.MM.YYYY/DDMMYYYY, либо сочетания вида DDMM/DD.MM.
7
+ */
8
+ var maskPastedDate = function (value, steps) {
9
+ var digits = value.replace(/\D/g, '').slice(0, 8); // максимум 8 цифр
10
+ var hasYearsStep = steps.includes('years');
11
+ var hasMonthsStep = steps.includes('months');
12
+ var hasDaysStep = steps.includes('days');
13
+ // DD
14
+ if (hasDaysStep && !hasMonthsStep && !hasYearsStep) {
15
+ return digits.slice(0, 2);
16
+ }
17
+ // MM
18
+ if (!hasDaysStep && hasMonthsStep && !hasYearsStep) {
19
+ return digits.slice(0, 2);
20
+ }
21
+ // YYYY
22
+ if (!hasDaysStep && !hasMonthsStep && hasYearsStep) {
23
+ return digits.slice(0, 4);
24
+ }
25
+ // DD.MM.YYYY
26
+ if (hasDaysStep && hasMonthsStep && hasYearsStep) {
27
+ return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 4), ".").concat(digits.slice(4, 8));
28
+ }
29
+ // DD.MM
30
+ if (hasDaysStep && hasMonthsStep && !hasYearsStep) {
31
+ return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 4));
32
+ }
33
+ // DD.YYYY
34
+ if (hasDaysStep && !hasMonthsStep && hasYearsStep) {
35
+ return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 6));
36
+ }
37
+ // MM.YYYY
38
+ if (!hasDaysStep && hasMonthsStep && hasYearsStep) {
39
+ return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 6));
40
+ }
41
+ throw new Error('Не удалось сделать маску для значения');
42
+ };
43
+ exports.maskPastedDate = maskPastedDate;
@@ -0,0 +1 @@
1
+ export * from './parseDateString';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./parseDateString"), exports);
@@ -0,0 +1,6 @@
1
+ import type { CalendarSteps } from '../../../Calendar';
2
+ export declare const parseDateString: (value: string | null | undefined, steps: CalendarSteps) => {
3
+ year: string;
4
+ month: string;
5
+ day: string;
6
+ } | null;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDateString = void 0;
4
+ var utils_1 = require("../../../../utils");
5
+ var parseDateString = function (value, steps) {
6
+ if (!(0, utils_1.isNotNil)(value)) {
7
+ return null;
8
+ }
9
+ if (value === '') {
10
+ return null;
11
+ }
12
+ var hasYearsSteps = steps.includes('years');
13
+ var hasMonthsSteps = steps.includes('months');
14
+ var hasDaysSteps = steps.includes('days');
15
+ var splitted = value.split('.');
16
+ var day;
17
+ var month;
18
+ var year;
19
+ var offset = 0;
20
+ if (hasDaysSteps) {
21
+ day = splitted[offset];
22
+ offset += 1;
23
+ }
24
+ if (hasMonthsSteps) {
25
+ month = splitted[offset];
26
+ offset += 1;
27
+ }
28
+ if (hasYearsSteps) {
29
+ year = splitted[offset];
30
+ }
31
+ var parts = [];
32
+ if (hasYearsSteps) {
33
+ parts.push(year);
34
+ }
35
+ else {
36
+ var now = new Date();
37
+ parts.push(now.getFullYear().toString());
38
+ }
39
+ if (hasMonthsSteps) {
40
+ parts.push(month);
41
+ }
42
+ else {
43
+ // 3 месяц для кейса, где пользователь вводит 31 день месяца
44
+ parts.push('03');
45
+ }
46
+ if (hasDaysSteps) {
47
+ parts.push(day);
48
+ }
49
+ else {
50
+ parts.push('01');
51
+ }
52
+ var filteredParts = parts.filter(function (part) { return part !== undefined; });
53
+ if (filteredParts.length !== 3) {
54
+ return null;
55
+ }
56
+ var stringDate = filteredParts.join('-');
57
+ if (stringDate.length !== 10 || !(0, utils_1.isValidDate)(stringDate)) {
58
+ return null;
59
+ }
60
+ return {
61
+ year: parts[0],
62
+ month: parts[1],
63
+ day: parts[2],
64
+ };
65
+ };
66
+ exports.parseDateString = parseDateString;