react-native-timer-picker 1.10.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +81 -52
  2. package/dist/commonjs/components/DurationScroll/index.js +77 -20
  3. package/dist/commonjs/components/DurationScroll/index.js.map +1 -1
  4. package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
  5. package/dist/commonjs/components/TimerPicker/index.js +23 -10
  6. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  7. package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
  8. package/dist/commonjs/components/TimerPickerModal/index.js +10 -7
  9. package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -1
  10. package/dist/commonjs/components/TimerPickerModal/styles.js +87 -54
  11. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
  12. package/dist/commonjs/tests/DurationScroll.test.js +3 -3
  13. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  14. package/dist/commonjs/tests/Modal.test.js +3 -3
  15. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  16. package/dist/commonjs/tests/TimerPicker.test.js +4 -4
  17. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  18. package/dist/commonjs/tests/TimerPickerModal.test.js +6 -6
  19. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  20. package/dist/commonjs/utils/generateNumbers.js +4 -3
  21. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  22. package/dist/commonjs/utils/getAdjustedLimit.js +5 -5
  23. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  24. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +2 -1
  25. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  26. package/dist/commonjs/utils/getInitialScrollIndex.js +2 -1
  27. package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
  28. package/dist/commonjs/utils/getSafeInitialValue.js +13 -0
  29. package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -0
  30. package/dist/module/components/DurationScroll/index.js +77 -20
  31. package/dist/module/components/DurationScroll/index.js.map +1 -1
  32. package/dist/module/components/DurationScroll/types.js.map +1 -1
  33. package/dist/module/components/TimerPicker/index.js +23 -10
  34. package/dist/module/components/TimerPicker/index.js.map +1 -1
  35. package/dist/module/components/TimerPicker/types.js.map +1 -1
  36. package/dist/module/components/TimerPickerModal/index.js +10 -7
  37. package/dist/module/components/TimerPickerModal/index.js.map +1 -1
  38. package/dist/module/components/TimerPickerModal/styles.js +87 -54
  39. package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
  40. package/dist/module/tests/DurationScroll.test.js +3 -3
  41. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  42. package/dist/module/tests/Modal.test.js +3 -3
  43. package/dist/module/tests/Modal.test.js.map +1 -1
  44. package/dist/module/tests/TimerPicker.test.js +4 -4
  45. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  46. package/dist/module/tests/TimerPickerModal.test.js +6 -6
  47. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  48. package/dist/module/utils/generateNumbers.js +4 -3
  49. package/dist/module/utils/generateNumbers.js.map +1 -1
  50. package/dist/module/utils/getAdjustedLimit.js +5 -5
  51. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  52. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +2 -1
  53. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  54. package/dist/module/utils/getInitialScrollIndex.js +2 -1
  55. package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
  56. package/dist/module/utils/getSafeInitialValue.js +6 -0
  57. package/dist/module/utils/getSafeInitialValue.js.map +1 -0
  58. package/dist/typescript/components/DurationScroll/types.d.ts +4 -1
  59. package/dist/typescript/components/TimerPicker/types.d.ts +7 -0
  60. package/dist/typescript/components/TimerPickerModal/styles.d.ts +117 -8
  61. package/dist/typescript/utils/generateNumbers.d.ts +2 -0
  62. package/dist/typescript/utils/getAdjustedLimit.d.ts +1 -1
  63. package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +1 -0
  64. package/dist/typescript/utils/getInitialScrollIndex.d.ts +1 -0
  65. package/dist/typescript/utils/getSafeInitialValue.d.ts +9 -0
  66. package/package.json +14 -10
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","DurationScroll","generateStyles","TimerPicker","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","disableInfiniteScroll","hideHours","hideMinutes","hideSeconds","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","safePadWithNItems","maxPadWithNItems","Math","round","safeInitialValue","hours","minutes","seconds","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","is12HourPicker","isDisabled","label","undefined","limit","numberOfItems","padNumbersWithZero","repeatNumbersNTimes","memo"],"sources":["index.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 DurationScroll from \"../DurationScroll\";\nimport type { DurationScrollRef } from \"../DurationScroll/types\";\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 disableInfiniteScroll = false,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\n repeatHourNumbersNTimes = 7,\n repeatMinuteNumbersNTimes = 3,\n repeatSecondNumbersNTimes = 3,\n secondLabel,\n secondLimit,\n secondsPickerIsDisabled = false,\n styles: customStyles,\n use12HourPicker = false,\n ...otherProps\n } = props;\n\n const safePadWithNItems = useMemo(() => {\n if (padWithNItems < 0) {\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 styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: safePadWithNItems,\n }),\n\n [safePadWithNItems, customStyles]\n );\n\n const safeInitialValue = useMemo(\n () => ({\n hours: initialValue?.hours ?? 0,\n minutes: initialValue?.minutes ?? 0,\n seconds: initialValue?.seconds ?? 0,\n }),\n [initialValue?.hours, initialValue?.minutes, initialValue?.seconds]\n );\n\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 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(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\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 aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.hours}\n is12HourPicker={use12HourPicker}\n isDisabled={hoursPickerIsDisabled}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n limit={hourLimit}\n numberOfItems={24}\n onDurationChange={setSelectedHours}\n padNumbersWithZero={padHoursWithZero}\n padWithNItems={safePadWithNItems}\n pmLabel={pmLabel}\n repeatNumbersNTimes={repeatHourNumbersNTimes}\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 disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.minutes}\n isDisabled={minutesPickerIsDisabled}\n label={minuteLabel ?? \"m\"}\n limit={minuteLimit}\n numberOfItems={60}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero={padMinutesWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatMinuteNumbersNTimes}\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 disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.seconds}\n isDisabled={secondsPickerIsDisabled}\n label={secondLabel ?? \"s\"}\n limit={secondLimit}\n numberOfItems={60}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero={padSecondsWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatSecondNumbersNTimes}\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","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","getSafeInitialValue","DurationScroll","generateStyles","TimerPicker","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","disableInfiniteScroll","hideHours","hideMinutes","hideSeconds","hourInterval","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","maximumHours","maximumMinutes","maximumSeconds","minuteInterval","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondInterval","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","safePadWithNItems","isNaN","maxPadWithNItems","Math","round","safeInitialValue","hours","minutes","seconds","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","interval","is12HourPicker","isDisabled","label","undefined","limit","maximumValue","padNumbersWithZero","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","memo"],"sources":["index.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/types\";\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 disableInfiniteScroll = false,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourInterval = 1,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n maximumHours = 23,\n maximumMinutes = 59,\n maximumSeconds = 59,\n minuteInterval = 1,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\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 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 hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n }),\n [initialValue?.hours, initialValue?.minutes, initialValue?.seconds]\n );\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: safePadWithNItems,\n }),\n\n [safePadWithNItems, customStyles]\n );\n\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 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(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\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 aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\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 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 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 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\n\nimport type { View } from \"react-native\";\n\nimport type {\n LinearGradientProps,\n SoundAssetType,\n LimitType,\n CustomFlatList,\n} from \"../DurationScroll/types\";\n\nimport type { CustomTimerPickerStyles } from \"./styles\";\n\nexport interface TimerPickerRef {\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\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}\n\nexport interface TimerPickerProps {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Audio?: any;\n FlatList?: CustomFlatList;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Haptics?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n aggressivelyGetLatestDuration?: boolean;\n allowFontScaling?: boolean;\n amLabel?: string;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n clickSoundAsset?: SoundAssetType;\n disableInfiniteScroll?: boolean;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLabel?: string | React.ReactElement;\n hourLimit?: LimitType;\n hoursPickerIsDisabled?: boolean;\n initialValue?: {\n hours?: number;\n minutes?: number;\n seconds?: number;\n };\n minuteLabel?: string | React.ReactElement;\n minuteLimit?: LimitType;\n minutesPickerIsDisabled?: boolean;\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n padHoursWithZero?: boolean;\n padMinutesWithZero?: boolean;\n padSecondsWithZero?: boolean;\n padWithNItems?: number;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n pmLabel?: string;\n repeatHourNumbersNTimes?: number;\n repeatMinuteNumbersNTimes?: number;\n repeatSecondNumbersNTimes?: number;\n secondLabel?: string | React.ReactElement;\n secondLimit?: LimitType;\n secondsPickerIsDisabled?: boolean;\n styles?: CustomTimerPickerStyles;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n use12HourPicker?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\n\nimport type { View } from \"react-native\";\n\nimport type {\n LinearGradientProps,\n SoundAssetType,\n LimitType,\n CustomFlatList,\n} from \"../DurationScroll/types\";\n\nimport type { CustomTimerPickerStyles } from \"./styles\";\n\nexport interface TimerPickerRef {\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\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}\n\nexport interface TimerPickerProps {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Audio?: any;\n FlatList?: CustomFlatList;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Haptics?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n aggressivelyGetLatestDuration?: boolean;\n allowFontScaling?: boolean;\n amLabel?: string;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n clickSoundAsset?: SoundAssetType;\n disableInfiniteScroll?: boolean;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourInterval?: number;\n hourLabel?: string | React.ReactElement;\n hourLimit?: LimitType;\n hoursPickerIsDisabled?: boolean;\n initialValue?: {\n hours?: number;\n minutes?: number;\n seconds?: number;\n };\n maximumHours?: number;\n maximumMinutes?: number;\n maximumSeconds?: number;\n minuteInterval?: number;\n minuteLabel?: string | React.ReactElement;\n minuteLimit?: LimitType;\n minutesPickerIsDisabled?: boolean;\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n padHoursWithZero?: boolean;\n padMinutesWithZero?: boolean;\n padSecondsWithZero?: boolean;\n padWithNItems?: number;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerFeedback?: () => void | Promise<void>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n pmLabel?: string;\n repeatHourNumbersNTimes?: number;\n repeatMinuteNumbersNTimes?: number;\n repeatSecondNumbersNTimes?: number;\n secondInterval?: number;\n secondLabel?: string | React.ReactElement;\n secondLimit?: LimitType;\n secondsPickerIsDisabled?: boolean;\n styles?: CustomTimerPickerStyles;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n use12HourPicker?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from "react";
3
3
  import { View, Text, TouchableOpacity } from "react-native";
4
+ import { getSafeInitialValue } from "../../utils/getSafeInitialValue";
4
5
  import Modal from "../Modal";
5
6
  import TimerPicker from "../TimerPicker";
6
7
  import { generateStyles } from "./styles";
@@ -26,13 +27,15 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
26
27
  visible,
27
28
  ...otherProps
28
29
  } = props;
