react-native-dates-picker 0.0.9 → 0.1.1

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 (156) hide show
  1. package/README.md +27 -28
  2. package/lib/commonjs/CalendarContext.js.map +1 -1
  3. package/lib/commonjs/DateTimePicker.js +15 -8
  4. package/lib/commonjs/DateTimePicker.js.map +1 -1
  5. package/lib/commonjs/components/Calendar.js +14 -12
  6. package/lib/commonjs/components/Calendar.js.map +1 -1
  7. package/lib/commonjs/components/DatePicker.js +46 -58
  8. package/lib/commonjs/components/DatePicker.js.map +1 -1
  9. package/lib/commonjs/components/Day.js +18 -16
  10. package/lib/commonjs/components/Day.js.map +1 -1
  11. package/lib/commonjs/components/DaySelector.js +12 -12
  12. package/lib/commonjs/components/DaySelector.js.map +1 -1
  13. package/lib/commonjs/components/Header.js +27 -25
  14. package/lib/commonjs/components/Header.js.map +1 -1
  15. package/lib/commonjs/components/MonthSelector.js +9 -7
  16. package/lib/commonjs/components/MonthSelector.js.map +1 -1
  17. package/lib/commonjs/components/TimeSelector.js +22 -17
  18. package/lib/commonjs/components/TimeSelector.js.map +1 -1
  19. package/lib/commonjs/components/WheelPicker/Wheel.js +9 -4
  20. package/lib/commonjs/components/WheelPicker/Wheel.js.map +1 -1
  21. package/lib/commonjs/components/WheelPicker/WheelNative.js +14 -47
  22. package/lib/commonjs/components/WheelPicker/WheelNative.js.map +1 -1
  23. package/lib/commonjs/components/WheelPicker/WheelNativePicker/index.js +10 -0
  24. package/lib/commonjs/components/WheelPicker/WheelNativePicker/index.js.map +1 -0
  25. package/lib/commonjs/components/WheelPicker/WheelNativePicker/wheel-picker-item.js +130 -0
  26. package/lib/commonjs/components/WheelPicker/WheelNativePicker/wheel-picker-item.js.map +1 -0
  27. package/lib/commonjs/components/WheelPicker/WheelNativePicker/wheel-picker.js +174 -0
  28. package/lib/commonjs/components/WheelPicker/WheelNativePicker/wheel-picker.js.map +1 -0
  29. package/lib/commonjs/components/WheelPicker/WheelWeb.js +51 -38
  30. package/lib/commonjs/components/WheelPicker/WheelWeb.js.map +1 -1
  31. package/lib/commonjs/components/WheelPicker/animated-math.js +26 -0
  32. package/lib/commonjs/components/WheelPicker/animated-math.js.map +1 -0
  33. package/lib/commonjs/components/WheelPicker/period-native.js +36 -0
  34. package/lib/commonjs/components/WheelPicker/period-native.js.map +1 -0
  35. package/lib/commonjs/components/WheelPicker/period-picker.js +19 -0
  36. package/lib/commonjs/components/WheelPicker/period-picker.js.map +1 -0
  37. package/lib/commonjs/components/WheelPicker/period-web.js +34 -0
  38. package/lib/commonjs/components/WheelPicker/period-web.js.map +1 -0
  39. package/lib/commonjs/components/YearSelector.js +10 -8
  40. package/lib/commonjs/components/YearSelector.js.map +1 -1
  41. package/lib/commonjs/enums.js +5 -4
  42. package/lib/commonjs/enums.js.map +1 -1
  43. package/lib/commonjs/utils.js +4 -1
  44. package/lib/commonjs/utils.js.map +1 -1
  45. package/lib/module/CalendarContext.js.map +1 -1
  46. package/lib/module/DateTimePicker.js +11 -6
  47. package/lib/module/DateTimePicker.js.map +1 -1
  48. package/lib/module/components/Calendar.js +4 -4
  49. package/lib/module/components/Calendar.js.map +1 -1
  50. package/lib/module/components/DatePicker.js +36 -50
  51. package/lib/module/components/DatePicker.js.map +1 -1
  52. package/lib/module/components/Day.js +8 -8
  53. package/lib/module/components/Day.js.map +1 -1
  54. package/lib/module/components/DaySelector.js +4 -4
  55. package/lib/module/components/DaySelector.js.map +1 -1
  56. package/lib/module/components/Header.js +3 -3
  57. package/lib/module/components/Header.js.map +1 -1
  58. package/lib/module/components/MonthSelector.js +3 -2
  59. package/lib/module/components/MonthSelector.js.map +1 -1
  60. package/lib/module/components/TimeSelector.js +10 -7
  61. package/lib/module/components/TimeSelector.js.map +1 -1
  62. package/lib/module/components/WheelPicker/Wheel.js +6 -3
  63. package/lib/module/components/WheelPicker/Wheel.js.map +1 -1
  64. package/lib/module/components/WheelPicker/WheelNative.js +10 -45
  65. package/lib/module/components/WheelPicker/WheelNative.js.map +1 -1
  66. package/lib/module/components/WheelPicker/WheelNativePicker/index.js +3 -0
  67. package/lib/module/components/WheelPicker/WheelNativePicker/index.js.map +1 -0
  68. package/lib/module/components/WheelPicker/WheelNativePicker/wheel-picker-item.js +122 -0
  69. package/lib/module/components/WheelPicker/WheelNativePicker/wheel-picker-item.js.map +1 -0
  70. package/lib/module/components/WheelPicker/WheelNativePicker/wheel-picker.js +165 -0
  71. package/lib/module/components/WheelPicker/WheelNativePicker/wheel-picker.js.map +1 -0
  72. package/lib/module/components/WheelPicker/WheelWeb.js +48 -37
  73. package/lib/module/components/WheelPicker/WheelWeb.js.map +1 -1
  74. package/lib/module/components/WheelPicker/animated-math.js +20 -0
  75. package/lib/module/components/WheelPicker/animated-math.js.map +1 -0
  76. package/lib/module/components/WheelPicker/period-native.js +27 -0
  77. package/lib/module/components/WheelPicker/period-native.js.map +1 -0
  78. package/lib/module/components/WheelPicker/period-picker.js +10 -0
  79. package/lib/module/components/WheelPicker/period-picker.js.map +1 -0
  80. package/lib/module/components/WheelPicker/period-web.js +26 -0
  81. package/lib/module/components/WheelPicker/period-web.js.map +1 -0
  82. package/lib/module/components/YearSelector.js +3 -3
  83. package/lib/module/components/YearSelector.js.map +1 -1
  84. package/lib/module/enums.js +4 -3
  85. package/lib/module/enums.js.map +1 -1
  86. package/lib/module/utils.js +4 -1
  87. package/lib/module/utils.js.map +1 -1
  88. package/lib/typescript/CalendarContext.d.ts.map +1 -1
  89. package/lib/typescript/DateTimePicker.d.ts +3 -3
  90. package/lib/typescript/DateTimePicker.d.ts.map +1 -1
  91. package/lib/typescript/components/Calendar.d.ts +3 -3
  92. package/lib/typescript/components/Calendar.d.ts.map +1 -1
  93. package/lib/typescript/components/DatePicker.d.ts +2 -2
  94. package/lib/typescript/components/DatePicker.d.ts.map +1 -1
  95. package/lib/typescript/components/Day.d.ts +4 -5
  96. package/lib/typescript/components/Day.d.ts.map +1 -1
  97. package/lib/typescript/components/DaySelector.d.ts +2 -2
  98. package/lib/typescript/components/DaySelector.d.ts.map +1 -1
  99. package/lib/typescript/components/Header.d.ts +3 -3
  100. package/lib/typescript/components/Header.d.ts.map +1 -1
  101. package/lib/typescript/components/MonthSelector.d.ts +2 -2
  102. package/lib/typescript/components/MonthSelector.d.ts.map +1 -1
  103. package/lib/typescript/components/TimeSelector.d.ts +2 -2
  104. package/lib/typescript/components/TimeSelector.d.ts.map +1 -1
  105. package/lib/typescript/components/WheelPicker/Wheel.d.ts +5 -6
  106. package/lib/typescript/components/WheelPicker/Wheel.d.ts.map +1 -1
  107. package/lib/typescript/components/WheelPicker/WheelNative.d.ts +7 -8
  108. package/lib/typescript/components/WheelPicker/WheelNative.d.ts.map +1 -1
  109. package/lib/typescript/components/WheelPicker/WheelNativePicker/index.d.ts +3 -0
  110. package/lib/typescript/components/WheelPicker/WheelNativePicker/index.d.ts.map +1 -0
  111. package/lib/typescript/components/WheelPicker/WheelNativePicker/wheel-picker-item.d.ts +16 -0
  112. package/lib/typescript/components/WheelPicker/WheelNativePicker/wheel-picker-item.d.ts.map +1 -0
  113. package/lib/typescript/components/WheelPicker/WheelNativePicker/wheel-picker.d.ts +19 -0
  114. package/lib/typescript/components/WheelPicker/WheelNativePicker/wheel-picker.d.ts.map +1 -0
  115. package/lib/typescript/components/WheelPicker/WheelWeb.d.ts +6 -5
  116. package/lib/typescript/components/WheelPicker/WheelWeb.d.ts.map +1 -1
  117. package/lib/typescript/components/WheelPicker/animated-math.d.ts +5 -0
  118. package/lib/typescript/components/WheelPicker/animated-math.d.ts.map +1 -0
  119. package/lib/typescript/components/WheelPicker/period-native.d.ts +8 -0
  120. package/lib/typescript/components/WheelPicker/period-native.d.ts.map +1 -0
  121. package/lib/typescript/components/WheelPicker/period-picker.d.ts +8 -0
  122. package/lib/typescript/components/WheelPicker/period-picker.d.ts.map +1 -0
  123. package/lib/typescript/components/WheelPicker/period-web.d.ts +8 -0
  124. package/lib/typescript/components/WheelPicker/period-web.d.ts.map +1 -0
  125. package/lib/typescript/components/YearSelector.d.ts +2 -2
  126. package/lib/typescript/components/YearSelector.d.ts.map +1 -1
  127. package/lib/typescript/enums.d.ts +2 -1
  128. package/lib/typescript/enums.d.ts.map +1 -1
  129. package/lib/typescript/types.d.ts +5 -2
  130. package/lib/typescript/types.d.ts.map +1 -1
  131. package/lib/typescript/utils.d.ts +2 -2
  132. package/lib/typescript/utils.d.ts.map +1 -1
  133. package/package.json +7 -6
  134. package/src/DateTimePicker.tsx +20 -15
  135. package/src/components/Calendar.tsx +8 -8
  136. package/src/components/DatePicker.tsx +38 -66
  137. package/src/components/Day.tsx +9 -9
  138. package/src/components/DaySelector.tsx +6 -6
  139. package/src/components/Header.tsx +5 -5
  140. package/src/components/MonthSelector.tsx +4 -3
  141. package/src/components/TimeSelector.tsx +11 -12
  142. package/src/components/WheelPicker/Wheel.tsx +10 -10
  143. package/src/components/WheelPicker/WheelNative.tsx +13 -47
  144. package/src/components/WheelPicker/WheelNativePicker/index.ts +3 -0
  145. package/src/components/WheelPicker/WheelNativePicker/wheel-picker-item.tsx +140 -0
  146. package/src/components/WheelPicker/WheelNativePicker/wheel-picker.tsx +220 -0
  147. package/src/components/WheelPicker/WheelWeb.tsx +92 -65
  148. package/src/components/WheelPicker/animated-math.ts +33 -0
  149. package/src/components/WheelPicker/period-native.tsx +39 -0
  150. package/src/components/WheelPicker/period-picker.tsx +16 -0
  151. package/src/components/WheelPicker/period-web.tsx +37 -0
  152. package/src/components/YearSelector.tsx +4 -4
  153. package/src/enums.ts +4 -3
  154. package/src/types.ts +6 -2
  155. package/src/utils.ts +3 -3
  156. /package/src/{CalendarContext.tsx → CalendarContext.ts} +0 -0
