react-native-paper-dates 0.4.5 → 0.6.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 (249) hide show
  1. package/README.md +80 -16
  2. package/lib/commonjs/Date/AnimatedCrossView.js +9 -8
  3. package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
  4. package/lib/commonjs/Date/AutoSizer.js +6 -5
  5. package/lib/commonjs/Date/AutoSizer.js.map +1 -1
  6. package/lib/commonjs/Date/Calendar.js +46 -39
  7. package/lib/commonjs/Date/Calendar.js.map +1 -1
  8. package/lib/commonjs/Date/CalendarEdit.js +35 -110
  9. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  10. package/lib/commonjs/Date/CalendarHeader.js +19 -12
  11. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  12. package/lib/commonjs/Date/DatePickerInput.js +93 -20
  13. package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
  14. package/lib/commonjs/Date/DatePickerModal.js +4 -6
  15. package/lib/commonjs/Date/DatePickerModal.js.map +1 -1
  16. package/lib/commonjs/Date/DatePickerModalContent.js +9 -5
  17. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  18. package/lib/commonjs/Date/DatePickerModalContentHeader.js +42 -34
  19. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  20. package/lib/commonjs/Date/DatePickerModalHeader.js +14 -6
  21. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  22. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
  23. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  24. package/lib/commonjs/Date/DateRangeInput.js +23 -24
  25. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  26. package/lib/commonjs/Date/Day.js +7 -3
  27. package/lib/commonjs/Date/Day.js.map +1 -1
  28. package/lib/commonjs/Date/DayName.js +6 -5
  29. package/lib/commonjs/Date/DayName.js.map +1 -1
  30. package/lib/commonjs/Date/DayNames.js +7 -6
  31. package/lib/commonjs/Date/DayNames.js.map +1 -1
  32. package/lib/commonjs/Date/DayRange.js +9 -8
  33. package/lib/commonjs/Date/DayRange.js.map +1 -1
  34. package/lib/commonjs/Date/Month.js +57 -49
  35. package/lib/commonjs/Date/Month.js.map +1 -1
  36. package/lib/commonjs/Date/Swiper.js +35 -29
  37. package/lib/commonjs/Date/Swiper.js.map +1 -1
  38. package/lib/commonjs/Date/Swiper.native.js +29 -23
  39. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  40. package/lib/commonjs/Date/SwiperUtils.js +7 -6
  41. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  42. package/lib/commonjs/Date/YearPicker.js +28 -20
  43. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  44. package/lib/commonjs/Date/dateUtils.js +107 -38
  45. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  46. package/lib/commonjs/Date/inputUtils.js +84 -0
  47. package/lib/commonjs/Date/inputUtils.js.map +1 -0
  48. package/lib/commonjs/TextInputMask.js +11 -10
  49. package/lib/commonjs/TextInputMask.js.map +1 -1
  50. package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
  51. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  52. package/lib/commonjs/Time/AnalogClock.js +28 -26
  53. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  54. package/lib/commonjs/Time/AnalogClockHours.js +18 -12
  55. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  56. package/lib/commonjs/Time/AnalogClockMinutes.js +9 -8
  57. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  58. package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
  59. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  60. package/lib/commonjs/Time/TimeInput.js +16 -12
  61. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  62. package/lib/commonjs/Time/TimeInputs.js +12 -11
  63. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  64. package/lib/commonjs/Time/TimePicker.js +39 -17
  65. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  66. package/lib/commonjs/Time/TimePickerModal.js +19 -15
  67. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  68. package/lib/commonjs/Time/timeUtils.js +17 -9
  69. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  70. package/lib/commonjs/index.js +66 -5
  71. package/lib/commonjs/index.js.map +1 -1
  72. package/lib/commonjs/translations/en.js +20 -0
  73. package/lib/commonjs/translations/en.js.map +1 -0
  74. package/lib/commonjs/translations/enGB.js +20 -0
  75. package/lib/commonjs/translations/enGB.js.map +1 -0
  76. package/lib/commonjs/translations/nl.js +20 -0
  77. package/lib/commonjs/translations/nl.js.map +1 -0
  78. package/lib/commonjs/translations/pl.js +20 -0
  79. package/lib/commonjs/translations/pl.js.map +1 -0
  80. package/lib/commonjs/translations/utils.js +31 -0
  81. package/lib/commonjs/translations/utils.js.map +1 -0
  82. package/lib/commonjs/utils.js +19 -9
  83. package/lib/commonjs/utils.js.map +1 -1
  84. package/lib/module/Date/AnimatedCrossView.js +7 -6
  85. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  86. package/lib/module/Date/AutoSizer.js +4 -3
  87. package/lib/module/Date/AutoSizer.js.map +1 -1
  88. package/lib/module/Date/Calendar.js +46 -39
  89. package/lib/module/Date/Calendar.js.map +1 -1
  90. package/lib/module/Date/CalendarEdit.js +31 -103
  91. package/lib/module/Date/CalendarEdit.js.map +1 -1
  92. package/lib/module/Date/CalendarHeader.js +16 -9
  93. package/lib/module/Date/CalendarHeader.js.map +1 -1
  94. package/lib/module/Date/DatePickerInput.js +88 -18
  95. package/lib/module/Date/DatePickerInput.js.map +1 -1
  96. package/lib/module/Date/DatePickerModal.js +3 -5
  97. package/lib/module/Date/DatePickerModal.js.map +1 -1
  98. package/lib/module/Date/DatePickerModalContent.js +7 -3
  99. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  100. package/lib/module/Date/DatePickerModalContentHeader.js +37 -30
  101. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  102. package/lib/module/Date/DatePickerModalHeader.js +11 -4
  103. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  104. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  105. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  106. package/lib/module/Date/DateRangeInput.js +22 -22
  107. package/lib/module/Date/DateRangeInput.js.map +1 -1
  108. package/lib/module/Date/Day.js +5 -1
  109. package/lib/module/Date/Day.js.map +1 -1
  110. package/lib/module/Date/DayName.js +4 -3
  111. package/lib/module/Date/DayName.js.map +1 -1
  112. package/lib/module/Date/DayNames.js +5 -4
  113. package/lib/module/Date/DayNames.js.map +1 -1
  114. package/lib/module/Date/DayRange.js +7 -6
  115. package/lib/module/Date/DayRange.js.map +1 -1
  116. package/lib/module/Date/Month.js +52 -45
  117. package/lib/module/Date/Month.js.map +1 -1
  118. package/lib/module/Date/Swiper.js +32 -26
  119. package/lib/module/Date/Swiper.js.map +1 -1
  120. package/lib/module/Date/Swiper.native.js +27 -21
  121. package/lib/module/Date/Swiper.native.js.map +1 -1
  122. package/lib/module/Date/SwiperUtils.js +5 -4
  123. package/lib/module/Date/SwiperUtils.js.map +1 -1
  124. package/lib/module/Date/YearPicker.js +26 -18
  125. package/lib/module/Date/YearPicker.js.map +1 -1
  126. package/lib/module/Date/dateUtils.js +79 -30
  127. package/lib/module/Date/dateUtils.js.map +1 -1
  128. package/lib/module/Date/inputUtils.js +70 -0
  129. package/lib/module/Date/inputUtils.js.map +1 -0
  130. package/lib/module/TextInputMask.js +9 -8
  131. package/lib/module/TextInputMask.js.map +1 -1
  132. package/lib/module/Time/AmPmSwitcher.js +35 -18
  133. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  134. package/lib/module/Time/AnalogClock.js +20 -17
  135. package/lib/module/Time/AnalogClock.js.map +1 -1
  136. package/lib/module/Time/AnalogClockHours.js +15 -10
  137. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  138. package/lib/module/Time/AnalogClockMinutes.js +6 -5
  139. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  140. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  141. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  142. package/lib/module/Time/TimeInput.js +14 -10
  143. package/lib/module/Time/TimeInput.js.map +1 -1
  144. package/lib/module/Time/TimeInputs.js +10 -9
  145. package/lib/module/Time/TimeInputs.js.map +1 -1
  146. package/lib/module/Time/TimePicker.js +34 -13
  147. package/lib/module/Time/TimePicker.js.map +1 -1
  148. package/lib/module/Time/TimePickerModal.js +17 -13
  149. package/lib/module/Time/TimePickerModal.js.map +1 -1
  150. package/lib/module/Time/timeUtils.js +8 -2
  151. package/lib/module/Time/timeUtils.js.map +1 -1
  152. package/lib/module/index.js +6 -0
  153. package/lib/module/index.js.map +1 -1
  154. package/lib/module/translations/en.js +13 -0
  155. package/lib/module/translations/en.js.map +1 -0
  156. package/lib/module/translations/enGB.js +13 -0
  157. package/lib/module/translations/enGB.js.map +1 -0
  158. package/lib/module/translations/nl.js +13 -0
  159. package/lib/module/translations/nl.js.map +1 -0
  160. package/lib/module/translations/pl.js +13 -0
  161. package/lib/module/translations/pl.js.map +1 -0
  162. package/lib/module/translations/utils.js +22 -0
  163. package/lib/module/translations/utils.js.map +1 -0
  164. package/lib/module/utils.js +11 -5
  165. package/lib/module/utils.js.map +1 -1
  166. package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
  167. package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
  168. package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
  169. package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +4 -3
  170. package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
  171. package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
  172. package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
  173. package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -0
  174. package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
  175. package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
  176. package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
  177. package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
  178. package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
  179. package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
  180. package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
  181. package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
  182. package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
  183. package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
  184. package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
  185. package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
  186. package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
  187. package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
  188. package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
  189. package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
  190. package/lib/typescript/Date/inputUtils.d.ts +14 -0
  191. package/lib/typescript/TextInputMask.d.ts +11 -0
  192. package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
  193. package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -2
  194. package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
  195. package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
  196. package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
  197. package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
  198. package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
  199. package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
  200. package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
  201. package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +1 -0
  202. package/lib/typescript/index.d.ts +13 -0
  203. package/lib/typescript/translations/en.d.ts +3 -0
  204. package/lib/typescript/translations/enGB.d.ts +3 -0
  205. package/lib/typescript/translations/nl.d.ts +3 -0
  206. package/lib/typescript/translations/pl.d.ts +3 -0
  207. package/lib/typescript/translations/utils.d.ts +13 -0
  208. package/lib/typescript/utils.d.ts +58 -0
  209. package/package.json +39 -31
  210. package/src/.DS_Store +0 -0
  211. package/src/Date/Calendar.tsx +14 -13
  212. package/src/Date/CalendarEdit.tsx +21 -120
  213. package/src/Date/CalendarHeader.tsx +15 -3
  214. package/src/Date/DatePickerInput.tsx +103 -25
  215. package/src/Date/DatePickerModal.tsx +3 -8
  216. package/src/Date/DatePickerModalContent.tsx +6 -0
  217. package/src/Date/DatePickerModalContentHeader.tsx +21 -12
  218. package/src/Date/DatePickerModalHeader.tsx +13 -2
  219. package/src/Date/DateRangeInput.tsx +26 -17
  220. package/src/Date/Day.tsx +4 -0
  221. package/src/Date/Month.tsx +18 -44
  222. package/src/Date/Swiper.tsx +1 -0
  223. package/src/Date/SwiperUtils.ts +1 -1
  224. package/src/Date/YearPicker.tsx +4 -1
  225. package/src/Date/dateUtils.tsx +71 -10
  226. package/src/Date/inputUtils.ts +94 -0
  227. package/src/TextInputMask.tsx +10 -3
  228. package/src/Time/AmPmSwitcher.tsx +20 -11
  229. package/src/Time/AnalogClock.tsx +10 -18
  230. package/src/Time/AnalogClockHours.tsx +15 -6
  231. package/src/Time/AnalogClockMinutes.tsx +5 -2
  232. package/src/Time/TimeInput.tsx +3 -0
  233. package/src/Time/TimeInputs.tsx +1 -5
  234. package/src/Time/TimePicker.tsx +46 -23
  235. package/src/Time/TimePickerModal.tsx +4 -1
  236. package/src/Time/timeUtils.ts +7 -1
  237. package/src/index.tsx +7 -0
  238. package/src/translations/en.ts +15 -0
  239. package/src/translations/enGB.ts +15 -0
  240. package/src/translations/nl.ts +15 -0
  241. package/src/translations/pl.ts +15 -0
  242. package/src/translations/utils.ts +42 -0
  243. package/src/utils.ts +13 -5
  244. package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
  245. package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
  246. package/lib/typescript/src/TextInputMask.d.ts +0 -3
  247. package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
  248. package/lib/typescript/src/index.d.ts +0 -6
  249. package/lib/typescript/src/utils.d.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedClockSwitcher.tsx"],"names":["AnimatedClockSwitcher","focused","hours","minutes","collapsed","clockTypes","animatedCollapsed","React","useRef","Animated","Value","useEffect","timing","current","toValue","duration","useNativeDriver","start","StyleSheet","absoluteFill","opacity","transform","scale","interpolate","inputRange","outputRange"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,qBAAT,CAA+B;AAC5CC,EAAAA,OAD4C;AAE5CC,EAAAA,KAF4C;AAG5CC,EAAAA;AAH4C,CAA/B,EAQZ;AACD,QAAMC,SAAS,GAAGH,OAAO,KAAKI,sBAAWH,KAAzC;AACA,QAAMI,iBAAiB,GAAGC,KAAK,CAACC,MAAN,CACxB,IAAIC,sBAASC,KAAb,CAAmBN,SAAS,GAAG,CAAH,GAAO,CAAnC,CADwB,CAA1B;AAGAG,EAAAA,KAAK,CAACI,SAAN,CAAgB,MAAM;AACpBF,0BAASG,MAAT,CAAgBN,iBAAiB,CAACO,OAAlC,EAA2C;AACzCC,MAAAA,OAAO,EAAEV,SAAS,GAAG,CAAH,GAAO,CADgB;AAEzCW,MAAAA,QAAQ,EAAE,GAF+B;AAGzCC,MAAAA,eAAe,EAAE;AAHwB,KAA3C,EAIGC,KAJH;AAKD,GAND,EAMG,CAACb,SAAD,CANH;AAQA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEc,wBAAWC;AAAxB,kBACE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAEf,SAAS,GAAG,MAAH,GAAY,MADtC;AAEE,IAAA,KAAK,EAAE,CACLc,wBAAWC,YADN,EAEL;AACEC,MAAAA,OAAO,EAAEd,iBAAiB,CAACO,OAD7B;AAEEQ,MAAAA,SAAS,EAAE,CACT;AACEC,QAAAA,KAAK,EAAEhB,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC3CC,UAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;AAE3CC,UAAAA,WAAW,EAAE,CAAC,IAAD,EAAO,CAAP;AAF8B,SAAtC;AADT,OADS;AAFb,KAFK;AAFT,KAiBGvB,KAjBH,CADF,eAoBE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAEE,SAAS,GAAG,MAAH,GAAY,MADtC;AAEE,IAAA,KAAK,EAAE,CACLc,wBAAWC,YADN,EAEL;AACEC,MAAAA,OAAO,EAAEd,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC7CC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADiC;AAE7CC,QAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ;AAFgC,OAAtC,CADX;AAKEJ,MAAAA,SAAS,EAAE,CACT;AACEC,QAAAA,KAAK,EAAEhB,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC3CC,UAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;AAE3CC,UAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,IAAJ;AAF8B,SAAtC;AADT,OADS;AALb,KAFK;AAFT,KAoBGtB,OApBH,CApBF,CADF;AA6CD","sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { clockTypes, PossibleClockTypes } from './timeUtils'\n\nexport default function AnimatedClockSwitcher({\n focused,\n hours,\n minutes,\n}: {\n focused: PossibleClockTypes\n hours: any\n minutes: any\n}) {\n const collapsed = focused === clockTypes.hours\n const animatedCollapsed = React.useRef<Animated.Value>(\n new Animated.Value(collapsed ? 1 : 0)\n )\n React.useEffect(() => {\n Animated.timing(animatedCollapsed.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true,\n }).start()\n }, [collapsed])\n\n return (\n <View style={StyleSheet.absoluteFill}>\n <Animated.View\n pointerEvents={collapsed ? 'auto' : 'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: animatedCollapsed.current,\n transform: [\n {\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1],\n }),\n },\n ],\n },\n ]}\n >\n {hours}\n </Animated.View>\n <Animated.View\n pointerEvents={collapsed ? 'none' : 'auto'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n transform: [\n {\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95],\n }),\n },\n ],\n },\n ]}\n >\n {minutes}\n </Animated.View>\n </View>\n )\n}\n"]}
