react-native-paper-dates 0.5.1 → 0.6.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 (169) hide show
  1. package/README.md +8 -3
  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 +17 -10
  11. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  12. package/lib/commonjs/Date/DatePickerInput.js +28 -21
  13. package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
  14. package/lib/commonjs/Date/DatePickerModalContentHeader.js +30 -24
  15. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  16. package/lib/commonjs/Date/DatePickerModalHeader.js +4 -1
  17. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  18. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +4 -3
  19. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  20. package/lib/commonjs/Date/DateRangeInput.js +13 -8
  21. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  22. package/lib/commonjs/Date/Day.js +4 -1
  23. package/lib/commonjs/Date/Day.js.map +1 -1
  24. package/lib/commonjs/Date/DayName.js +4 -3
  25. package/lib/commonjs/Date/DayName.js.map +1 -1
  26. package/lib/commonjs/Date/DayNames.js +5 -4
  27. package/lib/commonjs/Date/DayNames.js.map +1 -1
  28. package/lib/commonjs/Date/DayRange.js +7 -6
  29. package/lib/commonjs/Date/DayRange.js.map +1 -1
  30. package/lib/commonjs/Date/Month.js +45 -34
  31. package/lib/commonjs/Date/Month.js.map +1 -1
  32. package/lib/commonjs/Date/Swiper.js +33 -27
  33. package/lib/commonjs/Date/Swiper.js.map +1 -1
  34. package/lib/commonjs/Date/Swiper.native.js +27 -21
  35. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  36. package/lib/commonjs/Date/SwiperUtils.js +5 -4
  37. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  38. package/lib/commonjs/Date/YearPicker.js +26 -18
  39. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  40. package/lib/commonjs/Date/dateUtils.js +49 -37
  41. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  42. package/lib/commonjs/Date/inputUtils.js +8 -7
  43. package/lib/commonjs/Date/inputUtils.js.map +1 -1
  44. package/lib/commonjs/TextInputMask.js +7 -6
  45. package/lib/commonjs/TextInputMask.js.map +1 -1
  46. package/lib/commonjs/Time/AmPmSwitcher.js +12 -10
  47. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  48. package/lib/commonjs/Time/AnalogClock.js +8 -7
  49. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  50. package/lib/commonjs/Time/AnalogClockHours.js +5 -4
  51. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  52. package/lib/commonjs/Time/AnalogClockMinutes.js +5 -4
  53. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  54. package/lib/commonjs/Time/AnimatedClockSwitcher.js +6 -5
  55. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  56. package/lib/commonjs/Time/TimeInput.js +14 -10
  57. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  58. package/lib/commonjs/Time/TimeInputs.js +10 -9
  59. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  60. package/lib/commonjs/Time/TimePicker.js +10 -9
  61. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  62. package/lib/commonjs/Time/TimePickerModal.js +17 -13
  63. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  64. package/lib/commonjs/Time/timeUtils.js +7 -6
  65. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  66. package/lib/commonjs/index.js +29 -11
  67. package/lib/commonjs/index.js.map +1 -1
  68. package/lib/commonjs/translations/enGB.js +20 -0
  69. package/lib/commonjs/translations/enGB.js.map +1 -0
  70. package/lib/commonjs/translations/pl.js +20 -0
  71. package/lib/commonjs/translations/pl.js.map +1 -0
  72. package/lib/commonjs/utils.js +4 -4
  73. package/lib/module/Date/AnimatedCrossView.js +7 -6
  74. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  75. package/lib/module/Date/AutoSizer.js +4 -3
  76. package/lib/module/Date/AutoSizer.js.map +1 -1
  77. package/lib/module/Date/Calendar.js +37 -31
  78. package/lib/module/Date/Calendar.js.map +1 -1
  79. package/lib/module/Date/CalendarEdit.js +18 -14
  80. package/lib/module/Date/CalendarEdit.js.map +1 -1
  81. package/lib/module/Date/CalendarHeader.js +16 -9
  82. package/lib/module/Date/CalendarHeader.js.map +1 -1
  83. package/lib/module/Date/DatePickerInput.js +28 -21
  84. package/lib/module/Date/DatePickerInput.js.map +1 -1
  85. package/lib/module/Date/DatePickerModalContentHeader.js +28 -22
  86. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  87. package/lib/module/Date/DatePickerModalHeader.js +4 -1
  88. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  89. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  90. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  91. package/lib/module/Date/DateRangeInput.js +13 -8
  92. package/lib/module/Date/DateRangeInput.js.map +1 -1
  93. package/lib/module/Date/Day.js +4 -1
  94. package/lib/module/Date/Day.js.map +1 -1
  95. package/lib/module/Date/DayName.js +4 -3
  96. package/lib/module/Date/DayName.js.map +1 -1
  97. package/lib/module/Date/DayNames.js +5 -4
  98. package/lib/module/Date/DayNames.js.map +1 -1
  99. package/lib/module/Date/DayRange.js +7 -6
  100. package/lib/module/Date/DayRange.js.map +1 -1
  101. package/lib/module/Date/Month.js +41 -31
  102. package/lib/module/Date/Month.js.map +1 -1
  103. package/lib/module/Date/Swiper.js +32 -26
  104. package/lib/module/Date/Swiper.js.map +1 -1
  105. package/lib/module/Date/Swiper.native.js +27 -21
  106. package/lib/module/Date/Swiper.native.js.map +1 -1
  107. package/lib/module/Date/SwiperUtils.js +5 -4
  108. package/lib/module/Date/SwiperUtils.js.map +1 -1
  109. package/lib/module/Date/YearPicker.js +26 -18
  110. package/lib/module/Date/YearPicker.js.map +1 -1
  111. package/lib/module/Date/dateUtils.js +33 -25
  112. package/lib/module/Date/dateUtils.js.map +1 -1
  113. package/lib/module/Date/inputUtils.js +8 -7
  114. package/lib/module/Date/inputUtils.js.map +1 -1
  115. package/lib/module/TextInputMask.js +7 -6
  116. package/lib/module/TextInputMask.js.map +1 -1
  117. package/lib/module/Time/AmPmSwitcher.js +12 -10
  118. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  119. package/lib/module/Time/AnalogClock.js +8 -7
  120. package/lib/module/Time/AnalogClock.js.map +1 -1
  121. package/lib/module/Time/AnalogClockHours.js +5 -4
  122. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  123. package/lib/module/Time/AnalogClockMinutes.js +5 -4
  124. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  125. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  126. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  127. package/lib/module/Time/TimeInput.js +14 -10
  128. package/lib/module/Time/TimeInput.js.map +1 -1
  129. package/lib/module/Time/TimeInputs.js +10 -9
  130. package/lib/module/Time/TimeInputs.js.map +1 -1
  131. package/lib/module/Time/TimePicker.js +10 -9
  132. package/lib/module/Time/TimePicker.js.map +1 -1
  133. package/lib/module/Time/TimePickerModal.js +17 -13
  134. package/lib/module/Time/TimePickerModal.js.map +1 -1
  135. package/lib/module/index.js +2 -0
  136. package/lib/module/index.js.map +1 -1
  137. package/lib/module/translations/enGB.js +13 -0
  138. package/lib/module/translations/enGB.js.map +1 -0
  139. package/lib/module/translations/pl.js +13 -0
  140. package/lib/module/translations/pl.js.map +1 -0
  141. package/lib/typescript/Date/DatePickerInput.d.ts +4 -4
  142. package/lib/typescript/TextInputMask.d.ts +3 -3
  143. package/lib/typescript/Time/AmPmSwitcher.d.ts +1 -1
  144. package/lib/typescript/Time/AnalogClock.d.ts +1 -1
  145. package/lib/typescript/Time/TimeInputs.d.ts +1 -1
  146. package/lib/typescript/Time/TimePickerModal.d.ts +1 -1
  147. package/lib/typescript/index.d.ts +2 -0
  148. package/lib/typescript/translations/enGB.d.ts +3 -0
  149. package/lib/typescript/translations/pl.d.ts +3 -0
  150. package/package.json +19 -17
  151. package/src/Date/CalendarEdit.tsx +3 -0
  152. package/src/Date/CalendarHeader.tsx +14 -2
  153. package/src/Date/DatePickerInput.tsx +3 -0
  154. package/src/Date/DatePickerModalContentHeader.tsx +3 -0
  155. package/src/Date/DatePickerModalHeader.tsx +3 -0
  156. package/src/Date/DateRangeInput.tsx +7 -1
  157. package/src/Date/Day.tsx +3 -0
  158. package/src/Date/Month.tsx +6 -0
  159. package/src/Date/Swiper.tsx +1 -0
  160. package/src/Date/YearPicker.tsx +4 -1
  161. package/src/Time/AmPmSwitcher.tsx +1 -1
  162. package/src/Time/AnalogClock.tsx +1 -5
  163. package/src/Time/AnalogClockMinutes.tsx +4 -1
  164. package/src/Time/TimeInput.tsx +3 -0
  165. package/src/Time/TimeInputs.tsx +1 -5
  166. package/src/Time/TimePickerModal.tsx +4 -1
  167. package/src/index.tsx +2 -0
  168. package/src/translations/enGB.ts +15 -0
  169. package/src/translations/pl.ts +15 -0
