react-native-timer-picker 2.3.1 → 2.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 (47) hide show
  1. package/README.md +97 -106
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +13 -27
  3. package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -1
  4. package/dist/commonjs/components/PickerItem/PickerItem.js +45 -0
  5. package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -0
  6. package/dist/commonjs/components/PickerItem/index.js +14 -0
  7. package/dist/commonjs/components/PickerItem/index.js.map +1 -0
  8. package/dist/commonjs/components/TimerPicker/TimerPicker.js +3 -3
  9. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
  10. package/dist/commonjs/components/TimerPicker/styles.js +36 -18
  11. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  12. package/dist/commonjs/components/TimerPickerModal/styles.js +4 -15
  13. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
  14. package/dist/commonjs/tests/generateNumbers.test.js +35 -35
  15. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -1
  16. package/dist/commonjs/tests/padNumber.test.js +18 -18
  17. package/dist/commonjs/tests/padNumber.test.js.map +1 -1
  18. package/dist/commonjs/utils/generateNumbers.js +4 -3
  19. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  20. package/dist/commonjs/utils/padNumber.js +7 -7
  21. package/dist/commonjs/utils/padNumber.js.map +1 -1
  22. package/dist/module/components/DurationScroll/DurationScroll.js +12 -27
  23. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
  24. package/dist/module/components/PickerItem/PickerItem.js +38 -0
  25. package/dist/module/components/PickerItem/PickerItem.js.map +1 -0
  26. package/dist/module/components/PickerItem/index.js +2 -0
  27. package/dist/module/components/PickerItem/index.js.map +1 -0
  28. package/dist/module/components/TimerPicker/TimerPicker.js +3 -3
  29. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
  30. package/dist/module/components/TimerPicker/styles.js +36 -18
  31. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  32. package/dist/module/components/TimerPickerModal/styles.js +4 -15
  33. package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
  34. package/dist/module/tests/generateNumbers.test.js +35 -35
  35. package/dist/module/tests/generateNumbers.test.js.map +1 -1
  36. package/dist/module/tests/padNumber.test.js +18 -18
  37. package/dist/module/tests/padNumber.test.js.map +1 -1
  38. package/dist/module/utils/generateNumbers.js +4 -3
  39. package/dist/module/utils/generateNumbers.js.map +1 -1
  40. package/dist/module/utils/padNumber.js +7 -7
  41. package/dist/module/utils/padNumber.js.map +1 -1
  42. package/dist/typescript/components/PickerItem/PickerItem.d.ts +14 -0
  43. package/dist/typescript/components/PickerItem/index.d.ts +1 -0
  44. package/dist/typescript/components/TimerPicker/styles.d.ts +26 -25
  45. package/dist/typescript/components/TimerPickerModal/styles.d.ts +255 -254
  46. package/dist/typescript/utils/padNumber.d.ts +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colorToRgba","_generateNumbers","_getAdjustedLimit","_getDurationAndIndexFromScrollOffset","_getInitialScrollIndex","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","keyExtractor","item","index","toString","DurationScroll","forwardRef","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","Audio","clickSoundAsset","decelerationRate","disableInfiniteScroll","FlatList","RNFlatList","Haptics","initialValue","interval","is12HourPicker","isDisabled","label","limit","LinearGradient","MaskedView","maximumValue","onDurationChange","padNumbersWithZero","padWithNItems","pickerFeedback","pickerGradientOverlayProps","pmLabel","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","styles","testID","numberOfItems","useMemo","Math","floor","safeRepeatNumbersNTimes","isNaN","max","round","numbersForFlatList","generate12HourNumbers","repeatNTimes","generateNumbers","initialScrollIndex","getInitialScrollIndex","value","adjustedLimited","getAdjustedLimit","numberOfItemsToShow","latestDuration","useRef","lastFeedbackIndex","flatListRef","clickSound","setClickSound","useState","useEffect","soundInstance","loadSound","sound","newSound","Sound","createAsync","uri","shouldPlay","error","console","warn","_soundInstance","unloadAsync","playClickSound","useCallback","replayAsync","renderItem","stringItem","intItem","isAm","parseInt","includes","replace","createElement","View","key","style","pickerItemContainer","Text","pickerItem","min","disabledPickerItem","pointerEvents","pickerAmPmContainer","pickerAmPmLabel","onScroll","newValues","getDurationAndIndexFromScrollOffset","itemHeight","height","yContentOffset","nativeEvent","contentOffset","y","duration","current","feedbackIndex","selectionAsync","onMomentumScrollEnd","_flatListRef$current","targetScrollIndex","scrollToIndex","animated","_flatListRef$current2","onViewableItemsChanged","viewableItems","_viewableItems$","_viewableItems$2","_flatListRef$current3","_flatListRef$current4","viewabilityConfigCallbackPairs","setViewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","undefined","flatListRenderKey","setFlatListRenderKey","initialRender","prev","getItemLayout","_","offset","useImperativeHandle","reset","options","_flatListRef$current5","setValue","_flatListRef$current6","renderContent","Fragment","contentContainerStyle","durationScrollFlatListContentContainer","data","nestedScrollEnabled","scrollEnabled","scrollEventThrottle","showsVerticalScrollIndicator","snapToAlignment","snapToOffsets","Array","map","durationScrollFlatList","windowSize","pickerLabelContainer","pickerLabel","renderLinearGradient","colors","backgroundColor","pickerContainer","transparentBackgroundColor","colorToRgba","color","opacity","gradientHeight","locations","pickerGradientOverlay","durationScrollFlatListContainer","disabledPickerContainer","maskElement","maskedView","_default","exports","React","memo"],"sources":["DurationScroll.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n useState,\n useEffect,\n useMemo,\n} from \"react\";\n\nimport { View, Text, FlatList as RNFlatList } from \"react-native\";\nimport type {\n ViewabilityConfigCallbackPairs,\n FlatListProps,\n} from \"react-native\";\n\nimport { colorToRgba } from \"../../utils/colorToRgba\";\nimport {\n generate12HourNumbers,\n generateNumbers,\n} from \"../../utils/generateNumbers\";\nimport { getAdjustedLimit } from \"../../utils/getAdjustedLimit\";\nimport { getDurationAndIndexFromScrollOffset } from \"../../utils/getDurationAndIndexFromScrollOffset\";\nimport { getInitialScrollIndex } from \"../../utils/getInitialScrollIndex\";\n\nimport type {\n DurationScrollProps,\n DurationScrollRef,\n ExpoAvAudioInstance,\n} from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst keyExtractor = (item: any, index: number) => index.toString();\n\nconst DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration,\n allowFontScaling = false,\n amLabel,\n Audio,\n clickSoundAsset,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n FlatList = RNFlatList,\n Haptics,\n initialValue = 0,\n interval,\n is12HourPicker,\n isDisabled,\n label,\n limit,\n LinearGradient,\n MaskedView,\n maximumValue,\n onDurationChange,\n padNumbersWithZero = false,\n padWithNItems,\n pickerFeedback,\n pickerGradientOverlayProps,\n pmLabel,\n repeatNumbersNTimes = 3,\n repeatNumbersNTimesNotExplicitlySet,\n styles,\n testID,\n } = props;\n\n const numberOfItems = useMemo(() => {\n // guard against negative maximum values\n if (maximumValue < 0) {\n return 1;\n }\n\n return Math.floor(maximumValue / interval) + 1;\n }, [interval, maximumValue]);\n\n const safeRepeatNumbersNTimes = useMemo(() => {\n // do not repeat numbers if there is only one option\n if (numberOfItems === 1) {\n return 1;\n }\n\n if (!disableInfiniteScroll && repeatNumbersNTimes < 2) {\n return 2;\n } else if (repeatNumbersNTimes < 1 || isNaN(repeatNumbersNTimes)) {\n return 1;\n }\n\n // if this variable is not explicitly set, we calculate a reasonable value based on\n // the number of items in the picker, avoiding regular jumps up/down the list\n // whilst avoiding rendering too many items in the picker\n if (repeatNumbersNTimesNotExplicitlySet) {\n return Math.max(Math.round(180 / numberOfItems), 1);\n }\n\n return Math.round(repeatNumbersNTimes);\n }, [\n disableInfiniteScroll,\n numberOfItems,\n repeatNumbersNTimes,\n repeatNumbersNTimesNotExplicitlySet,\n ]);\n\n const numbersForFlatList = useMemo(() => {\n if (is12HourPicker) {\n return generate12HourNumbers({\n padNumbersWithZero,\n repeatNTimes: safeRepeatNumbersNTimes,\n disableInfiniteScroll,\n padWithNItems,\n interval,\n });\n }\n\n return generateNumbers(numberOfItems, {\n padNumbersWithZero,\n repeatNTimes: safeRepeatNumbersNTimes,\n disableInfiniteScroll,\n padWithNItems,\n interval,\n });\n }, [\n disableInfiniteScroll,\n is12HourPicker,\n interval,\n numberOfItems,\n padNumbersWithZero,\n padWithNItems,\n safeRepeatNumbersNTimes,\n ]);\n\n const initialScrollIndex = useMemo(\n () =>\n getInitialScrollIndex({\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n repeatNumbersNTimes: safeRepeatNumbersNTimes,\n value: initialValue,\n }),\n [\n disableInfiniteScroll,\n initialValue,\n interval,\n numberOfItems,\n padWithNItems,\n safeRepeatNumbersNTimes,\n ]\n );\n\n const adjustedLimited = useMemo(\n () => getAdjustedLimit(limit, numberOfItems, interval),\n [interval, limit, numberOfItems]\n );\n\n const numberOfItemsToShow = 1 + padWithNItems * 2;\n\n // keep track of the latest duration as it scrolls\n const latestDuration = useRef(0);\n // keep track of the last index scrolled past for haptic/audio feedback\n const lastFeedbackIndex = useRef(0);\n\n const flatListRef = useRef<RNFlatList | null>(null);\n\n const [clickSound, setClickSound] =\n useState<ExpoAvAudioInstance | null>(null);\n\n useEffect(() => {\n // Audio prop deprecated in v2.2.0 (use pickerFeedback instead) - will be removed in a future version\n\n // preload the sound when the component mounts\n let soundInstance: ExpoAvAudioInstance | null = null;\n\n const loadSound = async () => {\n if (!Audio) {\n return;\n }\n\n try {\n const { sound: newSound } = await Audio.Sound.createAsync(\n clickSoundAsset ?? {\n // use a hosted sound as a fallback (do not use local asset due to loader issues\n // in some environments when including mp3 in library)\n uri: \"https://drive.google.com/uc?export=download&id=10e1YkbNsRh-vGx1jmS1Nntz8xzkBp4_I\",\n },\n { shouldPlay: false }\n );\n soundInstance = newSound;\n setClickSound(newSound);\n } catch (error) {\n console.warn(\"Failed to load click sound:\", error);\n }\n };\n\n loadSound();\n\n return () => {\n // unload sound when component unmounts\n soundInstance?.unloadAsync();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [Audio]);\n\n const playClickSound = useCallback(async () => {\n if (!clickSound) return;\n\n try {\n await clickSound.replayAsync();\n } catch (error) {\n console.warn(\"Failed to play click sound:\", error);\n }\n }, [clickSound]);\n\n const renderItem = useCallback<\n NonNullable<FlatListProps<string>[\"renderItem\"]>\n >(\n ({ item }) => {\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 allowFontScaling={allowFontScaling}\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 pointerEvents=\"none\"\n style={styles.pickerAmPmContainer}>\n <Text\n allowFontScaling={allowFontScaling}\n 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 allowFontScaling,\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 NonNullable<FlatListProps<string>[\"onScroll\"]>\n >(\n (e) => {\n // this function is only used when the picker is in a modal and/or has Haptic/Audio feedback\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 if (\n !aggressivelyGetLatestDuration &&\n !Haptics &&\n !Audio &&\n !pickerFeedback\n ) {\n return;\n }\n\n if (aggressivelyGetLatestDuration) {\n const newValues = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll,\n interval,\n itemHeight: styles.pickerItemContainer.height,\n numberOfItems,\n padWithNItems,\n yContentOffset: e.nativeEvent.contentOffset.y,\n });\n\n if (newValues.duration !== latestDuration.current) {\n // check limits\n if (newValues.duration > adjustedLimited.max) {\n newValues.duration = adjustedLimited.max;\n } else if (newValues.duration < adjustedLimited.min) {\n newValues.duration = adjustedLimited.min;\n }\n\n latestDuration.current = newValues.duration;\n }\n }\n\n if (pickerFeedback || Haptics || Audio) {\n const feedbackIndex = Math.round(\n (e.nativeEvent.contentOffset.y +\n styles.pickerItemContainer.height / 2) /\n styles.pickerItemContainer.height\n );\n\n if (feedbackIndex !== lastFeedbackIndex.current) {\n // this check stops the feedback firing when the component mounts\n if (lastFeedbackIndex.current) {\n // fire haptic feedback if available\n try {\n Haptics?.selectionAsync();\n } catch {\n // do nothing\n }\n\n // play click sound if available\n try {\n playClickSound();\n } catch {\n // do nothing\n }\n\n // fire custom feedback if available\n try {\n pickerFeedback?.();\n } catch {\n // do nothing\n }\n }\n\n lastFeedbackIndex.current = feedbackIndex;\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n adjustedLimited.max,\n adjustedLimited.min,\n aggressivelyGetLatestDuration,\n playClickSound,\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onMomentumScrollEnd = useCallback<\n NonNullable<FlatListProps<string>[\"onMomentumScrollEnd\"]>\n >(\n (e) => {\n const newValues = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll,\n interval,\n itemHeight: styles.pickerItemContainer.height,\n numberOfItems,\n padWithNItems,\n yContentOffset: e.nativeEvent.contentOffset.y,\n });\n\n // check limits\n if (newValues.duration > adjustedLimited.max) {\n const targetScrollIndex =\n newValues.index -\n (newValues.duration - 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 newValues.duration = adjustedLimited.max;\n } else if (newValues.duration < adjustedLimited.min) {\n const targetScrollIndex =\n newValues.index +\n (adjustedLimited.min - newValues.duration);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex <= numbersForFlatList.length - 1\n ? targetScrollIndex\n : adjustedLimited.min,\n }); // scroll up to min\n newValues.duration = adjustedLimited.min;\n }\n\n onDurationChange(newValues.duration);\n },\n [\n disableInfiniteScroll,\n interval,\n styles.pickerItemContainer.height,\n numberOfItems,\n padWithNItems,\n adjustedLimited.max,\n adjustedLimited.min,\n onDurationChange,\n numbersForFlatList.length,\n ]\n );\n\n const onViewableItemsChanged = useCallback<\n NonNullable<FlatListProps<string>[\"onViewableItemsChanged\"]>\n >(\n ({ viewableItems }) => {\n if (numberOfItems === 1) {\n return;\n }\n\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 >=\n numberOfItems * (safeRepeatNumbersNTimes - 0.5)\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index - numberOfItems,\n });\n }\n },\n [numberOfItems, safeRepeatNumbersNTimes]\n );\n\n const [\n viewabilityConfigCallbackPairs,\n setViewabilityConfigCallbackPairs,\n ] = useState<ViewabilityConfigCallbackPairs | undefined>(\n !disableInfiniteScroll\n ? [\n {\n viewabilityConfig: {\n viewAreaCoveragePercentThreshold: 0,\n },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]\n : undefined\n );\n\n const [flatListRenderKey, setFlatListRenderKey] = useState(0);\n\n const initialRender = useRef(true);\n\n useEffect(() => {\n // don't run on first render\n if (initialRender.current) {\n initialRender.current = false;\n return;\n }\n\n // if the onViewableItemsChanged callback changes, we need to update viewabilityConfigCallbackPairs\n // which requires the FlatList to be remounted, hence the increase of the FlatList key\n setFlatListRenderKey((prev) => prev + 1);\n setViewabilityConfigCallbackPairs(\n !disableInfiniteScroll\n ? [\n {\n viewabilityConfig: {\n viewAreaCoveragePercentThreshold: 0,\n },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]\n : undefined\n );\n }, [disableInfiniteScroll, onViewableItemsChanged]);\n\n const getItemLayout = useCallback<\n NonNullable<FlatListProps<string>[\"getItemLayout\"]>\n >(\n (_, index) => ({\n length: styles.pickerItemContainer.height,\n offset: styles.pickerItemContainer.height * index,\n index,\n }),\n [styles.pickerItemContainer.height]\n );\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: getInitialScrollIndex({\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n repeatNumbersNTimes: safeRepeatNumbersNTimes,\n value: value,\n }),\n });\n },\n latestDuration: latestDuration,\n }));\n\n const renderContent = useMemo(() => {\n return (\n <>\n <FlatList\n key={flatListRenderKey}\n ref={flatListRef}\n contentContainerStyle={\n styles.durationScrollFlatListContentContainer\n }\n data={numbersForFlatList}\n decelerationRate={decelerationRate}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialScrollIndex}\n keyExtractor={keyExtractor}\n nestedScrollEnabled\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScroll={onScroll}\n renderItem={renderItem}\n scrollEnabled={!isDisabled}\n scrollEventThrottle={16}\n showsVerticalScrollIndicator={false}\n snapToAlignment=\"start\"\n // used in place of snapToInterval due to bug on Android\n snapToOffsets={[\n ...Array(numbersForFlatList.length),\n ].map((_, i) => i * styles.pickerItemContainer.height)}\n style={styles.durationScrollFlatList}\n testID=\"duration-scroll-flatlist\"\n viewabilityConfigCallbackPairs={\n viewabilityConfigCallbackPairs\n }\n windowSize={numberOfItemsToShow}\n />\n <View\n pointerEvents=\"none\"\n style={styles.pickerLabelContainer}>\n {typeof label === \"string\" ? (\n <Text\n allowFontScaling={allowFontScaling}\n style={styles.pickerLabel}>\n {label}\n </Text>\n ) : (\n label ?? null\n )}\n </View>\n </>\n );\n }, [\n FlatList,\n allowFontScaling,\n flatListRenderKey,\n getItemLayout,\n initialScrollIndex,\n isDisabled,\n label,\n numberOfItemsToShow,\n numbersForFlatList,\n onMomentumScrollEnd,\n onScroll,\n renderItem,\n styles.durationScrollFlatList,\n styles.durationScrollFlatListContentContainer,\n styles.pickerItemContainer.height,\n styles.pickerLabel,\n styles.pickerLabelContainer,\n viewabilityConfigCallbackPairs,\n decelerationRate,\n ]);\n\n const renderLinearGradient = useMemo(() => {\n if (!LinearGradient) {\n return null;\n }\n\n let colors: string[];\n\n if (MaskedView) {\n // if using masked view, we only care about the opacity\n colors = [\n \"rgba(0,0,0,0)\",\n \"rgba(0,0,0,1)\",\n \"rgba(0,0,0,1)\",\n \"rgba(0,0,0,0)\",\n ];\n } else {\n const backgroundColor =\n styles.pickerContainer.backgroundColor ?? \"white\";\n const transparentBackgroundColor = colorToRgba({\n color: backgroundColor,\n opacity: 0,\n });\n colors = [\n backgroundColor,\n transparentBackgroundColor,\n transparentBackgroundColor,\n backgroundColor,\n ];\n }\n\n // calculate the gradient height to cover the top item and bottom item\n const gradientHeight =\n padWithNItems > 0 ? 1 / (padWithNItems * 2 + 1) : 0.3;\n\n return (\n <LinearGradient\n colors={colors}\n locations={[0, gradientHeight, 1 - gradientHeight, 1]}\n pointerEvents=\"none\"\n style={styles.pickerGradientOverlay}\n {...pickerGradientOverlayProps}\n />\n );\n }, [\n LinearGradient,\n MaskedView,\n padWithNItems,\n pickerGradientOverlayProps,\n styles.pickerContainer.backgroundColor,\n styles.pickerGradientOverlay,\n ]);\n\n return (\n <View\n pointerEvents={isDisabled ? \"none\" : undefined}\n style={[\n styles.durationScrollFlatListContainer,\n {\n height:\n styles.pickerItemContainer.height *\n numberOfItemsToShow,\n },\n isDisabled && styles.disabledPickerContainer,\n ]}\n testID={testID}>\n {MaskedView ? (\n <MaskedView\n maskElement={renderLinearGradient}\n style={[styles.maskedView]}>\n {renderContent}\n </MaskedView>\n ) : (\n <>\n {renderContent}\n {renderLinearGradient}\n </>\n )}\n </View>\n );\n }\n);\n\nexport default React.memo(DurationScroll);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colorToRgba","_generateNumbers","_getAdjustedLimit","_getDurationAndIndexFromScrollOffset","_getInitialScrollIndex","_PickerItem","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","keyExtractor","item","index","toString","DurationScroll","forwardRef","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","Audio","clickSoundAsset","decelerationRate","disableInfiniteScroll","FlatList","RNFlatList","Haptics","initialValue","interval","is12HourPicker","isDisabled","label","limit","LinearGradient","MaskedView","maximumValue","onDurationChange","padNumbersWithZero","padWithNItems","pickerFeedback","pickerGradientOverlayProps","pmLabel","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","styles","testID","numberOfItems","useMemo","Math","floor","safeRepeatNumbersNTimes","isNaN","max","round","numbersForFlatList","generate12HourNumbers","repeatNTimes","generateNumbers","initialScrollIndex","getInitialScrollIndex","value","adjustedLimited","getAdjustedLimit","numberOfItemsToShow","latestDuration","useRef","lastFeedbackIndex","flatListRef","clickSound","setClickSound","useState","useEffect","soundInstance","loadSound","sound","newSound","Sound","createAsync","uri","shouldPlay","error","console","warn","_soundInstance","unloadAsync","playClickSound","useCallback","replayAsync","renderItem","createElement","adjustedLimitedMax","adjustedLimitedMin","min","onScroll","newValues","getDurationAndIndexFromScrollOffset","itemHeight","pickerItemContainer","height","yContentOffset","nativeEvent","contentOffset","y","duration","current","feedbackIndex","selectionAsync","onMomentumScrollEnd","_flatListRef$current","targetScrollIndex","scrollToIndex","animated","_flatListRef$current2","onViewableItemsChanged","viewableItems","_viewableItems$","_viewableItems$2","_flatListRef$current3","_flatListRef$current4","viewabilityConfigCallbackPairs","setViewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","undefined","flatListRenderKey","setFlatListRenderKey","initialRender","prev","getItemLayout","_","offset","useImperativeHandle","reset","options","_flatListRef$current5","setValue","_flatListRef$current6","renderContent","Fragment","key","contentContainerStyle","durationScrollFlatListContentContainer","data","nestedScrollEnabled","scrollEnabled","scrollEventThrottle","showsVerticalScrollIndicator","snapToAlignment","snapToOffsets","Array","map","style","durationScrollFlatList","windowSize","View","pointerEvents","pickerLabelContainer","Text","pickerLabel","renderLinearGradient","colors","backgroundColor","pickerContainer","transparentBackgroundColor","colorToRgba","color","opacity","gradientHeight","locations","pickerGradientOverlay","durationScrollFlatListContainer","disabledPickerContainer","maskElement","maskedView","_default","exports","React","memo"],"sources":["DurationScroll.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n useState,\n useEffect,\n useMemo,\n} from \"react\";\n\nimport { View, Text, FlatList as RNFlatList } from \"react-native\";\nimport type {\n ViewabilityConfigCallbackPairs,\n FlatListProps,\n} from \"react-native\";\n\nimport { colorToRgba } from \"../../utils/colorToRgba\";\nimport {\n generate12HourNumbers,\n generateNumbers,\n} from \"../../utils/generateNumbers\";\nimport { getAdjustedLimit } from \"../../utils/getAdjustedLimit\";\nimport { getDurationAndIndexFromScrollOffset } from \"../../utils/getDurationAndIndexFromScrollOffset\";\nimport { getInitialScrollIndex } from \"../../utils/getInitialScrollIndex\";\nimport PickerItem from \"../PickerItem\";\n\nimport type {\n DurationScrollProps,\n DurationScrollRef,\n ExpoAvAudioInstance,\n} from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst keyExtractor = (item: any, index: number) => index.toString();\n\nconst DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration,\n allowFontScaling = false,\n amLabel,\n Audio,\n clickSoundAsset,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n FlatList = RNFlatList,\n Haptics,\n initialValue = 0,\n interval,\n is12HourPicker,\n isDisabled,\n label,\n limit,\n LinearGradient,\n MaskedView,\n maximumValue,\n onDurationChange,\n padNumbersWithZero = false,\n padWithNItems,\n pickerFeedback,\n pickerGradientOverlayProps,\n pmLabel,\n repeatNumbersNTimes = 3,\n repeatNumbersNTimesNotExplicitlySet,\n styles,\n testID,\n } = props;\n\n const numberOfItems = useMemo(() => {\n // guard against negative maximum values\n if (maximumValue < 0) {\n return 1;\n }\n\n return Math.floor(maximumValue / interval) + 1;\n }, [interval, maximumValue]);\n\n const safeRepeatNumbersNTimes = useMemo(() => {\n // do not repeat numbers if there is only one option\n if (numberOfItems === 1) {\n return 1;\n }\n\n if (!disableInfiniteScroll && repeatNumbersNTimes < 2) {\n return 2;\n } else if (repeatNumbersNTimes < 1 || isNaN(repeatNumbersNTimes)) {\n return 1;\n }\n\n // if this variable is not explicitly set, we calculate a reasonable value based on\n // the number of items in the picker, avoiding regular jumps up/down the list\n // whilst avoiding rendering too many items in the picker\n if (repeatNumbersNTimesNotExplicitlySet) {\n return Math.max(Math.round(180 / numberOfItems), 1);\n }\n\n return Math.round(repeatNumbersNTimes);\n }, [\n disableInfiniteScroll,\n numberOfItems,\n repeatNumbersNTimes,\n repeatNumbersNTimesNotExplicitlySet,\n ]);\n\n const numbersForFlatList = useMemo(() => {\n if (is12HourPicker) {\n return generate12HourNumbers({\n padNumbersWithZero,\n repeatNTimes: safeRepeatNumbersNTimes,\n disableInfiniteScroll,\n padWithNItems,\n interval,\n });\n }\n\n return generateNumbers(numberOfItems, {\n padNumbersWithZero,\n repeatNTimes: safeRepeatNumbersNTimes,\n disableInfiniteScroll,\n padWithNItems,\n interval,\n });\n }, [\n disableInfiniteScroll,\n is12HourPicker,\n interval,\n numberOfItems,\n padNumbersWithZero,\n padWithNItems,\n safeRepeatNumbersNTimes,\n ]);\n\n const initialScrollIndex = useMemo(\n () =>\n getInitialScrollIndex({\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n repeatNumbersNTimes: safeRepeatNumbersNTimes,\n value: initialValue,\n }),\n [\n disableInfiniteScroll,\n initialValue,\n interval,\n numberOfItems,\n padWithNItems,\n safeRepeatNumbersNTimes,\n ]\n );\n\n const adjustedLimited = useMemo(\n () => getAdjustedLimit(limit, numberOfItems, interval),\n [interval, limit, numberOfItems]\n );\n\n const numberOfItemsToShow = 1 + padWithNItems * 2;\n\n // keep track of the latest duration as it scrolls\n const latestDuration = useRef(0);\n // keep track of the last index scrolled past for haptic/audio feedback\n const lastFeedbackIndex = useRef(0);\n\n const flatListRef = useRef<RNFlatList | null>(null);\n\n const [clickSound, setClickSound] =\n useState<ExpoAvAudioInstance | null>(null);\n\n useEffect(() => {\n // Audio prop deprecated in v2.2.0 (use pickerFeedback instead) - will be removed in a future version\n\n // preload the sound when the component mounts\n let soundInstance: ExpoAvAudioInstance | null = null;\n\n const loadSound = async () => {\n if (!Audio) {\n return;\n }\n\n try {\n const { sound: newSound } = await Audio.Sound.createAsync(\n clickSoundAsset ?? {\n // use a hosted sound as a fallback (do not use local asset due to loader issues\n // in some environments when including mp3 in library)\n uri: \"https://drive.google.com/uc?export=download&id=10e1YkbNsRh-vGx1jmS1Nntz8xzkBp4_I\",\n },\n { shouldPlay: false }\n );\n soundInstance = newSound;\n setClickSound(newSound);\n } catch (error) {\n console.warn(\"Failed to load click sound:\", error);\n }\n };\n\n loadSound();\n\n return () => {\n // unload sound when component unmounts\n soundInstance?.unloadAsync();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [Audio]);\n\n const playClickSound = useCallback(async () => {\n if (!clickSound) return;\n\n try {\n await clickSound.replayAsync();\n } catch (error) {\n console.warn(\"Failed to play click sound:\", error);\n }\n }, [clickSound]);\n\n const renderItem = useCallback<\n NonNullable<FlatListProps<string>[\"renderItem\"]>\n >(\n ({ item }) => (\n <PickerItem\n adjustedLimitedMax={adjustedLimited.max}\n adjustedLimitedMin={adjustedLimited.min}\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n is12HourPicker={is12HourPicker}\n item={item}\n pmLabel={pmLabel}\n styles={styles}\n />\n ),\n [\n adjustedLimited.max,\n adjustedLimited.min,\n allowFontScaling,\n amLabel,\n is12HourPicker,\n pmLabel,\n styles,\n ]\n );\n\n const onScroll = useCallback<\n NonNullable<FlatListProps<string>[\"onScroll\"]>\n >(\n (e) => {\n // this function is only used when the picker is in a modal and/or has Haptic/Audio feedback\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 if (\n !aggressivelyGetLatestDuration &&\n !Haptics &&\n !Audio &&\n !pickerFeedback\n ) {\n return;\n }\n\n if (aggressivelyGetLatestDuration) {\n const newValues = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll,\n interval,\n itemHeight: styles.pickerItemContainer.height,\n numberOfItems,\n padWithNItems,\n yContentOffset: e.nativeEvent.contentOffset.y,\n });\n\n if (newValues.duration !== latestDuration.current) {\n // check limits\n if (newValues.duration > adjustedLimited.max) {\n newValues.duration = adjustedLimited.max;\n } else if (newValues.duration < adjustedLimited.min) {\n newValues.duration = adjustedLimited.min;\n }\n\n latestDuration.current = newValues.duration;\n }\n }\n\n if (pickerFeedback || Haptics || Audio) {\n const feedbackIndex = Math.round(\n (e.nativeEvent.contentOffset.y +\n styles.pickerItemContainer.height / 2) /\n styles.pickerItemContainer.height\n );\n\n if (feedbackIndex !== lastFeedbackIndex.current) {\n // this check stops the feedback firing when the component mounts\n if (lastFeedbackIndex.current) {\n // fire haptic feedback if available\n try {\n Haptics?.selectionAsync();\n } catch {\n // do nothing\n }\n\n // play click sound if available\n try {\n playClickSound();\n } catch {\n // do nothing\n }\n\n // fire custom feedback if available\n try {\n pickerFeedback?.();\n } catch {\n // do nothing\n }\n }\n\n lastFeedbackIndex.current = feedbackIndex;\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n adjustedLimited.max,\n adjustedLimited.min,\n aggressivelyGetLatestDuration,\n playClickSound,\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onMomentumScrollEnd = useCallback<\n NonNullable<FlatListProps<string>[\"onMomentumScrollEnd\"]>\n >(\n (e) => {\n const newValues = getDurationAndIndexFromScrollOffset({\n disableInfiniteScroll,\n interval,\n itemHeight: styles.pickerItemContainer.height,\n numberOfItems,\n padWithNItems,\n yContentOffset: e.nativeEvent.contentOffset.y,\n });\n\n // check limits\n if (newValues.duration > adjustedLimited.max) {\n const targetScrollIndex =\n newValues.index -\n (newValues.duration - 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 newValues.duration = adjustedLimited.max;\n } else if (newValues.duration < adjustedLimited.min) {\n const targetScrollIndex =\n newValues.index +\n (adjustedLimited.min - newValues.duration);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex <= numbersForFlatList.length - 1\n ? targetScrollIndex\n : adjustedLimited.min,\n }); // scroll up to min\n newValues.duration = adjustedLimited.min;\n }\n\n onDurationChange(newValues.duration);\n },\n [\n disableInfiniteScroll,\n interval,\n styles.pickerItemContainer.height,\n numberOfItems,\n padWithNItems,\n adjustedLimited.max,\n adjustedLimited.min,\n onDurationChange,\n numbersForFlatList.length,\n ]\n );\n\n const onViewableItemsChanged = useCallback<\n NonNullable<FlatListProps<string>[\"onViewableItemsChanged\"]>\n >(\n ({ viewableItems }) => {\n if (numberOfItems === 1) {\n return;\n }\n\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 >=\n numberOfItems * (safeRepeatNumbersNTimes - 0.5)\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index - numberOfItems,\n });\n }\n },\n [numberOfItems, safeRepeatNumbersNTimes]\n );\n\n const [\n viewabilityConfigCallbackPairs,\n setViewabilityConfigCallbackPairs,\n ] = useState<ViewabilityConfigCallbackPairs | undefined>(\n !disableInfiniteScroll\n ? [\n {\n viewabilityConfig: {\n viewAreaCoveragePercentThreshold: 0,\n },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]\n : undefined\n );\n\n const [flatListRenderKey, setFlatListRenderKey] = useState(0);\n\n const initialRender = useRef(true);\n\n useEffect(() => {\n // don't run on first render\n if (initialRender.current) {\n initialRender.current = false;\n return;\n }\n\n // if the onViewableItemsChanged callback changes, we need to update viewabilityConfigCallbackPairs\n // which requires the FlatList to be remounted, hence the increase of the FlatList key\n setFlatListRenderKey((prev) => prev + 1);\n setViewabilityConfigCallbackPairs(\n !disableInfiniteScroll\n ? [\n {\n viewabilityConfig: {\n viewAreaCoveragePercentThreshold: 0,\n },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]\n : undefined\n );\n }, [disableInfiniteScroll, onViewableItemsChanged]);\n\n const getItemLayout = useCallback<\n NonNullable<FlatListProps<string>[\"getItemLayout\"]>\n >(\n (_, index) => ({\n length: styles.pickerItemContainer.height,\n offset: styles.pickerItemContainer.height * index,\n index,\n }),\n [styles.pickerItemContainer.height]\n );\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: getInitialScrollIndex({\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n repeatNumbersNTimes: safeRepeatNumbersNTimes,\n value: value,\n }),\n });\n },\n latestDuration: latestDuration,\n }));\n\n const renderContent = useMemo(() => {\n return (\n <>\n <FlatList\n key={flatListRenderKey}\n ref={flatListRef}\n contentContainerStyle={\n styles.durationScrollFlatListContentContainer\n }\n data={numbersForFlatList}\n decelerationRate={decelerationRate}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialScrollIndex}\n keyExtractor={keyExtractor}\n nestedScrollEnabled\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScroll={onScroll}\n renderItem={renderItem}\n scrollEnabled={!isDisabled}\n scrollEventThrottle={16}\n showsVerticalScrollIndicator={false}\n snapToAlignment=\"start\"\n // used in place of snapToInterval due to bug on Android\n snapToOffsets={[\n ...Array(numbersForFlatList.length),\n ].map((_, i) => i * styles.pickerItemContainer.height)}\n style={styles.durationScrollFlatList}\n testID=\"duration-scroll-flatlist\"\n viewabilityConfigCallbackPairs={\n viewabilityConfigCallbackPairs\n }\n windowSize={numberOfItemsToShow}\n />\n <View\n pointerEvents=\"none\"\n style={styles.pickerLabelContainer}>\n {typeof label === \"string\" ? (\n <Text\n allowFontScaling={allowFontScaling}\n style={styles.pickerLabel}>\n {label}\n </Text>\n ) : (\n label ?? null\n )}\n </View>\n </>\n );\n }, [\n FlatList,\n allowFontScaling,\n decelerationRate,\n flatListRenderKey,\n getItemLayout,\n initialScrollIndex,\n isDisabled,\n label,\n numberOfItemsToShow,\n numbersForFlatList,\n onMomentumScrollEnd,\n onScroll,\n renderItem,\n styles.durationScrollFlatList,\n styles.durationScrollFlatListContentContainer,\n styles.pickerItemContainer.height,\n styles.pickerLabel,\n styles.pickerLabelContainer,\n viewabilityConfigCallbackPairs,\n ]);\n\n const renderLinearGradient = useMemo(() => {\n if (!LinearGradient) {\n return null;\n }\n\n let colors: string[];\n\n if (MaskedView) {\n // if using masked view, we only care about the opacity\n colors = [\n \"rgba(0,0,0,0)\",\n \"rgba(0,0,0,1)\",\n \"rgba(0,0,0,1)\",\n \"rgba(0,0,0,0)\",\n ];\n } else {\n const backgroundColor =\n styles.pickerContainer.backgroundColor ?? \"white\";\n const transparentBackgroundColor = colorToRgba({\n color: backgroundColor,\n opacity: 0,\n });\n colors = [\n backgroundColor,\n transparentBackgroundColor,\n transparentBackgroundColor,\n backgroundColor,\n ];\n }\n\n // calculate the gradient height to cover the top item and bottom item\n const gradientHeight =\n padWithNItems > 0 ? 1 / (padWithNItems * 2 + 1) : 0.3;\n\n return (\n <LinearGradient\n colors={colors}\n locations={[0, gradientHeight, 1 - gradientHeight, 1]}\n pointerEvents=\"none\"\n style={styles.pickerGradientOverlay}\n {...pickerGradientOverlayProps}\n />\n );\n }, [\n LinearGradient,\n MaskedView,\n padWithNItems,\n pickerGradientOverlayProps,\n styles.pickerContainer.backgroundColor,\n styles.pickerGradientOverlay,\n ]);\n\n return (\n <View\n pointerEvents={isDisabled ? \"none\" : undefined}\n style={[\n styles.durationScrollFlatListContainer,\n {\n height:\n styles.pickerItemContainer.height *\n numberOfItemsToShow,\n },\n isDisabled && styles.disabledPickerContainer,\n ]}\n testID={testID}>\n {MaskedView ? (\n <MaskedView\n maskElement={renderLinearGradient}\n style={[styles.maskedView]}>\n {renderContent}\n </MaskedView>\n ) : (\n <>\n {renderContent}\n {renderLinearGradient}\n </>\n )}\n </View>\n );\n }\n);\n\nexport default React.memo(DurationScroll);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const PickerItem = /*#__PURE__*/_react.default.memo(({
11
+ adjustedLimitedMax,
12
+ adjustedLimitedMin,
13
+ allowFontScaling,
14
+ amLabel,
15
+ is12HourPicker,
16
+ item,
17
+ pmLabel,
18
+ styles
19
+ }) => {
20
+ let stringItem = item;
21
+ let intItem;
22
+ let isAm;
23
+ if (!is12HourPicker) {
24
+ intItem = parseInt(item);
25
+ } else {
26
+ isAm = item.includes("AM");
27
+ stringItem = item.replace(/\s[AP]M/g, "");
28
+ intItem = parseInt(stringItem);
29
+ }
30
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
31
+ key: item,
32
+ style: styles.pickerItemContainer,
33
+ testID: "picker-item"
34
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
35
+ allowFontScaling: allowFontScaling,
36
+ style: [styles.pickerItem, intItem > adjustedLimitedMax || intItem < adjustedLimitedMin ? styles.disabledPickerItem : {}]
37
+ }, stringItem), is12HourPicker && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
38
+ style: styles.pickerAmPmContainer
39
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
40
+ allowFontScaling: allowFontScaling,
41
+ style: styles.pickerAmPmLabel
42
+ }, isAm ? amLabel : pmLabel)));
43
+ });
44
+ var _default = exports.default = PickerItem;
45
+ //# sourceMappingURL=PickerItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","PickerItem","React","memo","adjustedLimitedMax","adjustedLimitedMin","allowFontScaling","amLabel","is12HourPicker","item","pmLabel","styles","stringItem","intItem","isAm","parseInt","includes","replace","createElement","View","key","style","pickerItemContainer","testID","Text","pickerItem","disabledPickerItem","pickerAmPmContainer","pickerAmPmLabel","_default","exports"],"sources":["PickerItem.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { View, Text } from \"react-native\";\n\nimport type { generateStyles } from \"../TimerPicker/styles\";\n\ninterface PickerItemProps {\n adjustedLimitedMax: number;\n adjustedLimitedMin: number;\n allowFontScaling: boolean;\n amLabel?: string;\n is12HourPicker?: boolean;\n item: string;\n pmLabel?: string;\n styles: ReturnType<typeof generateStyles>;\n}\n\nconst PickerItem = React.memo<PickerItemProps>(\n ({\n adjustedLimitedMax,\n adjustedLimitedMin,\n allowFontScaling,\n amLabel,\n is12HourPicker,\n item,\n pmLabel,\n styles,\n }) => {\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 allowFontScaling={allowFontScaling}\n style={[\n styles.pickerItem,\n intItem > adjustedLimitedMax ||\n intItem < adjustedLimitedMin\n ? styles.disabledPickerItem\n : {},\n ]}>\n {stringItem}\n </Text>\n {is12HourPicker && (\n <View style={styles.pickerAmPmContainer}>\n <Text\n allowFontScaling={allowFontScaling}\n style={styles.pickerAmPmLabel}>\n {isAm ? amLabel : pmLabel}\n </Text>\n </View>\n )}\n </View>\n );\n }\n);\n\nexport default PickerItem;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAA0C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAe1C,MAAMG,UAAU,gBAAGC,cAAK,CAACC,IAAI,CACzB,CAAC;EACGC,kBAAkB;EAClBC,kBAAkB;EAClBC,gBAAgB;EAChBC,OAAO;EACPC,cAAc;EACdC,IAAI;EACJC,OAAO;EACPC;AACJ,CAAC,KAAK;EACF,IAAIC,UAAU,GAAGH,IAAI;EACrB,IAAII,OAAe;EACnB,IAAIC,IAAyB;EAE7B,IAAI,CAACN,cAAc,EAAE;IACjBK,OAAO,GAAGE,QAAQ,CAACN,IAAI,CAAC;EAC5B,CAAC,MAAM;IACHK,IAAI,GAAGL,IAAI,CAACO,QAAQ,CAAC,IAAI,CAAC;IAC1BJ,UAAU,GAAGH,IAAI,CAACQ,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IACzCJ,OAAO,GAAGE,QAAQ,CAACH,UAAU,CAAC;EAClC;EAEA,oBACIlB,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAAsB,IAAI;IACDC,GAAG,EAAEX,IAAK;IACVY,KAAK,EAAEV,MAAM,CAACW,mBAAoB;IAClCC,MAAM,EAAC;EAAa,gBACpB7B,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAA2B,IAAI;IACDlB,gBAAgB,EAAEA,gBAAiB;IACnCe,KAAK,EAAE,CACHV,MAAM,CAACc,UAAU,EACjBZ,OAAO,GAAGT,kBAAkB,IAC5BS,OAAO,GAAGR,kBAAkB,GACtBM,MAAM,CAACe,kBAAkB,GACzB,CAAC,CAAC;EACV,GACDd,UACC,CAAC,EACNJ,cAAc,iBACXd,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAAsB,IAAI;IAACE,KAAK,EAAEV,MAAM,CAACgB;EAAoB,gBACpCjC,MAAA,CAAAM,OAAA,CAAAkB,aAAA,CAACrB,YAAA,CAAA2B,IAAI;IACDlB,gBAAgB,EAAEA,gBAAiB;IACnCe,KAAK,EAAEV,MAAM,CAACiB;EAAgB,GAC7Bd,IAAI,GAAGP,OAAO,GAAGG,OAChB,CACJ,CAER,CAAC;AAEf,CACJ,CAAC;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAA9B,OAAA,GAEaC,UAAU","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _PickerItem.default;
10
+ }
11
+ });
12
+ var _PickerItem = _interopRequireDefault(require("./PickerItem"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_PickerItem","_interopRequireDefault","require","e","__esModule","default"],"sources":["index.ts"],"sourcesContent":["export { default } from \"./PickerItem\";\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -62,13 +62,13 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
62
62
  } = props;
63
63
  (0, _react.useEffect)(() => {
64
64
  if (otherProps.Audio) {
65
- console.warn("The \"Audio\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.");
65
+ console.warn('The "Audio" prop is deprecated and will be removed in a future version. Please use the "pickerFeedback" prop instead.');
66
66
  }
67
67
  if (otherProps.Haptics) {
68
- console.warn("The \"Haptics\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.");
68
+ console.warn('The "Haptics" prop is deprecated and will be removed in a future version. Please use the "pickerFeedback" prop instead.');
69
69
  }
70
70
  if (otherProps.clickSoundAsset) {
71
- console.warn("The \"clickSoundAsset\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.");
71
+ console.warn('The "clickSoundAsset" prop is deprecated and will be removed in a future version. Please use the "pickerFeedback" prop instead.');
72
72
  }
73
73
  }, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);
74
74
  const safePadWithNItems = (0, _react.useMemo)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_getSafeInitialValue","_DurationScroll","_interopRequireDefault","_styles","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","TimerPicker","forwardRef","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","dayInterval","dayLabel","dayLimit","daysPickerIsDisabled","decelerationRate","disableInfiniteScroll","hideDays","hideHours","hideMinutes","hideSeconds","hourInterval","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","maximumDays","maximumHours","maximumMinutes","maximumSeconds","minuteInterval","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padDaysWithZero","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatDayNumbersNTimes","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondInterval","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","useEffect","Audio","console","warn","Haptics","clickSoundAsset","safePadWithNItems","useMemo","isNaN","maxPadWithNItems","Math","round","safeInitialValue","getSafeInitialValue","days","hours","minutes","seconds","generateStyles","selectedDays","setSelectedDays","useState","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","daysDurationScrollRef","useRef","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","useImperativeHandle","_daysDurationScrollRe3","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_daysDurationScrollRe","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_daysDurationScrollRe2","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","View","style","pickerContainer","testID","interval","isDisabled","label","limit","maximumValue","padNumbersWithZero","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","undefined","is12HourPicker","_default","exports","React","memo"],"sources":["TimerPicker.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { View } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport DurationScroll from \"../DurationScroll\";\nimport type { DurationScrollRef } from \"../DurationScroll\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerProps, TimerPickerRef } from \"./types\";\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration = false,\n allowFontScaling = false,\n amLabel = \"am\",\n dayInterval = 1,\n dayLabel,\n dayLimit,\n daysPickerIsDisabled = false,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n hideDays = true,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourInterval = 1,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n maximumDays = 30,\n maximumHours = 23,\n maximumMinutes = 59,\n maximumSeconds = 59,\n minuteInterval = 1,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padDaysWithZero = false,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\n repeatDayNumbersNTimes = 3,\n repeatHourNumbersNTimes = 8,\n repeatMinuteNumbersNTimes = 3,\n repeatSecondNumbersNTimes = 3,\n secondInterval = 1,\n secondLabel,\n secondLimit,\n secondsPickerIsDisabled = false,\n styles: customStyles,\n use12HourPicker = false,\n ...otherProps\n } = props;\n\n useEffect(() => {\n if (otherProps.Audio) {\n console.warn(\n \"The \\\"Audio\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.Haptics) {\n console.warn(\n \"The \\\"Haptics\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.clickSoundAsset) {\n console.warn(\n \"The \\\"clickSoundAsset\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n }, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);\n\n const safePadWithNItems = useMemo(() => {\n if (padWithNItems < 0 || isNaN(padWithNItems)) {\n return 0;\n }\n\n const maxPadWithNItems = hideHours ? 15 : 6;\n\n if (padWithNItems > maxPadWithNItems) {\n return maxPadWithNItems;\n }\n\n return Math.round(padWithNItems);\n }, [hideHours, padWithNItems]);\n\n const safeInitialValue = useMemo(\n () =>\n getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n }),\n [\n initialValue?.days,\n initialValue?.hours,\n initialValue?.minutes,\n initialValue?.seconds,\n ]\n );\n\n const styles = useMemo(\n () => generateStyles(customStyles),\n\n [customStyles]\n );\n\n const [selectedDays, setSelectedDays] = useState(safeInitialValue.days);\n const [selectedHours, setSelectedHours] = useState(\n safeInitialValue.hours\n );\n const [selectedMinutes, setSelectedMinutes] = useState(\n safeInitialValue.minutes\n );\n const [selectedSeconds, setSelectedSeconds] = useState(\n safeInitialValue.seconds\n );\n\n useEffect(() => {\n onDurationChange?.({\n days: selectedDays,\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedDays, selectedHours, selectedMinutes, selectedSeconds]);\n\n const daysDurationScrollRef = useRef<DurationScrollRef>(null);\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedDays(safeInitialValue.days);\n setSelectedHours(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\n daysDurationScrollRef.current?.reset(options);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n if (value.days) {\n setSelectedDays(value.days);\n daysDurationScrollRef.current?.setValue(\n value.days,\n options\n );\n }\n if (value.hours) {\n setSelectedHours(value.hours);\n hoursDurationScrollRef.current?.setValue(\n value.hours,\n options\n );\n }\n if (value.minutes) {\n setSelectedMinutes(value.minutes);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n }\n if (value.seconds) {\n setSelectedSeconds(value.seconds);\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n }\n },\n latestDuration: {\n days: daysDurationScrollRef.current?.latestDuration,\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideDays ? (\n <DurationScroll\n ref={daysDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.days}\n interval={dayInterval}\n isDisabled={daysPickerIsDisabled}\n label={dayLabel ?? \"d\"}\n limit={dayLimit}\n maximumValue={maximumDays}\n onDurationChange={setSelectedDays}\n padNumbersWithZero={padDaysWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatDayNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatDayNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-day\"\n {...otherProps}\n />\n ) : null}\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.hours}\n interval={hourInterval}\n is12HourPicker={use12HourPicker}\n isDisabled={hoursPickerIsDisabled}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n limit={hourLimit}\n maximumValue={maximumHours}\n onDurationChange={setSelectedHours}\n padNumbersWithZero={padHoursWithZero}\n padWithNItems={safePadWithNItems}\n pmLabel={pmLabel}\n repeatNumbersNTimes={repeatHourNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatHourNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-hour\"\n {...otherProps}\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.minutes}\n interval={minuteInterval}\n isDisabled={minutesPickerIsDisabled}\n label={minuteLabel ?? \"m\"}\n limit={minuteLimit}\n maximumValue={maximumMinutes}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero={padMinutesWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatMinuteNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatMinuteNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-minute\"\n {...otherProps}\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.seconds}\n interval={secondInterval}\n isDisabled={secondsPickerIsDisabled}\n label={secondLabel ?? \"s\"}\n limit={secondLimit}\n maximumValue={maximumSeconds}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero={padSecondsWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatSecondNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatSecondNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-second\"\n {...otherProps}\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_getSafeInitialValue","_DurationScroll","_interopRequireDefault","_styles","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","TimerPicker","forwardRef","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","dayInterval","dayLabel","dayLimit","daysPickerIsDisabled","decelerationRate","disableInfiniteScroll","hideDays","hideHours","hideMinutes","hideSeconds","hourInterval","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","maximumDays","maximumHours","maximumMinutes","maximumSeconds","minuteInterval","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padDaysWithZero","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatDayNumbersNTimes","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondInterval","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","useEffect","Audio","console","warn","Haptics","clickSoundAsset","safePadWithNItems","useMemo","isNaN","maxPadWithNItems","Math","round","safeInitialValue","getSafeInitialValue","days","hours","minutes","seconds","generateStyles","selectedDays","setSelectedDays","useState","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","daysDurationScrollRef","useRef","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","useImperativeHandle","_daysDurationScrollRe3","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_daysDurationScrollRe","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_daysDurationScrollRe2","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","View","style","pickerContainer","testID","interval","isDisabled","label","limit","maximumValue","padNumbersWithZero","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","undefined","is12HourPicker","_default","exports","React","memo"],"sources":["TimerPicker.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { View } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport DurationScroll from \"../DurationScroll\";\nimport type { DurationScrollRef } from \"../DurationScroll\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerProps, TimerPickerRef } from \"./types\";\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration = false,\n allowFontScaling = false,\n amLabel = \"am\",\n dayInterval = 1,\n dayLabel,\n dayLimit,\n daysPickerIsDisabled = false,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n hideDays = true,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourInterval = 1,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n maximumDays = 30,\n maximumHours = 23,\n maximumMinutes = 59,\n maximumSeconds = 59,\n minuteInterval = 1,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padDaysWithZero = false,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\n repeatDayNumbersNTimes = 3,\n repeatHourNumbersNTimes = 8,\n repeatMinuteNumbersNTimes = 3,\n repeatSecondNumbersNTimes = 3,\n secondInterval = 1,\n secondLabel,\n secondLimit,\n secondsPickerIsDisabled = false,\n styles: customStyles,\n use12HourPicker = false,\n ...otherProps\n } = props;\n\n useEffect(() => {\n if (otherProps.Audio) {\n console.warn(\n 'The \"Audio\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.'\n );\n }\n if (otherProps.Haptics) {\n console.warn(\n 'The \"Haptics\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.'\n );\n }\n if (otherProps.clickSoundAsset) {\n console.warn(\n 'The \"clickSoundAsset\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.'\n );\n }\n }, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);\n\n const safePadWithNItems = useMemo(() => {\n if (padWithNItems < 0 || isNaN(padWithNItems)) {\n return 0;\n }\n\n const maxPadWithNItems = hideHours ? 15 : 6;\n\n if (padWithNItems > maxPadWithNItems) {\n return maxPadWithNItems;\n }\n\n return Math.round(padWithNItems);\n }, [hideHours, padWithNItems]);\n\n const safeInitialValue = useMemo(\n () =>\n getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n }),\n [\n initialValue?.days,\n initialValue?.hours,\n initialValue?.minutes,\n initialValue?.seconds,\n ]\n );\n\n const styles = useMemo(\n () => generateStyles(customStyles),\n\n [customStyles]\n );\n\n const [selectedDays, setSelectedDays] = useState(safeInitialValue.days);\n const [selectedHours, setSelectedHours] = useState(\n safeInitialValue.hours\n );\n const [selectedMinutes, setSelectedMinutes] = useState(\n safeInitialValue.minutes\n );\n const [selectedSeconds, setSelectedSeconds] = useState(\n safeInitialValue.seconds\n );\n\n useEffect(() => {\n onDurationChange?.({\n days: selectedDays,\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedDays, selectedHours, selectedMinutes, selectedSeconds]);\n\n const daysDurationScrollRef = useRef<DurationScrollRef>(null);\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedDays(safeInitialValue.days);\n setSelectedHours(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\n daysDurationScrollRef.current?.reset(options);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n if (value.days) {\n setSelectedDays(value.days);\n daysDurationScrollRef.current?.setValue(\n value.days,\n options\n );\n }\n if (value.hours) {\n setSelectedHours(value.hours);\n hoursDurationScrollRef.current?.setValue(\n value.hours,\n options\n );\n }\n if (value.minutes) {\n setSelectedMinutes(value.minutes);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n }\n if (value.seconds) {\n setSelectedSeconds(value.seconds);\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n }\n },\n latestDuration: {\n days: daysDurationScrollRef.current?.latestDuration,\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideDays ? (\n <DurationScroll\n ref={daysDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.days}\n interval={dayInterval}\n isDisabled={daysPickerIsDisabled}\n label={dayLabel ?? \"d\"}\n limit={dayLimit}\n maximumValue={maximumDays}\n onDurationChange={setSelectedDays}\n padNumbersWithZero={padDaysWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatDayNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatDayNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-day\"\n {...otherProps}\n />\n ) : null}\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.hours}\n interval={hourInterval}\n is12HourPicker={use12HourPicker}\n isDisabled={hoursPickerIsDisabled}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n limit={hourLimit}\n maximumValue={maximumHours}\n onDurationChange={setSelectedHours}\n padNumbersWithZero={padHoursWithZero}\n padWithNItems={safePadWithNItems}\n pmLabel={pmLabel}\n repeatNumbersNTimes={repeatHourNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatHourNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-hour\"\n {...otherProps}\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.minutes}\n interval={minuteInterval}\n isDisabled={minutesPickerIsDisabled}\n label={minuteLabel ?? \"m\"}\n limit={minuteLimit}\n maximumValue={maximumMinutes}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero={padMinutesWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatMinuteNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatMinuteNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-minute\"\n {...otherProps}\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.seconds}\n interval={secondInterval}\n isDisabled={secondsPickerIsDisabled}\n label={secondLabel ?? \"s\"}\n limit={secondLimit}\n maximumValue={maximumSeconds}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero={padSecondsWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatSecondNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatSecondNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-second\"\n {...otherProps}\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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","ignoreList":[]}