1
+ {"version":3,"sources":["AnimatedClockSwitcher.tsx"],"names":["AnimatedClockSwitcher","focused","hours","minutes","collapsed","clockTypes","animatedCollapsed","React","useRef","Animated","Value","useEffect","timing","current","toValue","duration","useNativeDriver","start","StyleSheet","absoluteFill","opacity","transform","scale","interpolate","inputRange","outputRange"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,qBAAT,OAQZ;AAAA,MAR2C;AAC5CC,IAAAA,OAD4C;AAE5CC,IAAAA,KAF4C;AAG5CC,IAAAA;AAH4C,GAQ3C;AACD,QAAMC,SAAS,GAAGH,OAAO,KAAKI,sBAAWH,KAAzC;AACA,QAAMI,iBAAiB,GAAGC,KAAK,CAACC,MAAN,CACxB,IAAIC,sBAASC,KAAb,CAAmBN,SAAS,GAAG,CAAH,GAAO,CAAnC,CADwB,CAA1B;AAGAG,EAAAA,KAAK,CAACI,SAAN,CAAgB,MAAM;AACpBF,0BAASG,MAAT,CAAgBN,iBAAiB,CAACO,OAAlC,EAA2C;AACzCC,MAAAA,OAAO,EAAEV,SAAS,GAAG,CAAH,GAAO,CADgB;AAEzCW,MAAAA,QAAQ,EAAE,GAF+B;AAGzCC,MAAAA,eAAe,EAAE;AAHwB,KAA3C,EAIGC,KAJH;AAKD,GAND,EAMG,CAACb,SAAD,CANH;AAQA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEc,wBAAWC;AAAxB,kBACE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAEf,SAAS,GAAG,MAAH,GAAY,MADtC;AAEE,IAAA,KAAK,EAAE,CACLc,wBAAWC,YADN,EAEL;AACEC,MAAAA,OAAO,EAAEd,iBAAiB,CAACO,OAD7B;AAEEQ,MAAAA,SAAS,EAAE,CACT;AACEC,QAAAA,KAAK,EAAEhB,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC3CC,UAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;AAE3CC,UAAAA,WAAW,EAAE,CAAC,IAAD,EAAO,CAAP;AAF8B,SAAtC;AADT,OADS;AAFb,KAFK;AAFT,KAiBGvB,KAjBH,CADF,eAoBE,oBAAC,qBAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAEE,SAAS,GAAG,MAAH,GAAY,MADtC;AAEE,IAAA,KAAK,EAAE,CACLc,wBAAWC,YADN,EAEL;AACEC,MAAAA,OAAO,EAAEd,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC7CC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADiC;AAE7CC,QAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ;AAFgC,OAAtC,CADX;AAKEJ,MAAAA,SAAS,EAAE,CACT;AACEC,QAAAA,KAAK,EAAEhB,iBAAiB,CAACO,OAAlB,CAA0BU,WAA1B,CAAsC;AAC3CC,UAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;AAE3CC,UAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,IAAJ;AAF8B,SAAtC;AADT,OADS;AALb,KAFK;AAFT,KAoBGtB,OApBH,CApBF,CADF;AA6CD","sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { clockTypes, PossibleClockTypes } from './timeUtils'\n\nexport default function AnimatedClockSwitcher({\n focused,\n hours,\n minutes,\n}: {\n focused: PossibleClockTypes\n hours: any\n minutes: any\n}) {\n const collapsed = focused === clockTypes.hours\n const animatedCollapsed = React.useRef<Animated.Value>(\n new Animated.Value(collapsed ? 1 : 0)\n )\n React.useEffect(() => {\n Animated.timing(animatedCollapsed.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true,\n }).start()\n }, [collapsed])\n\n return (\n <View style={StyleSheet.absoluteFill}>\n <Animated.View\n pointerEvents={collapsed ? 'auto' : 'none'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: animatedCollapsed.current,\n transform: [\n {\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1],\n }),\n },\n ],\n },\n ]}\n >\n {hours}\n </Animated.View>\n <Animated.View\n pointerEvents={collapsed ? 'none' : 'auto'}\n style={[\n StyleSheet.absoluteFill,\n {\n opacity: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n transform: [\n {\n scale: animatedCollapsed.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95],\n }),\n },\n ],\n },\n ]}\n >\n {minutes}\n </Animated.View>\n </View>\n )\n}\n"]}
@@ -17,21 +17,22 @@ var _timeUtils = require("./timeUtils");
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
 
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
24
  function _extends() { _extends = Object.assign || 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); }
25
25
 