@@ -0,0 +1,122 @@
1
+ import React, { memo } from 'react';
2
+ import { Animated, Text, StyleSheet } from 'react-native';
3
+ import { useCalendarContext } from 'src/CalendarContext';
4
+ const WheelPickerItem = ({
5
+ height,
6
+ option,
7
+ index,
8
+ visibleRest,
9
+ currentScrollIndex,
10
+ opacityFunction,
11
+ rotationFunction,
12
+ scaleFunction
13
+ }) => {
14
+ const {
15
+ theme
16
+ } = useCalendarContext();
17
+ const relativeScrollIndex = Animated.subtract(index, currentScrollIndex);
18
+ const translateY = relativeScrollIndex.interpolate({
19
+ inputRange: (() => {
20
+ const range = [0];
21
+ for (let i = 1; i <= visibleRest + 1; i++) {
22
+ range.unshift(-i);
23
+ range.push(i);
24
+ }
25
+ return range;
26
+ })(),
27
+ outputRange: (() => {
28
+ const range = [0];
29
+ for (let i = 1; i <= visibleRest + 1; i++) {
30
+ let y = height / 2 * (1 - Math.sin(Math.PI / 2 - rotationFunction(i)));
31
+ for (let j = 1; j < i; j++) {
32
+ y += height * (1 - Math.sin(Math.PI / 2 - rotationFunction(j)));
33
+ }
34
+ range.unshift(y);
35
+ range.push(-y);
36
+ }
37
+ return range;
38
+ })()
39
+ });
40
+ const opacity = relativeScrollIndex.interpolate({
41
+ inputRange: (() => {
42
+ const range = [0];
43
+ for (let i = 1; i <= visibleRest + 1; i++) {
44
+ range.unshift(-i);
45
+ range.push(i);
46
+ }
47
+ return range;
48
+ })(),
49
+ outputRange: (() => {
50
+ const range = [1];
51
+ for (let x = 1; x <= visibleRest + 1; x++) {
52
+ const y = opacityFunction(x);
53
+ range.unshift(y);
54
+ range.push(y);
55
+ }
56
+ return range;
57
+ })()
58
+ });
59
+ const scale = relativeScrollIndex.interpolate({
60
+ inputRange: (() => {
61
+ const range = [0];
62
+ for (let i = 1; i <= visibleRest + 1; i++) {
63
+ range.unshift(-i);
64
+ range.push(i);
65
+ }
66
+ return range;
67
+ })(),
68
+ outputRange: (() => {
69
+ const range = [1.0];
70
+ for (let x = 1; x <= visibleRest + 1; x++) {
71
+ const y = scaleFunction(x);
72
+ range.unshift(y);
73
+ range.push(y);
74
+ }
75
+ return range;
76
+ })()
77
+ });
78
+ const rotateX = relativeScrollIndex.interpolate({
79
+ inputRange: (() => {
80
+ const range = [0];
81
+ for (let i = 1; i <= visibleRest + 1; i++) {
82
+ range.unshift(-i);
83
+ range.push(i);
84
+ }
85
+ return range;
86
+ })(),
87
+ outputRange: (() => {
88
+ const range = ['0deg'];
89
+ for (let x = 1; x <= visibleRest + 1; x++) {
90
+ const y = rotationFunction(x);
91
+ range.unshift(`${y}deg`);
92
+ range.push(`${y}deg`);
93
+ }
94
+ return range;
95
+ })()
96
+ });
97
+ return /*#__PURE__*/React.createElement(Animated.View, {
98
+ style: [styles.option, {
99
+ height,
100
+ opacity,
101
+ transform: [{
102
+ translateY
103
+ }, {
104
+ rotateX
105
+ }, {
106
+ scale
107
+ }]
108
+ }, theme.wheelPickerItemStyle]
109
+ }, /*#__PURE__*/React.createElement(Text, {
110
+ style: theme.wheelPickerTextStyle
111
+ }, option === null || option === void 0 ? void 0 : option.text));
112
+ };
113
+ const styles = StyleSheet.create({
114
+ option: {
115
+ alignItems: 'center',
116
+ justifyContent: 'center',
117
+ paddingHorizontal: 10,
118
+ zIndex: 100
119
+ }
120
+ });
121
+ export default /*#__PURE__*/memo(WheelPickerItem);
122
+ //# sourceMappingURL=wheel-picker-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Animated","Text","StyleSheet","useCalendarContext","WheelPickerItem","height","option","index","visibleRest","currentScrollIndex","opacityFunction","rotationFunction","scaleFunction","theme","relativeScrollIndex","subtract","translateY","interpolate","inputRange","range","i","unshift","push","outputRange","y","Math","sin","PI","j","opacity","x","scale","rotateX","createElement","View","style","styles","transform","wheelPickerItemStyle","wheelPickerTextStyle","text","create","alignItems","justifyContent","paddingHorizontal","zIndex"],"sourceRoot":"../../../../../src","sources":["components/WheelPicker/WheelNativePicker/wheel-picker-item.tsx"],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import React, { useEffect, useMemo, useRef, useState, memo } from 'react';
3
+ import { Animated, View, Platform, StyleSheet } from 'react-native';
4
+ import WheelPickerItem from './wheel-picker-item';
5
+ import { useCalendarContext } from 'src/CalendarContext';
6
+ const WheelPicker = ({
7
+ value,
8
+ options,
9
+ onChange,
10
+ itemHeight = 40,
11
+ scaleFunction = x => 1.0 ** x,
12
+ rotationFunction = x => 1 - Math.pow(1 / 2, x),
13
+ opacityFunction = x => Math.pow(1 / 3, x),
14
+ visibleRest = 2,
15
+ decelerationRate = 'normal',
16
+ containerProps = {},
17
+ flatListProps = {}
18
+ }) => {
19
+ const {
20
+ theme
21
+ } = useCalendarContext();
22
+ const momentumStarted = useRef(false);
23
+ const selectedIndex = options.findIndex(item => item.value === value);
24
+ const flatListRef = useRef(null);
25
+ const [scrollY] = useState(new Animated.Value(selectedIndex * itemHeight));
26
+ const containerHeight = (1 + visibleRest * 2) * itemHeight;
27
+ const paddedOptions = useMemo(() => {
28
+ const array = [...options];
29
+ for (let i = 0; i < visibleRest; i++) {
30
+ array.unshift(null);
31
+ array.push(null);
32
+ }
33
+ return array;
34
+ }, [options, visibleRest]);
35
+ const offsets = useMemo(() => [...Array(paddedOptions.length)].map((_, i) => i * itemHeight), [paddedOptions, itemHeight]);
36
+ const currentScrollIndex = useMemo(() => Animated.add(Animated.divide(scrollY, itemHeight), visibleRest), [visibleRest, scrollY, itemHeight]);
37
+ const handleScrollEnd = event => {
38
+ const offsetY = Math.min(itemHeight * (options.length - 1), Math.max(event.nativeEvent.contentOffset.y, 0));
39
+ let index = Math.floor(offsetY / itemHeight);
40
+ const remainder = offsetY % itemHeight;
41
+ if (remainder > itemHeight / 2) {
42
+ index++;
43
+ }
44
+ if (index !== selectedIndex) {
45
+ var _options$index;
46
+ onChange(((_options$index = options[index]) === null || _options$index === void 0 ? void 0 : _options$index.value) || 0);
47
+ }
48
+ };
49
+ const handleMomentumScrollBegin = () => {
50
+ momentumStarted.current = true;
51
+ };
52
+ const handleMomentumScrollEnd = event => {
53
+ momentumStarted.current = false;
54
+ handleScrollEnd(event);
55
+ };
56
+ const handleScrollEndDrag = event => {
57
+ var _event$nativeEvent$co;
58
+ // Capture the offset value immediately
59
+ const offsetY = (_event$nativeEvent$co = event.nativeEvent.contentOffset) === null || _event$nativeEvent$co === void 0 ? void 0 : _event$nativeEvent$co.y;
60
+
61
+ // We'll start a short timer to see if momentum scroll begins
62
+ setTimeout(() => {
63
+ // If momentum scroll hasn't started within the timeout,
64
+ // then it was a slow scroll that won't trigger momentum
65
+ if (!momentumStarted.current && offsetY !== undefined) {
66
+ // Create a synthetic event with just the data we need
67
+ const syntheticEvent = {
68
+ nativeEvent: {
69
+ contentOffset: {
70
+ y: offsetY
71
+ }
72
+ }
73
+ };
74
+ handleScrollEnd(syntheticEvent);
75
+ }
76
+ }, 50);
77
+ };
78
+ useEffect(() => {
79
+ if (selectedIndex < 0 || selectedIndex >= options.length) {
80
+ throw new Error(`Selected index ${selectedIndex} is out of bounds [0, ${options.length - 1}]`);
81
+ }
82
+ }, [selectedIndex, options]);
83
+
84
+ /**
85
+ * If selectedIndex is changed from outside (not via onChange) we need to scroll to the specified index.
86
+ * This ensures that what the user sees as selected in the picker always corresponds to the value state.
87
+ */
88
+ useEffect(() => {
89
+ var _flatListRef$current;
90
+ (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 || _flatListRef$current.scrollToIndex({
91
+ index: selectedIndex,
92
+ animated: Platform.OS === 'ios'
93
+ });
94
+ }, [selectedIndex, itemHeight]);
95
+ return /*#__PURE__*/React.createElement(View, _extends({
96
+ style: [styles.container, {
97
+ height: containerHeight
98
+ }, theme.wheelPickerContainerStyle]
99
+ }, containerProps), /*#__PURE__*/React.createElement(View, {
100
+ style: [styles.selectedIndicator, {
101
+ transform: [{
102
+ translateY: -itemHeight / 2
103
+ }],
104
+ height: itemHeight
105
+ }, theme.wheelPickerSelectedIndicatorStyle]
106
+ }), /*#__PURE__*/React.createElement(Animated.FlatList, _extends({}, flatListProps, {
107
+ ref: flatListRef,
108
+ nestedScrollEnabled: true,
109
+ style: styles.scrollView,
110
+ showsVerticalScrollIndicator: false,
111
+ onScroll: Animated.event([{
112
+ nativeEvent: {
113
+ contentOffset: {
114
+ y: scrollY
115
+ }
116
+ }
117
+ }], {
118
+ useNativeDriver: true
119
+ }),
120
+ onScrollEndDrag: handleScrollEndDrag,
121
+ onMomentumScrollBegin: handleMomentumScrollBegin,
122
+ onMomentumScrollEnd: handleMomentumScrollEnd,
123
+ snapToOffsets: offsets,
124
+ decelerationRate: decelerationRate,
125
+ initialScrollIndex: selectedIndex,
126
+ getItemLayout: (_, index) => ({
127
+ length: itemHeight,
128
+ offset: itemHeight * index,
129
+ index
130
+ }),
131
+ data: paddedOptions,
132
+ keyExtractor: (item, index) => item ? `${item.value}-${item.text}-${index}` : `null-${index}`,
133
+ renderItem: ({
134
+ item: option,
135
+ index
136
+ }) => /*#__PURE__*/React.createElement(WheelPickerItem, {
137
+ key: `option-${index}`,
138
+ index: index,
139
+ option: option,
140
+ height: itemHeight,
141
+ currentScrollIndex: currentScrollIndex,
142
+ scaleFunction: scaleFunction,
143
+ rotationFunction: rotationFunction,
144
+ opacityFunction: opacityFunction,
145
+ visibleRest: visibleRest
146
+ })
147
+ })));
148
+ };
149
+ const styles = StyleSheet.create({
150
+ container: {
151
+ display: 'flex',
152
+ position: 'relative'
153
+ },
154
+ selectedIndicator: {
155
+ position: 'absolute',
156
+ width: '100%',
157
+ top: '50%'
158
+ },
159
+ scrollView: {
160
+ overflow: 'hidden',
161
+ flex: 1
162
+ }
163
+ });
164
+ export default /*#__PURE__*/memo(WheelPicker);
165
+ //# sourceMappingURL=wheel-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","useState","memo","Animated","View","Platform","StyleSheet","WheelPickerItem","useCalendarContext","WheelPicker","value","options","onChange","itemHeight","scaleFunction","x","rotationFunction","Math","pow","opacityFunction","visibleRest","decelerationRate","containerProps","flatListProps","theme","momentumStarted","selectedIndex","findIndex","item","flatListRef","scrollY","Value","containerHeight","paddedOptions","array","i","unshift","push","offsets","Array","length","map","_","currentScrollIndex","add","divide","handleScrollEnd","event","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","remainder","_options$index","handleMomentumScrollBegin","current","handleMomentumScrollEnd","handleScrollEndDrag","_event$nativeEvent$co","setTimeout","undefined","syntheticEvent","Error","_flatListRef$current","scrollToIndex","animated","OS","createElement","_extends","style","styles","container","height","wheelPickerContainerStyle","selectedIndicator","transform","translateY","wheelPickerSelectedIndicatorStyle","FlatList","ref","nestedScrollEnabled","scrollView","showsVerticalScrollIndicator","onScroll","useNativeDriver","onScrollEndDrag","onMomentumScrollBegin","onMomentumScrollEnd","snapToOffsets","initialScrollIndex","getItemLayout","offset","data","keyExtractor","text","renderItem","option","key","create","display","position","width","top","overflow","flex"],"sourceRoot":"../../../../../src","sources":["components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import { memo, useMemo, useRef } from 'react';
3
- import { Animated, PanResponder, StyleSheet, View, Platform } from 'react-native';
4
- import { useCalendarContext } from '../../CalendarContext';
5
- import { sin } from './AnimatedMath';
6
- import { CALENDAR_HEIGHT } from '../../enums';
2
+ import React, { memo, useMemo, useRef } from 'react';
3
+ import { Animated, PanResponder, StyleSheet, View, Platform, Text } from 'react-native';
4
+ import { isEqual } from 'lodash';
5
+ import { CONTAINER_HEIGHT } from 'src/enums';
6
+ import { useCalendarContext } from 'src/CalendarContext';
7
+ import { sin } from './animated-math';
8
+ const ITEM_HEIGHT = 44;
7
9
  const WheelWeb = ({
8
10
  value,
9
11
  setValue = () => {},
@@ -16,9 +18,11 @@ const WheelWeb = ({
16
18
  const translateY = useRef(new Animated.Value(0)).current;
17
19
  const renderCount = displayCount * 2 < items.length ? displayCount * 8 : displayCount * 2 - 1;
18
20
  const circular = items.length >= displayCount;
19
- const height = 130;
21
+ const height = 140;
20
22
  const radius = height / 2;
21
- const valueIndex = useMemo(() => items.indexOf(('0' + value).slice(-2)), [items, value]);
23
+ const valueIndex = useMemo(() => {
24
+ return items.findIndex(item => item.value === value) || 0;
25
+ }, [items, value]);
22
26
  const panResponder = useMemo(() => {
23
27
  return PanResponder.create({
24
28
  onMoveShouldSetPanResponder: () => true,
@@ -31,14 +35,15 @@ const WheelWeb = ({
31
35
  evt.stopPropagation();
32
36
  },
33
37
  onPanResponderRelease: (_, gestureState) => {
38
+ var _items$;
34
39
  translateY.extractOffset();
35
40
  let newValueIndex = valueIndex - Math.round(gestureState.dy / (radius * 2 / displayCount));
36
41
  if (circular) newValueIndex = (newValueIndex + items.length) % items.length;else if (newValueIndex < 0) newValueIndex = 0;else if (newValueIndex >= items.length) newValueIndex = items.length - 1;
37
- const newValue = items[newValueIndex] || '00';
38
- if (newValue === ('0' + value).slice(-2)) {
42
+ const newValue = items[newValueIndex];
43
+ if ((newValue === null || newValue === void 0 ? void 0 : newValue.value) === value) {
39
44
  translateY.setOffset(0);
40
45
  translateY.setValue(0);
41
- } else setValue(parseInt(newValue, 10));
46
+ } else if (newValue !== null && newValue !== void 0 && newValue.value) setValue(newValue.value);else if ((_items$ = items[0]) !== null && _items$ !== void 0 && _items$.value) setValue(items[0].value);
42
47
  }
43
48
  });
44
49
  }, [circular, displayCount, radius, setValue, value, valueIndex, items, translateY]);
@@ -48,17 +53,14 @@ const WheelWeb = ({
48
53
  length: renderCount
49
54
  }, (_, index) => {
50
55
  let targetIndex = valueIndex + index - centerIndex;
51
- if (targetIndex < 0 || targetIndex >= items.length) {
52
- if (!circular) return 0;
53
- targetIndex = (targetIndex + items.length) % items.length;
54
- }
55
- return items[targetIndex] || 0;
56
+ if (circular) targetIndex = (targetIndex % items.length + items.length) % items.length;else targetIndex = Math.max(0, Math.min(targetIndex, items.length - 1));
57
+ return items[targetIndex] || items[0];
56
58
  });
57
59
  }, [renderCount, valueIndex, items, circular]);
58
60
  const animatedAngles = useMemo(() => {
59
61
  //translateY.setValue(0);
60
62
  translateY.setOffset(0);
61
- const currentIndex = displayValues.indexOf(('0' + value).slice(-2));
63
+ const currentIndex = displayValues.findIndex(item => (item === null || item === void 0 ? void 0 : item.value) === value);
62
64
  return displayValues && displayValues.length > 0 ? displayValues.map((_, index) => translateY.interpolate({
63
65
  inputRange: [-radius, radius],
64
66
  outputRange: [-radius + radius * 2 / displayCount * (index - currentIndex), radius + radius * 2 / displayCount * (index - currentIndex)],
@@ -70,19 +72,23 @@ const WheelWeb = ({
70
72
  })) : [];
71
73
  }, [displayValues, radius, value, displayCount, translateY]);
72
74
  return /*#__PURE__*/React.createElement(View, _extends({
73
- style: [styles.container]
74
- }, panResponder.panHandlers), displayValues === null || displayValues === void 0 ? void 0 : displayValues.map((displayValue, index) => {
75
+ style: [defaultStyles.container, theme.wheelPickerContainerStyle]
76
+ }, panResponder.panHandlers), /*#__PURE__*/React.createElement(View, {
77
+ style: [defaultStyles.selectedIndicator, {
78
+ transform: [{
79
+ translateY: -ITEM_HEIGHT / 2
80
+ }],
81
+ height: ITEM_HEIGHT
82
+ }, theme.wheelPickerSelectedIndicatorStyle]
83
+ }), displayValues === null || displayValues === void 0 ? void 0 : displayValues.map((displayValue, index) => {
75
84
  const animatedAngle = animatedAngles[index];
76
- return /*#__PURE__*/React.createElement(Animated.Text, {
77
- key: `${displayValue}-${index}`,
78
- style: [{
79
- ...styles.wheelPickerText,
80
- ...(theme === null || theme === void 0 ? void 0 : theme.wheelPickerTextStyle)
81
- },
85
+ return /*#__PURE__*/React.createElement(Animated.View, {
86
+ key: `${displayValue === null || displayValue === void 0 ? void 0 : displayValue.text}-${index}`
82
87
  // eslint-disable-next-line react-native/no-inline-styles
83
- {
88
+ ,
89
+ style: {
84
90
  position: 'absolute',
85
- height: 25,
91
+ height: ITEM_HEIGHT - 10,
86
92
  transform: animatedAngle ? [{
87
93
  translateY: Animated.multiply(radius, sin(animatedAngle))
88
94
  }, {
@@ -92,18 +98,20 @@ const WheelWeb = ({
92
98
  extrapolate: 'clamp'
93
99
  })
94
100
  }] : [],
95
- opacity: displayValue !== ('0' + value).slice(-2) ? 0.3 : 1
96
- }]
97
- }, displayValue);
101
+ opacity: (displayValue === null || displayValue === void 0 ? void 0 : displayValue.value) !== value ? 0.3 : 1
102
+ }
103
+ }, /*#__PURE__*/React.createElement(Text, {
104
+ style: theme === null || theme === void 0 ? void 0 : theme.wheelPickerTextStyle
105
+ }, displayValue === null || displayValue === void 0 ? void 0 : displayValue.text));
98
106
  }));
99
107
  };
100
- const styles = StyleSheet.create({
108
+ const defaultStyles = StyleSheet.create({
101
109
  container: {
102
110
  minWidth: 30,
103
111
  overflow: 'hidden',
104
112
  alignItems: 'center',
105
113
  justifyContent: 'center',
106
- height: CALENDAR_HEIGHT / 2,
114
+ height: CONTAINER_HEIGHT / 2,
107
115
  ...Platform.select({
108
116
  web: {
109
117
  cursor: 'pointer',
@@ -115,12 +123,15 @@ const styles = StyleSheet.create({
115
123
  justifyContent: 'space-between',
116
124
  alignItems: 'center'
117
125
  },
118
- wheelPickerText: {
119
- fontSize: 20,
120
- fontWeight: '500'
126
+ selectedIndicator: {
127
+ position: 'absolute',
128
+ width: '100%',
129
+ top: '50%'
121
130
  }
122
131
  });
123
- export default /*#__PURE__*/memo(WheelWeb, (prevProps, nextProps) => {
124
- return prevProps.value === nextProps.value && prevProps.setValue === nextProps.setValue;
125
- });
132
+ const customComparator = (prev, next) => {
133
+ const areEqual = prev.value === next.value && prev.setValue === next.setValue && isEqual(prev.items, next.items);
134
+ return areEqual;
135
+ };
136
+ export default /*#__PURE__*/memo(WheelWeb, customComparator);
126
137
  //# sourceMappingURL=WheelWeb.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useMemo","useRef","Animated","PanResponder","StyleSheet","View","Platform","useCalendarContext","sin","CALENDAR_HEIGHT","WheelWeb","value","setValue","items","theme","displayCount","translateY","Value","current","renderCount","length","circular","height","radius","valueIndex","indexOf","slice","panResponder","create","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","evt","gestureState","dy","stopPropagation","onPanResponderRelease","_","extractOffset","newValueIndex","Math","round","newValue","setOffset","parseInt","displayValues","centerIndex","floor","Array","from","index","targetIndex","animatedAngles","currentIndex","map","interpolate","inputRange","outputRange","extrapolate","PI","React","createElement","_extends","style","styles","container","panHandlers","displayValue","animatedAngle","Text","key","wheelPickerText","wheelPickerTextStyle","position","transform","multiply","rotateX","opacity","minWidth","overflow","alignItems","justifyContent","select","web","cursor","userSelect","contentContainer","fontSize","fontWeight","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/WheelWeb.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","memo","useMemo","useRef","Animated","PanResponder","StyleSheet","View","Platform","Text","isEqual","CONTAINER_HEIGHT","useCalendarContext","sin","ITEM_HEIGHT","WheelWeb","value","setValue","items","theme","displayCount","translateY","Value","current","renderCount","length","circular","height","radius","valueIndex","findIndex","item","panResponder","create","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","evt","gestureState","dy","stopPropagation","onPanResponderRelease","_","_items$","extractOffset","newValueIndex","Math","round","newValue","setOffset","displayValues","centerIndex","floor","Array","from","index","targetIndex","max","min","animatedAngles","currentIndex","map","interpolate","inputRange","outputRange","extrapolate","PI","createElement","_extends","style","defaultStyles","container","wheelPickerContainerStyle","panHandlers","selectedIndicator","transform","wheelPickerSelectedIndicatorStyle","displayValue","animatedAngle","key","text","position","multiply","rotateX","opacity","wheelPickerTextStyle","minWidth","overflow","alignItems","justifyContent","select","web","cursor","userSelect","contentContainer","width","top","customComparator","prev","next","areEqual"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/WheelWeb.tsx"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Animated } from 'react-native';
2
+ const FACTORIAL_3 = 3 * 2;
3
+ const FACTORIAL_5 = 5 * 4 * FACTORIAL_3;
4
+ const FACTORIAL_7 = 7 * 6 * FACTORIAL_5;
5
+ function sin(animated) {
6
+ const normalized = normalize(animated);
7
+ const square = Animated.multiply(normalized, normalized);
8
+ const pow3 = Animated.multiply(normalized, square);
9
+ const pow5 = Animated.multiply(pow3, square);
10
+ const pow7 = Animated.multiply(pow5, square);
11
+ return Animated.add(Animated.add(normalized, Animated.multiply(pow3, -1 / FACTORIAL_3)), Animated.add(Animated.multiply(pow5, 1 / FACTORIAL_5), Animated.multiply(pow7, -1 / FACTORIAL_7)));
12
+ }
13
+ function normalize(animated) {
14
+ return Animated.add(Animated.modulo(Animated.add(animated, Math.PI), Math.PI * 2), -Math.PI).interpolate({
15
+ inputRange: [-Math.PI, -Math.PI / 2, Math.PI / 2, Math.PI],
16
+ outputRange: [0, -Math.PI / 2, Math.PI / 2, 0]
17
+ });
18
+ }
19
+ export { sin, normalize };
20
+ //# sourceMappingURL=animated-math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Animated","FACTORIAL_3","FACTORIAL_5","FACTORIAL_7","sin","animated","normalized","normalize","square","multiply","pow3","pow5","pow7","add","modulo","Math","PI","interpolate","inputRange","outputRange"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/animated-math.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,WAAW,GAAG,CAAC,GAAG,CAAC;AACzB,MAAMC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAGD,WAAW;AACvC,MAAME,WAAW,GAAG,CAAC,GAAG,CAAC,GAAGD,WAAW;AAEvC,SAASE,GAAGA,CAACC,QAA2B,EAAE;EACxC,MAAMC,UAAU,GAAGC,SAAS,CAACF,QAAQ,CAAC;EACtC,MAAMG,MAAM,GAAGR,QAAQ,CAACS,QAAQ,CAACH,UAAU,EAAEA,UAAU,CAAC;EACxD,MAAMI,IAAI,GAAGV,QAAQ,CAACS,QAAQ,CAACH,UAAU,EAAEE,MAAM,CAAC;EAClD,MAAMG,IAAI,GAAGX,QAAQ,CAACS,QAAQ,CAACC,IAAI,EAAEF,MAAM,CAAC;EAC5C,MAAMI,IAAI,GAAGZ,QAAQ,CAACS,QAAQ,CAACE,IAAI,EAAEH,MAAM,CAAC;EAE5C,OAAOR,QAAQ,CAACa,GAAG,CACjBb,QAAQ,CAACa,GAAG,CAACP,UAAU,EAAEN,QAAQ,CAACS,QAAQ,CAACC,IAAI,EAAE,CAAC,CAAC,GAAGT,WAAW,CAAC,CAAC,EACnED,QAAQ,CAACa,GAAG,CACVb,QAAQ,CAACS,QAAQ,CAACE,IAAI,EAAE,CAAC,GAAGT,WAAW,CAAC,EACxCF,QAAQ,CAACS,QAAQ,CAACG,IAAI,EAAE,CAAC,CAAC,GAAGT,WAAW,CAC1C,CACF,CAAC;AACH;AAEA,SAASI,SAASA,CAACF,QAA2B,EAAqB;EACjE,OAAOL,QAAQ,CAACa,GAAG,CACjBb,QAAQ,CAACc,MAAM,CAACd,QAAQ,CAACa,GAAG,CAACR,QAAQ,EAAEU,IAAI,CAACC,EAAE,CAAC,EAAED,IAAI,CAACC,EAAE,GAAG,CAAC,CAAC,EAC7D,CAACD,IAAI,CAACC,EACR,CAAC,CAACC,WAAW,CAAC;IACZC,UAAU,EAAE,CAAC,CAACH,IAAI,CAACC,EAAE,EAAE,CAACD,IAAI,CAACC,EAAE,GAAG,CAAC,EAAED,IAAI,CAACC,EAAE,GAAG,CAAC,EAAED,IAAI,CAACC,EAAE,CAAC;IAC1DG,WAAW,EAAE,CAAC,CAAC,EAAE,CAACJ,IAAI,CAACC,EAAE,GAAG,CAAC,EAAED,IAAI,CAACC,EAAE,GAAG,CAAC,EAAE,CAAC;EAC/C,CAAC,CAAC;AACJ;AAEA,SAASZ,GAAG,EAAEG,SAAS"}
@@ -0,0 +1,27 @@
1
+ import React, { memo } from 'react';
2
+ import WheelPicker from './WheelNativePicker';
3
+ const options = [{
4
+ value: 'AM',
5
+ text: 'AM'
6
+ }, {
7
+ value: 'PM',
8
+ text: 'PM'
9
+ }];
10
+ const PeriodNative = ({
11
+ value,
12
+ setValue = () => {}
13
+ }) => {
14
+ return /*#__PURE__*/React.createElement(WheelPicker, {
15
+ value: value,
16
+ options: options,
17
+ onChange: setValue,
18
+ itemHeight: 44,
19
+ decelerationRate: "fast"
20
+ });
21
+ };
22
+ const customComparator = (prev, next) => {
23
+ const areEqual = prev.value === next.value && prev.setValue === next.setValue;
24
+ return areEqual;
25
+ };
26
+ export default /*#__PURE__*/memo(PeriodNative, customComparator);
27
+ //# sourceMappingURL=period-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","WheelPicker","options","value","text","PeriodNative","setValue","createElement","onChange","itemHeight","decelerationRate","customComparator","prev","next","areEqual"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/period-native.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,OAAOC,WAAW,MAAM,qBAAqB;AAQ7C,MAAMC,OAAuB,GAAG,CAC9B;EAAEC,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAC,EAC3B;EAAED,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAC,CAC5B;AAED,MAAMC,YAAmC,GAAGA,CAAC;EAC3CF,KAAK;EACLG,QAAQ,GAAGA,CAAA,KAAM,CAAC;AACpB,CAAC,KAAK;EACJ,oBACEP,KAAA,CAAAQ,aAAA,CAACN,WAAW;IACVE,KAAK,EAAEA,KAAM;IACbD,OAAO,EAAEA,OAAQ;IACjBM,QAAQ,EAAEF,QAAS;IACnBG,UAAU,EAAE,EAAG;IACfC,gBAAgB,EAAC;EAAM,CACxB,CAAC;AAEN,CAAC;AAED,MAAMC,gBAAgB,GAAGA,CACvBC,IAA2B,EAC3BC,IAA2B,KACxB;EACH,MAAMC,QAAQ,GAAGF,IAAI,CAACT,KAAK,KAAKU,IAAI,CAACV,KAAK,IAAIS,IAAI,CAACN,QAAQ,KAAKO,IAAI,CAACP,QAAQ;EAE7E,OAAOQ,QAAQ;AACjB,CAAC;AAED,4BAAed,IAAI,CAACK,YAAY,EAAEM,gBAAgB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React, { memo } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import PeriodNative from './period-native';
4
+ import PeriodWeb from './period-web';
5
+ const PeriodPicker = props => {
6
+ const Component = Platform.OS === 'web' ? PeriodWeb : PeriodNative;
7
+ return /*#__PURE__*/React.createElement(Component, props);
8
+ };
9
+ export default /*#__PURE__*/memo(PeriodPicker);
10
+ //# sourceMappingURL=period-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Platform","PeriodNative","PeriodWeb","PeriodPicker","props","Component","OS","createElement"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/period-picker.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,SAAS,MAAM,cAAc;AAOpC,MAAMC,YAAmC,GAAIC,KAAK,IAAK;EACrD,MAAMC,SAAS,GAAGL,QAAQ,CAACM,EAAE,KAAK,KAAK,GAAGJ,SAAS,GAAGD,YAAY;EAClE,oBAAOH,KAAA,CAAAS,aAAA,CAACF,SAAS,EAAKD,KAAQ,CAAC;AACjC,CAAC;AAED,4BAAeL,IAAI,CAACI,YAAY,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React, { memo } from 'react';
2
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
3
+ const PeriodWeb = ({
4
+ value,
5
+ setValue = () => {}
6
+ }) => {
7
+ return /*#__PURE__*/React.createElement(Pressable, {
8
+ onPress: () => setValue(value == 'AM' ? 'PM' : 'AM')
9
+ }, /*#__PURE__*/React.createElement(View, {
10
+ style: [defaultStyles.period]
11
+ }, /*#__PURE__*/React.createElement(Text, null, value)));
12
+ };
13
+ const defaultStyles = StyleSheet.create({
14
+ period: {
15
+ width: 65,
16
+ height: 44,
17
+ alignItems: 'center',
18
+ justifyContent: 'center'
19
+ }
20
+ });
21
+ const customComparator = (prev, next) => {
22
+ const areEqual = prev.value === next.value && prev.setValue === next.setValue;
23
+ return areEqual;
24
+ };
25
+ export default /*#__PURE__*/memo(PeriodWeb, customComparator);
26
+ //# sourceMappingURL=period-web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Pressable","StyleSheet","Text","View","PeriodWeb","value","setValue","createElement","onPress","style","defaultStyles","period","create","width","height","alignItems","justifyContent","customComparator","prev","next","areEqual"],"sourceRoot":"../../../../src","sources":["components/WheelPicker/period-web.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAOhE,MAAMC,SAAgC,GAAGA,CAAC;EAAEC,KAAK;EAAEC,QAAQ,GAAGA,CAAA,KAAM,CAAC;AAAE,CAAC,KAAK;EAC3E,oBACER,KAAA,CAAAS,aAAA,CAACP,SAAS;IAACQ,OAAO,EAAEA,CAAA,KAAMF,QAAQ,CAACD,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;EAAE,gBAC9DP,KAAA,CAAAS,aAAA,CAACJ,IAAI;IAACM,KAAK,EAAE,CAACC,aAAa,CAACC,MAAM;EAAE,gBAClCb,KAAA,CAAAS,aAAA,CAACL,IAAI,QAAEG,KAAY,CACf,CACG,CAAC;AAEhB,CAAC;AAED,MAAMK,aAAa,GAAGT,UAAU,CAACW,MAAM,CAAC;EACtCD,MAAM,EAAE;IACNE,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;AAEF,MAAMC,gBAAgB,GAAGA,CACvBC,IAA2B,EAC3BC,IAA2B,KACxB;EACH,MAAMC,QAAQ,GAAGF,IAAI,CAACb,KAAK,KAAKc,IAAI,CAACd,KAAK,IAAIa,IAAI,CAACZ,QAAQ,KAAKa,IAAI,CAACb,QAAQ;EAE7E,OAAOc,QAAQ;AACjB,CAAC;AAED,4BAAerB,IAAI,CAACK,SAAS,EAAEa,gBAAgB,CAAC"}
@@ -1,7 +1,7 @@
1
- import { useCallback } from 'react';
1
+ import React, { useCallback } from 'react';
2
2
  import { Text, View, Pressable, StyleSheet } from 'react-native';
3
- import { useCalendarContext } from '../CalendarContext';
4
- import { getDateYear, getYearRange } from '../utils';
3
+ import { useCalendarContext } from 'src/CalendarContext';
4
+ import { getDateYear, getYearRange } from 'src/utils';
5
5
  const YearSelector = () => {
6
6
  const {
7
7
  currentDate,