react-native-timer-picker 1.3.0 → 1.4.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 (53) hide show
  1. package/README.md +6 -0
  2. package/dist/commonjs/components/Modal/index.js +13 -14
  3. package/dist/commonjs/components/Modal/index.js.map +1 -1
  4. package/dist/commonjs/components/TimerPicker/DurationScroll.js +51 -32
  5. package/dist/commonjs/components/TimerPicker/DurationScroll.js.map +1 -1
  6. package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js +23 -3
  7. package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js.map +1 -1
  8. package/dist/commonjs/components/TimerPicker/index.js +33 -28
  9. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  10. package/dist/commonjs/components/index.js +44 -39
  11. package/dist/commonjs/components/index.js.map +1 -1
  12. package/dist/commonjs/tests/Modal.test.js +3 -1
  13. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  14. package/dist/commonjs/utils/generateNumbers.js +33 -10
  15. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  16. package/dist/commonjs/utils/padNumber.js +15 -0
  17. package/dist/commonjs/utils/padNumber.js.map +1 -0
  18. package/dist/module/components/Modal/index.js +13 -14
  19. package/dist/module/components/Modal/index.js.map +1 -1
  20. package/dist/module/components/TimerPicker/DurationScroll.js +52 -33
  21. package/dist/module/components/TimerPicker/DurationScroll.js.map +1 -1
  22. package/dist/module/components/TimerPicker/TimerPicker.styles.js +23 -3
  23. package/dist/module/components/TimerPicker/TimerPicker.styles.js.map +1 -1
  24. package/dist/module/components/TimerPicker/index.js +33 -28
  25. package/dist/module/components/TimerPicker/index.js.map +1 -1
  26. package/dist/module/components/index.js +44 -39
  27. package/dist/module/components/index.js.map +1 -1
  28. package/dist/module/tests/Modal.test.js +3 -1
  29. package/dist/module/tests/Modal.test.js.map +1 -1
  30. package/dist/module/utils/generateNumbers.js +31 -9
  31. package/dist/module/utils/generateNumbers.js.map +1 -1
  32. package/dist/module/utils/padNumber.js +8 -0
  33. package/dist/module/utils/padNumber.js.map +1 -0
  34. package/dist/typescript/components/TimerPicker/DurationScroll.d.ts +3 -0
  35. package/dist/typescript/components/TimerPicker/TimerPicker.styles.d.ts +4 -0
  36. package/dist/typescript/components/TimerPicker/index.d.ts +3 -0
  37. package/dist/typescript/utils/generateNumbers.d.ts +7 -2
  38. package/dist/typescript/utils/padNumber.d.ts +3 -0
  39. package/package.json +1 -1
  40. package/src/components/Modal/index.tsx +2 -2
  41. package/src/components/TimerPicker/DurationScroll.tsx +52 -10
  42. package/src/components/TimerPicker/TimerPicker.styles.ts +32 -1
  43. package/src/components/TimerPicker/index.tsx +26 -9
  44. package/src/components/index.tsx +9 -3
  45. package/src/tests/Modal.test.tsx +1 -1
  46. package/src/utils/generateNumbers.ts +40 -10
  47. package/src/utils/padNumber.ts +10 -0
  48. package/dist/commonjs/utils/padWithZero.js +0 -15
  49. package/dist/commonjs/utils/padWithZero.js.map +0 -1
  50. package/dist/module/utils/padWithZero.js +0 -8
  51. package/dist/module/utils/padWithZero.js.map +0 -1
  52. package/dist/typescript/utils/padWithZero.d.ts +0 -1
  53. package/src/utils/padWithZero.ts +0 -7