@@ -6,14 +6,15 @@ import { useLatest } from '../utils';
6
6
  import { useYearChange } from './SwiperUtils';
7
7
  import AutoSizer from './AutoSizer';
8
8
 
9
- function Swiper({
10
- scrollMode,
11
- renderItem,
12
- renderHeader,
13
- renderFooter,
14
- selectedYear,
15
- initialIndex
16
- }) {
9
+ function Swiper(_ref) {
10
+ let {
11
+ scrollMode,
12
+ renderItem,
13
+ renderHeader,
14
+ renderFooter,
15
+ selectedYear,
16
+ initialIndex
17
+ } = _ref;
17
18
  const isHorizontal = scrollMode === 'horizontal';
18
19
  const [index, setIndex] = React.useState(initialIndex);
19
20
  const onPrev = React.useCallback(() => {
@@ -42,29 +43,34 @@ function Swiper({
42
43
  index,
43
44
  onPrev,
44
45
  onNext
45
- })) : /*#__PURE__*/React.createElement(AutoSizer, null, ({
46
- width,
47
- height
48
- }) => /*#__PURE__*/React.createElement(VerticalScroller, {
49
- width: width,
50
- height: height,
51
- initialIndex: initialIndex,
52
- estimatedHeight: estimatedMonthHeight,
53
- renderItem: renderItem
54
- })), renderFooter && renderFooter(renderProps));
46
+ })) : /*#__PURE__*/React.createElement(AutoSizer, null, _ref2 => {
47
+ let {
48
+ width,
49
+ height
50
+ } = _ref2;
51
+ return /*#__PURE__*/React.createElement(VerticalScroller, {
52
+ width: width,
53
+ height: height,
54
+ initialIndex: initialIndex,
55
+ estimatedHeight: estimatedMonthHeight,
56
+ renderItem: renderItem
57
+ });
58
+ }), renderFooter && renderFooter(renderProps));
55
59
  }
56
60
 
57
61
  const visibleArray = i => [i - 2, i - 1, i, i + 1, i + 2];
58
62
 