@@ -10,28 +10,44 @@ const DARK_MODE_TEXT_COLOR = "#E9E9E9";
10
10
  const LIGHT_MODE_BACKGROUND_COLOR = "#F1F1F1";
11
11
  const LIGHT_MODE_TEXT_COLOR = "#1B1B1B";
12
12
  const generateStyles = customStyles => {
13
- var _customStyles$pickerL, _customStyles$text, _customStyles$pickerI, _customStyles$text2, _customStyles$pickerI2, _customStyles$pickerI3;
13
+ var _customStyles$pickerL, _customStyles$text, _customStyles$pickerA, _customStyles$pickerL2, _customStyles$text2, _customStyles$pickerI, _customStyles$text3;
14
+ const backgroundColor = (customStyles === null || customStyles === void 0 ? void 0 : customStyles.backgroundColor) ?? ((customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_BACKGROUND_COLOR : LIGHT_MODE_BACKGROUND_COLOR);
15
+ const textColor = (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR;
16
+ const pickerLabelFontSize = (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) ?? 18;
17
+ const pickerAmPmFontSize = (customStyles === null || customStyles === void 0 || (_customStyles$pickerA = customStyles.pickerAmPmLabel) === null || _customStyles$pickerA === void 0 ? void 0 : _customStyles$pickerA.fontSize) ?? (customStyles === null || customStyles === void 0 || (_customStyles$pickerL2 = customStyles.pickerLabel) === null || _customStyles$pickerL2 === void 0 ? void 0 : _customStyles$pickerL2.fontSize) ?? (customStyles === null || customStyles === void 0 || (_customStyles$text2 = customStyles.text) === null || _customStyles$text2 === void 0 ? void 0 : _customStyles$text2.fontSize) ?? 18;
18
+ const pickerItemFontSize = (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$text3 = customStyles.text) === null || _customStyles$text3 === void 0 ? void 0 : _customStyles$text3.fontSize) ?? 25;
19
+
20
+ // This offset makes the picker label appear to be aligned with the picker item
21
+ // despite them having different font sizes
22
+ const pickerLabelVerticalOffset = pickerItemFontSize - pickerLabelFontSize - 1;
23
+ const pickerAmPmVerticalOffset = pickerItemFontSize - pickerAmPmFontSize - 1;
24
+
25
+ // The label is absolutely positioned, so we need to offset it for it to appear
26
+ // in the correct position. We offset it to the left of the container so that
27
+ // the width of the label doesn't impact its position.
28
+ const extraLabelOffsetPercentage = (customStyles === null || customStyles === void 0 ? void 0 : customStyles.labelOffsetPercentage) ?? 8;
29
+ const baseLeftOffsetPercentage = 70;
30
+ const labelOffsetPercentage = baseLeftOffsetPercentage + extraLabelOffsetPercentage;
14
31
  return _reactNative.StyleSheet.create({
15
32
  pickerContainer: {
16
33
  flexDirection: "row",
17
- marginRight: "8%",
18
- backgroundColor: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.backgroundColor) ?? ((customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_BACKGROUND_COLOR : LIGHT_MODE_BACKGROUND_COLOR),
34
+ backgroundColor,
35
+ width: "100%",
19
36
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerContainer)
20
37
  },
21
38
  pickerLabelContainer: {
22
39
  position: "absolute",
23
- right: 4,
24
40
  top: 0,
25
41
  bottom: 0,
42
+ left: `${labelOffsetPercentage}%`,
26
43
  justifyContent: "center",
27
- 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,
44
+ marginTop: pickerLabelVerticalOffset,
28
45
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabelContainer)
29
46
  },
30
47
  pickerLabel: {
31
48
  fontSize: 18,
32
49
  fontWeight: "bold",
33
- 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,
34
- color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
50
+ color: textColor,
35
51
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
36
52
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabel)
37
53
  },
@@ -40,30 +56,30 @@ const generateStyles = customStyles => {
40
56
  height: 50,
41
57
  justifyContent: "center",
42
58
  alignItems: "center",
43
- width: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI2 = customStyles.pickerItem) === null || _customStyles$pickerI2 === void 0 ? void 0 : _customStyles$pickerI2.fontSize) ?? 25) * 3.6,
44
59
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerItemContainer)
45
60
  },
