@salutejs/plasma-new-hope 0.322.0-canary.1933.14596920222.0 → 0.322.0-canary.1939.14616445713.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 +160 -84
  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 +66 -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 +7 -0
  31. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  32. package/cjs/components/DatePicker/utils/dateHelper.js +0 -109
  33. package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
  34. package/cjs/components/DatePicker/utils/getFormattedDates.js +45 -0
  35. package/cjs/components/DatePicker/utils/getFormattedDates.js.map +1 -0
  36. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +27 -0
  37. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js.map +1 -0
  38. package/cjs/components/DatePicker/utils/getOriginalDates.js +49 -0
  39. package/cjs/components/DatePicker/utils/getOriginalDates.js.map +1 -0
  40. package/cjs/components/DatePicker/utils/normalizeDates.js +33 -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 +160 -84
  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 +66 -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 +7 -0
  54. package/emotion/cjs/components/DatePicker/utils/dateHelper.js +1 -104
  55. package/emotion/cjs/components/DatePicker/utils/getFormattedDates.js +43 -0
  56. package/emotion/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +26 -0
  57. package/emotion/cjs/components/DatePicker/utils/getOriginalDates.js +47 -0
  58. package/emotion/cjs/components/DatePicker/utils/index.js +33 -0
  59. package/emotion/cjs/components/DatePicker/utils/normalizeDates.js +31 -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 +161 -85
  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 +67 -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 +7 -0
  75. package/emotion/es/components/DatePicker/utils/dateHelper.js +0 -103
  76. package/emotion/es/components/DatePicker/utils/getFormattedDates.js +37 -0
  77. package/emotion/es/components/DatePicker/utils/getMaskedDateOnInput.js +20 -0
  78. package/emotion/es/components/DatePicker/utils/getOriginalDates.js +41 -0
  79. package/emotion/es/components/DatePicker/utils/index.js +4 -0
  80. package/emotion/es/components/DatePicker/utils/normalizeDates.js +25 -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 +162 -86
  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 +68 -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 +7 -0
  115. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  116. package/es/components/DatePicker/utils/dateHelper.js +1 -105
  117. package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
  118. package/es/components/DatePicker/utils/getFormattedDates.js +41 -0
  119. package/es/components/DatePicker/utils/getFormattedDates.js.map +1 -0
  120. package/es/components/DatePicker/utils/getMaskedDateOnInput.js +23 -0
  121. package/es/components/DatePicker/utils/getMaskedDateOnInput.js.map +1 -0
  122. package/es/components/DatePicker/utils/getOriginalDates.js +45 -0
  123. package/es/components/DatePicker/utils/getOriginalDates.js.map +1 -0
  124. package/es/components/DatePicker/utils/normalizeDates.js +29 -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 +160 -84
  133. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  134. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +66 -33
  135. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +132 -76
  136. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +7 -0
  137. package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +1 -104
  138. package/styled-components/cjs/components/DatePicker/utils/getFormattedDates.js +43 -0
  139. package/styled-components/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +26 -0
  140. package/styled-components/cjs/components/DatePicker/utils/getOriginalDates.js +47 -0
  141. package/styled-components/cjs/components/DatePicker/utils/index.js +33 -0
  142. package/styled-components/cjs/components/DatePicker/utils/normalizeDates.js +31 -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 +161 -85
  152. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  153. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +67 -34
  154. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +131 -75
  155. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +7 -0
  156. package/styled-components/es/components/DatePicker/utils/dateHelper.js +0 -103
  157. package/styled-components/es/components/DatePicker/utils/getFormattedDates.js +37 -0
  158. package/styled-components/es/components/DatePicker/utils/getMaskedDateOnInput.js +20 -0
  159. package/styled-components/es/components/DatePicker/utils/getOriginalDates.js +41 -0
  160. package/styled-components/es/components/DatePicker/utils/index.js +4 -0
  161. package/styled-components/es/components/DatePicker/utils/normalizeDates.js +25 -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 +2 -2
  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 +10 -6
  191. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  192. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +8 -6
  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 +0 -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
