@salutejs/plasma-new-hope 0.109.0-canary.1310.10007111729.0 → 0.109.1-canary.1301.10056166255.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (624) hide show
  1. package/cjs/components/Accordion/Accordion.js +1 -1
  2. package/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/cjs/components/Accordion/Accordion.tokens.js +4 -1
  4. package/cjs/components/Accordion/Accordion.tokens.js.map +1 -1
  5. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +16 -9
  6. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js.map +1 -1
  7. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +4 -4
  8. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
  9. package/cjs/components/Accordion/utils/index.js +4 -3
  10. package/cjs/components/Accordion/utils/index.js.map +1 -1
  11. package/cjs/components/Calendar/Calendar.tokens.js +32 -6
  12. package/cjs/components/Calendar/Calendar.tokens.js.map +1 -1
  13. package/cjs/components/Calendar/Calendar.types.js.map +1 -1
  14. package/cjs/components/Calendar/CalendarBase/CalendarBase.css +20 -21
  15. package/cjs/components/Calendar/CalendarBase/CalendarBase.js +88 -140
  16. package/cjs/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  17. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.css +23 -21
  18. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +269 -104
  19. package/cjs/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  20. package/cjs/components/Calendar/hoc/withRange.js +17 -9
  21. package/cjs/components/Calendar/hoc/withRange.js.map +1 -1
  22. package/cjs/components/Calendar/hooks/useCalendarDateChange.js +92 -0
  23. package/cjs/components/Calendar/hooks/useCalendarDateChange.js.map +1 -0
  24. package/cjs/components/Calendar/hooks/useCalendarNavigation.js +98 -0
  25. package/cjs/components/Calendar/hooks/useCalendarNavigation.js.map +1 -0
  26. package/cjs/components/Calendar/hooks/useDays.js +34 -148
  27. package/cjs/components/Calendar/hooks/useDays.js.map +1 -1
  28. package/cjs/components/Calendar/hooks/useKeyNavigation.js +27 -16
  29. package/cjs/components/Calendar/hooks/useKeyNavigation.js.map +1 -1
  30. package/cjs/components/Calendar/hooks/useMonths.js +37 -8
  31. package/cjs/components/Calendar/hooks/useMonths.js.map +1 -1
  32. package/cjs/components/Calendar/hooks/useQuarters.js +57 -0
  33. package/cjs/components/Calendar/hooks/useQuarters.js.map +1 -0
  34. package/cjs/components/Calendar/hooks/useYears.js +39 -8
  35. package/cjs/components/Calendar/hooks/useYears.js.map +1 -1
  36. package/cjs/components/Calendar/store/reducer.js +34 -12
  37. package/cjs/components/Calendar/store/reducer.js.map +1 -1
  38. package/cjs/components/Calendar/store/types.js +1 -0
  39. package/cjs/components/Calendar/store/types.js.map +1 -1
  40. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.css +4 -4
  41. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +36 -26
  42. package/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  43. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.css +8 -8
  44. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js +16 -10
  45. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js.map +1 -1
  46. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +2 -2
  47. package/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  48. package/{es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles_gnorek.css → cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles_1jfelqf.css} +2 -2
  49. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.css +7 -4
  50. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +96 -27
  51. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  52. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js +1 -13
  53. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js.map +1 -1
  54. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.styles_1v3msg.css +2 -0
  55. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.css +7 -0
  56. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +149 -0
  57. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -0
  58. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js +21 -0
  59. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js.map +1 -0
  60. package/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles_14gqhct.css +2 -0
  61. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.css +7 -4
  62. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +99 -25
  63. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  64. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.styles.js +1 -13
  65. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.styles.js.map +1 -1
  66. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.styles_1d4ov6t.css +2 -0
  67. package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.css +4 -0
  68. package/cjs/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.js → DateStructureItem/DateStructureItem.js} +23 -21
  69. package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.js.map +1 -0
  70. package/cjs/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.styles.js → DateStructureItem/DateStructureItem.styles.js} +19 -27
  71. package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js.map +1 -0
  72. package/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles_1nxxafr.css +4 -0
  73. package/cjs/components/Calendar/utils/calendarGridHelper.js +173 -0
  74. package/cjs/components/Calendar/utils/calendarGridHelper.js.map +1 -0
  75. package/cjs/components/Calendar/utils/calendarRangeHelper.js +122 -0
  76. package/cjs/components/Calendar/utils/calendarRangeHelper.js.map +1 -0
  77. package/cjs/components/Calendar/utils/constants.js +60 -0
  78. package/cjs/components/Calendar/utils/constants.js.map +1 -0
  79. package/cjs/components/Calendar/utils/getDateWithModification.js +188 -0
  80. package/cjs/components/Calendar/utils/getDateWithModification.js.map +1 -0
  81. package/cjs/components/DatePicker/DatePicker.tokens.js +11 -0
  82. package/cjs/components/DatePicker/DatePicker.tokens.js.map +1 -1
  83. package/cjs/components/DatePicker/DatePickerBase.styles.js +1 -1
  84. package/cjs/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  85. package/cjs/components/DatePicker/{DatePickerBase.styles_1thp2xv.css → DatePickerBase.styles_192va2p.css} +1 -1
  86. package/cjs/components/DatePicker/RangeDate/RangeDate.css +22 -23
  87. package/cjs/components/DatePicker/RangeDate/RangeDate.js +18 -6
  88. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  89. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +22 -23
  90. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +18 -0
  91. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  92. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  93. package/{es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_wp3vfj.css → cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1gljtdv.css} +2 -2
  94. package/cjs/components/DatePicker/SingleDate/SingleDate.css +21 -22
  95. package/cjs/components/DatePicker/SingleDate/SingleDate.js +15 -3
  96. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  97. package/cjs/components/DatePicker/hooks/useDatePicker.js +7 -3
  98. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  99. package/cjs/components/TextArea/TextArea.js +5 -5
  100. package/cjs/components/TextArea/TextArea.js.map +1 -1
  101. package/cjs/index.css +23 -24
  102. package/cjs/utils/datejs.js +4 -0
  103. package/cjs/utils/datejs.js.map +1 -1
  104. package/emotion/cjs/components/Accordion/Accordion.js +1 -1
  105. package/emotion/cjs/components/Accordion/Accordion.tokens.js +4 -1
  106. package/emotion/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +19 -7
  107. package/emotion/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +4 -4
  108. package/emotion/cjs/components/Accordion/utils/index.js +4 -3
  109. package/emotion/cjs/components/Calendar/Calendar.template-doc.mdx +236 -150
  110. package/emotion/cjs/components/Calendar/Calendar.tokens.js +32 -7
  111. package/emotion/cjs/components/Calendar/CalendarBase/CalendarBase.js +84 -139
  112. package/emotion/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +261 -101
  113. package/emotion/cjs/components/Calendar/hoc/withRange.js +14 -6
  114. package/emotion/cjs/components/Calendar/hooks/index.js +22 -1
  115. package/emotion/cjs/components/Calendar/hooks/useCalendarDateChange.js +90 -0
  116. package/emotion/cjs/components/Calendar/hooks/useCalendarNavigation.js +96 -0
  117. package/emotion/cjs/components/Calendar/hooks/useDays.js +21 -137
  118. package/emotion/cjs/components/Calendar/hooks/useKeyNavigation.js +26 -15
  119. package/emotion/cjs/components/Calendar/hooks/useMonths.js +32 -6
  120. package/emotion/cjs/components/Calendar/hooks/useQuarters.js +52 -0
  121. package/emotion/cjs/components/Calendar/hooks/useYears.js +34 -6
  122. package/emotion/cjs/components/Calendar/mixins/selected.js +2 -9
  123. package/emotion/cjs/components/Calendar/store/reducer.js +27 -6
  124. package/emotion/cjs/components/Calendar/store/types.js +1 -0
  125. package/emotion/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +28 -17
  126. package/emotion/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js +13 -8
  127. package/emotion/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +14 -9
  128. package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +97 -27
  129. package/emotion/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js +6 -35
  130. package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +156 -0
  131. package/emotion/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js +18 -0
  132. package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +100 -25
  133. package/emotion/cjs/components/Calendar/ui/CalendarYears/CalendarYears.styles.js +6 -35
  134. package/{styled-components/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.js → emotion/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.js} +22 -20
  135. package/emotion/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +85 -0
  136. package/emotion/cjs/components/Calendar/ui/index.js +7 -0
  137. package/emotion/cjs/components/Calendar/utils/calendarGridHelper.js +164 -0
  138. package/emotion/cjs/components/Calendar/utils/calendarRangeHelper.js +117 -0
  139. package/emotion/cjs/components/Calendar/utils/constants.js +48 -0
  140. package/emotion/cjs/components/Calendar/utils/getDateWithModification.js +186 -0
  141. package/emotion/cjs/components/Calendar/utils/index.js +39 -243
  142. package/emotion/cjs/components/DatePicker/DatePicker.template-doc.mdx +10 -1
  143. package/emotion/cjs/components/DatePicker/DatePicker.tokens.js +11 -0
  144. package/emotion/cjs/components/DatePicker/DatePickerBase.styles.js +2 -2
  145. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +18 -6
  146. package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +18 -0
  147. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +15 -3
  148. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +7 -3
  149. package/emotion/cjs/components/TextArea/TextArea.js +6 -6
  150. package/emotion/cjs/examples/plasma_b2c/components/Accordion/Accordion.config.js +6 -6
  151. package/emotion/cjs/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +5 -3
  152. package/emotion/cjs/examples/plasma_b2c/components/Calendar/Calendar.stories.tsx +162 -267
  153. package/emotion/cjs/examples/plasma_b2c/components/Calendar/CalendarBase.config.js +5 -5
  154. package/emotion/cjs/examples/plasma_b2c/components/Calendar/CalendarDouble.config.js +5 -5
  155. package/emotion/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +7 -7
  156. package/emotion/cjs/examples/plasma_web/components/Accordion/Accordion.config.js +8 -8
  157. package/emotion/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +6 -4
  158. package/emotion/cjs/examples/plasma_web/components/Calendar/Calendar.stories.tsx +162 -267
  159. package/emotion/cjs/examples/plasma_web/components/Calendar/CalendarBase.config.js +5 -5
  160. package/emotion/cjs/examples/plasma_web/components/Calendar/CalendarDouble.config.js +5 -5
  161. package/emotion/cjs/examples/plasma_web/components/DatePicker/DatePicker.config.js +7 -7
  162. package/emotion/cjs/examples/sds_engineer/components/Calendar/Calendar.stories.tsx +162 -267
  163. package/emotion/cjs/examples/sds_engineer/components/Calendar/CalendarBase.config.js +5 -5
  164. package/emotion/cjs/examples/sds_engineer/components/Calendar/CalendarDouble.config.js +5 -5
  165. package/emotion/cjs/utils/datejs.js +4 -0
  166. package/emotion/es/components/Accordion/Accordion.js +1 -1
  167. package/emotion/es/components/Accordion/Accordion.tokens.js +4 -1
  168. package/emotion/es/components/Accordion/ui/AccordionItem/AccordionItem.js +20 -7
  169. package/emotion/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +4 -4
  170. package/emotion/es/components/Accordion/utils/index.js +4 -3
  171. package/emotion/es/components/Calendar/Calendar.template-doc.mdx +236 -150
  172. package/emotion/es/components/Calendar/Calendar.tokens.js +31 -6
  173. package/emotion/es/components/Calendar/CalendarBase/CalendarBase.js +88 -143
  174. package/emotion/es/components/Calendar/CalendarDouble/CalendarDouble.js +265 -105
  175. package/emotion/es/components/Calendar/hoc/withRange.js +14 -6
  176. package/emotion/es/components/Calendar/hooks/index.js +4 -1
  177. package/emotion/es/components/Calendar/hooks/useCalendarDateChange.js +84 -0
  178. package/emotion/es/components/Calendar/hooks/useCalendarNavigation.js +90 -0
  179. package/emotion/es/components/Calendar/hooks/useDays.js +22 -138
  180. package/emotion/es/components/Calendar/hooks/useKeyNavigation.js +27 -17
  181. package/emotion/es/components/Calendar/hooks/useMonths.js +33 -8
  182. package/emotion/es/components/Calendar/hooks/useQuarters.js +46 -0
  183. package/emotion/es/components/Calendar/hooks/useYears.js +35 -7
  184. package/emotion/es/components/Calendar/mixins/selected.js +2 -9
  185. package/emotion/es/components/Calendar/store/reducer.js +26 -5
  186. package/emotion/es/components/Calendar/store/types.js +1 -0
  187. package/emotion/es/components/Calendar/ui/CalendarDays/CalendarDays.js +29 -17
  188. package/emotion/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js +13 -8
  189. package/emotion/es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +14 -9
  190. package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +100 -29
  191. package/emotion/es/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js +6 -35
  192. package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +149 -0
  193. package/emotion/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js +11 -0
  194. package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.js +103 -27
  195. package/emotion/es/components/Calendar/ui/CalendarYears/CalendarYears.styles.js +6 -35
  196. package/{styled-components/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.js → emotion/es/components/Calendar/ui/DateStructureItem/DateStructureItem.js} +20 -18
  197. package/emotion/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +78 -0
  198. package/emotion/es/components/Calendar/ui/index.js +1 -0
  199. package/emotion/es/components/Calendar/utils/calendarGridHelper.js +158 -0
  200. package/emotion/es/components/Calendar/utils/calendarRangeHelper.js +111 -0
  201. package/emotion/es/components/Calendar/utils/constants.js +42 -0
  202. package/emotion/es/components/Calendar/utils/getDateWithModification.js +180 -0
  203. package/emotion/es/components/Calendar/utils/index.js +4 -247
  204. package/emotion/es/components/DatePicker/DatePicker.template-doc.mdx +10 -1
  205. package/emotion/es/components/DatePicker/DatePicker.tokens.js +11 -0
  206. package/emotion/es/components/DatePicker/DatePickerBase.styles.js +2 -2
  207. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +18 -6
  208. package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +18 -0
  209. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +15 -3
  210. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +7 -3
  211. package/emotion/es/components/TextArea/TextArea.js +6 -6
  212. package/emotion/es/examples/plasma_b2c/components/Accordion/Accordion.config.js +6 -6
  213. package/emotion/es/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +5 -3
  214. package/emotion/es/examples/plasma_b2c/components/Calendar/Calendar.stories.tsx +162 -267
  215. package/emotion/es/examples/plasma_b2c/components/Calendar/CalendarBase.config.js +5 -5
  216. package/emotion/es/examples/plasma_b2c/components/Calendar/CalendarDouble.config.js +5 -5
  217. package/emotion/es/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +7 -7
  218. package/emotion/es/examples/plasma_web/components/Accordion/Accordion.config.js +8 -8
  219. package/emotion/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +6 -4
  220. package/emotion/es/examples/plasma_web/components/Calendar/Calendar.stories.tsx +162 -267
  221. package/emotion/es/examples/plasma_web/components/Calendar/CalendarBase.config.js +5 -5
  222. package/emotion/es/examples/plasma_web/components/Calendar/CalendarDouble.config.js +5 -5
  223. package/emotion/es/examples/plasma_web/components/DatePicker/DatePicker.config.js +7 -7
  224. package/emotion/es/examples/sds_engineer/components/Calendar/Calendar.stories.tsx +162 -267
  225. package/emotion/es/examples/sds_engineer/components/Calendar/CalendarBase.config.js +5 -5
  226. package/emotion/es/examples/sds_engineer/components/Calendar/CalendarDouble.config.js +5 -5
  227. package/emotion/es/utils/datejs.js +4 -0
  228. package/es/components/Accordion/Accordion.js +1 -1
  229. package/es/components/Accordion/Accordion.js.map +1 -1
  230. package/es/components/Accordion/Accordion.tokens.js +4 -1
  231. package/es/components/Accordion/Accordion.tokens.js.map +1 -1
  232. package/es/components/Accordion/ui/AccordionItem/AccordionItem.js +15 -8
  233. package/es/components/Accordion/ui/AccordionItem/AccordionItem.js.map +1 -1
  234. package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +4 -4
  235. package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
  236. package/es/components/Accordion/utils/index.js +4 -3
  237. package/es/components/Accordion/utils/index.js.map +1 -1
  238. package/es/components/Calendar/Calendar.tokens.js +32 -7
  239. package/es/components/Calendar/Calendar.tokens.js.map +1 -1
  240. package/es/components/Calendar/Calendar.types.js.map +1 -1
  241. package/es/components/Calendar/CalendarBase/CalendarBase.css +20 -21
  242. package/es/components/Calendar/CalendarBase/CalendarBase.js +90 -142
  243. package/es/components/Calendar/CalendarBase/CalendarBase.js.map +1 -1
  244. package/es/components/Calendar/CalendarDouble/CalendarDouble.css +23 -21
  245. package/es/components/Calendar/CalendarDouble/CalendarDouble.js +270 -105
  246. package/es/components/Calendar/CalendarDouble/CalendarDouble.js.map +1 -1
  247. package/es/components/Calendar/hoc/withRange.js +15 -7
  248. package/es/components/Calendar/hoc/withRange.js.map +1 -1
  249. package/es/components/Calendar/hooks/useCalendarDateChange.js +88 -0
  250. package/es/components/Calendar/hooks/useCalendarDateChange.js.map +1 -0
  251. package/es/components/Calendar/hooks/useCalendarNavigation.js +94 -0
  252. package/es/components/Calendar/hooks/useCalendarNavigation.js.map +1 -0
  253. package/es/components/Calendar/hooks/useDays.js +24 -138
  254. package/es/components/Calendar/hooks/useDays.js.map +1 -1
  255. package/es/components/Calendar/hooks/useKeyNavigation.js +27 -16
  256. package/es/components/Calendar/hooks/useKeyNavigation.js.map +1 -1
  257. package/es/components/Calendar/hooks/useMonths.js +36 -7
  258. package/es/components/Calendar/hooks/useMonths.js.map +1 -1
  259. package/es/components/Calendar/hooks/useQuarters.js +53 -0
  260. package/es/components/Calendar/hooks/useQuarters.js.map +1 -0
  261. package/es/components/Calendar/hooks/useYears.js +38 -7
  262. package/es/components/Calendar/hooks/useYears.js.map +1 -1
  263. package/es/components/Calendar/store/reducer.js +28 -7
  264. package/es/components/Calendar/store/reducer.js.map +1 -1
  265. package/es/components/Calendar/store/types.js +1 -0
  266. package/es/components/Calendar/store/types.js.map +1 -1
  267. package/es/components/Calendar/ui/CalendarDays/CalendarDays.css +4 -4
  268. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js +29 -19
  269. package/es/components/Calendar/ui/CalendarDays/CalendarDays.js.map +1 -1
  270. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.css +8 -8
  271. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js +15 -9
  272. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js.map +1 -1
  273. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +2 -2
  274. package/es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  275. package/{cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles_gnorek.css → es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles_1jfelqf.css} +2 -2
  276. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.css +7 -4
  277. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +99 -30
  278. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js.map +1 -1
  279. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js +2 -12
  280. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js.map +1 -1
  281. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.styles_1v3msg.css +2 -0
  282. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.css +7 -0
  283. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +145 -0
  284. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js.map +1 -0
  285. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js +16 -0
  286. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js.map +1 -0
  287. package/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles_14gqhct.css +2 -0
  288. package/es/components/Calendar/ui/CalendarYears/CalendarYears.css +7 -4
  289. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js +102 -28
  290. package/es/components/Calendar/ui/CalendarYears/CalendarYears.js.map +1 -1
  291. package/es/components/Calendar/ui/CalendarYears/CalendarYears.styles.js +2 -12
  292. package/es/components/Calendar/ui/CalendarYears/CalendarYears.styles.js.map +1 -1
  293. package/es/components/Calendar/ui/CalendarYears/CalendarYears.styles_1d4ov6t.css +2 -0
  294. package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.css +4 -0
  295. package/es/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.js → DateStructureItem/DateStructureItem.js} +22 -20
  296. package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.js.map +1 -0
  297. package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +55 -0
  298. package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js.map +1 -0
  299. package/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles_1nxxafr.css +4 -0
  300. package/es/components/Calendar/utils/calendarGridHelper.js +153 -0
  301. package/es/components/Calendar/utils/calendarGridHelper.js.map +1 -0
  302. package/es/components/Calendar/utils/calendarRangeHelper.js +110 -0
  303. package/es/components/Calendar/utils/calendarRangeHelper.js.map +1 -0
  304. package/es/components/Calendar/utils/constants.js +45 -0
  305. package/es/components/Calendar/utils/constants.js.map +1 -0
  306. package/es/components/Calendar/utils/getDateWithModification.js +184 -0
  307. package/es/components/Calendar/utils/getDateWithModification.js.map +1 -0
  308. package/es/components/DatePicker/DatePicker.tokens.js +11 -0
  309. package/es/components/DatePicker/DatePicker.tokens.js.map +1 -1
  310. package/es/components/DatePicker/DatePickerBase.styles.js +1 -1
  311. package/es/components/DatePicker/DatePickerBase.styles.js.map +1 -1
  312. package/es/components/DatePicker/{DatePickerBase.styles_1thp2xv.css → DatePickerBase.styles_192va2p.css} +1 -1
  313. package/es/components/DatePicker/RangeDate/RangeDate.css +22 -23
  314. package/es/components/DatePicker/RangeDate/RangeDate.js +18 -6
  315. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  316. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.css +22 -23
  317. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +18 -0
  318. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  319. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.js +1 -1
  320. package/{cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_wp3vfj.css → es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles_1gljtdv.css} +2 -2
  321. package/es/components/DatePicker/SingleDate/SingleDate.css +21 -22
  322. package/es/components/DatePicker/SingleDate/SingleDate.js +15 -3
  323. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  324. package/es/components/DatePicker/hooks/useDatePicker.js +7 -3
  325. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  326. package/es/components/TextArea/TextArea.js +5 -5
  327. package/es/components/TextArea/TextArea.js.map +1 -1
  328. package/es/index.css +23 -24
  329. package/es/utils/datejs.js +4 -0
  330. package/es/utils/datejs.js.map +1 -1
  331. package/package.json +2 -2
  332. package/styled-components/cjs/components/Accordion/Accordion.js +1 -1
  333. package/styled-components/cjs/components/Accordion/Accordion.tokens.js +4 -1
  334. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +19 -7
  335. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +4 -4
  336. package/styled-components/cjs/components/Accordion/utils/index.js +4 -3
  337. package/styled-components/cjs/components/Calendar/Calendar.template-doc.mdx +236 -150
  338. package/styled-components/cjs/components/Calendar/Calendar.tokens.js +32 -7
  339. package/styled-components/cjs/components/Calendar/CalendarBase/CalendarBase.js +84 -139
  340. package/styled-components/cjs/components/Calendar/CalendarDouble/CalendarDouble.js +261 -101
  341. package/styled-components/cjs/components/Calendar/hoc/withRange.js +14 -6
  342. package/styled-components/cjs/components/Calendar/hooks/index.js +22 -1
  343. package/styled-components/cjs/components/Calendar/hooks/useCalendarDateChange.js +90 -0
  344. package/styled-components/cjs/components/Calendar/hooks/useCalendarNavigation.js +96 -0
  345. package/styled-components/cjs/components/Calendar/hooks/useDays.js +21 -137
  346. package/styled-components/cjs/components/Calendar/hooks/useKeyNavigation.js +26 -15
  347. package/styled-components/cjs/components/Calendar/hooks/useMonths.js +32 -6
  348. package/styled-components/cjs/components/Calendar/hooks/useQuarters.js +52 -0
  349. package/styled-components/cjs/components/Calendar/hooks/useYears.js +34 -6
  350. package/styled-components/cjs/components/Calendar/mixins/selected.js +2 -9
  351. package/styled-components/cjs/components/Calendar/store/reducer.js +27 -6
  352. package/styled-components/cjs/components/Calendar/store/types.js +1 -0
  353. package/styled-components/cjs/components/Calendar/ui/CalendarDays/CalendarDays.js +28 -17
  354. package/styled-components/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.js +13 -8
  355. package/styled-components/cjs/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +8 -3
  356. package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.js +97 -27
  357. package/styled-components/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js +3 -30
  358. package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +156 -0
  359. package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js +16 -0
  360. package/styled-components/cjs/components/Calendar/ui/CalendarQuarters/CalendarQuarters.types.js +5 -0
  361. package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.js +100 -25
  362. package/styled-components/cjs/components/Calendar/ui/CalendarYears/CalendarYears.styles.js +3 -30
  363. package/{emotion/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.js → styled-components/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.js} +22 -20
  364. package/styled-components/cjs/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.styles.js → DateStructureItem/DateStructureItem.styles.js} +26 -26
  365. package/styled-components/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.types.js +5 -0
  366. package/styled-components/cjs/components/Calendar/ui/index.js +7 -0
  367. package/styled-components/cjs/components/Calendar/utils/calendarGridHelper.js +164 -0
  368. package/styled-components/cjs/components/Calendar/utils/calendarRangeHelper.js +117 -0
  369. package/styled-components/cjs/components/Calendar/utils/constants.js +48 -0
  370. package/styled-components/cjs/components/Calendar/utils/getDateWithModification.js +186 -0
  371. package/styled-components/cjs/components/Calendar/utils/index.js +39 -243
  372. package/styled-components/cjs/components/DatePicker/DatePicker.template-doc.mdx +10 -1
  373. package/styled-components/cjs/components/DatePicker/DatePicker.tokens.js +11 -0
  374. package/styled-components/cjs/components/DatePicker/DatePickerBase.styles.js +1 -1
  375. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +18 -6
  376. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +18 -0
  377. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +15 -3
  378. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +7 -3
  379. package/styled-components/cjs/components/TextArea/TextArea.js +5 -5
  380. package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.config.js +2 -2
  381. package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +5 -3
  382. package/styled-components/cjs/examples/plasma_b2c/components/Calendar/Calendar.stories.tsx +162 -267
  383. package/styled-components/cjs/examples/plasma_b2c/components/Calendar/CalendarBase.config.js +4 -4
  384. package/styled-components/cjs/examples/plasma_b2c/components/Calendar/CalendarDouble.config.js +4 -4
  385. package/styled-components/cjs/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +4 -4
  386. package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.config.js +2 -2
  387. package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +6 -4
  388. package/styled-components/cjs/examples/plasma_web/components/Calendar/Calendar.stories.tsx +162 -267
  389. package/styled-components/cjs/examples/plasma_web/components/Calendar/CalendarBase.config.js +4 -4
  390. package/styled-components/cjs/examples/plasma_web/components/Calendar/CalendarDouble.config.js +4 -4
  391. package/styled-components/cjs/examples/plasma_web/components/DatePicker/DatePicker.config.js +4 -4
  392. package/styled-components/cjs/examples/sds_engineer/components/Calendar/Calendar.stories.tsx +162 -267
  393. package/styled-components/cjs/examples/sds_engineer/components/Calendar/CalendarBase.config.js +5 -5
  394. package/styled-components/cjs/examples/sds_engineer/components/Calendar/CalendarDouble.config.js +5 -5
  395. package/styled-components/cjs/utils/datejs.js +4 -0
  396. package/styled-components/es/components/Accordion/Accordion.js +1 -1
  397. package/styled-components/es/components/Accordion/Accordion.tokens.js +4 -1
  398. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.js +20 -7
  399. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +4 -4
  400. package/styled-components/es/components/Accordion/utils/index.js +4 -3
  401. package/styled-components/es/components/Calendar/Calendar.template-doc.mdx +236 -150
  402. package/styled-components/es/components/Calendar/Calendar.tokens.js +31 -6
  403. package/styled-components/es/components/Calendar/CalendarBase/CalendarBase.js +88 -143
  404. package/styled-components/es/components/Calendar/CalendarDouble/CalendarDouble.js +265 -105
  405. package/styled-components/es/components/Calendar/hoc/withRange.js +14 -6
  406. package/styled-components/es/components/Calendar/hooks/index.js +4 -1
  407. package/styled-components/es/components/Calendar/hooks/useCalendarDateChange.js +84 -0
  408. package/styled-components/es/components/Calendar/hooks/useCalendarNavigation.js +90 -0
  409. package/styled-components/es/components/Calendar/hooks/useDays.js +22 -138
  410. package/styled-components/es/components/Calendar/hooks/useKeyNavigation.js +27 -17
  411. package/styled-components/es/components/Calendar/hooks/useMonths.js +33 -8
  412. package/styled-components/es/components/Calendar/hooks/useQuarters.js +46 -0
  413. package/styled-components/es/components/Calendar/hooks/useYears.js +35 -7
  414. package/styled-components/es/components/Calendar/mixins/selected.js +2 -9
  415. package/styled-components/es/components/Calendar/store/reducer.js +26 -5
  416. package/styled-components/es/components/Calendar/store/types.js +1 -0
  417. package/styled-components/es/components/Calendar/ui/CalendarDays/CalendarDays.js +29 -17
  418. package/styled-components/es/components/Calendar/ui/CalendarHeader/CalendarHeader.js +13 -8
  419. package/styled-components/es/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.js +8 -3
  420. package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.js +100 -29
  421. package/styled-components/es/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.js +3 -30
  422. package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.js +149 -0
  423. package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.js +9 -0
  424. package/styled-components/es/components/Calendar/ui/CalendarQuarters/CalendarQuarters.types.js +1 -0
  425. package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.js +103 -27
  426. package/styled-components/es/components/Calendar/ui/CalendarYears/CalendarYears.styles.js +3 -30
  427. package/{emotion/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.js → styled-components/es/components/Calendar/ui/DateStructureItem/DateStructureItem.js} +20 -18
  428. package/styled-components/es/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.js +65 -0
  429. package/styled-components/es/components/Calendar/ui/DateStructureItem/DateStructureItem.types.js +1 -0
  430. package/styled-components/es/components/Calendar/ui/index.js +1 -0
  431. package/styled-components/es/components/Calendar/utils/calendarGridHelper.js +158 -0
  432. package/styled-components/es/components/Calendar/utils/calendarRangeHelper.js +111 -0
  433. package/styled-components/es/components/Calendar/utils/constants.js +42 -0
  434. package/styled-components/es/components/Calendar/utils/getDateWithModification.js +180 -0
  435. package/styled-components/es/components/Calendar/utils/index.js +4 -247
  436. package/styled-components/es/components/DatePicker/DatePicker.template-doc.mdx +10 -1
  437. package/styled-components/es/components/DatePicker/DatePicker.tokens.js +11 -0
  438. package/styled-components/es/components/DatePicker/DatePickerBase.styles.js +1 -1
  439. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +18 -6
  440. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +18 -0
  441. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +15 -3
  442. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +7 -3
  443. package/styled-components/es/components/TextArea/TextArea.js +5 -5
  444. package/styled-components/es/examples/plasma_b2c/components/Accordion/Accordion.config.js +2 -2
  445. package/styled-components/es/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +5 -3
  446. package/styled-components/es/examples/plasma_b2c/components/Calendar/Calendar.stories.tsx +162 -267
  447. package/styled-components/es/examples/plasma_b2c/components/Calendar/CalendarBase.config.js +4 -4
  448. package/styled-components/es/examples/plasma_b2c/components/Calendar/CalendarDouble.config.js +4 -4
  449. package/styled-components/es/examples/plasma_b2c/components/DatePicker/DatePicker.config.js +4 -4
  450. package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.config.js +2 -2
  451. package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +6 -4
  452. package/styled-components/es/examples/plasma_web/components/Calendar/Calendar.stories.tsx +162 -267
  453. package/styled-components/es/examples/plasma_web/components/Calendar/CalendarBase.config.js +4 -4
  454. package/styled-components/es/examples/plasma_web/components/Calendar/CalendarDouble.config.js +4 -4
  455. package/styled-components/es/examples/plasma_web/components/DatePicker/DatePicker.config.js +4 -4
  456. package/styled-components/es/examples/sds_engineer/components/Calendar/Calendar.stories.tsx +162 -267
  457. package/styled-components/es/examples/sds_engineer/components/Calendar/CalendarBase.config.js +5 -5
  458. package/styled-components/es/examples/sds_engineer/components/Calendar/CalendarDouble.config.js +5 -5
  459. package/styled-components/es/utils/datejs.js +4 -0
  460. package/types/components/Accordion/Accordion.tokens.d.ts +3 -0
  461. package/types/components/Accordion/Accordion.tokens.d.ts.map +1 -1
  462. package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts.map +1 -1
  463. package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts.map +1 -1
  464. package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts +5 -0
  465. package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts.map +1 -1
  466. package/types/components/Accordion/utils/index.d.ts +4 -2
  467. package/types/components/Accordion/utils/index.d.ts.map +1 -1
  468. package/types/components/Calendar/Calendar.tokens.d.ts +30 -6
  469. package/types/components/Calendar/Calendar.tokens.d.ts.map +1 -1
  470. package/types/components/Calendar/Calendar.types.d.ts +86 -32
  471. package/types/components/Calendar/Calendar.types.d.ts.map +1 -1
  472. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts +4 -44
  473. package/types/components/Calendar/CalendarBase/CalendarBase.d.ts.map +1 -1
  474. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts +4 -31
  475. package/types/components/Calendar/CalendarDouble/CalendarDouble.d.ts.map +1 -1
  476. package/types/components/Calendar/hoc/withRange.d.ts +3 -2
  477. package/types/components/Calendar/hoc/withRange.d.ts.map +1 -1
  478. package/types/components/Calendar/hooks/index.d.ts +3 -0
  479. package/types/components/Calendar/hooks/index.d.ts.map +1 -1
  480. package/types/components/Calendar/hooks/types.d.ts +38 -0
  481. package/types/components/Calendar/hooks/types.d.ts.map +1 -0
  482. package/types/components/Calendar/hooks/useCalendarDateChange.d.ts +11 -0
  483. package/types/components/Calendar/hooks/useCalendarDateChange.d.ts.map +1 -0
  484. package/types/components/Calendar/hooks/useCalendarNavigation.d.ts +6 -0
  485. package/types/components/Calendar/hooks/useCalendarNavigation.d.ts.map +1 -0
  486. package/types/components/Calendar/hooks/useDays.d.ts +3 -2
  487. package/types/components/Calendar/hooks/useDays.d.ts.map +1 -1
  488. package/types/components/Calendar/hooks/useKeyNavigation.d.ts +2 -2
  489. package/types/components/Calendar/hooks/useKeyNavigation.d.ts.map +1 -1
  490. package/types/components/Calendar/hooks/useMonths.d.ts +3 -2
  491. package/types/components/Calendar/hooks/useMonths.d.ts.map +1 -1
  492. package/types/components/Calendar/hooks/useQuarters.d.ts +7 -0
  493. package/types/components/Calendar/hooks/useQuarters.d.ts.map +1 -0
  494. package/types/components/Calendar/hooks/useYears.d.ts +3 -2
  495. package/types/components/Calendar/hooks/useYears.d.ts.map +1 -1
  496. package/types/components/Calendar/mixins/selected.d.ts.map +1 -1
  497. package/types/components/Calendar/store/reducer.d.ts +3 -2
  498. package/types/components/Calendar/store/reducer.d.ts.map +1 -1
  499. package/types/components/Calendar/store/types.d.ts +9 -1
  500. package/types/components/Calendar/store/types.d.ts.map +1 -1
  501. package/types/components/Calendar/ui/CalendarDays/CalendarDays.d.ts.map +1 -1
  502. package/types/components/Calendar/ui/CalendarDays/CalendarDays.types.d.ts +3 -3
  503. package/types/components/Calendar/ui/CalendarDays/CalendarDays.types.d.ts.map +1 -1
  504. package/types/components/Calendar/ui/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  505. package/types/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.d.ts +1 -1
  506. package/types/components/Calendar/ui/CalendarHeader/CalendarHeader.styles.d.ts.map +1 -1
  507. package/types/components/Calendar/ui/CalendarHeader/CalendarHeader.types.d.ts +2 -2
  508. package/types/components/Calendar/ui/CalendarHeader/CalendarHeader.types.d.ts.map +1 -1
  509. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.d.ts.map +1 -1
  510. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.d.ts +0 -2
  511. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.styles.d.ts.map +1 -1
  512. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.types.d.ts +14 -4
  513. package/types/components/Calendar/ui/CalendarMonths/CalendarMonths.types.d.ts.map +1 -1
  514. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts +7 -0
  515. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.d.ts.map +1 -0
  516. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.d.ts +4 -0
  517. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.styles.d.ts.map +1 -0
  518. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.types.d.ts +21 -0
  519. package/types/components/Calendar/ui/CalendarQuarters/CalendarQuarters.types.d.ts.map +1 -0
  520. package/types/components/Calendar/ui/CalendarYears/CalendarYears.d.ts.map +1 -1
  521. package/types/components/Calendar/ui/CalendarYears/CalendarYears.styles.d.ts +0 -2
  522. package/types/components/Calendar/ui/CalendarYears/CalendarYears.styles.d.ts.map +1 -1
  523. package/types/components/Calendar/ui/CalendarYears/CalendarYears.types.d.ts +12 -3
  524. package/types/components/Calendar/ui/CalendarYears/CalendarYears.types.d.ts.map +1 -1
  525. package/types/components/Calendar/ui/DateStructureItem/DateStructureItem.d.ts +7 -0
  526. package/types/components/Calendar/ui/DateStructureItem/DateStructureItem.d.ts.map +1 -0
  527. package/types/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.styles.d.ts → DateStructureItem/DateStructureItem.styles.d.ts} +4 -4
  528. package/types/components/Calendar/ui/DateStructureItem/DateStructureItem.styles.d.ts.map +1 -0
  529. package/types/components/Calendar/ui/DateStructureItem/DateStructureItem.types.d.ts +13 -0
  530. package/types/components/Calendar/ui/DateStructureItem/DateStructureItem.types.d.ts.map +1 -0
  531. package/types/components/Calendar/ui/index.d.ts +1 -0
  532. package/types/components/Calendar/ui/index.d.ts.map +1 -1
  533. package/types/components/Calendar/utils/calendarGridHelper.d.ts +29 -0
  534. package/types/components/Calendar/utils/calendarGridHelper.d.ts.map +1 -0
  535. package/types/components/Calendar/utils/calendarRangeHelper.d.ts +26 -0
  536. package/types/components/Calendar/utils/calendarRangeHelper.d.ts.map +1 -0
  537. package/types/components/Calendar/utils/constants.d.ts +19 -0
  538. package/types/components/Calendar/utils/constants.d.ts.map +1 -0
  539. package/types/components/Calendar/utils/getDateWithModification.d.ts +17 -0
  540. package/types/components/Calendar/utils/getDateWithModification.d.ts.map +1 -0
  541. package/types/components/Calendar/utils/index.d.ts +4 -54
  542. package/types/components/Calendar/utils/index.d.ts.map +1 -1
  543. package/types/components/DatePicker/DatePicker.tokens.d.ts +11 -0
  544. package/types/components/DatePicker/DatePicker.tokens.d.ts.map +1 -1
  545. package/types/components/DatePicker/DatePickerBase.styles.d.ts +1 -5
  546. package/types/components/DatePicker/DatePickerBase.styles.d.ts.map +1 -1
  547. package/types/components/DatePicker/DatePickerBase.types.d.ts +62 -1
  548. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  549. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +6 -6
  550. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  551. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +5 -41
  552. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  553. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts +1 -1
  554. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts.map +1 -1
  555. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.d.ts +2 -2
  556. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.styles.d.ts.map +1 -1
  557. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts +5 -3
  558. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts.map +1 -1
  559. package/types/components/DatePicker/SingleDate/SingleDate.d.ts +2 -2
  560. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  561. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +3 -39
  562. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  563. package/types/components/DatePicker/hooks/useDatePicker.d.ts +2 -1
  564. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  565. package/types/examples/plasma_b2c/components/Accordion/Accordion.config.d.ts.map +1 -1
  566. package/types/examples/plasma_b2c/components/Calendar/Calendar.d.ts +4 -11
  567. package/types/examples/plasma_b2c/components/Calendar/Calendar.d.ts.map +1 -1
  568. package/types/examples/plasma_b2c/components/Calendar/CalendarBase.config.d.ts.map +1 -1
  569. package/types/examples/plasma_b2c/components/Calendar/CalendarDouble.config.d.ts.map +1 -1
  570. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.config.d.ts.map +1 -1
  571. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +4 -4
  572. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  573. package/types/examples/plasma_web/components/Accordion/Accordion.config.d.ts.map +1 -1
  574. package/types/examples/plasma_web/components/Calendar/Calendar.d.ts +4 -11
  575. package/types/examples/plasma_web/components/Calendar/Calendar.d.ts.map +1 -1
  576. package/types/examples/plasma_web/components/Calendar/CalendarBase.config.d.ts.map +1 -1
  577. package/types/examples/plasma_web/components/Calendar/CalendarDouble.config.d.ts.map +1 -1
  578. package/types/examples/plasma_web/components/DatePicker/DatePicker.config.d.ts.map +1 -1
  579. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +4 -4
  580. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  581. package/types/examples/sds_engineer/components/Calendar/Calendar.d.ts +4 -11
  582. package/types/examples/sds_engineer/components/Calendar/Calendar.d.ts.map +1 -1
  583. package/types/examples/sds_engineer/components/Calendar/CalendarBase.config.d.ts.map +1 -1
  584. package/types/examples/sds_engineer/components/Calendar/CalendarDouble.config.d.ts.map +1 -1
  585. package/types/utils/datejs.d.ts.map +1 -1
  586. package/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.css +0 -4
  587. package/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.js.map +0 -1
  588. package/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.js.map +0 -1
  589. package/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles_107vqka.css +0 -4
  590. package/cjs/components/Calendar/ui/CalendarMonths/CalendarMonths.styles_7jeg2n.css +0 -4
  591. package/cjs/components/Calendar/ui/CalendarYears/CalendarYears.styles_4z2ki7.css +0 -4
  592. package/cjs/components/Calendar/utils/index.js +0 -276
  593. package/cjs/components/Calendar/utils/index.js.map +0 -1
  594. package/emotion/cjs/components/Breadcrumbs/README.md +0 -78
  595. package/emotion/cjs/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.js +0 -85
  596. package/emotion/es/components/Breadcrumbs/README.md +0 -78
  597. package/emotion/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.js +0 -78
  598. package/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.css +0 -4
  599. package/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.js.map +0 -1
  600. package/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.js +0 -63
  601. package/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.js.map +0 -1
  602. package/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles_107vqka.css +0 -4
  603. package/es/components/Calendar/ui/CalendarMonths/CalendarMonths.styles_7jeg2n.css +0 -4
  604. package/es/components/Calendar/ui/CalendarYears/CalendarYears.styles_4z2ki7.css +0 -4
  605. package/es/components/Calendar/utils/index.js +0 -242
  606. package/es/components/Calendar/utils/index.js.map +0 -1
  607. package/styled-components/cjs/components/Breadcrumbs/README.md +0 -78
  608. package/styled-components/es/components/Breadcrumbs/README.md +0 -78
  609. package/styled-components/es/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.js +0 -65
  610. package/types/components/Breadcrumbs/Breadcrumbs.types.d.ts +0 -16
  611. package/types/components/Breadcrumbs/Breadcrumbs.types.d.ts.map +0 -1
  612. package/types/components/Calendar/ui/CalendarDayItem/CalendarDayItem.d.ts +0 -7
  613. package/types/components/Calendar/ui/CalendarDayItem/CalendarDayItem.d.ts.map +0 -1
  614. package/types/components/Calendar/ui/CalendarDayItem/CalendarDayItem.styles.d.ts.map +0 -1
  615. package/types/components/Calendar/ui/CalendarDayItem/CalendarDayItem.types.d.ts +0 -13
  616. package/types/components/Calendar/ui/CalendarDayItem/CalendarDayItem.types.d.ts.map +0 -1
  617. /package/emotion/cjs/components/{Breadcrumbs/Breadcrumbs.types.js → Calendar/hooks/types.js} +0 -0
  618. /package/emotion/cjs/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.types.js → CalendarQuarters/CalendarQuarters.types.js} +0 -0
  619. /package/{styled-components/cjs/components/Breadcrumbs/Breadcrumbs.types.js → emotion/cjs/components/Calendar/ui/DateStructureItem/DateStructureItem.types.js} +0 -0
  620. /package/emotion/es/components/{Breadcrumbs/Breadcrumbs.types.js → Calendar/hooks/types.js} +0 -0
  621. /package/emotion/es/components/Calendar/ui/{CalendarDayItem/CalendarDayItem.types.js → CalendarQuarters/CalendarQuarters.types.js} +0 -0
  622. /package/{styled-components/es/components/Breadcrumbs/Breadcrumbs.types.js → emotion/es/components/Calendar/ui/DateStructureItem/DateStructureItem.types.js} +0 -0
  623. /package/styled-components/cjs/components/Calendar/{ui/CalendarDayItem/CalendarDayItem.types.js → hooks/types.js} +0 -0
  624. /package/styled-components/es/components/Calendar/{ui/CalendarDayItem/CalendarDayItem.types.js → hooks/types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useDays.js","sources":["../../../../src/components/Calendar/hooks/useDays.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n getDateFromValue,\n getDaysInMonth,\n getMatrix,\n getNextDate,\n getOffsetDayInWeek,\n getPrevDate,\n IsCurrentDay,\n isDayInRange,\n isSelectedDay,\n} from '../utils';\nimport type { CalendarValueType, DateItem, DateObject, DisabledDay, EventDay } from '../Calendar.types';\n\n/**\n * Метод возвращающий массив дней в предыдущем месяце.\n */\nconst getDaysInPrevMonth = (date: DateObject, offsetDayInWeek: number, value: CalendarValueType) => {\n const [prevYear, prevMonth] = getPrevDate(date.year, date.monthIndex);\n const daysInPrevMonth = getDaysInMonth(prevMonth, prevYear);\n\n return Array.from(Array(offsetDayInWeek), (_, i) => ({\n isCurrent: false,\n isSelected: false,\n isDayInCurrentMonth: false,\n inRange: Array.isArray(value)\n ? isDayInRange(prevYear, prevMonth, daysInPrevMonth - (offsetDayInWeek - i) + 1, value)\n : false,\n date: {\n day: daysInPrevMonth - (offsetDayInWeek - i) + 1,\n monthIndex: prevMonth,\n year: prevYear,\n },\n }));\n};\n\n/**\n * Метод возвращающий массив дней в текущем месяце.\n */\nconst getDaysInCurrentMonth = (date: DateObject, daysInMonth: number, value: CalendarValueType) => {\n return Array.from(Array(daysInMonth), (_, i) => ({\n isCurrent: IsCurrentDay(date, i + 1),\n isSelected: Array.isArray(value)\n ? Boolean(value.find((v) => isSelectedDay(date, i + 1, v)))\n : isSelectedDay(date, i + 1, value),\n isDayInCurrentMonth: true,\n inRange: Array.isArray(value) ? isDayInRange(date.year, date.monthIndex, i + 1, value) : false,\n date: {\n day: i + 1,\n monthIndex: date.monthIndex,\n year: date.year,\n },\n }));\n};\n\n/**\n * Метод возвращающий массив дней в следующем месяце.\n */\nconst getDaysInNextMonth = (\n date: DateObject,\n daysInMonth: number,\n offsetDayInWeek: number,\n value: CalendarValueType,\n) => {\n const [nextYear, nextMonthIndex] = getNextDate(date.year, date.monthIndex);\n const visibleDayCount = 42;\n const restDaysInCalendar = visibleDayCount - (daysInMonth + offsetDayInWeek);\n\n return Array.from(Array(restDaysInCalendar), (_, i) => ({\n isCurrent: false,\n isSelected: false,\n isDayInCurrentMonth: false,\n inRange: Array.isArray(value) ? isDayInRange(nextYear, nextMonthIndex, i + 1, value) : false,\n date: {\n day: i + 1,\n monthIndex: nextMonthIndex,\n year: nextYear,\n },\n }));\n};\n\nconst isDisabledArrowLeft = (date: Date, min?: Date) => {\n const currentDate = new Date(date);\n\n currentDate.setDate(currentDate.getDate() - 1);\n\n return (min && min >= currentDate) || (min && min >= date);\n};\n\nconst isDisabledArrowRight = (date: Date, max?: Date) => {\n const currentDate = new Date(date);\n\n currentDate.setDate(currentDate.getDate() + 1);\n\n return (max && max <= currentDate) || (max && max <= date);\n};\n\nconst isDisabledArrowUp = (date: Date, min?: Date) => {\n const currentDate = new Date(date);\n\n currentDate.setDate(date.getDate() - 7);\n\n return min && min >= currentDate;\n};\n\nconst isDisabledArrowDown = (date: Date, max?: Date) => {\n const currentDate = new Date(date);\n\n currentDate.setDate(date.getDate() + 7);\n\n return max && max <= currentDate;\n};\n\nconst isDisabledNextMonth = ({ year, monthIndex, day }: DateObject, max?: Date) => {\n if (!max) {\n return false;\n }\n\n const currentDate = new Date(year, monthIndex, day);\n\n currentDate.setDate(currentDate.getDate() + 1);\n\n let isOut = true;\n\n while (isOut && currentDate <= max) {\n isOut = max <= currentDate;\n\n currentDate.setDate(currentDate.getDate() + 1);\n }\n\n return isOut;\n};\n\nconst isDisabledPreviousMonth = ({ year, monthIndex, day }: DateObject, min?: Date) => {\n if (!min) {\n return false;\n }\n\n const currentDate = new Date(year, monthIndex, day);\n\n currentDate.setDate(currentDate.getDate() - 1);\n\n let isOut = true;\n\n while (isOut && currentDate >= min) {\n isOut = min >= currentDate;\n\n currentDate.setDate(currentDate.getDate() - 1);\n }\n\n return isOut;\n};\n\nconst getDisabledArrowKey = (currentDate: Date, min?: Date, max?: Date) => {\n const disabledArrowKey = [];\n\n if (isDisabledArrowLeft(currentDate, min)) {\n disabledArrowKey.push('left');\n }\n\n if (isDisabledArrowRight(currentDate, max)) {\n disabledArrowKey.push('right');\n }\n\n if (isDisabledArrowDown(currentDate, max)) {\n disabledArrowKey.push('down');\n }\n\n if (isDisabledArrowUp(currentDate, min)) {\n disabledArrowKey.push('up');\n }\n\n return disabledArrowKey.join(',');\n};\n\nconst getDisabledMonths = (list: DateObject[], min?: Date, max?: Date) => {\n const disabledMonth = [];\n\n if (isDisabledPreviousMonth(list[0], min)) {\n disabledMonth.push('previous');\n }\n\n if (isDisabledNextMonth(list[list.length - 1], max)) {\n disabledMonth.push('next');\n }\n\n return disabledMonth.join(',');\n};\n\n/**\n * Метод для получения набора неповторяющихся дат.\n */\nconst getPropsMap = <T extends EventDay | DisabledDay>(props: T[]) =>\n props.reduce((acc, prop) => {\n const { year, monthIndex, day } = getDateFromValue(prop.date);\n\n const key = `${year}-${monthIndex}-${day}`;\n\n const propList = acc.get(key) || [];\n propList.push(prop);\n\n return acc.set(key, propList);\n }, new Map<string, T[]>());\n\n/**\n * Метод модифицирующий дни (добавляющий свойства events и disabled).\n */\nconst getDaysWithModifications = (\n days: DateItem[],\n eventList: EventDay[] = [],\n disabledList: DisabledDay[] = [],\n min?: Date,\n max?: Date,\n includeEdgeDates?: boolean,\n) => {\n const eventsMap = getPropsMap(eventList);\n const disabledDaysMap = getPropsMap(disabledList);\n\n const daysList = days.filter(({ isDayInCurrentMonth }) => isDayInCurrentMonth).map(({ date }) => date);\n\n const disabledMonths = getDisabledMonths(daysList, min, max);\n\n return days.map((dayItem) => {\n const { date } = dayItem;\n const { year, monthIndex, day } = date;\n\n const keyDay = `${year}-${monthIndex}-${day}`;\n const currentDate = new Date(year, monthIndex, day);\n\n const minValue = min && (includeEdgeDates ? min > currentDate : min >= currentDate);\n const maxValue = max && (includeEdgeDates ? max < currentDate : max <= currentDate);\n const isOutOfMinMaxRange = minValue || maxValue;\n\n dayItem.events = eventsMap.get(keyDay);\n dayItem.disabled = disabledDaysMap.has(keyDay) || isOutOfMinMaxRange;\n\n dayItem.isOutOfMinMaxRange = isOutOfMinMaxRange;\n dayItem.disabledArrowKey = getDisabledArrowKey(currentDate, min, max);\n dayItem.disabledMonths = disabledMonths;\n\n return dayItem;\n });\n};\n\n/**\n * Хук для получения списка дней.\n */\nexport const useDays = (\n date: DateObject,\n value: CalendarValueType,\n eventList?: EventDay[],\n disabledList?: DisabledDay[],\n min?: Date,\n max?: Date,\n includeEdgeDates?: boolean,\n) =>\n useMemo(() => {\n const { monthIndex, year } = date;\n const daysInMonth = getDaysInMonth(monthIndex, year);\n const offsetDayInWeek = getOffsetDayInWeek(monthIndex, year);\n\n const days = [\n ...getDaysInPrevMonth(date, offsetDayInWeek, value),\n ...getDaysInCurrentMonth(date, daysInMonth, value),\n ...getDaysInNextMonth(date, daysInMonth, offsetDayInWeek, value),\n ];\n\n if (eventList?.length || disabledList?.length || max || min) {\n const modifiedDays = getDaysWithModifications(days, eventList, disabledList, min, max, includeEdgeDates);\n return getMatrix<DateItem>(modifiedDays);\n }\n\n return getMatrix<DateItem>(days);\n }, [date, value, eventList, disabledList, max, min, includeEdgeDates]);\n"],"names":["getDaysInPrevMonth","date","offsetDayInWeek","value","_getPrevDate","getPrevDate","year","monthIndex","_getPrevDate2","_slicedToArray","prevYear","prevMonth","daysInPrevMonth","getDaysInMonth","Array","from","_","i","isCurrent","isSelected","isDayInCurrentMonth","inRange","isArray","isDayInRange","day","getDaysInCurrentMonth","daysInMonth","IsCurrentDay","Boolean","find","v","isSelectedDay","getDaysInNextMonth","_getNextDate","getNextDate","_getNextDate2","nextYear","nextMonthIndex","visibleDayCount","restDaysInCalendar","isDisabledArrowLeft","min","currentDate","Date","setDate","getDate","isDisabledArrowRight","max","isDisabledArrowUp","isDisabledArrowDown","isDisabledNextMonth","_ref","isOut","isDisabledPreviousMonth","_ref2","getDisabledArrowKey","disabledArrowKey","push","join","getDisabledMonths","list","disabledMonth","length","getPropsMap","props","reduce","acc","prop","_getDateFromValue","getDateFromValue","key","concat","propList","get","set","Map","getDaysWithModifications","days","eventList","arguments","undefined","disabledList","includeEdgeDates","eventsMap","disabledDaysMap","daysList","filter","_ref3","map","_ref4","disabledMonths","dayItem","keyDay","minValue","maxValue","isOutOfMinMaxRange","events","disabled","has","useDays","useMemo","getOffsetDayInWeek","_toConsumableArray","modifiedDays","getMatrix"],"mappings":"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"}
