react-native-paper-dates 0.5.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +13 -4
  2. package/lib/commonjs/Date/AnimatedCrossView.js +7 -6
  3. package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
  4. package/lib/commonjs/Date/AutoSizer.js +4 -3
  5. package/lib/commonjs/Date/AutoSizer.js.map +1 -1
  6. package/lib/commonjs/Date/Calendar.js +37 -31
  7. package/lib/commonjs/Date/Calendar.js.map +1 -1
  8. package/lib/commonjs/Date/CalendarEdit.js +18 -14
  9. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  10. package/lib/commonjs/Date/CalendarHeader.js +21 -10
  11. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  12. package/lib/commonjs/Date/DatePickerInput.js +29 -23
  13. package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
  14. package/lib/commonjs/Date/DatePickerModalContent.js +4 -0
  15. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  16. package/lib/commonjs/Date/DatePickerModalContentHeader.js +34 -26
  17. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  18. package/lib/commonjs/Date/DatePickerModalHeader.js +8 -1
  19. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  20. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +4 -3
  21. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  22. package/lib/commonjs/Date/DateRangeInput.js +13 -8
  23. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  24. package/lib/commonjs/Date/Day.js +5 -1
  25. package/lib/commonjs/Date/Day.js.map +1 -1
  26. package/lib/commonjs/Date/DayName.js +4 -3
  27. package/lib/commonjs/Date/DayName.js.map +1 -1
  28. package/lib/commonjs/Date/DayNames.js +5 -4
  29. package/lib/commonjs/Date/DayNames.js.map +1 -1
  30. package/lib/commonjs/Date/DayRange.js +7 -6
  31. package/lib/commonjs/Date/DayRange.js.map +1 -1
  32. package/lib/commonjs/Date/Month.js +47 -34
  33. package/lib/commonjs/Date/Month.js.map +1 -1
  34. package/lib/commonjs/Date/Swiper.js +33 -27
  35. package/lib/commonjs/Date/Swiper.js.map +1 -1
  36. package/lib/commonjs/Date/Swiper.native.js +27 -21
  37. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  38. package/lib/commonjs/Date/SwiperUtils.js +5 -4
  39. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  40. package/lib/commonjs/Date/YearPicker.js +28 -18
  41. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  42. package/lib/commonjs/Date/dateUtils.js +49 -37
  43. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  44. package/lib/commonjs/Date/inputUtils.js +8 -7
  45. package/lib/commonjs/Date/inputUtils.js.map +1 -1
  46. package/lib/commonjs/TextInputMask.js +7 -6
  47. package/lib/commonjs/TextInputMask.js.map +1 -1
  48. package/lib/commonjs/Time/AmPmSwitcher.js +12 -10
  49. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  50. package/lib/commonjs/Time/AnalogClock.js +12 -7
  51. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  52. package/lib/commonjs/Time/AnalogClockHours.js +5 -4
  53. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  54. package/lib/commonjs/Time/AnalogClockMinutes.js +5 -4
  55. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  56. package/lib/commonjs/Time/AnimatedClockSwitcher.js +6 -5
  57. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  58. package/lib/commonjs/Time/TimeInput.js +14 -10
  59. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  60. package/lib/commonjs/Time/TimeInputs.js +10 -9
  61. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  62. package/lib/commonjs/Time/TimePicker.js +10 -9
  63. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  64. package/lib/commonjs/Time/TimePickerModal.js +23 -16
  65. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  66. package/lib/commonjs/Time/timeUtils.js +7 -6
  67. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  68. package/lib/commonjs/index.js +29 -11
  69. package/lib/commonjs/index.js.map +1 -1
  70. package/lib/commonjs/translations/en.js +6 -1
  71. package/lib/commonjs/translations/en.js.map +1 -1
  72. package/lib/commonjs/translations/enGB.js +25 -0
  73. package/lib/commonjs/translations/enGB.js.map +1 -0
  74. package/lib/commonjs/translations/nl.js +6 -1
  75. package/lib/commonjs/translations/nl.js.map +1 -1
  76. package/lib/commonjs/translations/pl.js +25 -0
  77. package/lib/commonjs/translations/pl.js.map +1 -0
  78. package/lib/commonjs/translations/utils.js.map +1 -1
  79. package/lib/commonjs/utils.js +4 -4
  80. package/lib/module/Date/AnimatedCrossView.js +7 -6
  81. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  82. package/lib/module/Date/AutoSizer.js +4 -3
  83. package/lib/module/Date/AutoSizer.js.map +1 -1
  84. package/lib/module/Date/Calendar.js +37 -31
  85. package/lib/module/Date/Calendar.js.map +1 -1
  86. package/lib/module/Date/CalendarEdit.js +18 -14
  87. package/lib/module/Date/CalendarEdit.js.map +1 -1
  88. package/lib/module/Date/CalendarHeader.js +19 -9
  89. package/lib/module/Date/CalendarHeader.js.map +1 -1
  90. package/lib/module/Date/DatePickerInput.js +29 -23
  91. package/lib/module/Date/DatePickerInput.js.map +1 -1
  92. package/lib/module/Date/DatePickerModalContent.js +4 -0
  93. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  94. package/lib/module/Date/DatePickerModalContentHeader.js +32 -24
  95. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  96. package/lib/module/Date/DatePickerModalHeader.js +8 -1
  97. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  98. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  99. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  100. package/lib/module/Date/DateRangeInput.js +13 -8
  101. package/lib/module/Date/DateRangeInput.js.map +1 -1
  102. package/lib/module/Date/Day.js +5 -1
  103. package/lib/module/Date/Day.js.map +1 -1
  104. package/lib/module/Date/DayName.js +4 -3
  105. package/lib/module/Date/DayName.js.map +1 -1
  106. package/lib/module/Date/DayNames.js +5 -4
  107. package/lib/module/Date/DayNames.js.map +1 -1
  108. package/lib/module/Date/DayRange.js +7 -6
  109. package/lib/module/Date/DayRange.js.map +1 -1
  110. package/lib/module/Date/Month.js +43 -31
  111. package/lib/module/Date/Month.js.map +1 -1
  112. package/lib/module/Date/Swiper.js +32 -26
  113. package/lib/module/Date/Swiper.js.map +1 -1
  114. package/lib/module/Date/Swiper.native.js +27 -21
  115. package/lib/module/Date/Swiper.native.js.map +1 -1
  116. package/lib/module/Date/SwiperUtils.js +5 -4
  117. package/lib/module/Date/SwiperUtils.js.map +1 -1
  118. package/lib/module/Date/YearPicker.js +28 -18
  119. package/lib/module/Date/YearPicker.js.map +1 -1
  120. package/lib/module/Date/dateUtils.js +33 -25
  121. package/lib/module/Date/dateUtils.js.map +1 -1
  122. package/lib/module/Date/inputUtils.js +8 -7
  123. package/lib/module/Date/inputUtils.js.map +1 -1
  124. package/lib/module/TextInputMask.js +7 -6
  125. package/lib/module/TextInputMask.js.map +1 -1
  126. package/lib/module/Time/AmPmSwitcher.js +12 -10
  127. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  128. package/lib/module/Time/AnalogClock.js +12 -7
  129. package/lib/module/Time/AnalogClock.js.map +1 -1
  130. package/lib/module/Time/AnalogClockHours.js +5 -4
  131. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  132. package/lib/module/Time/AnalogClockMinutes.js +5 -4
  133. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  134. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  135. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  136. package/lib/module/Time/TimeInput.js +14 -10
  137. package/lib/module/Time/TimeInput.js.map +1 -1
  138. package/lib/module/Time/TimeInputs.js +10 -9
  139. package/lib/module/Time/TimeInputs.js.map +1 -1
  140. package/lib/module/Time/TimePicker.js +10 -9
  141. package/lib/module/Time/TimePicker.js.map +1 -1
  142. package/lib/module/Time/TimePickerModal.js +23 -16
  143. package/lib/module/Time/TimePickerModal.js.map +1 -1
  144. package/lib/module/index.js +2 -0
  145. package/lib/module/index.js.map +1 -1
  146. package/lib/module/translations/en.js +6 -1
  147. package/lib/module/translations/en.js.map +1 -1
  148. package/lib/module/translations/enGB.js +18 -0
  149. package/lib/module/translations/enGB.js.map +1 -0
  150. package/lib/module/translations/nl.js +6 -1
  151. package/lib/module/translations/nl.js.map +1 -1
  152. package/lib/module/translations/pl.js +18 -0
  153. package/lib/module/translations/pl.js.map +1 -0
  154. package/lib/module/translations/utils.js.map +1 -1
  155. package/lib/typescript/Date/DatePickerInput.d.ts +9 -9
  156. package/lib/typescript/Date/DatePickerModalContentHeader.d.ts +1 -0
  157. package/lib/typescript/Date/DatePickerModalHeader.d.ts +1 -0
  158. package/lib/typescript/TextInputMask.d.ts +3 -3
  159. package/lib/typescript/Time/AmPmSwitcher.d.ts +1 -1
  160. package/lib/typescript/Time/AnalogClock.d.ts +1 -1
  161. package/lib/typescript/Time/TimeInputs.d.ts +1 -1
  162. package/lib/typescript/Time/TimePickerModal.d.ts +3 -2
  163. package/lib/typescript/index.d.ts +2 -0
  164. package/lib/typescript/translations/enGB.d.ts +3 -0
  165. package/lib/typescript/translations/pl.d.ts +3 -0
  166. package/lib/typescript/translations/utils.d.ts +5 -0
  167. package/package.json +19 -24
  168. package/src/Date/CalendarEdit.tsx +3 -0
  169. package/src/Date/CalendarHeader.tsx +17 -2
  170. package/src/Date/DatePickerInput.tsx +8 -3
  171. package/src/Date/DatePickerModalContent.tsx +2 -0
  172. package/src/Date/DatePickerModalContentHeader.tsx +13 -3
  173. package/src/Date/DatePickerModalHeader.tsx +6 -0
  174. package/src/Date/DateRangeInput.tsx +7 -1
  175. package/src/Date/Day.tsx +4 -0
  176. package/src/Date/Month.tsx +8 -0
  177. package/src/Date/Swiper.tsx +1 -0
  178. package/src/Date/YearPicker.tsx +6 -1
  179. package/src/Time/AmPmSwitcher.tsx +1 -1
  180. package/src/Time/AnalogClock.tsx +5 -5
  181. package/src/Time/AnalogClockMinutes.tsx +4 -1
  182. package/src/Time/TimeInput.tsx +3 -0
  183. package/src/Time/TimeInputs.tsx +1 -5
  184. package/src/Time/TimePickerModal.tsx +11 -3
  185. package/src/index.tsx +2 -0
  186. package/src/translations/en.ts +5 -0
  187. package/src/translations/enGB.ts +20 -0
  188. package/src/translations/nl.ts +5 -0
  189. package/src/translations/pl.ts +21 -0
  190. package/src/translations/utils.ts +5 -0
  191. package/src/.DS_Store +0 -0