@@ -1 +1 @@
1
- {"version":3,"file":"SingleDate.styles.js","sources":["../../../../src/components/DatePicker/SingleDate/SingleDate.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\n\nimport { component, mergeConfig } from '../../../engines';\nimport { textFieldConfig, textFieldTokens } from '../../TextField';\nimport { classes, tokens } from '../DatePicker.tokens';\nimport { popoverClasses, popoverConfig } from '../../Popover';\n\nconst mergedTextFieldConfig = mergeConfig(textFieldConfig);\nconst TextField = component(mergedTextFieldConfig);\n\nconst mergedPopoverConfig = mergeConfig(popoverConfig);\nconst Popover = component(mergedPopoverConfig);\n\nexport const StyledPopover = styled(Popover)``;\n\n// NOTE: переопределение токенов TextField\nexport const StyledInput = styled(TextField)`\n width: 100%;\n\n ${textFieldTokens.color}: var(${tokens.textFieldColor});\n ${textFieldTokens.placeholderColor}: var(${tokens.textFieldPlaceholderColor});\n ${textFieldTokens.placeholderColorFocus}: var(${tokens.textFieldPlaceholderColorFocus});\n ${textFieldTokens.caretColor}: var(${tokens.textFieldCaretColor});\n ${textFieldTokens.focusColor}: var(${tokens.textFieldFocusColor});\n\n ${textFieldTokens.backgroundColor}: var(${tokens.textFieldBackgroundColor});\n ${textFieldTokens.backgroundColorHover}: var(${tokens.textFieldBackgroundColorHover});\n ${textFieldTokens.backgroundColorFocus}: var(${tokens.textFieldBackgroundColorFocus});\n \n ${textFieldTokens.borderColor}: var(${tokens.borderColor});\n ${textFieldTokens.borderColorHover}: var(${tokens.borderColorHover});\n ${textFieldTokens.borderColorFocus}: var(${tokens.borderColorFocus});\n\n ${textFieldTokens.colorReadOnly}: var(${tokens.textFieldColorReadOnly});\n ${textFieldTokens.backgroundColorReadOnly}: var(${tokens.textFieldBackgroundColorReadOnly});\n ${textFieldTokens.borderColorReadOnly}: var(${tokens.textFieldBorderColorReadOnly});\n ${textFieldTokens.placeholderColorReadOnly}: var(${tokens.textFieldPlaceholderColorReadOnly});\n\n ${textFieldTokens.height}: var(${tokens.textFieldHeight});\n ${textFieldTokens.borderWidth}: var(${tokens.textFieldBorderWidth});\n ${textFieldTokens.borderRadius}: var(${tokens.textFieldBorderRadius});\n\n ${textFieldTokens.padding}: var(${tokens.textFieldPadding});\n ${textFieldTokens.labelInnerPadding}: var(${tokens.labelInnerPadding});\n ${textFieldTokens.contentLabelInnerPadding}: var(${tokens.contentLabelInnerPadding});\n\n ${textFieldTokens.labelOffset}: var(${tokens.labelOffset});\n\n ${textFieldTokens.labelFontFamily}: var(${tokens.labelFontFamily});\n ${textFieldTokens.labelFontStyle}: var(${tokens.labelFontStyle});\n ${textFieldTokens.labelFontSize}: var(${tokens.labelFontSize});\n ${textFieldTokens.labelFontWeight}: var(${tokens.labelFontWeight});\n ${textFieldTokens.labelLetterSpacing}: var(${tokens.labelLetterSpacing});\n ${textFieldTokens.labelLineHeight}: var(${tokens.labelLineHeight});\n\n ${textFieldTokens.labelInnerFontFamily}: var(${tokens.labelInnerFontFamily});\n ${textFieldTokens.labelInnerFontSize}: var(${tokens.labelInnerFontSize});\n ${textFieldTokens.labelInnerFontStyle}: var(${tokens.labelInnerFontStyle});\n ${textFieldTokens.labelInnerFontWeight}: var(${tokens.labelInnerFontWeight});\n ${textFieldTokens.labelInnerLetterSpacing}: var(${tokens.labelInnerLetterSpacing});\n ${textFieldTokens.labelInnerLineHeight}: var(${tokens.labelInnerLineHeight});\n ${textFieldTokens.labelColorReadOnly}: var(${tokens.labelColorReadOnly});\n\n ${textFieldTokens.indicatorColor}: var(${tokens.indicatorColor});\n ${textFieldTokens.indicatorSizeInner}: var(${tokens.indicatorSize});\n ${textFieldTokens.indicatorSizeOuter}: var(${tokens.indicatorSizeOuter});\n ${textFieldTokens.indicatorLabelPlacementInner}: var(${tokens.indicatorPlacement});\n ${textFieldTokens.indicatorLabelPlacementOuter}: var(${tokens.indicatorOuterPlacement});\n ${textFieldTokens.indicatorLabelPlacementInnerRight}: var(${tokens.indicatorPlacementRight});\n ${textFieldTokens.indicatorLabelPlacementOuterRight}: var(${tokens.indicatorOuterPlacementRight});\n\n ${textFieldTokens.leftContentMargin}: var(${tokens.textFieldLeftContentMargin});\n ${textFieldTokens.rightContentMargin}: var(${tokens.textFieldRightContentMargin});\n\n ${textFieldTokens.fontFamily}: var(${tokens.textFieldFontFamily});\n ${textFieldTokens.fontSize}: var(${tokens.textFieldFontSize});\n ${textFieldTokens.fontStyle}: var(${tokens.textFieldFontStyle});\n ${textFieldTokens.fontWeight}: var(${tokens.textFieldFontWeight});\n ${textFieldTokens.letterSpacing}: var(${tokens.textFieldLetterSpacing});\n ${textFieldTokens.lineHeight}: var(${tokens.textFieldLineHeight});\n\n ${textFieldTokens.disabledOpacity}: var(${tokens.disabledOpacity});\n \n ${textFieldTokens.textBeforeColor}: var(${tokens.textFieldTextBeforeColor});\n ${textFieldTokens.textAfterColor}: var(${tokens.textFieldTextAfterColor});\n ${textFieldTokens.textBeforeMargin}: var(${tokens.textFieldTextBeforeMargin});\n ${textFieldTokens.textAfterMargin}: var(${tokens.textFieldTextAfterMargin});\n ${textFieldTokens.contentSlotColor}: var(${tokens.textFieldContentSlotColor}, var(${tokens.textFieldColor}));\n ${textFieldTokens.contentSlotRightColor}: var(${tokens.textFieldContentRightSlotColor}, var(${textFieldTokens.contentSlotColor}));\n ${textFieldTokens.contentSlotRightColorHover}: var(${tokens.textFieldContentRightSlotColorHover}, var(${textFieldTokens.contentSlotRightColor}));\n\n &.${classes.datePickerError} {\n ${textFieldTokens.backgroundColor}: var(${tokens.textFieldBackgroundErrorColor});\n ${textFieldTokens.backgroundColorHover}: var(${tokens.textFieldBackgroundErrorColorHover});\n ${textFieldTokens.backgroundColorFocus}: var(${tokens.textFieldBackgroundErrorColorFocus});\n \n ${textFieldTokens.borderColor}: var(${tokens.textFieldBorderColorError});\n ${textFieldTokens.borderColorHover}: var(${tokens.textFieldBorderColorErrorHover});\n ${textFieldTokens.borderColorFocus}: var(${tokens.textFieldBorderColorErrorFocus});\n }\n\n &.${classes.datePickerSuccess} {\n ${textFieldTokens.backgroundColor}: var(${tokens.textFieldBackgroundSuccessColor});\n ${textFieldTokens.backgroundColorHover}: var(${tokens.textFieldBackgroundSuccessColorHover});\n ${textFieldTokens.backgroundColorFocus}: var(${tokens.textFieldBackgroundSuccessColorFocus});\n \n ${textFieldTokens.borderColor}: var(${tokens.textFieldBorderColorSuccess});\n ${textFieldTokens.borderColorHover}: var(${tokens.textFieldBorderColorSuccessHover});\n ${textFieldTokens.borderColorFocus}: var(${tokens.textFieldBorderColorSuccessFocus});\n }\n`;\n\nexport const base = css`\n display: inline-block;\n\n .${String(popoverClasses.wrapper)}, .${String(popoverClasses.target)} {\n width: inherit;\n }\n`;\n\nexport const LeftHelper = styled.div`\n color: var(${tokens.leftHelperColor});\n\n &.${classes.datePickerError} {\n color: var(${tokens.leftHelperColorError});\n }\n\n &.${classes.datePickerSuccess} {\n color: var(${tokens.leftHelperColorSuccess});\n }\n`;\n"],"names":["mergedTextFieldConfig","mergeConfig","textFieldConfig","TextField","component","mergedPopoverConfig","popoverConfig","Popover","_exp","StyledPopover","styled","name","class","propsAsIs","_exp2","StyledInput","base","LeftHelper"],"mappings":";;;;;AAQA,IAAMA,qBAAqB,gBAAGC,WAAW,CAACC,eAAe,CAAC,CAAA;AAC1D,IAAMC,SAAS,gBAAGC,SAAS,CAACJ,qBAAqB,CAAC,CAAA;AAElD,IAAMK,mBAAmB,gBAAGJ,WAAW,CAACK,aAAa,CAAC,CAAA;AACtD,IAAMC,OAAO,gBAAGH,SAAS,CAACC,mBAAmB,CAAC,CAAA;AAAC,IAAAG,IAAA,GAX7BA,SAW6BA,IAAAA,GAAA;AAAA,EAAA,OAEXD,OAAO,CAAA;AAAA,CAAA,CAAA;AAApC,IAAME,aAAa,gBAAGC,MAAM,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAAG,EAAAA,IAAA,EAAA,eAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,IAAA;AAAA,CAAW,EAAA;;AAE9C;AAAA,IAAAC,KAAA,GAfkBA,SAelBA,KAAAA,GAAA;AAAA,EAAA,OACkCX,SAAS,CAAA;AAAA,CAAA,CAAA;AAApC,IAAMY,WAAW,gBAAGL,MAAM,CAAAI,KAAA,EAAA,CAAA,CAAA;AAAAH,EAAAA,IAAA,EAAA,aAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,IAAA;AAAA,CA8FhC,EAAA;AAEM,IAAMG,IAAI,GAMhB,UAAA;AAEM,IAAMC,UAAU,gBAAGP,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,QAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAU/B;;;;"}
1
+ {"version":3,"file":"SingleDate.styles.js","sources":["../../../../src/components/DatePicker/SingleDate/SingleDate.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\nimport { component, mergeConfig } from 'src/engines';\n\nimport { textFieldConfig, textFieldTokens } from '../../TextField';\nimport { classes, tokens } from '../DatePicker.tokens';\nimport { popoverClasses, popoverConfig } from '../../Popover';\n\nconst mergedTextFieldConfig = mergeConfig(textFieldConfig);\nconst TextField = component(mergedTextFieldConfig);\n\nconst mergedPopoverConfig = mergeConfig(popoverConfig);\nconst Popover = component(mergedPopoverConfig);\n\nexport const StyledPopover = styled(Popover)``;\n\n// NOTE: переопределение токенов TextField\nexport const StyledInput = styled(TextField)`\n width: 100%;\n\n ${textFieldTokens.color}: var(${tokens.textFieldColor});\n ${textFieldTokens.placeholderColor}: var(${tokens.textFieldPlaceholderColor});\n ${textFieldTokens.placeholderColorFocus}: var(${tokens.textFieldPlaceholderColorFocus});\n ${textFieldTokens.caretColor}: var(${tokens.textFieldCaretColor});\n ${textFieldTokens.focusColor}: var(${tokens.textFieldFocusColor});\n\n ${textFieldTokens.backgroundColor}: var(${tokens.textFieldBackgroundColor});\n ${textFieldTokens.backgroundColorHover}: var(${tokens.textFieldBackgroundColorHover});\n ${textFieldTokens.backgroundColorFocus}: var(${tokens.textFieldBackgroundColorFocus});\n \n ${textFieldTokens.borderColor}: var(${tokens.borderColor});\n ${textFieldTokens.borderColorHover}: var(${tokens.borderColorHover});\n ${textFieldTokens.borderColorFocus}: var(${tokens.borderColorFocus});\n\n ${textFieldTokens.colorReadOnly}: var(${tokens.textFieldColorReadOnly});\n ${textFieldTokens.backgroundColorReadOnly}: var(${tokens.textFieldBackgroundColorReadOnly});\n ${textFieldTokens.borderColorReadOnly}: var(${tokens.textFieldBorderColorReadOnly});\n ${textFieldTokens.placeholderColorReadOnly}: var(${tokens.textFieldPlaceholderColorReadOnly});\n\n ${textFieldTokens.height}: var(${tokens.textFieldHeight});\n ${textFieldTokens.borderWidth}: var(${tokens.textFieldBorderWidth});\n ${textFieldTokens.borderRadius}: var(${tokens.textFieldBorderRadius});\n\n ${textFieldTokens.padding}: var(${tokens.textFieldPadding});\n ${textFieldTokens.labelInnerPadding}: var(${tokens.labelInnerPadding});\n ${textFieldTokens.contentLabelInnerPadding}: var(${tokens.contentLabelInnerPadding});\n\n ${textFieldTokens.labelOffset}: var(${tokens.labelOffset});\n\n ${textFieldTokens.labelFontFamily}: var(${tokens.labelFontFamily});\n ${textFieldTokens.labelFontStyle}: var(${tokens.labelFontStyle});\n ${textFieldTokens.labelFontSize}: var(${tokens.labelFontSize});\n ${textFieldTokens.labelFontWeight}: var(${tokens.labelFontWeight});\n ${textFieldTokens.labelLetterSpacing}: var(${tokens.labelLetterSpacing});\n ${textFieldTokens.labelLineHeight}: var(${tokens.labelLineHeight});\n\n ${textFieldTokens.labelInnerFontFamily}: var(${tokens.labelInnerFontFamily});\n ${textFieldTokens.labelInnerFontSize}: var(${tokens.labelInnerFontSize});\n ${textFieldTokens.labelInnerFontStyle}: var(${tokens.labelInnerFontStyle});\n ${textFieldTokens.labelInnerFontWeight}: var(${tokens.labelInnerFontWeight});\n ${textFieldTokens.labelInnerLetterSpacing}: var(${tokens.labelInnerLetterSpacing});\n ${textFieldTokens.labelInnerLineHeight}: var(${tokens.labelInnerLineHeight});\n ${textFieldTokens.labelColorReadOnly}: var(${tokens.labelColorReadOnly});\n\n ${textFieldTokens.indicatorColor}: var(${tokens.indicatorColor});\n ${textFieldTokens.indicatorSizeInner}: var(${tokens.indicatorSize});\n ${textFieldTokens.indicatorSizeOuter}: var(${tokens.indicatorSizeOuter});\n ${textFieldTokens.indicatorLabelPlacementInner}: var(${tokens.indicatorPlacement});\n ${textFieldTokens.indicatorLabelPlacementOuter}: var(${tokens.indicatorOuterPlacement});\n ${textFieldTokens.indicatorLabelPlacementInnerRight}: var(${tokens.indicatorPlacementRight});\n ${textFieldTokens.indicatorLabelPlacementOuterRight}: var(${tokens.indicatorOuterPlacementRight});\n\n ${textFieldTokens.leftContentMargin}: var(${tokens.textFieldLeftContentMargin});\n ${textFieldTokens.rightContentMargin}: var(${tokens.textFieldRightContentMargin});\n\n ${textFieldTokens.fontFamily}: var(${tokens.textFieldFontFamily});\n ${textFieldTokens.fontSize}: var(${tokens.textFieldFontSize});\n ${textFieldTokens.fontStyle}: var(${tokens.textFieldFontStyle});\n ${textFieldTokens.fontWeight}: var(${tokens.textFieldFontWeight});\n ${textFieldTokens.letterSpacing}: var(${tokens.textFieldLetterSpacing});\n ${textFieldTokens.lineHeight}: var(${tokens.textFieldLineHeight});\n\n ${textFieldTokens.disabledOpacity}: var(${tokens.disabledOpacity});\n \n ${textFieldTokens.textBeforeColor}: var(${tokens.textFieldTextBeforeColor});\n ${textFieldTokens.textAfterColor}: var(${tokens.textFieldTextAfterColor});\n ${textFieldTokens.textBeforeMargin}: var(${tokens.textFieldTextBeforeMargin});\n ${textFieldTokens.textAfterMargin}: var(${tokens.textFieldTextAfterMargin});\n ${textFieldTokens.contentSlotColor}: var(${tokens.textFieldContentSlotColor}, var(${tokens.textFieldColor}));\n ${textFieldTokens.contentSlotRightColor}: var(${tokens.textFieldContentRightSlotColor}, var(${textFieldTokens.contentSlotColor}));\n ${textFieldTokens.contentSlotRightColorHover}: var(${tokens.textFieldContentRightSlotColorHover}, var(${textFieldTokens.contentSlotRightColor}));\n\n &.${classes.datePickerError} {\n ${textFieldTokens.backgroundColor}: var(${tokens.textFieldBackgroundErrorColor});\n ${textFieldTokens.backgroundColorHover}: var(${tokens.textFieldBackgroundErrorColorHover});\n ${textFieldTokens.backgroundColorFocus}: var(${tokens.textFieldBackgroundErrorColorFocus});\n \n ${textFieldTokens.borderColor}: var(${tokens.textFieldBorderColorError});\n ${textFieldTokens.borderColorHover}: var(${tokens.textFieldBorderColorErrorHover});\n ${textFieldTokens.borderColorFocus}: var(${tokens.textFieldBorderColorErrorFocus});\n }\n\n &.${classes.datePickerSuccess} {\n ${textFieldTokens.backgroundColor}: var(${tokens.textFieldBackgroundSuccessColor});\n ${textFieldTokens.backgroundColorHover}: var(${tokens.textFieldBackgroundSuccessColorHover});\n ${textFieldTokens.backgroundColorFocus}: var(${tokens.textFieldBackgroundSuccessColorFocus});\n \n ${textFieldTokens.borderColor}: var(${tokens.textFieldBorderColorSuccess});\n ${textFieldTokens.borderColorHover}: var(${tokens.textFieldBorderColorSuccessHover});\n ${textFieldTokens.borderColorFocus}: var(${tokens.textFieldBorderColorSuccessFocus});\n }\n`;\n\nexport const base = css`\n display: inline-block;\n\n .${String(popoverClasses.wrapper)}, .${String(popoverClasses.target)} {\n width: inherit;\n }\n`;\n\nexport const LeftHelper = styled.div`\n color: var(${tokens.leftHelperColor});\n\n &.${classes.datePickerError} {\n color: var(${tokens.leftHelperColorError});\n }\n\n &.${classes.datePickerSuccess} {\n color: var(${tokens.leftHelperColorSuccess});\n }\n`;\n"],"names":["mergedTextFieldConfig","mergeConfig","textFieldConfig","TextField","component","mergedPopoverConfig","popoverConfig","Popover","_exp","StyledPopover","styled","name","class","propsAsIs","_exp2","StyledInput","base","LeftHelper"],"mappings":";;;;;AAQA,IAAMA,qBAAqB,gBAAGC,WAAW,CAACC,eAAe,CAAC,CAAA;AAC1D,IAAMC,SAAS,gBAAGC,SAAS,CAACJ,qBAAqB,CAAC,CAAA;AAElD,IAAMK,mBAAmB,gBAAGJ,WAAW,CAACK,aAAa,CAAC,CAAA;AACtD,IAAMC,OAAO,gBAAGH,SAAS,CAACC,mBAAmB,CAAC,CAAA;AAAC,IAAAG,IAAA,GAX7BA,SAW6BA,IAAAA,GAAA;AAAA,EAAA,OAEXD,OAAO,CAAA;AAAA,CAAA,CAAA;AAApC,IAAME,aAAa,gBAAGC,MAAM,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAAG,EAAAA,IAAA,EAAA,eAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,IAAA;AAAA,CAAW,EAAA;;AAE9C;AAAA,IAAAC,KAAA,GAfkBA,SAelBA,KAAAA,GAAA;AAAA,EAAA,OACkCX,SAAS,CAAA;AAAA,CAAA,CAAA;AAApC,IAAMY,WAAW,gBAAGL,MAAM,CAAAI,KAAA,EAAA,CAAA,CAAA;AAAAH,EAAAA,IAAA,EAAA,aAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,IAAA;AAAA,CA8FhC,EAAA;AAEM,IAAMG,IAAI,GAMhB,UAAA;AAEM,IAAMC,UAAU,gBAAGP,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,QAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAU/B;;;;"}
@@ -1,148 +1,205 @@
1
+ import { customDayjs } from '../../../utils/datejs.js';
1
2
  import { classes } from '../DatePicker.tokens.js';