29
- const styles = generateStyles(customStyles);
30
+ const styles = generateStyles(customStyles, {
31
+ hasModalTitle: Boolean(modalTitle)
32
+ });
30
33
  const timerPickerRef = useRef(null);
31
- const safeInitialValue = {
32
- hours: (initialValue === null || initialValue === void 0 ? void 0 : initialValue.hours) ?? 0,
33
- minutes: (initialValue === null || initialValue === void 0 ? void 0 : initialValue.minutes) ?? 0,
34
- seconds: (initialValue === null || initialValue === void 0 ? void 0 : initialValue.seconds) ?? 0
35
- };
34
+ const safeInitialValue = getSafeInitialValue({
35
+ hours: initialValue === null || initialValue === void 0 ? void 0 : initialValue.hours,
36
+ minutes: initialValue === null || initialValue === void 0 ? void 0 : initialValue.minutes,
37
+ seconds: initialValue === null || initialValue === void 0 ? void 0 : initialValue.seconds
38
+ });
36
39
  const [selectedDuration, setSelectedDuration] = useState(safeInitialValue);
37
40
  const [confirmedDuration, setConfirmedDuration] = useState(safeInitialValue);
38
41
  const reset = options => {
@@ -111,7 +114,7 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
111
114
  }, otherProps, {
112
115
  aggressivelyGetLatestDuration: true,
113
116
  onDurationChange: durationChangeHandler,
114
- styles: customStyles
117
+ styles: styles.timerPickerStyles
115
118
  })), /*#__PURE__*/React.createElement(View, _extends({}, buttonContainerProps, {
116
119
  style: styles.buttonContainer
117
120
  }), !hideCancelButton ? /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, buttonTouchableOpacityProps, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","View","Text","TouchableOpacity","Modal","TimerPicker","generateStyles","TimerPickerModal","props","ref","buttonContainerProps","buttonTouchableOpacityProps","cancelButtonText","closeOnOverlayPress","confirmButtonText","containerProps","contentContainerProps","hideCancelButton","initialValue","modalProps","modalTitle","modalTitleProps","onCancel","onConfirm","onDurationChange","setIsVisible","styles","customStyles","visible","otherProps","timerPickerRef","safeInitialValue","hours","minutes","seconds","selectedDuration","setSelectedDuration","confirmedDuration","setConfirmedDuration","reset","options","_timerPickerRef$curre","current","hideModalHandler","confirmHandler","_timerPickerRef$curre2","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","newDuration","cancelHandler","durationChangeHandler","duration","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","setValue","value","_timerPickerRef$curre3","createElement","_extends","isVisible","onOverlayPress","undefined","testID","style","container","contentContainer","aggressivelyGetLatestDuration","buttonContainer","onPress","button","cancelButton","confirmButton","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\n\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport Modal from \"../Modal\";\nimport TimerPicker from \"../TimerPicker\";\nimport type { TimerPickerRef } from \"../TimerPicker/types\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerModalRef, TimerPickerModalProps } from \"./types\";\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (props, ref) => {\n const {\n buttonContainerProps,\n buttonTouchableOpacityProps,\n cancelButtonText = \"Cancel\",\n closeOnOverlayPress,\n confirmButtonText = \"Confirm\",\n containerProps,\n contentContainerProps,\n hideCancelButton = false,\n initialValue,\n modalProps,\n modalTitle,\n modalTitleProps,\n onCancel,\n onConfirm,\n onDurationChange,\n setIsVisible,\n styles: customStyles,\n visible,\n ...otherProps\n } = props;\n\n const styles = generateStyles(customStyles);\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const safeInitialValue = {\n hours: initialValue?.hours ?? 0,\n minutes: initialValue?.minutes ?? 0,\n seconds: initialValue?.seconds ?? 0,\n };\n\n const [selectedDuration, setSelectedDuration] =\n useState(safeInitialValue);\n const [confirmedDuration, setConfirmedDuration] =\n useState(safeInitialValue);\n\n const reset = (options?: { animated?: boolean }) => {\n setSelectedDuration(safeInitialValue);\n setConfirmedDuration(safeInitialValue);\n timerPickerRef.current?.reset(options);\n };\n\n // reset state if the initial value changes\n useEffect(() => {\n reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n safeInitialValue.hours,\n safeInitialValue.minutes,\n safeInitialValue.seconds,\n ]);\n\n const hideModalHandler = () => {\n setSelectedDuration({\n hours: confirmedDuration.hours,\n minutes: confirmedDuration.minutes,\n seconds: confirmedDuration.seconds,\n });\n setIsVisible(false);\n };\n\n const confirmHandler = () => {\n const latestDuration = timerPickerRef.current?.latestDuration;\n\n const newDuration = {\n hours: latestDuration?.hours?.current ?? selectedDuration.hours,\n minutes:\n latestDuration?.minutes?.current ??\n selectedDuration.minutes,\n seconds:\n latestDuration?.seconds?.current ??\n selectedDuration.seconds,\n };\n setConfirmedDuration(newDuration);\n onConfirm(newDuration);\n };\n\n const cancelHandler = () => {\n setIsVisible(false);\n setSelectedDuration(confirmedDuration);\n onCancel?.();\n };\n\n // wrapped in useCallback to avoid unnecessary re-renders of TimerPicker\n const durationChangeHandler = useCallback(\n (duration: { hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n reset,\n setValue: (value, options) => {\n setSelectedDuration(value);\n setConfirmedDuration(value);\n timerPickerRef.current?.setValue(value, options);\n },\n latestDuration: {\n hours: timerPickerRef.current?.latestDuration?.hours,\n minutes: timerPickerRef.current?.latestDuration?.minutes,\n seconds: timerPickerRef.current?.latestDuration?.seconds,\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={\n closeOnOverlayPress ? hideModalHandler : undefined\n }\n {...modalProps}\n testID=\"timer-picker-modal\">\n <View {...containerProps} style={styles.container}>\n <View\n {...contentContainerProps}\n style={styles.contentContainer}>\n {modalTitle ? (\n <Text\n {...modalTitleProps}\n style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n initialValue={confirmedDuration}\n {...otherProps}\n aggressivelyGetLatestDuration\n onDurationChange={durationChangeHandler}\n styles={customStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton ? (\n <TouchableOpacity\n {...buttonTouchableOpacityProps}\n onPress={cancelHandler}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n ) : null}\n <TouchableOpacity\n {...buttonTouchableOpacityProps}\n onPress={confirmHandler}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","View","Text","TouchableOpacity","getSafeInitialValue","Modal","TimerPicker","generateStyles","TimerPickerModal","props","ref","buttonContainerProps","buttonTouchableOpacityProps","cancelButtonText","closeOnOverlayPress","confirmButtonText","containerProps","contentContainerProps","hideCancelButton","initialValue","modalProps","modalTitle","modalTitleProps","onCancel","onConfirm","onDurationChange","setIsVisible","styles","customStyles","visible","otherProps","hasModalTitle","Boolean","timerPickerRef","safeInitialValue","hours","minutes","seconds","selectedDuration","setSelectedDuration","confirmedDuration","setConfirmedDuration","reset","options","_timerPickerRef$curre","current","hideModalHandler","confirmHandler","_timerPickerRef$curre2","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","newDuration","cancelHandler","durationChangeHandler","duration","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","setValue","value","_timerPickerRef$curre3","createElement","_extends","isVisible","onOverlayPress","undefined","testID","style","container","contentContainer","aggressivelyGetLatestDuration","timerPickerStyles","buttonContainer","onPress","button","cancelButton","confirmButton","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\n\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport Modal from \"../Modal\";\nimport TimerPicker from \"../TimerPicker\";\nimport type { TimerPickerRef } from \"../TimerPicker/types\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerModalRef, TimerPickerModalProps } from \"./types\";\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (props, ref) => {\n const {\n buttonContainerProps,\n buttonTouchableOpacityProps,\n cancelButtonText = \"Cancel\",\n closeOnOverlayPress,\n confirmButtonText = \"Confirm\",\n containerProps,\n contentContainerProps,\n hideCancelButton = false,\n initialValue,\n modalProps,\n modalTitle,\n modalTitleProps,\n onCancel,\n onConfirm,\n onDurationChange,\n setIsVisible,\n styles: customStyles,\n visible,\n ...otherProps\n } = props;\n\n const styles = generateStyles(customStyles, {\n hasModalTitle: Boolean(modalTitle),\n });\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const safeInitialValue = getSafeInitialValue({\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n });\n\n const [selectedDuration, setSelectedDuration] =\n useState(safeInitialValue);\n const [confirmedDuration, setConfirmedDuration] =\n useState(safeInitialValue);\n\n const reset = (options?: { animated?: boolean }) => {\n setSelectedDuration(safeInitialValue);\n setConfirmedDuration(safeInitialValue);\n timerPickerRef.current?.reset(options);\n };\n\n // reset state if the initial value changes\n useEffect(() => {\n reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n safeInitialValue.hours,\n safeInitialValue.minutes,\n safeInitialValue.seconds,\n ]);\n\n const hideModalHandler = () => {\n setSelectedDuration({\n hours: confirmedDuration.hours,\n minutes: confirmedDuration.minutes,\n seconds: confirmedDuration.seconds,\n });\n setIsVisible(false);\n };\n\n const confirmHandler = () => {\n const latestDuration = timerPickerRef.current?.latestDuration;\n\n const newDuration = {\n hours: latestDuration?.hours?.current ?? selectedDuration.hours,\n minutes:\n latestDuration?.minutes?.current ??\n selectedDuration.minutes,\n seconds:\n latestDuration?.seconds?.current ??\n selectedDuration.seconds,\n };\n setConfirmedDuration(newDuration);\n onConfirm(newDuration);\n };\n\n const cancelHandler = () => {\n setIsVisible(false);\n setSelectedDuration(confirmedDuration);\n onCancel?.();\n };\n\n // wrapped in useCallback to avoid unnecessary re-renders of TimerPicker\n const durationChangeHandler = useCallback(\n (duration: { hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n reset,\n setValue: (value, options) => {\n setSelectedDuration(value);\n setConfirmedDuration(value);\n timerPickerRef.current?.setValue(value, options);\n },\n latestDuration: {\n hours: timerPickerRef.current?.latestDuration?.hours,\n minutes: timerPickerRef.current?.latestDuration?.minutes,\n seconds: timerPickerRef.current?.latestDuration?.seconds,\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={\n closeOnOverlayPress ? hideModalHandler : undefined\n }\n {...modalProps}\n testID=\"timer-picker-modal\">\n <View {...containerProps} style={styles.container}>\n <View\n {...contentContainerProps}\n style={styles.contentContainer}>\n {modalTitle ? (\n <Text\n {...modalTitleProps}\n style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n initialValue={confirmedDuration}\n {...otherProps}\n aggressivelyGetLatestDuration\n onDurationChange={durationChangeHandler}\n styles={styles.timerPickerStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton ? (\n <TouchableOpacity\n {...buttonTouchableOpacityProps}\n onPress={cancelHandler}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n ) : null}\n <TouchableOpacity\n {...buttonTouchableOpacityProps}\n onPress={confirmHandler}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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","ignoreList":[]}