26
- function TimeInput({
27
- value,
28
- clockType,
29
- pressed,
30
- onPress,
31
- onChanged,
32
- inputType,
33
- ...rest
34
- }, ref) {
26
+ function TimeInput(_ref, ref) {
27
+ let {
28
+ value,
29
+ clockType,
30
+ pressed,
31
+ onPress,
32
+ onChanged,
33
+ inputType,
34
+ ...rest
35
+ } = _ref;
35
36
  const [controlledValue, setControlledValue] = React.useState(`${value}`);
36
37
 
37
38
  const onInnerChange = text => {
@@ -81,7 +82,10 @@ function TimeInput({
81
82
  }],
82
83
  rippleColor: (0, _color.default)(theme.colors.primary).fade(0.7).hex(),
83
84
  onPress: () => onPress(clockType),
84
- borderless: true
85
+ borderless: true // RN types bug
86
+ ,
87
+ hasTVPreferredFocus: undefined,
88
+ tvParallaxProperties: undefined
85
89
  }, /*#__PURE__*/React.createElement(_reactNative.View, null)) : null);
86
90
  }
87
91
 
@@ -1 +1 @@
1
- {"version":3,"sources":["TimeInput.tsx"],"names":["TimeInput","value","clockType","pressed","onPress","onChanged","inputType","rest","ref","controlledValue","setControlledValue","React","useState","onInnerChange","text","Number","useEffect","theme","inputFocused","setInputFocused","highlighted","inputTypes","picker","color","backgroundColor","formattedValue","length","styles","root","input","borderRadius","roundness","dark","StyleSheet","absoluteFill","buttonOverlay","colors","primary","fade","hex","create","position","height","width","fontSize","textAlign","textAlignVertical","overflow","forwardRef"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { View, TextInput, TextInputProps, StyleSheet } from 'react-native'\nimport { useTheme, TouchableRipple } from 'react-native-paper'\n\nimport Color from 'color'\nimport {\n inputTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n useInputColors,\n} from './timeUtils'\n\ninterface TimeInputProps\n extends Omit<Omit<TextInputProps, 'value'>, 'onFocus'> {\n value: number\n clockType: PossibleClockTypes\n onPress?: (type: PossibleClockTypes) => any\n pressed: boolean\n onChanged: (n: number) => any\n inputType: PossibleInputTypes\n}\n\nfunction TimeInput(\n {\n value,\n clockType,\n pressed,\n onPress,\n onChanged,\n inputType,\n ...rest\n }: TimeInputProps,\n ref: any\n) {\n const [controlledValue, setControlledValue] = React.useState<string>(\n `${value}`\n )\n\n const onInnerChange = (text: string) => {\n setControlledValue(text)\n if (text !== '' && text !== '0') {\n onChanged(Number(text))\n }\n }\n\n React.useEffect(() => {\n setControlledValue(`${value}`)\n }, [value])\n\n const theme = useTheme()\n const [inputFocused, setInputFocused] = React.useState<boolean>(false)\n\n const highlighted = inputType === inputTypes.picker ? pressed : inputFocused\n\n const { color, backgroundColor } = useInputColors(highlighted)\n\n let formattedValue = controlledValue\n if (!inputFocused) {\n formattedValue =\n controlledValue.length === 1\n ? `0${controlledValue}`\n : `${controlledValue}`\n }\n\n return (\n <View style={styles.root}>\n <TextInput\n ref={ref}\n style={[\n styles.input,\n {\n color,\n backgroundColor,\n borderRadius: theme.roundness,\n },\n ]}\n value={formattedValue}\n maxLength={2}\n onFocus={() => setInputFocused(true)}\n onBlur={() => setInputFocused(false)}\n keyboardAppearance={theme.dark ? 'dark' : 'default'}\n keyboardType=\"number-pad\"\n onChangeText={onInnerChange}\n {...rest}\n />\n {onPress && inputType === inputTypes.picker ? (\n <TouchableRipple\n style={[\n StyleSheet.absoluteFill,\n styles.buttonOverlay,\n {\n // backgroundColor: 'blue',\n borderRadius: theme.roundness,\n },\n ]}\n rippleColor={Color(theme.colors.primary).fade(0.7).hex()}\n onPress={() => onPress(clockType)}\n borderless={true}\n >\n <View />\n </TouchableRipple>\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { position: 'relative', height: 80, width: 96 },\n input: {\n fontSize: 50,\n textAlign: 'center',\n textAlignVertical: 'center',\n width: 96,\n height: 80,\n },\n buttonOverlay: { overflow: 'hidden' },\n})\n\nexport default React.forwardRef(TimeInput)\n"]}
1
+ {"version":3,"sources":["TimeInput.tsx"],"names":["TimeInput","ref","value","clockType","pressed","onPress","onChanged","inputType","rest","controlledValue","setControlledValue","React","useState","onInnerChange","text","Number","useEffect","theme","inputFocused","setInputFocused","highlighted","inputTypes","picker","color","backgroundColor","formattedValue","length","styles","root","input","borderRadius","roundness","dark","StyleSheet","absoluteFill","buttonOverlay","colors","primary","fade","hex","undefined","create","position","height","width","fontSize","textAlign","textAlignVertical","overflow","forwardRef"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;;;AAiBA,SAASA,SAAT,OAUEC,GAVF,EAWE;AAAA,MAVA;AACEC,IAAAA,KADF;AAEEC,IAAAA,SAFF;AAGEC,IAAAA,OAHF;AAIEC,IAAAA,OAJF;AAKEC,IAAAA,SALF;AAMEC,IAAAA,SANF;AAOE,OAAGC;AAPL,GAUA;AACA,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwCC,KAAK,CAACC,QAAN,CAC3C,GAAEV,KAAM,EADmC,CAA9C;;AAIA,QAAMW,aAAa,GAAIC,IAAD,IAAkB;AACtCJ,IAAAA,kBAAkB,CAACI,IAAD,CAAlB;;AACA,QAAIA,IAAI,KAAK,EAAT,IAAeA,IAAI,KAAK,GAA5B,EAAiC;AAC/BR,MAAAA,SAAS,CAACS,MAAM,CAACD,IAAD,CAAP,CAAT;AACD;AACF,GALD;;AAOAH,EAAAA,KAAK,CAACK,SAAN,CAAgB,MAAM;AACpBN,IAAAA,kBAAkB,CAAE,GAAER,KAAM,EAAV,CAAlB;AACD,GAFD,EAEG,CAACA,KAAD,CAFH;AAIA,QAAMe,KAAK,GAAG,iCAAd;AACA,QAAM,CAACC,YAAD,EAAeC,eAAf,IAAkCR,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAAxC;AAEA,QAAMQ,WAAW,GAAGb,SAAS,KAAKc,sBAAWC,MAAzB,GAAkClB,OAAlC,GAA4Cc,YAAhE;AAEA,QAAM;AAAEK,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAA6B,+BAAeJ,WAAf,CAAnC;AAEA,MAAIK,cAAc,GAAGhB,eAArB;;AACA,MAAI,CAACS,YAAL,EAAmB;AACjBO,IAAAA,cAAc,GACZhB,eAAe,CAACiB,MAAhB,KAA2B,CAA3B,GACK,IAAGjB,eAAgB,EADxB,GAEK,GAAEA,eAAgB,EAHzB;AAID;;AAED,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEkB,MAAM,CAACC;AAApB,kBACE,oBAAC,sBAAD;AACE,IAAA,GAAG,EAAE3B,GADP;AAEE,IAAA,KAAK,EAAE,CACL0B,MAAM,CAACE,KADF,EAEL;AACEN,MAAAA,KADF;AAEEC,MAAAA,eAFF;AAGEM,MAAAA,YAAY,EAAEb,KAAK,CAACc;AAHtB,KAFK,CAFT;AAUE,IAAA,KAAK,EAAEN,cAVT;AAWE,IAAA,SAAS,EAAE,CAXb;AAYE,IAAA,OAAO,EAAE,MAAMN,eAAe,CAAC,IAAD,CAZhC;AAaE,IAAA,MAAM,EAAE,MAAMA,eAAe,CAAC,KAAD,CAb/B;AAcE,IAAA,kBAAkB,EAAEF,KAAK,CAACe,IAAN,GAAa,MAAb,GAAsB,SAd5C;AAeE,IAAA,YAAY,EAAC,YAff;AAgBE,IAAA,YAAY,EAAEnB;AAhBhB,KAiBML,IAjBN,EADF,EAoBGH,OAAO,IAAIE,SAAS,KAAKc,sBAAWC,MAApC,gBACC,oBAAC,iCAAD;AACE,IAAA,KAAK,EAAE,CACLW,wBAAWC,YADN,EAELP,MAAM,CAACQ,aAFF,EAGL;AACE;AACAL,MAAAA,YAAY,EAAEb,KAAK,CAACc;AAFtB,KAHK,CADT;AASE,IAAA,WAAW,EAAE,oBAAMd,KAAK,CAACmB,MAAN,CAAaC,OAAnB,EAA4BC,IAA5B,CAAiC,GAAjC,EAAsCC,GAAtC,EATf;AAUE,IAAA,OAAO,EAAE,MAAMlC,OAAO,CAACF,SAAD,CAVxB;AAWE,IAAA,UAAU,EAAE,IAXd,CAYE;AAZF;AAaE,IAAA,mBAAmB,EAAEqC,SAbvB;AAcE,IAAA,oBAAoB,EAAEA;AAdxB,kBAgBE,oBAAC,iBAAD,OAhBF,CADD,GAmBG,IAvCN,CADF;AA2CD;;AAED,MAAMb,MAAM,GAAGM,wBAAWQ,MAAX,CAAkB;AAC/Bb,EAAAA,IAAI,EAAE;AAAEc,IAAAA,QAAQ,EAAE,UAAZ;AAAwBC,IAAAA,MAAM,EAAE,EAAhC;AAAoCC,IAAAA,KAAK,EAAE;AAA3C,GADyB;AAE/Bf,EAAAA,KAAK,EAAE;AACLgB,IAAAA,QAAQ,EAAE,EADL;AAELC,IAAAA,SAAS,EAAE,QAFN;AAGLC,IAAAA,iBAAiB,EAAE,QAHd;AAILH,IAAAA,KAAK,EAAE,EAJF;AAKLD,IAAAA,MAAM,EAAE;AALH,GAFwB;AAS/BR,EAAAA,aAAa,EAAE;AAAEa,IAAAA,QAAQ,EAAE;AAAZ;AATgB,CAAlB,CAAf;;4BAYerC,KAAK,CAACsC,UAAN,CAAiBjD,SAAjB,C","sourcesContent":["import * as React from 'react'\nimport { View, TextInput, TextInputProps, StyleSheet } from 'react-native'\nimport { useTheme, TouchableRipple } from 'react-native-paper'\n\nimport Color from 'color'\nimport {\n inputTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n useInputColors,\n} from './timeUtils'\n\ninterface TimeInputProps\n extends Omit<Omit<TextInputProps, 'value'>, 'onFocus'> {\n value: number\n clockType: PossibleClockTypes\n onPress?: (type: PossibleClockTypes) => any\n pressed: boolean\n onChanged: (n: number) => any\n inputType: PossibleInputTypes\n}\n\nfunction TimeInput(\n {\n value,\n clockType,\n pressed,\n onPress,\n onChanged,\n inputType,\n ...rest\n }: TimeInputProps,\n ref: any\n) {\n const [controlledValue, setControlledValue] = React.useState<string>(\n `${value}`\n )\n\n const onInnerChange = (text: string) => {\n setControlledValue(text)\n if (text !== '' && text !== '0') {\n onChanged(Number(text))\n }\n }\n\n React.useEffect(() => {\n setControlledValue(`${value}`)\n }, [value])\n\n const theme = useTheme()\n const [inputFocused, setInputFocused] = React.useState<boolean>(false)\n\n const highlighted = inputType === inputTypes.picker ? pressed : inputFocused\n\n const { color, backgroundColor } = useInputColors(highlighted)\n\n let formattedValue = controlledValue\n if (!inputFocused) {\n formattedValue =\n controlledValue.length === 1\n ? `0${controlledValue}`\n : `${controlledValue}`\n }\n\n return (\n <View style={styles.root}>\n <TextInput\n ref={ref}\n style={[\n styles.input,\n {\n color,\n backgroundColor,\n borderRadius: theme.roundness,\n },\n ]}\n value={formattedValue}\n maxLength={2}\n onFocus={() => setInputFocused(true)}\n onBlur={() => setInputFocused(false)}\n keyboardAppearance={theme.dark ? 'dark' : 'default'}\n keyboardType=\"number-pad\"\n onChangeText={onInnerChange}\n {...rest}\n />\n {onPress && inputType === inputTypes.picker ? (\n <TouchableRipple\n style={[\n StyleSheet.absoluteFill,\n styles.buttonOverlay,\n {\n // backgroundColor: 'blue',\n borderRadius: theme.roundness,\n },\n ]}\n rippleColor={Color(theme.colors.primary).fade(0.7).hex()}\n onPress={() => onPress(clockType)}\n borderless={true}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n >\n <View />\n </TouchableRipple>\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { position: 'relative', height: 80, width: 96 },\n input: {\n fontSize: 50,\n textAlign: 'center',\n textAlignVertical: 'center',\n width: 96,\n height: 80,\n },\n buttonOverlay: { overflow: 'hidden' },\n})\n\nexport default React.forwardRef(TimeInput)\n"]}
@@ -21,21 +21,22 @@ var _utils = require("../utils");
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
25
 
26
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
27
 
28
28
  // @typescript-eslint/no-unused-vars
29
29
  // WORK IN PROGRESS
30
- function TimeInputs({
31
- hours,
32
- minutes,
33
- onFocusInput,
34
- focused,
35
- inputType,
36
- onChange,
37
- is24Hour
38
- }) {
30
+ function TimeInputs(_ref) {
31
+ let {
32
+ hours,
33
+ minutes,
34
+ onFocusInput,
35
+ focused,
36
+ inputType,
37
+ onChange,
38
+ is24Hour
39
+ } = _ref;
39
40
  const startInput = React.useRef(null);
40
41
  const endInput = React.useRef(null);
41
42
  const dimensions = (0, _reactNative.useWindowDimensions)();
@@ -1 +1 @@
1
- {"version":3,"sources":["TimeInputs.tsx"],"names":["TimeInputs","hours","minutes","onFocusInput","focused","inputType","onChange","is24Hour","startInput","React","useRef","endInput","dimensions","isLandscape","width","height","theme","onSubmitStartInput","useCallback","current","focus","onSubmitEndInput","minutesRef","onChangeHours","newHours","clockTypes","styles","inputContainer","inputContainerLandscape","newHoursFromInput","hoursAndMinutesSeparator","spaceDot","dot","backgroundColor","colors","text","betweenDot","newMinutesFromInput","newMinutes","spaceBetweenInputsAndSwitcher","StyleSheet","create","flexDirection","alignItems","flex","fontSize","borderRadius","memo"],"mappings":"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","sourcesContent":["// @typescript-eslint/no-unused-vars\n// WORK IN PROGRESS\n\nimport * as React from 'react'\nimport {\n View,\n StyleSheet,\n useWindowDimensions,\n TextInput as TextInputNative,\n} from 'react-native'\nimport { useTheme } from 'react-native-paper'\n\nimport {\n clockTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n toHourInputFormat,\n toHourOutputFormat,\n} from './timeUtils'\nimport TimeInput from './TimeInput'\nimport AmPmSwitcher from './AmPmSwitcher'\nimport { useLatest } from '../utils'\n\nfunction TimeInputs({\n hours,\n minutes,\n onFocusInput,\n focused,\n inputType,\n onChange,\n is24Hour,\n}: {\n inputType: PossibleInputTypes\n focused: PossibleClockTypes\n hours: number\n minutes: number\n onFocusInput: (type: PossibleClockTypes) => any\n onChange: ({\n hours,\n minutes,\n focused,\n }: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n }) => any\n is24Hour: boolean\n}) {\n const startInput = React.useRef<TextInputNative | null>(null)\n const endInput = React.useRef<TextInputNative | null>(null)\n const dimensions = useWindowDimensions()\n const isLandscape = dimensions.width > dimensions.height\n const theme = useTheme()\n\n const onSubmitStartInput = React.useCallback(() => {\n if (endInput.current) {\n endInput.current.focus()\n }\n }, [endInput])\n\n const onSubmitEndInput = React.useCallback(() => {\n // TODO: close modal and persist time\n }, [])\n\n const minutesRef = useLatest(minutes)\n const onChangeHours = React.useCallback(\n (newHours: number) => {\n onChange({\n hours: newHours,\n minutes: minutesRef.current,\n focused: clockTypes.hours,\n })\n },\n [onChange, minutesRef]\n )\n\n return (\n <View\n style={[\n styles.inputContainer,\n isLandscape && styles.inputContainerLandscape,\n ]}\n >\n <TimeInput\n ref={startInput}\n placeholder={'00'}\n value={toHourInputFormat(hours, is24Hour)}\n clockType={clockTypes.hours}\n pressed={focused === clockTypes.hours}\n onPress={onFocusInput}\n inputType={inputType}\n returnKeyType={'next'}\n onSubmitEditing={onSubmitStartInput}\n blurOnSubmit={false}\n onChanged={(newHoursFromInput) => {\n let newHours = toHourOutputFormat(newHoursFromInput, hours, is24Hour)\n if (newHoursFromInput > 24) {\n newHours = 24\n }\n onChange({\n hours: newHours,\n minutes,\n })\n }}\n // onChangeText={onChangeStartInput}\n />\n <View style={styles.hoursAndMinutesSeparator}>\n <View style={styles.spaceDot} />\n <View style={[styles.dot, { backgroundColor: theme.colors.text }]} />\n <View style={styles.betweenDot} />\n <View style={[styles.dot, { backgroundColor: theme.colors.text }]} />\n <View style={styles.spaceDot} />\n </View>\n <TimeInput\n ref={endInput}\n placeholder={'00'}\n value={minutes}\n clockType={clockTypes.minutes}\n pressed={focused === clockTypes.minutes}\n onPress={onFocusInput}\n inputType={inputType}\n onSubmitEditing={onSubmitEndInput}\n onChanged={(newMinutesFromInput) => {\n let newMinutes = newMinutesFromInput\n if (newMinutesFromInput > 60) {\n newMinutes = 60\n }\n onChange({\n hours,\n minutes: newMinutes,\n })\n }}\n />\n {!is24Hour && (\n <>\n <View style={styles.spaceBetweenInputsAndSwitcher} />\n <AmPmSwitcher hours={hours} onChange={onChangeHours} />\n </>\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n spaceBetweenInputsAndSwitcher: { width: 12 },\n inputContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainerLandscape: {\n flex: 1,\n },\n hoursAndMinutesSeparator: {\n fontSize: 65,\n width: 24,\n alignItems: 'center',\n },\n spaceDot: {\n flex: 1,\n },\n dot: {\n width: 7,\n height: 7,\n borderRadius: 7 / 2,\n },\n betweenDot: {\n height: 12,\n },\n})\n\nexport default React.memo(TimeInputs)\n"]}
1
+ {"version":3,"sources":["TimeInputs.tsx"],"names":["TimeInputs","hours","minutes","onFocusInput","focused","inputType","onChange","is24Hour","startInput","React","useRef","endInput","dimensions","isLandscape","width","height","theme","onSubmitStartInput","useCallback","current","focus","onSubmitEndInput","minutesRef","onChangeHours","newHours","clockTypes","styles","inputContainer","inputContainerLandscape","newHoursFromInput","hoursAndMinutesSeparator","spaceDot","dot","backgroundColor","colors","text","betweenDot","newMinutesFromInput","newMinutes","spaceBetweenInputsAndSwitcher","StyleSheet","create","flexDirection","alignItems","flex","fontSize","borderRadius","memo"],"mappings":"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","sourcesContent":["// @typescript-eslint/no-unused-vars\n// WORK IN PROGRESS\n\nimport * as React from 'react'\nimport {\n View,\n StyleSheet,\n useWindowDimensions,\n TextInput as TextInputNative,\n} from 'react-native'\nimport { useTheme } from 'react-native-paper'\n\nimport {\n clockTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n toHourInputFormat,\n toHourOutputFormat,\n} from './timeUtils'\nimport TimeInput from './TimeInput'\nimport AmPmSwitcher from './AmPmSwitcher'\nimport { useLatest } from '../utils'\n\nfunction TimeInputs({\n hours,\n minutes,\n onFocusInput,\n focused,\n inputType,\n onChange,\n is24Hour,\n}: {\n inputType: PossibleInputTypes\n focused: PossibleClockTypes\n hours: number\n minutes: number\n onFocusInput: (type: PossibleClockTypes) => any\n onChange: (hoursMinutesAndFocused: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n }) => any\n is24Hour: boolean\n}) {\n const startInput = React.useRef<TextInputNative | null>(null)\n const endInput = React.useRef<TextInputNative | null>(null)\n const dimensions = useWindowDimensions()\n const isLandscape = dimensions.width > dimensions.height\n const theme = useTheme()\n\n const onSubmitStartInput = React.useCallback(() => {\n if (endInput.current) {\n endInput.current.focus()\n }\n }, [endInput])\n\n const onSubmitEndInput = React.useCallback(() => {\n // TODO: close modal and persist time\n }, [])\n\n const minutesRef = useLatest(minutes)\n const onChangeHours = React.useCallback(\n (newHours: number) => {\n onChange({\n hours: newHours,\n minutes: minutesRef.current,\n focused: clockTypes.hours,\n })\n },\n [onChange, minutesRef]\n )\n\n return (\n <View\n style={[\n styles.inputContainer,\n isLandscape && styles.inputContainerLandscape,\n ]}\n >\n <TimeInput\n ref={startInput}\n placeholder={'00'}\n value={toHourInputFormat(hours, is24Hour)}\n clockType={clockTypes.hours}\n pressed={focused === clockTypes.hours}\n onPress={onFocusInput}\n inputType={inputType}\n returnKeyType={'next'}\n onSubmitEditing={onSubmitStartInput}\n blurOnSubmit={false}\n onChanged={(newHoursFromInput) => {\n let newHours = toHourOutputFormat(newHoursFromInput, hours, is24Hour)\n if (newHoursFromInput > 24) {\n newHours = 24\n }\n onChange({\n hours: newHours,\n minutes,\n })\n }}\n // onChangeText={onChangeStartInput}\n />\n <View style={styles.hoursAndMinutesSeparator}>\n <View style={styles.spaceDot} />\n <View style={[styles.dot, { backgroundColor: theme.colors.text }]} />\n <View style={styles.betweenDot} />\n <View style={[styles.dot, { backgroundColor: theme.colors.text }]} />\n <View style={styles.spaceDot} />\n </View>\n <TimeInput\n ref={endInput}\n placeholder={'00'}\n value={minutes}\n clockType={clockTypes.minutes}\n pressed={focused === clockTypes.minutes}\n onPress={onFocusInput}\n inputType={inputType}\n onSubmitEditing={onSubmitEndInput}\n onChanged={(newMinutesFromInput) => {\n let newMinutes = newMinutesFromInput\n if (newMinutesFromInput > 60) {\n newMinutes = 60\n }\n onChange({\n hours,\n minutes: newMinutes,\n })\n }}\n />\n {!is24Hour && (\n <>\n <View style={styles.spaceBetweenInputsAndSwitcher} />\n <AmPmSwitcher hours={hours} onChange={onChangeHours} />\n </>\n )}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n spaceBetweenInputsAndSwitcher: { width: 12 },\n inputContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainerLandscape: {\n flex: 1,\n },\n hoursAndMinutesSeparator: {\n fontSize: 65,\n width: 24,\n alignItems: 'center',\n },\n spaceDot: {\n flex: 1,\n },\n dot: {\n width: 7,\n height: 7,\n borderRadius: 7 / 2,\n },\n betweenDot: {\n height: 12,\n },\n})\n\nexport default React.memo(TimeInputs)\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.DisplayModeContext = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
@@ -11,25 +11,33 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _timeUtils = require("./timeUtils");
13
13
 
14
- var _AnalogClock = _interopRequireWildcard(require("./AnalogClock"));
14
+ var _AnalogClock = _interopRequireDefault(require("./AnalogClock"));
15
15
 
16
16
  var _TimeInputs = _interopRequireDefault(require("./TimeInputs"));
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
 
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
- function TimePicker({
25
- hours,
26
- minutes,
27
- onFocusInput,
28
- focused,
29
- inputType,
30
- onChange,
31
- locale
32
- }) {
24
+ const DisplayModeContext = /*#__PURE__*/React.createContext({
25
+ mode: 'AM',
26
+ setMode: () => {}
27
+ });
28
+ exports.DisplayModeContext = DisplayModeContext;
29
+
30
+ function TimePicker(_ref) {
31
+ let {
32
+ hours,
33
+ minutes,
34
+ onFocusInput,
35
+ focused,
36
+ inputType,
37
+ onChange,
38
+ locale
39
+ } = _ref;
40
+ const [displayMode, setDisplayMode] = React.useState(undefined);
33
41
  const dimensions = (0, _reactNative.useWindowDimensions)();
34
42
  const isLandscape = dimensions.width > dimensions.height; // method to check whether we have 24 hours in clock or 12
35
43
 
@@ -41,12 +49,26 @@ function TimePicker({
41
49
  });
42
50
  const formatted = formatter.format(new Date(Date.UTC(2020, 1, 1, 23)));
43
51
  return formatted.includes('23');
44
- }, [locale]);
52
+ }, [locale]); // Initialize display Mode according the hours value
53
+
54
+ React.useEffect(() => {
55
+ if (hours >= 12) {
56
+ setDisplayMode('PM');
57
+ } else {
58
+ setDisplayMode('AM');
59
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
60
+
61
+ }, []);
45
62
  const onInnerChange = React.useCallback(params => {
46
63
  params.hours = (0, _timeUtils.toHourOutputFormat)(params.hours, hours, is24Hour);
47
64
  onChange(params);
48
65
  }, [onChange, hours, is24Hour]);
49
- return /*#__PURE__*/React.createElement(_reactNative.View, {
66
+ return /*#__PURE__*/React.createElement(DisplayModeContext.Provider, {
67
+ value: {
68
+ mode: displayMode,
69
+ setMode: setDisplayMode
70
+ }
71
+ }, /*#__PURE__*/React.createElement(_reactNative.View, {
50
72
  style: isLandscape ? styles.rootLandscape : styles.rootPortrait
51
73
  }, /*#__PURE__*/React.createElement(_TimeInputs.default, {
52
74
  inputType: inputType,
@@ -64,7 +86,7 @@ function TimePicker({
64
86
  focused: focused,
65
87
  is24Hour: is24Hour,
66
88
  onChange: onInnerChange
67
- })) : null);
89
+ })) : null));
68
90
  }
69
91
 
70
92
  const styles = _reactNative.StyleSheet.create({
@@ -72,7 +94,7 @@ const styles = _reactNative.StyleSheet.create({
72
94
  flexDirection: 'row',
73
95
  alignItems: 'center',
74
96
  justifyContent: 'center',
75
- width: 24 * 3 + 96 * 2 + 52 + _AnalogClock.circleSize
97
+ width: 24 * 3 + 96 * 2 + 52 + _timeUtils.circleSize
76
98
  },
77
99
  rootPortrait: {},
78
100
  clockContainer: {
@@ -1 +1 @@
1
- {"version":3,"sources":["TimePicker.tsx"],"names":["TimePicker","hours","minutes","onFocusInput","focused","inputType","onChange","locale","dimensions","isLandscape","width","height","is24Hour","React","useMemo","formatter","Intl","DateTimeFormat","hour","minute","timeZone","formatted","format","Date","UTC","includes","onInnerChange","useCallback","params","styles","rootLandscape","rootPortrait","inputTypes","picker","clockContainer","StyleSheet","create","flexDirection","alignItems","justifyContent","circleSize","paddingTop","paddingLeft","paddingRight","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet, useWindowDimensions } from 'react-native'\n\nimport {\n inputTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n toHourInputFormat,\n toHourOutputFormat,\n} from './timeUtils'\n\nimport AnalogClock, { circleSize } from './AnalogClock'\nimport TimeInputs from './TimeInputs'\n\ntype onChangeFunc = ({\n hours,\n minutes,\n focused,\n}: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n}) => any\n\nfunction TimePicker({\n hours,\n minutes,\n onFocusInput,\n focused,\n inputType,\n onChange,\n locale,\n}: {\n locale?: undefined | string\n inputType: PossibleInputTypes\n focused: PossibleClockTypes\n hours: number\n minutes: number\n onFocusInput: (type: PossibleClockTypes) => any\n onChange: onChangeFunc\n}) {\n const dimensions = useWindowDimensions()\n const isLandscape = dimensions.width > dimensions.height\n\n // method to check whether we have 24 hours in clock or 12\n const is24Hour = React.useMemo(() => {\n const formatter = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: 'UTC',\n })\n const formatted = formatter.format(new Date(Date.UTC(2020, 1, 1, 23)))\n return formatted.includes('23')\n }, [locale])\n\n const onInnerChange = React.useCallback<onChangeFunc>(\n (params) => {\n params.hours = toHourOutputFormat(params.hours, hours, is24Hour)\n onChange(params)\n },\n [onChange, hours, is24Hour]\n )\n\n return (\n <View style={isLandscape ? styles.rootLandscape : styles.rootPortrait}>\n <TimeInputs\n inputType={inputType}\n hours={hours}\n minutes={minutes}\n is24Hour={is24Hour}\n onChange={onChange}\n onFocusInput={onFocusInput}\n focused={focused}\n />\n {inputType === inputTypes.picker ? (\n <View style={styles.clockContainer}>\n <AnalogClock\n hours={toHourInputFormat(hours, is24Hour)}\n minutes={minutes}\n focused={focused}\n is24Hour={is24Hour}\n onChange={onInnerChange}\n />\n </View>\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n rootLandscape: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n width: 24 * 3 + 96 * 2 + 52 + circleSize,\n },\n rootPortrait: {},\n clockContainer: { paddingTop: 36, paddingLeft: 12, paddingRight: 12 },\n})\n\nexport default React.memo(TimePicker)\n"]}
1
+ {"version":3,"sources":["TimePicker.tsx"],"names":["DisplayModeContext","React","createContext","mode","setMode","TimePicker","hours","minutes","onFocusInput","focused","inputType","onChange","locale","displayMode","setDisplayMode","useState","undefined","dimensions","isLandscape","width","height","is24Hour","useMemo","formatter","Intl","DateTimeFormat","hour","minute","timeZone","formatted","format","Date","UTC","includes","useEffect","onInnerChange","useCallback","params","styles","rootLandscape","rootPortrait","inputTypes","picker","clockContainer","StyleSheet","create","flexDirection","alignItems","justifyContent","circleSize","paddingTop","paddingLeft","paddingRight","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet, useWindowDimensions } from 'react-native'\n\nimport {\n inputTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n toHourInputFormat,\n toHourOutputFormat,\n} from './timeUtils'\n\nimport AnalogClock from './AnalogClock'\nimport { circleSize } from './timeUtils'\nimport TimeInputs from './TimeInputs'\n\nexport const DisplayModeContext = React.createContext<{\n mode: 'AM' | 'PM' | undefined\n setMode: React.Dispatch<React.SetStateAction<'AM' | 'PM' | undefined>>\n}>({ mode: 'AM', setMode: () => {} })\n\ntype onChangeFunc = ({\n hours,\n minutes,\n focused,\n}: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n}) => any\n\nfunction TimePicker({\n hours,\n minutes,\n onFocusInput,\n focused,\n inputType,\n onChange,\n locale,\n}: {\n locale?: undefined | string\n inputType: PossibleInputTypes\n focused: PossibleClockTypes\n hours: number\n minutes: number\n onFocusInput: (type: PossibleClockTypes) => any\n onChange: onChangeFunc\n}) {\n const [displayMode, setDisplayMode] = React.useState<'AM' | 'PM' | undefined>(\n undefined\n )\n const dimensions = useWindowDimensions()\n const isLandscape = dimensions.width > dimensions.height\n\n // method to check whether we have 24 hours in clock or 12\n const is24Hour = React.useMemo(() => {\n const formatter = new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: 'UTC',\n })\n const formatted = formatter.format(new Date(Date.UTC(2020, 1, 1, 23)))\n return formatted.includes('23')\n }, [locale])\n\n // Initialize display Mode according the hours value\n React.useEffect(() => {\n if (hours >= 12) {\n setDisplayMode('PM')\n } else {\n setDisplayMode('AM')\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const onInnerChange = React.useCallback<onChangeFunc>(\n (params) => {\n params.hours = toHourOutputFormat(params.hours, hours, is24Hour)\n onChange(params)\n },\n [onChange, hours, is24Hour]\n )\n\n return (\n <DisplayModeContext.Provider\n value={{ mode: displayMode, setMode: setDisplayMode }}\n >\n <View style={isLandscape ? styles.rootLandscape : styles.rootPortrait}>\n <TimeInputs\n inputType={inputType}\n hours={hours}\n minutes={minutes}\n is24Hour={is24Hour}\n onChange={onChange}\n onFocusInput={onFocusInput}\n focused={focused}\n />\n {inputType === inputTypes.picker ? (\n <View style={styles.clockContainer}>\n <AnalogClock\n hours={toHourInputFormat(hours, is24Hour)}\n minutes={minutes}\n focused={focused}\n is24Hour={is24Hour}\n onChange={onInnerChange}\n />\n </View>\n ) : null}\n </View>\n </DisplayModeContext.Provider>\n )\n}\n\nconst styles = StyleSheet.create({\n rootLandscape: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n width: 24 * 3 + 96 * 2 + 52 + circleSize,\n },\n rootPortrait: {},\n clockContainer: { paddingTop: 36, paddingLeft: 12, paddingRight: 12 },\n})\n\nexport default React.memo(TimePicker)\n"]}
@@ -18,24 +18,25 @@ var _timeUtils = require("./timeUtils");
18
18
 
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
 
21
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
22
 
23
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
24
 
25
25
  const supportedOrientations = ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'];
26
26
 
27
- function TimePickerModal({
28
- visible,
29
- onDismiss,
30
- onConfirm,
31
- hours,
32
- minutes,
33
- label = 'Select time',
34
- cancelLabel = 'Cancel',
35
- confirmLabel = 'Ok',
36
- animationType = 'none',
37
- locale
38
- }) {
27
+ function TimePickerModal(_ref) {
28
+ let {
29
+ visible,
30
+ onDismiss,
31
+ onConfirm,
32
+ hours,
33
+ minutes,
34
+ label = 'Select time',
35
+ cancelLabel = 'Cancel',
36
+ confirmLabel = 'Ok',
37
+ animationType = 'none',
38
+ locale
39
+ } = _ref;
39
40
  const theme = (0, _reactNativePaper.useTheme)();
40
41
  const [inputType, setInputType] = React.useState(_timeUtils.inputTypes.picker);
41
42
  const [focused, setFocused] = React.useState(_timeUtils.clockTypes.hours);
@@ -105,7 +106,10 @@ function TimePickerModal({
105
106
  onPress: () => setInputType(_timeUtils.reverseInputTypes[inputType]),
106
107
  size: 24,
107
108
  style: styles.inputTypeToggle,
108
- accessibilityLabel: "toggle keyboard"
109
+ accessibilityLabel: "toggle keyboard" // RN types bug
110
+ ,
111
+ hasTVPreferredFocus: undefined,
112
+ tvParallaxProperties: undefined
109
113
  }), /*#__PURE__*/React.createElement(_reactNative.View, {
110
114
  style: styles.fill
111
115
  }), /*#__PURE__*/React.createElement(_reactNativePaper.Button, {
@@ -1 +1 @@
1
- {"version":3,"sources":["TimePickerModal.tsx"],"names":["supportedOrientations","TimePickerModal","visible","onDismiss","onConfirm","hours","minutes","label","cancelLabel","confirmLabel","animationType","locale","theme","inputType","setInputType","React","useState","inputTypes","picker","focused","setFocused","clockTypes","localHours","setLocalHours","getHours","localMinutes","setLocalMinutes","getMinutes","useEffect","onFocusInput","useCallback","type","onChange","params","StyleSheet","absoluteFill","styles","modalBackground","backgroundColor","colors","backdrop","modalRoot","keyboardView","modalContent","dark","surface","borderRadius","roundness","labelContainer","color","text","toUpperCase","timePickerContainer","bottom","inputTypeIcons","reverseInputTypes","inputTypeToggle","fill","undefined","Date","create","justifyContent","alignItems","flex","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","minWidth","paddingLeft","paddingRight","letterSpacing","fontSize","padding","flexDirection","margin","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n Modal,\n StyleSheet,\n View,\n Text,\n Animated,\n TouchableWithoutFeedback,\n KeyboardAvoidingView,\n} from 'react-native'\n\nimport { Button, IconButton, overlay, useTheme } from 'react-native-paper'\nimport TimePicker from './TimePicker'\nimport {\n clockTypes,\n inputTypeIcons,\n inputTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n reverseInputTypes,\n} from './timeUtils'\n\nconst supportedOrientations: any[] = [\n 'portrait',\n 'portrait-upside-down',\n 'landscape',\n 'landscape-left',\n 'landscape-right',\n]\n\nexport function TimePickerModal({\n visible,\n onDismiss,\n onConfirm,\n hours,\n minutes,\n label = 'Select time',\n cancelLabel = 'Cancel',\n confirmLabel = 'Ok',\n animationType = 'none',\n locale,\n}: {\n locale?: undefined | string\n label?: string\n cancelLabel?: string\n confirmLabel?: string\n hours?: number | undefined\n minutes?: number | undefined\n visible: boolean | undefined\n onDismiss: () => any\n onConfirm: ({ hours, minutes }: { hours: number; minutes: number }) => any\n animationType?: 'slide' | 'fade' | 'none'\n}) {\n const theme = useTheme()\n\n const [inputType, setInputType] = React.useState<PossibleInputTypes>(\n inputTypes.picker\n )\n const [focused, setFocused] = React.useState<PossibleClockTypes>(\n clockTypes.hours\n )\n const [localHours, setLocalHours] = React.useState<number>(getHours(hours))\n const [localMinutes, setLocalMinutes] = React.useState<number>(\n getMinutes(minutes)\n )\n\n React.useEffect(() => {\n setLocalHours(getHours(hours))\n }, [setLocalHours, hours])\n\n React.useEffect(() => {\n setLocalMinutes(getMinutes(minutes))\n }, [setLocalMinutes, minutes])\n\n const onFocusInput = React.useCallback(\n (type: PossibleClockTypes) => setFocused(type),\n []\n )\n const onChange = React.useCallback(\n (params: {\n focused?: PossibleClockTypes | undefined\n hours: number\n minutes: number\n }) => {\n if (params.focused) {\n setFocused(params.focused)\n }\n\n setLocalHours(params.hours)\n setLocalMinutes(params.minutes)\n },\n [setFocused, setLocalHours, setLocalMinutes]\n )\n return (\n <Modal\n animationType={animationType}\n transparent={true}\n visible={visible}\n onRequestClose={onDismiss}\n presentationStyle=\"overFullScreen\"\n supportedOrientations={supportedOrientations}\n //@ts-ignore\n statusBarTranslucent={true}\n >\n <>\n <TouchableWithoutFeedback onPress={onDismiss}>\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.modalBackground,\n { backgroundColor: theme.colors.backdrop },\n ]}\n />\n </TouchableWithoutFeedback>\n\n <View\n style={[StyleSheet.absoluteFill, styles.modalRoot]}\n pointerEvents=\"box-none\"\n >\n <KeyboardAvoidingView\n style={styles.keyboardView}\n behavior={'padding'}\n >\n <Animated.View\n style={[\n styles.modalContent,\n {\n backgroundColor: theme.dark\n ? overlay(10, theme.colors.surface)\n : theme.colors.surface,\n borderRadius: theme.roundness,\n },\n ]}\n >\n <View style={styles.labelContainer}>\n <Text style={[styles.label, { color: theme.colors.text }]}>\n {label.toUpperCase()}\n </Text>\n </View>\n <View style={styles.timePickerContainer}>\n <TimePicker\n locale={locale}\n inputType={inputType}\n focused={focused}\n hours={localHours}\n minutes={localMinutes}\n onChange={onChange}\n onFocusInput={onFocusInput}\n />\n </View>\n <View style={styles.bottom}>\n <IconButton\n icon={inputTypeIcons[reverseInputTypes[inputType]]}\n onPress={() => setInputType(reverseInputTypes[inputType])}\n size={24}\n style={styles.inputTypeToggle}\n accessibilityLabel=\"toggle keyboard\"\n />\n <View style={styles.fill} />\n <Button onPress={onDismiss}>{cancelLabel}</Button>\n <Button\n onPress={() =>\n onConfirm({ hours: localHours, minutes: localMinutes })\n }\n >\n {confirmLabel}\n </Button>\n </View>\n </Animated.View>\n </KeyboardAvoidingView>\n </View>\n </>\n </Modal>\n )\n}\n\nfunction getMinutes(minutes: number | undefined | null): number {\n return minutes === undefined || minutes === null\n ? new Date().getMinutes()\n : minutes\n}\nfunction getHours(hours: number | undefined | null): number {\n return hours === undefined || hours === null ? new Date().getHours() : hours\n}\n\nconst styles = StyleSheet.create({\n modalRoot: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n },\n keyboardView: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n },\n modalBackground: {\n flex: 1,\n },\n modalContent: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 10,\n minWidth: 287,\n },\n labelContainer: {\n height: 28,\n justifyContent: 'flex-end',\n paddingLeft: 24,\n paddingRight: 24,\n },\n label: {\n letterSpacing: 1,\n fontSize: 13,\n },\n timePickerContainer: { padding: 24 },\n bottom: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n },\n inputTypeToggle: { margin: 4 },\n fill: { flex: 1 },\n})\n\nexport default React.memo(TimePickerModal)\n"]}
1
+ {"version":3,"sources":["TimePickerModal.tsx"],"names":["supportedOrientations","TimePickerModal","visible","onDismiss","onConfirm","hours","minutes","label","cancelLabel","confirmLabel","animationType","locale","theme","inputType","setInputType","React","useState","inputTypes","picker","focused","setFocused","clockTypes","localHours","setLocalHours","getHours","localMinutes","setLocalMinutes","getMinutes","useEffect","onFocusInput","useCallback","type","onChange","params","StyleSheet","absoluteFill","styles","modalBackground","backgroundColor","colors","backdrop","modalRoot","keyboardView","modalContent","dark","surface","borderRadius","roundness","labelContainer","color","text","toUpperCase","timePickerContainer","bottom","inputTypeIcons","reverseInputTypes","inputTypeToggle","undefined","fill","Date","create","justifyContent","alignItems","flex","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","minWidth","paddingLeft","paddingRight","letterSpacing","fontSize","padding","flexDirection","margin","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n Modal,\n StyleSheet,\n View,\n Text,\n Animated,\n TouchableWithoutFeedback,\n KeyboardAvoidingView,\n} from 'react-native'\n\nimport { Button, IconButton, overlay, useTheme } from 'react-native-paper'\nimport TimePicker from './TimePicker'\nimport {\n clockTypes,\n inputTypeIcons,\n inputTypes,\n PossibleClockTypes,\n PossibleInputTypes,\n reverseInputTypes,\n} from './timeUtils'\n\nconst supportedOrientations: any[] = [\n 'portrait',\n 'portrait-upside-down',\n 'landscape',\n 'landscape-left',\n 'landscape-right',\n]\n\nexport function TimePickerModal({\n visible,\n onDismiss,\n onConfirm,\n hours,\n minutes,\n label = 'Select time',\n cancelLabel = 'Cancel',\n confirmLabel = 'Ok',\n animationType = 'none',\n locale,\n}: {\n locale?: undefined | string\n label?: string\n cancelLabel?: string\n confirmLabel?: string\n hours?: number | undefined\n minutes?: number | undefined\n visible: boolean | undefined\n onDismiss: () => any\n onConfirm: (hoursAndMinutes: { hours: number; minutes: number }) => any\n animationType?: 'slide' | 'fade' | 'none'\n}) {\n const theme = useTheme()\n\n const [inputType, setInputType] = React.useState<PossibleInputTypes>(\n inputTypes.picker\n )\n const [focused, setFocused] = React.useState<PossibleClockTypes>(\n clockTypes.hours\n )\n const [localHours, setLocalHours] = React.useState<number>(getHours(hours))\n const [localMinutes, setLocalMinutes] = React.useState<number>(\n getMinutes(minutes)\n )\n\n React.useEffect(() => {\n setLocalHours(getHours(hours))\n }, [setLocalHours, hours])\n\n React.useEffect(() => {\n setLocalMinutes(getMinutes(minutes))\n }, [setLocalMinutes, minutes])\n\n const onFocusInput = React.useCallback(\n (type: PossibleClockTypes) => setFocused(type),\n []\n )\n const onChange = React.useCallback(\n (params: {\n focused?: PossibleClockTypes | undefined\n hours: number\n minutes: number\n }) => {\n if (params.focused) {\n setFocused(params.focused)\n }\n\n setLocalHours(params.hours)\n setLocalMinutes(params.minutes)\n },\n [setFocused, setLocalHours, setLocalMinutes]\n )\n return (\n <Modal\n animationType={animationType}\n transparent={true}\n visible={visible}\n onRequestClose={onDismiss}\n presentationStyle=\"overFullScreen\"\n supportedOrientations={supportedOrientations}\n //@ts-ignore\n statusBarTranslucent={true}\n >\n <>\n <TouchableWithoutFeedback onPress={onDismiss}>\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.modalBackground,\n { backgroundColor: theme.colors.backdrop },\n ]}\n />\n </TouchableWithoutFeedback>\n\n <View\n style={[StyleSheet.absoluteFill, styles.modalRoot]}\n pointerEvents=\"box-none\"\n >\n <KeyboardAvoidingView\n style={styles.keyboardView}\n behavior={'padding'}\n >\n <Animated.View\n style={[\n styles.modalContent,\n {\n backgroundColor: theme.dark\n ? overlay(10, theme.colors.surface)\n : theme.colors.surface,\n borderRadius: theme.roundness,\n },\n ]}\n >\n <View style={styles.labelContainer}>\n <Text style={[styles.label, { color: theme.colors.text }]}>\n {label.toUpperCase()}\n </Text>\n </View>\n <View style={styles.timePickerContainer}>\n <TimePicker\n locale={locale}\n inputType={inputType}\n focused={focused}\n hours={localHours}\n minutes={localMinutes}\n onChange={onChange}\n onFocusInput={onFocusInput}\n />\n </View>\n <View style={styles.bottom}>\n <IconButton\n icon={inputTypeIcons[reverseInputTypes[inputType]]}\n onPress={() => setInputType(reverseInputTypes[inputType])}\n size={24}\n style={styles.inputTypeToggle}\n accessibilityLabel=\"toggle keyboard\"\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n />\n <View style={styles.fill} />\n <Button onPress={onDismiss}>{cancelLabel}</Button>\n <Button\n onPress={() =>\n onConfirm({ hours: localHours, minutes: localMinutes })\n }\n >\n {confirmLabel}\n </Button>\n </View>\n </Animated.View>\n </KeyboardAvoidingView>\n </View>\n </>\n </Modal>\n )\n}\n\nfunction getMinutes(minutes: number | undefined | null): number {\n return minutes === undefined || minutes === null\n ? new Date().getMinutes()\n : minutes\n}\nfunction getHours(hours: number | undefined | null): number {\n return hours === undefined || hours === null ? new Date().getHours() : hours\n}\n\nconst styles = StyleSheet.create({\n modalRoot: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n },\n keyboardView: {\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1,\n },\n modalBackground: {\n flex: 1,\n },\n modalContent: {\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 10,\n minWidth: 287,\n },\n labelContainer: {\n height: 28,\n justifyContent: 'flex-end',\n paddingLeft: 24,\n paddingRight: 24,\n },\n label: {\n letterSpacing: 1,\n fontSize: 13,\n },\n timePickerContainer: { padding: 24 },\n bottom: {\n flexDirection: 'row',\n alignItems: 'center',\n padding: 8,\n },\n inputTypeToggle: { margin: 4 },\n fill: { flex: 1 },\n})\n\nexport default React.memo(TimePickerModal)\n"]}
@@ -3,17 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.clockTypes = exports.circleSize = void 0;
7
+ exports.getAngle = getAngle;
6
8
  exports.getHourType = getHourType;
7
- exports.snap = snap;
8
9
  exports.getHourTypeFromOffset = getHourTypeFromOffset;
9
- exports.getMinutes = getMinutes;
10
10
  exports.getHours = getHours;
11
- exports.getAngle = getAngle;
12
- exports.useSwitchColors = useSwitchColors;
13
- exports.useInputColors = useInputColors;
11
+ exports.getMinutes = getMinutes;
12
+ exports.reverseInputTypes = exports.inputTypes = exports.inputTypeIcons = exports.hourTypes = void 0;
13
+ exports.snap = snap;
14
14
  exports.toHourInputFormat = toHourInputFormat;
15
15
  exports.toHourOutputFormat = toHourOutputFormat;
16
- exports.clockTypes = exports.inputTypeIcons = exports.reverseInputTypes = exports.inputTypes = exports.hourTypes = void 0;
16
+ exports.useInputColors = useInputColors;
17
+ exports.useSwitchColors = useSwitchColors;
17
18
 
18
19
  var React = _interopRequireWildcard(require("react"));
19
20
 
@@ -23,10 +24,13 @@ var _reactNativePaper = require("react-native-paper");
23
24
 
24
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
26
 
26
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
27
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
28
 
28
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
30
 
31
+ // 250? when bigger?
32
+ const circleSize = 215;
33
+ exports.circleSize = circleSize;
30
34
  const hourTypes = {
31
35
  am: 'am',
32
36
  pm: 'pm'
@@ -217,6 +221,10 @@ function useInputColors(highlighted) {
217
221
  }
218
222
 
219
223
  function toHourInputFormat(hours, is24Hour) {
224
+ if (hours === 24) {
225
+ return 0;
226
+ }
227
+
220
228
  if (is24Hour) {
221
229
  return hours;
222
230
  }
@@ -233,7 +241,7 @@ function toHourOutputFormat(newHours, previousHours, is24Hour) {
233
241
  return newHours;
234
242
  }
235
243
 
236
- if (previousHours > 12 && newHours <= 12) {
244
+ if (previousHours > 12 && newHours < 12) {
237
245
  return newHours + 12;
238
246
  }
239
247
 
@@ -1 +1 @@
1
- {"version":3,"sources":["timeUtils.ts"],"names":["hourTypes","am","pm","getHourType","hours","undefined","inputTypes","keyboard","picker","reverseInputTypes","inputTypeIcons","clockTypes","minutes","outerHeight","_30","Math","PI","_12","_360","_90","snap","angle","step","a","diff","getHourTypeFromOffset","left","top","size","w","x","y","distance","sqrt","maxPm","getMinutes","handAngle","minute","parseInt","toFixed","getHours","hourType","hour","getAngle","atan","useSwitchColors","highlighted","theme","backgroundColor","React","useMemo","dark","colors","primary","hex","backdrop","lighten","surface","color","placeholder","useInputColors","darken","text","toHourInputFormat","is24Hour","toHourOutputFormat","newHours","previousHours"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport Color from 'color'\nimport { useTheme } from 'react-native-paper'\n\nexport type PossibleHourTypes = 'am' | 'pm'\nexport type HourTypeMap = {\n [hourType in PossibleHourTypes]: PossibleHourTypes\n}\nexport const hourTypes: HourTypeMap = {\n am: 'am',\n pm: 'pm',\n}\n\nexport function getHourType(hours: number): PossibleHourTypes | undefined {\n if (hours >= 0 && hours <= 12) {\n return hourTypes.am\n }\n if (hours > 12 && hours <= 24) {\n return hourTypes.pm\n }\n return undefined\n}\n\nexport type PossibleInputTypes = 'keyboard' | 'picker'\nexport type InputTypeMap = {\n [inputType in PossibleInputTypes]: PossibleInputTypes\n}\nexport const inputTypes: InputTypeMap = {\n keyboard: 'keyboard',\n picker: 'picker',\n}\n\nexport const reverseInputTypes: InputTypeMap = {\n keyboard: 'picker',\n picker: 'keyboard',\n}\ntype InputIconMap = {\n [inputType in PossibleInputTypes]: string\n}\nexport const inputTypeIcons: InputIconMap = {\n keyboard: 'keyboard-outline',\n picker: 'clock-outline',\n}\n\nexport type PossibleClockTypes = 'hours' | 'minutes'\nexport type ClockTypeMap = {\n [clockType in PossibleClockTypes]: PossibleClockTypes\n}\nexport const clockTypes: ClockTypeMap = {\n minutes: 'minutes',\n hours: 'hours',\n}\n\n// Code inspiration and copied from: https://github.com/ShaneGH/analogue-time-picker/blob/master/src/utils/angle.ts\n\nconst outerHeight = 34\nconst _30 = Math.PI / 6\nconst _12 = Math.PI / 30\nconst _360 = Math.PI * 2\nconst _90 = Math.PI / 2\n\n/** Snap an angle to a given step. E.g. if angle = 22° and step = 10°, round down to 20° */\nexport function snap(angle: number, step: number) {\n let a = angle\n while (a < 0) a += _360\n let diff = a % step\n\n if (diff <= step / 2) {\n return angle - diff\n }\n\n return angle - diff + step\n}\n\n// detect am / pm based on offset\nexport function getHourTypeFromOffset(\n left: number,\n top: number,\n size: number\n): PossibleHourTypes {\n const w = size / 2\n const x = w - left\n const y = size / 2 - top\n\n const distance = Math.sqrt(x * x + y * y)\n const maxPm = w - outerHeight\n\n return distance > maxPm ? hourTypes.am : hourTypes.pm\n}\n\n// Calculate the minute from the hand angle\nexport function getMinutes(handAngle: number) {\n handAngle = snap(handAngle, _12)\n\n let minute = parseInt((((handAngle - _90) % _360) / _12).toFixed(), 10)\n while (minute < 0) minute += 60\n while (minute >= 60) minute -= 60\n\n return minute\n}\n\n// Calculate the hour from the hand angle\nexport function getHours(\n handAngle: number,\n hourType: PossibleHourTypes | undefined\n) {\n handAngle = snap(handAngle, _30)\n\n let hour = parseInt((((handAngle - _90) % _360) / _30).toFixed(), 10)\n if (hour < 0) hour += 12\n if (hour >= 12) hour -= 12\n\n if (hourType === hourTypes.am) {\n if (hour <= 0) {\n hour += 12\n } else if (hour >= 12) {\n hour -= 12\n }\n }\n if (hourType === hourTypes.pm) {\n if (hour <= 0) {\n hour += 12\n } else if (hour > 12) {\n hour -= 12\n }\n }\n\n return hour\n}\n\n/** Get the angle of the left/top co-ordinate from the center of the width.height box */\nexport function getAngle(left: number, top: number, size: number) {\n const x = size / 2 - left\n const y = size / 2 - top\n\n // tan O = y / x\n let angle = x ? Math.atan(y / x) : y < 0 ? -_90 : _90\n if (x < 0) {\n // reflect along vertical axis\n angle = -angle + 2 * (_90 + angle)\n }\n\n return angle\n}\n\nexport function useSwitchColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return Color(theme.colors.primary).hex()\n }\n return theme.colors.backdrop\n }\n\n if (highlighted) {\n return Color(theme.colors.primary).lighten(1).hex()\n }\n return theme.colors.surface\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (highlighted && !theme.dark) {\n return theme.colors.primary\n }\n return theme.colors.placeholder\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function useInputColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return Color(theme.colors.primary).hex()\n }\n return Color(theme.colors.surface).lighten(1.2).hex()\n }\n\n if (highlighted) {\n return Color(theme.colors.primary).lighten(1).hex()\n }\n return Color(theme.colors.surface).darken(0.1).hex()\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (highlighted && !theme.dark) {\n return theme.colors.primary\n }\n return theme.colors.text\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function toHourInputFormat(hours: number, is24Hour: boolean): number {\n if (is24Hour) {\n return hours\n }\n if (hours > 12) {\n return hours - 12\n }\n return hours\n}\n\nexport function toHourOutputFormat(\n newHours: number,\n previousHours: number,\n is24Hour: boolean\n): number {\n if (is24Hour) {\n return newHours\n }\n if (previousHours > 12 && newHours <= 12) {\n return newHours + 12\n }\n return newHours\n}\n"]}
1
+ {"version":3,"sources":["timeUtils.ts"],"names":["circleSize","hourTypes","am","pm","getHourType","hours","undefined","inputTypes","keyboard","picker","reverseInputTypes","inputTypeIcons","clockTypes","minutes","outerHeight","_30","Math","PI","_12","_360","_90","snap","angle","step","a","diff","getHourTypeFromOffset","left","top","size","w","x","y","distance","sqrt","maxPm","getMinutes","handAngle","minute","parseInt","toFixed","getHours","hourType","hour","getAngle","atan","useSwitchColors","highlighted","theme","backgroundColor","React","useMemo","dark","colors","primary","hex","backdrop","lighten","surface","color","placeholder","useInputColors","darken","text","toHourInputFormat","is24Hour","toHourOutputFormat","newHours","previousHours"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport Color from 'color'\nimport { useTheme } from 'react-native-paper'\n\n// 250? when bigger?\nexport const circleSize = 215\n\nexport type PossibleHourTypes = 'am' | 'pm'\nexport type HourTypeMap = {\n [hourType in PossibleHourTypes]: PossibleHourTypes\n}\nexport const hourTypes: HourTypeMap = {\n am: 'am',\n pm: 'pm',\n}\n\nexport function getHourType(hours: number): PossibleHourTypes | undefined {\n if (hours >= 0 && hours <= 12) {\n return hourTypes.am\n }\n if (hours > 12 && hours <= 24) {\n return hourTypes.pm\n }\n return undefined\n}\n\nexport type PossibleInputTypes = 'keyboard' | 'picker'\nexport type InputTypeMap = {\n [inputType in PossibleInputTypes]: PossibleInputTypes\n}\nexport const inputTypes: InputTypeMap = {\n keyboard: 'keyboard',\n picker: 'picker',\n}\n\nexport const reverseInputTypes: InputTypeMap = {\n keyboard: 'picker',\n picker: 'keyboard',\n}\ntype InputIconMap = {\n [inputType in PossibleInputTypes]: string\n}\nexport const inputTypeIcons: InputIconMap = {\n keyboard: 'keyboard-outline',\n picker: 'clock-outline',\n}\n\nexport type PossibleClockTypes = 'hours' | 'minutes'\nexport type ClockTypeMap = {\n [clockType in PossibleClockTypes]: PossibleClockTypes\n}\nexport const clockTypes: ClockTypeMap = {\n minutes: 'minutes',\n hours: 'hours',\n}\n\n// Code inspiration and copied from: https://github.com/ShaneGH/analogue-time-picker/blob/master/src/utils/angle.ts\n\nconst outerHeight = 34\nconst _30 = Math.PI / 6\nconst _12 = Math.PI / 30\nconst _360 = Math.PI * 2\nconst _90 = Math.PI / 2\n\n/** Snap an angle to a given step. E.g. if angle = 22° and step = 10°, round down to 20° */\nexport function snap(angle: number, step: number) {\n let a = angle\n while (a < 0) a += _360\n let diff = a % step\n\n if (diff <= step / 2) {\n return angle - diff\n }\n\n return angle - diff + step\n}\n\n// detect am / pm based on offset\nexport function getHourTypeFromOffset(\n left: number,\n top: number,\n size: number\n): PossibleHourTypes {\n const w = size / 2\n const x = w - left\n const y = size / 2 - top\n\n const distance = Math.sqrt(x * x + y * y)\n const maxPm = w - outerHeight\n\n return distance > maxPm ? hourTypes.am : hourTypes.pm\n}\n\n// Calculate the minute from the hand angle\nexport function getMinutes(handAngle: number) {\n handAngle = snap(handAngle, _12)\n\n let minute = parseInt((((handAngle - _90) % _360) / _12).toFixed(), 10)\n while (minute < 0) minute += 60\n while (minute >= 60) minute -= 60\n\n return minute\n}\n\n// Calculate the hour from the hand angle\nexport function getHours(\n handAngle: number,\n hourType: PossibleHourTypes | undefined\n) {\n handAngle = snap(handAngle, _30)\n\n let hour = parseInt((((handAngle - _90) % _360) / _30).toFixed(), 10)\n if (hour < 0) hour += 12\n if (hour >= 12) hour -= 12\n\n if (hourType === hourTypes.am) {\n if (hour <= 0) {\n hour += 12\n } else if (hour >= 12) {\n hour -= 12\n }\n }\n if (hourType === hourTypes.pm) {\n if (hour <= 0) {\n hour += 12\n } else if (hour > 12) {\n hour -= 12\n }\n }\n\n return hour\n}\n\n/** Get the angle of the left/top co-ordinate from the center of the width.height box */\nexport function getAngle(left: number, top: number, size: number) {\n const x = size / 2 - left\n const y = size / 2 - top\n\n // tan O = y / x\n let angle = x ? Math.atan(y / x) : y < 0 ? -_90 : _90\n if (x < 0) {\n // reflect along vertical axis\n angle = -angle + 2 * (_90 + angle)\n }\n\n return angle\n}\n\nexport function useSwitchColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return Color(theme.colors.primary).hex()\n }\n return theme.colors.backdrop\n }\n\n if (highlighted) {\n return Color(theme.colors.primary).lighten(1).hex()\n }\n return theme.colors.surface\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (highlighted && !theme.dark) {\n return theme.colors.primary\n }\n return theme.colors.placeholder\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function useInputColors(highlighted: boolean) {\n const theme = useTheme()\n const backgroundColor = React.useMemo<string>(() => {\n if (theme.dark) {\n if (highlighted) {\n return Color(theme.colors.primary).hex()\n }\n return Color(theme.colors.surface).lighten(1.2).hex()\n }\n\n if (highlighted) {\n return Color(theme.colors.primary).lighten(1).hex()\n }\n return Color(theme.colors.surface).darken(0.1).hex()\n }, [highlighted, theme])\n\n const color = React.useMemo<string>(() => {\n if (highlighted && !theme.dark) {\n return theme.colors.primary\n }\n return theme.colors.text\n }, [highlighted, theme])\n\n return { backgroundColor, color }\n}\n\nexport function toHourInputFormat(hours: number, is24Hour: boolean): number {\n if (hours === 24) {\n return 0\n }\n if (is24Hour) {\n return hours\n }\n if (hours > 12) {\n return hours - 12\n }\n return hours\n}\n\nexport function toHourOutputFormat(\n newHours: number,\n previousHours: number,\n is24Hour: boolean\n): number {\n if (is24Hour) {\n return newHours\n }\n if (previousHours > 12 && newHours < 12) {\n return newHours + 12\n }\n return newHours\n}\n"]}