2
- import { getMaskedDateOnInput, formatCalendarValue, formatInputValue, validateDateWithFullMonth, getDateFromFormat } from '../utils/dateHelper.js';
3
+ import { getMaskedDateOnInput } from '../utils/getMaskedDateOnInput.js';
4
+ import { getFormattedDates } from '../utils/getFormattedDates.js';
5
+ import { QUARTER_NAMES } from '../../Calendar/utils/constants.js';
3
6
 
4
7
  var useDatePicker = function useDatePicker(_ref) {
5
8
  var currentValue = _ref.currentValue,
6
- setInputValue = _ref.setInputValue,
7
- setCalendarValue = _ref.setCalendarValue,
8
- dateFormatDelimiter = _ref.dateFormatDelimiter,
9
9
  format = _ref.format,
10
10
  _ref$lang = _ref.lang,
11
11
  lang = _ref$lang === void 0 ? 'ru' : _ref$lang,
12
12
  disabled = _ref.disabled,
13
13
  readOnly = _ref.readOnly,
14
- maskWithFormat = _ref.maskWithFormat,
15
14
  valueError = _ref.valueError,
16
15
  valueSuccess = _ref.valueSuccess,
17
16
  name = _ref.name,
17
+ type = _ref.type,
18
+ min = _ref.min,
19
+ max = _ref.max,
20
+ includeEdgeDates = _ref.includeEdgeDates,
21
+ maskWithFormat = _ref.maskWithFormat,
22
+ setCorrectDates = _ref.setCorrectDates,
23
+ setInputValue = _ref.setInputValue,
24
+ setCalendarValue = _ref.setCalendarValue,
25
+ dateFormatDelimiter = _ref.dateFormatDelimiter,
18
26
  onChangeValue = _ref.onChangeValue,
19
27
  onCommitDate = _ref.onCommitDate,
20
28
  onChange = _ref.onChange;
21
29
  var datePickerErrorClass = valueError ? classes.datePickerError : undefined;
22
30
  var datePickerSuccessClass = valueSuccess ? classes.datePickerSuccess : undefined;
31
+ var getQuarterInfo = function getQuarterInfo(originalDate) {
32
+ if (type !== 'Quarters') {
33
+ return;
34
+ }
35
+ var endQuarter = new Date(originalDate);
36
+ endQuarter.setMonth(originalDate.getMonth() + 3);
37
+ endQuarter.setDate(0);
38
+ customDayjs.locale(lang);
39
+ var quarterIndex = customDayjs(originalDate).quarter() - 1;
40
+ return {
41
+ name: QUARTER_NAMES[quarterIndex],
42
+ fullValue: [originalDate, endQuarter]
43
+ };
44
+ };
23
45
  var handleChangeValue = function handleChangeValue(event) {
24
46
  if (disabled || readOnly) {
25
47
  return;
26
48
  }
27
49
  var value = event.target.value;
28
50
  var newValue = maskWithFormat ? getMaskedDateOnInput(value, format, dateFormatDelimiter(), currentValue) : value;
29
- if (!format) {
30
- setCalendarValue(formatCalendarValue(newValue));
31
- setInputValue(formatInputValue({
51
+ var _getFormattedDates = getFormattedDates({
32
52
  value: newValue,
53
+ lang: lang,
54
+ delimiter: dateFormatDelimiter(),
33
55
  format: format,
34
- lang: lang
35
- }));
36
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, newValue);
56
+ includeEdgeDates: includeEdgeDates,
57
+ min: min,
58
+ max: max
59
+ }),
60
+ formattedDate = _getFormattedDates.formattedDate,
61
+ isoDate = _getFormattedDates.isoDate,
62
+ originalDate = _getFormattedDates.originalDate;
63
+ if (originalDate) {
64
+ setCorrectDates({
65
+ calendar: originalDate,
66
+ input: formattedDate
67
+ });
68
+ var dateInfo = getQuarterInfo(originalDate);
69
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, originalDate, isoDate);
70
+ setCalendarValue(originalDate);
71
+ setInputValue(formattedDate);
72
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, formattedDate, originalDate, isoDate);
37
73
  onChange === null || onChange === void 0 || onChange({
38
74
  target: {
39
- value: newValue,
75
+ value: formattedDate,
76
+ originalDate: originalDate,
77
+ isoDate: isoDate,
40
78
  name: name
41
79
  }
42
80
  });
43
81
  return;
44
82
  }
