react-native-paper-dates 0.4.6 → 0.7.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 (245) hide show
  1. package/README.md +79 -22
  2. package/lib/commonjs/Date/AnimatedCrossView.js +9 -8
  3. package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
  4. package/lib/commonjs/Date/AutoSizer.js +6 -5
  5. package/lib/commonjs/Date/AutoSizer.js.map +1 -1
  6. package/lib/commonjs/Date/Calendar.js +46 -39
  7. package/lib/commonjs/Date/Calendar.js.map +1 -1
  8. package/lib/commonjs/Date/CalendarEdit.js +32 -111
  9. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  10. package/lib/commonjs/Date/CalendarHeader.js +23 -12
  11. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  12. package/lib/commonjs/Date/DatePickerInput.js +93 -20
  13. package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
  14. package/lib/commonjs/Date/DatePickerModal.js +2 -2
  15. package/lib/commonjs/Date/DatePickerModalContent.js +7 -4
  16. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  17. package/lib/commonjs/Date/DatePickerModalContentHeader.js +43 -34
  18. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  19. package/lib/commonjs/Date/DatePickerModalHeader.js +12 -5
  20. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  21. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
  22. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  23. package/lib/commonjs/Date/DateRangeInput.js +23 -24
  24. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  25. package/lib/commonjs/Date/Day.js +7 -3
  26. package/lib/commonjs/Date/Day.js.map +1 -1
  27. package/lib/commonjs/Date/DayName.js +6 -5
  28. package/lib/commonjs/Date/DayName.js.map +1 -1
  29. package/lib/commonjs/Date/DayNames.js +7 -6
  30. package/lib/commonjs/Date/DayNames.js.map +1 -1
  31. package/lib/commonjs/Date/DayRange.js +9 -8
  32. package/lib/commonjs/Date/DayRange.js.map +1 -1
  33. package/lib/commonjs/Date/Month.js +59 -49
  34. package/lib/commonjs/Date/Month.js.map +1 -1
  35. package/lib/commonjs/Date/Swiper.js +35 -29
  36. package/lib/commonjs/Date/Swiper.js.map +1 -1
  37. package/lib/commonjs/Date/Swiper.native.js +29 -23
  38. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  39. package/lib/commonjs/Date/SwiperUtils.js +7 -6
  40. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  41. package/lib/commonjs/Date/YearPicker.js +30 -20
  42. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  43. package/lib/commonjs/Date/dateUtils.js +106 -37
  44. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  45. package/lib/commonjs/Date/inputUtils.js +84 -0
  46. package/lib/commonjs/Date/inputUtils.js.map +1 -0
  47. package/lib/commonjs/TextInputMask.js +11 -10
  48. package/lib/commonjs/TextInputMask.js.map +1 -1
  49. package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
  50. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  51. package/lib/commonjs/Time/AnalogClock.js +25 -15
  52. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  53. package/lib/commonjs/Time/AnalogClockHours.js +17 -11
  54. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  55. package/lib/commonjs/Time/AnalogClockMinutes.js +7 -6
  56. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  57. package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
  58. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  59. package/lib/commonjs/Time/TimeInput.js +16 -12
  60. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  61. package/lib/commonjs/Time/TimeInputs.js +12 -11
  62. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  63. package/lib/commonjs/Time/TimePicker.js +37 -15
  64. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  65. package/lib/commonjs/Time/TimePickerModal.js +19 -15
  66. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  67. package/lib/commonjs/Time/timeUtils.js +14 -9
  68. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  69. package/lib/commonjs/index.js +66 -5
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/translations/en.js +25 -0
  72. package/lib/commonjs/translations/en.js.map +1 -0
  73. package/lib/commonjs/translations/enGB.js +25 -0
  74. package/lib/commonjs/translations/enGB.js.map +1 -0
  75. package/lib/commonjs/translations/nl.js +25 -0
  76. package/lib/commonjs/translations/nl.js.map +1 -0
  77. package/lib/commonjs/translations/pl.js +25 -0
  78. package/lib/commonjs/translations/pl.js.map +1 -0
  79. package/lib/commonjs/translations/utils.js +31 -0
  80. package/lib/commonjs/translations/utils.js.map +1 -0
  81. package/lib/commonjs/utils.js +19 -9
  82. package/lib/commonjs/utils.js.map +1 -1
  83. package/lib/module/Date/AnimatedCrossView.js +7 -6
  84. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  85. package/lib/module/Date/AutoSizer.js +4 -3
  86. package/lib/module/Date/AutoSizer.js.map +1 -1
  87. package/lib/module/Date/Calendar.js +46 -39
  88. package/lib/module/Date/Calendar.js.map +1 -1
  89. package/lib/module/Date/CalendarEdit.js +28 -104
  90. package/lib/module/Date/CalendarEdit.js.map +1 -1
  91. package/lib/module/Date/CalendarHeader.js +19 -9
  92. package/lib/module/Date/CalendarHeader.js.map +1 -1
  93. package/lib/module/Date/DatePickerInput.js +88 -18
  94. package/lib/module/Date/DatePickerInput.js.map +1 -1
  95. package/lib/module/Date/DatePickerModalContent.js +5 -2
  96. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  97. package/lib/module/Date/DatePickerModalContentHeader.js +38 -30
  98. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  99. package/lib/module/Date/DatePickerModalHeader.js +9 -3
  100. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  101. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  102. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  103. package/lib/module/Date/DateRangeInput.js +22 -22
  104. package/lib/module/Date/DateRangeInput.js.map +1 -1
  105. package/lib/module/Date/Day.js +5 -1
  106. package/lib/module/Date/Day.js.map +1 -1
  107. package/lib/module/Date/DayName.js +4 -3
  108. package/lib/module/Date/DayName.js.map +1 -1
  109. package/lib/module/Date/DayNames.js +5 -4
  110. package/lib/module/Date/DayNames.js.map +1 -1
  111. package/lib/module/Date/DayRange.js +7 -6
  112. package/lib/module/Date/DayRange.js.map +1 -1
  113. package/lib/module/Date/Month.js +54 -45
  114. package/lib/module/Date/Month.js.map +1 -1
  115. package/lib/module/Date/Swiper.js +32 -26
  116. package/lib/module/Date/Swiper.js.map +1 -1
  117. package/lib/module/Date/Swiper.native.js +27 -21
  118. package/lib/module/Date/Swiper.native.js.map +1 -1
  119. package/lib/module/Date/SwiperUtils.js +5 -4
  120. package/lib/module/Date/SwiperUtils.js.map +1 -1
  121. package/lib/module/Date/YearPicker.js +28 -18
  122. package/lib/module/Date/YearPicker.js.map +1 -1
  123. package/lib/module/Date/dateUtils.js +78 -29
  124. package/lib/module/Date/dateUtils.js.map +1 -1
  125. package/lib/module/Date/inputUtils.js +70 -0
  126. package/lib/module/Date/inputUtils.js.map +1 -0
  127. package/lib/module/TextInputMask.js +9 -8
  128. package/lib/module/TextInputMask.js.map +1 -1
  129. package/lib/module/Time/AmPmSwitcher.js +35 -18
  130. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  131. package/lib/module/Time/AnalogClock.js +23 -14
  132. package/lib/module/Time/AnalogClock.js.map +1 -1
  133. package/lib/module/Time/AnalogClockHours.js +14 -9
  134. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  135. package/lib/module/Time/AnalogClockMinutes.js +5 -4
  136. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  137. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  138. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  139. package/lib/module/Time/TimeInput.js +14 -10
  140. package/lib/module/Time/TimeInput.js.map +1 -1
  141. package/lib/module/Time/TimeInputs.js +10 -9
  142. package/lib/module/Time/TimeInputs.js.map +1 -1
  143. package/lib/module/Time/TimePicker.js +32 -12
  144. package/lib/module/Time/TimePicker.js.map +1 -1
  145. package/lib/module/Time/TimePickerModal.js +17 -13
  146. package/lib/module/Time/TimePickerModal.js.map +1 -1
  147. package/lib/module/Time/timeUtils.js +5 -1
  148. package/lib/module/Time/timeUtils.js.map +1 -1
  149. package/lib/module/index.js +6 -0
  150. package/lib/module/index.js.map +1 -1
  151. package/lib/module/translations/en.js +18 -0
  152. package/lib/module/translations/en.js.map +1 -0
  153. package/lib/module/translations/enGB.js +18 -0
  154. package/lib/module/translations/enGB.js.map +1 -0
  155. package/lib/module/translations/nl.js +18 -0
  156. package/lib/module/translations/nl.js.map +1 -0
  157. package/lib/module/translations/pl.js +18 -0
  158. package/lib/module/translations/pl.js.map +1 -0
  159. package/lib/module/translations/utils.js +22 -0
  160. package/lib/module/translations/utils.js.map +1 -0
  161. package/lib/module/utils.js +11 -5
  162. package/lib/module/utils.js.map +1 -1
  163. package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
  164. package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
  165. package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
  166. package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +3 -3
  167. package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
  168. package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
  169. package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
  170. package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -1
  171. package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
  172. package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
  173. package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
  174. package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
  175. package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
  176. package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
  177. package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
  178. package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
  179. package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
  180. package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
  181. package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
  182. package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
  183. package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
  184. package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
  185. package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
  186. package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
  187. package/lib/typescript/Date/inputUtils.d.ts +14 -0
  188. package/lib/typescript/TextInputMask.d.ts +11 -0
  189. package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
  190. package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -1
  191. package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
  192. package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
  193. package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
  194. package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
  195. package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
  196. package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
  197. package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
  198. package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +0 -0
  199. package/lib/typescript/index.d.ts +13 -0
  200. package/lib/typescript/translations/en.d.ts +3 -0
  201. package/lib/typescript/translations/enGB.d.ts +3 -0
  202. package/lib/typescript/translations/nl.d.ts +3 -0
  203. package/lib/typescript/translations/pl.d.ts +3 -0
  204. package/lib/typescript/translations/utils.d.ts +18 -0
  205. package/lib/typescript/utils.d.ts +58 -0
  206. package/package.json +39 -38
  207. package/src/.DS_Store +0 -0
  208. package/src/Date/Calendar.tsx +14 -13
  209. package/src/Date/CalendarEdit.tsx +17 -121
  210. package/src/Date/CalendarHeader.tsx +18 -3
  211. package/src/Date/DatePickerInput.tsx +103 -25
  212. package/src/Date/DatePickerModalContent.tsx +5 -1
  213. package/src/Date/DatePickerModalContentHeader.tsx +26 -12
  214. package/src/Date/DatePickerModalHeader.tsx +8 -1
  215. package/src/Date/DateRangeInput.tsx +26 -17
  216. package/src/Date/Day.tsx +4 -0
  217. package/src/Date/Month.tsx +20 -44
  218. package/src/Date/Swiper.tsx +1 -0
  219. package/src/Date/SwiperUtils.ts +1 -1
  220. package/src/Date/YearPicker.tsx +6 -1
  221. package/src/Date/dateUtils.tsx +70 -9
  222. package/src/Date/inputUtils.ts +94 -0
  223. package/src/TextInputMask.tsx +10 -3
  224. package/src/Time/AmPmSwitcher.tsx +20 -11
  225. package/src/Time/AnalogClock.tsx +12 -14
  226. package/src/Time/AnalogClockHours.tsx +14 -5
  227. package/src/Time/AnalogClockMinutes.tsx +4 -1
  228. package/src/Time/TimeInput.tsx +3 -0
  229. package/src/Time/TimeInputs.tsx +1 -5
  230. package/src/Time/TimePicker.tsx +44 -22
  231. package/src/Time/TimePickerModal.tsx +4 -1
  232. package/src/Time/timeUtils.ts +4 -1
  233. package/src/index.tsx +7 -0
  234. package/src/translations/en.ts +20 -0
  235. package/src/translations/enGB.ts +20 -0
  236. package/src/translations/nl.ts +20 -0
  237. package/src/translations/pl.ts +21 -0
  238. package/src/translations/utils.ts +47 -0
  239. package/src/utils.ts +13 -5
  240. package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
  241. package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
  242. package/lib/typescript/src/TextInputMask.d.ts +0 -3
  243. package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
  244. package/lib/typescript/src/index.d.ts +0 -6
  245. package/lib/typescript/src/utils.d.ts +0 -7