1
+ {"version":3,"file":"useDays.js","sources":["../../../../src/components/Calendar/hooks/useDays.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport {\n getDatesWithModifications,\n getDaysInMonth,\n getMatrix,\n getNextDate,\n getOffsetDayInWeek,\n getPrevDate,\n IsCurrentDay,\n isDateInRange,\n isSelectedDay,\n} from '../utils';\nimport type { CalendarValueType, DateItem, DateObject } from '../Calendar.types';\nimport { CalendarState } from '../store/types';\n\nimport type { UseDaysArgs } from './types';\n\n/**\n * Метод возвращающий массив дней в предыдущем месяце.\n */\nconst getDaysInPrevMonth = (date: DateObject, offsetDayInWeek: number, value: CalendarValueType) => {\n const [prevYear, prevMonth] = getPrevDate(date.year, date.monthIndex);\n const daysInPrevMonth = getDaysInMonth(prevMonth, prevYear);\n\n return Array.from(Array(offsetDayInWeek), (_, i) => ({\n isCurrent: false,\n isSelected: false,\n isDayInCurrentMonth: false,\n inRange: Array.isArray(value)\n ? isDateInRange(prevYear, prevMonth, daysInPrevMonth - (offsetDayInWeek - i) + 1, value)\n : false,\n date: {\n day: daysInPrevMonth - (offsetDayInWeek - i) + 1,\n monthIndex: prevMonth,\n year: prevYear,\n },\n }));\n};\n\n/**\n * Метод возвращающий массив дней в текущем месяце.\n */\nconst getDaysInCurrentMonth = (date: DateObject, daysInMonth: number, value: CalendarValueType) => {\n return Array.from(Array(daysInMonth), (_, i) => ({\n isCurrent: IsCurrentDay(date, i + 1),\n isSelected: Array.isArray(value)\n ? Boolean(value.find((v) => isSelectedDay(date, i + 1, v)))\n : isSelectedDay(date, i + 1, value),\n isDayInCurrentMonth: true,\n inRange: Array.isArray(value) ? isDateInRange(date.year, date.monthIndex, i + 1, value) : false,\n date: {\n day: i + 1,\n monthIndex: date.monthIndex,\n year: date.year,\n },\n }));\n};\n\n/**\n * Метод возвращающий массив дней в следующем месяце.\n */\nconst getDaysInNextMonth = (\n date: DateObject,\n daysInMonth: number,\n offsetDayInWeek: number,\n value: CalendarValueType,\n) => {\n const [nextYear, nextMonthIndex] = getNextDate(date.year, date.monthIndex);\n const visibleDayCount = 42;\n const restDaysInCalendar = visibleDayCount - (daysInMonth + offsetDayInWeek);\n\n return Array.from(Array(restDaysInCalendar), (_, i) => ({\n isCurrent: false,\n isSelected: false,\n isDayInCurrentMonth: false,\n inRange: Array.isArray(value) ? isDateInRange(nextYear, nextMonthIndex, i + 1, value) : false,\n date: {\n day: i + 1,\n monthIndex: nextMonthIndex,\n year: nextYear,\n },\n }));\n};\n\n/**\n * Хук для получения списка дней.\n */\nexport const useDays = ({ date, value, eventList, disabledList, min, max, includeEdgeDates }: UseDaysArgs) =>\n useMemo(() => {\n const { monthIndex, year } = date;\n const daysInMonth = getDaysInMonth(monthIndex, year);\n const offsetDayInWeek = getOffsetDayInWeek(monthIndex, year);\n\n const days = [\n ...getDaysInPrevMonth(date, offsetDayInWeek, value),\n ...getDaysInCurrentMonth(date, daysInMonth, value),\n ...getDaysInNextMonth(date, daysInMonth, offsetDayInWeek, value),\n ];\n\n if (eventList?.length || disabledList?.length || max || min) {\n const modifiedDays = getDatesWithModifications({\n dates: days,\n type: CalendarState.Days,\n includeEdgeDates,\n min,\n max,\n eventList,\n disabledList,\n });\n return getMatrix<DateItem>(modifiedDays);\n }\n\n return getMatrix<DateItem>(days);\n }, [date, value, eventList, disabledList, max, min, includeEdgeDates]);\n"],"names":["getDaysInPrevMonth","date","offsetDayInWeek","value","_getPrevDate","getPrevDate","year","monthIndex","_getPrevDate2","_slicedToArray","prevYear","prevMonth","daysInPrevMonth","getDaysInMonth","Array","from","_","i","isCurrent","isSelected","isDayInCurrentMonth","inRange","isArray","isDateInRange","day","getDaysInCurrentMonth","daysInMonth","IsCurrentDay","Boolean","find","v","isSelectedDay","getDaysInNextMonth","_getNextDate","getNextDate","_getNextDate2","nextYear","nextMonthIndex","visibleDayCount","restDaysInCalendar","useDays","_ref","eventList","disabledList","min","max","includeEdgeDates","useMemo","getOffsetDayInWeek","days","concat","_toConsumableArray","length","modifiedDays","getDatesWithModifications","dates","type","CalendarState","Days","getMatrix"],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { useState, useRef, useLayoutEffect, useCallback } from 'react';
3
3
  import { Keys } from '../Calendar.types.js';
4
- import { ROW_STEP } from '../utils/index.js';
4
+ import { offsetMap } from '../utils/constants.js';
5
+ import { sizeMap } from '../store/reducer.js';
5
6
 
6
7
  /**
7
8
  * Метод для получения стороны двойного календаря.
8
9
  */
9
- var getDoubleCalendarSide = function getDoubleCalendarSide(currentIndexWeek) {
10
- if (currentIndexWeek >= 0 && currentIndexWeek < ROW_STEP) {
10
+ var getDoubleCalendarSide = function getDoubleCalendarSide(currentIndex, calendarState) {
11
+ if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {
11
12
  return 'first';
12
13
  }
13
- if (currentIndexWeek >= ROW_STEP && currentIndexWeek < ROW_STEP * 2) {
14
+ if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {
14
15
  return 'second';
15
16
  }
16
17
  return '';
@@ -140,7 +141,7 @@ function getCorrectColumnIndex(_ref7) {
140
141
  return item;
141
142
  }) - 1;
142
143
  }
143
- var getCorrectIndexes = function getCorrectIndexes(refs, _ref8, rowSize, columnSize, withShift, defaultState) {
144
+ var getCorrectIndexes = function getCorrectIndexes(refs, _ref8, rowSize, columnSize, withShift, defaultState, calendarState) {
144
145
  var _refs$current7;
145
146
  var _ref9 = _slicedToArray(_ref8, 2),
146
147
  rowIndex = _ref9[0],
@@ -164,13 +165,13 @@ var getCorrectIndexes = function getCorrectIndexes(refs, _ref8, rowSize, columnS
164
165
  }
165
166
  }
166
167
  if (newRowIndex === minColumnIndex - 1) {
167
- newRowIndex = ROW_STEP - 1;
168
+ newRowIndex = offsetMap[calendarState] - 1;
168
169
  while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {
169
170
  newRowIndex--;
170
171
  }
171
172
  }
172
173
  if (newRowIndex === rowSize + 1) {
173
- newRowIndex = rowSize + 1 - ROW_STEP;
174
+ newRowIndex = rowSize + 1 - offsetMap[calendarState];
174
175
  while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {
175
176
  newRowIndex++;
176
177
  }
@@ -208,7 +209,8 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
208
209
  isDouble = _ref10$isDouble === void 0 ? false : _ref10$isDouble,
209
210
  size = _ref10.size,
210
211
  onPrev = _ref10.onPrev,
211
- onNext = _ref10.onNext;
212
+ onNext = _ref10.onNext,
213
+ calendarState = _ref10.calendarState;
212
214
  var _size = _slicedToArray(size, 2),
213
215
  rowSize = _size[0],
214
216
  columnSize = _size[1];
@@ -235,12 +237,13 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
235
237
  var refs = outerRefs.current;
236
238
  var isSecond = isDouble && isNext;
237
239
  var isFirst = isDouble && !isNext;
240
+ var firstEndIndex = Math.floor(sizeMap[calendarState]["double"][0] / 2);
238
241
 
239
242
  // Определяем какую часть сдвоенного календаря взять
240
243
  if (isFirst) {
241
- refs = outerRefs.current.slice(0, 5);
244
+ refs = outerRefs.current.slice(0, firstEndIndex);
242
245
  } else if (isSecond) {
243
- refs = outerRefs.current.slice(5, 12);
246
+ refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState]["double"][1]);
244
247
  }
245
248
  var refsList = (_refs = refs) === null || _refs === void 0 ? void 0 : _refs.flatMap(function (items) {
246
249
  return items.filter(Boolean);
@@ -283,7 +286,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
283
286
  return;
284
287
  }
285
288
  }
286
- var _getCorrectIndexes = getCorrectIndexes(outerRefs, selectIndexes, rowSize, columnSize, withShiftState.current, currentIndexes.current),
289
+ var _getCorrectIndexes = getCorrectIndexes(outerRefs, selectIndexes, rowSize, columnSize, withShiftState.current, currentIndexes.current, calendarState),
287
290
  _getCorrectIndexes2 = _slicedToArray(_getCorrectIndexes, 2),
288
291
  newRowIndex = _getCorrectIndexes2[0],
289
292
  newColumnIndex = _getCorrectIndexes2[1];
@@ -303,7 +306,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
303
306
  if (item) {
304
307
  item.focus();
305
308
  }
306
- }, [selectIndexes]);
309
+ }, [selectIndexes, outerRefs]);
307
310
  var onKeyDown = useCallback(function (event) {
308
311
  setIsOutOfMinMaxRange(false);
309
312
  var keyCode = event.keyCode,
@@ -330,6 +333,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
330
333
  switch (keyCode) {
331
334
  case Keys.pageUp:
332
335
  {
336
+ event.preventDefault();
333
337
  var isDisabledPreviousMonth = hasDisabledMonths({
334
338
  item: outerRefs.current[currentRowIndex][currentColumnIndex],
335
339
  key: 'previous'
@@ -343,6 +347,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
343
347
  }
344
348
  case Keys.pageDown:
345
349
  {
350
+ event.preventDefault();
346
351
  var isDisabledNextMonth = hasDisabledMonths({
347
352
  item: outerRefs.current[currentRowIndex][currentColumnIndex],
348
353
  key: 'next'
@@ -356,6 +361,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
356
361
  }
357
362
  case Keys.home:
358
363
  {
364
+ event.preventDefault();
359
365
  newColumnIndex = minColumnIndex;
360
366
  if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {
361
367
  break;
@@ -365,6 +371,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
365
371
  }
366
372
  case Keys.end:
367
373
  {
374
+ event.preventDefault();
368
375
  newColumnIndex = columnSize;
369
376
  if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {
370
377
  break;
@@ -374,6 +381,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
374
381
  }
375
382
  case Keys.left:
376
383
  {
384
+ event.preventDefault();
377
385
  newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;
378
386
  newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;
379
387
  withShiftState.current = withShift;
@@ -408,7 +416,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
408
416
  if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {
409
417
  break;
410
418
  }
411
- if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'first') {
419
+ if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {
412
420
  if (isCurrentDateDisabledArrowLeft) {
413
421
  newRowIndex = currentRowIndex;
414
422
  newColumnIndex = currentColumnIndex;
@@ -421,6 +429,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
421
429
  }
422
430
  case Keys.up:
423
431
  {
432
+ event.preventDefault();
424
433
  newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;
425
434
  withShiftState.current = withShift;
426
435
  var isCurrentDateDisabledArrowUp = hasDisabledArrowKey({
@@ -459,7 +468,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
459
468
  if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {
460
469
  break;
461
470
  }
462
- if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'first') {
471
+ if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {
463
472
  if (isCurrentDateDisabledArrowUp) {
464
473
  newRowIndex = currentRowIndex;
465
474
  newColumnIndex = currentColumnIndex;
@@ -472,6 +481,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
472
481
  }
473
482
  case Keys.right:
474
483
  {
484
+ event.preventDefault();
475
485
  newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;
476
486
  newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;
477
487
  withShiftState.current = withShift;
@@ -504,7 +514,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
504
514
  if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {
505
515
  break;
506
516
  }
507
- if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'second') {
517
+ if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {
508
518
  if (isCurrentDateDisabledArrowRight) {
509
519
  newRowIndex = currentRowIndex;
510
520
  newColumnIndex = currentColumnIndex;
@@ -517,6 +527,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
517
527
  }
518
528
  case Keys.down:
519
529
  {
530
+ event.preventDefault();
520
531
  newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;
521
532
  withShiftState.current = withShift;
522
533
  var isCurrentDateDisabledArrowDown = hasDisabledArrowKey({
@@ -555,7 +566,7 @@ var useKeyNavigation = function useKeyNavigation(_ref10) {
555
566
  if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {
556
567
  break;
557
568
  }
558
- if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'second') {
569
+ if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {
559
570
  if (isCurrentDateDisabledArrowDown) {
560
571
  newRowIndex = currentRowIndex;
561
572
  newColumnIndex = currentColumnIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey, UseKeyNavigationProps } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { ROW_STEP } from '../utils';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndexWeek: number) => {\n if (currentIndexWeek >= 0 && currentIndexWeek < ROW_STEP) {\n return 'first';\n }\n\n if (currentIndexWeek >= ROW_STEP && currentIndexWeek < ROW_STEP * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = ROW_STEP - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - ROW_STEP;\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext }: UseKeyNavigationProps) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, 5);\n } else if (isSecond) {\n refs = outerRefs.current.slice(5, 12);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n );\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndexWeek","ROW_STEP","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
1
+ {"version":3,"file":"useKeyNavigation.js","sources":["../../../../src/components/Calendar/hooks/useKeyNavigation.ts"],"sourcesContent":["import React, { KeyboardEvent, useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport type { DaysMetaDescription, KeyboardArrowKey } from '../Calendar.types';\nimport { Keys } from '../Calendar.types';\nimport { offsetMap } from '../utils';\nimport type { CalendarStateType } from '../store/types';\nimport { sizeMap } from '../store/reducer';\n\nimport type { UseKeyNavigationArgs } from './types';\n\n/**\n * Метод для получения стороны двойного календаря.\n */\nconst getDoubleCalendarSide = (currentIndex: number, calendarState: CalendarStateType) => {\n if (currentIndex >= 0 && currentIndex < offsetMap[calendarState]) {\n return 'first';\n }\n\n if (currentIndex >= offsetMap[calendarState] && currentIndex < offsetMap[calendarState] * 2) {\n return 'second';\n }\n\n return '';\n};\n\nconst isOutOfBound = ([rowIndex, columnIndex]: number[], rowSize: number, columnSize: number) =>\n columnIndex === -1 || columnIndex === columnSize + 1 || rowIndex === -1 || rowIndex === rowSize + 1;\n\nconst isVisible = (refs: React.MutableRefObject<HTMLDivElement[][]>, row: number, column: number) =>\n refs.current?.[row]?.[column];\n\nconst isAriaDisableItem = (item: HTMLDivElement) => item?.getAttribute('aria-disabled') === 'true';\n\nconst hasDisabledArrowKey = ({\n refs,\n payload,\n key,\n}: {\n refs: React.MutableRefObject<HTMLDivElement[][]>;\n payload: number[];\n key: KeyboardArrowKey;\n}) => {\n const [previousRowIndex, previousColumnIndex] = payload;\n\n const disabledArrowKey = refs.current?.[previousRowIndex]?.[previousColumnIndex]?.dataset.disabledArrowKey;\n\n return Boolean(disabledArrowKey?.includes(key));\n};\n\nconst hasDisabledMonths = ({ item, key }: { item: HTMLDivElement; key: 'previous' | 'next' }) => {\n return item?.dataset?.disabledMonths ? item?.dataset?.disabledMonths.includes(key) : false;\n};\n\nconst getNextCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex <= columnSize) {\n newColumnIndex++;\n\n if (newColumnIndex > columnSize && newRowIndex < rowSize) {\n newRowIndex++;\n newColumnIndex = minColumnIndex;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item) {\n const isDisabledArrowDown = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const isDisabledArrowRight = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'right',\n });\n\n if (isDisabledArrowDown || isDisabledArrowRight) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\nconst getPreviousCorrectPosition = ({\n refs,\n rowSize,\n newRowIndex,\n newColumnIndex,\n columnSize,\n minColumnIndex,\n defaultState = [],\n}: DaysMetaDescription): number[] => {\n let item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n while (isAriaDisableItem(item) && newColumnIndex >= minColumnIndex) {\n newColumnIndex--;\n\n if (newColumnIndex < minColumnIndex && newRowIndex <= rowSize) {\n newRowIndex--;\n newColumnIndex = columnSize;\n }\n\n item = refs.current?.[newRowIndex]?.[newColumnIndex];\n\n if (item && item.dataset.day === '1') {\n const isDisabledArrowUp = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const isDisabledArrowLeft = hasDisabledArrowKey({\n refs,\n payload: [newRowIndex, newColumnIndex],\n key: 'left',\n });\n\n if (isDisabledArrowUp || isDisabledArrowLeft) {\n return defaultState;\n }\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Метод для нахождения стартового индекса дня в следующем/предыдущем месяце\n */\nfunction getCorrectColumnIndex({\n refs,\n rowSize,\n isNext,\n}: {\n refs: HTMLDivElement[][];\n rowSize: number;\n isNext: boolean;\n}): number {\n if (isNext) {\n let index = refs[rowSize].filter(Boolean).length;\n\n if (!index) {\n index = refs[rowSize - 1].filter(Boolean).length;\n }\n\n return index;\n }\n\n // Смещение влево - начинаем поиск первого не-nullable элемента в первой строке\n return refs[0].findIndex((item) => item) - 1;\n}\n\nconst getCorrectIndexes = (\n refs: React.MutableRefObject<HTMLDivElement[][]>,\n [rowIndex, columnIndex]: number[],\n rowSize: number,\n columnSize: number,\n withShift: boolean,\n defaultState: number[],\n calendarState: CalendarStateType,\n) => {\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n const minRowIndex = newRowIndex + 1;\n const maxRowIndex = newRowIndex - 1;\n\n const minColumnIndex = 0;\n const maxColumnIndex = columnSize;\n\n if (newColumnIndex === minColumnIndex - 1) {\n newColumnIndex += 1;\n\n while (newColumnIndex < maxColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex++;\n }\n }\n\n if (newColumnIndex === columnSize + 1) {\n newColumnIndex -= 1;\n\n while (newColumnIndex > minColumnIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newColumnIndex--;\n }\n }\n\n if (newRowIndex === minColumnIndex - 1) {\n newRowIndex = offsetMap[calendarState] - 1;\n\n while (newRowIndex > minRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex--;\n }\n }\n\n if (newRowIndex === rowSize + 1) {\n newRowIndex = rowSize + 1 - offsetMap[calendarState];\n\n while (newRowIndex <= maxRowIndex && !isVisible(refs, newRowIndex, newColumnIndex)) {\n newRowIndex++;\n }\n }\n\n // INFO: Логика для получения правильной позиции дня, когда переключились на другой месяц\n // INFO: и ставим указатель на первый доступный день. Только при зажатой клавиши Shift.\n if (isAriaDisableItem(refs.current?.[newRowIndex]?.[newColumnIndex]) && withShift) {\n const isNext = rowIndex === rowSize + 1;\n const isPrevious = rowIndex === minColumnIndex - 1;\n\n const state = { refs, rowSize, newColumnIndex, minColumnIndex, columnSize, newRowIndex, defaultState };\n\n if (isNext) {\n return getNextCorrectPosition(state);\n }\n\n if (isPrevious) {\n return getPreviousCorrectPosition(state);\n }\n }\n\n return [newRowIndex, newColumnIndex];\n};\n\n/**\n * Хук для осуществления возможности клавиатурной навигации по матрице.\n */\nexport const useKeyNavigation = ({ isDouble = false, size, onPrev, onNext, calendarState }: UseKeyNavigationArgs) => {\n const [rowSize, columnSize] = size;\n const [selectIndexes, setSelectIndexes] = useState<number[]>([0, 0]);\n const [isOutOfMinMaxRange, setIsOutOfMinMaxRange] = useState<boolean>(false);\n\n const withShiftState = useRef<boolean>(false);\n const currentIndexes = useRef<number[]>([0, 0]);\n\n const outerRefs = useRef(\n Array(rowSize + 1)\n .fill(0)\n .map(() => Array<HTMLDivElement>(columnSize + 1)),\n );\n\n useLayoutEffect(() => {\n if (!isOutOfBound(selectIndexes, rowSize, columnSize)) {\n return;\n }\n\n if (withShiftState.current) {\n const isNext = selectIndexes[0] === rowSize + 1;\n\n let refs = outerRefs.current;\n\n const isSecond = isDouble && isNext;\n const isFirst = isDouble && !isNext;\n\n const firstEndIndex = Math.floor(sizeMap[calendarState].double[0] / 2);\n\n // Определяем какую часть сдвоенного календаря взять\n if (isFirst) {\n refs = outerRefs.current.slice(0, firstEndIndex);\n } else if (isSecond) {\n refs = outerRefs.current.slice(firstEndIndex, sizeMap[calendarState].double[1]);\n }\n\n const refsList = refs?.flatMap((items) => items.filter(Boolean));\n\n // Если в месяце нет хотя бы одной none-disabled даты значит весь месяц выключен.\n const hasSomeEnabledDay = refsList.some((item) => !isAriaDisableItem(item));\n\n const isDisabledNextMonth = hasDisabledMonths({ item: refsList[refsList.length - 1], key: 'next' });\n const isDisabledPreviousMonth = hasDisabledMonths({ item: refsList[0], key: 'previous' });\n\n // Если следующий/предыдущий месяц находится за границами мин/макс, то переходить на него\n // с текущего выключенного, нет смысла.\n if (!hasSomeEnabledDay && (isDisabledNextMonth || isDisabledPreviousMonth)) {\n const inverseHandle = isNext ? onPrev : onNext;\n\n inverseHandle();\n\n setSelectIndexes(currentIndexes.current);\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(true);\n\n return;\n }\n\n if (!hasSomeEnabledDay) {\n const handle = isNext ? onNext : onPrev;\n\n const startColumnIndex = getCorrectColumnIndex({\n refs,\n rowSize: isDouble ? refs.length - 1 : rowSize,\n isNext,\n });\n\n handle();\n\n setSelectIndexes([selectIndexes[0], startColumnIndex]);\n\n return;\n }\n }\n\n const [newRowIndex, newColumnIndex] = getCorrectIndexes(\n outerRefs,\n selectIndexes,\n rowSize,\n columnSize,\n withShiftState.current,\n currentIndexes.current,\n calendarState,\n );\n\n /**\n * Изменение состояния необходимо сделать здесь, т.к.\n * требуется дождаться обновление DOM и outerRefs\n */\n setSelectIndexes([newRowIndex, newColumnIndex]);\n }, [onPrev, onNext, selectIndexes, rowSize, columnSize, withShiftState, currentIndexes, isDouble]);\n\n useLayoutEffect(() => {\n const [rowIndex, columnIndex] = selectIndexes;\n\n const item = outerRefs?.current?.[rowIndex]?.[columnIndex];\n\n if (item) {\n item.focus();\n }\n }, [selectIndexes, outerRefs]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n setIsOutOfMinMaxRange(false);\n\n const { keyCode, shiftKey: withShift } = event;\n\n const [currentRowIndex, currentColumnIndex] = selectIndexes;\n\n let newRowIndex = currentRowIndex;\n let newColumnIndex = currentColumnIndex;\n\n const minColumnIndex = 0;\n const minRowIndex = 0;\n\n const prevRowIndex = currentRowIndex - 1;\n const nextRowIndex = currentRowIndex + 1;\n\n const prevColumnIndex = currentColumnIndex - 1;\n const nextColumnIndex = currentColumnIndex + 1;\n\n currentIndexes.current = [currentRowIndex, currentColumnIndex];\n\n const positionState = {\n refs: outerRefs,\n rowSize,\n columnSize,\n minColumnIndex,\n defaultState: [currentRowIndex, currentColumnIndex],\n };\n\n switch (keyCode) {\n case Keys.pageUp: {\n event.preventDefault();\n\n const isDisabledPreviousMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'previous',\n });\n\n if (isDisabledPreviousMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onPrev(withShift);\n\n break;\n }\n case Keys.pageDown: {\n event.preventDefault();\n\n const isDisabledNextMonth = hasDisabledMonths({\n item: outerRefs.current[currentRowIndex][currentColumnIndex],\n key: 'next',\n });\n\n if (isDisabledNextMonth) {\n setIsOutOfMinMaxRange(true);\n\n break;\n }\n\n onNext(withShift);\n\n break;\n }\n case Keys.home: {\n event.preventDefault();\n\n newColumnIndex = minColumnIndex;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = minColumnIndex - 1;\n\n break;\n }\n case Keys.end: {\n event.preventDefault();\n\n newColumnIndex = columnSize;\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n newColumnIndex = columnSize + 1;\n\n break;\n }\n\n case Keys.left: {\n event.preventDefault();\n\n newRowIndex = prevColumnIndex < minColumnIndex ? prevRowIndex : currentRowIndex;\n newColumnIndex = prevColumnIndex < minColumnIndex ? columnSize : prevColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowLeft = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'left',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowLeft);\n\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n // INFO: Для навигации только по доступным дням\n if (withShift) {\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowLeft) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n case Keys.up: {\n event.preventDefault();\n\n newRowIndex = prevRowIndex < minRowIndex ? rowSize : prevRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowUp = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'up',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowUp);\n\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'up',\n });\n\n const [rowIndex, columnIndex] = getPreviousCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'first') {\n if (isCurrentDateDisabledArrowUp) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onPrev();\n }\n\n newRowIndex = minRowIndex - 1;\n\n break;\n }\n\n case Keys.right: {\n event.preventDefault();\n\n newRowIndex = nextColumnIndex > columnSize ? nextRowIndex : currentRowIndex;\n newColumnIndex = nextColumnIndex > columnSize ? minColumnIndex : nextColumnIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowRight = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'right',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowRight);\n\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n setIsOutOfMinMaxRange(rowIndex === currentRowIndex && currentColumnIndex === columnIndex);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowRight) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.down: {\n event.preventDefault();\n\n newRowIndex = nextRowIndex > rowSize ? minRowIndex : nextRowIndex;\n\n withShiftState.current = withShift;\n\n const isCurrentDateDisabledArrowDown = hasDisabledArrowKey({\n refs: outerRefs,\n payload: [currentRowIndex, currentColumnIndex],\n key: 'down',\n });\n\n setIsOutOfMinMaxRange(isCurrentDateDisabledArrowDown);\n\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n if (withShift) {\n const item = outerRefs.current[newRowIndex][newColumnIndex];\n\n const isNextDateDisabledArrowUp =\n !!item &&\n hasDisabledArrowKey({\n refs: outerRefs,\n payload: [newRowIndex, newColumnIndex],\n key: 'down',\n });\n\n const [rowIndex, columnIndex] = getNextCorrectPosition({\n ...positionState,\n newRowIndex,\n newColumnIndex,\n });\n\n // Если индексы равны, значит мы остались на текущей дате по причине, того\n // что в следующем(-их)/предыдущем(-их) месяце нет доступных дат\n const haseCurrentPosition = rowIndex === currentRowIndex && currentColumnIndex === columnIndex;\n\n setIsOutOfMinMaxRange(isNextDateDisabledArrowUp || haseCurrentPosition);\n\n newRowIndex = rowIndex;\n newColumnIndex = columnIndex;\n }\n\n if (isVisible(outerRefs, newRowIndex, newColumnIndex)) {\n break;\n }\n\n if (!isDouble || getDoubleCalendarSide(currentRowIndex, calendarState) === 'second') {\n if (isCurrentDateDisabledArrowDown) {\n newRowIndex = currentRowIndex;\n newColumnIndex = currentColumnIndex;\n\n break;\n }\n\n onNext();\n }\n\n newRowIndex = rowSize + 1;\n\n break;\n }\n case Keys.enter:\n case Keys.space: {\n outerRefs.current?.[newRowIndex]?.[newColumnIndex].click();\n break;\n }\n\n default:\n return;\n }\n\n setSelectIndexes([newRowIndex, newColumnIndex]);\n },\n [selectIndexes, outerRefs, rowSize, columnSize, onNext, onPrev, isDouble],\n );\n\n return [selectIndexes, onKeyDown, setSelectIndexes, outerRefs, isOutOfMinMaxRange] as const;\n};\n"],"names":["getDoubleCalendarSide","currentIndex","calendarState","offsetMap","isOutOfBound","_ref","rowSize","columnSize","_ref2","_slicedToArray","rowIndex","columnIndex","isVisible","refs","row","column","_refs$current","current","isAriaDisableItem","item","getAttribute","hasDisabledArrowKey","_ref3","_refs$current2","payload","key","_payload","previousRowIndex","previousColumnIndex","disabledArrowKey","dataset","Boolean","includes","hasDisabledMonths","_ref4","_item$dataset","_item$dataset2","disabledMonths","getNextCorrectPosition","_ref5","_refs$current3","newRowIndex","newColumnIndex","minColumnIndex","_ref5$defaultState","defaultState","_refs$current4","isDisabledArrowDown","isDisabledArrowRight","getPreviousCorrectPosition","_ref6","_refs$current5","_ref6$defaultState","_refs$current6","day","isDisabledArrowUp","isDisabledArrowLeft","getCorrectColumnIndex","_ref7","isNext","index","filter","length","findIndex","getCorrectIndexes","_ref8","withShift","_refs$current7","_ref9","minRowIndex","maxRowIndex","maxColumnIndex","isPrevious","state","useKeyNavigation","_ref10","_ref10$isDouble","isDouble","size","onPrev","onNext","_size","_useState","useState","_useState2","selectIndexes","setSelectIndexes","_useState3","_useState4","isOutOfMinMaxRange","setIsOutOfMinMaxRange","withShiftState","useRef","currentIndexes","outerRefs","Array","fill","map","useLayoutEffect","_refs","isSecond","isFirst","firstEndIndex","Math","floor","sizeMap","slice","refsList","flatMap","items","hasSomeEnabledDay","some","isDisabledNextMonth","isDisabledPreviousMonth","inverseHandle","handle","startColumnIndex","_getCorrectIndexes","_getCorrectIndexes2","_outerRefs$current","_selectIndexes","focus","onKeyDown","useCallback","event","keyCode","shiftKey","_selectIndexes2","currentRowIndex","currentColumnIndex","prevRowIndex","nextRowIndex","prevColumnIndex","nextColumnIndex","positionState","Keys","pageUp","preventDefault","pageDown","home","end","left","isCurrentDateDisabledArrowLeft","_getPreviousCorrectPo","_objectSpread","_getPreviousCorrectPo2","up","isCurrentDateDisabledArrowUp","isNextDateDisabledArrowUp","_getPreviousCorrectPo3","_getPreviousCorrectPo4","haseCurrentPosition","right","isCurrentDateDisabledArrowRight","_getNextCorrectPositi","_getNextCorrectPositi2","down","isCurrentDateDisabledArrowDown","_getNextCorrectPositi3","_getNextCorrectPositi4","enter","space","_outerRefs$current2","click"],"mappings":"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"}
@@ -1,22 +1,51 @@
1
1
  import { useMemo } from 'react';
2
- import { SHORT_MONTH_NAME, isCurrentMonth, isSelectedMonth, MONTH_NAMES, getMatrix } from '../utils/index.js';
2
+ import { getDatesWithModifications } from '../utils/getDateWithModification.js';
3
+ import { SHORT_MONTH_NAME, MONTH_NAMES } from '../utils/constants.js';
4
+ import { isCurrentMonth, isSelectedMonth, getMatrix } from '../utils/calendarGridHelper.js';
5
+ import { isDateInRange } from '../utils/calendarRangeHelper.js';
6
+ import { CalendarState } from '../store/types.js';
3
7
 
4
8
  /**
5
9
  * Хук для получения списка месяцев.
6
10
  */
7
- var useMonths = function useMonths(date) {
11
+ var useMonths = function useMonths(_ref) {
12
+ var date = _ref.date,
13
+ value = _ref.value,
14
+ eventList = _ref.eventList,
15
+ disabledList = _ref.disabledList,
16
+ min = _ref.min,
17
+ max = _ref.max;
8
18
  return useMemo(function () {
9
- var result = SHORT_MONTH_NAME.map(function (monthName, monthIndex) {
19
+ var months = SHORT_MONTH_NAME.map(function (monthName, monthIndex) {
10
20
  return {
11
21
  monthName: monthName,
12
22
  monthIndex: monthIndex,
13
23
  isCurrent: isCurrentMonth(date, monthIndex),
14
- isSelected: isSelectedMonth(date, monthIndex),
15
- monthFullName: MONTH_NAMES[monthIndex]
24
+ isSelected: Array.isArray(value) ? Boolean(value.find(function (v) {
25
+ return isSelectedMonth(date, monthIndex, v);
26
+ })) : isSelectedMonth(date, monthIndex, value),
27
+ inRange: Array.isArray(value) ? isDateInRange(date.year, monthIndex, 1, value) : false,
28
+ monthFullName: MONTH_NAMES[monthIndex],
29
+ date: {
30
+ year: date.year,
31
+ monthIndex: monthIndex,
32
+ day: 1
33
+ }
16
34
  };
17
35
  });
18
- return getMatrix(result, 3);
19
- }, [date]);
36
+ if (eventList !== null && eventList !== void 0 && eventList.length || disabledList !== null && disabledList !== void 0 && disabledList.length || max || min) {
37
+ var modifiedMonths = getDatesWithModifications({
38
+ dates: months,
39
+ type: CalendarState.Months,
40
+ min: min,
41
+ max: max,
42
+ eventList: eventList,
43
+ disabledList: disabledList
44
+ });
45
+ return getMatrix(modifiedMonths, 3);
46
+ }
47
+ return getMatrix(months, 3);
48
+ }, [date, value, eventList, disabledList, max, min]);
20
49
  };
21
50
 
22
51
  export { useMonths };
@@ -1 +1 @@
1
- {"version":3,"file":"useMonths.js","sources":["../../../../src/components/Calendar/hooks/useMonths.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { DateObject, MonthsItem } from '../Calendar.types';\nimport { SHORT_MONTH_NAME, isSelectedMonth, isCurrentMonth, getMatrix, MONTH_NAMES } from '../utils';\n\n/**\n * Хук для получения списка месяцев.\n */\nexport const useMonths = (date: DateObject) =>\n useMemo(() => {\n const result = SHORT_MONTH_NAME.map((monthName, monthIndex) => ({\n monthName,\n monthIndex,\n isCurrent: isCurrentMonth(date, monthIndex),\n isSelected: isSelectedMonth(date, monthIndex),\n monthFullName: MONTH_NAMES[monthIndex],\n }));\n\n return getMatrix<MonthsItem>(result, 3);\n }, [date]);\n"],"names":["useMonths","date","useMemo","result","SHORT_MONTH_NAME","map","monthName","monthIndex","isCurrent","isCurrentMonth","isSelected","isSelectedMonth","monthFullName","MONTH_NAMES","getMatrix"],"mappings":";;;AAKA;AACA;AACA;IACaA,SAAS,GAAG,SAAZA,SAASA,CAAIC,IAAgB,EAAA;EAAA,OACtCC,OAAO,CAAC,YAAM;IACV,IAAMC,MAAM,GAAGC,gBAAgB,CAACC,GAAG,CAAC,UAACC,SAAS,EAAEC,UAAU,EAAA;MAAA,OAAM;AAC5DD,QAAAA,SAAS,EAATA,SAAS;AACTC,QAAAA,UAAU,EAAVA,UAAU;AACVC,QAAAA,SAAS,EAAEC,cAAc,CAACR,IAAI,EAAEM,UAAU,CAAC;AAC3CG,QAAAA,UAAU,EAAEC,eAAe,CAACV,IAAI,EAAEM,UAAU,CAAC;QAC7CK,aAAa,EAAEC,WAAW,CAACN,UAAU,CAAA;OACxC,CAAA;AAAA,KAAC,CAAC,CAAA;AAEH,IAAA,OAAOO,SAAS,CAAaX,MAAM,EAAE,CAAC,CAAC,CAAA;AAC3C,GAAC,EAAE,CAACF,IAAI,CAAC,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"useMonths.js","sources":["../../../../src/components/Calendar/hooks/useMonths.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { DateItem } from '../Calendar.types';\nimport {\n SHORT_MONTH_NAME,\n isSelectedMonth,\n isCurrentMonth,\n getMatrix,\n MONTH_NAMES,\n isDateInRange,\n getDatesWithModifications,\n} from '../utils';\nimport { CalendarState } from '../store/types';\n\nimport { UseMonthsArgs } from './types';\n\n/**\n * Хук для получения списка месяцев.\n */\nexport const useMonths = ({ date, value, eventList, disabledList, min, max }: UseMonthsArgs) =>\n useMemo(() => {\n const months = SHORT_MONTH_NAME.map((monthName, monthIndex) => {\n return {\n monthName,\n monthIndex,\n isCurrent: isCurrentMonth(date, monthIndex),\n isSelected: Array.isArray(value)\n ? Boolean(value.find((v) => isSelectedMonth(date, monthIndex, v)))\n : isSelectedMonth(date, monthIndex, value),\n inRange: Array.isArray(value) ? isDateInRange(date.year, monthIndex, 1, value) : false,\n monthFullName: MONTH_NAMES[monthIndex],\n date: { year: date.year, monthIndex, day: 1 },\n };\n });\n\n if (eventList?.length || disabledList?.length || max || min) {\n const modifiedMonths = getDatesWithModifications({\n dates: months,\n type: CalendarState.Months,\n min,\n max,\n eventList,\n disabledList,\n });\n return getMatrix<DateItem>(modifiedMonths, 3);\n }\n\n return getMatrix<DateItem>(months, 3);\n }, [date, value, eventList, disabledList, max, min]);\n"],"names":["useMonths","_ref","date","value","eventList","disabledList","min","max","useMemo","months","SHORT_MONTH_NAME","map","monthName","monthIndex","isCurrent","isCurrentMonth","isSelected","Array","isArray","Boolean","find","v","isSelectedMonth","inRange","isDateInRange","year","monthFullName","MONTH_NAMES","day","length","modifiedMonths","getDatesWithModifications","dates","type","CalendarState","Months","getMatrix"],"mappings":";;;;;;;AAgBA;AACA;AACA;IACaA,SAAS,GAAG,SAAZA,SAASA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IAAEC,GAAG,GAAAL,IAAA,CAAHK,GAAG;IAAEC,GAAG,GAAAN,IAAA,CAAHM,GAAG,CAAA;EAAA,OACtEC,OAAO,CAAC,YAAM;IACV,IAAMC,MAAM,GAAGC,gBAAgB,CAACC,GAAG,CAAC,UAACC,SAAS,EAAEC,UAAU,EAAK;MAC3D,OAAO;AACHD,QAAAA,SAAS,EAATA,SAAS;AACTC,QAAAA,UAAU,EAAVA,UAAU;AACVC,QAAAA,SAAS,EAAEC,cAAc,CAACb,IAAI,EAAEW,UAAU,CAAC;AAC3CG,QAAAA,UAAU,EAAEC,KAAK,CAACC,OAAO,CAACf,KAAK,CAAC,GAC1BgB,OAAO,CAAChB,KAAK,CAACiB,IAAI,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAKC,eAAe,CAACpB,IAAI,EAAEW,UAAU,EAAEQ,CAAC,CAAC,CAAA;SAAC,CAAA,CAAC,GAChEC,eAAe,CAACpB,IAAI,EAAEW,UAAU,EAAEV,KAAK,CAAC;QAC9CoB,OAAO,EAAEN,KAAK,CAACC,OAAO,CAACf,KAAK,CAAC,GAAGqB,aAAa,CAACtB,IAAI,CAACuB,IAAI,EAAEZ,UAAU,EAAE,CAAC,EAAEV,KAAK,CAAC,GAAG,KAAK;AACtFuB,QAAAA,aAAa,EAAEC,WAAW,CAACd,UAAU,CAAC;AACtCX,QAAAA,IAAI,EAAE;UAAEuB,IAAI,EAAEvB,IAAI,CAACuB,IAAI;AAAEZ,UAAAA,UAAU,EAAVA,UAAU;AAAEe,UAAAA,GAAG,EAAE,CAAA;AAAE,SAAA;OAC/C,CAAA;AACL,KAAC,CAAC,CAAA;AAEF,IAAA,IAAIxB,SAAS,KAATA,IAAAA,IAAAA,SAAS,eAATA,SAAS,CAAEyB,MAAM,IAAIxB,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,IAAZA,YAAY,CAAEwB,MAAM,IAAItB,GAAG,IAAID,GAAG,EAAE;MACzD,IAAMwB,cAAc,GAAGC,yBAAyB,CAAC;AAC7CC,QAAAA,KAAK,EAAEvB,MAAM;QACbwB,IAAI,EAAEC,aAAa,CAACC,MAAM;AAC1B7B,QAAAA,GAAG,EAAHA,GAAG;AACHC,QAAAA,GAAG,EAAHA,GAAG;AACHH,QAAAA,SAAS,EAATA,SAAS;AACTC,QAAAA,YAAY,EAAZA,YAAAA;AACJ,OAAC,CAAC,CAAA;AACF,MAAA,OAAO+B,SAAS,CAAWN,cAAc,EAAE,CAAC,CAAC,CAAA;AACjD,KAAA;AAEA,IAAA,OAAOM,SAAS,CAAW3B,MAAM,EAAE,CAAC,CAAC,CAAA;AACzC,GAAC,EAAE,CAACP,IAAI,EAAEC,KAAK,EAAEC,SAAS,EAAEC,YAAY,EAAEE,GAAG,EAAED,GAAG,CAAC,CAAC,CAAA;AAAA;;;;"}