45
- var _validateDateWithFull = validateDateWithFullMonth({
46
- currentValue: newValue,
47
- format: format,
48
- lang: lang
49
- }),
50
- hasMonthFullName = _validateDateWithFull.hasMonthFullName,
51
- isValidMonth = _validateDateWithFull.isValidMonth,
52
- isLengthEqual = _validateDateWithFull.isLengthEqual;
53
- if (!hasMonthFullName && (newValue === null || newValue === void 0 ? void 0 : newValue.length) === (format === null || format === void 0 ? void 0 : format.length) || isValidMonth && isLengthEqual) {
54
- setCalendarValue(formatCalendarValue(newValue, format, lang));
83
+ if (formattedDate === '') {
84
+ setCorrectDates({
85
+ calendar: undefined,
86
+ input: ''
87
+ });
55
88
  }
56
- setInputValue(formatInputValue({
57
- value: newValue,
58
- format: format,
59
- lang: lang,
60
- hasMonthFullName: hasMonthFullName,
61
- isValidMonth: isValidMonth,
62
- isLengthEqual: isLengthEqual
63
- }));
64
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, newValue);
89
+ setCalendarValue(originalDate);
90
+ setInputValue(formattedDate);
91
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(event, formattedDate, originalDate, isoDate);
65
92
  onChange === null || onChange === void 0 || onChange({
66
93
  target: {
67
- value: newValue,
94
+ value: formattedDate,
95
+ originalDate: originalDate,
96
+ isoDate: isoDate,
68
97
  name: name
69
98
  }
70
99
  });
71
100
  };
72
- var handleCommitDate = function handleCommitDate(date, applyFormat, isCalendarValue, dateInfo) {
101
+ var handleSearch = function handleSearch(date) {
73
102
  if (disabled || readOnly) {
74
103
  return;
75
104
  }
76
105
  if (!date) {
77
106
  setCalendarValue(undefined);
78
107
  setInputValue('');
79
- return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
108
+ return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true, undefined, undefined, '');
80
109
  }
81
- if (isCalendarValue) {
82
- var _formattedInputValue = formatInputValue({
110
+ var _getFormattedDates2 = getFormattedDates({
83
111
  value: date,
112
+ lang: lang,
113
+ delimiter: dateFormatDelimiter(),
84
114
  format: format,
85
- lang: lang
115
+ includeEdgeDates: includeEdgeDates,
116
+ min: min,
117
+ max: max
118
+ }),
119
+ formattedDate = _getFormattedDates2.formattedDate,
120
+ isoDate = _getFormattedDates2.isoDate,
121
+ originalDate = _getFormattedDates2.originalDate;
122
+ if (originalDate) {
123
+ var dateInfo = getQuarterInfo(originalDate);
124
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, originalDate, isoDate);
125
+ }
126
+ };
127
+ var handleCalendarPick = function handleCalendarPick(date, dateInfo) {
128
+ if (disabled || readOnly) {
129
+ return;
130
+ }
131
+ if (!date) {
132
+ setInputValue('');
133
+ setCalendarValue(date);
134
+ setCorrectDates({
135
+ calendar: date || undefined,
136
+ input: ''
86
137
  });
87
- setCalendarValue(formatCalendarValue(date, format, lang));
88
- setInputValue(_formattedInputValue);
89
- onCommitDate === null || onCommitDate === void 0 || onCommitDate(date, false, true, dateInfo);
90
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, _formattedInputValue);
138
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, '', date, '');
91
139
  onChange === null || onChange === void 0 || onChange({
92
140
  target: {
93
- value: _formattedInputValue,
141
+ value: '',
142
+ originalDate: date,
143
+ isoDate: '',
94
144
  name: name
95
145
  }
96
146
  });
147
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate('', false, true, dateInfo, date || undefined, '');
97
148
  return;
98
149
  }
99
- var formatString = applyFormat ? format : undefined;
100
- var _getDateFromFormat = getDateFromFormat(date, formatString, lang),
101
- newDate = _getDateFromFormat.value,
102
- isError = _getDateFromFormat.isError,
103
- isSuccess = _getDateFromFormat.isSuccess;
104
- var formattedInputValue = formatInputValue({
105
- value: newDate,
106
- format: format,
107
- lang: lang
150
+ customDayjs.locale(lang);
151
+ var formattedDate = customDayjs(date).format(format);
152
+ var isoDate = date.toISOString();
153
+ setCalendarValue(date);
154
+ setInputValue(formattedDate);
155
+ setCorrectDates({
156
+ calendar: date,
157
+ input: formattedDate
108
158
  });
109
- setCalendarValue(formatCalendarValue(newDate, format, lang));
110
- setInputValue(formattedInputValue);
111
- onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
112
- onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedInputValue);
159
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedDate, date, isoDate);
113
160
  onChange === null || onChange === void 0 || onChange({
114
161
  target: {
115
- value: formattedInputValue,
162
+ value: formattedDate,
163
+ originalDate: date,
164
+ isoDate: isoDate,
116
165
  name: name
117
166
  }
118
167
  });
168
+ onCommitDate === null || onCommitDate === void 0 || onCommitDate(formattedDate, false, true, dateInfo, date, isoDate);
119
169
  };
