react-native-timer-picker 1.3.0 → 1.5.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 (57) hide show
  1. package/README.md +7 -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 +55 -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 +37 -28
  9. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  10. package/dist/commonjs/components/TimerPickerModal.styles.js.map +1 -1
  11. package/dist/commonjs/components/index.js +46 -39
  12. package/dist/commonjs/components/index.js.map +1 -1
  13. package/dist/commonjs/tests/Modal.test.js +3 -1
  14. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  15. package/dist/commonjs/utils/generateNumbers.js +33 -10
  16. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  17. package/dist/commonjs/utils/padNumber.js +15 -0
  18. package/dist/commonjs/utils/padNumber.js.map +1 -0
  19. package/dist/module/components/Modal/index.js +13 -14
  20. package/dist/module/components/Modal/index.js.map +1 -1
  21. package/dist/module/components/TimerPicker/DurationScroll.js +56 -33
  22. package/dist/module/components/TimerPicker/DurationScroll.js.map +1 -1
  23. package/dist/module/components/TimerPicker/TimerPicker.styles.js +23 -3
  24. package/dist/module/components/TimerPicker/TimerPicker.styles.js.map +1 -1
  25. package/dist/module/components/TimerPicker/index.js +37 -28
  26. package/dist/module/components/TimerPicker/index.js.map +1 -1
  27. package/dist/module/components/TimerPickerModal.styles.js.map +1 -1
  28. package/dist/module/components/index.js +46 -39
  29. package/dist/module/components/index.js.map +1 -1
  30. package/dist/module/tests/Modal.test.js +3 -1
  31. package/dist/module/tests/Modal.test.js.map +1 -1
  32. package/dist/module/utils/generateNumbers.js +31 -9
  33. package/dist/module/utils/generateNumbers.js.map +1 -1
  34. package/dist/module/utils/padNumber.js +8 -0
  35. package/dist/module/utils/padNumber.js.map +1 -0
  36. package/dist/typescript/components/TimerPicker/DurationScroll.d.ts +4 -0
  37. package/dist/typescript/components/TimerPicker/TimerPicker.styles.d.ts +4 -0
  38. package/dist/typescript/components/TimerPicker/index.d.ts +4 -0
  39. package/dist/typescript/components/TimerPickerModal.styles.d.ts +283 -10
  40. package/dist/typescript/utils/generateNumbers.d.ts +7 -2
  41. package/dist/typescript/utils/padNumber.d.ts +3 -0
  42. package/package.json +2 -2
  43. package/src/components/Modal/index.tsx +2 -2
  44. package/src/components/TimerPicker/DurationScroll.tsx +63 -11
  45. package/src/components/TimerPicker/TimerPicker.styles.ts +32 -1
  46. package/src/components/TimerPicker/index.tsx +31 -9
  47. package/src/components/TimerPickerModal.styles.ts +9 -8
  48. package/src/components/index.tsx +11 -3
  49. package/src/tests/Modal.test.tsx +1 -1
  50. package/src/utils/generateNumbers.ts +40 -10
  51. package/src/utils/padNumber.ts +10 -0
  52. package/dist/commonjs/utils/padWithZero.js +0 -15
  53. package/dist/commonjs/utils/padWithZero.js.map +0 -1
  54. package/dist/module/utils/padWithZero.js +0 -8
  55. package/dist/module/utils/padWithZero.js.map +0 -1
  56. package/dist/typescript/utils/padWithZero.d.ts +0 -1
  57. package/src/utils/padWithZero.ts +0 -7
@@ -1,35 +1,43 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
  import React, { useRef, useCallback, forwardRef, useImperativeHandle } from "react";
3
3
  import { View, Text, FlatList } from "react-native";
4
- import { generateNumbers } from "../../utils/generateNumbers";
4
+ import { generate12HourNumbers, generateNumbers } from "../../utils/generateNumbers";
5
5
  import { colorToRgba } from "../../utils/colorToRgba";
6
6
  import { getAdjustedLimit } from "../../utils/getAdjustedLimit";
