@mantine/dates 3.3.4 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/cjs/components/Calendar/Calendar.js +6 -137
  2. package/cjs/components/Calendar/Calendar.js.map +1 -1
  3. package/cjs/components/CalendarBase/CalendarBase.js +242 -0
  4. package/cjs/components/CalendarBase/CalendarBase.js.map +1 -0
  5. package/cjs/components/CalendarBase/CalendarBase.styles.js +22 -0
  6. package/cjs/components/CalendarBase/CalendarBase.styles.js.map +1 -0
  7. package/cjs/components/{Calendar → CalendarBase/CalendarHeader}/ArrowIcon.js +0 -0
  8. package/cjs/components/CalendarBase/CalendarHeader/ArrowIcon.js.map +1 -0
  9. package/cjs/components/CalendarBase/CalendarHeader/CalendarHeader.js +119 -0
  10. package/cjs/components/CalendarBase/CalendarHeader/CalendarHeader.js.map +1 -0
  11. package/cjs/components/CalendarBase/CalendarHeader/CalendarHeader.styles.js +58 -0
  12. package/cjs/components/CalendarBase/CalendarHeader/CalendarHeader.styles.js.map +1 -0
  13. package/cjs/components/CalendarBase/MonthPicker/MonthPicker.js +113 -0
  14. package/cjs/components/CalendarBase/MonthPicker/MonthPicker.js.map +1 -0
  15. package/cjs/components/CalendarBase/MonthPicker/MonthPicker.styles.js +52 -0
  16. package/cjs/components/CalendarBase/MonthPicker/MonthPicker.styles.js.map +1 -0
  17. package/cjs/components/CalendarBase/MonthPicker/is-month-in-range/is-month-in-range.js +25 -0
  18. package/cjs/components/CalendarBase/MonthPicker/is-month-in-range/is-month-in-range.js.map +1 -0
  19. package/cjs/components/CalendarBase/MonthsList/MonthsList.js +123 -0
  20. package/cjs/components/CalendarBase/MonthsList/MonthsList.js.map +1 -0
  21. package/cjs/components/CalendarBase/MonthsList/format-month-label/format-month-label.js +17 -0
  22. package/cjs/components/CalendarBase/MonthsList/format-month-label/format-month-label.js.map +1 -0
  23. package/cjs/components/CalendarBase/YearPicker/YearPicker.js +102 -0
  24. package/cjs/components/CalendarBase/YearPicker/YearPicker.js.map +1 -0
  25. package/cjs/components/CalendarBase/YearPicker/YearPicker.styles.js +54 -0
  26. package/cjs/components/CalendarBase/YearPicker/YearPicker.styles.js.map +1 -0
  27. package/cjs/components/CalendarBase/YearPicker/get-decade-range/get-decade-range.js +16 -0
  28. package/cjs/components/CalendarBase/YearPicker/get-decade-range/get-decade-range.js.map +1 -0
  29. package/cjs/components/DatePicker/DatePicker.js +10 -10
  30. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  31. package/cjs/components/DatePickerBase/DatePickerBase.js +5 -5
  32. package/cjs/components/DatePickerBase/DatePickerBase.js.map +1 -1
  33. package/cjs/components/DateRangePicker/DateRangePicker.js +0 -6
  34. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  35. package/cjs/components/Month/Day/Day.js +12 -15
  36. package/cjs/components/Month/Day/Day.js.map +1 -1
  37. package/cjs/components/Month/Day/Day.styles.js +2 -1
  38. package/cjs/components/Month/Day/Day.styles.js.map +1 -1
  39. package/cjs/components/Month/Day/get-day-autofocus/get-day-autofocus.js +13 -0
  40. package/cjs/components/Month/Day/get-day-autofocus/get-day-autofocus.js.map +1 -0
  41. package/cjs/components/Month/Day/get-day-tab-index/get-day-tab-index.js +16 -0
  42. package/cjs/components/Month/Day/get-day-tab-index/get-day-tab-index.js.map +1 -0
  43. package/cjs/components/Month/Month.js +36 -67
  44. package/cjs/components/Month/Month.js.map +1 -1
  45. package/cjs/components/Month/Month.styles.js +1 -1
  46. package/cjs/components/Month/Month.styles.js.map +1 -1
  47. package/cjs/components/Month/get-day-props/get-day-props.js +9 -24
  48. package/cjs/components/Month/get-day-props/get-day-props.js.map +1 -1
  49. package/cjs/components/Month/get-day-props/get-range-props/get-range-props.js +25 -0
  50. package/cjs/components/Month/get-day-props/get-range-props/get-range-props.js.map +1 -0
  51. package/cjs/components/Month/get-day-props/is-disabled/is-disabled.js +27 -0
  52. package/cjs/components/Month/get-day-props/is-disabled/is-disabled.js.map +1 -0
  53. package/cjs/components/Month/get-day-props/is-outside/is-outside.js +13 -0
  54. package/cjs/components/Month/get-day-props/is-outside/is-outside.js.map +1 -0
  55. package/cjs/components/Month/get-day-props/is-weekend/is-weekend.js +11 -0
  56. package/cjs/components/Month/get-day-props/is-weekend/is-weekend.js.map +1 -0
  57. package/cjs/components/RangeCalendar/RangeCalendar.js +19 -122
  58. package/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
  59. package/cjs/components/TimeInput/TimeField/TimeField.js +6 -1
  60. package/cjs/components/TimeInput/TimeField/TimeField.js.map +1 -1
  61. package/cjs/components/TimeInput/TimeField/TimeField.styles.js +54 -0
  62. package/cjs/components/TimeInput/TimeField/TimeField.styles.js.map +1 -0
  63. package/cjs/components/TimeInput/TimeInput.styles.js +1 -24
  64. package/cjs/components/TimeInput/TimeInput.styles.js.map +1 -1
  65. package/cjs/components/TimeRangeInput/TimeRangeInput.styles.js +2 -19
  66. package/cjs/components/TimeRangeInput/TimeRangeInput.styles.js.map +1 -1
  67. package/cjs/utils/get-months-names/get-months-names.js +2 -2
  68. package/cjs/utils/get-months-names/get-months-names.js.map +1 -1
  69. package/esm/components/Calendar/Calendar.js +6 -136
  70. package/esm/components/Calendar/Calendar.js.map +1 -1
  71. package/esm/components/CalendarBase/CalendarBase.js +234 -0
  72. package/esm/components/CalendarBase/CalendarBase.js.map +1 -0
  73. package/esm/components/CalendarBase/CalendarBase.styles.js +18 -0
  74. package/esm/components/CalendarBase/CalendarBase.styles.js.map +1 -0
  75. package/esm/components/{Calendar → CalendarBase/CalendarHeader}/ArrowIcon.js +0 -0
  76. package/esm/components/CalendarBase/CalendarHeader/ArrowIcon.js.map +1 -0
  77. package/esm/components/CalendarBase/CalendarHeader/CalendarHeader.js +111 -0
  78. package/esm/components/CalendarBase/CalendarHeader/CalendarHeader.js.map +1 -0
  79. package/esm/components/CalendarBase/CalendarHeader/CalendarHeader.styles.js +54 -0
  80. package/esm/components/CalendarBase/CalendarHeader/CalendarHeader.styles.js.map +1 -0
  81. package/esm/components/CalendarBase/MonthPicker/MonthPicker.js +105 -0
  82. package/esm/components/CalendarBase/MonthPicker/MonthPicker.js.map +1 -0
  83. package/esm/components/CalendarBase/MonthPicker/MonthPicker.styles.js +48 -0
  84. package/esm/components/CalendarBase/MonthPicker/MonthPicker.styles.js.map +1 -0
  85. package/esm/components/CalendarBase/MonthPicker/is-month-in-range/is-month-in-range.js +17 -0
  86. package/esm/components/CalendarBase/MonthPicker/is-month-in-range/is-month-in-range.js.map +1 -0
  87. package/esm/components/CalendarBase/MonthsList/MonthsList.js +114 -0
  88. package/esm/components/CalendarBase/MonthsList/MonthsList.js.map +1 -0
  89. package/esm/components/CalendarBase/MonthsList/format-month-label/format-month-label.js +9 -0
  90. package/esm/components/CalendarBase/MonthsList/format-month-label/format-month-label.js.map +1 -0
  91. package/esm/components/CalendarBase/YearPicker/YearPicker.js +94 -0
  92. package/esm/components/CalendarBase/YearPicker/YearPicker.js.map +1 -0
  93. package/esm/components/CalendarBase/YearPicker/YearPicker.styles.js +50 -0
  94. package/esm/components/CalendarBase/YearPicker/YearPicker.styles.js.map +1 -0
  95. package/esm/components/CalendarBase/YearPicker/get-decade-range/get-decade-range.js +12 -0
  96. package/esm/components/CalendarBase/YearPicker/get-decade-range/get-decade-range.js.map +1 -0
  97. package/esm/components/DatePicker/DatePicker.js +10 -10
  98. package/esm/components/DatePicker/DatePicker.js.map +1 -1
  99. package/esm/components/DatePickerBase/DatePickerBase.js +6 -6
  100. package/esm/components/DatePickerBase/DatePickerBase.js.map +1 -1
  101. package/esm/components/DateRangePicker/DateRangePicker.js +0 -6
  102. package/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
  103. package/esm/components/Month/Day/Day.js +12 -15
  104. package/esm/components/Month/Day/Day.js.map +1 -1
  105. package/esm/components/Month/Day/Day.styles.js +2 -1
  106. package/esm/components/Month/Day/Day.styles.js.map +1 -1
  107. package/esm/components/Month/Day/get-day-autofocus/get-day-autofocus.js +9 -0
  108. package/esm/components/Month/Day/get-day-autofocus/get-day-autofocus.js.map +1 -0
  109. package/esm/components/Month/Day/get-day-tab-index/get-day-tab-index.js +12 -0
  110. package/esm/components/Month/Day/get-day-tab-index/get-day-tab-index.js.map +1 -0
  111. package/esm/components/Month/Month.js +38 -69
  112. package/esm/components/Month/Month.js.map +1 -1
  113. package/esm/components/Month/Month.styles.js +1 -1
  114. package/esm/components/Month/Month.styles.js.map +1 -1
  115. package/esm/components/Month/get-day-props/get-day-props.js +9 -20
  116. package/esm/components/Month/get-day-props/get-day-props.js.map +1 -1
  117. package/esm/components/Month/get-day-props/get-range-props/get-range-props.js +17 -0
  118. package/esm/components/Month/get-day-props/get-range-props/get-range-props.js.map +1 -0
  119. package/esm/components/Month/get-day-props/is-disabled/is-disabled.js +19 -0
  120. package/esm/components/Month/get-day-props/is-disabled/is-disabled.js.map +1 -0
  121. package/esm/components/Month/get-day-props/is-outside/is-outside.js +9 -0
  122. package/esm/components/Month/get-day-props/is-outside/is-outside.js.map +1 -0
  123. package/esm/components/Month/get-day-props/is-weekend/is-weekend.js +7 -0
  124. package/esm/components/Month/get-day-props/is-weekend/is-weekend.js.map +1 -0
  125. package/esm/components/RangeCalendar/RangeCalendar.js +20 -123
  126. package/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
  127. package/esm/components/TimeInput/TimeField/TimeField.js +6 -1
  128. package/esm/components/TimeInput/TimeField/TimeField.js.map +1 -1
  129. package/esm/components/TimeInput/TimeField/TimeField.styles.js +50 -0
  130. package/esm/components/TimeInput/TimeField/TimeField.styles.js.map +1 -0
  131. package/esm/components/TimeInput/TimeInput.styles.js +1 -24
  132. package/esm/components/TimeInput/TimeInput.styles.js.map +1 -1
  133. package/esm/components/TimeRangeInput/TimeRangeInput.styles.js +2 -19
  134. package/esm/components/TimeRangeInput/TimeRangeInput.styles.js.map +1 -1
  135. package/esm/utils/get-months-names/get-months-names.js +2 -2
  136. package/esm/utils/get-months-names/get-months-names.js.map +1 -1
  137. package/lib/components/Calendar/Calendar.d.ts +3 -45
  138. package/lib/components/Calendar/Calendar.d.ts.map +1 -1
  139. package/lib/components/Calendar/index.d.ts +1 -1
  140. package/lib/components/Calendar/index.d.ts.map +1 -1
  141. package/lib/components/CalendarBase/CalendarBase.d.ts +56 -0
  142. package/lib/components/CalendarBase/CalendarBase.d.ts.map +1 -0
  143. package/lib/components/CalendarBase/CalendarBase.styles.d.ts +13 -0
  144. package/lib/components/CalendarBase/CalendarBase.styles.d.ts.map +1 -0
  145. package/lib/components/CalendarBase/CalendarHeader/ArrowIcon.d.ts +10 -0
  146. package/lib/components/CalendarBase/CalendarHeader/ArrowIcon.d.ts.map +1 -0
  147. package/lib/components/CalendarBase/CalendarHeader/CalendarHeader.d.ts +24 -0
  148. package/lib/components/CalendarBase/CalendarHeader/CalendarHeader.d.ts.map +1 -0
  149. package/lib/components/CalendarBase/CalendarHeader/CalendarHeader.styles.d.ts +18 -0
  150. package/lib/components/CalendarBase/CalendarHeader/CalendarHeader.styles.d.ts.map +1 -0
  151. package/lib/components/CalendarBase/MonthPicker/MonthPicker.d.ts +27 -0
  152. package/lib/components/CalendarBase/MonthPicker/MonthPicker.d.ts.map +1 -0
  153. package/lib/components/CalendarBase/MonthPicker/MonthPicker.styles.d.ts +11 -0
  154. package/lib/components/CalendarBase/MonthPicker/MonthPicker.styles.d.ts.map +1 -0
  155. package/lib/components/CalendarBase/MonthPicker/is-month-in-range/is-month-in-range.d.ts +8 -0
  156. package/lib/components/CalendarBase/MonthPicker/is-month-in-range/is-month-in-range.d.ts.map +1 -0
  157. package/lib/components/CalendarBase/MonthsList/MonthsList.d.ts +24 -0
  158. package/lib/components/CalendarBase/MonthsList/MonthsList.d.ts.map +1 -0
  159. package/lib/components/CalendarBase/MonthsList/format-month-label/format-month-label.d.ts +8 -0
  160. package/lib/components/CalendarBase/MonthsList/format-month-label/format-month-label.d.ts.map +1 -0
  161. package/lib/components/CalendarBase/YearPicker/YearPicker.d.ts +20 -0
  162. package/lib/components/CalendarBase/YearPicker/YearPicker.d.ts.map +1 -0
  163. package/lib/components/CalendarBase/YearPicker/YearPicker.styles.d.ts +11 -0
  164. package/lib/components/CalendarBase/YearPicker/YearPicker.styles.d.ts.map +1 -0
  165. package/lib/components/CalendarBase/YearPicker/get-decade-range/get-decade-range.d.ts +2 -0
  166. package/lib/components/CalendarBase/YearPicker/get-decade-range/get-decade-range.d.ts.map +1 -0
  167. package/lib/components/DatePicker/DatePicker.d.ts +2 -2
  168. package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
  169. package/lib/components/DatePickerBase/DatePickerBase.d.ts +2 -2
  170. package/lib/components/DatePickerBase/DatePickerBase.d.ts.map +1 -1
  171. package/lib/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  172. package/lib/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  173. package/lib/components/Month/Day/Day.d.ts +3 -3
  174. package/lib/components/Month/Day/Day.d.ts.map +1 -1
  175. package/lib/components/Month/Day/Day.styles.d.ts +3 -2
  176. package/lib/components/Month/Day/Day.styles.d.ts.map +1 -1
  177. package/lib/components/Month/Day/get-day-autofocus/get-day-autofocus.d.ts +8 -0
  178. package/lib/components/Month/Day/get-day-autofocus/get-day-autofocus.d.ts.map +1 -0
  179. package/lib/components/Month/Day/get-day-tab-index/get-day-tab-index.d.ts +9 -0
  180. package/lib/components/Month/Day/get-day-tab-index/get-day-tab-index.d.ts.map +1 -0
  181. package/lib/components/Month/Month.d.ts +12 -11
  182. package/lib/components/Month/Month.d.ts.map +1 -1
  183. package/lib/components/Month/Month.styles.d.ts +2 -2
  184. package/lib/components/Month/get-day-props/get-day-props.d.ts +2 -27
  185. package/lib/components/Month/get-day-props/get-day-props.d.ts.map +1 -1
  186. package/lib/components/Month/get-day-props/get-range-props/get-range-props.d.ts +7 -0
  187. package/lib/components/Month/get-day-props/get-range-props/get-range-props.d.ts.map +1 -0
  188. package/lib/components/Month/get-day-props/is-disabled/is-disabled.d.ts +11 -0
  189. package/lib/components/Month/get-day-props/is-disabled/is-disabled.d.ts.map +1 -0
  190. package/lib/components/Month/get-day-props/is-outside/is-outside.d.ts +2 -0
  191. package/lib/components/Month/get-day-props/is-outside/is-outside.d.ts.map +1 -0
  192. package/lib/components/Month/get-day-props/is-weekend/is-weekend.d.ts +2 -0
  193. package/lib/components/Month/get-day-props/is-weekend/is-weekend.d.ts.map +1 -0
  194. package/lib/components/Month/index.d.ts +1 -0
  195. package/lib/components/Month/index.d.ts.map +1 -1
  196. package/lib/components/Month/types.d.ts +23 -0
  197. package/lib/components/Month/types.d.ts.map +1 -0
  198. package/lib/components/RangeCalendar/RangeCalendar.d.ts +2 -12
  199. package/lib/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
  200. package/lib/components/TimeInput/TimeField/TimeField.d.ts.map +1 -1
  201. package/lib/components/TimeInput/TimeField/TimeField.styles.d.ts +18 -0
  202. package/lib/components/TimeInput/TimeField/TimeField.styles.d.ts.map +1 -0
  203. package/lib/components/TimeInput/TimeInput.styles.d.ts +0 -7
  204. package/lib/components/TimeInput/TimeInput.styles.d.ts.map +1 -1
  205. package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts +2 -2
  206. package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts.map +1 -1
  207. package/lib/utils/get-months-names/get-months-names.d.ts +1 -1
  208. package/lib/utils/get-months-names/get-months-names.d.ts.map +1 -1
  209. package/package.json +3 -3
  210. package/cjs/components/Calendar/ArrowIcon.js.map +0 -1
  211. package/cjs/components/Calendar/CalendarHeader/CalendarHeader.js +0 -105
  212. package/cjs/components/Calendar/CalendarHeader/CalendarHeader.js.map +0 -1
  213. package/cjs/components/Calendar/CalendarLabel/CalendarLabel.js +0 -69
  214. package/cjs/components/Calendar/CalendarLabel/CalendarLabel.js.map +0 -1
  215. package/cjs/components/Calendar/CalendarLabel/CalendarLabel.styles.js +0 -14
  216. package/cjs/components/Calendar/CalendarLabel/CalendarLabel.styles.js.map +0 -1
  217. package/cjs/components/Calendar/CalendarWrapper/CalendarWrapper.js +0 -58
  218. package/cjs/components/Calendar/CalendarWrapper/CalendarWrapper.js.map +0 -1
  219. package/cjs/components/Calendar/get-disabled-state/get-disabled-state.js +0 -18
  220. package/cjs/components/Calendar/get-disabled-state/get-disabled-state.js.map +0 -1
  221. package/esm/components/Calendar/ArrowIcon.js.map +0 -1
  222. package/esm/components/Calendar/CalendarHeader/CalendarHeader.js +0 -97
  223. package/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +0 -1
  224. package/esm/components/Calendar/CalendarLabel/CalendarLabel.js +0 -60
  225. package/esm/components/Calendar/CalendarLabel/CalendarLabel.js.map +0 -1
  226. package/esm/components/Calendar/CalendarLabel/CalendarLabel.styles.js +0 -10
  227. package/esm/components/Calendar/CalendarLabel/CalendarLabel.styles.js.map +0 -1
  228. package/esm/components/Calendar/CalendarWrapper/CalendarWrapper.js +0 -50
  229. package/esm/components/Calendar/CalendarWrapper/CalendarWrapper.js.map +0 -1
  230. package/esm/components/Calendar/get-disabled-state/get-disabled-state.js +0 -10
  231. package/esm/components/Calendar/get-disabled-state/get-disabled-state.js.map +0 -1
  232. package/lib/components/Calendar/CalendarHeader/CalendarHeader.d.ts +0 -33
  233. package/lib/components/Calendar/CalendarHeader/CalendarHeader.d.ts.map +0 -1
  234. package/lib/components/Calendar/CalendarLabel/CalendarLabel.d.ts +0 -26
  235. package/lib/components/Calendar/CalendarLabel/CalendarLabel.d.ts.map +0 -1
  236. package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts +0 -7
  237. package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts.map +0 -1
  238. package/lib/components/Calendar/CalendarWrapper/CalendarWrapper.d.ts +0 -10
  239. package/lib/components/Calendar/CalendarWrapper/CalendarWrapper.d.ts.map +0 -1
  240. package/lib/components/Calendar/get-disabled-state/get-disabled-state.d.ts +0 -15
  241. package/lib/components/Calendar/get-disabled-state/get-disabled-state.d.ts.map +0 -1