120
- var updateExternalDate = function updateExternalDate(externalDate, inputSetter, calendarSetter) {
121
- inputSetter(formatInputValue({
122
- value: externalDate,
123
- format: format,
124
- lang: lang
125
- }));
126
- if (!format) {
127
- calendarSetter(formatCalendarValue(externalDate, undefined, lang));
128
- return;
129
- }
130
- if (!externalDate) {
131
- calendarSetter(undefined);
132
- return;
170
+ var updateExternalDate = function updateExternalDate(externalDate) {
171
+ var _getFormattedDates3 = getFormattedDates({
172
+ value: externalDate || null,
173
+ lang: lang,
174
+ delimiter: dateFormatDelimiter(),
175
+ format: format,
176
+ includeEdgeDates: includeEdgeDates,
177
+ min: min,
178
+ max: max
179
+ }),
180
+ formattedDate = _getFormattedDates3.formattedDate,
181
+ originalDate = _getFormattedDates3.originalDate;
182
+ setInputValue(formattedDate);
183
+ setCalendarValue(originalDate);
184
+ if (originalDate) {
185
+ setCorrectDates({
186
+ calendar: originalDate,
187
+ input: formattedDate
188
+ });
133
189
  }
134
- var _getDateFromFormat2 = getDateFromFormat(externalDate, undefined, lang),
135
- newDate = _getDateFromFormat2.value,
136
- isError = _getDateFromFormat2.isError;
137
- if (!isError) {
138
- calendarSetter(formatCalendarValue(newDate, format, lang));
190
+ if (formattedDate === '') {
191
+ setCorrectDates({
192
+ calendar: undefined,
193
+ input: ''
194
+ });
139
195
  }
140
196
  };
141
197
  return {
142
198
  datePickerErrorClass: datePickerErrorClass,
143
199
  datePickerSuccessClass: datePickerSuccessClass,
144
200
  handleChangeValue: handleChangeValue,
145
- handleCommitDate: handleCommitDate,
201
+ handleSearch: handleSearch,
202
+ handleCalendarPick: handleCalendarPick,
146
203
  updateExternalDate: updateExternalDate
147
204
  };
148
205
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDatePicker.js","sources":["../../../../src/components/DatePicker/hooks/useDatePicker.ts"],"sourcesContent":["import type { ChangeEvent, Dispatch, SetStateAction } from 'react';\n\nimport { classes } from '../DatePicker.tokens';\nimport type { UseDatePickerProps } from '../DatePickerBase.types';\nimport {\n formatCalendarValue,\n formatInputValue,\n getDateFromFormat,\n getMaskedDateOnInput,\n validateDateWithFullMonth,\n} from '../utils/dateHelper';\nimport type { DateInfo } from '../../Calendar/Calendar.types';\n\nexport const useDatePicker = ({\n currentValue,\n setInputValue,\n setCalendarValue,\n dateFormatDelimiter,\n format,\n lang = 'ru',\n disabled,\n readOnly,\n maskWithFormat,\n valueError,\n valueSuccess,\n name,\n onChangeValue,\n onCommitDate,\n onChange,\n}: UseDatePickerProps) => {\n const datePickerErrorClass = valueError ? classes.datePickerError : undefined;\n const datePickerSuccessClass = valueSuccess ? classes.datePickerSuccess : undefined;\n\n const handleChangeValue = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n return;\n }\n const { value } = event.target;\n\n const newValue = maskWithFormat\n ? getMaskedDateOnInput(value, format, dateFormatDelimiter(), currentValue)\n : value;\n\n if (!format) {\n setCalendarValue(formatCalendarValue(newValue));\n setInputValue(formatInputValue({ value: newValue, format, lang }));\n onChangeValue?.(event, newValue);\n onChange?.({ target: { value: newValue, name } });\n\n return;\n }\n\n const { hasMonthFullName, isValidMonth, isLengthEqual } = validateDateWithFullMonth({\n currentValue: newValue,\n format,\n lang,\n });\n\n if ((!hasMonthFullName && newValue?.length === format?.length) || (isValidMonth && isLengthEqual)) {\n setCalendarValue(formatCalendarValue(newValue, format, lang));\n }\n\n setInputValue(\n formatInputValue({ value: newValue, format, lang, hasMonthFullName, isValidMonth, isLengthEqual }),\n );\n\n onChangeValue?.(event, newValue);\n onChange?.({ target: { value: newValue, name } });\n };\n\n const handleCommitDate = (\n date?: Date | string,\n applyFormat?: boolean,\n isCalendarValue?: boolean,\n dateInfo?: DateInfo,\n ) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (!date) {\n setCalendarValue(undefined);\n setInputValue('');\n\n return onCommitDate?.('', false, true);\n }\n\n if (isCalendarValue) {\n const formattedInputValue = formatInputValue({ value: date, format, lang });\n\n setCalendarValue(formatCalendarValue(date, format, lang));\n setInputValue(formattedInputValue);\n\n onCommitDate?.(date, false, true, dateInfo);\n onChangeValue?.(null, formattedInputValue);\n onChange?.({ target: { value: formattedInputValue, name } });\n\n return;\n }\n\n const formatString = applyFormat ? format : undefined;\n\n const { value: newDate, isError, isSuccess } = getDateFromFormat(date, formatString, lang);\n const formattedInputValue = formatInputValue({ value: newDate, format, lang });\n\n setCalendarValue(formatCalendarValue(newDate, format, lang));\n setInputValue(formattedInputValue);\n\n onCommitDate?.(newDate, isError, isSuccess);\n onChangeValue?.(null, formattedInputValue);\n onChange?.({ target: { value: formattedInputValue, name } });\n };\n\n const updateExternalDate = (\n externalDate: Date | string | undefined,\n inputSetter: Dispatch<SetStateAction<string>>,\n calendarSetter: Dispatch<SetStateAction<Date | undefined>>,\n ) => {\n inputSetter(formatInputValue({ value: externalDate, format, lang }));\n\n if (!format) {\n calendarSetter(formatCalendarValue(externalDate, undefined, lang));\n return;\n }\n\n if (!externalDate) {\n calendarSetter(undefined);\n return;\n }\n\n const { value: newDate, isError } = getDateFromFormat(externalDate, undefined, lang);\n\n if (!isError) {\n calendarSetter(formatCalendarValue(newDate, format, lang));\n }\n };\n\n return {\n datePickerErrorClass,\n datePickerSuccessClass,\n handleChangeValue,\n handleCommitDate,\n updateExternalDate,\n };\n};\n"],"names":["useDatePicker","_ref","currentValue","setInputValue","setCalendarValue","dateFormatDelimiter","format","_ref$lang","lang","disabled","readOnly","maskWithFormat","valueError","valueSuccess","name","onChangeValue","onCommitDate","onChange","datePickerErrorClass","classes","datePickerError","undefined","datePickerSuccessClass","datePickerSuccess","handleChangeValue","event","value","target","newValue","getMaskedDateOnInput","formatCalendarValue","formatInputValue","_validateDateWithFull","validateDateWithFullMonth","hasMonthFullName","isValidMonth","isLengthEqual","length","handleCommitDate","date","applyFormat","isCalendarValue","dateInfo","formattedInputValue","formatString","_getDateFromFormat","getDateFromFormat","newDate","isError","isSuccess","updateExternalDate","externalDate","inputSetter","calendarSetter","_getDateFromFormat2"],"mappings":"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"}
1
+ {"version":3,"file":"useDatePicker.js","sources":["../../../../src/components/DatePicker/hooks/useDatePicker.ts"],"sourcesContent":["import type { ChangeEvent } from 'react';\nimport { customDayjs } from 'src/utils/datejs';\nimport { QUARTER_NAMES } from 'src/components/Calendar/utils';\n\nimport { classes } from '../DatePicker.tokens';\nimport type { UseDatePickerProps } from '../DatePickerBase.types';\nimport type { CalendarValueType, DateInfo } from '../../Calendar/Calendar.types';\nimport { getFormattedDates, getMaskedDateOnInput } from '../utils';\n\nexport const useDatePicker = ({\n currentValue,\n format,\n lang = 'ru',\n disabled,\n readOnly,\n valueError,\n valueSuccess,\n name,\n type,\n min,\n max,\n includeEdgeDates,\n maskWithFormat,\n setCorrectDates,\n setInputValue,\n setCalendarValue,\n dateFormatDelimiter,\n onChangeValue,\n onCommitDate,\n onChange,\n}: UseDatePickerProps) => {\n const datePickerErrorClass = valueError ? classes.datePickerError : undefined;\n const datePickerSuccessClass = valueSuccess ? classes.datePickerSuccess : undefined;\n\n const getQuarterInfo = (originalDate: Date) => {\n if (type !== 'Quarters') {\n return;\n }\n\n const endQuarter = new Date(originalDate);\n\n endQuarter.setMonth(originalDate.getMonth() + 3);\n endQuarter.setDate(0);\n\n customDayjs.locale(lang);\n const quarterIndex = customDayjs(originalDate).quarter() - 1;\n\n return {\n name: QUARTER_NAMES[quarterIndex],\n fullValue: [originalDate, endQuarter] as CalendarValueType,\n };\n };\n\n const handleChangeValue = (event: ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n return;\n }\n const { value } = event.target;\n\n const newValue = maskWithFormat\n ? getMaskedDateOnInput(value, format, dateFormatDelimiter(), currentValue)\n : value;\n\n const { formattedDate, isoDate, originalDate } = getFormattedDates({\n value: newValue,\n lang,\n delimiter: dateFormatDelimiter(),\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n if (originalDate) {\n setCorrectDates({ calendar: originalDate, input: formattedDate });\n\n const dateInfo = getQuarterInfo(originalDate);\n\n onCommitDate?.(formattedDate, false, true, dateInfo, originalDate, isoDate);\n\n setCalendarValue(originalDate);\n setInputValue(formattedDate);\n\n onChangeValue?.(event, formattedDate, originalDate, isoDate);\n onChange?.({\n target: {\n value: formattedDate,\n originalDate,\n isoDate,\n name,\n },\n });\n\n return;\n }\n\n if (formattedDate === '') {\n setCorrectDates({ calendar: undefined, input: '' });\n }\n\n setCalendarValue(originalDate);\n setInputValue(formattedDate);\n\n onChangeValue?.(event, formattedDate, originalDate, isoDate);\n onChange?.({ target: { value: formattedDate, originalDate, isoDate, name } });\n };\n\n const handleSearch = (date: string) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (!date) {\n setCalendarValue(undefined);\n setInputValue('');\n\n return onCommitDate?.('', false, true, undefined, undefined, '');\n }\n\n const { formattedDate, isoDate, originalDate } = getFormattedDates({\n value: date,\n lang,\n delimiter: dateFormatDelimiter(),\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n if (originalDate) {\n const dateInfo = getQuarterInfo(originalDate);\n\n onCommitDate?.(formattedDate, false, true, dateInfo, originalDate, isoDate);\n }\n };\n\n const handleCalendarPick = (date?: Date | null, dateInfo?: DateInfo) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (!date) {\n setInputValue('');\n setCalendarValue(date);\n setCorrectDates({ calendar: date || undefined, input: '' });\n\n onChangeValue?.(null, '', date, '');\n onChange?.({ target: { value: '', originalDate: date, isoDate: '', name } });\n onCommitDate?.('', false, true, dateInfo, date || undefined, '');\n\n return;\n }\n\n customDayjs.locale(lang);\n const formattedDate = customDayjs(date).format(format);\n const isoDate = date.toISOString();\n\n setCalendarValue(date);\n setInputValue(formattedDate);\n setCorrectDates({ calendar: date, input: formattedDate });\n\n onChangeValue?.(null, formattedDate, date, isoDate);\n onChange?.({ target: { value: formattedDate, originalDate: date, isoDate, name } });\n onCommitDate?.(formattedDate, false, true, dateInfo, date, isoDate);\n };\n\n const updateExternalDate = (externalDate: Date | string | undefined) => {\n const { formattedDate, originalDate } = getFormattedDates({\n value: externalDate || null,\n lang,\n delimiter: dateFormatDelimiter(),\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n setInputValue(formattedDate);\n setCalendarValue(originalDate);\n\n if (originalDate) {\n setCorrectDates({ calendar: originalDate, input: formattedDate });\n }\n\n if (formattedDate === '') {\n setCorrectDates({ calendar: undefined, input: '' });\n }\n };\n\n return {\n datePickerErrorClass,\n datePickerSuccessClass,\n handleChangeValue,\n handleSearch,\n handleCalendarPick,\n updateExternalDate,\n };\n};\n"],"names":["useDatePicker","_ref","currentValue","format","_ref$lang","lang","disabled","readOnly","valueError","valueSuccess","name","type","min","max","includeEdgeDates","maskWithFormat","setCorrectDates","setInputValue","setCalendarValue","dateFormatDelimiter","onChangeValue","onCommitDate","onChange","datePickerErrorClass","classes","datePickerError","undefined","datePickerSuccessClass","datePickerSuccess","getQuarterInfo","originalDate","endQuarter","Date","setMonth","getMonth","setDate","customDayjs","locale","quarterIndex","quarter","QUARTER_NAMES","fullValue","handleChangeValue","event","value","target","newValue","getMaskedDateOnInput","_getFormattedDates","getFormattedDates","delimiter","formattedDate","isoDate","calendar","input","dateInfo","handleSearch","date","_getFormattedDates2","handleCalendarPick","toISOString","updateExternalDate","externalDate","_getFormattedDates3"],"mappings":"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"}
@@ -5,8 +5,15 @@ var keys = {
5
5
  var useKeyNavigation = function useKeyNavigation(_ref) {
6
6
  var isCalendarOpen = _ref.isCalendarOpen,
7
7
  closeOnEsc = _ref.closeOnEsc,
8
+ format = _ref.format,
9
+ maskWithFormat = _ref.maskWithFormat,
10
+ delimiter = _ref.delimiter,
8
11
  onToggle = _ref.onToggle;
9
12
  var onKeyDown = function onKeyDown(event) {
13
+ if (event.key === delimiter && maskWithFormat && format && !/M{3,4}/g.test(format)) {
14
+ event.preventDefault();
15
+ return;
16
+ }
10
17
  switch (event.code) {
11
18
  case keys.Space:
12
19
  {
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/DatePicker/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEvent, SyntheticEvent } from 'react';\n\ninterface Props {\n isCalendarOpen: boolean;\n closeOnEsc: boolean;\n onToggle: (isOpen: boolean, event: SyntheticEvent | Event) => void;\n}\n\nexport const keys = {\n Space: 'Space',\n Escape: 'Escape',\n};\n\nexport const useKeyNavigation = ({ isCalendarOpen, closeOnEsc, onToggle }: Props) => {\n const onKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n switch (event.code) {\n case keys.Space: {\n if (!isCalendarOpen) {\n event.preventDefault();\n onToggle(true, event);\n }\n break;\n }\n case keys.Escape: {\n if (isCalendarOpen && closeOnEsc) {\n event.preventDefault();\n onToggle(false, event);\n }\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["keys","Space","Escape","useKeyNavigation","_ref","isCalendarOpen","closeOnEsc","onToggle","onKeyDown","event","code","preventDefault"],"mappings":"AAQO,IAAMA,IAAI,GAAG;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAA;AACZ,EAAC;IAEYC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAAwD;AAAA,EAAA,IAAlDC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ,CAAA;AACnE,EAAA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIC,KAAsE,EAAK;IAC1F,QAAQA,KAAK,CAACC,IAAI;MACd,KAAKV,IAAI,CAACC,KAAK;AAAE,QAAA;UACb,IAAI,CAACI,cAAc,EAAE;YACjBI,KAAK,CAACE,cAAc,EAAE,CAAA;AACtBJ,YAAAA,QAAQ,CAAC,IAAI,EAAEE,KAAK,CAAC,CAAA;AACzB,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;MACA,KAAKT,IAAI,CAACE,MAAM;AAAE,QAAA;UACd,IAAIG,cAAc,IAAIC,UAAU,EAAE;YAC9BG,KAAK,CAACE,cAAc,EAAE,CAAA;AACtBJ,YAAAA,QAAQ,CAAC,KAAK,EAAEE,KAAK,CAAC,CAAA;AAC1B,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;AAKJ,KAAA;GACH,CAAA;EAED,OAAO;AAAED,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../src/components/DatePicker/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEvent, SyntheticEvent } from 'react';\n\ninterface Props {\n isCalendarOpen: boolean;\n closeOnEsc: boolean;\n delimiter: string;\n format?: string;\n maskWithFormat?: boolean;\n onToggle: (isOpen: boolean, event: SyntheticEvent | Event) => void;\n}\n\nexport const keys = {\n Space: 'Space',\n Escape: 'Escape',\n};\n\nexport const useKeyNavigation = ({\n isCalendarOpen,\n closeOnEsc,\n format,\n maskWithFormat,\n delimiter,\n onToggle,\n}: Props) => {\n const onKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n if (event.key === delimiter && maskWithFormat && format && !/M{3,4}/g.test(format)) {\n event.preventDefault();\n return;\n }\n\n switch (event.code) {\n case keys.Space: {\n if (!isCalendarOpen) {\n event.preventDefault();\n onToggle(true, event);\n }\n break;\n }\n case keys.Escape: {\n if (isCalendarOpen && closeOnEsc) {\n event.preventDefault();\n onToggle(false, event);\n }\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return { onKeyDown };\n};\n"],"names":["keys","Space","Escape","useKeyNavigation","_ref","isCalendarOpen","closeOnEsc","format","maskWithFormat","delimiter","onToggle","onKeyDown","event","key","test","preventDefault","code"],"mappings":"AAWO,IAAMA,IAAI,GAAG;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAA;AACZ,EAAC;IAEYC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAOhB;AAAA,EAAA,IANTC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IACdC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,cAAc,GAAAJ,IAAA,CAAdI,cAAc;IACdC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,QAAQ,GAAAN,IAAA,CAARM,QAAQ,CAAA;AAER,EAAA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAIC,KAAsE,EAAK;AAC1F,IAAA,IAAIA,KAAK,CAACC,GAAG,KAAKJ,SAAS,IAAID,cAAc,IAAID,MAAM,IAAI,CAAC,SAAS,CAACO,IAAI,CAACP,MAAM,CAAC,EAAE;MAChFK,KAAK,CAACG,cAAc,EAAE,CAAA;AACtB,MAAA,OAAA;AACJ,KAAA;IAEA,QAAQH,KAAK,CAACI,IAAI;MACd,KAAKhB,IAAI,CAACC,KAAK;AAAE,QAAA;UACb,IAAI,CAACI,cAAc,EAAE;YACjBO,KAAK,CAACG,cAAc,EAAE,CAAA;AACtBL,YAAAA,QAAQ,CAAC,IAAI,EAAEE,KAAK,CAAC,CAAA;AACzB,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;MACA,KAAKZ,IAAI,CAACE,MAAM;AAAE,QAAA;UACd,IAAIG,cAAc,IAAIC,UAAU,EAAE;YAC9BM,KAAK,CAACG,cAAc,EAAE,CAAA;AACtBL,YAAAA,QAAQ,CAAC,KAAK,EAAEE,KAAK,CAAC,CAAA;AAC1B,WAAA;AACA,UAAA,MAAA;AACJ,SAAA;AAKJ,KAAA;GACH,CAAA;EAED,OAAO;AAAED,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACxB;;;;"}
@@ -1,59 +1,3 @@
1
- import { customDayjs } from '../../../utils/datejs.js';
2
-
3
- var formatInputValue = function formatInputValue(_ref) {
4
- var value = _ref.value,
5
- format = _ref.format,
6
- lang = _ref.lang,
7
- hasMonthFullName = _ref.hasMonthFullName,
8
- isValidMonth = _ref.isValidMonth,
9
- isLengthEqual = _ref.isLengthEqual;
10
- if (!value || !lang) {
11
- return '';
12
- }
13
- if (hasMonthFullName && (!isValidMonth || !isLengthEqual)) {
14
- return String(value);
15
- }
16
- if (format && customDayjs(value, format, true).isValid()) {
17
- return customDayjs(value, format).locale(lang).format(format);
18
- }
19
- if (format && String(value).length >= 10 && String(new Date(value)) !== 'Invalid Date') {
20
- return customDayjs(value).locale(lang).format(format);
21
- }
22
- return String(value);
23
- };
24
- var formatCalendarValue = function formatCalendarValue(value, format, lang) {
25
- if (!value || !lang) {
26
- return undefined;
27
- }
28
- if (format && customDayjs(value, format, true).isValid()) {
29
- return customDayjs(value, format, true).locale(lang).toDate();
30
- }
31
- if (String(new Date(value)) !== 'Invalid Date') {
32
- return customDayjs(value).locale(lang).toDate();
33
- }
34
- return undefined;
35
- };
36
- var getDateFromFormat = function getDateFromFormat(value, format, lang) {
37
- if (format && customDayjs(value, format, true).isValid() && lang) {
38
- return {
39
- value: customDayjs(value, format, true).locale(lang).toDate(),
40
- isError: false,
41
- isSuccess: true
42
- };
43
- }
44
- if (!format && String(new Date(value)) !== 'Invalid Date' && lang) {
45
- return {
46
- value: customDayjs(value).locale(lang).toDate(),
47
- isError: false,
48
- isSuccess: true
49
- };
50
- }
51
- return {
52
- value: value,
53
- isError: true,
54
- isSuccess: false
55
- };
56
- };
57
1
  var getDateFormatDelimiter = function getDateFormatDelimiter(format) {
58
2
  var _format$match;
59
3
  if (!format) {
@@ -62,54 +6,6 @@ var getDateFormatDelimiter = function getDateFormatDelimiter(format) {
62
6
  var delimiter = (_format$match = format.match(/[^a-zA-Z0-9]/)) === null || _format$match === void 0 ? void 0 : _format$match[0];
63
7
  return delimiter !== null && delimiter !== void 0 ? delimiter : '';
64
8
  };
65
- var getMaskedDateOnInput = function getMaskedDateOnInput(value, format, delimiter, prevValue) {
66
- if (!value) {
67
- return '';
68
- }
69
- if (!format || !delimiter || /M{3,4}/g.test(format)) {
70
- return value;
71
- }
72
- if (value.length >= format.length) {
73
- return value.slice(0, format.length);
74
- }
75
- if (prevValue && value.length < prevValue.length && (prevValue === null || prevValue === void 0 ? void 0 : prevValue[value.length]) === delimiter) {
76
- return value.slice(0, -1);
77
- }
78
- if ((format === null || format === void 0 ? void 0 : format[value.length]) === delimiter) {
79
- return value + delimiter;
80
- }
81
- return value;
82
- };
83
- var validateDateWithFullMonth = function validateDateWithFullMonth(_ref2) {
84
- var currentValue = _ref2.currentValue,
85
- format = _ref2.format,
86
- lang = _ref2.lang;
87
- /**
88
- * NOTE: если в формате даты есть месяц в полном названии или сокращенном,
89
- * нужно дополнительно проводить валидацию на полноту введенной даты.
90
- * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
91
- */
92
- var hasMonthFullName = /M{3,4}/g.test(format);
93
- if (!hasMonthFullName) {
94
- return {
95
- hasMonthFullName: hasMonthFullName,
96
- isValidMonth: false,
97
- isLengthEqual: false
98
- };
99
- }
100
- customDayjs.locale(lang);
101
- var firstIndexOfMonth = format.indexOf('M');
102
- var lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);
103
- var fullMonthName = !lastIndexOfMonth ? currentValue.slice(firstIndexOfMonth) : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);
104
- var monthFormatting = format.replace(/[^M]/g, '');
105
- var isValidMonth = customDayjs("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
106
- var isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;
107
- return {
108
- hasMonthFullName: hasMonthFullName,
109
- isValidMonth: isValidMonth,
110
- isLengthEqual: isLengthEqual
111
- };
112
- };
113
9
 
114
- export { formatCalendarValue, formatInputValue, getDateFormatDelimiter, getDateFromFormat, getMaskedDateOnInput, validateDateWithFullMonth };
10
+ export { getDateFormatDelimiter };
115
11
  //# sourceMappingURL=dateHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateHelper.js","sources":["../../../../src/components/DatePicker/utils/dateHelper.ts"],"sourcesContent":["import { customDayjs } from '../../../utils/datejs';\nimport { ValidateDateArgs } from '../DatePickerBase.types';\n\nexport type Langs = 'ru' | 'en';\n\ntype FormatInputValueArgs = {\n value?: Date | string;\n format?: string;\n lang?: Langs;\n hasMonthFullName?: boolean;\n isValidMonth?: boolean;\n isLengthEqual?: boolean;\n};\n\nexport const formatInputValue = ({\n value,\n format,\n lang,\n hasMonthFullName,\n isValidMonth,\n isLengthEqual,\n}: FormatInputValueArgs) => {\n if (!value || !lang) {\n return '';\n }\n\n if (hasMonthFullName && (!isValidMonth || !isLengthEqual)) {\n return String(value);\n }\n\n if (format && customDayjs(value, format, true).isValid()) {\n return customDayjs(value, format).locale(lang).format(format);\n }\n\n if (format && String(value).length >= 10 && String(new Date(value)) !== 'Invalid Date') {\n return customDayjs(value).locale(lang).format(format);\n }\n\n return String(value);\n};\n\nexport const formatCalendarValue = (value?: Date | string, format?: string, lang?: Langs) => {\n if (!value || !lang) {\n return undefined;\n }\n\n if (format && customDayjs(value, format, true).isValid()) {\n return customDayjs(value, format, true).locale(lang).toDate();\n }\n\n if (String(new Date(value)) !== 'Invalid Date') {\n return customDayjs(value).locale(lang).toDate();\n }\n\n return undefined;\n};\n\nexport const getDateFromFormat = (value: Date | string, format?: string, lang?: Langs) => {\n if (format && customDayjs(value, format, true).isValid() && lang) {\n return { value: customDayjs(value, format, true).locale(lang).toDate(), isError: false, isSuccess: true };\n }\n\n if (!format && String(new Date(value)) !== 'Invalid Date' && lang) {\n return { value: customDayjs(value).locale(lang).toDate(), isError: false, isSuccess: true };\n }\n\n return { value, isError: true, isSuccess: false };\n};\n\nexport const getDateFormatDelimiter = (format?: string) => {\n if (!format) {\n return '';\n }\n\n const delimiter = format.match(/[^a-zA-Z0-9]/)?.[0];\n\n return delimiter ?? '';\n};\n\nexport const getMaskedDateOnInput = (value?: string, format?: string, delimiter?: string, prevValue?: string) => {\n if (!value) {\n return '';\n }\n\n if (!format || !delimiter || /M{3,4}/g.test(format)) {\n return value;\n }\n\n if (value.length >= format.length) {\n return value.slice(0, format.length);\n }\n\n if (prevValue && value.length < prevValue.length && prevValue?.[value.length] === delimiter) {\n return value.slice(0, -1);\n }\n\n if (format?.[value.length] === delimiter) {\n return value + delimiter;\n }\n\n return value;\n};\n\nexport const validateDateWithFullMonth = ({ currentValue, format, lang }: ValidateDateArgs) => {\n /**\n * NOTE: если в формате даты есть месяц в полном названии или сокращенном,\n * нужно дополнительно проводить валидацию на полноту введенной даты.\n * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.\n */\n const hasMonthFullName = /M{3,4}/g.test(format);\n\n if (!hasMonthFullName) {\n return {\n hasMonthFullName,\n isValidMonth: false,\n isLengthEqual: false,\n };\n }\n\n customDayjs.locale(lang);\n\n const firstIndexOfMonth = format.indexOf('M');\n const lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);\n\n const fullMonthName = !lastIndexOfMonth\n ? currentValue.slice(firstIndexOfMonth)\n : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);\n\n const monthFormatting = format.replace(/[^M]/g, '');\n\n const isValidMonth = customDayjs(`01 ${fullMonthName} 1970`, `DD ${monthFormatting} YYYY`, true).isValid();\n const isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;\n\n return {\n hasMonthFullName,\n isValidMonth,\n isLengthEqual,\n };\n};\n"],"names":["formatInputValue","_ref","value","format","lang","hasMonthFullName","isValidMonth","isLengthEqual","String","customDayjs","isValid","locale","length","Date","formatCalendarValue","undefined","toDate","getDateFromFormat","isError","isSuccess","getDateFormatDelimiter","_format$match","delimiter","match","getMaskedDateOnInput","prevValue","test","slice","validateDateWithFullMonth","_ref2","currentValue","firstIndexOfMonth","indexOf","lastIndexOfMonth","fullMonthName","monthFormatting","replace","concat"],"mappings":"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"}
1
+ {"version":3,"file":"dateHelper.js","sources":["../../../../src/components/DatePicker/utils/dateHelper.ts"],"sourcesContent":["export type Langs = 'ru' | 'en';\n\nexport const getDateFormatDelimiter = (format?: string) => {\n if (!format) {\n return '';\n }\n\n const delimiter = format.match(/[^a-zA-Z0-9]/)?.[0];\n\n return delimiter ?? '';\n};\n"],"names":["getDateFormatDelimiter","format","_format$match","delimiter","match"],"mappings":"IAEaA,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,MAAe,EAAK;AAAA,EAAA,IAAAC,aAAA,CAAA;EACvD,IAAI,CAACD,MAAM,EAAE;AACT,IAAA,OAAO,EAAE,CAAA;AACb,GAAA;AAEA,EAAA,IAAME,SAAS,GAAAD,CAAAA,aAAA,GAAGD,MAAM,CAACG,KAAK,CAAC,cAAc,CAAC,cAAAF,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,aAAA,CAA+B,CAAC,CAAC,CAAA;AAEnD,EAAA,OAAOC,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAA;AAC1B;;;;"}
@@ -0,0 +1,41 @@
1
+ import { getOriginalDates } from './getOriginalDates.js';
2
+ import { normalizeDates } from './normalizeDates.js';
3
+
4
+ var getFormattedDates = function getFormattedDates(_ref) {
5
+ var value = _ref.value,
6
+ lang = _ref.lang,
7
+ format = _ref.format,
8
+ includeEdgeDates = _ref.includeEdgeDates,
9
+ min = _ref.min,
10
+ max = _ref.max;
11
+ var _getOriginalDates = getOriginalDates(value, lang, format),
12
+ formattedDate = _getOriginalDates.formattedDate,
13
+ isoDate = _getOriginalDates.isoDate,
14
+ originalDate = _getOriginalDates.originalDate;
15
+ if (!originalDate) {
16
+ var innerValue = format && (/M{3,4}/g.test(format) ? formattedDate : formattedDate.slice(0, format.length));
17
+ return {
18
+ formattedDate: innerValue || '',
19
+ isoDate: isoDate,
20
+ originalDate: originalDate
21
+ };
22
+ }
23
+ var _normalizeDates = normalizeDates({
24
+ originalDate: originalDate,
25
+ lang: lang,
26
+ format: format,
27
+ includeEdgeDates: includeEdgeDates,
28
+ min: min,
29
+ max: max
30
+ }),
31
+ normalizedDate = _normalizeDates.normalizedDate,
32
+ formattedNormalizedDate = _normalizeDates.formattedNormalizedDate;
33
+ return {
34
+ formattedDate: formattedNormalizedDate,
35
+ isoDate: normalizedDate.toISOString(),
36
+ originalDate: normalizedDate
37
+ };
38
+ };
39
+
40
+ export { getFormattedDates };
41
+ //# sourceMappingURL=getFormattedDates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFormattedDates.js","sources":["../../../../src/components/DatePicker/utils/getFormattedDates.ts"],"sourcesContent":["import type { Langs } from './dateHelper';\nimport { getOriginalDates } from './getOriginalDates';\nimport { normalizeDates } from './normalizeDates';\n\ntype GetFormattedDatesArgs = {\n value: Date | string | null;\n delimiter: string;\n lang?: Langs;\n format?: string;\n includeEdgeDates?: boolean;\n min?: Date;\n max?: Date;\n};\n\nexport const getFormattedDates = ({ value, lang, format, includeEdgeDates, min, max }: GetFormattedDatesArgs) => {\n const { formattedDate, isoDate, originalDate } = getOriginalDates(value, lang, format);\n\n if (!originalDate) {\n const innerValue = format && (/M{3,4}/g.test(format) ? formattedDate : formattedDate.slice(0, format.length));\n\n return {\n formattedDate: innerValue || '',\n isoDate,\n originalDate,\n };\n }\n\n const { normalizedDate, formattedNormalizedDate } = normalizeDates({\n originalDate,\n lang,\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n return {\n formattedDate: formattedNormalizedDate,\n isoDate: normalizedDate.toISOString(),\n originalDate: normalizedDate,\n };\n};\n"],"names":["getFormattedDates","_ref","value","lang","format","includeEdgeDates","min","max","_getOriginalDates","getOriginalDates","formattedDate","isoDate","originalDate","innerValue","test","slice","length","_normalizeDates","normalizeDates","normalizedDate","formattedNormalizedDate","toISOString"],"mappings":";;;IAcaA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAAmF;AAAA,EAAA,IAA7EC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAEC,gBAAgB,GAAAJ,IAAA,CAAhBI,gBAAgB;IAAEC,GAAG,GAAAL,IAAA,CAAHK,GAAG;IAAEC,GAAG,GAAAN,IAAA,CAAHM,GAAG,CAAA;EAC/E,IAAAC,iBAAA,GAAiDC,gBAAgB,CAACP,KAAK,EAAEC,IAAI,EAAEC,MAAM,CAAC;IAA9EM,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEC,OAAO,GAAAH,iBAAA,CAAPG,OAAO;IAAEC,YAAY,GAAAJ,iBAAA,CAAZI,YAAY,CAAA;EAE5C,IAAI,CAACA,YAAY,EAAE;IACf,IAAMC,UAAU,GAAGT,MAAM,KAAK,SAAS,CAACU,IAAI,CAACV,MAAM,CAAC,GAAGM,aAAa,GAAGA,aAAa,CAACK,KAAK,CAAC,CAAC,EAAEX,MAAM,CAACY,MAAM,CAAC,CAAC,CAAA;IAE7G,OAAO;MACHN,aAAa,EAAEG,UAAU,IAAI,EAAE;AAC/BF,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,YAAY,EAAZA,YAAAA;KACH,CAAA;AACL,GAAA;EAEA,IAAAK,eAAA,GAAoDC,cAAc,CAAC;AAC/DN,MAAAA,YAAY,EAAZA,YAAY;AACZT,MAAAA,IAAI,EAAJA,IAAI;AACJC,MAAAA,MAAM,EAANA,MAAM;AACNC,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,MAAAA,GAAG,EAAHA,GAAG;AACHC,MAAAA,GAAG,EAAHA,GAAAA;AACJ,KAAC,CAAC;IAPMY,cAAc,GAAAF,eAAA,CAAdE,cAAc;IAAEC,uBAAuB,GAAAH,eAAA,CAAvBG,uBAAuB,CAAA;EAS/C,OAAO;AACHV,IAAAA,aAAa,EAAEU,uBAAuB;AACtCT,IAAAA,OAAO,EAAEQ,cAAc,CAACE,WAAW,EAAE;AACrCT,IAAAA,YAAY,EAAEO,cAAAA;GACjB,CAAA;AACL;;;;"}
@@ -0,0 +1,23 @@
1
+ var getMaskedDateOnInput = function getMaskedDateOnInput(value, format, delimiter, prevValue) {
2
+ if (!value) {
3
+ return '';
4
+ }
5
+ if (!format || !delimiter || /M{3,4}/g.test(format)) {
6
+ return value;
7
+ }
8
+ var dateRegExp = new RegExp("[^0-9".concat(delimiter, "]"), 'g');
9
+ var formattedValue = value.replace(dateRegExp, '');
10
+ if (formattedValue.length >= format.length) {
11
+ return formattedValue.slice(0, format.length);
12
+ }
13
+ if (prevValue && formattedValue.length < prevValue.length && (prevValue === null || prevValue === void 0 ? void 0 : prevValue[formattedValue.length]) === delimiter) {
14
+ return formattedValue.slice(0, -1);
15
+ }
16
+ if ((format === null || format === void 0 ? void 0 : format[formattedValue.length]) === delimiter) {
17
+ return formattedValue + delimiter;
18
+ }
19
+ return formattedValue;
20
+ };
21
+
22
+ export { getMaskedDateOnInput };
23
+ //# sourceMappingURL=getMaskedDateOnInput.js.map