7
7
  import { getScrollIndex } from "../../utils/getScrollIndex";
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
9
  const KEY_EXTRACTOR = (_, index) => index.toString();
10
- const DurationScroll = /*#__PURE__*/forwardRef((_ref, ref) => {
11
- let {
12
- numberOfItems,
13
- label,
14
- initialValue = 0,
15
- onDurationChange,
16
- padNumbersWithZero = false,
17
- disableInfiniteScroll = false,
18
- limit,
19
- aggressivelyGetLatestDuration,
20
- padWithNItems,
21
- pickerGradientOverlayProps,
22
- topPickerGradientOverlayProps,
23
- bottomPickerGradientOverlayProps,
24
- LinearGradient,
25
- testID,
26
- styles
27
- } = _ref;
28
- const data = generateNumbers(numberOfItems, {
29
- padWithZero: padNumbersWithZero,
10
+ const DurationScroll = /*#__PURE__*/forwardRef(({
11
+ numberOfItems,
12
+ label,
13
+ initialValue = 0,
14
+ onDurationChange,
15
+ padNumbersWithZero = false,
16
+ disableInfiniteScroll = false,
17
+ limit,
18
+ aggressivelyGetLatestDuration,
19
+ allowFontScaling = false,
20
+ is12HourPicker,
21
+ amLabel,
22
+ pmLabel,
23
+ padWithNItems,
24
+ pickerGradientOverlayProps,
25
+ topPickerGradientOverlayProps,
26
+ bottomPickerGradientOverlayProps,
27
+ LinearGradient,
28
+ testID,
29
+ styles
30
+ }, ref) => {
31
+ const data = !is12HourPicker ? generateNumbers(numberOfItems, {
32
+ padNumbersWithZero,
33
+ repeatNTimes: 3,
34
+ disableInfiniteScroll,
35
+ padWithNItems
36
+ }) : generate12HourNumbers({
37
+ padNumbersWithZero,
30
38
  repeatNTimes: 3,
31
39
  disableInfiniteScroll,
32
- padWithNItems: padWithNItems
40
+ padWithNItems
33
41
  });
34
42
  const numberOfItemsToShow = 1 + padWithNItems * 2;
35
43
  const adjustedLimited = getAdjustedLimit(limit, numberOfItems);
@@ -63,19 +71,34 @@ const DurationScroll = /*#__PURE__*/forwardRef((_ref, ref) => {
63
71
  },
64
72
  latestDuration: latestDuration
65
73
  }));
66
- const renderItem = useCallback(_ref2 => {
67
- let {
68
- item
69
- } = _ref2;
70
- const intItem = parseInt(item);
74
+ const renderItem = useCallback(({
75
+ item
76
+ }) => {
77
+ let stringItem = item;
78
+ let intItem;
79
+ let isAm;
80
+ if (!is12HourPicker) {
81
+ intItem = parseInt(item);
82
+ } else {
83
+ isAm = item.includes("AM");
84
+ stringItem = item.replace(/\s[AP]M/g, "");
85
+ intItem = parseInt(stringItem);
86
+ }
71
87
  return /*#__PURE__*/React.createElement(View, {
72
88
  key: item,
73
89
  style: styles.pickerItemContainer,
74
90
  testID: "picker-item"
75
91
  }, /*#__PURE__*/React.createElement(Text, {
92
+ allowFontScaling: allowFontScaling,
76
93
  style: [styles.pickerItem, intItem > adjustedLimited.max || intItem < adjustedLimited.min ? styles.disabledPickerItem : {}]
77
- }, item));
78
- }, [adjustedLimited.max, adjustedLimited.min, styles.disabledPickerItem, styles.pickerItem, styles.pickerItemContainer]);
94
+ }, stringItem), is12HourPicker ? /*#__PURE__*/React.createElement(View, {
95
+ style: styles.pickerAmPmContainer,
96
+ pointerEvents: "none"
97
+ }, /*#__PURE__*/React.createElement(Text, {
98
+ style: [styles.pickerAmPmLabel],
99
+ allowFontScaling: allowFontScaling
100
+ }, isAm ? amLabel : pmLabel)) : null);
101
+ }, [adjustedLimited.max, adjustedLimited.min, allowFontScaling, amLabel, is12HourPicker, pmLabel, styles.disabledPickerItem, styles.pickerAmPmContainer, styles.pickerAmPmLabel, styles.pickerItem, styles.pickerItemContainer]);
79
102
  const onScroll = useCallback(e => {
80
103
  // this function is only used when the picker is in a modal
81
104
  // it is used to ensure that the modal gets the latest duration on clicking
@@ -119,11 +142,10 @@ const DurationScroll = /*#__PURE__*/forwardRef((_ref, ref) => {
119
142
  }
120
143
  onDurationChange(newDuration);
121
144
  }, [adjustedLimited.max, adjustedLimited.min, data.length, disableInfiniteScroll, numberOfItems, onDurationChange, padWithNItems, styles.pickerItemContainer.height]);
122
- const onViewableItemsChanged = useCallback(_ref3 => {
145
+ const onViewableItemsChanged = useCallback(({
146
+ viewableItems
147
+ }) => {
123
148
  var _viewableItems$, _viewableItems$2;
124
- let {
125
- viewableItems
126
- } = _ref3;
127
149
  if ((_viewableItems$ = viewableItems[0]) !== null && _viewableItems$ !== void 0 && _viewableItems$.index && viewableItems[0].index < numberOfItems * 0.5) {
128
150
  var _flatListRef$current5;
129
151
  (_flatListRef$current5 = flatListRef.current) === null || _flatListRef$current5 === void 0 || _flatListRef$current5.scrollToIndex({
@@ -178,6 +200,7 @@ const DurationScroll = /*#__PURE__*/forwardRef((_ref, ref) => {
178
200
  style: styles.pickerLabelContainer,
179
201
  pointerEvents: "none"
180
202
  }, typeof label === "string" ? /*#__PURE__*/React.createElement(Text, {
203
+ allowFontScaling: allowFontScaling,
181
204
  style: styles.pickerLabel
182
205
  }, label) : label ?? null), LinearGradient ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LinearGradient, _extends({
183
206
  colors: [styles.pickerContainer.backgroundColor ?? "white", colorToRgba({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useCallback","forwardRef","useImperativeHandle","View","Text","FlatList","generateNumbers","colorToRgba","getAdjustedLimit","getScrollIndex","KEY_EXTRACTOR","_","index","toString","DurationScroll","_ref","ref","numberOfItems","label","initialValue","onDurationChange","padNumbersWithZero","disableInfiniteScroll","limit","aggressivelyGetLatestDuration","padWithNItems","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","LinearGradient","testID","styles","data","padWithZero","repeatNTimes","numberOfItemsToShow","adjustedLimited","initialScrollIndex","value","latestDuration","flatListRef","reset","options","_flatListRef$current","current","scrollToIndex","animated","setValue","_flatListRef$current2","renderItem","_ref2","item","intItem","parseInt","createElement","key","style","pickerItemContainer","pickerItem","max","min","disabledPickerItem","onScroll","e","newIndex","Math","round","nativeEvent","contentOffset","y","height","newDuration","onMomentumScrollEnd","_flatListRef$current3","targetScrollIndex","_flatListRef$current4","length","onViewableItemsChanged","_ref3","_viewableItems$","_viewableItems$2","viewableItems","_flatListRef$current5","_flatListRef$current6","getItemLayout","offset","viewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","overflow","windowSize","keyExtractor","showsVerticalScrollIndicator","decelerationRate","scrollEventThrottle","snapToAlignment","snapToOffsets","Array","map","i","undefined","pickerLabelContainer","pointerEvents","pickerLabel","Fragment","_extends","colors","pickerContainer","backgroundColor","color","opacity","start","x","end","pickerGradientOverlay","top","bottom","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","useRef","useCallback","forwardRef","useImperativeHandle","View","Text","FlatList","generate12HourNumbers","generateNumbers","colorToRgba","getAdjustedLimit","getScrollIndex","KEY_EXTRACTOR","_","index","toString","DurationScroll","numberOfItems","label","initialValue","onDurationChange","padNumbersWithZero","disableInfiniteScroll","limit","aggressivelyGetLatestDuration","allowFontScaling","is12HourPicker","amLabel","pmLabel","padWithNItems","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","LinearGradient","testID","styles","ref","data","repeatNTimes","numberOfItemsToShow","adjustedLimited","initialScrollIndex","value","latestDuration","flatListRef","reset","options","_flatListRef$current","current","scrollToIndex","animated","setValue","_flatListRef$current2","renderItem","item","stringItem","intItem","isAm","parseInt","includes","replace","createElement","key","style","pickerItemContainer","pickerItem","max","min","disabledPickerItem","pickerAmPmContainer","pointerEvents","pickerAmPmLabel","onScroll","e","newIndex","Math","round","nativeEvent","contentOffset","y","height","newDuration","onMomentumScrollEnd","_flatListRef$current3","targetScrollIndex","_flatListRef$current4","length","onViewableItemsChanged","viewableItems","_viewableItems$","_viewableItems$2","_flatListRef$current5","_flatListRef$current6","getItemLayout","offset","viewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","overflow","windowSize","keyExtractor","showsVerticalScrollIndicator","decelerationRate","scrollEventThrottle","snapToAlignment","snapToOffsets","Array","map","i","undefined","pickerLabelContainer","pickerLabel","Fragment","_extends","colors","pickerContainer","backgroundColor","color","opacity","start","x","end","pickerGradientOverlay","top","bottom","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 allowFontScaling?: boolean;\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 allowFontScaling = false,\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 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 style={styles.pickerAmPmContainer}\n pointerEvents=\"none\">\n <Text\n style={[styles.pickerAmPmLabel]}\n allowFontScaling={allowFontScaling}>\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 (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\n allowFontScaling={allowFontScaling}\n style={styles.pickerLabel}>\n {label}\n </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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"}
@@ -5,7 +5,7 @@ const DARK_MODE_TEXT_COLOR = "#E9E9E9";
5
5
  const LIGHT_MODE_BACKGROUND_COLOR = "#F1F1F1";
6
6
  const LIGHT_MODE_TEXT_COLOR = "#1B1B1B";
7
7
  export const generateStyles = (customStyles, options) => {
8
- var _customStyles$pickerI, _customStyles$pickerI2, _customStyles$pickerI3;
8
+ var _customStyles$pickerL, _customStyles$text, _customStyles$pickerI, _customStyles$text2, _customStyles$pickerI2, _customStyles$pickerI3, _customStyles$pickerI4;
9
9
  return StyleSheet.create({
10
10
  pickerContainer: {
11
11
  flexDirection: "row",
@@ -19,17 +19,19 @@ export const generateStyles = (customStyles, options) => {
19
19
  top: 0,
20
20
  bottom: 0,
21
21
  justifyContent: "center",
22
+ 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,
22
23
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabelContainer)
23
24
  },
24
25
  pickerLabel: {
25
26
  fontSize: 18,
26
27
  fontWeight: "bold",
27
- marginTop: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI = customStyles.pickerItem) === null || _customStyles$pickerI === void 0 ? void 0 : _customStyles$pickerI.fontSize) ?? 25) / 6,
28
+ 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,
28
29
  color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
29
30
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
30
31
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabel)
31
32
  },
32
33
  pickerItemContainer: {
34
+ flexDirection: "row",
33
35
  height: 50,
34
36
  justifyContent: "center",
35
37
  alignItems: "center",
@@ -43,6 +45,24 @@ export const generateStyles = (customStyles, options) => {
43
45
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
44
46
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerItem)
45
47
  },
48
+ pickerAmPmContainer: {
49
+ position: "absolute",
50
+ right: 0,
51
+ top: 0,
52
+ bottom: 0,
53
+ justifyContent: "center",
54
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabelContainer),
55
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerAmPmContainer)
56
+ },
57
+ pickerAmPmLabel: {
58
+ fontSize: 18,
59
+ fontWeight: "bold",
60
+ marginTop: ((customStyles === null || customStyles === void 0 || (_customStyles$pickerI3 = customStyles.pickerItem) === null || _customStyles$pickerI3 === void 0 ? void 0 : _customStyles$pickerI3.fontSize) ?? 25) / 6,
61
+ color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
62
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
63
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerLabel),
64
+ ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerAmPmLabel)
65
+ },
46
66
  disabledPickerItem: {
47
67
  opacity: 0.2,
48
68
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.disabledPickerItem)
@@ -51,7 +71,7 @@ export const generateStyles = (customStyles, options) => {
51
71
  position: "absolute",
52
72
  left: 0,
53
73
  right: 0,
54
- 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,
74
+ 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,
55
75
  ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerGradientOverlay)
56
76
  }
57
77
  });
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","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","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"],"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":["StyleSheet","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","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"],"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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"}
@@ -3,31 +3,34 @@ import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, use
3
3
  import { View } from "react-native";
4
4
  import DurationScroll from "./DurationScroll";
5
5
  import { generateStyles } from "./TimerPicker.styles";
6
- const TimerPicker = /*#__PURE__*/forwardRef((_ref, ref) => {
7
- let {
8
- onDurationChange,
9
- initialHours = 0,
10
- initialMinutes = 0,
11
- initialSeconds = 0,
12
- hideHours = false,
13
- hideMinutes = false,
14
- hideSeconds = false,
15
- hourLimit,
16
- minuteLimit,
17
- secondLimit,
18
- hourLabel = "h",
19
- minuteLabel = "m",
20
- secondLabel = "s",
21
- padWithNItems = 1,
22
- disableInfiniteScroll = false,
23
- aggressivelyGetLatestDuration = false,
24
- LinearGradient,
25
- pickerContainerProps,
26
- pickerGradientOverlayProps,
27
- topPickerGradientOverlayProps,
28
- bottomPickerGradientOverlayProps,
29
- styles: customStyles
30
- } = _ref;
6
+ const TimerPicker = /*#__PURE__*/forwardRef(({
7
+ allowFontScaling = false,
8
+ onDurationChange,
9
+ initialHours = 0,
10
+ initialMinutes = 0,
11
+ initialSeconds = 0,
12
+ hideHours = false,
13
+ hideMinutes = false,
14
+ hideSeconds = false,
15
+ hourLimit,
16
+ minuteLimit,
17
+ secondLimit,
18
+ hourLabel,
19
+ minuteLabel,
20
+ secondLabel,
21
+ padWithNItems = 1,
22
+ disableInfiniteScroll = false,
23
+ aggressivelyGetLatestDuration = false,
24
+ use12HourPicker = false,
25
+ amLabel = "am",
26
+ pmLabel = "pm",
27
+ LinearGradient,
28
+ pickerContainerProps,
29
+ pickerGradientOverlayProps,
30
+ topPickerGradientOverlayProps,
31
+ bottomPickerGradientOverlayProps,
32
+ styles: customStyles
33
+ }, ref) => {
31
34
  const checkedPadWithNItems = padWithNItems >= 0 ? Math.round(padWithNItems) : 0;
32
35
  const styles = useMemo(() => generateStyles(customStyles, {
33
36
  padWithNItems: checkedPadWithNItems
@@ -80,8 +83,9 @@ const TimerPicker = /*#__PURE__*/forwardRef((_ref, ref) => {
80
83
  }), !hideHours ? /*#__PURE__*/React.createElement(DurationScroll, {
81
84
  ref: hoursDurationScrollRef,
82
85
  numberOfItems: 23,
83
- label: hourLabel,
86
+ label: hourLabel ?? (!use12HourPicker ? "h" : undefined),
84
87
  initialValue: initialHours,
88
+ allowFontScaling: allowFontScaling,
85
89
  aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
86
90
  onDurationChange: setSelectedHours,
87
91
  pickerGradientOverlayProps: pickerGradientOverlayProps,
@@ -91,13 +95,17 @@ const TimerPicker = /*#__PURE__*/forwardRef((_ref, ref) => {
91
95
  padWithNItems: checkedPadWithNItems,
92
96
  limit: hourLimit,
93
97
  LinearGradient: LinearGradient,
98
+ is12HourPicker: use12HourPicker,
99
+ amLabel: amLabel,
100
+ pmLabel: pmLabel,
94
101
  styles: styles,
95
102
  testID: "duration-scroll-hour"
96
103
  }) : null, !hideMinutes ? /*#__PURE__*/React.createElement(DurationScroll, {
97
104
  ref: minutesDurationScrollRef,
98
105
  numberOfItems: 59,
99
- label: minuteLabel,
106
+ label: minuteLabel ?? "m",
100
107
  initialValue: initialMinutes,
108
+ allowFontScaling: allowFontScaling,
101
109
  aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
102
110
  onDurationChange: setSelectedMinutes,
103
111
  padNumbersWithZero: true,
@@ -113,8 +121,9 @@ const TimerPicker = /*#__PURE__*/forwardRef((_ref, ref) => {
113
121
  }) : null, !hideSeconds ? /*#__PURE__*/React.createElement(DurationScroll, {
114
122
  ref: secondsDurationScrollRef,
115
123
  numberOfItems: 59,
116
- label: secondLabel,
124
+ label: secondLabel ?? "s",
117
125
  initialValue: initialSeconds,
126
+ allowFontScaling: allowFontScaling,
118
127
  aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
119
128
  onDurationChange: setSelectedSeconds,
120
129
  padNumbersWithZero: true,
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","DurationScroll","generateStyles","TimerPicker","_ref","ref","onDurationChange","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","aggressivelyGetLatestDuration","LinearGradient","pickerContainerProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","checkedPadWithNItems","Math","round","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","hours","minutes","seconds","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","numberOfItems","label","initialValue","limit","padNumbersWithZero","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { View } from \"react-native\";\n\nimport DurationScroll, { DurationScrollRef, LimitType } from \"./DurationScroll\";\n\nimport { generateStyles, CustomTimerPickerStyles } from \"./TimerPicker.styles\";\nimport { LinearGradientProps } from \"./DurationScroll\";\n\nexport interface TimerPickerRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerProps {\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n initialHours?: number;\n initialMinutes?: number;\n initialSeconds?: number;\n aggressivelyGetLatestDuration?: boolean;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLimit?: LimitType;\n minuteLimit?: LimitType;\n secondLimit?: LimitType;\n hourLabel?: string | React.ReactElement;\n minuteLabel?: string | React.ReactElement;\n secondLabel?: string | React.ReactElement;\n padWithNItems?: number;\n disableInfiniteScroll?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n styles?: CustomTimerPickerStyles;\n}\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (\n {\n onDurationChange,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel = \"h\",\n minuteLabel = \"m\",\n secondLabel = \"s\",\n padWithNItems = 1,\n disableInfiniteScroll = false,\n aggressivelyGetLatestDuration = false,\n LinearGradient,\n pickerContainerProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const checkedPadWithNItems =\n padWithNItems >= 0 ? Math.round(padWithNItems) : 0;\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: checkedPadWithNItems,\n }),\n\n [checkedPadWithNItems, customStyles]\n );\n\n const [selectedHours, setSelectedHours] = useState(initialHours);\n const [selectedMinutes, setSelectedMinutes] = useState(initialMinutes);\n const [selectedSeconds, setSelectedSeconds] = useState(initialSeconds);\n\n useEffect(() => {\n onDurationChange?.({\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedHours, selectedMinutes, selectedSeconds]);\n\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 setSelectedHours(initialHours);\n setSelectedMinutes(initialMinutes);\n setSelectedSeconds(initialSeconds);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\n hoursDurationScrollRef.current?.setValue(value.hours, options);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n },\n 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 {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n numberOfItems={23}\n label={hourLabel}\n initialValue={initialHours}\n aggressivelyGetLatestDuration={aggressivelyGetLatestDuration}\n onDurationChange={setSelectedHours}\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={hourLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-hour\"\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n numberOfItems={59}\n label={minuteLabel}\n initialValue={initialMinutes}\n aggressivelyGetLatestDuration={aggressivelyGetLatestDuration}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={minuteLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-minute\"\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n numberOfItems={59}\n label={secondLabel}\n initialValue={initialSeconds}\n aggressivelyGetLatestDuration={aggressivelyGetLatestDuration}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={secondLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-second\"\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","DurationScroll","generateStyles","TimerPicker","allowFontScaling","onDurationChange","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","aggressivelyGetLatestDuration","use12HourPicker","amLabel","pmLabel","LinearGradient","pickerContainerProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","ref","checkedPadWithNItems","Math","round","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","hours","minutes","seconds","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","numberOfItems","label","undefined","initialValue","limit","is12HourPicker","padNumbersWithZero","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { View } from \"react-native\";\n\nimport DurationScroll, { DurationScrollRef, LimitType } from \"./DurationScroll\";\n\nimport { generateStyles, CustomTimerPickerStyles } from \"./TimerPicker.styles\";\nimport { LinearGradientProps } from \"./DurationScroll\";\n\nexport interface TimerPickerRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerProps {\n allowFontScaling?: boolean;\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n initialHours?: number;\n initialMinutes?: number;\n initialSeconds?: number;\n aggressivelyGetLatestDuration?: boolean;\n use12HourPicker?: boolean;\n amLabel?: string;\n pmLabel?: string;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLimit?: LimitType;\n minuteLimit?: LimitType;\n secondLimit?: LimitType;\n hourLabel?: string | React.ReactElement;\n minuteLabel?: string | React.ReactElement;\n secondLabel?: string | React.ReactElement;\n padWithNItems?: number;\n disableInfiniteScroll?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n styles?: CustomTimerPickerStyles;\n}\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (\n {\n allowFontScaling = false,\n onDurationChange,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n aggressivelyGetLatestDuration = false,\n use12HourPicker = false,\n amLabel = \"am\",\n pmLabel = \"pm\",\n LinearGradient,\n pickerContainerProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const checkedPadWithNItems =\n padWithNItems >= 0 ? Math.round(padWithNItems) : 0;\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: checkedPadWithNItems,\n }),\n\n [checkedPadWithNItems, customStyles]\n );\n\n const [selectedHours, setSelectedHours] = useState(initialHours);\n const [selectedMinutes, setSelectedMinutes] = useState(initialMinutes);\n const [selectedSeconds, setSelectedSeconds] = useState(initialSeconds);\n\n useEffect(() => {\n onDurationChange?.({\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedHours, selectedMinutes, selectedSeconds]);\n\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 setSelectedHours(initialHours);\n setSelectedMinutes(initialMinutes);\n setSelectedSeconds(initialSeconds);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\n hoursDurationScrollRef.current?.setValue(value.hours, options);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n },\n 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 {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n numberOfItems={23}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n initialValue={initialHours}\n allowFontScaling={allowFontScaling}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedHours}\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={hourLimit}\n LinearGradient={LinearGradient}\n is12HourPicker={use12HourPicker}\n amLabel={amLabel}\n pmLabel={pmLabel}\n styles={styles}\n testID=\"duration-scroll-hour\"\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n numberOfItems={59}\n label={minuteLabel ?? \"m\"}\n initialValue={initialMinutes}\n allowFontScaling={allowFontScaling}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={minuteLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-minute\"\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n numberOfItems={59}\n label={secondLabel ?? \"s\"}\n initialValue={initialSeconds}\n allowFontScaling={allowFontScaling}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={secondLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-second\"\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","create","container","justifyContent","alignItems","overflow","contentContainer","backgroundColor","theme","borderRadius","padding","buttonContainer","flexDirection","marginTop","button","marginHorizontal","paddingVertical","paddingHorizontal","borderWidth","fontSize","text","cancelButton","borderColor","color","undefined","confirmButton","modalTitle","fontWeight","marginBottom"],"sources":["TimerPickerModal.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"./TimerPicker/TimerPicker.styles\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n container?: any;\n contentContainer?: any;\n buttonContainer?: any;\n button?: any;\n cancelButton?: any;\n confirmButton?: any;\n modalTitle?: 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: CustomTimerPickerModalStyles | undefined\n) =>\n StyleSheet.create({\n container: {\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"hidden\",\n ...customStyles?.container,\n },\n contentContainer: {\n backgroundColor:\n customStyles?.backgroundColor ?? customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR,\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: 20,\n padding: 20,\n ...customStyles?.contentContainer,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginTop: 25,\n ...customStyles?.buttonContainer,\n },\n button: {\n marginHorizontal: 12,\n paddingVertical: 10,\n paddingHorizontal: 20,\n borderWidth: 1,\n borderRadius: 10,\n fontSize: 16,\n overflow: \"hidden\",\n ...customStyles?.text,\n ...customStyles?.button,\n },\n cancelButton: {\n borderColor: \"gray\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"gray\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"gray\" : undefined,\n ...customStyles?.text,\n ...customStyles?.cancelButton,\n },\n confirmButton: {\n borderColor: \"green\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"green\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"green\" : undefined,\n ...customStyles?.text,\n ...customStyles?.confirmButton,\n },\n modalTitle: {\n fontSize: 24,\n fontWeight: \"bold\",\n marginBottom: 15,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.modalTitle,\n },\n });\n"],"mappings":"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"}
1
+ {"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","create","container","justifyContent","alignItems","overflow","contentContainer","backgroundColor","theme","borderRadius","padding","buttonContainer","flexDirection","marginTop","button","marginHorizontal","paddingVertical","paddingHorizontal","borderWidth","fontSize","text","cancelButton","borderColor","color","undefined","confirmButton","modalTitle","fontWeight","marginBottom"],"sources":["TimerPickerModal.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet, Text, View } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"./TimerPicker/TimerPicker.styles\";\nimport { ComponentProps } from \"react\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n container?: ComponentProps<typeof View>;\n contentContainer?: ComponentProps<typeof View>;\n buttonContainer?: ComponentProps<typeof View>;\n button?: ComponentProps<typeof Text>;\n cancelButton?: ComponentProps<typeof Text>;\n confirmButton?: ComponentProps<typeof Text>;\n modalTitle?: ComponentProps<typeof Text>;\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: CustomTimerPickerModalStyles | undefined\n) =>\n StyleSheet.create({\n container: {\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"hidden\",\n ...customStyles?.container,\n },\n contentContainer: {\n backgroundColor:\n customStyles?.backgroundColor ?? customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR,\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: 20,\n padding: 20,\n ...customStyles?.contentContainer,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginTop: 25,\n ...customStyles?.buttonContainer,\n },\n button: {\n marginHorizontal: 12,\n paddingVertical: 10,\n paddingHorizontal: 20,\n borderWidth: 1,\n borderRadius: 10,\n fontSize: 16,\n overflow: \"hidden\",\n ...customStyles?.text,\n ...customStyles?.button,\n },\n cancelButton: {\n borderColor: \"gray\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"gray\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"gray\" : undefined,\n ...customStyles?.text,\n ...customStyles?.cancelButton,\n },\n confirmButton: {\n borderColor: \"green\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"green\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"green\" : undefined,\n ...customStyles?.text,\n ...customStyles?.confirmButton,\n },\n modalTitle: {\n fontSize: 24,\n fontWeight: \"bold\",\n marginBottom: 15,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.modalTitle,\n },\n });\n"],"mappings":"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"}