@@ -3,12 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
7
+ exports.getHorizontalMonthOffset = getHorizontalMonthOffset;
6
8
  exports.getIndexFromHorizontalOffset = getIndexFromHorizontalOffset;
7
9
  exports.getIndexFromVerticalOffset = getIndexFromVerticalOffset;
8
- exports.getHorizontalMonthOffset = getHorizontalMonthOffset;
9
- exports.getVerticalMonthsOffset = getVerticalMonthsOffset;
10
10
  exports.getMonthHeight = getMonthHeight;
11
- exports.default = exports.monthHeaderSingleHeight = exports.monthHeaderSingleMarginBottom = exports.monthHeaderSingleMarginTop = exports.montHeaderHeight = exports.weekSize = exports.weekMargin = void 0;
11
+ exports.getVerticalMonthsOffset = getVerticalMonthsOffset;
12
+ exports.weekSize = exports.weekMargin = exports.monthHeaderSingleMarginTop = exports.monthHeaderSingleMarginBottom = exports.monthHeaderSingleHeight = exports.montHeaderHeight = void 0;
12
13
 
13
14
  var React = _interopRequireWildcard(require("react"));
14
15
 
@@ -85,10 +86,11 @@ function Month(props) {
85
86
  month
86
87
  });
87
88
  const emptyDays = dayOfWeek;
88
- return monthGrid(index).map(({
89
- days,
90
- weekGrid
91
- }) => {
89
+ return monthGrid(index).map(_ref => {
90
+ let {
91
+ days,
92
+ weekGrid
93
+ } = _ref;
92
94
  return {
93
95
  weekIndex: weekGrid,
94
96
  generatedDays: days.map((_, dayIndex) => {
@@ -215,9 +217,14 @@ function Month(props) {
215
217
  }, /*#__PURE__*/React.createElement(_reactNativePaper.TouchableRipple, {
216
218
  disabled: !isHorizontal,
217
219
  onPress: isHorizontal ? () => onPressYear(year) : undefined,
220
+ accessibilityRole: "button",
221
+ accessibilityLabel: `${monthName} ${year}`,
218
222
  style: [styles.yearButton, {
219
223
  borderRadius: roundness
220
- }]
224
+ }] // RN types bug
225
+ ,
226
+ hasTVPreferredFocus: undefined,
227
+ tvParallaxProperties: undefined
221
228
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
222
229
  style: [styles.yearButtonInner, {
223
230
  borderRadius: roundness
@@ -229,32 +236,38 @@ function Month(props) {
229
236
  style: isHorizontal ? styles.opacity1 : styles.opacity0
230
237
  }, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
231
238
  onPress: isHorizontal ? () => onPressYear(year) : undefined,
232
- icon: selectingYear ? 'chevron-up' : 'chevron-down'
233
- }))))), grid.map(({
234
- weekIndex,
235
- generatedDays
236
- }) => /*#__PURE__*/React.createElement(_reactNative.View, {
237
- style: styles.week,
238
- key: weekIndex
239
- }, generatedDays.filter(gd => (0, _dateUtils.showWeekDay)(gd.dayIndex, disableWeekDays)).map(gd => gd.beforeWeekDay || gd.afterWeekDay ? /*#__PURE__*/React.createElement(_Day.EmptyDay, {
240
- key: gd.dayIndex
241
- }) : /*#__PURE__*/React.createElement(_Day.default, {
242
- key: gd.dayIndex,
243
- theme: theme,
244
- day: gd.dayOfMonth,
245
- month: gd.month,
246
- year: gd.year,
247
- selected: gd.selected,
248
- inRange: gd.inRange,
249
- leftCrop: gd.leftCrop,
250
- rightCrop: gd.rightCrop,
251
- onPressDate: onPressDate,
252
- isToday: gd.isToday,
253
- selectColor: selectColor,
254
- primaryColor: primaryColor,
255
- disabled: gd.disabled,
256
- textColorOnPrimary: textColorOnPrimary
257
- })))));
239
+ icon: selectingYear ? 'chevron-up' : 'chevron-down' // RN types bug
240
+ ,
241
+ hasTVPreferredFocus: undefined,
242
+ tvParallaxProperties: undefined
243
+ }))))), grid.map(_ref2 => {
244
+ let {
245
+ weekIndex,
246
+ generatedDays
247
+ } = _ref2;
248
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
249
+ style: styles.week,
250
+ key: weekIndex
251
+ }, generatedDays.filter(gd => (0, _dateUtils.showWeekDay)(gd.dayIndex, disableWeekDays)).map(gd => gd.beforeWeekDay || gd.afterWeekDay ? /*#__PURE__*/React.createElement(_Day.EmptyDay, {
252
+ key: gd.dayIndex
253
+ }) : /*#__PURE__*/React.createElement(_Day.default, {
254
+ key: gd.dayIndex,
255
+ theme: theme,
256
+ day: gd.dayOfMonth,
257
+ month: gd.month,
258
+ year: gd.year,
259
+ selected: gd.selected,
260
+ inRange: gd.inRange,
261
+ leftCrop: gd.leftCrop,
262
+ rightCrop: gd.rightCrop,
263
+ onPressDate: onPressDate,
264
+ isToday: gd.isToday,
265
+ selectColor: selectColor,
266
+ primaryColor: primaryColor,
267
+ disabled: gd.disabled,
268
+ textColorOnPrimary: textColorOnPrimary
269
+ })));
270
+ }));
258
271
  }
259
272
 
260
273
  const weekMargin = 6;