@@ -8,7 +8,7 @@ var hooks = require('@mantine/hooks');
8
8
  var dayjs = require('dayjs');
9
9
  var getMonthDays = require('../../utils/get-month-days/get-month-days.js');
10
10
  var getWeekdaysNames = require('../../utils/get-weekdays-names/get-weekdays-names.js');
11
- var isSameMonth = require('../../utils/is-same-month/is-same-month.js');
11
+ var isSameDate = require('../../utils/is-same-date/is-same-date.js');
12
12
  var Day = require('./Day/Day.js');
13
13
  var getDayProps = require('./get-day-props/get-day-props.js');
14
14
  var Month_styles = require('./Month.styles.js');
@@ -48,19 +48,16 @@ var __objRest = (source, exclude) => {
48
48
  };
49
49
  const noop = () => {
50
50
  };
51
- function Month(_a) {
51
+ const Month = React.forwardRef((_a, ref) => {
52
52
  var _b = _a, {
53
53
  className,
54
- style,
55
54
  month,
56
55
  value,
57
56
  onChange,
58
- autoFocus = false,
59
57
  disableOutsideEvents = false,
60
58
  locale,
61
59
  dayClassName,
62
60
  dayStyle,
63
- disableOutsideDayStyle = false,
64
61
  classNames,
65
62
  styles,
66
63
  minDate,
@@ -73,20 +70,20 @@ function Month(_a) {
73
70
  size = "sm",
74
71
  fullWidth = false,
75
72
  preventFocus = false,
76
- sx,
77
- firstDayOfWeek = "monday"
73
+ focusable = true,
74
+ firstDayOfWeek = "monday",
75
+ onDayKeyDown,
76
+ daysRefs,
77
+ hideOutsideDates = false
78
78
  } = _b, others = __objRest(_b, [
79
79
  "className",
80
- "style",
81
80
  "month",
82
81
  "value",
83
82
  "onChange",
84
- "autoFocus",
85
83
  "disableOutsideEvents",
86
84
  "locale",
87
85
  "dayClassName",
88
86
  "dayStyle",
89
- "disableOutsideDayStyle",
90
87
  "classNames",
91
88
  "styles",
92
89
  "minDate",
@@ -99,51 +96,15 @@ function Month(_a) {
99
96
  "size",
100
97
  "fullWidth",
101
98
  "preventFocus",
102
- "sx",
103
- "firstDayOfWeek"
99
+ "focusable",
100
+ "firstDayOfWeek",
101
+ "onDayKeyDown",
102
+ "daysRefs",
103
+ "hideOutsideDates"
104
104
  ]);
105
- const { classes, cx } = Month_styles['default']({ fullWidth }, { sx, classNames, styles, name: __staticSelector });
106
- const { mergedStyles, rest } = core.useExtractedMargins({ others, style });
107
- const theme = core.useMantineTheme();
105
+ const { classes, cx, theme } = Month_styles['default']({ fullWidth }, { classNames, styles, name: __staticSelector });
108
106
  const finalLocale = locale || theme.datesLocale;
109
- const daysRefs = React.useRef({});
110
107
  const days = getMonthDays.getMonthDays(month, firstDayOfWeek);
111
- const focusDay = (date, diff) => {
112
- const offset = new Date(date);
113
- offset.setDate(date.getDate() + diff);
114
- if (offset.toISOString() in daysRefs.current) {
115
- if (!(!isSameMonth.isSameMonth(month, offset) && disableOutsideEvents)) {
116
- daysRefs.current[offset.toISOString()].focus();
117
- }
118
- }
119
- };
120
- const handleKeyDown = (currentDate, event) => {
121
- const { code } = event.nativeEvent;
122
- if (code === "ArrowUp") {
123
- event.preventDefault();
124
- focusDay(currentDate, -7);
125
- }
126
- if (code === "ArrowDown") {
127
- event.preventDefault();
128
- focusDay(currentDate, 7);
129
- }
130
- if (code === "ArrowRight") {
131
- event.preventDefault();
132
- currentDate.getDay() !== 0 && focusDay(currentDate, 1);
133
- }
134
- if (code === "ArrowLeft") {
135
- event.preventDefault();
136
- currentDate.getDay() !== 1 && focusDay(currentDate, -1);
137
- }
138
- };
139
- React.useEffect(() => {
140
- if (autoFocus) {
141
- const date = new Date(month.getFullYear(), month.getMonth(), value ? value.getDate() : 1).toISOString();
142
- if (date in daysRefs.current) {
143
- daysRefs.current[date].focus();
144
- }
145
- }
146
- }, []);
147
108
  const weekdays = getWeekdaysNames.getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => /* @__PURE__ */ React__default.createElement("th", {
148
109
  className: classes.weekdayCell,
149
110
  key: weekday
@@ -166,46 +127,54 @@ function Month(_a) {
166
127
  disableOutsideEvents,
167
128
  range
168
129
  });
169
- const withoutStylesOutsideMonth = disableOutsideDayStyle && dayProps.outside;
130
+ const onKeyDownPayload = { rowIndex, cellIndex, date };
170
131
  return /* @__PURE__ */ React__default.createElement("td", {
171
132
  className: classes.cell,
172
133
  key: cellIndex
173
134
  }, /* @__PURE__ */ React__default.createElement(Day.Day, {
174
135
  ref: (button) => {
175
- daysRefs.current[date.toISOString()] = button;
136
+ if (daysRefs) {
137
+ if (!Array.isArray(daysRefs[rowIndex])) {
138
+ daysRefs[rowIndex] = [];
139
+ }
140
+ daysRefs[rowIndex][cellIndex] = button;
141
+ }
176
142
  },
177
143
  onClick: () => typeof onChange === "function" && onChange(date),
178
144
  onMouseDown: (event) => preventFocus && event.preventDefault(),
179
145
  value: date,
180
146
  outside: dayProps.outside,
181
147
  weekend: dayProps.weekend,
182
- inRange: dayProps.inRange && !withoutStylesOutsideMonth,
148
+ inRange: dayProps.inRange,
183
149
  firstInRange: dayProps.firstInRange,
184
150
  lastInRange: dayProps.lastInRange,
185
- firstInMonth: cellIndex === 0 && rowIndex === 0,
186
- selected: (dayProps.selected || dayProps.selectedInRange) && !withoutStylesOutsideMonth,
151
+ firstInMonth: hideOutsideDates ? isSameDate.isSameDate(date, dayjs__default(month).startOf("month").toDate()) : cellIndex === 0 && rowIndex === 0,
152
+ selected: dayProps.selected || dayProps.selectedInRange,
187
153
  hasValue: hasValueInMonthRange,
188
- onKeyDown: handleKeyDown,
154
+ onKeyDown: (event) => typeof onDayKeyDown === "function" && onDayKeyDown(onKeyDownPayload, event),
189
155
  className: typeof dayClassName === "function" ? dayClassName(date, dayProps) : null,
190
156
  style: typeof dayStyle === "function" ? dayStyle(date, dayProps) : null,
191
- styles,
192
- classNames,
193
157
  disabled: dayProps.disabled,
194
- __staticSelector,
195
158
  onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : noop,
196
159
  size,
197
- fullWidth
160
+ fullWidth,
161
+ focusable,
162
+ hideOutsideDates,
163
+ __staticSelector,
164
+ styles,
165
+ classNames
198
166
  }));
199
167
  });
200
168
  return /* @__PURE__ */ React__default.createElement("tr", {
201
169
  key: rowIndex
202
170
  }, cells);
203
171
  });
204
- return /* @__PURE__ */ React__default.createElement("table", __spreadValues({
205
- className: cx(classes.root, className),
206
- style: mergedStyles
207
- }, rest), !hideWeekdays && /* @__PURE__ */ React__default.createElement("thead", null, /* @__PURE__ */ React__default.createElement("tr", null, weekdays)), /* @__PURE__ */ React__default.createElement("tbody", null, rows));
208
- }
172
+ return /* @__PURE__ */ React__default.createElement(core.Box, __spreadValues({
173
+ component: "table",
174
+ className: cx(classes.month, className),
175
+ ref
176
+ }, others), !hideWeekdays && /* @__PURE__ */ React__default.createElement("thead", null, /* @__PURE__ */ React__default.createElement("tr", null, weekdays)), /* @__PURE__ */ React__default.createElement("tbody", null, rows));
177
+ });
209
178
  Month.displayName = "@mantine/core/Month";