package/README.md CHANGED
@@ -211,6 +211,7 @@ return (
211
211
  modalTitle="Set Alarm"
212
212
  onCancel={() => setShowPicker(false)}
213
213
  closeOnOverlayPress
214
+ use12HourPicker
214
215
  LinearGradient={LinearGradient}
215
216
  styles={{
216
217
  theme: "light",
@@ -332,6 +333,9 @@ return (
332
333
  | secondLabel | Label for the seconds picker | String \| React.ReactElement | s | false |
333
334
  | padWithNItems | Number of items to pad the picker with on either side | Number | 1 | false |
334
335
  | aggressivelyGetLatestDuration | Set to True to ask DurationScroll to aggressively update the latestDuration ref | Boolean | false | false |
336
+ | use12HourPicker | Switch the hour picker to 12-hour format with an AM / PM label | Boolean | false | false |
337
+ | amLabel | Set the AM label if using the 12-hour picker | String | am | false |
338
+ | pmLabel | Set the PM label if using the 12-hour picker | String | pm | false |
335
339
  | disableInfiniteScroll | Disable the infinite scroll feature | Boolean | false | false |
336
340
  | LinearGradient | Linear Gradient Component | [expo-linear-gradient](https://www.npmjs.com/package/expo-linear-gradient).LinearGradient or [react-native-linear-gradient](https://www.npmjs.com/package/react-native-linear-gradient).default | - | false |
337
341
  | pickerContainerProps | Props for the picker container | `React.ComponentProps<typeof View>` | - | false |
@@ -352,6 +356,8 @@ The following custom styles can be supplied to re-style the component in any way
352
356
  | pickerContainer | Main container for the picker | ViewStyle |
353
357
  | pickerLabelContainer | Container for the picker's labels | ViewStyle |
354
358
  | pickerLabel | Style for the picker's labels | TextStyle |
359
+ | pickerAmPmContainer | Style for the picker's labels | ViewStyle |
360
+ | pickerAmPmLabel | Style for the picker's labels | TextStyle |
355
361
  | pickerItemContainer | Container for each number in the picker | ViewStyle |
356
362
  | pickerItem | Style for each individual picker number | TextStyle |
357
363
  | disabledPickerItem | Style for any numbers outside any set limits | TextStyle |
@@ -10,19 +10,18 @@ var _Modal = require("./Modal.styles");
10
10
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
11
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  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); } /* eslint-disable @typescript-eslint/no-explicit-any */
13
- const Modal = _ref => {
14
- let {
15
- children,
16
- onOverlayPress,
17
- onHide,
18
- isVisible = false,
19
- animationDuration = 300,
20
- overlayOpacity = 0.4,
21
- modalProps,
22
- contentStyle,
23
- overlayStyle,
24
- testID
25
- } = _ref;
13
+ const Modal = ({
14
+ children,
15
+ onOverlayPress,
16
+ onHide,
17
+ isVisible = false,
18
+ animationDuration = 300,
19
+ overlayOpacity = 0.4,
20
+ modalProps,
21
+ contentStyle,
22
+ overlayStyle,
23
+ testID = "modal"
24
+ }) => {
26
25
  const {
27
26
  width: screenWidth,
28
27
  height: screenHeight
@@ -89,7 +88,7 @@ const Modal = _ref => {
89
88
  animationType: "fade",
90
89
  visible: isVisible
91
90
  }, modalProps, {
92
- testID: testID ?? "modal"
91
+ testID: testID
93
92
  }), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableWithoutFeedback, {
94
93
  onPress: onOverlayPress,
95
94
  testID: "modal-backdrop"
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Modal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Modal","_ref","children","onOverlayPress","onHide","isVisible","animationDuration","overlayOpacity","modalProps","contentStyle","overlayStyle","testID","width","screenWidth","height","screenHeight","useWindowDimensions","isMounted","useRef","animatedOpacity","Animated","Value","useEffect","current","show","backdropAnimatedStyle","opacity","interpolate","inputRange","outputRange","contentAnimatedStyle","transform","translateY","extrapolate","useCallback","timing","easing","Easing","inOut","quad","useNativeDriver","duration","toValue","start","hide","createElement","transparent","animationType","visible","TouchableWithoutFeedback","onPress","View","style","styles","backdrop","content","pointerEvents","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport {\n Animated,\n Easing,\n Modal as ReactNativeModal,\n TouchableWithoutFeedback,\n useWindowDimensions,\n} from \"react-native\";\n\nimport { styles } from \"./Modal.styles\";\n\ninterface ModalProps {\n children?: React.ReactElement;\n onOverlayPress?: () => void;\n onHide?: () => void;\n isVisible?: boolean;\n animationDuration?: number;\n overlayOpacity?: number;\n modalProps?: any;\n contentStyle?: any;\n overlayStyle?: any;\n testID?: string;\n}\n\nexport const Modal = ({\n children,\n onOverlayPress,\n onHide,\n isVisible = false,\n animationDuration = 300,\n overlayOpacity = 0.4,\n modalProps,\n contentStyle,\n overlayStyle,\n testID,\n}: ModalProps): React.ReactElement => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n\n const isMounted = useRef(false);\n const animatedOpacity = useRef(new Animated.Value(0));\n\n useEffect(() => {\n isMounted.current = true;\n if (isVisible) {\n show();\n }\n\n return () => {\n isMounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const backdropAnimatedStyle = {\n opacity: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0, overlayOpacity],\n }),\n };\n const contentAnimatedStyle = {\n transform: [\n {\n translateY: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [screenHeight, 0],\n extrapolate: \"clamp\",\n }),\n },\n ],\n };\n\n const show = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 1,\n }).start();\n }, [animationDuration]);\n\n const hide = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 0,\n }).start(() => {\n if (isMounted.current) {\n onHide?.();\n }\n });\n }, [animationDuration, onHide]);\n\n useEffect(() => {\n if (isVisible) {\n show();\n } else {\n hide();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n return (\n <ReactNativeModal\n transparent\n animationType=\"fade\"\n visible={isVisible}\n {...modalProps}\n testID={testID ?? \"modal\"}>\n <TouchableWithoutFeedback\n onPress={onOverlayPress}\n testID=\"modal-backdrop\">\n <Animated.View\n style={[\n styles.backdrop,\n backdropAnimatedStyle,\n { width: screenWidth, height: screenHeight },\n overlayStyle,\n ]}\n />\n </TouchableWithoutFeedback>\n <Animated.View\n style={[styles.content, contentAnimatedStyle, contentStyle]}\n pointerEvents=\"box-none\">\n {children}\n </Animated.View>\n </ReactNativeModal>\n );\n};\n\nexport default React.memo(Modal);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Modal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Modal","children","onOverlayPress","onHide","isVisible","animationDuration","overlayOpacity","modalProps","contentStyle","overlayStyle","testID","width","screenWidth","height","screenHeight","useWindowDimensions","isMounted","useRef","animatedOpacity","Animated","Value","useEffect","current","show","backdropAnimatedStyle","opacity","interpolate","inputRange","outputRange","contentAnimatedStyle","transform","translateY","extrapolate","useCallback","timing","easing","Easing","inOut","quad","useNativeDriver","duration","toValue","start","hide","createElement","transparent","animationType","visible","TouchableWithoutFeedback","onPress","View","style","styles","backdrop","content","pointerEvents","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport {\n Animated,\n Easing,\n Modal as ReactNativeModal,\n TouchableWithoutFeedback,\n useWindowDimensions,\n} from \"react-native\";\n\nimport { styles } from \"./Modal.styles\";\n\ninterface ModalProps {\n children?: React.ReactElement;\n onOverlayPress?: () => void;\n onHide?: () => void;\n isVisible?: boolean;\n animationDuration?: number;\n overlayOpacity?: number;\n modalProps?: any;\n contentStyle?: any;\n overlayStyle?: any;\n testID?: string;\n}\n\nexport const Modal = ({\n children,\n onOverlayPress,\n onHide,\n isVisible = false,\n animationDuration = 300,\n overlayOpacity = 0.4,\n modalProps,\n contentStyle,\n overlayStyle,\n testID = \"modal\",\n}: ModalProps): React.ReactElement => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n\n const isMounted = useRef(false);\n const animatedOpacity = useRef(new Animated.Value(0));\n\n useEffect(() => {\n isMounted.current = true;\n if (isVisible) {\n show();\n }\n\n return () => {\n isMounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const backdropAnimatedStyle = {\n opacity: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0, overlayOpacity],\n }),\n };\n const contentAnimatedStyle = {\n transform: [\n {\n translateY: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [screenHeight, 0],\n extrapolate: \"clamp\",\n }),\n },\n ],\n };\n\n const show = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 1,\n }).start();\n }, [animationDuration]);\n\n const hide = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 0,\n }).start(() => {\n if (isMounted.current) {\n onHide?.();\n }\n });\n }, [animationDuration, onHide]);\n\n useEffect(() => {\n if (isVisible) {\n show();\n } else {\n hide();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n return (\n <ReactNativeModal\n transparent\n animationType=\"fade\"\n visible={isVisible}\n {...modalProps}\n testID={testID}>\n <TouchableWithoutFeedback\n onPress={onOverlayPress}\n testID=\"modal-backdrop\">\n <Animated.View\n style={[\n styles.backdrop,\n backdropAnimatedStyle,\n { width: screenWidth, height: screenHeight },\n overlayStyle,\n ]}\n />\n </TouchableWithoutFeedback>\n <Animated.View\n style={[styles.content, contentAnimatedStyle, contentStyle]}\n pointerEvents=\"box-none\">\n {children}\n </Animated.View>\n </ReactNativeModal>\n );\n};\n\nexport default React.memo(Modal);\n"],"mappings":"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"}
@@ -15,29 +15,36 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
15
15
  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); }
16
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
17
  const KEY_EXTRACTOR = (_, index) => index.toString();
18
- const DurationScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
19
- let {
20
- numberOfItems,
21
- label,
22
- initialValue = 0,
23
- onDurationChange,
24
- padNumbersWithZero = false,
25
- disableInfiniteScroll = false,
26
- limit,
27
- aggressivelyGetLatestDuration,
28
- padWithNItems,
29
- pickerGradientOverlayProps,
30
- topPickerGradientOverlayProps,
31
- bottomPickerGradientOverlayProps,
32
- LinearGradient,
33
- testID,
34
- styles
35
- } = _ref;
36
- const data = (0, _generateNumbers.generateNumbers)(numberOfItems, {
37
- padWithZero: padNumbersWithZero,
18
+ const DurationScroll = /*#__PURE__*/(0, _react.forwardRef)(({
19
+ numberOfItems,
20
+ label,
21
+ initialValue = 0,
22
+ onDurationChange,
23
+ padNumbersWithZero = false,
24
+ disableInfiniteScroll = false,
25
+ limit,
26
+ aggressivelyGetLatestDuration,
27
+ is12HourPicker,
28
+ amLabel,
29
+ pmLabel,
30
+ padWithNItems,
31
+ pickerGradientOverlayProps,
32
+ topPickerGradientOverlayProps,
33
+ bottomPickerGradientOverlayProps,
34
+ LinearGradient,
35
+ testID,
36
+ styles
37
+ }, ref) => {
38
+ const data = !is12HourPicker ? (0, _generateNumbers.generateNumbers)(numberOfItems, {
39
+ padNumbersWithZero,
40
+ repeatNTimes: 3,
41
+ disableInfiniteScroll,
42
+ padWithNItems
43
+ }) : (0, _generateNumbers.generate12HourNumbers)({
44
+ padNumbersWithZero,
38
45
  repeatNTimes: 3,
39
46
  disableInfiniteScroll,
40
- padWithNItems: padWithNItems
47
+ padWithNItems
41
48
  });
42
49
  const numberOfItemsToShow = 1 + padWithNItems * 2;
43
50
  const adjustedLimited = (0, _getAdjustedLimit.getAdjustedLimit)(limit, numberOfItems);
@@ -71,19 +78,32 @@ const DurationScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
71
78
  },
72
79
  latestDuration: latestDuration
73
80
  }));
74
- const renderItem = (0, _react.useCallback)(_ref2 => {
75
- let {
76
- item
77
- } = _ref2;
78
- const intItem = parseInt(item);
81
+ const renderItem = (0, _react.useCallback)(({
82
+ item
83
+ }) => {
84
+ let stringItem = item;
85
+ let intItem;
86
+ let isAm;
87
+ if (!is12HourPicker) {
88
+ intItem = parseInt(item);
89
+ } else {
90
+ isAm = item.includes("AM");
91
+ stringItem = item.replace(/\s[AP]M/g, "");
92
+ intItem = parseInt(stringItem);
93
+ }
79
94
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
80
95
  key: item,
81
96
  style: styles.pickerItemContainer,
82
97
  testID: "picker-item"
83
98
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
84
99
  style: [styles.pickerItem, intItem > adjustedLimited.max || intItem < adjustedLimited.min ? styles.disabledPickerItem : {}]
85
- }, item));
86
- }, [adjustedLimited.max, adjustedLimited.min, styles.disabledPickerItem, styles.pickerItem, styles.pickerItemContainer]);
100
+ }, stringItem), is12HourPicker ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
101
+ style: styles.pickerAmPmContainer,
102
+ pointerEvents: "none"
103
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
104
+ style: [styles.pickerAmPmLabel]
105
+ }, isAm ? amLabel : pmLabel)) : null);
106
+ }, [adjustedLimited.max, adjustedLimited.min, amLabel, is12HourPicker, pmLabel, styles.disabledPickerItem, styles.pickerAmPmContainer, styles.pickerAmPmLabel, styles.pickerItem, styles.pickerItemContainer]);
87
107
  const onScroll = (0, _react.useCallback)(e => {
88
108
  // this function is only used when the picker is in a modal
89
109
  // it is used to ensure that the modal gets the latest duration on clicking
@@ -127,11 +147,10 @@ const DurationScroll = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
127
147
  }
128
148
  onDurationChange(newDuration);
129
149
  }, [adjustedLimited.max, adjustedLimited.min, data.length, disableInfiniteScroll, numberOfItems, onDurationChange, padWithNItems, styles.pickerItemContainer.height]);