59
- function VerticalScroller({
60
- width,
61
- height,
62
- initialIndex,
63
- estimatedHeight,
64
- renderItem
65
- }) {
63
+ function VerticalScroller(_ref3) {
64
+ let {
65
+ width,
66
+ height,
67
+ initialIndex,
68
+ estimatedHeight,
69
+ renderItem
70
+ } = _ref3;
66
71
  const idx = React.useRef(initialIndex);
67
- const [visibleIndexes, setVisibleIndexes] = React.useState(visibleArray(initialIndex));
72
+ const [visibleIndexes, setVisibleIndexes] = React.useState(visibleArray(initialIndex)); // eslint-disable-next-line no-undef
73
+
68
74
  const parentRef = React.useRef(null);
69
75
  useIsomorphicLayoutEffect(() => {
70
76
  const element = parentRef.current;
@@ -1 +1 @@
1
- {"version":3,"sources":["Swiper.tsx"],"names":["React","StyleSheet","View","getIndexFromVerticalOffset","getMonthHeight","getVerticalMonthsOffset","montHeaderHeight","beginOffset","estimatedMonthHeight","totalMonths","useLatest","useYearChange","AutoSizer","Swiper","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","isHorizontal","index","setIndex","useState","onPrev","useCallback","prev","onNext","renderProps","indexRef","newIndex","currentIndexRef","styles","flex1","width","height","visibleArray","i","VerticalScroller","estimatedHeight","idx","useRef","visibleIndexes","setVisibleIndexes","parentRef","useIsomorphicLayoutEffect","element","current","top","scrollTo","setVisibleIndexesThrottled","useDebouncedCallback","onScroll","e","currentTarget","scrollTop","offset","overflow","position","map","vi","willChange","transform","left","right","empty","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":["React","StyleSheet","View","getIndexFromVerticalOffset","getMonthHeight","getVerticalMonthsOffset","montHeaderHeight","beginOffset","estimatedMonthHeight","totalMonths","useLatest","useYearChange","AutoSizer","Swiper","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","isHorizontal","index","setIndex","useState","onPrev","useCallback","prev","onNext","renderProps","indexRef","newIndex","currentIndexRef","styles","flex1","width","height","visibleArray","i","VerticalScroller","estimatedHeight","idx","useRef","visibleIndexes","setVisibleIndexes","parentRef","useIsomorphicLayoutEffect","element","current","top","scrollTo","setVisibleIndexesThrottled","useDebouncedCallback","onScroll","e","currentTarget","scrollTop","offset","overflow","position","map","vi","willChange","transform","left","right","empty","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"]}
@@ -15,10 +15,12 @@ const styles = StyleSheet.create({
15
15
  }
16
16
  });
17
17
 
18
- function getVisibleArray(i, {
19
- isHorizontal,
20
- height
21
- }) {
18
+ function getVisibleArray(i, _ref) {
19
+ let {
20
+ isHorizontal,
21
+ height
22
+ } = _ref;
23
+
22
24
  if (isHorizontal || height < 700) {
23
25
  return [i - 1, i, i + 1];
24
26
  }
@@ -27,25 +29,29 @@ function getVisibleArray(i, {
27
29
  }
28
30
 
29
31
  function Swiper(props) {
30
- return /*#__PURE__*/React.createElement(AutoSizer, null, ({
31
- width,
32
- height
33
- }) => /*#__PURE__*/React.createElement(SwiperInner, _extends({}, props, {
34
- width: width,
35
- height: height
36
- })));
32
+ return /*#__PURE__*/React.createElement(AutoSizer, null, _ref2 => {
33
+ let {
34
+ width,
35
+ height
36
+ } = _ref2;
37
+ return /*#__PURE__*/React.createElement(SwiperInner, _extends({}, props, {
38
+ width: width,
39
+ height: height
40
+ }));
41
+ });
37
42
  }
38
43
 
39
- function SwiperInner({
40
- scrollMode,
41
- renderItem,
42
- renderHeader,
43
- renderFooter,
44
- selectedYear,
45
- initialIndex,
46
- width,
47
- height
48
- }) {
44
+ function SwiperInner(_ref3) {
45
+ let {
46
+ scrollMode,
47
+ renderItem,
48
+ renderHeader,
49
+ renderFooter,
50
+ selectedYear,
51
+ initialIndex,
52
+ width,
53
+ height
54
+ } = _ref3;
49
55
  const idx = React.useRef(initialIndex);
50
56
  const isHorizontal = scrollMode === 'horizontal';
51
57
  const [visibleIndexes, setVisibleIndexes] = React.useState(getVisibleArray(initialIndex, {
@@ -1 +1 @@
1
- {"version":3,"sources":["Swiper.native.tsx"],"names":["React","ScrollView","StyleSheet","View","getHorizontalMonthOffset","getIndexFromVerticalOffset","getMonthHeight","getVerticalMonthsOffset","montHeaderHeight","useYearChange","beginOffset","estimatedMonthHeight","totalMonths","AutoSizer","styles","create","viewPager","flex","inner","position","getVisibleArray","i","isHorizontal","height","Swiper","props","width","SwiperInner","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","idx","useRef","visibleIndexes","setVisibleIndexes","useState","parentRef","scrollTo","useCallback","index","animated","current","offset","y","x","onPrev","onNext","scrollToInitial","onMomentumScrollEnd","e","contentOffset","nativeEvent","viewSize","layoutMeasurement","newIndex","Math","floor","renderProps","currentIndexRef","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":["React","ScrollView","StyleSheet","View","getHorizontalMonthOffset","getIndexFromVerticalOffset","getMonthHeight","getVerticalMonthsOffset","montHeaderHeight","useYearChange","beginOffset","estimatedMonthHeight","totalMonths","AutoSizer","styles","create","viewPager","flex","inner","position","getVisibleArray","i","isHorizontal","height","Swiper","props","width","SwiperInner","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","idx","useRef","visibleIndexes","setVisibleIndexes","useState","parentRef","scrollTo","useCallback","index","animated","current","offset","y","x","onPrev","onNext","scrollToInitial","onMomentumScrollEnd","e","contentOffset","nativeEvent","viewSize","layoutMeasurement","newIndex","Math","floor","renderProps","currentIndexRef","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,10 +1,11 @@
1
1
  import { useLatest } from '../utils';
2
2
  import * as React from 'react';
3
3
  import { addMonths, differenceInMonths, getRealIndex, startAtIndex } from './dateUtils';
4
- export function useYearChange(onChange, {
5
- selectedYear,
6
- currentIndexRef
7
- }) {
4
+ export function useYearChange(onChange, _ref) {
5
+ let {
6
+ selectedYear,
7
+ currentIndexRef
8
+ } = _ref;
8
9
  const onChangeRef = useLatest(onChange);
9
10
  React.useEffect(() => {
10
11
  if (selectedYear) {
@@ -1 +1 @@
1
- {"version":3,"sources":["SwiperUtils.ts"],"names":["useLatest","React","addMonths","differenceInMonths","getRealIndex","startAtIndex","useYearChange","onChange","selectedYear","currentIndexRef","onChangeRef","useEffect","currentIndex","current","currentDate","Date","setFullYear","today","months","newIndex"],"mappings":"AACA,SAASA,SAAT,QAA0B,UAA1B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,SADF,EAEEC,kBAFF,EAGEC,YAHF,EAIEC,YAJF,QAKO,aALP;AAsBA,OAAO,SAASC,aAAT,CACLC,QADK,EAEL;AACEC,EAAAA,YADF;AAEEC,EAAAA;AAFF,CAFK,EASL;AACA,QAAMC,WAAW,GAAGV,SAAS,CAACO,QAAD,CAA7B;AACAN,EAAAA,KAAK,CAACU,SAAN,CAAgB,MAAM;AACpB,QAAIH,YAAJ,EAAkB;AAChB,YAAMI,YAAY,GAAGH,eAAe,CAACI,OAAhB,IAA2B,CAAhD;AACA,YAAMC,WAAW,GAAGZ,SAAS,CAAC,IAAIa,IAAJ,EAAD,EAAaX,YAAY,CAACQ,YAAD,CAAzB,CAA7B;AACAE,MAAAA,WAAW,CAACE,WAAZ,CAAwBR,YAAxB;AAEA,YAAMS,KAAK,GAAG,IAAIF,IAAJ,EAAd;AACA,YAAMG,MAAM,GAAGf,kBAAkB,CAACc,KAAD,EAAQH,WAAR,CAAjC;AAEA,YAAMK,QAAQ,GAAGd,YAAY,GAAGa,MAAhC;;AACA,UAAIN,YAAY,KAAKO,QAArB,EAA+B;AAC7BT,QAAAA,WAAW,CAACG,OAAZ,CAAoBM,QAApB;AACD;AACF;AACF,GAdD,EAcG,CAACV,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":["useLatest","React","addMonths","differenceInMonths","getRealIndex","startAtIndex","useYearChange","onChange","selectedYear","currentIndexRef","onChangeRef","useEffect","currentIndex","current","currentDate","Date","setFullYear","today","months","newIndex"],"mappings":"AACA,SAASA,SAAT,QAA0B,UAA1B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,SACEC,SADF,EAEEC,kBAFF,EAGEC,YAHF,EAIEC,YAJF,QAKO,aALP;AAsBA,OAAO,SAASC,aAAT,CACLC,QADK,QASL;AAAA,MAPA;AACEC,IAAAA,YADF;AAEEC,IAAAA;AAFF,GAOA;AACA,QAAMC,WAAW,GAAGV,SAAS,CAACO,QAAD,CAA7B;AACAN,EAAAA,KAAK,CAACU,SAAN,CAAgB,MAAM;AACpB,QAAIH,YAAJ,EAAkB;AAChB,YAAMI,YAAY,GAAGH,eAAe,CAACI,OAAhB,IAA2B,CAAhD;AACA,YAAMC,WAAW,GAAGZ,SAAS,CAAC,IAAIa,IAAJ,EAAD,EAAaX,YAAY,CAACQ,YAAD,CAAzB,CAA7B;AACAE,MAAAA,WAAW,CAACE,WAAZ,CAAwBR,YAAxB;AAEA,YAAMS,KAAK,GAAG,IAAIF,IAAJ,EAAd;AACA,YAAMG,MAAM,GAAGf,kBAAkB,CAACc,KAAD,EAAQH,WAAR,CAAjC;AAEA,YAAMK,QAAQ,GAAGd,YAAY,GAAGa,MAAhC;;AACA,UAAIN,YAAY,KAAKO,QAArB,EAA+B;AAC7BT,QAAAA,WAAW,CAACG,OAAZ,CAAoBM,QAApB;AACD;AACF;AACF,GAdD,EAcG,CAACV,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"]}
@@ -6,11 +6,12 @@ const ITEM_HEIGHT = 62;
6
6
  const startYear = 1800;
7
7
  const endYear = 2200;
8
8
  const years = range(startYear, endYear);
9
- export default function YearPicker({
10
- selectedYear,
11
- selectingYear,
12
- onPressYear
13
- }) {
9
+ export default function YearPicker(_ref) {
10
+ let {
11
+ selectedYear,
12
+ selectingYear,
13
+ onPressYear
14
+ } = _ref;
14
15
  const theme = useTheme();
15
16
  const flatList = React.useRef(null); // scroll to selected year
16
17
 
@@ -32,29 +33,36 @@ export default function YearPicker({
32
33
  ref: flatList,
33
34
  style: styles.list,
34
35
  data: years,
35
- renderItem: ({
36
- item
37
- }) => /*#__PURE__*/React.createElement(Year, {
38
- year: item,
39
- selected: selectedYear === item,
40
- onPressYear: onPressYear
41
- }),
36
+ renderItem: _ref2 => {
37
+ let {
38
+ item
39
+ } = _ref2;
40
+ return /*#__PURE__*/React.createElement(Year, {
41
+ year: item,
42
+ selected: selectedYear === item,
43
+ onPressYear: onPressYear
44
+ });
45
+ },
42
46
  keyExtractor: item => `${item}`,
43
47
  numColumns: 3
44
48
  }));
45
49
  }
46
50
 
47
- function YearPure({
48
- year,
49
- selected,
50
- onPressYear
51
- }) {
51
+ function YearPure(_ref3) {
52
+ let {
53
+ year,
54
+ selected,
55
+ onPressYear
56
+ } = _ref3;
52
57
  const theme = useTheme();
53
58
  return /*#__PURE__*/React.createElement(View, {
54
59
  style: styles.year
55
60
  }, /*#__PURE__*/React.createElement(TouchableRipple, {
56
61
  onPress: () => onPressYear(year),
57
- style: styles.yearButton
62
+ style: styles.yearButton // RN types bug
63
+ ,
64
+ hasTVPreferredFocus: undefined,
65
+ tvParallaxProperties: undefined
58
66
  }, /*#__PURE__*/React.createElement(View, {
59
67
  style: [styles.yearInner, selected ? {
60
68
  backgroundColor: theme.colors.primary
@@ -1 +1 @@
1
- {"version":3,"sources":["YearPicker.tsx"],"names":["React","FlatList","StyleSheet","View","Text","TouchableRipple","useTheme","range","ITEM_HEIGHT","startYear","endYear","years","YearPicker","selectedYear","selectingYear","onPressYear","theme","flatList","useRef","useEffect","current","indexToGo","scrollToOffset","offset","animated","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","yearButton","yearInner","primary","yearLabel","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","color","borderRadius","overflow","alignItems","fontSize","opacity"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { Text, TouchableRipple, useTheme } from 'react-native-paper'\nimport { range } from '../utils'\n\nconst ITEM_HEIGHT = 62\n\nconst startYear = 1800\nconst endYear = 2200\nconst years = range(startYear, endYear)\n\nexport default function YearPicker({\n selectedYear,\n selectingYear,\n onPressYear,\n}: {\n selectedYear: number | undefined\n selectingYear: boolean\n onPressYear: (year: number) => any\n}) {\n const theme = useTheme()\n const flatList = React.useRef<FlatList<number> | null>(null)\n\n // scroll to selected year\n React.useEffect(() => {\n if (flatList.current && selectedYear) {\n const indexToGo = selectedYear - startYear\n flatList.current.scrollToOffset({\n offset: (indexToGo / 3) * ITEM_HEIGHT - ITEM_HEIGHT,\n animated: false,\n })\n }\n }, [flatList, selectedYear])\n\n return (\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.root,\n { backgroundColor: theme.colors.surface },\n selectingYear ? styles.opacity1 : styles.opacity0,\n ]}\n pointerEvents={selectingYear ? 'auto' : 'none'}\n >\n <FlatList<number>\n ref={flatList}\n style={styles.list}\n data={years}\n renderItem={({ item }) => (\n <Year\n year={item}\n selected={selectedYear === item}\n onPressYear={onPressYear}\n />\n )}\n keyExtractor={(item) => `${item}`}\n numColumns={3}\n />\n </View>\n )\n}\n\nfunction YearPure({\n year,\n selected,\n onPressYear,\n}: {\n year: number\n selected: boolean\n onPressYear: (year: number) => any\n}) {\n const theme = useTheme()\n return (\n <View style={styles.year}>\n <TouchableRipple\n onPress={() => onPressYear(year)}\n style={styles.yearButton}\n >\n <View\n style={[\n styles.yearInner,\n selected ? { backgroundColor: theme.colors.primary } : null,\n ]}\n >\n <Text\n style={[styles.yearLabel, selected ? styles.selectedYear : null]}\n selectable={false}\n >\n {year}\n </Text>\n </View>\n </TouchableRipple>\n </View>\n )\n}\nconst Year = React.memo(YearPure)\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n top: 56,\n zIndex: 100,\n },\n\n list: {\n flex: 1,\n },\n year: {\n flex: 1,\n marginLeft: 16,\n marginRight: 16,\n height: ITEM_HEIGHT,\n justifyContent: 'center',\n },\n selectedYear: { color: '#fff' },\n yearButton: {\n borderRadius: 46 / 2,\n overflow: 'hidden',\n },\n yearInner: {\n borderRadius: 46 / 2,\n height: 46,\n alignItems: 'center',\n justifyContent: 'center',\n },\n yearLabel: {\n fontSize: 16,\n },\n opacity0: {\n opacity: 0,\n },\n opacity1: {\n opacity: 1,\n },\n})\n"]}
1
+ {"version":3,"sources":["YearPicker.tsx"],"names":["React","FlatList","StyleSheet","View","Text","TouchableRipple","useTheme","range","ITEM_HEIGHT","startYear","endYear","years","YearPicker","selectedYear","selectingYear","onPressYear","theme","flatList","useRef","useEffect","current","indexToGo","scrollToOffset","offset","animated","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","yearButton","undefined","yearInner","primary","yearLabel","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","color","borderRadius","overflow","alignItems","fontSize","opacity"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { Text, TouchableRipple, useTheme } from 'react-native-paper'\nimport { range } from '../utils'\n\nconst ITEM_HEIGHT = 62\n\nconst startYear = 1800\nconst endYear = 2200\nconst years = range(startYear, endYear)\n\nexport default function YearPicker({\n selectedYear,\n selectingYear,\n onPressYear,\n}: {\n selectedYear: number | undefined\n selectingYear: boolean\n onPressYear: (year: number) => any\n}) {\n const theme = useTheme()\n const flatList = React.useRef<FlatList<number> | null>(null)\n\n // scroll to selected year\n React.useEffect(() => {\n if (flatList.current && selectedYear) {\n const indexToGo = selectedYear - startYear\n flatList.current.scrollToOffset({\n offset: (indexToGo / 3) * ITEM_HEIGHT - ITEM_HEIGHT,\n animated: false,\n })\n }\n }, [flatList, selectedYear])\n\n return (\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.root,\n { backgroundColor: theme.colors.surface },\n selectingYear ? styles.opacity1 : styles.opacity0,\n ]}\n pointerEvents={selectingYear ? 'auto' : 'none'}\n >\n <FlatList<number>\n ref={flatList}\n style={styles.list}\n data={years}\n renderItem={({ item }) => (\n <Year\n year={item}\n selected={selectedYear === item}\n onPressYear={onPressYear}\n />\n )}\n keyExtractor={(item) => `${item}`}\n numColumns={3}\n />\n </View>\n )\n}\n\nfunction YearPure({\n year,\n selected,\n onPressYear,\n}: {\n year: number\n selected: boolean\n onPressYear: (newYear: number) => any\n}) {\n const theme = useTheme()\n return (\n <View style={styles.year}>\n <TouchableRipple\n onPress={() => onPressYear(year)}\n style={styles.yearButton}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n >\n <View\n style={[\n styles.yearInner,\n selected ? { backgroundColor: theme.colors.primary } : null,\n ]}\n >\n <Text\n style={[styles.yearLabel, selected ? styles.selectedYear : null]}\n selectable={false}\n >\n {year}\n </Text>\n </View>\n </TouchableRipple>\n </View>\n )\n}\nconst Year = React.memo(YearPure)\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n top: 56,\n zIndex: 100,\n },\n\n list: {\n flex: 1,\n },\n year: {\n flex: 1,\n marginLeft: 16,\n marginRight: 16,\n height: ITEM_HEIGHT,\n justifyContent: 'center',\n },\n selectedYear: { color: '#fff' },\n yearButton: {\n borderRadius: 46 / 2,\n overflow: 'hidden',\n },\n yearInner: {\n borderRadius: 46 / 2,\n height: 46,\n alignItems: 'center',\n justifyContent: 'center',\n },\n yearLabel: {\n fontSize: 16,\n },\n opacity0: {\n opacity: 0,\n },\n opacity1: {\n opacity: 1,\n },\n})\n"]}
@@ -19,18 +19,20 @@ export function addMonths(date, count) {
19
19
  } // https://stackoverflow.com/a/1185068/2508481
20
20
  // pass in any date as parameter anyDateInMonth based on dayjs
21
21
 
22
- export function getDaysInMonth({
23
- year,
24
- month
25
- }) {
22
+ export function getDaysInMonth(_ref) {
23
+ let {
24
+ year,
25
+ month
26
+ } = _ref;
26
27
  return [31, isLeapYear({
27
28
  year
28
29
  }) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
29
30
  }
30
- export function getFirstDayOfMonth({
31
- year,
32
- month
33
- }) {
31
+ export function getFirstDayOfMonth(_ref2) {
32
+ let {
33
+ year,
34
+ month
35
+ } = _ref2;
34
36
  return new Date(year, month, 1).getDay();
35
37
  }
36
38
  export function useRangeChecker(validRange) {
@@ -62,10 +64,12 @@ export function areDatesOnSameDay(a, b) {
62
64
 
63
65
  return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
64
66
  }
65
- export function isDateBetween(date, {
66
- startDate,
67
- endDate
68
- }) {
67
+ export function isDateBetween(date, _ref3) {
68
+ let {
69
+ startDate,
70
+ endDate
71
+ } = _ref3;
72
+
69
73
  if (!startDate || !endDate) {
70
74
  return false;
71
75
  }
@@ -78,10 +82,11 @@ export function isDateBetween(date, {
78
82
  * If the range doesn't exist, it defaults to `true`.
79
83
  */
80
84
 
81
- export function isDateWithinOptionalRange(date, {
82
- startUnix,
83
- endUnix
84
- }) {
85
+ export function isDateWithinOptionalRange(date, _ref4) {
86
+ let {
87
+ startUnix,
88
+ endUnix
89
+ } = _ref4;
85
90
  const dateUnix = dateToUnix(date); // if startUnix is provided and date is before start
86
91
 
87
92
  if (startUnix && dateUnix < startUnix) {
@@ -95,9 +100,10 @@ export function isDateWithinOptionalRange(date, {
95
100
 
96
101
  return true;
97
102
  }
98
- export function isLeapYear({
99
- year
100
- }) {
103
+ export function isLeapYear(_ref5) {
104
+ let {
105
+ year
106
+ } = _ref5;
101
107
  return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
102
108
  }
103
109
  export const daySize = 46;
@@ -143,9 +149,10 @@ export function getInitialIndex(date) {
143
149
  const months = differenceInMonths(today, date);
144
150
  return startAtIndex + months;
145
151
  }
146
- export function useInputFormatter({
147
- locale
148
- }) {
152
+ export function useInputFormatter(_ref6) {
153
+ let {
154
+ locale
155
+ } = _ref6;
149
156
  return React.useMemo(() => {
150
157
  return new Intl.DateTimeFormat(locale, {
151
158
  month: '2-digit',
@@ -160,9 +167,10 @@ export function getStartOfDay(d) {
160
167
  export function getEndOfDay(d) {
161
168
  return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59);
162
169
  }
163
- export function useInputFormat({
164
- formatter
165
- }) {
170
+ export function useInputFormat(_ref7) {
171
+ let {
172
+ formatter
173
+ } = _ref7;
166
174
  return React.useMemo(() => {
167
175
  // TODO: something cleaner and more universal?
168
176
  const inputDate = formatter.format(new Date(2020, 10 - 1, 1));
@@ -1 +1 @@
1
- {"version":3,"sources":["dateUtils.tsx"],"names":["React","useLatest","showWeekDay","dayIndex","disableWeekDays","some","di","dateToUnix","d","Math","round","getTime","addMonths","date","count","n","getDate","n2","Date","setDate","setMonth","getMonth","min","getDaysInMonth","year","getFullYear","month","isLeapYear","getFirstDayOfMonth","getDay","useRangeChecker","validRange","validStart","startDate","validEnd","endDate","startUnix","getStartOfDay","undefined","endUnix","getEndOfDay","validDisabledDatesRef","disabledDates","isWithinValidRange","useCallback","day","isDateWithinOptionalRange","isDisabled","current","disabledDate","areDatesOnSameDay","a","b","isDateBetween","dateUnix","daySize","estimatedMonthHeight","startAtIndex","totalMonths","beginOffset","gridCounts","Array","getGridCount","index","cHeight","monthDate","getRealIndex","h","getGridCountForDate","daysInMonth","dayOfWeek","ceil","getInitialIndex","today","months","differenceInMonths","useInputFormatter","locale","useMemo","Intl","DateTimeFormat","useInputFormat","formatter","inputDate","format","replace","firstDate","secondDate","diffMonths"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useLatest } from '../utils'\nimport type { ValidRangeType } from './Calendar'\n\nexport type DisableWeekDaysType = number[]\n\nexport function showWeekDay(\n dayIndex: number,\n disableWeekDays?: DisableWeekDaysType\n): boolean {\n return !(disableWeekDays && disableWeekDays.some((di) => di === dayIndex))\n}\n\nexport function dateToUnix(d: Date): number {\n return Math.round(d.getTime() / 1000)\n}\n\nexport function addMonths(date: Date, count: number) {\n let n = date.getDate()\n let n2 = new Date(date.getTime())\n n2.setDate(1)\n n2.setMonth(n2.getMonth() + count)\n n2.setDate(\n Math.min(\n n,\n getDaysInMonth({ year: n2.getFullYear(), month: n2.getMonth() })\n )\n )\n\n return n2\n}\n\n// https://stackoverflow.com/a/1185068/2508481\n// pass in any date as parameter anyDateInMonth based on dayjs\nexport function getDaysInMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return [\n 31,\n isLeapYear({ year }) ? 29 : 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31,\n ][month]\n}\n\nexport function getFirstDayOfMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return new Date(year, month, 1).getDay()\n}\n\nexport function useRangeChecker(validRange: ValidRangeType | undefined) {\n const validStart = validRange?.startDate\n const validEnd = validRange?.endDate\n const startUnix =\n validStart instanceof Date\n ? dateToUnix(getStartOfDay(validStart))\n : undefined\n\n const endUnix =\n validEnd instanceof Date ? dateToUnix(getEndOfDay(validEnd)) : undefined\n\n const validDisabledDatesRef = useLatest(validRange?.disabledDates)\n\n const isWithinValidRange = React.useCallback(\n (day: Date) => {\n return isDateWithinOptionalRange(day, {\n startUnix: startUnix,\n endUnix: endUnix,\n })\n },\n [startUnix, endUnix]\n )\n\n const isDisabled = React.useCallback(\n (day: Date) => {\n return validDisabledDatesRef.current\n ? validDisabledDatesRef.current.some((disabledDate) =>\n areDatesOnSameDay(disabledDate, day)\n )\n : false\n },\n [validDisabledDatesRef]\n )\n\n return { isDisabled, isWithinValidRange, validStart, validEnd }\n}\n\nexport function areDatesOnSameDay(a: Date, b?: Date | null | undefined) {\n if (!b) {\n return false\n }\n\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nexport function isDateBetween(\n date: Date,\n {\n startDate,\n endDate,\n }: {\n startDate?: Date | null | undefined\n endDate?: Date | null | undefined\n }\n): boolean {\n if (!startDate || !endDate) {\n return false\n }\n return date <= endDate && date >= startDate\n}\n\n/**\n * Check if a date is within an optional range.\n *\n * If the range doesn't exist, it defaults to `true`.\n */\nexport function isDateWithinOptionalRange(\n date: Date,\n {\n startUnix,\n endUnix,\n }: { startUnix: number | undefined; endUnix: number | undefined }\n) {\n const dateUnix = dateToUnix(date)\n // if startUnix is provided and date is before start\n if (startUnix && dateUnix < startUnix) {\n return false\n }\n\n // if endUnix is provided and date is after end\n if (endUnix && dateUnix > endUnix) {\n return false\n }\n\n return true\n}\n\nexport function isLeapYear({ year }: { year: number }) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n}\n\nexport const daySize = 46\nexport const estimatedMonthHeight = 360\nexport const startAtIndex = 1200\nexport const totalMonths = startAtIndex * 2\nexport const beginOffset = estimatedMonthHeight * startAtIndex\nexport const gridCounts = new Array<number | undefined>(totalMonths)\n\nexport function getGridCount(index: number) {\n const cHeight = gridCounts[index]\n if (cHeight) {\n return cHeight\n }\n const monthDate = addMonths(new Date(), getRealIndex(index))\n const h = getGridCountForDate(monthDate)\n gridCounts[index] = h\n return h\n}\n\nexport function getGridCountForDate(date: Date) {\n const year = date.getFullYear()\n const month = date.getMonth()\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n return Math.ceil((daysInMonth + dayOfWeek) / 7)\n}\n\nexport function getRealIndex(index: number) {\n return index - startAtIndex\n}\n\nexport function getInitialIndex(date: Date | undefined) {\n if (!date) {\n return startAtIndex\n }\n\n const today = new Date()\n const months = differenceInMonths(today, date)\n\n return startAtIndex + months\n}\n\nexport function useInputFormatter({ locale }: { locale: string | undefined }) {\n return React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })\n }, [locale])\n}\nexport function getStartOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0)\n}\nexport function getEndOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59)\n}\nexport function useInputFormat({\n formatter,\n}: {\n formatter: Intl.DateTimeFormat\n}) {\n return React.useMemo(() => {\n // TODO: something cleaner and more universal?\n const inputDate = formatter.format(new Date(2020, 10 - 1, 1))\n return inputDate\n .replace('2020', 'YYYY')\n .replace('10', 'MM')\n .replace('01', 'DD')\n }, [formatter])\n}\n\nexport function differenceInMonths(firstDate: Date, secondDate: Date) {\n let diffMonths = (secondDate.getFullYear() - firstDate.getFullYear()) * 12\n diffMonths -= firstDate.getMonth()\n diffMonths += secondDate.getMonth()\n return diffMonths\n}\n"]}
1
+ {"version":3,"sources":["dateUtils.tsx"],"names":["React","useLatest","showWeekDay","dayIndex","disableWeekDays","some","di","dateToUnix","d","Math","round","getTime","addMonths","date","count","n","getDate","n2","Date","setDate","setMonth","getMonth","min","getDaysInMonth","year","getFullYear","month","isLeapYear","getFirstDayOfMonth","getDay","useRangeChecker","validRange","validStart","startDate","validEnd","endDate","startUnix","getStartOfDay","undefined","endUnix","getEndOfDay","validDisabledDatesRef","disabledDates","isWithinValidRange","useCallback","day","isDateWithinOptionalRange","isDisabled","current","disabledDate","areDatesOnSameDay","a","b","isDateBetween","dateUnix","daySize","estimatedMonthHeight","startAtIndex","totalMonths","beginOffset","gridCounts","Array","getGridCount","index","cHeight","monthDate","getRealIndex","h","getGridCountForDate","daysInMonth","dayOfWeek","ceil","getInitialIndex","today","months","differenceInMonths","useInputFormatter","locale","useMemo","Intl","DateTimeFormat","useInputFormat","formatter","inputDate","format","replace","firstDate","secondDate","diffMonths"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useLatest } from '../utils'\nimport type { ValidRangeType } from './Calendar'\n\nexport type DisableWeekDaysType = number[]\n\nexport function showWeekDay(\n dayIndex: number,\n disableWeekDays?: DisableWeekDaysType\n): boolean {\n return !(disableWeekDays && disableWeekDays.some((di) => di === dayIndex))\n}\n\nexport function dateToUnix(d: Date): number {\n return Math.round(d.getTime() / 1000)\n}\n\nexport function addMonths(date: Date, count: number) {\n let n = date.getDate()\n let n2 = new Date(date.getTime())\n n2.setDate(1)\n n2.setMonth(n2.getMonth() + count)\n n2.setDate(\n Math.min(\n n,\n getDaysInMonth({ year: n2.getFullYear(), month: n2.getMonth() })\n )\n )\n\n return n2\n}\n\n// https://stackoverflow.com/a/1185068/2508481\n// pass in any date as parameter anyDateInMonth based on dayjs\nexport function getDaysInMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return [\n 31,\n isLeapYear({ year }) ? 29 : 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31,\n ][month]\n}\n\nexport function getFirstDayOfMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return new Date(year, month, 1).getDay()\n}\n\nexport function useRangeChecker(validRange: ValidRangeType | undefined) {\n const validStart = validRange?.startDate\n const validEnd = validRange?.endDate\n const startUnix =\n validStart instanceof Date\n ? dateToUnix(getStartOfDay(validStart))\n : undefined\n\n const endUnix =\n validEnd instanceof Date ? dateToUnix(getEndOfDay(validEnd)) : undefined\n\n const validDisabledDatesRef = useLatest(validRange?.disabledDates)\n\n const isWithinValidRange = React.useCallback(\n (day: Date) => {\n return isDateWithinOptionalRange(day, {\n startUnix: startUnix,\n endUnix: endUnix,\n })\n },\n [startUnix, endUnix]\n )\n\n const isDisabled = React.useCallback(\n (day: Date) => {\n return validDisabledDatesRef.current\n ? validDisabledDatesRef.current.some((disabledDate) =>\n areDatesOnSameDay(disabledDate, day)\n )\n : false\n },\n [validDisabledDatesRef]\n )\n\n return { isDisabled, isWithinValidRange, validStart, validEnd }\n}\n\nexport function areDatesOnSameDay(a: Date, b?: Date | null | undefined) {\n if (!b) {\n return false\n }\n\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nexport function isDateBetween(\n date: Date,\n {\n startDate,\n endDate,\n }: {\n startDate?: Date | null | undefined\n endDate?: Date | null | undefined\n }\n): boolean {\n if (!startDate || !endDate) {\n return false\n }\n return date <= endDate && date >= startDate\n}\n\n/**\n * Check if a date is within an optional range.\n *\n * If the range doesn't exist, it defaults to `true`.\n */\nexport function isDateWithinOptionalRange(\n date: Date,\n {\n startUnix,\n endUnix,\n }: { startUnix: number | undefined; endUnix: number | undefined }\n) {\n const dateUnix = dateToUnix(date)\n // if startUnix is provided and date is before start\n if (startUnix && dateUnix < startUnix) {\n return false\n }\n\n // if endUnix is provided and date is after end\n if (endUnix && dateUnix > endUnix) {\n return false\n }\n\n return true\n}\n\nexport function isLeapYear({ year }: { year: number }) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n}\n\nexport const daySize = 46\nexport const estimatedMonthHeight = 360\nexport const startAtIndex = 1200\nexport const totalMonths = startAtIndex * 2\nexport const beginOffset = estimatedMonthHeight * startAtIndex\nexport const gridCounts = new Array<number | undefined>(totalMonths)\n\nexport function getGridCount(index: number) {\n const cHeight = gridCounts[index]\n if (cHeight) {\n return cHeight\n }\n const monthDate = addMonths(new Date(), getRealIndex(index))\n const h = getGridCountForDate(monthDate)\n gridCounts[index] = h\n return h\n}\n\nexport function getGridCountForDate(date: Date) {\n const year = date.getFullYear()\n const month = date.getMonth()\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n return Math.ceil((daysInMonth + dayOfWeek) / 7)\n}\n\nexport function getRealIndex(index: number) {\n return index - startAtIndex\n}\n\nexport function getInitialIndex(date: Date | undefined) {\n if (!date) {\n return startAtIndex\n }\n\n const today = new Date()\n const months = differenceInMonths(today, date)\n\n return startAtIndex + months\n}\n\nexport function useInputFormatter({ locale }: { locale: string | undefined }) {\n return React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })\n }, [locale])\n}\nexport function getStartOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0)\n}\nexport function getEndOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59)\n}\nexport function useInputFormat({\n formatter,\n}: {\n formatter: Intl.DateTimeFormat\n}) {\n return React.useMemo(() => {\n // TODO: something cleaner and more universal?\n const inputDate = formatter.format(new Date(2020, 10 - 1, 1))\n return inputDate\n .replace('2020', 'YYYY')\n .replace('10', 'MM')\n .replace('01', 'DD')\n }, [formatter])\n}\n\nexport function differenceInMonths(firstDate: Date, secondDate: Date) {\n let diffMonths = (secondDate.getFullYear() - firstDate.getFullYear()) * 12\n diffMonths -= firstDate.getMonth()\n diffMonths += secondDate.getMonth()\n return diffMonths\n}\n"]}
@@ -1,13 +1,14 @@
1
1
  import { useInputFormat, useInputFormatter, useRangeChecker } from './dateUtils';
2
2
  import * as React from 'react';
3
3
  import { getTranslation } from 'react-native-paper-dates';
4
- export default function useDateInput({
5
- locale,
6
- value,
7
- validRange,
8
- inputMode,
9
- onChange
10
- }) {
4
+ export default function useDateInput(_ref) {
5
+ let {
6
+ locale,
7
+ value,
8
+ validRange,
9
+ inputMode,
10
+ onChange
11
+ } = _ref;
11
12
  const {
12
13
  isDisabled,
13
14
  isWithinValidRange,
@@ -1 +1 @@
1
- {"version":3,"sources":["inputUtils.ts"],"names":["useInputFormat","useInputFormatter","useRangeChecker","React","getTranslation","useDateInput","locale","value","validRange","inputMode","onChange","isDisabled","isWithinValidRange","validStart","validEnd","error","setError","useState","formatter","inputFormat","formattedValue","format","onChangeText","date","dayIndex","indexOf","monthIndex","yearIndex","day","Number","slice","year","month","isNaN","finalDate","Date","errors","filter","n","join"],"mappings":"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","sourcesContent":["import { useInputFormat, useInputFormatter, useRangeChecker } from './dateUtils'\nimport * as React from 'react'\nimport type { ValidRangeType } from './Calendar'\nimport { getTranslation } from 'react-native-paper-dates'\n\nexport default function useDateInput({\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n}: {\n onChange: (d: Date) => void\n locale: undefined | string\n value: Date | undefined\n validRange: ValidRangeType | undefined\n inputMode: 'start' | 'end'\n}) {\n const { isDisabled, isWithinValidRange, validStart, validEnd } =\n useRangeChecker(validRange)\n const [error, setError] = React.useState<null | string>(null)\n const formatter = useInputFormatter({ locale })\n const inputFormat = useInputFormat({ formatter })\n const formattedValue = formatter.format(value)\n const onChangeText = (date: string) => {\n const dayIndex = inputFormat.indexOf('DD')\n const monthIndex = inputFormat.indexOf('MM')\n const yearIndex = inputFormat.indexOf('YYYY')\n\n const day = Number(date.slice(dayIndex, dayIndex + 2))\n const year = Number(date.slice(yearIndex, yearIndex + 4))\n const month = Number(date.slice(monthIndex, monthIndex + 2))\n\n if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {\n setError(\n getTranslation(\n locale,\n 'notAccordingToDateFormat',\n () => 'notAccordingToDateFormat'\n )(inputFormat)\n )\n return\n }\n\n const finalDate =\n inputMode === 'end'\n ? new Date(year, month - 1, day, 23, 59, 59)\n : new Date(year, month - 1, day)\n\n if (isDisabled(finalDate)) {\n setError(getTranslation(locale, 'dateIsDisabled'))\n return\n }\n if (!isWithinValidRange(finalDate)) {\n let errors =\n validStart && validEnd\n ? [\n `${getTranslation(locale, 'mustBeBetween')} ${formatter.format(\n validStart\n )} - ${formatter.format(validEnd)}`,\n ]\n : [\n validStart\n ? `${getTranslation(\n locale,\n 'mustBeHigherThan'\n )} ${formatter.format(validStart)}`\n : '',\n validEnd\n ? `${getTranslation(\n locale,\n 'mustBeLowerThan'\n )} ${formatter.format(validEnd)}`\n : '',\n ]\n setError(errors.filter((n) => n).join(' '))\n return\n }\n\n setError(null)\n if (inputMode === 'end') {\n onChange(finalDate)\n } else {\n onChange(finalDate)\n }\n }\n return {\n onChange,\n error,\n formattedValue,\n onChangeText,\n inputFormat,\n }\n}\n"]}
1
+ {"version":3,"sources":["inputUtils.ts"],"names":["useInputFormat","useInputFormatter","useRangeChecker","React","getTranslation","useDateInput","locale","value","validRange","inputMode","onChange","isDisabled","isWithinValidRange","validStart","validEnd","error","setError","useState","formatter","inputFormat","formattedValue","format","onChangeText","date","dayIndex","indexOf","monthIndex","yearIndex","day","Number","slice","year","month","isNaN","finalDate","Date","errors","filter","n","join"],"mappings":"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","sourcesContent":["import { useInputFormat, useInputFormatter, useRangeChecker } from './dateUtils'\nimport * as React from 'react'\nimport type { ValidRangeType } from './Calendar'\nimport { getTranslation } from 'react-native-paper-dates'\n\nexport default function useDateInput({\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n}: {\n onChange: (d: Date) => void\n locale: undefined | string\n value: Date | undefined\n validRange: ValidRangeType | undefined\n inputMode: 'start' | 'end'\n}) {\n const { isDisabled, isWithinValidRange, validStart, validEnd } =\n useRangeChecker(validRange)\n const [error, setError] = React.useState<null | string>(null)\n const formatter = useInputFormatter({ locale })\n const inputFormat = useInputFormat({ formatter })\n const formattedValue = formatter.format(value)\n const onChangeText = (date: string) => {\n const dayIndex = inputFormat.indexOf('DD')\n const monthIndex = inputFormat.indexOf('MM')\n const yearIndex = inputFormat.indexOf('YYYY')\n\n const day = Number(date.slice(dayIndex, dayIndex + 2))\n const year = Number(date.slice(yearIndex, yearIndex + 4))\n const month = Number(date.slice(monthIndex, monthIndex + 2))\n\n if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {\n setError(\n getTranslation(\n locale,\n 'notAccordingToDateFormat',\n () => 'notAccordingToDateFormat'\n )(inputFormat)\n )\n return\n }\n\n const finalDate =\n inputMode === 'end'\n ? new Date(year, month - 1, day, 23, 59, 59)\n : new Date(year, month - 1, day)\n\n if (isDisabled(finalDate)) {\n setError(getTranslation(locale, 'dateIsDisabled'))\n return\n }\n if (!isWithinValidRange(finalDate)) {\n let errors =\n validStart && validEnd\n ? [\n `${getTranslation(locale, 'mustBeBetween')} ${formatter.format(\n validStart\n )} - ${formatter.format(validEnd)}`,\n ]\n : [\n validStart\n ? `${getTranslation(\n locale,\n 'mustBeHigherThan'\n )} ${formatter.format(validStart)}`\n : '',\n validEnd\n ? `${getTranslation(\n locale,\n 'mustBeLowerThan'\n )} ${formatter.format(validEnd)}`\n : '',\n ]\n setError(errors.filter((n) => n).join(' '))\n return\n }\n\n setError(null)\n if (inputMode === 'end') {\n onChange(finalDate)\n } else {\n onChange(finalDate)\n }\n }\n return {\n onChange,\n error,\n formattedValue,\n onChangeText,\n inputFormat,\n }\n}\n"]}