@@ -17,19 +17,20 @@ var _dateUtils = require("./dateUtils");
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
 
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
22
+ 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; }
23
23
 
24
24
  const dayNamesHeight = 44; // TODO: wait for a better Intl api ;-)
25
25
 
26
26
  exports.dayNamesHeight = dayNamesHeight;
27
27
  const weekdays = [new Date(2020, 7, 2), new Date(2020, 7, 3), new Date(2020, 7, 4), new Date(2020, 7, 5), new Date(2020, 7, 6), new Date(2020, 7, 7), new Date(2020, 7, 8)];
28
28
 
29
- function DayNames({
30
- disableWeekDays,
31
- locale
32
- }) {
29
+ function DayNames(_ref) {
30
+ let {
31
+ disableWeekDays,
32
+ locale
33
+ } = _ref;
33
34
  const theme = (0, _reactNativePaper.useTheme)();
34
35
  const shortDayNames = React.useMemo(() => {
35
36
  const formatter = new Intl.DateTimeFormat(locale, {
@@ -1 +1 @@
1
- {"version":3,"sources":["DayNames.tsx"],"names":["dayNamesHeight","weekdays","Date","DayNames","disableWeekDays","locale","theme","shortDayNames","React","useMemo","formatter","Intl","DateTimeFormat","weekday","map","date","format","styles","dayNames","backgroundColor","colors","surface","filter","_","dayIndex","dayName","i","StyleSheet","create","height","flexDirection","alignItems","memo"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEO,MAAMA,cAAc,GAAG,EAAvB,C,CAEP;;;AACA,MAAMC,QAAQ,GAAG,CACf,IAAIC,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CADe,EAEf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAFe,EAGf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAHe,EAIf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAJe,EAKf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CALe,EAMf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CANe,EAOf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAPe,CAAjB;;AAUA,SAASC,QAAT,CAAkB;AAChBC,EAAAA,eADgB;AAEhBC,EAAAA;AAFgB,CAAlB,EAMG;AACD,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAMC,aAAa,GAAGC,KAAK,CAACC,OAAN,CAAwB,MAAM;AAClD,UAAMC,SAAS,GAAG,IAAIC,IAAI,CAACC,cAAT,CAAwBP,MAAxB,EAAgC;AAChDQ,MAAAA,OAAO,EAAE;AADuC,KAAhC,CAAlB;AAGA,WAAOZ,QAAQ,CAACa,GAAT,CAAcC,IAAD,IAAUL,SAAS,CAACM,MAAV,CAAiBD,IAAjB,CAAvB,CAAP;AACD,GALqB,EAKnB,CAACV,MAAD,CALmB,CAAtB;AAOA,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CAACY,MAAM,CAACC,QAAR,EAAkB;AAAEC,MAAAA,eAAe,EAAEb,KAAK,CAACc,MAAN,CAAaC;AAAhC,KAAlB,CADT;AAEE,IAAA,aAAa,EAAE;AAFjB,KAIGd,aAAa,CACXe,MADF,CACS,CAACC,CAAD,EAAIC,QAAJ,KAAiB,4BAAYA,QAAZ,EAAsBpB,eAAtB,CAD1B,EAEEU,GAFF,CAEM,CAACW,OAAD,EAAUC,CAAV,kBACH,oBAAC,gBAAD;AAAS,IAAA,GAAG,EAAG,GAAED,OAAQ,IAAGC,CAAE,EAA9B;AAAiC,IAAA,KAAK,EAAED;AAAxC,IAHH,CAJH,CADF;AAYD;;AACD,MAAMR,MAAM,GAAGU,wBAAWC,MAAX,CAAkB;AAC/BV,EAAAA,QAAQ,EAAE;AACRW,IAAAA,MAAM,EAAE7B,cADA;AAER8B,IAAAA,aAAa,EAAE,KAFP;AAGRC,IAAAA,UAAU,EAAE,QAHJ;AAIRZ,IAAAA,eAAe,EAAE;AAJT;AADqB,CAAlB,CAAf;;4BAQeX,KAAK,CAACwB,IAAN,CAAW7B,QAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport DayName from './DayName'\nimport { useTheme } from 'react-native-paper'\nimport { DisableWeekDaysType, showWeekDay } from './dateUtils'\n\nexport const dayNamesHeight = 44\n\n// TODO: wait for a better Intl api ;-)\nconst weekdays = [\n new Date(2020, 7, 2),\n new Date(2020, 7, 3),\n new Date(2020, 7, 4),\n new Date(2020, 7, 5),\n new Date(2020, 7, 6),\n new Date(2020, 7, 7),\n new Date(2020, 7, 8),\n]\n\nfunction DayNames({\n disableWeekDays,\n locale,\n}: {\n locale: undefined | string\n disableWeekDays?: DisableWeekDaysType\n}) {\n const theme = useTheme()\n const shortDayNames = React.useMemo<string[]>(() => {\n const formatter = new Intl.DateTimeFormat(locale, {\n weekday: 'narrow',\n })\n return weekdays.map((date) => formatter.format(date))\n }, [locale])\n\n return (\n <View\n style={[styles.dayNames, { backgroundColor: theme.colors.surface }]}\n pointerEvents={'none'}\n >\n {shortDayNames\n .filter((_, dayIndex) => showWeekDay(dayIndex, disableWeekDays))\n .map((dayName, i) => (\n <DayName key={`${dayName}_${i}`} label={dayName} />\n ))}\n </View>\n )\n}\nconst styles = StyleSheet.create({\n dayNames: {\n height: dayNamesHeight,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#fff',\n },\n})\nexport default React.memo(DayNames)\n"]}
1
+ {"version":3,"sources":["DayNames.tsx"],"names":["dayNamesHeight","weekdays","Date","DayNames","disableWeekDays","locale","theme","shortDayNames","React","useMemo","formatter","Intl","DateTimeFormat","weekday","map","date","format","styles","dayNames","backgroundColor","colors","surface","filter","_","dayIndex","dayName","i","StyleSheet","create","height","flexDirection","alignItems","memo"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEO,MAAMA,cAAc,GAAG,EAAvB,C,CAEP;;;AACA,MAAMC,QAAQ,GAAG,CACf,IAAIC,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CADe,EAEf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAFe,EAGf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAHe,EAIf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAJe,EAKf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CALe,EAMf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CANe,EAOf,IAAIA,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAPe,CAAjB;;AAUA,SAASC,QAAT,OAMG;AAAA,MANe;AAChBC,IAAAA,eADgB;AAEhBC,IAAAA;AAFgB,GAMf;AACD,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAMC,aAAa,GAAGC,KAAK,CAACC,OAAN,CAAwB,MAAM;AAClD,UAAMC,SAAS,GAAG,IAAIC,IAAI,CAACC,cAAT,CAAwBP,MAAxB,EAAgC;AAChDQ,MAAAA,OAAO,EAAE;AADuC,KAAhC,CAAlB;AAGA,WAAOZ,QAAQ,CAACa,GAAT,CAAcC,IAAD,IAAUL,SAAS,CAACM,MAAV,CAAiBD,IAAjB,CAAvB,CAAP;AACD,GALqB,EAKnB,CAACV,MAAD,CALmB,CAAtB;AAOA,sBACE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CAACY,MAAM,CAACC,QAAR,EAAkB;AAAEC,MAAAA,eAAe,EAAEb,KAAK,CAACc,MAAN,CAAaC;AAAhC,KAAlB,CADT;AAEE,IAAA,aAAa,EAAE;AAFjB,KAIGd,aAAa,CACXe,MADF,CACS,CAACC,CAAD,EAAIC,QAAJ,KAAiB,4BAAYA,QAAZ,EAAsBpB,eAAtB,CAD1B,EAEEU,GAFF,CAEM,CAACW,OAAD,EAAUC,CAAV,kBACH,oBAAC,gBAAD;AAAS,IAAA,GAAG,EAAG,GAAED,OAAQ,IAAGC,CAAE,EAA9B;AAAiC,IAAA,KAAK,EAAED;AAAxC,IAHH,CAJH,CADF;AAYD;;AACD,MAAMR,MAAM,GAAGU,wBAAWC,MAAX,CAAkB;AAC/BV,EAAAA,QAAQ,EAAE;AACRW,IAAAA,MAAM,EAAE7B,cADA;AAER8B,IAAAA,aAAa,EAAE,KAFP;AAGRC,IAAAA,UAAU,EAAE,QAHJ;AAIRZ,IAAAA,eAAe,EAAE;AAJT;AADqB,CAAlB,CAAf;;4BAQeX,KAAK,CAACwB,IAAN,CAAW7B,QAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport DayName from './DayName'\nimport { useTheme } from 'react-native-paper'\nimport { DisableWeekDaysType, showWeekDay } from './dateUtils'\n\nexport const dayNamesHeight = 44\n\n// TODO: wait for a better Intl api ;-)\nconst weekdays = [\n new Date(2020, 7, 2),\n new Date(2020, 7, 3),\n new Date(2020, 7, 4),\n new Date(2020, 7, 5),\n new Date(2020, 7, 6),\n new Date(2020, 7, 7),\n new Date(2020, 7, 8),\n]\n\nfunction DayNames({\n disableWeekDays,\n locale,\n}: {\n locale: undefined | string\n disableWeekDays?: DisableWeekDaysType\n}) {\n const theme = useTheme()\n const shortDayNames = React.useMemo<string[]>(() => {\n const formatter = new Intl.DateTimeFormat(locale, {\n weekday: 'narrow',\n })\n return weekdays.map((date) => formatter.format(date))\n }, [locale])\n\n return (\n <View\n style={[styles.dayNames, { backgroundColor: theme.colors.surface }]}\n pointerEvents={'none'}\n >\n {shortDayNames\n .filter((_, dayIndex) => showWeekDay(dayIndex, disableWeekDays))\n .map((dayName, i) => (\n <DayName key={`${dayName}_${i}`} label={dayName} />\n ))}\n </View>\n )\n}\nconst styles = StyleSheet.create({\n dayNames: {\n height: dayNamesHeight,\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#fff',\n },\n})\nexport default React.memo(DayNames)\n"]}
@@ -11,16 +11,17 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _dateUtils = require("./dateUtils");
13
13
 
14
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
15
 
16
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
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 DayRange({
19
- leftCrop,
20
- rightCrop,
21
- inRange,
22
- selectColor
23
- }) {
18
+ function DayRange(_ref) {
19
+ let {
20
+ leftCrop,
21
+ rightCrop,
22
+ inRange,
23
+ selectColor
24
+ } = _ref;
24
25
  const bothWays = inRange && leftCrop && rightCrop;
25
26
  const isCrop = inRange && (leftCrop || rightCrop) && !(leftCrop && rightCrop);
26
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["DayRange.tsx"],"names":["DayRange","leftCrop","rightCrop","inRange","selectColor","bothWays","isCrop","StyleSheet","absoluteFill","styles","rangeRoot","rangeRootBoth","backgroundColor","flex1","minWidth","daySize","minHeight","leftRadius","rightRadius","create","borderBottomLeftRadius","borderTopLeftRadius","borderBottomRightRadius","borderTopRightRadius","borderRadius","flex","flexDirection","React","memo"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,SAASA,QAAT,CAAkB;AAChBC,EAAAA,QADgB;AAEhBC,EAAAA,SAFgB;AAGhBC,EAAAA,OAHgB;AAIhBC,EAAAA;AAJgB,CAAlB,EAUG;AACD,QAAMC,QAAQ,GAAGF,OAAO,IAAIF,QAAX,IAAuBC,SAAxC;AACA,QAAMI,MAAM,GAAGH,OAAO,KAAKF,QAAQ,IAAIC,SAAjB,CAAP,IAAsC,EAAED,QAAQ,IAAIC,SAAd,CAArD;;AAEA,MAAIC,OAAO,IAAIG,MAAf,EAAuB;AACrB,wBACE,oBAAC,iBAAD;AACE,MAAA,aAAa,EAAC,MADhB;AAEE,MAAA,KAAK,EAAE,CACLC,wBAAWC,YADN,EAELC,MAAM,CAACC,SAFF,EAGLL,QAAQ,IAAII,MAAM,CAACE,aAHd,EAILR,OAAO,IAAI,CAACG,MAAZ,GACI;AACEM,QAAAA,eAAe,EAAER;AADnB,OADJ,GAII,IARC;AAFT,OAaGE,MAAM,iBACL,uDACE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLG,MAAM,CAACI,KADF,EAELX,SAAS,GACL;AACEU,QAAAA,eAAe,EAAER;AADnB,OADK,GAIL,IANC;AADT,MADF,eAWE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACL;AACEQ,QAAAA,eAAe,EAAER,WADnB;AAEEU,QAAAA,QAAQ,EAAEC,kBAFZ;AAGEC,QAAAA,SAAS,EAAED;AAHb,OADK,EAMLd,QAAQ,GAAGQ,MAAM,CAACQ,UAAV,GAAuB,IAN1B,EAOLf,SAAS,GAAGO,MAAM,CAACS,WAAV,GAAwB,IAP5B;AADT,MAXF,eAsBE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLT,MAAM,CAACI,KADF,EAELZ,QAAQ,GACJ;AACEW,QAAAA,eAAe,EAAER;AADnB,OADI,GAIJ,IANC;AADT,MAtBF,CAdJ,CADF;AAmDD;;AACD,SAAO,IAAP;AACD;;AAED,MAAMK,MAAM,GAAGF,wBAAWY,MAAX,CAAkB;AAC/BF,EAAAA,UAAU,EAAE;AACVG,IAAAA,sBAAsB,EAAEL,qBAAU,CADxB;AAEVM,IAAAA,mBAAmB,EAAEN,qBAAU;AAFrB,GADmB;AAK/BG,EAAAA,WAAW,EAAE;AACXI,IAAAA,uBAAuB,EAAEP,qBAAU,CADxB;AAEXQ,IAAAA,oBAAoB,EAAER,qBAAU;AAFrB,GALkB;AAS/BJ,EAAAA,aAAa,EAAE;AACba,IAAAA,YAAY,EAAET,qBAAU;AADX,GATgB;AAY/BF,EAAAA,KAAK,EAAE;AACLY,IAAAA,IAAI,EAAE;AADD,GAZwB;AAe/Bf,EAAAA,SAAS,EAAE;AACTgB,IAAAA,aAAa,EAAE;AADN;AAfoB,CAAlB,CAAf;;4BAoBeC,KAAK,CAACC,IAAN,CAAW5B,QAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { daySize } from './dateUtils'\n\nfunction DayRange({\n leftCrop,\n rightCrop,\n inRange,\n selectColor,\n}: {\n leftCrop: boolean\n rightCrop: boolean\n inRange: boolean\n selectColor: string\n}) {\n const bothWays = inRange && leftCrop && rightCrop\n const isCrop = inRange && (leftCrop || rightCrop) && !(leftCrop && rightCrop)\n\n if (inRange || isCrop) {\n return (\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n styles.rangeRoot,\n bothWays && styles.rangeRootBoth,\n inRange && !isCrop\n ? {\n backgroundColor: selectColor,\n }\n : null,\n ]}\n >\n {isCrop && (\n <>\n <View\n style={[\n styles.flex1,\n rightCrop\n ? {\n backgroundColor: selectColor,\n }\n : null,\n ]}\n />\n <View\n style={[\n {\n backgroundColor: selectColor,\n minWidth: daySize,\n minHeight: daySize,\n },\n leftCrop ? styles.leftRadius : null,\n rightCrop ? styles.rightRadius : null,\n ]}\n />\n <View\n style={[\n styles.flex1,\n leftCrop\n ? {\n backgroundColor: selectColor,\n }\n : null,\n ]}\n />\n </>\n )}\n </View>\n )\n }\n return null\n}\n\nconst styles = StyleSheet.create({\n leftRadius: {\n borderBottomLeftRadius: daySize / 2,\n borderTopLeftRadius: daySize / 2,\n },\n rightRadius: {\n borderBottomRightRadius: daySize / 2,\n borderTopRightRadius: daySize / 2,\n },\n rangeRootBoth: {\n borderRadius: daySize / 2,\n },\n flex1: {\n flex: 1,\n },\n rangeRoot: {\n flexDirection: 'row',\n },\n})\n\nexport default React.memo(DayRange)\n"]}
1
+ {"version":3,"sources":["DayRange.tsx"],"names":["DayRange","leftCrop","rightCrop","inRange","selectColor","bothWays","isCrop","StyleSheet","absoluteFill","styles","rangeRoot","rangeRootBoth","backgroundColor","flex1","minWidth","daySize","minHeight","leftRadius","rightRadius","create","borderBottomLeftRadius","borderTopLeftRadius","borderBottomRightRadius","borderTopRightRadius","borderRadius","flex","flexDirection","React","memo"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,SAASA,QAAT,OAUG;AAAA,MAVe;AAChBC,IAAAA,QADgB;AAEhBC,IAAAA,SAFgB;AAGhBC,IAAAA,OAHgB;AAIhBC,IAAAA;AAJgB,GAUf;AACD,QAAMC,QAAQ,GAAGF,OAAO,IAAIF,QAAX,IAAuBC,SAAxC;AACA,QAAMI,MAAM,GAAGH,OAAO,KAAKF,QAAQ,IAAIC,SAAjB,CAAP,IAAsC,EAAED,QAAQ,IAAIC,SAAd,CAArD;;AAEA,MAAIC,OAAO,IAAIG,MAAf,EAAuB;AACrB,wBACE,oBAAC,iBAAD;AACE,MAAA,aAAa,EAAC,MADhB;AAEE,MAAA,KAAK,EAAE,CACLC,wBAAWC,YADN,EAELC,MAAM,CAACC,SAFF,EAGLL,QAAQ,IAAII,MAAM,CAACE,aAHd,EAILR,OAAO,IAAI,CAACG,MAAZ,GACI;AACEM,QAAAA,eAAe,EAAER;AADnB,OADJ,GAII,IARC;AAFT,OAaGE,MAAM,iBACL,uDACE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLG,MAAM,CAACI,KADF,EAELX,SAAS,GACL;AACEU,QAAAA,eAAe,EAAER;AADnB,OADK,GAIL,IANC;AADT,MADF,eAWE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACL;AACEQ,QAAAA,eAAe,EAAER,WADnB;AAEEU,QAAAA,QAAQ,EAAEC,kBAFZ;AAGEC,QAAAA,SAAS,EAAED;AAHb,OADK,EAMLd,QAAQ,GAAGQ,MAAM,CAACQ,UAAV,GAAuB,IAN1B,EAOLf,SAAS,GAAGO,MAAM,CAACS,WAAV,GAAwB,IAP5B;AADT,MAXF,eAsBE,oBAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACLT,MAAM,CAACI,KADF,EAELZ,QAAQ,GACJ;AACEW,QAAAA,eAAe,EAAER;AADnB,OADI,GAIJ,IANC;AADT,MAtBF,CAdJ,CADF;AAmDD;;AACD,SAAO,IAAP;AACD;;AAED,MAAMK,MAAM,GAAGF,wBAAWY,MAAX,CAAkB;AAC/BF,EAAAA,UAAU,EAAE;AACVG,IAAAA,sBAAsB,EAAEL,qBAAU,CADxB;AAEVM,IAAAA,mBAAmB,EAAEN,qBAAU;AAFrB,GADmB;AAK/BG,EAAAA,WAAW,EAAE;AACXI,IAAAA,uBAAuB,EAAEP,qBAAU,CADxB;AAEXQ,IAAAA,oBAAoB,EAAER,qBAAU;AAFrB,GALkB;AAS/BJ,EAAAA,aAAa,EAAE;AACba,IAAAA,YAAY,EAAET,qBAAU;AADX,GATgB;AAY/BF,EAAAA,KAAK,EAAE;AACLY,IAAAA,IAAI,EAAE;AADD,GAZwB;AAe/Bf,EAAAA,SAAS,EAAE;AACTgB,IAAAA,aAAa,EAAE;AADN;AAfoB,CAAlB,CAAf;;4BAoBeC,KAAK,CAACC,IAAN,CAAW5B,QAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { daySize } from './dateUtils'\n\nfunction DayRange({\n leftCrop,\n rightCrop,\n inRange,\n selectColor,\n}: {\n leftCrop: boolean\n rightCrop: boolean\n inRange: boolean\n selectColor: string\n}) {\n const bothWays = inRange && leftCrop && rightCrop\n const isCrop = inRange && (leftCrop || rightCrop) && !(leftCrop && rightCrop)\n\n if (inRange || isCrop) {\n return (\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n styles.rangeRoot,\n bothWays && styles.rangeRootBoth,\n inRange && !isCrop\n ? {\n backgroundColor: selectColor,\n }\n : null,\n ]}\n >\n {isCrop && (\n <>\n <View\n style={[\n styles.flex1,\n rightCrop\n ? {\n backgroundColor: selectColor,\n }\n : null,\n ]}\n />\n <View\n style={[\n {\n backgroundColor: selectColor,\n minWidth: daySize,\n minHeight: daySize,\n },\n leftCrop ? styles.leftRadius : null,\n rightCrop ? styles.rightRadius : null,\n ]}\n />\n <View\n style={[\n styles.flex1,\n leftCrop\n ? {\n backgroundColor: selectColor,\n }\n : null,\n ]}\n />\n </>\n )}\n </View>\n )\n }\n return null\n}\n\nconst styles = StyleSheet.create({\n leftRadius: {\n borderBottomLeftRadius: daySize / 2,\n borderTopLeftRadius: daySize / 2,\n },\n rightRadius: {\n borderBottomRightRadius: daySize / 2,\n borderTopRightRadius: daySize / 2,\n },\n rangeRootBoth: {\n borderRadius: daySize / 2,\n },\n flex1: {\n flex: 1,\n },\n rangeRoot: {\n flexDirection: 'row',\n },\n})\n\nexport default React.memo(DayRange)\n"]}
@@ -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
 
@@ -26,9 +27,9 @@ var _DayNames = require("./DayNames");
26
27
 
27
28
  var _utils = require("../utils");
28
29
 
29
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
31
 
31
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
32
+ 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; }
32
33
 
33
34
  function Month(props) {
34
35
  const {
@@ -53,8 +54,10 @@ function Month(props) {
53
54
  const textColorOnPrimary = (0, _utils.useTextColorOnPrimary)();
54
55
  const realIndex = (0, _dateUtils.getRealIndex)(index);
55
56
  const isHorizontal = scrollMode === 'horizontal';
56
- const validRangeStart = (validRange === null || validRange === void 0 ? void 0 : validRange.startDate) instanceof Date ? (0, _dateUtils.dateToUnix)(new Date(validRange === null || validRange === void 0 ? void 0 : validRange.startDate.getFullYear(), validRange === null || validRange === void 0 ? void 0 : validRange.startDate.getMonth(), validRange === null || validRange === void 0 ? void 0 : validRange.startDate.getDate(), 0, 0, 0)) : undefined;
57
- const validRangeEnd = (validRange === null || validRange === void 0 ? void 0 : validRange.endDate) instanceof Date ? (0, _dateUtils.dateToUnix)(new Date(validRange === null || validRange === void 0 ? void 0 : validRange.endDate.getFullYear(), validRange === null || validRange === void 0 ? void 0 : validRange.endDate.getMonth(), validRange === null || validRange === void 0 ? void 0 : validRange.endDate.getDate(), 23, 59, 59)) : undefined;
57
+ const {
58
+ isDisabled,
59
+ isWithinValidRange
60
+ } = (0, _dateUtils.useRangeChecker)(validRange);
58
61
  const {
59
62
  monthName,
60
63
  month,
@@ -83,10 +86,11 @@ function Month(props) {
83
86
  month
84
87
  });
85
88
  const emptyDays = dayOfWeek;
86
- return monthGrid(index).map(({
87
- days,
88
- weekGrid
89
- }) => {
89
+ return monthGrid(index).map(_ref => {
90
+ let {
91
+ days,
92
+ weekGrid
93
+ } = _ref;
90
94
  return {
91
95
  weekIndex: weekGrid,
92
96
  generatedDays: days.map((_, dayIndex) => {
@@ -98,7 +102,7 @@ function Month(props) {
98
102
  const day = new Date(year, month, dayOfMonth);
99
103
  const isToday = (0, _dateUtils.areDatesOnSameDay)(day, today);
100
104
  let inRange = false;
101
- let disabled = false;
105
+ let disabled = isDisabled(day);
102
106
  let selected = false;
103
107
  let leftCrop = dayOfMonth === 1;
104
108
  let rightCrop = dayOfMonth === daysInMonth;
@@ -167,19 +171,14 @@ function Month(props) {
167
171
  if (inRange && !leftCrop && !rightCrop) {
168
172
  selected = false;
169
173
  }
170
- } //
171
-
174
+ }
172
175
  } else if (mode === 'single') {
173
176
  selected = (0, _dateUtils.areDatesOnSameDay)(day, date);
174
- } //
175
-
177
+ }
176
178
 
177
- const isWithinOptionalValidRange = (0, _dateUtils.isDateWithinOptionalRange)(day, {
178
- startUnix: validRangeStart,
179
- endUnix: validRangeEnd
180
- });
179
+ const isWithinOptionalValidRange = isWithinValidRange(day);
181
180
 
182
- if (inRange) {
181
+ if (inRange && !disabled) {
183
182
  disabled = false;
184
183
  }
185
184
 
@@ -205,7 +204,7 @@ function Month(props) {
205
204
  })
206
205
  };
207
206
  });
208
- }, [year, month, index, startDate, endDate, date, dates, validRangeStart, validRangeEnd, mode]);
207
+ }, [year, month, index, isDisabled, mode, isWithinValidRange, startDate, endDate, dates, date]);
209
208
  return /*#__PURE__*/React.createElement(_reactNative.View, {
210
209
  style: [styles.month, {
211
210
  height: getMonthHeight(scrollMode, index)
@@ -218,9 +217,14 @@ function Month(props) {
218
217
  }, /*#__PURE__*/React.createElement(_reactNativePaper.TouchableRipple, {
219
218
  disabled: !isHorizontal,
220
219
  onPress: isHorizontal ? () => onPressYear(year) : undefined,
220
+ accessibilityRole: "button",
221
+ accessibilityLabel: `${monthName} ${year}`,
221
222
  style: [styles.yearButton, {
222
223
  borderRadius: roundness
223
- }]
224
+ }] // RN types bug
225
+ ,
226
+ hasTVPreferredFocus: undefined,
227
+ tvParallaxProperties: undefined
224
228
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
225
229
  style: [styles.yearButtonInner, {
226
230
  borderRadius: roundness
@@ -232,32 +236,38 @@ function Month(props) {
232
236
  style: isHorizontal ? styles.opacity1 : styles.opacity0
233
237
  }, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
234
238
  onPress: isHorizontal ? () => onPressYear(year) : undefined,
235
- icon: selectingYear ? 'chevron-up' : 'chevron-down'
236
- }))))), grid.map(({
237
- weekIndex,
238
- generatedDays
239
- }) => /*#__PURE__*/React.createElement(_reactNative.View, {
240
- style: styles.week,
241
- key: weekIndex
242
- }, generatedDays.filter(gd => (0, _dateUtils.showWeekDay)(gd.dayIndex, disableWeekDays)).map(gd => gd.beforeWeekDay || gd.afterWeekDay ? /*#__PURE__*/React.createElement(_Day.EmptyDay, {
243
- key: gd.dayIndex
244
- }) : /*#__PURE__*/React.createElement(_Day.default, {
245
- key: gd.dayIndex,
246
- theme: theme,
247
- day: gd.dayOfMonth,
248
- month: gd.month,
249
- year: gd.year,
250
- selected: gd.selected,
251
- inRange: gd.inRange,
252
- leftCrop: gd.leftCrop,
253
- rightCrop: gd.rightCrop,
254
- onPressDate: onPressDate,
255
- isToday: gd.isToday,
256
- selectColor: selectColor,
257
- primaryColor: primaryColor,
258
- disabled: gd.disabled,
259
- textColorOnPrimary: textColorOnPrimary
260
- })))));
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
+ }));
261
271
  }
262
272
 
263
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","validRangeStart","Date","getFullYear","getMonth","getDate","undefined","validRangeEnd","monthName","month","year","React","useMemo","md","y","m","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","startUnix","endUnix","styles","height","getMonthHeight","monthHeader","marginTop","monthHeaderSingleMarginTop","marginBottom","monthHeaderSingleMarginBottom","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 isDateWithinOptionalRange,\n dateToUnix,\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\n const validRangeStart =\n validRange?.startDate instanceof Date\n ? dateToUnix(\n new Date(\n validRange?.startDate.getFullYear(),\n validRange?.startDate.getMonth(),\n validRange?.startDate.getDate(),\n 0,\n 0,\n 0\n )\n )\n : undefined\n\n const validRangeEnd =\n validRange?.endDate instanceof Date\n ? dateToUnix(\n new Date(\n validRange?.endDate.getFullYear(),\n validRange?.endDate.getMonth(),\n validRange?.endDate.getDate(),\n 23,\n 59,\n 59\n )\n )\n : undefined\n\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 = false\n let selected = false\n let leftCrop = dayOfMonth === 1\n let rightCrop = dayOfMonth === daysInMonth\n\n const isFirstDayOfMonth = dayOfMonth === 1\n const isLastDayOfMonth = dayOfMonth === daysInMonth\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\n //\n } else if (mode === 'single') {\n selected = areDatesOnSameDay(day, date)\n }\n //\n const isWithinOptionalValidRange = isDateWithinOptionalRange(day, {\n startUnix: validRangeStart,\n endUnix: validRangeEnd,\n })\n\n if (inRange) {\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 startDate,\n endDate,\n date,\n dates,\n validRangeStart,\n validRangeEnd,\n mode,\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
 
@@ -22,18 +22,19 @@ var _AutoSizer = _interopRequireDefault(require("./AutoSizer"));
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
25
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
26
 
27
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
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"]}