130
- const onViewableItemsChanged = (0, _react.useCallback)(_ref3 => {
150
+ const onViewableItemsChanged = (0, _react.useCallback)(({
151
+ viewableItems
152
+ }) => {
131
153
  var _viewableItems$, _viewableItems$2;
132
- let {
133
- viewableItems
134
- } = _ref3;
135
154
  if ((_viewableItems$ = viewableItems[0]) !== null && _viewableItems$ !== void 0 && _viewableItems$.index && viewableItems[0].index < numberOfItems * 0.5) {
136
155
  var _flatListRef$current5;
137
156
  (_flatListRef$current5 = flatListRef.current) === null || _flatListRef$current5 === void 0 || _flatListRef$current5.scrollToIndex({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_generateNumbers","_colorToRgba","_getAdjustedLimit","_getScrollIndex","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","KEY_EXTRACTOR","_","index","toString","DurationScroll","forwardRef","_ref","ref","numberOfItems","label","initialValue","onDurationChange","padNumbersWithZero","disableInfiniteScroll","limit","aggressivelyGetLatestDuration","padWithNItems","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","LinearGradient","testID","styles","data","generateNumbers","padWithZero","repeatNTimes","numberOfItemsToShow","adjustedLimited","getAdjustedLimit","initialScrollIndex","getScrollIndex","value","latestDuration","useRef","flatListRef","useImperativeHandle","reset","options","_flatListRef$current","current","scrollToIndex","animated","setValue","_flatListRef$current2","renderItem","useCallback","_ref2","item","intItem","parseInt","createElement","View","style","pickerItemContainer","Text","pickerItem","max","min","disabledPickerItem","onScroll","newIndex","Math","round","nativeEvent","contentOffset","y","height","newDuration","onMomentumScrollEnd","_flatListRef$current3","targetScrollIndex","_flatListRef$current4","onViewableItemsChanged","_ref3","_viewableItems$","_viewableItems$2","viewableItems","_flatListRef$current5","_flatListRef$current6","getItemLayout","offset","viewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","overflow","FlatList","windowSize","keyExtractor","showsVerticalScrollIndicator","decelerationRate","scrollEventThrottle","snapToAlignment","snapToOffsets","Array","map","undefined","pickerLabelContainer","pointerEvents","pickerLabel","Fragment","colors","pickerContainer","backgroundColor","colorToRgba","color","opacity","start","x","end","pickerGradientOverlay","top","bottom","_default","exports","React","memo"],"sources":["DurationScroll.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n MutableRefObject,\n} from \"react\";\nimport {\n View,\n Text,\n FlatList,\n ViewabilityConfigCallbackPairs,\n ViewToken,\n NativeSyntheticEvent,\n NativeScrollEvent,\n} from \"react-native\";\n\nimport { generateNumbers } from \"../../utils/generateNumbers\";\nimport { colorToRgba } from \"../../utils/colorToRgba\";\nimport { generateStyles } from \"./TimerPicker.styles\";\nimport { getAdjustedLimit } from \"../../utils/getAdjustedLimit\";\nimport { getScrollIndex } from \"../../utils/getScrollIndex\";\n\nexport interface DurationScrollRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (value: number, options?: { animated?: boolean }) => void;\n latestDuration: MutableRefObject<number>;\n}\n\ntype LinearGradientPoint = {\n x: number;\n y: number;\n};\n\nexport type LinearGradientProps = React.ComponentProps<typeof View> & {\n colors: string[];\n locations?: number[] | null;\n start?: LinearGradientPoint | null;\n end?: LinearGradientPoint | null;\n};\n\nexport type LimitType = {\n max?: number;\n min?: number;\n};\n\ninterface DurationScrollProps {\n numberOfItems: number;\n label?: string | React.ReactElement;\n initialValue?: number;\n onDurationChange: (duration: number) => void;\n padNumbersWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n limit?: LimitType;\n aggressivelyGetLatestDuration: boolean;\n padWithNItems: number;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n testID?: string;\n styles: ReturnType<typeof generateStyles>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst KEY_EXTRACTOR = (_: any, index: number) => index.toString();\n\nconst DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(\n (\n {\n numberOfItems,\n label,\n initialValue = 0,\n onDurationChange,\n padNumbersWithZero = false,\n disableInfiniteScroll = false,\n limit,\n aggressivelyGetLatestDuration,\n padWithNItems,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n LinearGradient,\n testID,\n styles,\n },\n ref\n ): React.ReactElement => {\n const data = generateNumbers(numberOfItems, {\n padWithZero: padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems: padWithNItems,\n });\n\n const numberOfItemsToShow = 1 + padWithNItems * 2;\n\n const adjustedLimited = getAdjustedLimit(limit, numberOfItems);\n\n const initialScrollIndex = getScrollIndex({\n value: initialValue,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n });\n\n const latestDuration = useRef(0);\n\n const flatListRef = useRef<FlatList | null>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: initialScrollIndex,\n });\n },\n setValue: (value, options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: getScrollIndex({\n value: value,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n }),\n });\n },\n latestDuration: latestDuration,\n }));\n\n const renderItem = useCallback(\n ({ item }: { item: string }) => {\n const intItem = parseInt(item);\n\n return (\n <View\n key={item}\n style={styles.pickerItemContainer}\n testID=\"picker-item\">\n <Text\n style={[\n styles.pickerItem,\n intItem > adjustedLimited.max ||\n intItem < adjustedLimited.min\n ? styles.disabledPickerItem\n : {},\n ]}>\n {item}\n </Text>\n </View>\n );\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n styles.disabledPickerItem,\n styles.pickerItem,\n styles.pickerItemContainer,\n ]\n );\n\n const onScroll = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n // this function is only used when the picker is in a modal\n // it is used to ensure that the modal gets the latest duration on clicking\n // the confirm button, even if the scrollview is still scrolling\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n newDuration = adjustedLimited.min;\n }\n latestDuration.current = newDuration;\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n disableInfiniteScroll,\n numberOfItems,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onMomentumScrollEnd = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n const targetScrollIndex =\n newIndex - (newDuration - adjustedLimited.max);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex >= 0\n ? targetScrollIndex\n : adjustedLimited.max - 1,\n }); // scroll down to max\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n const targetScrollIndex =\n newIndex + (adjustedLimited.min - newDuration);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex <= data.length - 1\n ? targetScrollIndex\n : adjustedLimited.min,\n }); // scroll up to min\n newDuration = adjustedLimited.min;\n }\n\n onDurationChange(newDuration);\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n data.length,\n disableInfiniteScroll,\n numberOfItems,\n onDurationChange,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onViewableItemsChanged = useCallback(\n ({ viewableItems }: { viewableItems: ViewToken[] }) => {\n if (\n viewableItems[0]?.index &&\n viewableItems[0].index < numberOfItems * 0.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index + numberOfItems,\n });\n } else if (\n viewableItems[0]?.index &&\n viewableItems[0].index >= numberOfItems * 2.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index - numberOfItems,\n });\n }\n },\n [numberOfItems]\n );\n\n const getItemLayout = useCallback(\n (_: ArrayLike<string> | null | undefined, index: number) => ({\n length: styles.pickerItemContainer.height,\n offset: styles.pickerItemContainer.height * index,\n index,\n }),\n [styles.pickerItemContainer.height]\n );\n\n const viewabilityConfigCallbackPairs =\n useRef<ViewabilityConfigCallbackPairs>([\n {\n viewabilityConfig: { viewAreaCoveragePercentThreshold: 25 },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]);\n\n return (\n <View\n testID={testID}\n style={{\n height:\n styles.pickerItemContainer.height * numberOfItemsToShow,\n overflow: \"hidden\",\n }}>\n <FlatList\n ref={flatListRef}\n data={data}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialScrollIndex}\n windowSize={numberOfItemsToShow}\n renderItem={renderItem}\n keyExtractor={KEY_EXTRACTOR}\n showsVerticalScrollIndicator={false}\n decelerationRate={0.88}\n scrollEventThrottle={16}\n snapToAlignment=\"start\"\n // used in place of snapToOffset due to bug on Android\n snapToOffsets={[...Array(data.length)].map(\n (_, i) => i * styles.pickerItemContainer.height\n )}\n viewabilityConfigCallbackPairs={\n !disableInfiniteScroll\n ? viewabilityConfigCallbackPairs?.current\n : undefined\n }\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScroll={aggressivelyGetLatestDuration ? onScroll : undefined}\n testID=\"duration-scroll-flatlist\"\n />\n <View style={styles.pickerLabelContainer} pointerEvents=\"none\">\n {typeof label === \"string\" ? (\n <Text style={styles.pickerLabel}>{label}</Text>\n ) : (\n label ?? null\n )}\n </View>\n {LinearGradient ? (\n <>\n <LinearGradient\n colors={[\n styles.pickerContainer.backgroundColor ??\n \"white\",\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n ]}\n start={{ x: 1, y: 0.3 }}\n end={{ x: 1, y: 1 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...topPickerGradientOverlayProps}\n style={[styles.pickerGradientOverlay, { top: 0 }]}\n />\n <LinearGradient\n colors={[\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n styles.pickerContainer.backgroundColor ??\n \"white\",\n ]}\n start={{ x: 1, y: 0 }}\n end={{ x: 1, y: 0.7 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...bottomPickerGradientOverlayProps}\n style={[\n styles.pickerGradientOverlay,\n { bottom: -1 },\n ]}\n />\n </>\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(DurationScroll);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_generateNumbers","_colorToRgba","_getAdjustedLimit","_getScrollIndex","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","KEY_EXTRACTOR","_","index","toString","DurationScroll","forwardRef","numberOfItems","label","initialValue","onDurationChange","padNumbersWithZero","disableInfiniteScroll","limit","aggressivelyGetLatestDuration","is12HourPicker","amLabel","pmLabel","padWithNItems","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","LinearGradient","testID","styles","ref","data","generateNumbers","repeatNTimes","generate12HourNumbers","numberOfItemsToShow","adjustedLimited","getAdjustedLimit","initialScrollIndex","getScrollIndex","value","latestDuration","useRef","flatListRef","useImperativeHandle","reset","options","_flatListRef$current","current","scrollToIndex","animated","setValue","_flatListRef$current2","renderItem","useCallback","item","stringItem","intItem","isAm","parseInt","includes","replace","createElement","View","style","pickerItemContainer","Text","pickerItem","max","min","disabledPickerItem","pickerAmPmContainer","pointerEvents","pickerAmPmLabel","onScroll","newIndex","Math","round","nativeEvent","contentOffset","y","height","newDuration","onMomentumScrollEnd","_flatListRef$current3","targetScrollIndex","_flatListRef$current4","onViewableItemsChanged","viewableItems","_viewableItems$","_viewableItems$2","_flatListRef$current5","_flatListRef$current6","getItemLayout","offset","viewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","overflow","FlatList","windowSize","keyExtractor","showsVerticalScrollIndicator","decelerationRate","scrollEventThrottle","snapToAlignment","snapToOffsets","Array","map","undefined","pickerLabelContainer","pickerLabel","Fragment","colors","pickerContainer","backgroundColor","colorToRgba","color","opacity","start","x","end","pickerGradientOverlay","top","bottom","_default","exports","React","memo"],"sources":["DurationScroll.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n MutableRefObject,\n} from \"react\";\nimport {\n View,\n Text,\n FlatList,\n ViewabilityConfigCallbackPairs,\n ViewToken,\n NativeSyntheticEvent,\n NativeScrollEvent,\n} from \"react-native\";\n\nimport {\n generate12HourNumbers,\n generateNumbers,\n} from \"../../utils/generateNumbers\";\nimport { colorToRgba } from \"../../utils/colorToRgba\";\nimport { generateStyles } from \"./TimerPicker.styles\";\nimport { getAdjustedLimit } from \"../../utils/getAdjustedLimit\";\nimport { getScrollIndex } from \"../../utils/getScrollIndex\";\n\nexport interface DurationScrollRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (value: number, options?: { animated?: boolean }) => void;\n latestDuration: MutableRefObject<number>;\n}\n\ntype LinearGradientPoint = {\n x: number;\n y: number;\n};\n\nexport type LinearGradientProps = React.ComponentProps<typeof View> & {\n colors: string[];\n locations?: number[] | null;\n start?: LinearGradientPoint | null;\n end?: LinearGradientPoint | null;\n};\n\nexport type LimitType = {\n max?: number;\n min?: number;\n};\n\ninterface DurationScrollProps {\n numberOfItems: number;\n label?: string | React.ReactElement;\n initialValue?: number;\n onDurationChange: (duration: number) => void;\n padNumbersWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n limit?: LimitType;\n aggressivelyGetLatestDuration: boolean;\n is12HourPicker?: boolean;\n amLabel?: string;\n pmLabel?: string;\n padWithNItems: number;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n testID?: string;\n styles: ReturnType<typeof generateStyles>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst KEY_EXTRACTOR = (_: any, index: number) => index.toString();\n\nconst DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(\n (\n {\n numberOfItems,\n label,\n initialValue = 0,\n onDurationChange,\n padNumbersWithZero = false,\n disableInfiniteScroll = false,\n limit,\n aggressivelyGetLatestDuration,\n is12HourPicker,\n amLabel,\n pmLabel,\n padWithNItems,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n LinearGradient,\n testID,\n styles,\n },\n ref\n ): React.ReactElement => {\n const data = !is12HourPicker\n ? generateNumbers(numberOfItems, {\n padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems,\n })\n : generate12HourNumbers({\n padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems,\n });\n\n const numberOfItemsToShow = 1 + padWithNItems * 2;\n\n const adjustedLimited = getAdjustedLimit(limit, numberOfItems);\n\n const initialScrollIndex = getScrollIndex({\n value: initialValue,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n });\n\n const latestDuration = useRef(0);\n\n const flatListRef = useRef<FlatList | null>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: initialScrollIndex,\n });\n },\n setValue: (value, options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: getScrollIndex({\n value: value,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n }),\n });\n },\n latestDuration: latestDuration,\n }));\n\n const renderItem = useCallback(\n ({ item }: { item: string }) => {\n let stringItem = item;\n let intItem: number;\n let isAm: boolean | undefined;\n\n if (!is12HourPicker) {\n intItem = parseInt(item);\n } else {\n isAm = item.includes(\"AM\");\n stringItem = item.replace(/\\s[AP]M/g, \"\");\n intItem = parseInt(stringItem);\n }\n\n return (\n <View\n key={item}\n style={styles.pickerItemContainer}\n testID=\"picker-item\">\n <Text\n style={[\n styles.pickerItem,\n intItem > adjustedLimited.max ||\n intItem < adjustedLimited.min\n ? styles.disabledPickerItem\n : {},\n ]}>\n {stringItem}\n </Text>\n {is12HourPicker ? (\n <View\n style={styles.pickerAmPmContainer}\n pointerEvents=\"none\">\n <Text style={[styles.pickerAmPmLabel]}>\n {isAm ? amLabel : pmLabel}\n </Text>\n </View>\n ) : null}\n </View>\n );\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n amLabel,\n is12HourPicker,\n pmLabel,\n styles.disabledPickerItem,\n styles.pickerAmPmContainer,\n styles.pickerAmPmLabel,\n styles.pickerItem,\n styles.pickerItemContainer,\n ]\n );\n\n const onScroll = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n // this function is only used when the picker is in a modal\n // it is used to ensure that the modal gets the latest duration on clicking\n // the confirm button, even if the scrollview is still scrolling\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n newDuration = adjustedLimited.min;\n }\n latestDuration.current = newDuration;\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n disableInfiniteScroll,\n numberOfItems,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onMomentumScrollEnd = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n const targetScrollIndex =\n newIndex - (newDuration - adjustedLimited.max);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex >= 0\n ? targetScrollIndex\n : adjustedLimited.max - 1,\n }); // scroll down to max\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n const targetScrollIndex =\n newIndex + (adjustedLimited.min - newDuration);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex <= data.length - 1\n ? targetScrollIndex\n : adjustedLimited.min,\n }); // scroll up to min\n newDuration = adjustedLimited.min;\n }\n\n onDurationChange(newDuration);\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n data.length,\n disableInfiniteScroll,\n numberOfItems,\n onDurationChange,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onViewableItemsChanged = useCallback(\n ({ viewableItems }: { viewableItems: ViewToken[] }) => {\n if (\n viewableItems[0]?.index &&\n viewableItems[0].index < numberOfItems * 0.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index + numberOfItems,\n });\n } else if (\n viewableItems[0]?.index &&\n viewableItems[0].index >= numberOfItems * 2.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index - numberOfItems,\n });\n }\n },\n [numberOfItems]\n );\n\n const getItemLayout = useCallback(\n (_: ArrayLike<string> | null | undefined, index: number) => ({\n length: styles.pickerItemContainer.height,\n offset: styles.pickerItemContainer.height * index,\n index,\n }),\n [styles.pickerItemContainer.height]\n );\n\n const viewabilityConfigCallbackPairs =\n useRef<ViewabilityConfigCallbackPairs>([\n {\n viewabilityConfig: { viewAreaCoveragePercentThreshold: 25 },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]);\n\n return (\n <View\n testID={testID}\n style={{\n height:\n styles.pickerItemContainer.height * numberOfItemsToShow,\n overflow: \"hidden\",\n }}>\n <FlatList\n ref={flatListRef}\n data={data}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialScrollIndex}\n windowSize={numberOfItemsToShow}\n renderItem={renderItem}\n keyExtractor={KEY_EXTRACTOR}\n showsVerticalScrollIndicator={false}\n decelerationRate={0.88}\n scrollEventThrottle={16}\n snapToAlignment=\"start\"\n // used in place of snapToOffset due to bug on Android\n snapToOffsets={[...Array(data.length)].map(\n (_, i) => i * styles.pickerItemContainer.height\n )}\n viewabilityConfigCallbackPairs={\n !disableInfiniteScroll\n ? viewabilityConfigCallbackPairs?.current\n : undefined\n }\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScroll={\n aggressivelyGetLatestDuration ? onScroll : undefined\n }\n testID=\"duration-scroll-flatlist\"\n />\n <View style={styles.pickerLabelContainer} pointerEvents=\"none\">\n {typeof label === \"string\" ? (\n <Text style={styles.pickerLabel}>{label}</Text>\n ) : (\n label ?? null\n )}\n </View>\n {LinearGradient ? (\n <>\n <LinearGradient\n colors={[\n styles.pickerContainer.backgroundColor ??\n \"white\",\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n ]}\n start={{ x: 1, y: 0.3 }}\n end={{ x: 1, y: 1 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...topPickerGradientOverlayProps}\n style={[styles.pickerGradientOverlay, { top: 0 }]}\n />\n <LinearGradient\n colors={[\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n styles.pickerContainer.backgroundColor ??\n \"white\",\n ]}\n start={{ x: 1, y: 0 }}\n end={{ x: 1, y: 0.7 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...bottomPickerGradientOverlayProps}\n style={[\n styles.pickerGradientOverlay,\n { bottom: -1 },\n ]}\n />\n </>\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(DurationScroll);\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ const DARK_MODE_TEXT_COLOR = "#E9E9E9";
12
12
  const LIGHT_MODE_BACKGROUND_COLOR = "#F1F1F1";
13
13
  const LIGHT_MODE_TEXT_COLOR = "#1B1B1B";
14
14
  const generateStyles = (customStyles, options) => {
15
- var _customStyles$pickerI, _customStyles$pickerI2, _customStyles$pickerI3;
15
+ var _customStyles$pickerL, _customStyles$text, _customStyles$pickerI, _customStyles$text2, _customStyles$pickerI2, _customStyles$pickerI3, _customStyles$pickerI4;
16
16
  return _reactNative.StyleSheet.create({
17
17
  pickerContainer: {
18
18
  flexDirection: "row",
@@ -26,17 +26,19 @@ const generateStyles = (customStyles, options) => {
26
26
  top: 0,
27
27
  bottom: 0,
28
28
  justifyContent: "center",
29
+ minWidth: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerL = customStyles.pickerLabel) === null || _customStyles$pickerL === void 0 ? void 0 : _customStyles$pickerL.fontSize) ?? (customStyles === null || customStyles === void 0 || (_customStyles$text = customStyles.text) === null || _customStyles$text === void 0 ? void 0 : _customStyles$text.fontSize) ?? 25) * 0.65,
29
30
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabelContainer)
30
31
  },
31
32
  pickerLabel: {
32
33
  fontSize: 18,
33
34
  fontWeight: "bold",
34
- marginTop: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI = customStyles.pickerItem) === null || _customStyles$pickerI === void 0 ? void 0 : _customStyles$pickerI.fontSize) ?? 25) / 6,
35
+ marginTop: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI = customStyles.pickerItem) === null || _customStyles$pickerI === void 0 ? void 0 : _customStyles$pickerI.fontSize) ?? (customStyles === null || customStyles === void 0 || (_customStyles$text2 = customStyles.text) === null || _customStyles$text2 === void 0 ? void 0 : _customStyles$text2.fontSize) ?? 25) / 6,
35
36
  color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
36
37
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
37
38
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabel)
38
39
  },