46
61
  pickerItem: {
47
62
  textAlignVertical: "center",
48
63
  fontSize: 25,
49
- color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
64
+ overflow: "visible",
65
+ color: textColor,
50
66
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
51
67
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerItem)
52
68
  },
53
69
  pickerAmPmContainer: {
54
70
  position: "absolute",
55
- right: 0,
56
71
  top: 0,
57
72
  bottom: 0,
73
+ left: `${labelOffsetPercentage}%`,
58
74
  justifyContent: "center",
75
+ marginTop: pickerAmPmVerticalOffset,
59
76
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabelContainer),
60
77
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerAmPmContainer)
61
78
  },
62
79
  pickerAmPmLabel: {
63
80
  fontSize: 18,
64
81
  fontWeight: "bold",
65
- marginTop: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI3 = customStyles.pickerItem) === null || _customStyles$pickerI3 === void 0 ? void 0 : _customStyles$pickerI3.fontSize) ?? 25) / 6,
66
- color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
82
+ color: textColor,
67
83
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
68
84
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabel),
69
85
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerAmPmLabel)
@@ -85,15 +101,17 @@ const generateStyles = customStyles => {
85
101
  height: "100%",
86
102
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerGradientOverlay)
87
103
  },
88
- durationScrollFlatList: {
89
- minWidth: 1,
90
- width: "300%",
91
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.durationScrollFlatList)
92
- },
93
104
  durationScrollFlatListContainer: {
94
- overflow: "visible",
105
+ flex: 1,
95
106
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.durationScrollFlatListContainer)
96
107
  },
108
+ durationScrollFlatList: {
109
+ // These paddings allow the inner am/pm label to
110
+ // spill out of the flatlist
111
+ paddingRight: "25%",
112
+ marginRight: "-25%",
113
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.durationScrollFlatList)
114
+ },
97
115
  durationScrollFlatListContentContainer: {
98
116
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.durationScrollFlatListContentContainer)
99
117
  }