210
179
 
211
180
  exports.Month = Month;
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport {\n DefaultProps,\n Text,\n MantineSize,\n ClassNames,\n useExtractedMargins,\n useMantineTheme,\n} from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, isSameMonth, getWeekdaysNames } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps, DayModifiers } from './get-day-props/get-day-props';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month are not styled */\n disableOutsideDayStyle?: boolean;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Autofocus selected date on mount, if no date is selected autofocus is applied to first month day */\n autoFocus?: boolean;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n}\n\nconst noop = () => {};\n\nexport function Month({\n className,\n style,\n month,\n value,\n onChange,\n autoFocus = false,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n disableOutsideDayStyle = false,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n sx,\n firstDayOfWeek = 'monday',\n ...others\n}: MonthProps) {\n const { classes, cx } = useStyles(\n { fullWidth },\n { sx, classNames, styles, name: __staticSelector }\n );\n const { mergedStyles, rest } = useExtractedMargins({ others, style });\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const daysRefs = useRef<Record<string, HTMLButtonElement>>({});\n const days = getMonthDays(month, firstDayOfWeek);\n\n const focusDay = (date: Date, diff: number) => {\n const offset = new Date(date);\n offset.setDate(date.getDate() + diff);\n\n if (offset.toISOString() in daysRefs.current) {\n if (!(!isSameMonth(month, offset) && disableOutsideEvents)) {\n daysRefs.current[offset.toISOString()].focus();\n }\n }\n };\n\n const handleKeyDown = (currentDate: Date, event: React.KeyboardEvent) => {\n const { code } = event.nativeEvent;\n\n if (code === 'ArrowUp') {\n event.preventDefault();\n focusDay(currentDate, -7);\n }\n\n if (code === 'ArrowDown') {\n event.preventDefault();\n focusDay(currentDate, 7);\n }\n\n if (code === 'ArrowRight') {\n event.preventDefault();\n currentDate.getDay() !== 0 && focusDay(currentDate, 1);\n }\n\n if (code === 'ArrowLeft') {\n event.preventDefault();\n currentDate.getDay() !== 1 && focusDay(currentDate, -1);\n }\n };\n\n useEffect(() => {\n if (autoFocus) {\n const date = new Date(\n month.getFullYear(),\n month.getMonth(),\n value ? value.getDate() : 1\n ).toISOString();\n\n if (date in daysRefs.current) {\n daysRefs.current[date].focus();\n }\n }\n }, []);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const withoutStylesOutsideMonth = disableOutsideDayStyle && dayProps.outside;\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n daysRefs.current[date.toISOString()] = button;\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange && !withoutStylesOutsideMonth}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={cellIndex === 0 && rowIndex === 0}\n selected={(dayProps.selected || dayProps.selectedInRange) && !withoutStylesOutsideMonth}\n hasValue={hasValueInMonthRange}\n onKeyDown={handleKeyDown}\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n styles={styles}\n classNames={classNames}\n disabled={dayProps.disabled}\n __staticSelector={__staticSelector}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <table className={cx(classes.root, className)} style={mergedStyles} {...rest}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </table>\n );\n}\n\nMonth.displayName = '@mantine/core/Month';\n"],"names":["useStyles","useExtractedMargins","useMantineTheme","useRef","getMonthDays","isSameMonth","useEffect","getWeekdaysNames","React","Text","upperFirst","dayjs","getDayProps","Day"],"mappings":"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"}
1
+ {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst noop = () => {};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/core/Month';\n"],"names":["forwardRef","useStyles","getMonthDays","getWeekdaysNames","React","Text","upperFirst","dayjs","getDayProps","Day","isSameDate","Box"],"mappings":"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"}
@@ -27,7 +27,7 @@ var useStyles = core.createStyles((theme, { fullWidth }) => ({
27
27
  weekday: {
28
28
  color: theme.colorScheme === "dark" ? theme.colors.dark[1] : theme.colors.gray[5]
29
29
  },
30
- root: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {
30
+ month: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {
31
31
  borderCollapse: "collapse",
32
32
  width: fullWidth ? "100%" : "auto",
33
33
  tableLayout: "fixed"
@@ -1 +1 @@
1
- {"version":3,"file":"Month.styles.js","sources":["../../../src/components/Month/Month.styles.ts"],"sourcesContent":["import { createStyles } from '@mantine/core';\n\ninterface MonthStyles {\n fullWidth: boolean;\n}\n\nexport default createStyles((theme, { fullWidth }: MonthStyles) => ({\n weekday: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[5],\n },\n\n root: {\n ...theme.fn.fontStyles(),\n borderCollapse: 'collapse',\n width: fullWidth ? '100%' : 'auto',\n tableLayout: 'fixed',\n },\n\n cell: {\n boxSizing: 'border-box',\n padding: 0,\n borderTop: '1px solid transparent',\n },\n\n weekdayCell: {\n boxSizing: 'border-box',\n padding: 0,\n fontWeight: 'normal',\n paddingBottom: theme.spacing.xs / 2,\n textAlign: 'center',\n cursor: 'default',\n userSelect: 'none',\n },\n}));\n"],"names":["createStyles"],"mappings":";;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,gBAAeA,iBAAY,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM;AACvD,EAAE,OAAO,EAAE;AACX,IAAI,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE;AACjE,IAAI,cAAc,EAAE,UAAU;AAC9B,IAAI,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM;AACtC,IAAI,WAAW,EAAE,OAAO;AACxB,GAAG,CAAC;AACJ,EAAE,IAAI,EAAE;AACR,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,uBAAuB;AACtC,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AACvC,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,UAAU,EAAE,MAAM;AACtB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"Month.styles.js","sources":["../../../src/components/Month/Month.styles.ts"],"sourcesContent":["import { createStyles } from '@mantine/core';\n\ninterface MonthStyles {\n fullWidth: boolean;\n}\n\nexport default createStyles((theme, { fullWidth }: MonthStyles) => ({\n weekday: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[5],\n },\n\n month: {\n ...theme.fn.fontStyles(),\n borderCollapse: 'collapse',\n width: fullWidth ? '100%' : 'auto',\n tableLayout: 'fixed',\n },\n\n cell: {\n boxSizing: 'border-box',\n padding: 0,\n borderTop: '1px solid transparent',\n },\n\n weekdayCell: {\n boxSizing: 'border-box',\n padding: 0,\n fontWeight: 'normal',\n paddingBottom: theme.spacing.xs / 2,\n textAlign: 'center',\n cursor: 'default',\n userSelect: 'none',\n },\n}));\n"],"names":["createStyles"],"mappings":";;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,gBAAeA,iBAAY,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM;AACvD,EAAE,OAAO,EAAE;AACX,IAAI,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE;AAClE,IAAI,cAAc,EAAE,UAAU;AAC9B,IAAI,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM;AACtC,IAAI,WAAW,EAAE,OAAO;AACxB,GAAG,CAAC;AACJ,EAAE,IAAI,EAAE;AACR,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,uBAAuB;AACtC,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AACvC,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,UAAU,EAAE,MAAM;AACtB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dayjs = require('dayjs');
5
+ require('dayjs');
6
6
  var isSameDate = require('../../../utils/is-same-date/is-same-date.js');
7
-
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
9
-
10
- var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
7
+ var isWeekend = require('./is-weekend/is-weekend.js');
8
+ var isOutside = require('./is-outside/is-outside.js');
9
+ var isDisabled = require('./is-disabled/is-disabled.js');
10
+ var getRangeProps = require('./get-range-props/get-range-props.js');
11
11
 
12
12
  function getDayProps({
13
13
  date,
@@ -20,32 +20,17 @@ function getDayProps({
20
20
  disableOutsideEvents,
21
21
  range
22
22
  }) {
23
- const weekday = date.getDay();
24
- const weekend = weekday === 6 || weekday === 0;
25
- const outside = date.getMonth() !== month.getMonth();
23
+ const outside = isOutside.isOutside(date, month);
26
24
  const selected = hasValue && isSameDate.isSameDate(date, value);
27
- const isAfterMax = maxDate instanceof Date && dayjs__default(maxDate).isBefore(date, "day");
28
- const isBeforeMin = minDate instanceof Date && dayjs__default(minDate).isAfter(date, "day");
29
- const shouldExclude = typeof excludeDate === "function" && excludeDate(date);
30
- const disabledOutside = disableOutsideEvents && outside;
31
- const disabled = isAfterMax || isBeforeMin || shouldExclude || disabledOutside;
32
- const hasRange = Array.isArray(range) && range.every((val) => val instanceof Date);
33
- const inclusiveRange = hasRange && [
34
- dayjs__default(range[0]).subtract(1, "day"),
35
- dayjs__default(range[1]).add(1, "day")
36
- ];
37
- const firstInRange = hasRange && isSameDate.isSameDate(date, range[0]);
38
- const lastInRange = hasRange && isSameDate.isSameDate(date, range[1]);
39
- const inRange = hasRange && dayjs__default(date).isAfter(inclusiveRange[0], "day") && dayjs__default(date).isBefore(inclusiveRange[1], "day");
40
- const selectedInRange = firstInRange || lastInRange;
25
+ const { inRange, lastInRange, firstInRange, selectedInRange } = getRangeProps.getRangeProps(date, range);
41
26
  return {
27
+ disabled: isDisabled.isDisabled({ minDate, maxDate, excludeDate, disableOutsideEvents, date, outside }),
28
+ weekend: isWeekend.isWeekend(date),
42
29
  selectedInRange,
43
30
  selected,
44
- disabled,
45
31
  inRange,
46
32
  firstInRange,
47
33
  lastInRange,
48
- weekend,
49
34
  outside
50
35
  };
51
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-day-props.js","sources":["../../../../src/components/Month/get-day-props/get-day-props.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { isSameDate } from '../../../utils';\n\ninterface GetDayProps {\n /** Date associated with Day component */\n date: Date;\n\n /** Month that is currently displayed */\n month: Date;\n\n /** Does month have value prop? */\n hasValue: boolean;\n\n /** Min and max possible dates */\n maxDate: Date;\n minDate: Date;\n\n /** Currently selected date */\n value: Date;\n\n /** Function to determine if date should be excluded */\n excludeDate(date: Date): boolean;\n\n /** Should outside events be disabled */\n disableOutsideEvents: boolean;\n\n /** Selected date range */\n range: [Date, Date];\n}\n\nexport interface DayModifiers {\n /** Is date selected and is first or last in range? */\n selectedInRange: boolean;\n\n /** Is date equal to value? */\n selected: boolean;\n\n /** Based on minDate, maxDate, excludeDate and disableOutsideEvents props */\n disabled: boolean;\n\n /** Is date is range? */\n inRange: boolean;\n\n /** Is date first or last in given range? */\n firstInRange: boolean;\n lastInRange: boolean;\n\n /** Is date Saturday or Sunday? */\n weekend: boolean;\n\n /** Is date outside of given month? */\n outside: boolean;\n}\n\nexport function getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n}: GetDayProps) {\n const weekday = date.getDay();\n const weekend = weekday === 6 || weekday === 0;\n const outside = date.getMonth() !== month.getMonth();\n const selected = hasValue && isSameDate(date, value);\n const isAfterMax = maxDate instanceof Date && dayjs(maxDate).isBefore(date, 'day');\n const isBeforeMin = minDate instanceof Date && dayjs(minDate).isAfter(date, 'day');\n const shouldExclude = typeof excludeDate === 'function' && excludeDate(date);\n const disabledOutside = disableOutsideEvents && outside;\n const disabled = isAfterMax || isBeforeMin || shouldExclude || disabledOutside;\n const hasRange = Array.isArray(range) && range.every((val) => val instanceof Date);\n const inclusiveRange = hasRange && [\n dayjs(range[0]).subtract(1, 'day'),\n dayjs(range[1]).add(1, 'day'),\n ];\n\n const firstInRange = hasRange && isSameDate(date, range[0]);\n const lastInRange = hasRange && isSameDate(date, range[1]);\n const inRange =\n hasRange &&\n dayjs(date).isAfter(inclusiveRange[0], 'day') &&\n dayjs(date).isBefore(inclusiveRange[1], 'day');\n\n const selectedInRange = firstInRange || lastInRange;\n\n return {\n selectedInRange,\n selected,\n disabled,\n inRange,\n firstInRange,\n lastInRange,\n weekend,\n outside,\n };\n}\n"],"names":["isSameDate","dayjs"],"mappings":";;;;;;;;;;;AAEO,SAAS,WAAW,CAAC;AAC5B,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,KAAK;AACP,EAAE,WAAW;AACb,EAAE,oBAAoB;AACtB,EAAE,KAAK;AACP,CAAC,EAAE;AACH,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAChC,EAAE,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;AACjD,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvD,EAAE,MAAM,QAAQ,GAAG,QAAQ,IAAIA,qBAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,EAAE,MAAM,UAAU,GAAG,OAAO,YAAY,IAAI,IAAIC,cAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrF,EAAE,MAAM,WAAW,GAAG,OAAO,YAAY,IAAI,IAAIA,cAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrF,EAAE,MAAM,aAAa,GAAG,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/E,EAAE,MAAM,eAAe,GAAG,oBAAoB,IAAI,OAAO,CAAC;AAC1D,EAAE,MAAM,QAAQ,GAAG,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,eAAe,CAAC;AACjF,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,YAAY,IAAI,CAAC,CAAC;AACrF,EAAE,MAAM,cAAc,GAAG,QAAQ,IAAI;AACrC,IAAIA,cAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;AACtC,IAAIA,cAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;AACjC,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,QAAQ,IAAID,qBAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,EAAE,MAAM,WAAW,GAAG,QAAQ,IAAIA,qBAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,EAAE,MAAM,OAAO,GAAG,QAAQ,IAAIC,cAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAIA,cAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9H,EAAE,MAAM,eAAe,GAAG,YAAY,IAAI,WAAW,CAAC;AACtD,EAAE,OAAO;AACT,IAAI,eAAe;AACnB,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"get-day-props.js","sources":["../../../../src/components/Month/get-day-props/get-day-props.ts"],"sourcesContent":["import { isSameDate } from '../../../utils';\nimport { DayModifiers } from '../types';\nimport { isWeekend } from './is-weekend/is-weekend';\nimport { isOutside } from './is-outside/is-outside';\nimport { isDisabled } from './is-disabled/is-disabled';\nimport { getRangeProps } from './get-range-props/get-range-props';\n\ninterface GetDayProps {\n /** Date associated with Day component */\n date: Date;\n\n /** Month that is currently displayed */\n month: Date;\n\n /** Does month have value prop? */\n hasValue: boolean;\n\n /** Min and max possible dates */\n maxDate: Date;\n minDate: Date;\n\n /** Currently selected date */\n value: Date;\n\n /** Function to determine if date should be excluded */\n excludeDate(date: Date): boolean;\n\n /** Should outside events be disabled */\n disableOutsideEvents: boolean;\n\n /** Selected date range */\n range: [Date, Date];\n}\n\nexport function getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n}: GetDayProps): DayModifiers {\n const outside = isOutside(date, month);\n const selected = hasValue && isSameDate(date, value);\n const { inRange, lastInRange, firstInRange, selectedInRange } = getRangeProps(date, range);\n\n return {\n disabled: isDisabled({ minDate, maxDate, excludeDate, disableOutsideEvents, date, outside }),\n weekend: isWeekend(date),\n selectedInRange,\n selected,\n inRange,\n firstInRange,\n lastInRange,\n outside,\n };\n}\n"],"names":["isOutside","isSameDate","getRangeProps","isDisabled","isWeekend"],"mappings":";;;;;;;;;;;AAKO,SAAS,WAAW,CAAC;AAC5B,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,KAAK;AACP,EAAE,WAAW;AACb,EAAE,oBAAoB;AACtB,EAAE,KAAK;AACP,CAAC,EAAE;AACH,EAAE,MAAM,OAAO,GAAGA,mBAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,EAAE,MAAM,QAAQ,GAAG,QAAQ,IAAIC,qBAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,GAAGC,2BAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7F,EAAE,OAAO;AACT,IAAI,QAAQ,EAAEC,qBAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAChG,IAAI,OAAO,EAAEC,mBAAS,CAAC,IAAI,CAAC;AAC5B,IAAI,eAAe;AACnB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dayjs = require('dayjs');
6
+ var isSameDate = require('../../../../utils/is-same-date/is-same-date.js');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
9
+
10
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
11
+
12
+ function getRangeProps(date, range) {
13
+ const hasRange = Array.isArray(range) && range.every((val) => val instanceof Date);
14
+ const inclusiveRange = hasRange && [
15
+ dayjs__default(range[0]).subtract(1, "day"),
16
+ dayjs__default(range[1]).add(1, "day")
17
+ ];
18
+ const firstInRange = hasRange && isSameDate.isSameDate(date, range[0]);
19
+ const lastInRange = hasRange && isSameDate.isSameDate(date, range[1]);
20
+ const inRange = hasRange && dayjs__default(date).isAfter(inclusiveRange[0], "day") && dayjs__default(date).isBefore(inclusiveRange[1], "day");
21
+ return { firstInRange, lastInRange, inRange, selectedInRange: firstInRange || lastInRange };
22
+ }
23
+
24
+ exports.getRangeProps = getRangeProps;
25
+ //# sourceMappingURL=get-range-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-range-props.js","sources":["../../../../../src/components/Month/get-day-props/get-range-props/get-range-props.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { isSameDate } from '../../../../utils';\n\nexport function getRangeProps(date: Date, range: [Date, Date]) {\n const hasRange = Array.isArray(range) && range.every((val) => val instanceof Date);\n const inclusiveRange = hasRange && [\n dayjs(range[0]).subtract(1, 'day'),\n dayjs(range[1]).add(1, 'day'),\n ];\n\n const firstInRange = hasRange && isSameDate(date, range[0]);\n const lastInRange = hasRange && isSameDate(date, range[1]);\n const inRange =\n hasRange &&\n dayjs(date).isAfter(inclusiveRange[0], 'day') &&\n dayjs(date).isBefore(inclusiveRange[1], 'day');\n\n return { firstInRange, lastInRange, inRange, selectedInRange: firstInRange || lastInRange };\n}\n"],"names":["dayjs","isSameDate"],"mappings":";;;;;;;;;;;AAEO,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3C,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,YAAY,IAAI,CAAC,CAAC;AACrF,EAAE,MAAM,cAAc,GAAG,QAAQ,IAAI;AACrC,IAAIA,cAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;AACtC,IAAIA,cAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;AACjC,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,QAAQ,IAAIC,qBAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,EAAE,MAAM,WAAW,GAAG,QAAQ,IAAIA,qBAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,EAAE,MAAM,OAAO,GAAG,QAAQ,IAAID,cAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAIA,cAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9H,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AAC9F;;;;"}
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dayjs = require('dayjs');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
8
+
9
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
10
+
11
+ function isDisabled({
12
+ minDate,
13
+ maxDate,
14
+ excludeDate,
15
+ disableOutsideEvents,
16
+ date,
17
+ outside
18
+ }) {
19
+ const isAfterMax = maxDate instanceof Date && dayjs__default(maxDate).isBefore(date, "day");
20
+ const isBeforeMin = minDate instanceof Date && dayjs__default(minDate).isAfter(date, "day");
21
+ const shouldExclude = typeof excludeDate === "function" && excludeDate(date);
22
+ const disabledOutside = !!disableOutsideEvents && !!outside;
23
+ return isAfterMax || isBeforeMin || shouldExclude || disabledOutside;
24
+ }
25
+
26
+ exports.isDisabled = isDisabled;
27
+ //# sourceMappingURL=is-disabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-disabled.js","sources":["../../../../../src/components/Month/get-day-props/is-disabled/is-disabled.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\ninterface IsDisabled {\n date: Date;\n minDate?: Date;\n maxDate?: Date;\n excludeDate?(date: Date): boolean;\n disableOutsideEvents?: boolean;\n outside?: boolean;\n}\n\nexport function isDisabled({\n minDate,\n maxDate,\n excludeDate,\n disableOutsideEvents,\n date,\n outside,\n}: IsDisabled) {\n const isAfterMax = maxDate instanceof Date && dayjs(maxDate).isBefore(date, 'day');\n const isBeforeMin = minDate instanceof Date && dayjs(minDate).isAfter(date, 'day');\n const shouldExclude = typeof excludeDate === 'function' && excludeDate(date);\n const disabledOutside = !!disableOutsideEvents && !!outside;\n return isAfterMax || isBeforeMin || shouldExclude || disabledOutside;\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,UAAU,CAAC;AAC3B,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,WAAW;AACb,EAAE,oBAAoB;AACtB,EAAE,IAAI;AACN,EAAE,OAAO;AACT,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAG,OAAO,YAAY,IAAI,IAAIA,cAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrF,EAAE,MAAM,WAAW,GAAG,OAAO,YAAY,IAAI,IAAIA,cAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrF,EAAE,MAAM,aAAa,GAAG,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC/E,EAAE,MAAM,eAAe,GAAG,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,OAAO,CAAC;AAC9D,EAAE,OAAO,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,eAAe,CAAC;AACvE;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('dayjs');
6
+ var isSameMonth = require('../../../../utils/is-same-month/is-same-month.js');
7
+
8
+ function isOutside(date, month) {
9
+ return !isSameMonth.isSameMonth(date, month);
10
+ }
11
+
12
+ exports.isOutside = isOutside;
13
+ //# sourceMappingURL=is-outside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-outside.js","sources":["../../../../../src/components/Month/get-day-props/is-outside/is-outside.ts"],"sourcesContent":["import { isSameMonth } from '../../../../utils';\n\nexport function isOutside(date: Date, month: Date) {\n return !isSameMonth(date, month);\n}\n"],"names":["isSameMonth"],"mappings":";;;;;;;AACO,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AACvC,EAAE,OAAO,CAACA,uBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC;;;;"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function isWeekend(date) {
6
+ const weekday = date.getDay();
7
+ return weekday === 6 || weekday === 0;
8
+ }
9
+
10
+ exports.isWeekend = isWeekend;
11
+ //# sourceMappingURL=is-weekend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-weekend.js","sources":["../../../../../src/components/Month/get-day-props/is-weekend/is-weekend.ts"],"sourcesContent":["export function isWeekend(date: Date) {\n const weekday = date.getDay();\n return weekday === 6 || weekday === 0;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,SAAS,CAAC,IAAI,EAAE;AAChC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAChC,EAAE,OAAO,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;AACxC;;;;"}