39
40
  pickerItemContainer: {
41
+ flexDirection: "row",
40
42
  height: 50,
41
43
  justifyContent: "center",
42
44
  alignItems: "center",
@@ -50,6 +52,24 @@ const generateStyles = (customStyles, options) => {
50
52
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
51
53
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerItem)
52
54
  },
55
+ pickerAmPmContainer: {
56
+ position: "absolute",
57
+ right: 0,
58
+ top: 0,
59
+ bottom: 0,
60
+ justifyContent: "center",
61
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabelContainer),
62
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerAmPmContainer)
63
+ },
64
+ pickerAmPmLabel: {
65
+ fontSize: 18,
66
+ fontWeight: "bold",
67
+ marginTop: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI3 = customStyles.pickerItem) === null || _customStyles$pickerI3 === void 0 ? void 0 : _customStyles$pickerI3.fontSize) ?? 25) / 6,
68
+ color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
69
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
70
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabel),
71
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerAmPmLabel)
72
+ },
53
73
  disabledPickerItem: {
54
74
  opacity: 0.2,
55
75
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.disabledPickerItem)
@@ -58,7 +78,7 @@ const generateStyles = (customStyles, options) => {
58
78
  position: "absolute",
59
79
  left: 0,
60
80
  right: 0,
61
- height: options.padWithNItems === 0 ? "30%" : ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI3 = customStyles.pickerItemContainer) === null || _customStyles$pickerI3 === void 0 ? void 0 : _customStyles$pickerI3.height) ?? 50) * 0.8,
81
+ height: options.padWithNItems === 0 ? "30%" : ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI4 = customStyles.pickerItemContainer) === null || _customStyles$pickerI4 === void 0 ? void 0 : _customStyles$pickerI4.height) ?? 50) * 0.8,
62
82
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerGradientOverlay)
63
83
  }