@@ -1 +1 @@
1
- {"version":3,"sources":["Month.tsx"],"names":["Month","props","index","mode","date","dates","startDate","endDate","onPressYear","selectingYear","onPressDate","scrollMode","primaryColor","selectColor","roundness","disableWeekDays","locale","validRange","theme","textColorOnPrimary","realIndex","isHorizontal","isDisabled","isWithinValidRange","monthName","month","year","React","useMemo","md","Date","y","getFullYear","m","getMonth","formatter","Intl","DateTimeFormat","format","grid","today","daysInMonth","dayOfWeek","emptyDays","monthGrid","map","days","weekGrid","weekIndex","generatedDays","_","dayIndex","isFirstWeek","realDayIndex","beforeWeekDay","dayOfMonth","afterWeekDay","day","isToday","inRange","disabled","selected","leftCrop","rightCrop","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","safeDates","some","d","yesterday","tomorrow","yesterdaySelected","tomorrowSelected","isWithinOptionalValidRange","styles","height","getMonthHeight","monthHeader","marginTop","monthHeaderSingleMarginTop","marginBottom","monthHeaderSingleMarginBottom","undefined","yearButton","borderRadius","yearButtonInner","monthLabel","fonts","medium","opacity1","opacity0","week","filter","gd","weekMargin","weekSize","daySize","montHeaderHeight","monthHeaderSingleHeight","StyleSheet","create","flexDirection","justifyContent","overflow","fontSize","opacity","alignSelf","marginLeft","paddingLeft","alignItems","Array","fill","getIndexCount","startAtIndex","weeksOffset","off","i","cIndex","gridCounts","getIndexFromHorizontalOffset","offset","width","Math","floor","getIndexFromVerticalOffset","estimatedIndex","ceil","estimatedMonthHeight","realOffset","getVerticalMonthsOffset","difference","beginOffset","getHorizontalMonthOffset","count","ob","monthsHeight","c","dayNamesHeight","calendarHeight","gc","currentMonthHeight","extraHeight","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, Text, useTheme, TouchableRipple } from 'react-native-paper'\nimport Day, { EmptyDay } from './Day'\n\nimport {\n addMonths,\n areDatesOnSameDay,\n daySize,\n DisableWeekDaysType,\n getDaysInMonth,\n getFirstDayOfMonth,\n getRealIndex,\n getGridCount,\n isDateBetween,\n gridCounts,\n showWeekDay,\n startAtIndex,\n beginOffset,\n estimatedMonthHeight,\n useRangeChecker,\n} from './dateUtils'\nimport { getCalendarHeaderHeight } from './CalendarHeader'\nimport type {\n CalendarDate,\n CalendarDates,\n ModeType,\n ValidRangeType,\n} from './Calendar'\nimport { dayNamesHeight } from './DayNames'\nimport { useTextColorOnPrimary } from '../utils'\n\ninterface BaseMonthProps {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n disableWeekDays?: DisableWeekDaysType\n mode: ModeType\n index: number\n onPressYear: (year: number) => any\n selectingYear: boolean\n onPressDate: (date: Date) => any\n primaryColor: string\n selectColor: string\n roundness: number\n validRange?: ValidRangeType\n\n // some of these should be required in final implementation\n startDate?: CalendarDate\n endDate?: CalendarDate\n date?: CalendarDate\n dates?: CalendarDates\n}\n\ninterface MonthRangeProps extends BaseMonthProps {\n mode: 'range'\n startDate: CalendarDate\n endDate: CalendarDate\n}\n\ninterface MonthSingleProps extends BaseMonthProps {\n mode: 'single'\n date: CalendarDate\n}\n\ninterface MonthMultiProps extends BaseMonthProps {\n mode: 'multiple'\n dates: CalendarDates\n}\n\nfunction Month(props: MonthSingleProps | MonthRangeProps | MonthMultiProps) {\n const {\n index,\n mode,\n date,\n dates,\n startDate,\n endDate,\n onPressYear,\n selectingYear,\n onPressDate,\n scrollMode,\n primaryColor,\n selectColor,\n roundness,\n disableWeekDays,\n locale,\n validRange,\n } = props\n const theme = useTheme()\n const textColorOnPrimary = useTextColorOnPrimary()\n const realIndex = getRealIndex(index)\n const isHorizontal = scrollMode === 'horizontal'\n const { isDisabled, isWithinValidRange } = useRangeChecker(validRange)\n const { monthName, month, year } = React.useMemo(() => {\n const md = addMonths(new Date(), realIndex)\n const y = md.getFullYear()\n const m = md.getMonth()\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n })\n return { monthName: formatter.format(md), month: m, year: y }\n }, [realIndex, locale])\n\n const grid = React.useMemo(() => {\n const today = new Date()\n\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n const emptyDays = dayOfWeek\n\n return monthGrid(index).map(({ days, weekGrid }) => {\n return {\n weekIndex: weekGrid,\n generatedDays: days.map((_, dayIndex) => {\n const isFirstWeek = weekGrid === 0\n const realDayIndex = emptyDays - dayIndex\n const beforeWeekDay = isFirstWeek && realDayIndex > 0\n const dayOfMonth = weekGrid * 7 + dayIndex - emptyDays + 1\n const afterWeekDay = dayOfMonth > daysInMonth\n\n const day = new Date(year, month, dayOfMonth)\n const isToday = areDatesOnSameDay(day, today)\n\n let inRange = false\n let disabled = isDisabled(day)\n let selected = false\n\n let leftCrop = dayOfMonth === 1\n let rightCrop = dayOfMonth === daysInMonth\n\n const isFirstDayOfMonth = dayOfMonth === 1\n const isLastDayOfMonth = dayOfMonth === daysInMonth\n\n if (mode === 'range') {\n const selectedStartDay = areDatesOnSameDay(day, startDate)\n const selectedEndDay = areDatesOnSameDay(day, endDate)\n selected = selectedStartDay || selectedEndDay\n inRange = isDateBetween(day, {\n startDate,\n endDate,\n })\n if (selectedStartDay) {\n leftCrop = true\n }\n if (selectedEndDay) {\n rightCrop = true\n }\n if (dayIndex === 0 && !selectedStartDay) {\n leftCrop = false\n }\n\n if (dayIndex === 6 && !selectedEndDay) {\n rightCrop = false\n }\n\n if (\n (isFirstDayOfMonth && selectedEndDay) ||\n (isLastDayOfMonth && selectedStartDay)\n ) {\n inRange = false\n }\n } else if (mode === 'multiple') {\n const safeDates = dates || []\n selected = safeDates.some((d) => areDatesOnSameDay(day, d))\n\n const yesterday = new Date(year, month, dayOfMonth - 1)\n const tomorrow = new Date(year, month, dayOfMonth + 1)\n\n const yesterdaySelected = safeDates.some((d) =>\n areDatesOnSameDay(d, yesterday)\n )\n const tomorrowSelected = safeDates.some((d) =>\n areDatesOnSameDay(d, tomorrow)\n )\n\n if (selected) {\n if (tomorrowSelected && yesterdaySelected) {\n inRange = true\n }\n if (tomorrowSelected && !yesterdaySelected) {\n inRange = true\n leftCrop = true\n }\n\n if (yesterdaySelected && !tomorrowSelected) {\n inRange = true\n rightCrop = true\n }\n\n if (isFirstDayOfMonth && !tomorrowSelected) {\n inRange = false\n }\n\n if (isLastDayOfMonth && !yesterdaySelected) {\n inRange = false\n }\n\n if (inRange && !leftCrop && !rightCrop) {\n selected = false\n }\n }\n } else if (mode === 'single') {\n selected = areDatesOnSameDay(day, date)\n }\n\n const isWithinOptionalValidRange = isWithinValidRange(day)\n\n if (inRange && !disabled) {\n disabled = false\n }\n\n if (!isWithinOptionalValidRange) {\n disabled = true\n }\n\n return {\n beforeWeekDay,\n afterWeekDay,\n year,\n month,\n dayOfMonth,\n dayIndex,\n mode,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n isToday,\n disabled,\n }\n }),\n }\n })\n }, [\n year,\n month,\n index,\n isDisabled,\n mode,\n isWithinValidRange,\n startDate,\n endDate,\n dates,\n date,\n ])\n\n return (\n <View style={[styles.month, { height: getMonthHeight(scrollMode, index) }]}>\n <View\n style={[\n styles.monthHeader,\n isHorizontal\n ? {\n marginTop: monthHeaderSingleMarginTop,\n marginBottom: monthHeaderSingleMarginBottom,\n }\n : null,\n ]}\n >\n <TouchableRipple\n disabled={!isHorizontal}\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n style={[\n styles.yearButton,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <View\n style={[\n styles.yearButtonInner,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <Text\n style={[styles.monthLabel, theme.fonts.medium]}\n selectable={false}\n >\n {monthName} {year}\n </Text>\n <View style={isHorizontal ? styles.opacity1 : styles.opacity0}>\n <IconButton\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n icon={selectingYear ? 'chevron-up' : 'chevron-down'}\n />\n </View>\n </View>\n </TouchableRipple>\n </View>\n\n {grid.map(({ weekIndex, generatedDays }) => (\n <View style={styles.week} key={weekIndex}>\n {generatedDays\n .filter((gd) => showWeekDay(gd.dayIndex, disableWeekDays))\n .map((gd) =>\n gd.beforeWeekDay || gd.afterWeekDay ? (\n <EmptyDay key={gd.dayIndex} />\n ) : (\n <Day\n key={gd.dayIndex}\n theme={theme}\n day={gd.dayOfMonth}\n month={gd.month}\n year={gd.year}\n selected={gd.selected}\n inRange={gd.inRange}\n leftCrop={gd.leftCrop}\n rightCrop={gd.rightCrop}\n onPressDate={onPressDate}\n isToday={gd.isToday}\n selectColor={selectColor}\n primaryColor={primaryColor}\n disabled={gd.disabled}\n textColorOnPrimary={textColorOnPrimary}\n />\n )\n )}\n </View>\n ))}\n </View>\n )\n}\n\nexport const weekMargin = 6\nexport const weekSize = daySize + weekMargin\nexport const montHeaderHeight = 56\nexport const monthHeaderSingleMarginTop = 4\nexport const monthHeaderSingleMarginBottom = 8 + 44 + 12\nexport const monthHeaderSingleHeight =\n monthHeaderSingleMarginTop + monthHeaderSingleMarginBottom\n\nconst styles = StyleSheet.create({\n week: {\n flexDirection: 'row',\n marginBottom: weekMargin,\n height: daySize,\n },\n\n month: {},\n\n monthHeader: {\n height: montHeaderHeight,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n monthLabel: { fontSize: 14, opacity: 0.7 },\n yearButton: { alignSelf: 'flex-start', marginLeft: 6 },\n yearButtonInner: {\n paddingLeft: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n opacity0: { opacity: 0 },\n opacity1: { opacity: 1 },\n})\n\nconst monthGrid = (index: number) => {\n return Array(getGridCount(index))\n .fill(null)\n .map((_, weekGrid) => {\n const days = Array(7).fill(null)\n return { weekGrid, days }\n })\n}\n\nfunction getIndexCount(index: number): number {\n if (index > startAtIndex) {\n return index - startAtIndex\n }\n\n return -(startAtIndex - index)\n}\n\nfunction weeksOffset(index: number): number {\n if (index === startAtIndex) {\n return 0\n }\n let off = 0\n if (index > startAtIndex) {\n for (let i = 0; i < index - startAtIndex; i++) {\n const cIndex = startAtIndex + i\n off += gridCounts[cIndex] || getGridCount(cIndex)\n }\n } else {\n for (let i = 0; i < startAtIndex - index; i++) {\n const cIndex = startAtIndex - i - 1\n off -= gridCounts[cIndex] || getGridCount(cIndex)\n }\n }\n return off\n}\n\nexport function getIndexFromHorizontalOffset(\n offset: number,\n width: number\n): number {\n return startAtIndex + Math.floor(offset / width)\n}\n\nexport function getIndexFromVerticalOffset(offset: number): number {\n let estimatedIndex = startAtIndex + Math.ceil(offset / estimatedMonthHeight)\n\n const realOffset = getVerticalMonthsOffset(estimatedIndex)\n const difference = (realOffset - beginOffset - offset) / estimatedMonthHeight\n if (difference >= 1 || difference <= -1) {\n estimatedIndex -= Math.floor(difference)\n }\n return estimatedIndex\n}\n\nexport function getHorizontalMonthOffset(index: number, width: number) {\n if (index < 0) {\n return 0\n }\n return width * index\n}\n\nexport function getVerticalMonthsOffset(index: number) {\n const count = getIndexCount(index)\n const ob = weeksOffset(index)\n const monthsHeight = weekSize * ob\n const c = monthsHeight + count * (dayNamesHeight + montHeaderHeight)\n\n return (c || 0) + beginOffset\n}\n\nexport function getMonthHeight(\n scrollMode: 'horizontal' | 'vertical',\n index: number\n): number {\n const calendarHeight = getCalendarHeaderHeight(scrollMode)\n const gc = getGridCount(index)\n\n const currentMonthHeight = weekSize * gc\n const extraHeight =\n scrollMode === 'horizontal' ? monthHeaderSingleHeight : montHeaderHeight\n const c = calendarHeight + currentMonthHeight + extraHeight\n return c || 0\n}\n\nexport default React.memo(Month)\n"]}
1
+ {"version":3,"sources":["Month.tsx"],"names":["Month","props","index","mode","date","dates","startDate","endDate","onPressYear","selectingYear","onPressDate","scrollMode","primaryColor","selectColor","roundness","disableWeekDays","locale","validRange","theme","textColorOnPrimary","realIndex","isHorizontal","isDisabled","isWithinValidRange","monthName","month","year","React","useMemo","md","Date","y","getFullYear","m","getMonth","formatter","Intl","DateTimeFormat","format","grid","today","daysInMonth","dayOfWeek","emptyDays","monthGrid","map","days","weekGrid","weekIndex","generatedDays","_","dayIndex","isFirstWeek","realDayIndex","beforeWeekDay","dayOfMonth","afterWeekDay","day","isToday","inRange","disabled","selected","leftCrop","rightCrop","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","safeDates","some","d","yesterday","tomorrow","yesterdaySelected","tomorrowSelected","isWithinOptionalValidRange","styles","height","getMonthHeight","monthHeader","marginTop","monthHeaderSingleMarginTop","marginBottom","monthHeaderSingleMarginBottom","undefined","yearButton","borderRadius","yearButtonInner","monthLabel","fonts","medium","opacity1","opacity0","week","filter","gd","weekMargin","weekSize","daySize","montHeaderHeight","monthHeaderSingleHeight","StyleSheet","create","flexDirection","justifyContent","overflow","fontSize","opacity","alignSelf","marginLeft","paddingLeft","alignItems","Array","fill","getIndexCount","startAtIndex","weeksOffset","off","i","cIndex","gridCounts","getIndexFromHorizontalOffset","offset","width","Math","floor","getIndexFromVerticalOffset","estimatedIndex","ceil","estimatedMonthHeight","realOffset","getVerticalMonthsOffset","difference","beginOffset","getHorizontalMonthOffset","count","ob","monthsHeight","c","dayNamesHeight","calendarHeight","gc","currentMonthHeight","extraHeight","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, Text, useTheme, TouchableRipple } from 'react-native-paper'\nimport Day, { EmptyDay } from './Day'\n\nimport {\n addMonths,\n areDatesOnSameDay,\n daySize,\n DisableWeekDaysType,\n getDaysInMonth,\n getFirstDayOfMonth,\n getRealIndex,\n getGridCount,\n isDateBetween,\n gridCounts,\n showWeekDay,\n startAtIndex,\n beginOffset,\n estimatedMonthHeight,\n useRangeChecker,\n} from './dateUtils'\nimport { getCalendarHeaderHeight } from './CalendarHeader'\nimport type {\n CalendarDate,\n CalendarDates,\n ModeType,\n ValidRangeType,\n} from './Calendar'\nimport { dayNamesHeight } from './DayNames'\nimport { useTextColorOnPrimary } from '../utils'\n\ninterface BaseMonthProps {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n disableWeekDays?: DisableWeekDaysType\n mode: ModeType\n index: number\n onPressYear: (year: number) => any\n selectingYear: boolean\n onPressDate: (date: Date) => any\n primaryColor: string\n selectColor: string\n roundness: number\n validRange?: ValidRangeType\n\n // some of these should be required in final implementation\n startDate?: CalendarDate\n endDate?: CalendarDate\n date?: CalendarDate\n dates?: CalendarDates\n}\n\ninterface MonthRangeProps extends BaseMonthProps {\n mode: 'range'\n startDate: CalendarDate\n endDate: CalendarDate\n}\n\ninterface MonthSingleProps extends BaseMonthProps {\n mode: 'single'\n date: CalendarDate\n}\n\ninterface MonthMultiProps extends BaseMonthProps {\n mode: 'multiple'\n dates: CalendarDates\n}\n\nfunction Month(props: MonthSingleProps | MonthRangeProps | MonthMultiProps) {\n const {\n index,\n mode,\n date,\n dates,\n startDate,\n endDate,\n onPressYear,\n selectingYear,\n onPressDate,\n scrollMode,\n primaryColor,\n selectColor,\n roundness,\n disableWeekDays,\n locale,\n validRange,\n } = props\n const theme = useTheme()\n const textColorOnPrimary = useTextColorOnPrimary()\n const realIndex = getRealIndex(index)\n const isHorizontal = scrollMode === 'horizontal'\n const { isDisabled, isWithinValidRange } = useRangeChecker(validRange)\n const { monthName, month, year } = React.useMemo(() => {\n const md = addMonths(new Date(), realIndex)\n const y = md.getFullYear()\n const m = md.getMonth()\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n })\n return { monthName: formatter.format(md), month: m, year: y }\n }, [realIndex, locale])\n\n const grid = React.useMemo(() => {\n const today = new Date()\n\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n const emptyDays = dayOfWeek\n\n return monthGrid(index).map(({ days, weekGrid }) => {\n return {\n weekIndex: weekGrid,\n generatedDays: days.map((_, dayIndex) => {\n const isFirstWeek = weekGrid === 0\n const realDayIndex = emptyDays - dayIndex\n const beforeWeekDay = isFirstWeek && realDayIndex > 0\n const dayOfMonth = weekGrid * 7 + dayIndex - emptyDays + 1\n const afterWeekDay = dayOfMonth > daysInMonth\n\n const day = new Date(year, month, dayOfMonth)\n const isToday = areDatesOnSameDay(day, today)\n\n let inRange = false\n let disabled = isDisabled(day)\n let selected = false\n\n let leftCrop = dayOfMonth === 1\n let rightCrop = dayOfMonth === daysInMonth\n\n const isFirstDayOfMonth = dayOfMonth === 1\n const isLastDayOfMonth = dayOfMonth === daysInMonth\n\n if (mode === 'range') {\n const selectedStartDay = areDatesOnSameDay(day, startDate)\n const selectedEndDay = areDatesOnSameDay(day, endDate)\n selected = selectedStartDay || selectedEndDay\n inRange = isDateBetween(day, {\n startDate,\n endDate,\n })\n if (selectedStartDay) {\n leftCrop = true\n }\n if (selectedEndDay) {\n rightCrop = true\n }\n if (dayIndex === 0 && !selectedStartDay) {\n leftCrop = false\n }\n\n if (dayIndex === 6 && !selectedEndDay) {\n rightCrop = false\n }\n\n if (\n (isFirstDayOfMonth && selectedEndDay) ||\n (isLastDayOfMonth && selectedStartDay)\n ) {\n inRange = false\n }\n } else if (mode === 'multiple') {\n const safeDates = dates || []\n selected = safeDates.some((d) => areDatesOnSameDay(day, d))\n\n const yesterday = new Date(year, month, dayOfMonth - 1)\n const tomorrow = new Date(year, month, dayOfMonth + 1)\n\n const yesterdaySelected = safeDates.some((d) =>\n areDatesOnSameDay(d, yesterday)\n )\n const tomorrowSelected = safeDates.some((d) =>\n areDatesOnSameDay(d, tomorrow)\n )\n\n if (selected) {\n if (tomorrowSelected && yesterdaySelected) {\n inRange = true\n }\n if (tomorrowSelected && !yesterdaySelected) {\n inRange = true\n leftCrop = true\n }\n\n if (yesterdaySelected && !tomorrowSelected) {\n inRange = true\n rightCrop = true\n }\n\n if (isFirstDayOfMonth && !tomorrowSelected) {\n inRange = false\n }\n\n if (isLastDayOfMonth && !yesterdaySelected) {\n inRange = false\n }\n\n if (inRange && !leftCrop && !rightCrop) {\n selected = false\n }\n }\n } else if (mode === 'single') {\n selected = areDatesOnSameDay(day, date)\n }\n\n const isWithinOptionalValidRange = isWithinValidRange(day)\n\n if (inRange && !disabled) {\n disabled = false\n }\n\n if (!isWithinOptionalValidRange) {\n disabled = true\n }\n\n return {\n beforeWeekDay,\n afterWeekDay,\n year,\n month,\n dayOfMonth,\n dayIndex,\n mode,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n isToday,\n disabled,\n }\n }),\n }\n })\n }, [\n year,\n month,\n index,\n isDisabled,\n mode,\n isWithinValidRange,\n startDate,\n endDate,\n dates,\n date,\n ])\n\n return (\n <View style={[styles.month, { height: getMonthHeight(scrollMode, index) }]}>\n <View\n style={[\n styles.monthHeader,\n isHorizontal\n ? {\n marginTop: monthHeaderSingleMarginTop,\n marginBottom: monthHeaderSingleMarginBottom,\n }\n : null,\n ]}\n >\n <TouchableRipple\n disabled={!isHorizontal}\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n accessibilityRole=\"button\"\n accessibilityLabel={`${monthName} ${year}`}\n style={[\n styles.yearButton,\n {\n borderRadius: roundness,\n },\n ]}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n >\n <View\n style={[\n styles.yearButtonInner,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <Text\n style={[styles.monthLabel, theme.fonts.medium]}\n selectable={false}\n >\n {monthName} {year}\n </Text>\n <View style={isHorizontal ? styles.opacity1 : styles.opacity0}>\n <IconButton\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n icon={selectingYear ? 'chevron-up' : 'chevron-down'}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n />\n </View>\n </View>\n </TouchableRipple>\n </View>\n\n {grid.map(({ weekIndex, generatedDays }) => (\n <View style={styles.week} key={weekIndex}>\n {generatedDays\n .filter((gd) => showWeekDay(gd.dayIndex, disableWeekDays))\n .map((gd) =>\n gd.beforeWeekDay || gd.afterWeekDay ? (\n <EmptyDay key={gd.dayIndex} />\n ) : (\n <Day\n key={gd.dayIndex}\n theme={theme}\n day={gd.dayOfMonth}\n month={gd.month}\n year={gd.year}\n selected={gd.selected}\n inRange={gd.inRange}\n leftCrop={gd.leftCrop}\n rightCrop={gd.rightCrop}\n onPressDate={onPressDate}\n isToday={gd.isToday}\n selectColor={selectColor}\n primaryColor={primaryColor}\n disabled={gd.disabled}\n textColorOnPrimary={textColorOnPrimary}\n />\n )\n )}\n </View>\n ))}\n </View>\n )\n}\n\nexport const weekMargin = 6\nexport const weekSize = daySize + weekMargin\nexport const montHeaderHeight = 56\nexport const monthHeaderSingleMarginTop = 4\nexport const monthHeaderSingleMarginBottom = 8 + 44 + 12\nexport const monthHeaderSingleHeight =\n monthHeaderSingleMarginTop + monthHeaderSingleMarginBottom\n\nconst styles = StyleSheet.create({\n week: {\n flexDirection: 'row',\n marginBottom: weekMargin,\n height: daySize,\n },\n\n month: {},\n\n monthHeader: {\n height: montHeaderHeight,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n monthLabel: { fontSize: 14, opacity: 0.7 },\n yearButton: { alignSelf: 'flex-start', marginLeft: 6 },\n yearButtonInner: {\n paddingLeft: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n opacity0: { opacity: 0 },\n opacity1: { opacity: 1 },\n})\n\nconst monthGrid = (index: number) => {\n return Array(getGridCount(index))\n .fill(null)\n .map((_, weekGrid) => {\n const days = Array(7).fill(null)\n return { weekGrid, days }\n })\n}\n\nfunction getIndexCount(index: number): number {\n if (index > startAtIndex) {\n return index - startAtIndex\n }\n\n return -(startAtIndex - index)\n}\n\nfunction weeksOffset(index: number): number {\n if (index === startAtIndex) {\n return 0\n }\n let off = 0\n if (index > startAtIndex) {\n for (let i = 0; i < index - startAtIndex; i++) {\n const cIndex = startAtIndex + i\n off += gridCounts[cIndex] || getGridCount(cIndex)\n }\n } else {\n for (let i = 0; i < startAtIndex - index; i++) {\n const cIndex = startAtIndex - i - 1\n off -= gridCounts[cIndex] || getGridCount(cIndex)\n }\n }\n return off\n}\n\nexport function getIndexFromHorizontalOffset(\n offset: number,\n width: number\n): number {\n return startAtIndex + Math.floor(offset / width)\n}\n\nexport function getIndexFromVerticalOffset(offset: number): number {\n let estimatedIndex = startAtIndex + Math.ceil(offset / estimatedMonthHeight)\n\n const realOffset = getVerticalMonthsOffset(estimatedIndex)\n const difference = (realOffset - beginOffset - offset) / estimatedMonthHeight\n if (difference >= 1 || difference <= -1) {\n estimatedIndex -= Math.floor(difference)\n }\n return estimatedIndex\n}\n\nexport function getHorizontalMonthOffset(index: number, width: number) {\n if (index < 0) {\n return 0\n }\n return width * index\n}\n\nexport function getVerticalMonthsOffset(index: number) {\n const count = getIndexCount(index)\n const ob = weeksOffset(index)\n const monthsHeight = weekSize * ob\n const c = monthsHeight + count * (dayNamesHeight + montHeaderHeight)\n\n return (c || 0) + beginOffset\n}\n\nexport function getMonthHeight(\n scrollMode: 'horizontal' | 'vertical',\n index: number\n): number {\n const calendarHeight = getCalendarHeaderHeight(scrollMode)\n const gc = getGridCount(index)\n\n const currentMonthHeight = weekSize * gc\n const extraHeight =\n scrollMode === 'horizontal' ? monthHeaderSingleHeight : montHeaderHeight\n const c = calendarHeight + currentMonthHeight + extraHeight\n return c || 0\n}\n\nexport default React.memo(Month)\n"]}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useDebouncedCallback = useDebouncedCallback;
7
6
  exports.default = void 0;