@@ -3,58 +3,91 @@ const DARK_MODE_BACKGROUND_COLOR = "#232323";
3
3
  const DARK_MODE_TEXT_COLOR = "#E9E9E9";
4
4
  const LIGHT_MODE_BACKGROUND_COLOR = "#F1F1F1";
5
5
  const LIGHT_MODE_TEXT_COLOR = "#1B1B1B";
6
- export const generateStyles = customStyles => StyleSheet.create({
7
- container: {
8
- justifyContent: "center",
9
- alignItems: "center",
10
- overflow: "hidden",
11
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.container)
12
- },
13
- contentContainer: {
14
- 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
- justifyContent: "center",
16
- alignItems: "center",
17
- borderRadius: 20,
18
- padding: 20,
19
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.contentContainer)
20
- },
21
- buttonContainer: {
22
- flexDirection: "row",
23
- marginTop: 25,
24
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.buttonContainer)
25
- },
26
- button: {
27
- marginHorizontal: 12,
28
- paddingVertical: 10,
29
- paddingHorizontal: 20,
30
- borderWidth: 1,
31
- borderRadius: 10,
32
- fontSize: 16,
33
- overflow: "hidden",
34
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
35
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.button)
36
- },
37
- cancelButton: {
38
- borderColor: "gray",
39
- color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : "gray",
40
- backgroundColor: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? "gray" : undefined,
41
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
42
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.cancelButton)
43
- },
44
- confirmButton: {
45
- borderColor: "green",
46
- color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : "green",
47
- backgroundColor: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? "green" : undefined,
48
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
49
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.confirmButton)
50
- },
51
- modalTitle: {
52
- fontSize: 24,
53
- fontWeight: "600",
54
- marginBottom: 15,
55
- color: (customStyles === null || customStyles === void 0 ? void 0 : customStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
56
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.text),
57
- ...(customStyles === null || customStyles === void 0 ? void 0 : customStyles.modalTitle)
58
- }
59
- });
6
+ export const generateStyles = (customStyles, variables) => {
7
+ const {
8
+ button: customButtonStyle,
9
+ buttonContainer: customButtonContainerStyle,
10
+ cancelButton: customCancelButtonStyle,
11
+ confirmButton: customConfirmButtonStyle,
12
+ container: customContainerStyle,
13
+ contentContainer: customContentContainerStyle,
14
+ modalTitle: customModalTitleStyle,
15
+ ...customTimerPickerStyles
16
+ } = customStyles ?? {};
17
+ return StyleSheet.create({
18
+ container: {
19
+ justifyContent: "center",
20
+ overflow: "hidden",
21
+ ...customContainerStyle,
22
+ // disable setting alignItems here because it can affect
23
+ // the FlatList's ability to calculate its layout, which can
24
+ // stop snapToOffsets working properly
25
+ alignItems: undefined
26
+ },
27
+ contentContainer: {
28
+ backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.backgroundColor) ?? ((customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_BACKGROUND_COLOR : LIGHT_MODE_BACKGROUND_COLOR),
29
+ justifyContent: "center",
30
+ alignItems: "center",
31
+ borderRadius: 20,
32
+ overflow: "hidden",
33
+ ...customContentContainerStyle,
34
+ // disable setting padding here because it can affect
35
+ // the FlatList's ability to calculate its layout, which can
36
+ // stop snapToOffsets working properly
37
+ paddingHorizontal: 0,
38
+ paddingVertical: 0
39
+ },
40
+ buttonContainer: {
41
+ flexDirection: "row",
42
+ marginTop: 25,
43
+ marginBottom: 20,
44
+ ...customButtonContainerStyle
45
+ },
46
+ button: {
47
+ marginHorizontal: 12,
48
+ paddingVertical: 10,
49
+ paddingHorizontal: 20,
50
+ borderWidth: 1,
51
+ borderRadius: 10,
52
+ fontSize: 16,
53
+ overflow: "hidden",
54
+ ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
55
+ ...customButtonStyle
56
+ },
57
+ cancelButton: {
58
+ borderColor: "gray",
59
+ color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : "gray",
60
+ backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? "gray" : undefined,
61
+ ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
62
+ ...customCancelButtonStyle
63
+ },
64
+ confirmButton: {
65
+ borderColor: "green",
66
+ color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : "green",
67
+ backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? "green" : undefined,
68
+ ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
69
+ ...customConfirmButtonStyle
70
+ },
71
+ modalTitle: {
72
+ fontSize: 24,
73
+ fontWeight: "600",
74
+ marginTop: 20,
75
+ marginBottom: 15,
76
+ color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
77
+ ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
78
+ ...customModalTitleStyle
79
+ },
80
+ timerPickerStyles: {
81
+ ...customTimerPickerStyles,
82
+ pickerContainer: {
83
+ // set padding here instead of on modal content container because it can affect
84
+ // the FlatList's ability to calculate its layout, which can
85
+ // stop snapToOffsets working properly
86
+ paddingHorizontal: 20,
87
+ paddingTop: !(variables !== null && variables !== void 0 && variables.hasModalTitle) ? 20 : 0,
88
+ ...((customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.pickerContainer) ?? {})
89
+ }
90
+ }
91
+ });
92
+ };
60
93
  //# sourceMappingURL=styles.js.map