64
84
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","options","_customStyles$pickerI","_customStyles$pickerI2","_customStyles$pickerI3","StyleSheet","create","pickerContainer","flexDirection","marginRight","backgroundColor","theme","pickerLabelContainer","position","right","top","bottom","justifyContent","pickerLabel","fontSize","fontWeight","marginTop","pickerItem","color","text","pickerItemContainer","height","alignItems","width","textAlignVertical","disabledPickerItem","opacity","pickerGradientOverlay","left","padWithNItems","exports"],"sources":["TimerPicker.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nexport interface CustomTimerPickerStyles {\n theme?: \"light\" | \"dark\";\n backgroundColor?: string;\n text?: any;\n pickerContainer?: any;\n pickerLabelContainer?: any;\n pickerLabel?: any;\n pickerItemContainer?: any;\n pickerItem?: any;\n disabledPickerItem?: any;\n pickerGradientOverlay?: any;\n}\n\nconst DARK_MODE_BACKGROUND_COLOR = \"#232323\";\nconst DARK_MODE_TEXT_COLOR = \"#E9E9E9\";\nconst LIGHT_MODE_BACKGROUND_COLOR = \"#F1F1F1\";\nconst LIGHT_MODE_TEXT_COLOR = \"#1B1B1B\";\n\nexport const generateStyles = (\n customStyles: CustomTimerPickerStyles | undefined,\n options: { padWithNItems: number }\n) =>\n StyleSheet.create({\n pickerContainer: {\n flexDirection: \"row\",\n marginRight: \"8%\",\n backgroundColor:\n customStyles?.backgroundColor ??\n (customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n ...customStyles?.pickerContainer,\n },\n pickerLabelContainer: {\n position: \"absolute\",\n right: 4,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n ...customStyles?.pickerLabelContainer,\n },\n pickerLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop: (customStyles?.pickerItem?.fontSize ?? 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n },\n pickerItemContainer: {\n height: 50,\n justifyContent: \"center\",\n alignItems: \"center\",\n width: (customStyles?.pickerItem?.fontSize ?? 25) * 3.6,\n ...customStyles?.pickerItemContainer,\n },\n pickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n },\n disabledPickerItem: {\n opacity: 0.2,\n ...customStyles?.disabledPickerItem,\n },\n pickerGradientOverlay: {\n position: \"absolute\",\n left: 0,\n right: 0,\n height:\n options.padWithNItems === 0\n ? \"30%\"\n : (customStyles?.pickerItemContainer?.height ?? 50) * 0.8,\n ...customStyles?.pickerGradientOverlay,\n },\n });\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","options","_customStyles$pickerL","_customStyles$text","_customStyles$pickerI","_customStyles$text2","_customStyles$pickerI2","_customStyles$pickerI3","_customStyles$pickerI4","StyleSheet","create","pickerContainer","flexDirection","marginRight","backgroundColor","theme","pickerLabelContainer","position","right","top","bottom","justifyContent","minWidth","pickerLabel","fontSize","text","fontWeight","marginTop","pickerItem","color","pickerItemContainer","height","alignItems","width","textAlignVertical","pickerAmPmContainer","pickerAmPmLabel","disabledPickerItem","opacity","pickerGradientOverlay","left","padWithNItems","exports"],"sources":["TimerPicker.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nexport interface CustomTimerPickerStyles {\n theme?: \"light\" | \"dark\";\n backgroundColor?: string;\n text?: any;\n pickerContainer?: any;\n pickerLabelContainer?: any;\n pickerLabel?: any;\n pickerAmPmContainer?: any;\n pickerAmPmLabel?: any;\n pickerItemContainer?: any;\n pickerItem?: any;\n disabledPickerItem?: any;\n pickerGradientOverlay?: any;\n}\n\nconst DARK_MODE_BACKGROUND_COLOR = \"#232323\";\nconst DARK_MODE_TEXT_COLOR = \"#E9E9E9\";\nconst LIGHT_MODE_BACKGROUND_COLOR = \"#F1F1F1\";\nconst LIGHT_MODE_TEXT_COLOR = \"#1B1B1B\";\n\nexport const generateStyles = (\n customStyles: CustomTimerPickerStyles | undefined,\n options: { padWithNItems: number }\n) =>\n StyleSheet.create({\n pickerContainer: {\n flexDirection: \"row\",\n marginRight: \"8%\",\n backgroundColor:\n customStyles?.backgroundColor ??\n (customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n ...customStyles?.pickerContainer,\n },\n pickerLabelContainer: {\n position: \"absolute\",\n right: 4,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n minWidth:\n (customStyles?.pickerLabel?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) * 0.65,\n ...customStyles?.pickerLabelContainer,\n },\n pickerLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop:\n (customStyles?.pickerItem?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n },\n pickerItemContainer: {\n flexDirection: \"row\",\n height: 50,\n justifyContent: \"center\",\n alignItems: \"center\",\n width: (customStyles?.pickerItem?.fontSize ?? 25) * 3.6,\n ...customStyles?.pickerItemContainer,\n },\n pickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n },\n pickerAmPmContainer: {\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n ...customStyles?.pickerLabelContainer,\n ...customStyles?.pickerAmPmContainer,\n },\n pickerAmPmLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop: (customStyles?.pickerItem?.fontSize ?? 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n ...customStyles?.pickerAmPmLabel,\n },\n disabledPickerItem: {\n opacity: 0.2,\n ...customStyles?.disabledPickerItem,\n },\n pickerGradientOverlay: {\n position: \"absolute\",\n left: 0,\n right: 0,\n height:\n options.padWithNItems === 0\n ? \"30%\"\n : (customStyles?.pickerItemContainer?.height ?? 50) * 0.8,\n ...customStyles?.pickerGradientOverlay,\n },\n });\n"],"mappings":"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"}
@@ -12,31 +12,33 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
14
  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); }