7
+ exports.useDebouncedCallback = useDebouncedCallback;
8
8
 
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
 
@@ -26,14 +26,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
26
26
 
27
27
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
28
 
29
- function Swiper({
30
- scrollMode,
31
- renderItem,
32
- renderHeader,
33
- renderFooter,
34
- selectedYear,
35
- initialIndex
36
- }) {
29
+ function Swiper(_ref) {
30
+ let {
31
+ scrollMode,
32
+ renderItem,
33
+ renderHeader,
34
+ renderFooter,
35
+ selectedYear,
36
+ initialIndex
37
+ } = _ref;
37
38
  const isHorizontal = scrollMode === 'horizontal';
38
39
  const [index, setIndex] = React.useState(initialIndex);
39
40
  const onPrev = React.useCallback(() => {
@@ -62,29 +63,34 @@ function Swiper({
62
63
  index,
63
64
  onPrev,
64
65
  onNext
65
- })) : /*#__PURE__*/React.createElement(_AutoSizer.default, null, ({
66
- width,
67
- height
68
- }) => /*#__PURE__*/React.createElement(VerticalScroller, {
69
- width: width,
70
- height: height,
71
- initialIndex: initialIndex,
72
- estimatedHeight: _dateUtils.estimatedMonthHeight,
73
- renderItem: renderItem
74
- })), renderFooter && renderFooter(renderProps));
66
+ })) : /*#__PURE__*/React.createElement(_AutoSizer.default, null, _ref2 => {
67
+ let {
68
+ width,
69
+ height
70
+ } = _ref2;
71
+ return /*#__PURE__*/React.createElement(VerticalScroller, {
72
+ width: width,
73
+ height: height,
74
+ initialIndex: initialIndex,
75
+ estimatedHeight: _dateUtils.estimatedMonthHeight,
76
+ renderItem: renderItem
77
+ });
78
+ }), renderFooter && renderFooter(renderProps));
75
79
  }