@@ -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":["styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\nimport type { TextStyle, ViewStyle } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"../TimerPicker/styles\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n button?: TextStyle;\n buttonContainer?: ViewStyle;\n cancelButton?: TextStyle;\n confirmButton?: TextStyle;\n container?: ViewStyle;\n contentContainer?: ViewStyle;\n modalTitle?: TextStyle;\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 ??\n (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: \"600\",\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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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","variables","button","customButtonStyle","buttonContainer","customButtonContainerStyle","cancelButton","customCancelButtonStyle","confirmButton","customConfirmButtonStyle","container","customContainerStyle","contentContainer","customContentContainerStyle","modalTitle","customModalTitleStyle","customTimerPickerStyles","create","justifyContent","overflow","alignItems","undefined","backgroundColor","theme","borderRadius","paddingHorizontal","paddingVertical","flexDirection","marginTop","marginBottom","marginHorizontal","borderWidth","fontSize","text","borderColor","color","fontWeight","timerPickerStyles","pickerContainer","paddingTop","hasModalTitle"],"sources":["styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\nimport type { TextStyle, ViewStyle } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"../TimerPicker/styles\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n button?: TextStyle;\n buttonContainer?: ViewStyle;\n cancelButton?: TextStyle;\n confirmButton?: TextStyle;\n container?: ViewStyle;\n contentContainer?: ViewStyle;\n modalTitle?: TextStyle;\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 variables?: {\n hasModalTitle: boolean;\n }\n) => {\n const {\n button: customButtonStyle,\n buttonContainer: customButtonContainerStyle,\n cancelButton: customCancelButtonStyle,\n confirmButton: customConfirmButtonStyle,\n container: customContainerStyle,\n contentContainer: customContentContainerStyle,\n modalTitle: customModalTitleStyle,\n ...customTimerPickerStyles\n } = customStyles ?? {};\n\n return StyleSheet.create({\n container: {\n justifyContent: \"center\",\n overflow: \"hidden\",\n ...customContainerStyle,\n // disable setting alignItems here because it can affect\n // the FlatList's ability to calculate its layout, which can\n // stop snapToOffsets working properly\n alignItems: undefined,\n },\n contentContainer: {\n backgroundColor:\n customTimerPickerStyles?.backgroundColor ??\n (customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: 20,\n overflow: \"hidden\",\n ...customContentContainerStyle,\n // disable setting padding here because it can affect\n // the FlatList's ability to calculate its layout, which can\n // stop snapToOffsets working properly\n paddingHorizontal: 0,\n paddingVertical: 0,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginTop: 25,\n marginBottom: 20,\n ...customButtonContainerStyle,\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 ...customTimerPickerStyles?.text,\n ...customButtonStyle,\n },\n cancelButton: {\n borderColor: \"gray\",\n color:\n customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : \"gray\",\n backgroundColor:\n customTimerPickerStyles?.theme === \"dark\" ? \"gray\" : undefined,\n ...customTimerPickerStyles?.text,\n ...customCancelButtonStyle,\n },\n confirmButton: {\n borderColor: \"green\",\n color:\n customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : \"green\",\n backgroundColor:\n customTimerPickerStyles?.theme === \"dark\" ? \"green\" : undefined,\n ...customTimerPickerStyles?.text,\n ...customConfirmButtonStyle,\n },\n modalTitle: {\n fontSize: 24,\n fontWeight: \"600\",\n marginTop: 20,\n marginBottom: 15,\n color:\n customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customTimerPickerStyles?.text,\n ...customModalTitleStyle,\n },\n timerPickerStyles: {\n ...customTimerPickerStyles,\n pickerContainer: {\n // set padding here instead of on modal content container because it can affect\n // the FlatList's ability to calculate its layout, which can\n // stop snapToOffsets working properly\n paddingHorizontal: 20,\n paddingTop: !variables?.hasModalTitle ? 20 : 0,\n ...(customTimerPickerStyles?.pickerContainer ?? {}),\n },\n },\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ describe("DurationScroll", () => {
18
18
  it("renders without crashing", () => {
19
19
  const {
20
20
  getByTestId
21
- } = render( /*#__PURE__*/React.createElement(DurationScroll, {
21
+ } = render(/*#__PURE__*/React.createElement(DurationScroll, {
22
22
  aggressivelyGetLatestDuration: false,
23
23
  numberOfItems: 1,
24
24
  onDurationChange: onDurationChangeMock,
@@ -32,7 +32,7 @@ describe("DurationScroll", () => {
32
32
  it("renders the correct number of items", () => {
33
33
  const {
34
34
  getAllByTestId
35
- } = render( /*#__PURE__*/React.createElement(DurationScroll, {
35
+ } = render(/*#__PURE__*/React.createElement(DurationScroll, {
36
36
  aggressivelyGetLatestDuration: false,
37
37
  numberOfItems: 2,
38
38
  onDurationChange: onDurationChangeMock,
@@ -45,7 +45,7 @@ describe("DurationScroll", () => {
45
45
  it("renders the label if provided", () => {
46
46
  const {
47
47
  getByText
48
- } = render( /*#__PURE__*/React.createElement(DurationScroll, {
48
+ } = render(/*#__PURE__*/React.createElement(DurationScroll, {
49
49
  aggressivelyGetLatestDuration: false,
50
50
  label: "Duration",
51
51
  numberOfItems: 59,
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","DurationScroll","describe","onDurationChangeMock","jest","fn","emptyStyles","pickerContainer","pickerLabelContainer","pickerLabel","pickerItemContainer","pickerItem","pickerAmPmContainer","pickerAmPmLabel","disabledPickerContainer","disabledPickerItem","pickerGradientOverlay","it","getByTestId","createElement","aggressivelyGetLatestDuration","numberOfItems","onDurationChange","padWithNItems","styles","testID","component","expect","toBeDefined","getAllByTestId","items","toHaveLength","getByText","label"],"sources":["DurationScroll.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\n\nimport DurationScroll from \"../components/DurationScroll\";\nimport type { generateStyles } from \"../components/TimerPicker/styles\";\n\ndescribe(\"DurationScroll\", () => {\n const onDurationChangeMock = jest.fn();\n const emptyStyles = {\n pickerContainer: {},\n pickerLabelContainer: {},\n pickerLabel: {},\n pickerItemContainer: {},\n pickerItem: {},\n pickerAmPmContainer: {},\n pickerAmPmLabel: {},\n disabledPickerContainer: {},\n disabledPickerItem: {},\n pickerGradientOverlay: {},\n } as ReturnType<typeof generateStyles>;\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n numberOfItems={1}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"renders the correct number of items\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n numberOfItems={2}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toHaveLength(7);\n });\n\n it(\"renders the label if provided\", () => {\n const { getByText } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n label=\"Duration\"\n numberOfItems={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n styles={emptyStyles}\n />\n );\n const label = getByText(\"Duration\");\n expect(label).toBeDefined();\n });\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,+BAA+B;AAEtD,OAAOC,cAAc,MAAM,8BAA8B;AAGzDC,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC7B,MAAMC,oBAAoB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACtC,MAAMC,WAAW,GAAG;IAChBC,eAAe,EAAE,CAAC,CAAC;IACnBC,oBAAoB,EAAE,CAAC,CAAC;IACxBC,WAAW,EAAE,CAAC,CAAC;IACfC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,UAAU,EAAE,CAAC,CAAC;IACdC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,eAAe,EAAE,CAAC,CAAC;IACnBC,uBAAuB,EAAE,CAAC,CAAC;IAC3BC,kBAAkB,EAAE,CAAC,CAAC;IACtBC,qBAAqB,EAAE,CAAC;EAC5B,CAAsC;EAEtCC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,eAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,aAAa,EAAE,CAAE;MACjBC,gBAAgB,EAAEnB,oBAAqB;MACvCoB,aAAa,EAAE,CAAE;MACjBC,MAAM,EAAElB,WAAY;MACpBmB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGR,WAAW,CAAC,iBAAiB,CAAC;IAChDS,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFX,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC5C,MAAM;MAAEY;IAAe,CAAC,GAAG7B,MAAM,eAC7BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,aAAa,EAAE,CAAE;MACjBC,gBAAgB,EAAEnB,oBAAqB;MACvCoB,aAAa,EAAE,CAAE;MACjBC,MAAM,EAAElB;IAAY,CACvB,CACL,CAAC;IACD,MAAMwB,KAAK,GAAGD,cAAc,CAAC,aAAa,CAAC;IAC3CF,MAAM,CAACG,KAAK,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFd,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEe;IAAU,CAAC,GAAGhC,MAAM,eACxBD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCa,KAAK,EAAC,UAAU;MAChBZ,aAAa,EAAE,EAAG;MAClBC,gBAAgB,EAAEnB,oBAAqB;MACvCoB,aAAa,EAAE,CAAE;MACjBC,MAAM,EAAElB;IAAY,CACvB,CACL,CAAC;IACD,MAAM2B,KAAK,GAAGD,SAAS,CAAC,UAAU,CAAC;IACnCL,MAAM,CAACM,KAAK,CAAC,CAACL,WAAW,CAAC,CAAC;EAC/B,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","render","DurationScroll","describe","onDurationChangeMock","jest","fn","emptyStyles","pickerContainer","pickerLabelContainer","pickerLabel","pickerItemContainer","pickerItem","pickerAmPmContainer","pickerAmPmLabel","disabledPickerContainer","disabledPickerItem","pickerGradientOverlay","it","getByTestId","createElement","aggressivelyGetLatestDuration","numberOfItems","onDurationChange","padWithNItems","styles","testID","component","expect","toBeDefined","getAllByTestId","items","toHaveLength","getByText","label"],"sources":["DurationScroll.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\n\nimport DurationScroll from \"../components/DurationScroll\";\nimport type { generateStyles } from \"../components/TimerPicker/styles\";\n\ndescribe(\"DurationScroll\", () => {\n const onDurationChangeMock = jest.fn();\n const emptyStyles = {\n pickerContainer: {},\n pickerLabelContainer: {},\n pickerLabel: {},\n pickerItemContainer: {},\n pickerItem: {},\n pickerAmPmContainer: {},\n pickerAmPmLabel: {},\n disabledPickerContainer: {},\n disabledPickerItem: {},\n pickerGradientOverlay: {},\n } as ReturnType<typeof generateStyles>;\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n numberOfItems={1}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"renders the correct number of items\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n numberOfItems={2}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toHaveLength(7);\n });\n\n it(\"renders the label if provided\", () => {\n const { getByText } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n label=\"Duration\"\n numberOfItems={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n styles={emptyStyles}\n />\n );\n const label = getByText(\"Duration\");\n expect(label).toBeDefined();\n });\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,+BAA+B;AAEtD,OAAOC,cAAc,MAAM,8BAA8B;AAGzDC,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC7B,MAAMC,oBAAoB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACtC,MAAMC,WAAW,GAAG;IAChBC,eAAe,EAAE,CAAC,CAAC;IACnBC,oBAAoB,EAAE,CAAC,CAAC;IACxBC,WAAW,EAAE,CAAC,CAAC;IACfC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,UAAU,EAAE,CAAC,CAAC;IACdC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,eAAe,EAAE,CAAC,CAAC;IACnBC,uBAAuB,EAAE,CAAC,CAAC;IAC3BC,kBAAkB,EAAE,CAAC,CAAC;IACtBC,qBAAqB,EAAE,CAAC;EAC5B,CAAsC;EAEtCC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,cAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,aAAa,EAAE,CAAE;MACjBC,gBAAgB,EAAEnB,oBAAqB;MACvCoB,aAAa,EAAE,CAAE;MACjBC,MAAM,EAAElB,WAAY;MACpBmB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGR,WAAW,CAAC,iBAAiB,CAAC;IAChDS,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFX,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC5C,MAAM;MAAEY;IAAe,CAAC,GAAG7B,MAAM,cAC7BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,aAAa,EAAE,CAAE;MACjBC,gBAAgB,EAAEnB,oBAAqB;MACvCoB,aAAa,EAAE,CAAE;MACjBC,MAAM,EAAElB;IAAY,CACvB,CACL,CAAC;IACD,MAAMwB,KAAK,GAAGD,cAAc,CAAC,aAAa,CAAC;IAC3CF,MAAM,CAACG,KAAK,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFd,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEe;IAAU,CAAC,GAAGhC,MAAM,cACxBD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCa,KAAK,EAAC,UAAU;MAChBZ,aAAa,EAAE,EAAG;MAClBC,gBAAgB,EAAEnB,oBAAqB;MACvCoB,aAAa,EAAE,CAAE;MACjBC,MAAM,EAAElB;IAAY,CACvB,CACL,CAAC;IACD,MAAM2B,KAAK,GAAGD,SAAS,CAAC,UAAU,CAAC;IACnCL,MAAM,CAACM,KAAK,CAAC,CAACL,WAAW,CAAC,CAAC;EAC/B,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -6,7 +6,7 @@ describe("Modal", () => {
6
6
  it("renders without crashing", () => {
7
7
  const {
8
8
  getByTestId
9
- } = render( /*#__PURE__*/React.createElement(Modal, {
9
+ } = render(/*#__PURE__*/React.createElement(Modal, {
10
10
  isVisible: true
11
11
  }));
12
12
  const component = getByTestId("modal");
@@ -15,7 +15,7 @@ describe("Modal", () => {
15
15
  it("renders children when visible", () => {
16
16
  const {
17
17
  getByText
18
- } = render( /*#__PURE__*/React.createElement(Modal, {
18
+ } = render(/*#__PURE__*/React.createElement(Modal, {
19
19
  isVisible: true
20
20
  }, /*#__PURE__*/React.createElement(Text, null, "Modal Content")));
21
21
  const content = getByText("Modal Content");
@@ -25,7 +25,7 @@ describe("Modal", () => {
25
25
  const onOverlayPressMock = jest.fn();
26
26
  const {
27
27
  getByTestId
28
- } = render( /*#__PURE__*/React.createElement(Modal, {
28
+ } = render(/*#__PURE__*/React.createElement(Modal, {
29
29
  isVisible: true,
30
30
  onOverlayPress: onOverlayPressMock
31
31
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","fireEvent","Text","Modal","describe","it","getByTestId","createElement","isVisible","component","expect","toBeDefined","getByText","content","onOverlayPressMock","jest","fn","onOverlayPress","overlay","press","toHaveBeenCalled"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent } from \"@testing-library/react-native\";\nimport { Text } from \"react-native\";\n\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<Modal isVisible/>);\n const component = getByTestId(\"modal\");\n expect(component).toBeDefined();\n });\n\n it(\"renders children when visible\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Modal Content\"}</Text>\n </Modal>\n );\n const content = getByText(\"Modal Content\");\n expect(content).toBeDefined();\n });\n\n it(\"calls onOverlayPress when overlay is pressed\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(\n <Modal isVisible onOverlayPress={onOverlayPressMock} />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n // Add more test cases to cover different interactions, scenarios, and edge cases\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACjE,SAASC,IAAI,QAAQ,cAAc;AAEnC,OAAOC,KAAK,MAAM,qBAAqB;AAEvCC,QAAQ,CAAC,OAAO,EAAE,MAAM;EACpBC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGN,MAAM,eAACD,KAAA,CAAAQ,aAAA,CAACJ,KAAK;MAACK,SAAS;IAAA,CAAC,CAAC,CAAC;IAClD,MAAMC,SAAS,GAAGH,WAAW,CAAC,OAAO,CAAC;IACtCI,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFN,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEO;IAAU,CAAC,GAAGZ,MAAM,eACxBD,KAAA,CAAAQ,aAAA,CAACJ,KAAK;MAACK,SAAS;IAAA,gBACZT,KAAA,CAAAQ,aAAA,CAACL,IAAI,QAAE,eAAsB,CAC1B,CACX,CAAC;IACD,MAAMW,OAAO,GAAGD,SAAS,CAAC,eAAe,CAAC;IAC1CF,MAAM,CAACG,OAAO,CAAC,CAACF,WAAW,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,8CAA8C,EAAE,MAAM;IACrD,MAAMS,kBAAkB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACpC,MAAM;MAAEV;IAAY,CAAC,GAAGN,MAAM,eAC1BD,KAAA,CAAAQ,aAAA,CAACJ,KAAK;MAACK,SAAS;MAACS,cAAc,EAAEH;IAAmB,CAAE,CAC1D,CAAC;IACD,MAAMI,OAAO,GAAGZ,WAAW,CAAC,gBAAgB,CAAC;IAC7CL,SAAS,CAACkB,KAAK,CAACD,OAAO,CAAC;IACxBR,MAAM,CAACI,kBAAkB,CAAC,CAACM,gBAAgB,CAAC,CAAC;EACjD,CAAC,CAAC;;EAEF;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","render","fireEvent","Text","Modal","describe","it","getByTestId","createElement","isVisible","component","expect","toBeDefined","getByText","content","onOverlayPressMock","jest","fn","onOverlayPress","overlay","press","toHaveBeenCalled"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent } from \"@testing-library/react-native\";\nimport { Text } from \"react-native\";\n\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<Modal isVisible/>);\n const component = getByTestId(\"modal\");\n expect(component).toBeDefined();\n });\n\n it(\"renders children when visible\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Modal Content\"}</Text>\n </Modal>\n );\n const content = getByText(\"Modal Content\");\n expect(content).toBeDefined();\n });\n\n it(\"calls onOverlayPress when overlay is pressed\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(\n <Modal isVisible onOverlayPress={onOverlayPressMock} />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n // Add more test cases to cover different interactions, scenarios, and edge cases\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AACjE,SAASC,IAAI,QAAQ,cAAc;AAEnC,OAAOC,KAAK,MAAM,qBAAqB;AAEvCC,QAAQ,CAAC,OAAO,EAAE,MAAM;EACpBC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGN,MAAM,cAACD,KAAA,CAAAQ,aAAA,CAACJ,KAAK;MAACK,SAAS;IAAA,CAAC,CAAC,CAAC;IAClD,MAAMC,SAAS,GAAGH,WAAW,CAAC,OAAO,CAAC;IACtCI,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFN,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEO;IAAU,CAAC,GAAGZ,MAAM,cACxBD,KAAA,CAAAQ,aAAA,CAACJ,KAAK;MAACK,SAAS;IAAA,gBACZT,KAAA,CAAAQ,aAAA,CAACL,IAAI,QAAE,eAAsB,CAC1B,CACX,CAAC;IACD,MAAMW,OAAO,GAAGD,SAAS,CAAC,eAAe,CAAC;IAC1CF,MAAM,CAACG,OAAO,CAAC,CAACF,WAAW,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,8CAA8C,EAAE,MAAM;IACrD,MAAMS,kBAAkB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACpC,MAAM;MAAEV;IAAY,CAAC,GAAGN,MAAM,cAC1BD,KAAA,CAAAQ,aAAA,CAACJ,KAAK;MAACK,SAAS;MAACS,cAAc,EAAEH;IAAmB,CAAE,CAC1D,CAAC;IACD,MAAMI,OAAO,GAAGZ,WAAW,CAAC,gBAAgB,CAAC;IAC7CL,SAAS,CAACkB,KAAK,CAACD,OAAO,CAAC;IACxBR,MAAM,CAACI,kBAAkB,CAAC,CAACM,gBAAgB,CAAC,CAAC;EACjD,CAAC,CAAC;;EAEF;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -7,14 +7,14 @@ describe("TimerPicker", () => {
7
7
  it("renders without crashing", () => {
8
8
  const {
9
9
  getByTestId
10
- } = render( /*#__PURE__*/React.createElement(TimerPicker, null));
10
+ } = render(/*#__PURE__*/React.createElement(TimerPicker, null));
11
11
  const component = getByTestId("timer-picker");
12
12
  expect(component).toBeDefined();
13
13
  });
14
14
  it("renders without crashing with negative padWithNItems", () => {
15
15
  const {
16
16
  getByTestId
17
- } = render( /*#__PURE__*/React.createElement(TimerPicker, {
17
+ } = render(/*#__PURE__*/React.createElement(TimerPicker, {
18
18
  padWithNItems: -1
19
19
  }));
20
20
  const component = getByTestId("timer-picker");
@@ -23,7 +23,7 @@ describe("TimerPicker", () => {
23
23
  it("hides minutes and seconds when respective hide props are provided", () => {
24
24
  const {
25
25
  queryByTestId
26
- } = render( /*#__PURE__*/React.createElement(TimerPicker, {
26
+ } = render(/*#__PURE__*/React.createElement(TimerPicker, {
27
27
  hideMinutes: true,
28
28
  hideSeconds: true
29
29
  }));
@@ -38,7 +38,7 @@ describe("TimerPicker", () => {
38
38
  }));
39
39
  const {
40
40
  queryAllByTestId
41
- } = render( /*#__PURE__*/React.createElement(TimerPicker, {
41
+ } = render(/*#__PURE__*/React.createElement(TimerPicker, {
42
42
  FlatList: CustomFlatList
43
43
  }));
44
44
  const customFlatList = queryAllByTestId("custom-flat-list");
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","FlatList","TimerPicker","describe","it","getByTestId","createElement","component","expect","toBeDefined","padWithNItems","queryByTestId","hideMinutes","hideSeconds","minutePicker","secondPicker","toBeNull","CustomFlatList","props","_extends","testID","queryAllByTestId","customFlatList","toHaveLength"],"sources":["TimerPicker.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\nimport { FlatList } from \"react-native\";\n\nimport TimerPicker from \"../components/TimerPicker\";\n\ndescribe(\"TimerPicker\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPicker />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"renders without crashing with negative padWithNItems\", () => {\n const { getByTestId } = render(<TimerPicker padWithNItems={-1} />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"hides minutes and seconds when respective hide props are provided\", () => {\n const { queryByTestId } = render(\n <TimerPicker hideMinutes hideSeconds />\n );\n const minutePicker = queryByTestId(\"duration-scroll-minute\");\n const secondPicker = queryByTestId(\"duration-scroll-second\");\n expect(minutePicker).toBeNull();\n expect(secondPicker).toBeNull();\n });\n\n it(\"uses the custom FlatList component when provided\", () => {\n const CustomFlatList = (props) => (\n <FlatList {...props} testID=\"custom-flat-list\" />\n );\n const { queryAllByTestId } = render(\n <TimerPicker FlatList={CustomFlatList} />\n );\n const customFlatList = queryAllByTestId(\"custom-flat-list\");\n expect(customFlatList).toHaveLength(3);\n });\n});\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,+BAA+B;AACtD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,OAAOC,WAAW,MAAM,2BAA2B;AAEnDC,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC1BC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGL,MAAM,eAACD,KAAA,CAAAO,aAAA,CAACJ,WAAW,MAAE,CAAC,CAAC;IAC/C,MAAMK,SAAS,GAAGF,WAAW,CAAC,cAAc,CAAC;IAC7CG,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFL,EAAE,CAAC,sDAAsD,EAAE,MAAM;IAC7D,MAAM;MAAEC;IAAY,CAAC,GAAGL,MAAM,eAACD,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACQ,aAAa,EAAE,CAAC;IAAE,CAAE,CAAC,CAAC;IAClE,MAAMH,SAAS,GAAGF,WAAW,CAAC,cAAc,CAAC;IAC7CG,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFL,EAAE,CAAC,mEAAmE,EAAE,MAAM;IAC1E,MAAM;MAAEO;IAAc,CAAC,GAAGX,MAAM,eAC5BD,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACU,WAAW;MAACC,WAAW;IAAA,CAAE,CAC1C,CAAC;IACD,MAAMC,YAAY,GAAGH,aAAa,CAAC,wBAAwB,CAAC;IAC5D,MAAMI,YAAY,GAAGJ,aAAa,CAAC,wBAAwB,CAAC;IAC5DH,MAAM,CAACM,YAAY,CAAC,CAACE,QAAQ,CAAC,CAAC;IAC/BR,MAAM,CAACO,YAAY,CAAC,CAACC,QAAQ,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFZ,EAAE,CAAC,kDAAkD,EAAE,MAAM;IACzD,MAAMa,cAAc,GAAIC,KAAK,iBACzBnB,KAAA,CAAAO,aAAA,CAACL,QAAQ,EAAAkB,QAAA,KAAKD,KAAK;MAAEE,MAAM,EAAC;IAAkB,EAAE,CACnD;IACD,MAAM;MAAEC;IAAiB,CAAC,GAAGrB,MAAM,eAC/BD,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACD,QAAQ,EAAEgB;IAAe,CAAE,CAC5C,CAAC;IACD,MAAMK,cAAc,GAAGD,gBAAgB,CAAC,kBAAkB,CAAC;IAC3Db,MAAM,CAACc,cAAc,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;EAC1C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","render","FlatList","TimerPicker","describe","it","getByTestId","createElement","component","expect","toBeDefined","padWithNItems","queryByTestId","hideMinutes","hideSeconds","minutePicker","secondPicker","toBeNull","CustomFlatList","props","_extends","testID","queryAllByTestId","customFlatList","toHaveLength"],"sources":["TimerPicker.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\nimport { FlatList } from \"react-native\";\n\nimport TimerPicker from \"../components/TimerPicker\";\n\ndescribe(\"TimerPicker\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPicker />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"renders without crashing with negative padWithNItems\", () => {\n const { getByTestId } = render(<TimerPicker padWithNItems={-1} />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"hides minutes and seconds when respective hide props are provided\", () => {\n const { queryByTestId } = render(\n <TimerPicker hideMinutes hideSeconds />\n );\n const minutePicker = queryByTestId(\"duration-scroll-minute\");\n const secondPicker = queryByTestId(\"duration-scroll-second\");\n expect(minutePicker).toBeNull();\n expect(secondPicker).toBeNull();\n });\n\n it(\"uses the custom FlatList component when provided\", () => {\n const CustomFlatList = (props) => (\n <FlatList {...props} testID=\"custom-flat-list\" />\n );\n const { queryAllByTestId } = render(\n <TimerPicker FlatList={CustomFlatList} />\n );\n const customFlatList = queryAllByTestId(\"custom-flat-list\");\n expect(customFlatList).toHaveLength(3);\n });\n});\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,+BAA+B;AACtD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,OAAOC,WAAW,MAAM,2BAA2B;AAEnDC,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC1BC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGL,MAAM,cAACD,KAAA,CAAAO,aAAA,CAACJ,WAAW,MAAE,CAAC,CAAC;IAC/C,MAAMK,SAAS,GAAGF,WAAW,CAAC,cAAc,CAAC;IAC7CG,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFL,EAAE,CAAC,sDAAsD,EAAE,MAAM;IAC7D,MAAM;MAAEC;IAAY,CAAC,GAAGL,MAAM,cAACD,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACQ,aAAa,EAAE,CAAC;IAAE,CAAE,CAAC,CAAC;IAClE,MAAMH,SAAS,GAAGF,WAAW,CAAC,cAAc,CAAC;IAC7CG,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFL,EAAE,CAAC,mEAAmE,EAAE,MAAM;IAC1E,MAAM;MAAEO;IAAc,CAAC,GAAGX,MAAM,cAC5BD,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACU,WAAW;MAACC,WAAW;IAAA,CAAE,CAC1C,CAAC;IACD,MAAMC,YAAY,GAAGH,aAAa,CAAC,wBAAwB,CAAC;IAC5D,MAAMI,YAAY,GAAGJ,aAAa,CAAC,wBAAwB,CAAC;IAC5DH,MAAM,CAACM,YAAY,CAAC,CAACE,QAAQ,CAAC,CAAC;IAC/BR,MAAM,CAACO,YAAY,CAAC,CAACC,QAAQ,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFZ,EAAE,CAAC,kDAAkD,EAAE,MAAM;IACzD,MAAMa,cAAc,GAAIC,KAAK,iBACzBnB,KAAA,CAAAO,aAAA,CAACL,QAAQ,EAAAkB,QAAA,KAAKD,KAAK;MAAEE,MAAM,EAAC;IAAkB,EAAE,CACnD;IACD,MAAM;MAAEC;IAAiB,CAAC,GAAGrB,MAAM,cAC/BD,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACD,QAAQ,EAAEgB;IAAe,CAAE,CAC5C,CAAC;IACD,MAAMK,cAAc,GAAGD,gBAAgB,CAAC,kBAAkB,CAAC;IAC3Db,MAAM,CAACc,cAAc,CAAC,CAACC,YAAY,CAAC,CAAC,CAAC;EAC1C,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}