15
- const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
16
- let {
17
- onDurationChange,
18
- initialHours = 0,
19
- initialMinutes = 0,
20
- initialSeconds = 0,
21
- hideHours = false,
22
- hideMinutes = false,
23
- hideSeconds = false,
24
- hourLimit,
25
- minuteLimit,
26
- secondLimit,
27
- hourLabel = "h",
28
- minuteLabel = "m",
29
- secondLabel = "s",
30
- padWithNItems = 1,
31
- disableInfiniteScroll = false,
32
- aggressivelyGetLatestDuration = false,
33
- LinearGradient,
34
- pickerContainerProps,
35
- pickerGradientOverlayProps,
36
- topPickerGradientOverlayProps,
37
- bottomPickerGradientOverlayProps,
38
- styles: customStyles
39
- } = _ref;
15
+ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)(({
16
+ onDurationChange,
17
+ initialHours = 0,
18
+ initialMinutes = 0,
19
+ initialSeconds = 0,
20
+ hideHours = false,
21
+ hideMinutes = false,
22
+ hideSeconds = false,
23
+ hourLimit,
24
+ minuteLimit,
25
+ secondLimit,
26
+ hourLabel,
27
+ minuteLabel,
28
+ secondLabel,
29
+ padWithNItems = 1,
30
+ disableInfiniteScroll = false,
31
+ aggressivelyGetLatestDuration = false,
32
+ use12HourPicker = false,
33
+ amLabel = "am",
34
+ pmLabel = "pm",
35
+ LinearGradient,
36
+ pickerContainerProps,
37
+ pickerGradientOverlayProps,
38
+ topPickerGradientOverlayProps,
39
+ bottomPickerGradientOverlayProps,
40
+ styles: customStyles
41
+ }, ref) => {
40
42
  const checkedPadWithNItems = padWithNItems >= 0 ? Math.round(padWithNItems) : 0;
41
43
  const styles = (0, _react.useMemo)(() => (0, _TimerPicker.generateStyles)(customStyles, {
42
44
  padWithNItems: checkedPadWithNItems
@@ -89,7 +91,7 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
89
91
  }), !hideHours ? /*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
90
92
  ref: hoursDurationScrollRef,
91
93
  numberOfItems: 23,
92
- label: hourLabel,
94
+ label: hourLabel ?? (!use12HourPicker ? "h" : undefined),
93
95
  initialValue: initialHours,
94
96
  aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
95
97
  onDurationChange: setSelectedHours,
@@ -100,12 +102,15 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
100
102
  padWithNItems: checkedPadWithNItems,
101
103
  limit: hourLimit,
102
104
  LinearGradient: LinearGradient,
105
+ is12HourPicker: use12HourPicker,
106
+ amLabel: amLabel,
107
+ pmLabel: pmLabel,
103
108
  styles: styles,
104
109
  testID: "duration-scroll-hour"
105
110
  }) : null, !hideMinutes ? /*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
106
111
  ref: minutesDurationScrollRef,
107
112
  numberOfItems: 59,
108
- label: minuteLabel,
113
+ label: minuteLabel ?? "m",
109
114
  initialValue: initialMinutes,
110
115
  aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
111
116
  onDurationChange: setSelectedMinutes,
@@ -122,7 +127,7 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
122
127
  }) : null, !hideSeconds ? /*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
123
128
  ref: secondsDurationScrollRef,
124
129
  numberOfItems: 59,
125
- label: secondLabel,
130
+ label: secondLabel ?? "s",
126
131
  initialValue: initialSeconds,
127
132
  aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
128
133
  onDurationChange: setSelectedSeconds,