76
80
 
77
81
  const visibleArray = i => [i - 2, i - 1, i, i + 1, i + 2];
78
82
 
79
- function VerticalScroller({
80
- width,
81
- height,
82
- initialIndex,
83
- estimatedHeight,
84
- renderItem
85
- }) {
83
+ function VerticalScroller(_ref3) {
84
+ let {
85
+ width,
86
+ height,
87
+ initialIndex,
88
+ estimatedHeight,
89
+ renderItem
90
+ } = _ref3;
86
91
  const idx = React.useRef(initialIndex);
87
- const [visibleIndexes, setVisibleIndexes] = React.useState(visibleArray(initialIndex));
92
+ const [visibleIndexes, setVisibleIndexes] = React.useState(visibleArray(initialIndex)); // eslint-disable-next-line no-undef
93
+
88
94
  const parentRef = React.useRef(null);
89
95
  useIsomorphicLayoutEffect(() => {
90
96
  const element = parentRef.current;
@@ -1 +1 @@
1
- {"version":3,"sources":["Swiper.tsx"],"names":["Swiper","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","isHorizontal","index","setIndex","React","useState","onPrev","useCallback","prev","onNext","renderProps","indexRef","newIndex","currentIndexRef","styles","flex1","width","height","estimatedMonthHeight","visibleArray","i","VerticalScroller","estimatedHeight","idx","useRef","visibleIndexes","setVisibleIndexes","parentRef","useIsomorphicLayoutEffect","element","current","top","montHeaderHeight","scrollTo","setVisibleIndexesThrottled","useDebouncedCallback","onScroll","e","currentTarget","scrollTop","offset","beginOffset","overflow","totalMonths","position","map","vi","willChange","transform","left","right","empty","StyleSheet","create","flex","callback","mounted","latest","timerId","useEffect","window","cancelAnimationFrame","args","requestAnimationFrame","useLayoutEffect","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\n\nimport {\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport { useLatest } from '../utils'\nimport { RenderProps, SwiperProps, useYearChange } from './SwiperUtils'\nimport AutoSizer from './AutoSizer'\n\nfunction Swiper({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n}: SwiperProps) {\n const isHorizontal = scrollMode === 'horizontal'\n const [index, setIndex] = React.useState(initialIndex)\n\n const onPrev = React.useCallback(() => {\n setIndex((prev) => prev - 1)\n }, [setIndex])\n\n const onNext = React.useCallback(() => {\n setIndex((prev) => prev + 1)\n }, [setIndex])\n\n const renderProps = {\n index,\n onPrev,\n onNext,\n }\n const indexRef = useLatest(index)\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n setIndex(newIndex)\n }\n },\n {\n selectedYear,\n currentIndexRef: indexRef,\n }\n )\n\n return (\n <>\n {renderHeader && renderHeader(renderProps)}\n {isHorizontal ? (\n <View style={styles.flex1}>\n {renderItem({ index, onPrev, onNext })}\n </View>\n ) : (\n <AutoSizer>\n {({ width, height }) => (\n <VerticalScroller\n width={width}\n height={height}\n initialIndex={initialIndex}\n estimatedHeight={estimatedMonthHeight}\n renderItem={renderItem}\n />\n )}\n </AutoSizer>\n )}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nconst visibleArray = (i: number) => [i - 2, i - 1, i, i + 1, i + 2]\n\nfunction VerticalScroller({\n width,\n height,\n initialIndex,\n estimatedHeight,\n renderItem,\n}: {\n renderItem: (renderProps: RenderProps) => any\n width: number\n height: number\n initialIndex: number\n estimatedHeight: number\n}) {\n const idx = React.useRef<number>(initialIndex)\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n visibleArray(initialIndex)\n )\n const parentRef = React.useRef<HTMLDivElement | null>(null)\n\n useIsomorphicLayoutEffect(() => {\n const element = parentRef.current\n if (!element) {\n return\n }\n const top = getVerticalMonthsOffset(idx.current) - montHeaderHeight\n\n element.scrollTo({\n top,\n })\n }, [parentRef, idx])\n\n const setVisibleIndexesThrottled = useDebouncedCallback(setVisibleIndexes)\n\n const onScroll = React.useCallback(\n (e: React.UIEvent) => {\n const top = e.currentTarget.scrollTop\n if (top === 0) {\n return\n }\n\n const offset = top - beginOffset\n const index = getIndexFromVerticalOffset(offset)\n\n if (idx.current !== index) {\n idx.current = index\n setVisibleIndexesThrottled(visibleArray(index))\n }\n },\n [setVisibleIndexesThrottled]\n )\n\n return (\n <div\n ref={parentRef}\n style={{\n height,\n width,\n overflow: 'auto',\n }}\n onScroll={onScroll}\n >\n <div\n style={{\n height: estimatedHeight * totalMonths,\n position: 'relative',\n }}\n >\n {[0, 1, 2, 3, 4].map((vi) => (\n <div\n key={vi}\n style={{\n willChange: 'transform',\n transform: `translateY(${getVerticalMonthsOffset(\n visibleIndexes[vi]\n )}px)`,\n left: 0,\n right: 0,\n position: 'absolute',\n height: getMonthHeight('vertical', visibleIndexes[vi]),\n // transform: `translateY(${getMonthsOffset('vertical', vi)}px)`,\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: empty,\n onNext: empty,\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nconst empty = () => null\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1,\n },\n})\n\nexport function useDebouncedCallback(callback: any): any {\n const mounted = React.useRef<boolean>(true)\n const latest = useLatest(callback)\n const timerId = React.useRef<any>(null)\n\n React.useEffect(() => {\n return () => {\n mounted.current = false\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n }\n }, [mounted, timerId])\n\n return React.useCallback(\n (args: any) => {\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n timerId.current = window.requestAnimationFrame(function () {\n if (mounted.current) {\n latest.current(args)\n }\n })\n },\n [mounted, timerId, latest]\n )\n}\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport default React.memo(Swiper)\n"]}
1
+ {"version":3,"sources":["Swiper.tsx"],"names":["Swiper","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","isHorizontal","index","setIndex","React","useState","onPrev","useCallback","prev","onNext","renderProps","indexRef","newIndex","currentIndexRef","styles","flex1","width","height","estimatedMonthHeight","visibleArray","i","VerticalScroller","estimatedHeight","idx","useRef","visibleIndexes","setVisibleIndexes","parentRef","useIsomorphicLayoutEffect","element","current","top","montHeaderHeight","scrollTo","setVisibleIndexesThrottled","useDebouncedCallback","onScroll","e","currentTarget","scrollTop","offset","beginOffset","overflow","totalMonths","position","map","vi","willChange","transform","left","right","empty","StyleSheet","create","flex","callback","mounted","latest","timerId","useEffect","window","cancelAnimationFrame","args","requestAnimationFrame","useLayoutEffect","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\n\nimport {\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport { useLatest } from '../utils'\nimport { RenderProps, SwiperProps, useYearChange } from './SwiperUtils'\nimport AutoSizer from './AutoSizer'\n\nfunction Swiper({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n}: SwiperProps) {\n const isHorizontal = scrollMode === 'horizontal'\n const [index, setIndex] = React.useState(initialIndex)\n\n const onPrev = React.useCallback(() => {\n setIndex((prev) => prev - 1)\n }, [setIndex])\n\n const onNext = React.useCallback(() => {\n setIndex((prev) => prev + 1)\n }, [setIndex])\n\n const renderProps = {\n index,\n onPrev,\n onNext,\n }\n const indexRef = useLatest(index)\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n setIndex(newIndex)\n }\n },\n {\n selectedYear,\n currentIndexRef: indexRef,\n }\n )\n\n return (\n <>\n {renderHeader && renderHeader(renderProps)}\n {isHorizontal ? (\n <View style={styles.flex1}>\n {renderItem({ index, onPrev, onNext })}\n </View>\n ) : (\n <AutoSizer>\n {({ width, height }) => (\n <VerticalScroller\n width={width}\n height={height}\n initialIndex={initialIndex}\n estimatedHeight={estimatedMonthHeight}\n renderItem={renderItem}\n />\n )}\n </AutoSizer>\n )}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nconst visibleArray = (i: number) => [i - 2, i - 1, i, i + 1, i + 2]\n\nfunction VerticalScroller({\n width,\n height,\n initialIndex,\n estimatedHeight,\n renderItem,\n}: {\n renderItem: (renderProps: RenderProps) => any\n width: number\n height: number\n initialIndex: number\n estimatedHeight: number\n}) {\n const idx = React.useRef<number>(initialIndex)\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n visibleArray(initialIndex)\n )\n // eslint-disable-next-line no-undef\n const parentRef = React.useRef<HTMLDivElement | null>(null)\n\n useIsomorphicLayoutEffect(() => {\n const element = parentRef.current\n if (!element) {\n return\n }\n const top = getVerticalMonthsOffset(idx.current) - montHeaderHeight\n\n element.scrollTo({\n top,\n })\n }, [parentRef, idx])\n\n const setVisibleIndexesThrottled = useDebouncedCallback(setVisibleIndexes)\n\n const onScroll = React.useCallback(\n (e: React.UIEvent) => {\n const top = e.currentTarget.scrollTop\n if (top === 0) {\n return\n }\n\n const offset = top - beginOffset\n const index = getIndexFromVerticalOffset(offset)\n\n if (idx.current !== index) {\n idx.current = index\n setVisibleIndexesThrottled(visibleArray(index))\n }\n },\n [setVisibleIndexesThrottled]\n )\n\n return (\n <div\n ref={parentRef}\n style={{\n height,\n width,\n overflow: 'auto',\n }}\n onScroll={onScroll}\n >\n <div\n style={{\n height: estimatedHeight * totalMonths,\n position: 'relative',\n }}\n >\n {[0, 1, 2, 3, 4].map((vi) => (\n <div\n key={vi}\n style={{\n willChange: 'transform',\n transform: `translateY(${getVerticalMonthsOffset(\n visibleIndexes[vi]\n )}px)`,\n left: 0,\n right: 0,\n position: 'absolute',\n height: getMonthHeight('vertical', visibleIndexes[vi]),\n // transform: `translateY(${getMonthsOffset('vertical', vi)}px)`,\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: empty,\n onNext: empty,\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nconst empty = () => null\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1,\n },\n})\n\nexport function useDebouncedCallback(callback: any): any {\n const mounted = React.useRef<boolean>(true)\n const latest = useLatest(callback)\n const timerId = React.useRef<any>(null)\n\n React.useEffect(() => {\n return () => {\n mounted.current = false\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n }\n }, [mounted, timerId])\n\n return React.useCallback(\n (args: any) => {\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n timerId.current = window.requestAnimationFrame(function () {\n if (mounted.current) {\n latest.current(args)\n }\n })\n },\n [mounted, timerId, latest]\n )\n}\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport default React.memo(Swiper)\n"]}
@@ -34,10 +34,12 @@ const styles = _reactNative.StyleSheet.create({
34
34
  }
35
35
  });
36
36
 
37
- function getVisibleArray(i, {
38
- isHorizontal,
39
- height
40
- }) {
37
+ function getVisibleArray(i, _ref) {
38
+ let {
39
+ isHorizontal,
40
+ height
41
+ } = _ref;
42
+
41
43
  if (isHorizontal || height < 700) {
42
44
  return [i - 1, i, i + 1];
43
45
  }
@@ -46,25 +48,29 @@ function getVisibleArray(i, {
46
48
  }
47
49
 
48
50
  function Swiper(props) {
49
- return /*#__PURE__*/React.createElement(_AutoSizer.default, null, ({
50
- width,
51
- height
52
- }) => /*#__PURE__*/React.createElement(SwiperInner, _extends({}, props, {
53
- width: width,
54
- height: height
55
- })));
51
+ return /*#__PURE__*/React.createElement(_AutoSizer.default, null, _ref2 => {
52
+ let {
53
+ width,
54
+ height
55
+ } = _ref2;
56
+ return /*#__PURE__*/React.createElement(SwiperInner, _extends({}, props, {
57
+ width: width,
58
+ height: height
59
+ }));
60
+ });
56
61
  }
57
62
 
58
- function SwiperInner({
59
- scrollMode,
60
- renderItem,
61
- renderHeader,
62
- renderFooter,
63
- selectedYear,
64
- initialIndex,
65
- width,
66
- height
67
- }) {
63
+ function SwiperInner(_ref3) {
64
+ let {
65
+ scrollMode,
66
+ renderItem,
67
+ renderHeader,
68
+ renderFooter,
69
+ selectedYear,
70
+ initialIndex,
71
+ width,
72
+ height
73
+ } = _ref3;
68
74
  const idx = React.useRef(initialIndex);
69
75
  const isHorizontal = scrollMode === 'horizontal';
70
76
  const [visibleIndexes, setVisibleIndexes] = React.useState(getVisibleArray(initialIndex, {
@@ -1 +1 @@
1
- {"version":3,"sources":["Swiper.native.tsx"],"names":["styles","StyleSheet","create","viewPager","flex","inner","position","getVisibleArray","i","isHorizontal","height","Swiper","props","width","SwiperInner","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","idx","React","useRef","visibleIndexes","setVisibleIndexes","useState","parentRef","scrollTo","useCallback","index","animated","current","offset","montHeaderHeight","y","x","onPrev","onNext","scrollToInitial","onMomentumScrollEnd","e","contentOffset","nativeEvent","viewSize","layoutMeasurement","newIndex","Math","floor","beginOffset","renderProps","currentIndexRef","estimatedMonthHeight","totalMonths","Array","length","fill","undefined","map","_","vi","top","left","right","bottom","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n StyleSheet,\n View,\n} from 'react-native'\nimport {\n getHorizontalMonthOffset,\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { SwiperProps, useYearChange } from './SwiperUtils'\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport AutoSizer from './AutoSizer'\n\nconst styles = StyleSheet.create({\n viewPager: {\n flex: 1,\n },\n inner: {\n position: 'relative',\n },\n})\n\nfunction getVisibleArray(\n i: number,\n { isHorizontal, height }: { isHorizontal: boolean; height: number }\n) {\n if (isHorizontal || height < 700) {\n return [i - 1, i, i + 1]\n }\n return [i - 2, i - 1, i, i + 1, i + 2]\n}\n\nfunction Swiper(props: SwiperProps) {\n return (\n <AutoSizer>\n {({ width, height }) => (\n <SwiperInner {...props} width={width} height={height} />\n )}\n </AutoSizer>\n )\n}\n\nfunction SwiperInner({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n width,\n height,\n}: SwiperProps & { width: number; height: number }) {\n const idx = React.useRef<number>(initialIndex)\n const isHorizontal = scrollMode === 'horizontal'\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n getVisibleArray(initialIndex, { isHorizontal, height })\n )\n\n const parentRef = React.useRef<ScrollView | null>(null)\n\n const scrollTo = React.useCallback(\n (index: number, animated: boolean) => {\n idx.current = index\n setVisibleIndexes(getVisibleArray(index, { isHorizontal, height }))\n\n if (!parentRef.current) {\n return\n }\n const offset = isHorizontal\n ? getHorizontalMonthOffset(index, width)\n : getVerticalMonthsOffset(index) - montHeaderHeight\n\n if (isHorizontal) {\n parentRef.current.scrollTo({\n y: 0,\n x: offset,\n animated,\n })\n } else {\n parentRef.current.scrollTo({\n y: offset,\n x: 0,\n animated,\n })\n }\n },\n [parentRef, isHorizontal, width, height]\n )\n\n const onPrev = React.useCallback(() => {\n scrollTo(idx.current - 1, true)\n }, [scrollTo, idx])\n\n const onNext = React.useCallback(() => {\n scrollTo(idx.current + 1, true)\n }, [scrollTo, idx])\n\n const scrollToInitial = React.useCallback(() => {\n scrollTo(idx.current, false)\n }, [scrollTo])\n\n const onMomentumScrollEnd = React.useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffset = e.nativeEvent.contentOffset\n const viewSize = e.nativeEvent.layoutMeasurement\n const newIndex = isHorizontal\n ? Math.floor(contentOffset.x / viewSize.width)\n : getIndexFromVerticalOffset(contentOffset.y - beginOffset)\n\n if (newIndex === 0) {\n return\n }\n\n if (idx.current !== newIndex) {\n idx.current = newIndex\n setVisibleIndexes(getVisibleArray(newIndex, { isHorizontal, height }))\n }\n },\n [idx, height, isHorizontal]\n )\n\n const renderProps = {\n index: 0,\n onPrev,\n onNext,\n }\n\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n scrollTo(newIndex, false)\n }\n },\n {\n selectedYear,\n currentIndexRef: idx,\n }\n )\n\n return (\n <>\n <ScrollView\n ref={parentRef}\n horizontal={isHorizontal}\n pagingEnabled={isHorizontal}\n style={styles.viewPager}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollEndDrag={onMomentumScrollEnd}\n onLayout={scrollToInitial}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n decelerationRate=\"fast\"\n scrollEventThrottle={10}\n >\n <View\n style={[\n styles.inner,\n {\n height: isHorizontal\n ? height\n : estimatedMonthHeight * totalMonths,\n width: isHorizontal ? width * totalMonths : width,\n },\n ]}\n >\n {visibleIndexes\n ? new Array(visibleIndexes.length).fill(undefined).map((_, vi) => (\n <View\n key={vi}\n style={{\n top: isHorizontal\n ? 0\n : getVerticalMonthsOffset(visibleIndexes[vi]),\n left: isHorizontal\n ? getHorizontalMonthOffset(visibleIndexes[vi], width)\n : 0,\n right: isHorizontal ? undefined : 0,\n bottom: isHorizontal ? 0 : undefined,\n position: 'absolute',\n width: isHorizontal ? width : undefined,\n height: isHorizontal\n ? undefined\n : getMonthHeight(scrollMode, visibleIndexes[vi]),\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: onPrev,\n onNext: onNext,\n })}\n </View>\n ))\n : null}\n </View>\n </ScrollView>\n {renderHeader && renderHeader(renderProps)}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nexport default React.memo(Swiper)\n"]}
1
+ {"version":3,"sources":["Swiper.native.tsx"],"names":["styles","StyleSheet","create","viewPager","flex","inner","position","getVisibleArray","i","isHorizontal","height","Swiper","props","width","SwiperInner","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","idx","React","useRef","visibleIndexes","setVisibleIndexes","useState","parentRef","scrollTo","useCallback","index","animated","current","offset","montHeaderHeight","y","x","onPrev","onNext","scrollToInitial","onMomentumScrollEnd","e","contentOffset","nativeEvent","viewSize","layoutMeasurement","newIndex","Math","floor","beginOffset","renderProps","currentIndexRef","estimatedMonthHeight","totalMonths","Array","length","fill","undefined","map","_","vi","top","left","right","bottom","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n StyleSheet,\n View,\n} from 'react-native'\nimport {\n getHorizontalMonthOffset,\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { SwiperProps, useYearChange } from './SwiperUtils'\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport AutoSizer from './AutoSizer'\n\nconst styles = StyleSheet.create({\n viewPager: {\n flex: 1,\n },\n inner: {\n position: 'relative',\n },\n})\n\nfunction getVisibleArray(\n i: number,\n { isHorizontal, height }: { isHorizontal: boolean; height: number }\n) {\n if (isHorizontal || height < 700) {\n return [i - 1, i, i + 1]\n }\n return [i - 2, i - 1, i, i + 1, i + 2]\n}\n\nfunction Swiper(props: SwiperProps) {\n return (\n <AutoSizer>\n {({ width, height }) => (\n <SwiperInner {...props} width={width} height={height} />\n )}\n </AutoSizer>\n )\n}\n\nfunction SwiperInner({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n width,\n height,\n}: SwiperProps & { width: number; height: number }) {\n const idx = React.useRef<number>(initialIndex)\n const isHorizontal = scrollMode === 'horizontal'\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n getVisibleArray(initialIndex, { isHorizontal, height })\n )\n\n const parentRef = React.useRef<ScrollView | null>(null)\n\n const scrollTo = React.useCallback(\n (index: number, animated: boolean) => {\n idx.current = index\n setVisibleIndexes(getVisibleArray(index, { isHorizontal, height }))\n\n if (!parentRef.current) {\n return\n }\n const offset = isHorizontal\n ? getHorizontalMonthOffset(index, width)\n : getVerticalMonthsOffset(index) - montHeaderHeight\n\n if (isHorizontal) {\n parentRef.current.scrollTo({\n y: 0,\n x: offset,\n animated,\n })\n } else {\n parentRef.current.scrollTo({\n y: offset,\n x: 0,\n animated,\n })\n }\n },\n [parentRef, isHorizontal, width, height]\n )\n\n const onPrev = React.useCallback(() => {\n scrollTo(idx.current - 1, true)\n }, [scrollTo, idx])\n\n const onNext = React.useCallback(() => {\n scrollTo(idx.current + 1, true)\n }, [scrollTo, idx])\n\n const scrollToInitial = React.useCallback(() => {\n scrollTo(idx.current, false)\n }, [scrollTo])\n\n const onMomentumScrollEnd = React.useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffset = e.nativeEvent.contentOffset\n const viewSize = e.nativeEvent.layoutMeasurement\n const newIndex = isHorizontal\n ? Math.floor(contentOffset.x / viewSize.width)\n : getIndexFromVerticalOffset(contentOffset.y - beginOffset)\n\n if (newIndex === 0) {\n return\n }\n\n if (idx.current !== newIndex) {\n idx.current = newIndex\n setVisibleIndexes(getVisibleArray(newIndex, { isHorizontal, height }))\n }\n },\n [idx, height, isHorizontal]\n )\n\n const renderProps = {\n index: 0,\n onPrev,\n onNext,\n }\n\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n scrollTo(newIndex, false)\n }\n },\n {\n selectedYear,\n currentIndexRef: idx,\n }\n )\n\n return (\n <>\n <ScrollView\n ref={parentRef}\n horizontal={isHorizontal}\n pagingEnabled={isHorizontal}\n style={styles.viewPager}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollEndDrag={onMomentumScrollEnd}\n onLayout={scrollToInitial}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n decelerationRate=\"fast\"\n scrollEventThrottle={10}\n >\n <View\n style={[\n styles.inner,\n {\n height: isHorizontal\n ? height\n : estimatedMonthHeight * totalMonths,\n width: isHorizontal ? width * totalMonths : width,\n },\n ]}\n >\n {visibleIndexes\n ? new Array(visibleIndexes.length).fill(undefined).map((_, vi) => (\n <View\n key={vi}\n style={{\n top: isHorizontal\n ? 0\n : getVerticalMonthsOffset(visibleIndexes[vi]),\n left: isHorizontal\n ? getHorizontalMonthOffset(visibleIndexes[vi], width)\n : 0,\n right: isHorizontal ? undefined : 0,\n bottom: isHorizontal ? 0 : undefined,\n position: 'absolute',\n width: isHorizontal ? width : undefined,\n height: isHorizontal\n ? undefined\n : getMonthHeight(scrollMode, visibleIndexes[vi]),\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: onPrev,\n onNext: onNext,\n })}\n </View>\n ))\n : null}\n </View>\n </ScrollView>\n {renderHeader && renderHeader(renderProps)}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nexport default React.memo(Swiper)\n"]}
@@ -15,10 +15,11 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- function useYearChange(onChange, {
19
- selectedYear,
20
- currentIndexRef
21
- }) {
18
+ function useYearChange(onChange, _ref) {
19
+ let {
20
+ selectedYear,
21
+ currentIndexRef
22
+ } = _ref;
22
23
  const onChangeRef = (0, _utils.useLatest)(onChange);
23
24
  React.useEffect(() => {
24
25
  if (selectedYear) {
@@ -1 +1 @@
1
- {"version":3,"sources":["SwiperUtils.ts"],"names":["useYearChange","onChange","selectedYear","currentIndexRef","onChangeRef","React","useEffect","currentIndex","current","currentDate","Date","setFullYear","today","months","newIndex","startAtIndex"],"mappings":";;;;;;;AACA;;AACA;;AACA;;;;;;AAsBO,SAASA,aAAT,CACLC,QADK,EAEL;AACEC,EAAAA,YADF;AAEEC,EAAAA;AAFF,CAFK,EASL;AACA,QAAMC,WAAW,GAAG,sBAAUH,QAAV,CAApB;AACAI,EAAAA,KAAK,CAACC,SAAN,CAAgB,MAAM;AACpB,QAAIJ,YAAJ,EAAkB;AAChB,YAAMK,YAAY,GAAGJ,eAAe,CAACK,OAAhB,IAA2B,CAAhD;AACA,YAAMC,WAAW,GAAG,0BAAU,IAAIC,IAAJ,EAAV,EAAsB,6BAAaH,YAAb,CAAtB,CAApB;AACAE,MAAAA,WAAW,CAACE,WAAZ,CAAwBT,YAAxB;AAEA,YAAMU,KAAK,GAAG,IAAIF,IAAJ,EAAd;AACA,YAAMG,MAAM,GAAG,mCAAmBD,KAAnB,EAA0BH,WAA1B,CAAf;AAEA,YAAMK,QAAQ,GAAGC,0BAAeF,MAAhC;;AACA,UAAIN,YAAY,KAAKO,QAArB,EAA+B;AAC7BV,QAAAA,WAAW,CAACI,OAAZ,CAAoBM,QAApB;AACD;AACF;AACF,GAdD,EAcG,CAACX,eAAD,EAAkBC,WAAlB,EAA+BF,YAA/B,CAdH;AAeD","sourcesContent":["import type { MutableRefObject } from 'react'\nimport { useLatest } from '../utils'\nimport * as React from 'react'\nimport {\n addMonths,\n differenceInMonths,\n getRealIndex,\n startAtIndex,\n} from './dateUtils'\n\nexport type RenderProps = {\n index: number\n onNext: () => any\n onPrev: () => any\n}\n\nexport type SwiperProps = {\n initialIndex: number\n scrollMode: 'horizontal' | 'vertical'\n renderItem: (renderProps: RenderProps) => any\n renderHeader?: (renderProps: RenderProps) => any\n renderFooter?: (renderProps: RenderProps) => any\n selectedYear: number | undefined\n}\n\nexport function useYearChange(\n onChange: (index: number | undefined) => void,\n {\n selectedYear,\n currentIndexRef,\n }: {\n currentIndexRef: MutableRefObject<number>\n selectedYear: number | undefined\n }\n) {\n const onChangeRef = useLatest(onChange)\n React.useEffect(() => {\n if (selectedYear) {\n const currentIndex = currentIndexRef.current || 0\n const currentDate = addMonths(new Date(), getRealIndex(currentIndex))\n currentDate.setFullYear(selectedYear)\n\n const today = new Date()\n const months = differenceInMonths(today, currentDate)\n\n const newIndex = startAtIndex + months\n if (currentIndex !== newIndex) {\n onChangeRef.current(newIndex)\n }\n }\n }, [currentIndexRef, onChangeRef, selectedYear])\n}\n"]}
1
+ {"version":3,"sources":["SwiperUtils.ts"],"names":["useYearChange","onChange","selectedYear","currentIndexRef","onChangeRef","React","useEffect","currentIndex","current","currentDate","Date","setFullYear","today","months","newIndex","startAtIndex"],"mappings":";;;;;;;AACA;;AACA;;AACA;;;;;;AAsBO,SAASA,aAAT,CACLC,QADK,QASL;AAAA,MAPA;AACEC,IAAAA,YADF;AAEEC,IAAAA;AAFF,GAOA;AACA,QAAMC,WAAW,GAAG,sBAAUH,QAAV,CAApB;AACAI,EAAAA,KAAK,CAACC,SAAN,CAAgB,MAAM;AACpB,QAAIJ,YAAJ,EAAkB;AAChB,YAAMK,YAAY,GAAGJ,eAAe,CAACK,OAAhB,IAA2B,CAAhD;AACA,YAAMC,WAAW,GAAG,0BAAU,IAAIC,IAAJ,EAAV,EAAsB,6BAAaH,YAAb,CAAtB,CAApB;AACAE,MAAAA,WAAW,CAACE,WAAZ,CAAwBT,YAAxB;AAEA,YAAMU,KAAK,GAAG,IAAIF,IAAJ,EAAd;AACA,YAAMG,MAAM,GAAG,mCAAmBD,KAAnB,EAA0BH,WAA1B,CAAf;AAEA,YAAMK,QAAQ,GAAGC,0BAAeF,MAAhC;;AACA,UAAIN,YAAY,KAAKO,QAArB,EAA+B;AAC7BV,QAAAA,WAAW,CAACI,OAAZ,CAAoBM,QAApB;AACD;AACF;AACF,GAdD,EAcG,CAACX,eAAD,EAAkBC,WAAlB,EAA+BF,YAA/B,CAdH;AAeD","sourcesContent":["import type { MutableRefObject } from 'react'\nimport { useLatest } from '../utils'\nimport * as React from 'react'\nimport {\n addMonths,\n differenceInMonths,\n getRealIndex,\n startAtIndex,\n} from './dateUtils'\n\nexport type RenderProps = {\n index: number\n onNext: () => any\n onPrev: () => any\n}\n\nexport type SwiperProps = {\n initialIndex: number\n scrollMode: 'horizontal' | 'vertical'\n renderItem: (renderProps: RenderProps) => any\n renderHeader?: (renderProps: RenderProps) => any\n renderFooter?: (renderProps: RenderProps) => any\n selectedYear: number | undefined\n}\n\nexport function useYearChange(\n onChange: (index: number | undefined) => void,\n {\n selectedYear,\n currentIndexRef,\n }: {\n currentIndexRef: MutableRefObject<number>\n selectedYear: number | undefined\n }\n) {\n const onChangeRef = useLatest(onChange)\n React.useEffect(() => {\n if (selectedYear) {\n const currentIndex = currentIndexRef.current || 0\n const currentDate = addMonths(new Date(), getRealIndex(currentIndex))\n currentDate.setFullYear(selectedYear)\n\n const today = new Date()\n const months = differenceInMonths(today, currentDate)\n\n const newIndex = startAtIndex + months\n if (currentIndex !== newIndex) {\n onChangeRef.current(newIndex)\n }\n }\n }, [currentIndexRef, onChangeRef, selectedYear])\n}\n"]}
@@ -22,11 +22,12 @@ const startYear = 1800;
22
22
  const endYear = 2200;
23
23
  const years = (0, _utils.range)(startYear, endYear);
24
24
 
25
- function YearPicker({
26
- selectedYear,
27
- selectingYear,
28
- onPressYear
29
- }) {
25
+ function YearPicker(_ref) {
26
+ let {
27
+ selectedYear,
28
+ selectingYear,
29
+ onPressYear
30
+ } = _ref;
30
31
  const theme = (0, _reactNativePaper.useTheme)();
31
32
  const flatList = React.useRef(null); // scroll to selected year
32
33
 
@@ -48,29 +49,38 @@ function YearPicker({
48
49
  ref: flatList,
49
50
  style: styles.list,
50
51
  data: years,
51
- renderItem: ({
52
- item
53
- }) => /*#__PURE__*/React.createElement(Year, {
54
- year: item,
55
- selected: selectedYear === item,
56
- onPressYear: onPressYear
57
- }),
52
+ renderItem: _ref2 => {
53
+ let {
54
+ item
55
+ } = _ref2;
56
+ return /*#__PURE__*/React.createElement(Year, {
57
+ year: item,
58
+ selected: selectedYear === item,
59
+ onPressYear: onPressYear
60
+ });
61
+ },
58
62
  keyExtractor: item => `${item}`,
59
63
  numColumns: 3
60
64
  }));
61
65
  }
62
66
 
63
- function YearPure({
64
- year,
65
- selected,
66
- onPressYear
67
- }) {
67
+ function YearPure(_ref3) {
68
+ let {
69
+ year,
70
+ selected,
71
+ onPressYear
72
+ } = _ref3;
68
73
  const theme = (0, _reactNativePaper.useTheme)();
69
74
  return /*#__PURE__*/React.createElement(_reactNative.View, {
70
75
  style: styles.year
71
76
  }, /*#__PURE__*/React.createElement(_reactNativePaper.TouchableRipple, {
72
77
  onPress: () => onPressYear(year),
73
- style: styles.yearButton
78
+ accessibilityRole: "button",
79
+ accessibilityLabel: String(year),
80
+ style: styles.yearButton // RN types bug
81
+ ,
82
+ hasTVPreferredFocus: undefined,
83
+ tvParallaxProperties: undefined
74
84
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
75
85
  style: [styles.yearInner, selected ? {
76
86
  backgroundColor: theme.colors.primary