react-native-paper-dates 0.4.6 → 0.7.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 (245) hide show
  1. package/README.md +79 -22
  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 +32 -111
  9. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  10. package/lib/commonjs/Date/CalendarHeader.js +23 -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 +2 -2
  15. package/lib/commonjs/Date/DatePickerModalContent.js +7 -4
  16. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  17. package/lib/commonjs/Date/DatePickerModalContentHeader.js +43 -34
  18. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  19. package/lib/commonjs/Date/DatePickerModalHeader.js +12 -5
  20. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  21. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
  22. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  23. package/lib/commonjs/Date/DateRangeInput.js +23 -24
  24. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  25. package/lib/commonjs/Date/Day.js +7 -3
  26. package/lib/commonjs/Date/Day.js.map +1 -1
  27. package/lib/commonjs/Date/DayName.js +6 -5
  28. package/lib/commonjs/Date/DayName.js.map +1 -1
  29. package/lib/commonjs/Date/DayNames.js +7 -6
  30. package/lib/commonjs/Date/DayNames.js.map +1 -1
  31. package/lib/commonjs/Date/DayRange.js +9 -8
  32. package/lib/commonjs/Date/DayRange.js.map +1 -1
  33. package/lib/commonjs/Date/Month.js +59 -49
  34. package/lib/commonjs/Date/Month.js.map +1 -1
  35. package/lib/commonjs/Date/Swiper.js +35 -29
  36. package/lib/commonjs/Date/Swiper.js.map +1 -1
  37. package/lib/commonjs/Date/Swiper.native.js +29 -23
  38. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  39. package/lib/commonjs/Date/SwiperUtils.js +7 -6
  40. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  41. package/lib/commonjs/Date/YearPicker.js +30 -20
  42. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  43. package/lib/commonjs/Date/dateUtils.js +106 -37
  44. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  45. package/lib/commonjs/Date/inputUtils.js +84 -0
  46. package/lib/commonjs/Date/inputUtils.js.map +1 -0
  47. package/lib/commonjs/TextInputMask.js +11 -10
  48. package/lib/commonjs/TextInputMask.js.map +1 -1
  49. package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
  50. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  51. package/lib/commonjs/Time/AnalogClock.js +25 -15
  52. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  53. package/lib/commonjs/Time/AnalogClockHours.js +17 -11
  54. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  55. package/lib/commonjs/Time/AnalogClockMinutes.js +7 -6
  56. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  57. package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
  58. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  59. package/lib/commonjs/Time/TimeInput.js +16 -12
  60. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  61. package/lib/commonjs/Time/TimeInputs.js +12 -11
  62. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  63. package/lib/commonjs/Time/TimePicker.js +37 -15
  64. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  65. package/lib/commonjs/Time/TimePickerModal.js +19 -15
  66. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  67. package/lib/commonjs/Time/timeUtils.js +14 -9
  68. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  69. package/lib/commonjs/index.js +66 -5
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/translations/en.js +25 -0
  72. package/lib/commonjs/translations/en.js.map +1 -0
  73. package/lib/commonjs/translations/enGB.js +25 -0
  74. package/lib/commonjs/translations/enGB.js.map +1 -0
  75. package/lib/commonjs/translations/nl.js +25 -0
  76. package/lib/commonjs/translations/nl.js.map +1 -0
  77. package/lib/commonjs/translations/pl.js +25 -0
  78. package/lib/commonjs/translations/pl.js.map +1 -0
  79. package/lib/commonjs/translations/utils.js +31 -0
  80. package/lib/commonjs/translations/utils.js.map +1 -0
  81. package/lib/commonjs/utils.js +19 -9
  82. package/lib/commonjs/utils.js.map +1 -1
  83. package/lib/module/Date/AnimatedCrossView.js +7 -6
  84. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  85. package/lib/module/Date/AutoSizer.js +4 -3
  86. package/lib/module/Date/AutoSizer.js.map +1 -1
  87. package/lib/module/Date/Calendar.js +46 -39
  88. package/lib/module/Date/Calendar.js.map +1 -1
  89. package/lib/module/Date/CalendarEdit.js +28 -104
  90. package/lib/module/Date/CalendarEdit.js.map +1 -1
  91. package/lib/module/Date/CalendarHeader.js +19 -9
  92. package/lib/module/Date/CalendarHeader.js.map +1 -1
  93. package/lib/module/Date/DatePickerInput.js +88 -18
  94. package/lib/module/Date/DatePickerInput.js.map +1 -1
  95. package/lib/module/Date/DatePickerModalContent.js +5 -2
  96. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  97. package/lib/module/Date/DatePickerModalContentHeader.js +38 -30
  98. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  99. package/lib/module/Date/DatePickerModalHeader.js +9 -3
  100. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  101. package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
  102. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  103. package/lib/module/Date/DateRangeInput.js +22 -22
  104. package/lib/module/Date/DateRangeInput.js.map +1 -1
  105. package/lib/module/Date/Day.js +5 -1
  106. package/lib/module/Date/Day.js.map +1 -1
  107. package/lib/module/Date/DayName.js +4 -3
  108. package/lib/module/Date/DayName.js.map +1 -1
  109. package/lib/module/Date/DayNames.js +5 -4
  110. package/lib/module/Date/DayNames.js.map +1 -1
  111. package/lib/module/Date/DayRange.js +7 -6
  112. package/lib/module/Date/DayRange.js.map +1 -1
  113. package/lib/module/Date/Month.js +54 -45
  114. package/lib/module/Date/Month.js.map +1 -1
  115. package/lib/module/Date/Swiper.js +32 -26
  116. package/lib/module/Date/Swiper.js.map +1 -1
  117. package/lib/module/Date/Swiper.native.js +27 -21
  118. package/lib/module/Date/Swiper.native.js.map +1 -1
  119. package/lib/module/Date/SwiperUtils.js +5 -4
  120. package/lib/module/Date/SwiperUtils.js.map +1 -1
  121. package/lib/module/Date/YearPicker.js +28 -18
  122. package/lib/module/Date/YearPicker.js.map +1 -1
  123. package/lib/module/Date/dateUtils.js +78 -29
  124. package/lib/module/Date/dateUtils.js.map +1 -1
  125. package/lib/module/Date/inputUtils.js +70 -0
  126. package/lib/module/Date/inputUtils.js.map +1 -0
  127. package/lib/module/TextInputMask.js +9 -8
  128. package/lib/module/TextInputMask.js.map +1 -1
  129. package/lib/module/Time/AmPmSwitcher.js +35 -18
  130. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  131. package/lib/module/Time/AnalogClock.js +23 -14
  132. package/lib/module/Time/AnalogClock.js.map +1 -1
  133. package/lib/module/Time/AnalogClockHours.js +14 -9
  134. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  135. package/lib/module/Time/AnalogClockMinutes.js +5 -4
  136. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  137. package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
  138. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  139. package/lib/module/Time/TimeInput.js +14 -10
  140. package/lib/module/Time/TimeInput.js.map +1 -1
  141. package/lib/module/Time/TimeInputs.js +10 -9
  142. package/lib/module/Time/TimeInputs.js.map +1 -1
  143. package/lib/module/Time/TimePicker.js +32 -12
  144. package/lib/module/Time/TimePicker.js.map +1 -1
  145. package/lib/module/Time/TimePickerModal.js +17 -13
  146. package/lib/module/Time/TimePickerModal.js.map +1 -1
  147. package/lib/module/Time/timeUtils.js +5 -1
  148. package/lib/module/Time/timeUtils.js.map +1 -1
  149. package/lib/module/index.js +6 -0
  150. package/lib/module/index.js.map +1 -1
  151. package/lib/module/translations/en.js +18 -0
  152. package/lib/module/translations/en.js.map +1 -0
  153. package/lib/module/translations/enGB.js +18 -0
  154. package/lib/module/translations/enGB.js.map +1 -0
  155. package/lib/module/translations/nl.js +18 -0
  156. package/lib/module/translations/nl.js.map +1 -0
  157. package/lib/module/translations/pl.js +18 -0
  158. package/lib/module/translations/pl.js.map +1 -0
  159. package/lib/module/translations/utils.js +22 -0
  160. package/lib/module/translations/utils.js.map +1 -0
  161. package/lib/module/utils.js +11 -5
  162. package/lib/module/utils.js.map +1 -1
  163. package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
  164. package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
  165. package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
  166. package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +3 -3
  167. package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
  168. package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
  169. package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
  170. package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -1
  171. package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
  172. package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
  173. package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
  174. package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
  175. package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
  176. package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
  177. package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
  178. package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
  179. package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
  180. package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
  181. package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
  182. package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
  183. package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
  184. package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
  185. package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
  186. package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
  187. package/lib/typescript/Date/inputUtils.d.ts +14 -0
  188. package/lib/typescript/TextInputMask.d.ts +11 -0
  189. package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
  190. package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -1
  191. package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
  192. package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
  193. package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
  194. package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
  195. package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
  196. package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
  197. package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
  198. package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +0 -0
  199. package/lib/typescript/index.d.ts +13 -0
  200. package/lib/typescript/translations/en.d.ts +3 -0
  201. package/lib/typescript/translations/enGB.d.ts +3 -0
  202. package/lib/typescript/translations/nl.d.ts +3 -0
  203. package/lib/typescript/translations/pl.d.ts +3 -0
  204. package/lib/typescript/translations/utils.d.ts +18 -0
  205. package/lib/typescript/utils.d.ts +58 -0
  206. package/package.json +39 -38
  207. package/src/.DS_Store +0 -0
  208. package/src/Date/Calendar.tsx +14 -13
  209. package/src/Date/CalendarEdit.tsx +17 -121
  210. package/src/Date/CalendarHeader.tsx +18 -3
  211. package/src/Date/DatePickerInput.tsx +103 -25
  212. package/src/Date/DatePickerModalContent.tsx +5 -1
  213. package/src/Date/DatePickerModalContentHeader.tsx +26 -12
  214. package/src/Date/DatePickerModalHeader.tsx +8 -1
  215. package/src/Date/DateRangeInput.tsx +26 -17
  216. package/src/Date/Day.tsx +4 -0
  217. package/src/Date/Month.tsx +20 -44
  218. package/src/Date/Swiper.tsx +1 -0
  219. package/src/Date/SwiperUtils.ts +1 -1
  220. package/src/Date/YearPicker.tsx +6 -1
  221. package/src/Date/dateUtils.tsx +70 -9
  222. package/src/Date/inputUtils.ts +94 -0
  223. package/src/TextInputMask.tsx +10 -3
  224. package/src/Time/AmPmSwitcher.tsx +20 -11
  225. package/src/Time/AnalogClock.tsx +12 -14
  226. package/src/Time/AnalogClockHours.tsx +14 -5
  227. package/src/Time/AnalogClockMinutes.tsx +4 -1
  228. package/src/Time/TimeInput.tsx +3 -0
  229. package/src/Time/TimeInputs.tsx +1 -5
  230. package/src/Time/TimePicker.tsx +44 -22
  231. package/src/Time/TimePickerModal.tsx +4 -1
  232. package/src/Time/timeUtils.ts +4 -1
  233. package/src/index.tsx +7 -0
  234. package/src/translations/en.ts +20 -0
  235. package/src/translations/enGB.ts +20 -0
  236. package/src/translations/nl.ts +20 -0
  237. package/src/translations/pl.ts +21 -0
  238. package/src/translations/utils.ts +47 -0
  239. package/src/utils.ts +13 -5
  240. package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
  241. package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
  242. package/lib/typescript/src/TextInputMask.d.ts +0 -3
  243. package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
  244. package/lib/typescript/src/index.d.ts +0 -6
  245. package/lib/typescript/src/utils.d.ts +0 -7
@@ -4,18 +4,19 @@ import { Button, IconButton, overlay, useTheme } from 'react-native-paper';
4
4
  import TimePicker from './TimePicker';
5
5
  import { clockTypes, inputTypeIcons, inputTypes, reverseInputTypes } from './timeUtils';
6
6
  const supportedOrientations = ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'];
7
- export function TimePickerModal({
8
- visible,
9
- onDismiss,
10
- onConfirm,
11
- hours,
12
- minutes,
13
- label = 'Select time',
14
- cancelLabel = 'Cancel',
15
- confirmLabel = 'Ok',
16
- animationType = 'none',
17
- locale
18
- }) {
7
+ export function TimePickerModal(_ref) {
8
+ let {
9
+ visible,
10
+ onDismiss,
11
+ onConfirm,
12
+ hours,
13
+ minutes,
14
+ label = 'Select time',
15
+ cancelLabel = 'Cancel',
16
+ confirmLabel = 'Ok',
17
+ animationType = 'none',
18
+ locale
19
+ } = _ref;
19
20
  const theme = useTheme();
20
21
  const [inputType, setInputType] = React.useState(inputTypes.picker);
21
22
  const [focused, setFocused] = React.useState(clockTypes.hours);
@@ -85,7 +86,10 @@ export function TimePickerModal({
85
86
  onPress: () => setInputType(reverseInputTypes[inputType]),
86
87
  size: 24,
87
88
  style: styles.inputTypeToggle,
88
- accessibilityLabel: "toggle keyboard"
89
+ accessibilityLabel: "toggle keyboard" // RN types bug
90
+ ,
91
+ hasTVPreferredFocus: undefined,
92
+ tvParallaxProperties: undefined
89
93
  }), /*#__PURE__*/React.createElement(View, {
90
94
  style: styles.fill
91
95
  }), /*#__PURE__*/React.createElement(Button, {
@@ -1 +1 @@
1
- {"version":3,"sources":["TimePickerModal.tsx"],"names":["React","Modal","StyleSheet","View","Text","Animated","TouchableWithoutFeedback","KeyboardAvoidingView","Button","IconButton","overlay","useTheme","TimePicker","clockTypes","inputTypeIcons","inputTypes","reverseInputTypes","supportedOrientations","TimePickerModal","visible","onDismiss","onConfirm","hours","minutes","label","cancelLabel","confirmLabel","animationType","locale","theme","inputType","setInputType","useState","picker","focused","setFocused","localHours","setLocalHours","getHours","localMinutes","setLocalMinutes","getMinutes","useEffect","onFocusInput","useCallback","type","onChange","params","absoluteFill","styles","modalBackground","backgroundColor","colors","backdrop","modalRoot","keyboardView","modalContent","dark","surface","borderRadius","roundness","labelContainer","color","text","toUpperCase","timePickerContainer","bottom","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":["React","Modal","StyleSheet","View","Text","Animated","TouchableWithoutFeedback","KeyboardAvoidingView","Button","IconButton","overlay","useTheme","TimePicker","clockTypes","inputTypeIcons","inputTypes","reverseInputTypes","supportedOrientations","TimePickerModal","visible","onDismiss","onConfirm","hours","minutes","label","cancelLabel","confirmLabel","animationType","locale","theme","inputType","setInputType","useState","picker","focused","setFocused","localHours","setLocalHours","getHours","localMinutes","setLocalMinutes","getMinutes","useEffect","onFocusInput","useCallback","type","onChange","params","absoluteFill","styles","modalBackground","backgroundColor","colors","backdrop","modalRoot","keyboardView","modalContent","dark","surface","borderRadius","roundness","labelContainer","color","text","toUpperCase","timePickerContainer","bottom","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":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,KADF,EAEEC,UAFF,EAGEC,IAHF,EAIEC,IAJF,EAKEC,QALF,EAMEC,wBANF,EAOEC,oBAPF,QAQO,cARP;AAUA,SAASC,MAAT,EAAiBC,UAAjB,EAA6BC,OAA7B,EAAsCC,QAAtC,QAAsD,oBAAtD;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,SACEC,UADF,EAEEC,cAFF,EAGEC,UAHF,EAMEC,iBANF,QAOO,aAPP;AASA,MAAMC,qBAA4B,GAAG,CACnC,UADmC,EAEnC,sBAFmC,EAGnC,WAHmC,EAInC,gBAJmC,EAKnC,iBALmC,CAArC;AAQA,OAAO,SAASC,eAAT,OAsBJ;AAAA,MAtB6B;AAC9BC,IAAAA,OAD8B;AAE9BC,IAAAA,SAF8B;AAG9BC,IAAAA,SAH8B;AAI9BC,IAAAA,KAJ8B;AAK9BC,IAAAA,OAL8B;AAM9BC,IAAAA,KAAK,GAAG,aANsB;AAO9BC,IAAAA,WAAW,GAAG,QAPgB;AAQ9BC,IAAAA,YAAY,GAAG,IARe;AAS9BC,IAAAA,aAAa,GAAG,MATc;AAU9BC,IAAAA;AAV8B,GAsB7B;AACD,QAAMC,KAAK,GAAGlB,QAAQ,EAAtB;AAEA,QAAM,CAACmB,SAAD,EAAYC,YAAZ,IAA4B/B,KAAK,CAACgC,QAAN,CAChCjB,UAAU,CAACkB,MADqB,CAAlC;AAGA,QAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBnC,KAAK,CAACgC,QAAN,CAC5BnB,UAAU,CAACS,KADiB,CAA9B;AAGA,QAAM,CAACc,UAAD,EAAaC,aAAb,IAA8BrC,KAAK,CAACgC,QAAN,CAAuBM,QAAQ,CAAChB,KAAD,CAA/B,CAApC;AACA,QAAM,CAACiB,YAAD,EAAeC,eAAf,IAAkCxC,KAAK,CAACgC,QAAN,CACtCS,UAAU,CAAClB,OAAD,CAD4B,CAAxC;AAIAvB,EAAAA,KAAK,CAAC0C,SAAN,CAAgB,MAAM;AACpBL,IAAAA,aAAa,CAACC,QAAQ,CAAChB,KAAD,CAAT,CAAb;AACD,GAFD,EAEG,CAACe,aAAD,EAAgBf,KAAhB,CAFH;AAIAtB,EAAAA,KAAK,CAAC0C,SAAN,CAAgB,MAAM;AACpBF,IAAAA,eAAe,CAACC,UAAU,CAAClB,OAAD,CAAX,CAAf;AACD,GAFD,EAEG,CAACiB,eAAD,EAAkBjB,OAAlB,CAFH;AAIA,QAAMoB,YAAY,GAAG3C,KAAK,CAAC4C,WAAN,CAClBC,IAAD,IAA8BV,UAAU,CAACU,IAAD,CADrB,EAEnB,EAFmB,CAArB;AAIA,QAAMC,QAAQ,GAAG9C,KAAK,CAAC4C,WAAN,CACdG,MAAD,IAIM;AACJ,QAAIA,MAAM,CAACb,OAAX,EAAoB;AAClBC,MAAAA,UAAU,CAACY,MAAM,CAACb,OAAR,CAAV;AACD;;AAEDG,IAAAA,aAAa,CAACU,MAAM,CAACzB,KAAR,CAAb;AACAkB,IAAAA,eAAe,CAACO,MAAM,CAACxB,OAAR,CAAf;AACD,GAZc,EAaf,CAACY,UAAD,EAAaE,aAAb,EAA4BG,eAA5B,CAbe,CAAjB;AAeA,sBACE,oBAAC,KAAD;AACE,IAAA,aAAa,EAAEb,aADjB;AAEE,IAAA,WAAW,EAAE,IAFf;AAGE,IAAA,OAAO,EAAER,OAHX;AAIE,IAAA,cAAc,EAAEC,SAJlB;AAKE,IAAA,iBAAiB,EAAC,gBALpB;AAME,IAAA,qBAAqB,EAAEH,qBANzB,CAOE;AAPF;AAQE,IAAA,oBAAoB,EAAE;AARxB,kBAUE,uDACE,oBAAC,wBAAD;AAA0B,IAAA,OAAO,EAAEG;AAAnC,kBACE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CACLlB,UAAU,CAAC8C,YADN,EAELC,MAAM,CAACC,eAFF,EAGL;AAAEC,MAAAA,eAAe,EAAEtB,KAAK,CAACuB,MAAN,CAAaC;AAAhC,KAHK;AADT,IADF,CADF,eAWE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CAACnD,UAAU,CAAC8C,YAAZ,EAA0BC,MAAM,CAACK,SAAjC,CADT;AAEE,IAAA,aAAa,EAAC;AAFhB,kBAIE,oBAAC,oBAAD;AACE,IAAA,KAAK,EAAEL,MAAM,CAACM,YADhB;AAEE,IAAA,QAAQ,EAAE;AAFZ,kBAIE,oBAAC,QAAD,CAAU,IAAV;AACE,IAAA,KAAK,EAAE,CACLN,MAAM,CAACO,YADF,EAEL;AACEL,MAAAA,eAAe,EAAEtB,KAAK,CAAC4B,IAAN,GACb/C,OAAO,CAAC,EAAD,EAAKmB,KAAK,CAACuB,MAAN,CAAaM,OAAlB,CADM,GAEb7B,KAAK,CAACuB,MAAN,CAAaM,OAHnB;AAIEC,MAAAA,YAAY,EAAE9B,KAAK,CAAC+B;AAJtB,KAFK;AADT,kBAWE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEX,MAAM,CAACY;AAApB,kBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACZ,MAAM,CAACzB,KAAR,EAAe;AAAEsC,MAAAA,KAAK,EAAEjC,KAAK,CAACuB,MAAN,CAAaW;AAAtB,KAAf;AAAb,KACGvC,KAAK,CAACwC,WAAN,EADH,CADF,CAXF,eAgBE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEf,MAAM,CAACgB;AAApB,kBACE,oBAAC,UAAD;AACE,IAAA,MAAM,EAAErC,MADV;AAEE,IAAA,SAAS,EAAEE,SAFb;AAGE,IAAA,OAAO,EAAEI,OAHX;AAIE,IAAA,KAAK,EAAEE,UAJT;AAKE,IAAA,OAAO,EAAEG,YALX;AAME,IAAA,QAAQ,EAAEO,QANZ;AAOE,IAAA,YAAY,EAAEH;AAPhB,IADF,CAhBF,eA2BE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEM,MAAM,CAACiB;AAApB,kBACE,oBAAC,UAAD;AACE,IAAA,IAAI,EAAEpD,cAAc,CAACE,iBAAiB,CAACc,SAAD,CAAlB,CADtB;AAEE,IAAA,OAAO,EAAE,MAAMC,YAAY,CAACf,iBAAiB,CAACc,SAAD,CAAlB,CAF7B;AAGE,IAAA,IAAI,EAAE,EAHR;AAIE,IAAA,KAAK,EAAEmB,MAAM,CAACkB,eAJhB;AAKE,IAAA,kBAAkB,EAAC,iBALrB,CAME;AANF;AAOE,IAAA,mBAAmB,EAAEC,SAPvB;AAQE,IAAA,oBAAoB,EAAEA;AARxB,IADF,eAWE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEnB,MAAM,CAACoB;AAApB,IAXF,eAYE,oBAAC,MAAD;AAAQ,IAAA,OAAO,EAAEjD;AAAjB,KAA6BK,WAA7B,CAZF,eAaE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAE,MACPJ,SAAS,CAAC;AAAEC,MAAAA,KAAK,EAAEc,UAAT;AAAqBb,MAAAA,OAAO,EAAEgB;AAA9B,KAAD;AAFb,KAKGb,YALH,CAbF,CA3BF,CAJF,CAJF,CAXF,CAVF,CADF;AAoFD;;AAED,SAASe,UAAT,CAAoBlB,OAApB,EAAgE;AAC9D,SAAOA,OAAO,KAAK6C,SAAZ,IAAyB7C,OAAO,KAAK,IAArC,GACH,IAAI+C,IAAJ,GAAW7B,UAAX,EADG,GAEHlB,OAFJ;AAGD;;AACD,SAASe,QAAT,CAAkBhB,KAAlB,EAA4D;AAC1D,SAAOA,KAAK,KAAK8C,SAAV,IAAuB9C,KAAK,KAAK,IAAjC,GAAwC,IAAIgD,IAAJ,GAAWhC,QAAX,EAAxC,GAAgEhB,KAAvE;AACD;;AAED,MAAM2B,MAAM,GAAG/C,UAAU,CAACqE,MAAX,CAAkB;AAC/BjB,EAAAA,SAAS,EAAE;AACTkB,IAAAA,cAAc,EAAE,QADP;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,IAAI,EAAE;AAHG,GADoB;AAM/BnB,EAAAA,YAAY,EAAE;AACZiB,IAAAA,cAAc,EAAE,QADJ;AAEZC,IAAAA,UAAU,EAAE,QAFA;AAGZC,IAAAA,IAAI,EAAE;AAHM,GANiB;AAW/BxB,EAAAA,eAAe,EAAE;AACfwB,IAAAA,IAAI,EAAE;AADS,GAXc;AAc/BlB,EAAAA,YAAY,EAAE;AACZmB,IAAAA,WAAW,EAAE,MADD;AAEZC,IAAAA,YAAY,EAAE;AACZC,MAAAA,KAAK,EAAE,CADK;AAEZC,MAAAA,MAAM,EAAE;AAFI,KAFF;AAMZC,IAAAA,aAAa,EAAE,IANH;AAOZC,IAAAA,YAAY,EAAE,IAPF;AAQZC,IAAAA,SAAS,EAAE,EARC;AASZC,IAAAA,QAAQ,EAAE;AATE,GAdiB;AAyB/BrB,EAAAA,cAAc,EAAE;AACdiB,IAAAA,MAAM,EAAE,EADM;AAEdN,IAAAA,cAAc,EAAE,UAFF;AAGdW,IAAAA,WAAW,EAAE,EAHC;AAIdC,IAAAA,YAAY,EAAE;AAJA,GAzBe;AA+B/B5D,EAAAA,KAAK,EAAE;AACL6D,IAAAA,aAAa,EAAE,CADV;AAELC,IAAAA,QAAQ,EAAE;AAFL,GA/BwB;AAmC/BrB,EAAAA,mBAAmB,EAAE;AAAEsB,IAAAA,OAAO,EAAE;AAAX,GAnCU;AAoC/BrB,EAAAA,MAAM,EAAE;AACNsB,IAAAA,aAAa,EAAE,KADT;AAENf,IAAAA,UAAU,EAAE,QAFN;AAGNc,IAAAA,OAAO,EAAE;AAHH,GApCuB;AAyC/BpB,EAAAA,eAAe,EAAE;AAAEsB,IAAAA,MAAM,EAAE;AAAV,GAzCc;AA0C/BpB,EAAAA,IAAI,EAAE;AAAEK,IAAAA,IAAI,EAAE;AAAR;AA1CyB,CAAlB,CAAf;AA6CA,4BAAe1E,KAAK,CAAC0F,IAAN,CAAWxE,eAAX,CAAf","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"]}
@@ -179,6 +179,10 @@ export function useInputColors(highlighted) {
179
179
  };
180
180
  }
181
181
  export function toHourInputFormat(hours, is24Hour) {
182
+ if (hours === 24) {
183
+ return 0;
184
+ }
185
+
182
186
  if (is24Hour) {
183
187
  return hours;
184
188
  }
@@ -194,7 +198,7 @@ export function toHourOutputFormat(newHours, previousHours, is24Hour) {
194
198
  return newHours;
195
199
  }
196
200
 
197
- if (previousHours > 12 && newHours <= 12) {
201
+ if (previousHours > 12 && newHours < 12) {
198
202
  return newHours + 12;
199
203
  }
200
204
 
@@ -1 +1 @@
1
- {"version":3,"sources":["timeUtils.ts"],"names":["React","Color","useTheme","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","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 (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":["React","Color","useTheme","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","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"]}
@@ -4,4 +4,10 @@ export * from './Date/DatePickerModal';
4
4
  export { default as DatePickerModalContent } from './Date/DatePickerModalContent';
5
5
  export { default as TimePickerModal } from './Time/TimePickerModal';
6
6
  export { default as TimePicker } from './Time/TimePicker';
7
+ export { default as DatePickerInput } from './Date/DatePickerInput';
8
+ export { registerTranslation, getTranslation } from './translations/utils';
9
+ export { default as nl } from './translations/nl';
10
+ export { default as en } from './translations/en';
11
+ export { default as pl } from './translations/pl';
12
+ export { default as enGB } from './translations/enGB';
7
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["default","Calendar","DatePickerModal","DatePickerModalContent","TimePickerModal","TimePicker"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAApB,QAAoC,iBAApC;AACA,SAASD,OAAO,IAAIE,eAApB,QAA2C,wBAA3C;AACA,cAAc,wBAAd;AACA,SAASF,OAAO,IAAIG,sBAApB,QAAkD,+BAAlD;AACA,SAASH,OAAO,IAAII,eAApB,QAA2C,wBAA3C;AACA,SAASJ,OAAO,IAAIK,UAApB,QAAsC,mBAAtC","sourcesContent":["export { default as Calendar } from './Date/Calendar'\nexport { default as DatePickerModal } from './Date/DatePickerModal'\nexport * from './Date/DatePickerModal'\nexport { default as DatePickerModalContent } from './Date/DatePickerModalContent'\nexport { default as TimePickerModal } from './Time/TimePickerModal'\nexport { default as TimePicker } from './Time/TimePicker'\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["default","Calendar","DatePickerModal","DatePickerModalContent","TimePickerModal","TimePicker","DatePickerInput","registerTranslation","getTranslation","nl","en","pl","enGB"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAApB,QAAoC,iBAApC;AACA,SAASD,OAAO,IAAIE,eAApB,QAA2C,wBAA3C;AACA,cAAc,wBAAd;AACA,SAASF,OAAO,IAAIG,sBAApB,QAAkD,+BAAlD;AACA,SAASH,OAAO,IAAII,eAApB,QAA2C,wBAA3C;AACA,SAASJ,OAAO,IAAIK,UAApB,QAAsC,mBAAtC;AACA,SAASL,OAAO,IAAIM,eAApB,QAA2C,wBAA3C;AAEA,SAASC,mBAAT,EAA8BC,cAA9B,QAAoD,sBAApD;AACA,SAASR,OAAO,IAAIS,EAApB,QAA8B,mBAA9B;AACA,SAAST,OAAO,IAAIU,EAApB,QAA8B,mBAA9B;AACA,SAASV,OAAO,IAAIW,EAApB,QAA8B,mBAA9B;AACA,SAASX,OAAO,IAAIY,IAApB,QAAgC,qBAAhC","sourcesContent":["export { default as Calendar } from './Date/Calendar'\nexport { default as DatePickerModal } from './Date/DatePickerModal'\nexport * from './Date/DatePickerModal'\nexport { default as DatePickerModalContent } from './Date/DatePickerModalContent'\nexport { default as TimePickerModal } from './Time/TimePickerModal'\nexport { default as TimePicker } from './Time/TimePicker'\nexport { default as DatePickerInput } from './Date/DatePickerInput'\nexport type { TranslationsType } from './translations/utils'\nexport { registerTranslation, getTranslation } from './translations/utils'\nexport { default as nl } from './translations/nl'\nexport { default as en } from './translations/en'\nexport { default as pl } from './translations/pl'\nexport { default as enGB } from './translations/enGB'\n"]}
@@ -0,0 +1,18 @@
1
+ const en = {
2
+ save: 'Save',
3
+ selectSingle: 'Select date',
4
+ selectMultiple: 'Select dates',
5
+ selectRange: 'Select period',
6
+ notAccordingToDateFormat: inputFormat => `Date format must be ${inputFormat}`,
7
+ mustBeHigherThan: 'Must be later then',
8
+ mustBeLowerThan: 'Must be earlier then',
9
+ mustBeBetween: 'Must be between',
10
+ dateIsDisabled: 'Day is not allowed',
11
+ previous: 'Previous',
12
+ next: 'Next',
13
+ typeInDate: 'Type in date',
14
+ pickDateFromCalendar: 'Pick date from calendar',
15
+ close: 'Close'
16
+ };
17
+ export default en;
18
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["en.ts"],"names":["en","save","selectSingle","selectMultiple","selectRange","notAccordingToDateFormat","inputFormat","mustBeHigherThan","mustBeLowerThan","mustBeBetween","dateIsDisabled","previous","next","typeInDate","pickDateFromCalendar","close"],"mappings":"AAEA,MAAMA,EAAoB,GAAG;AAC3BC,EAAAA,IAAI,EAAE,MADqB;AAE3BC,EAAAA,YAAY,EAAE,aAFa;AAG3BC,EAAAA,cAAc,EAAE,cAHW;AAI3BC,EAAAA,WAAW,EAAE,eAJc;AAK3BC,EAAAA,wBAAwB,EAAGC,WAAD,IACvB,uBAAsBA,WAAY,EANV;AAO3BC,EAAAA,gBAAgB,EAAE,oBAPS;AAQ3BC,EAAAA,eAAe,EAAE,sBARU;AAS3BC,EAAAA,aAAa,EAAE,iBATY;AAU3BC,EAAAA,cAAc,EAAE,oBAVW;AAW3BC,EAAAA,QAAQ,EAAE,UAXiB;AAY3BC,EAAAA,IAAI,EAAE,MAZqB;AAa3BC,EAAAA,UAAU,EAAE,cAbe;AAc3BC,EAAAA,oBAAoB,EAAE,yBAdK;AAe3BC,EAAAA,KAAK,EAAE;AAfoB,CAA7B;AAiBA,eAAef,EAAf","sourcesContent":["import type { TranslationsType } from './utils'\n\nconst en: TranslationsType = {\n save: 'Save',\n selectSingle: 'Select date',\n selectMultiple: 'Select dates',\n selectRange: 'Select period',\n notAccordingToDateFormat: (inputFormat: string) =>\n `Date format must be ${inputFormat}`,\n mustBeHigherThan: 'Must be later then',\n mustBeLowerThan: 'Must be earlier then',\n mustBeBetween: 'Must be between',\n dateIsDisabled: 'Day is not allowed',\n previous: 'Previous',\n next: 'Next',\n typeInDate: 'Type in date',\n pickDateFromCalendar: 'Pick date from calendar',\n close: 'Close',\n}\nexport default en\n"]}
@@ -0,0 +1,18 @@
1
+ const enGB = {
2
+ save: 'Save',
3
+ selectSingle: 'Select date',
4
+ selectMultiple: 'Select dates',
5
+ selectRange: 'Select period',
6
+ notAccordingToDateFormat: inputFormat => `Date format must be ${inputFormat}`,
7
+ mustBeHigherThan: 'Must be later then',
8
+ mustBeLowerThan: 'Must be earlier then',
9
+ mustBeBetween: 'Must be between',
10
+ dateIsDisabled: 'Day is not allowed',
11
+ previous: 'Previous',
12
+ next: 'Next',
13
+ typeInDate: 'Type in date',
14
+ pickDateFromCalendar: 'Pick date from calendar',
15
+ close: 'Close'
16
+ };
17
+ export default enGB;
18
+ //# sourceMappingURL=enGB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["enGB.ts"],"names":["enGB","save","selectSingle","selectMultiple","selectRange","notAccordingToDateFormat","inputFormat","mustBeHigherThan","mustBeLowerThan","mustBeBetween","dateIsDisabled","previous","next","typeInDate","pickDateFromCalendar","close"],"mappings":"AAEA,MAAMA,IAAsB,GAAG;AAC7BC,EAAAA,IAAI,EAAE,MADuB;AAE7BC,EAAAA,YAAY,EAAE,aAFe;AAG7BC,EAAAA,cAAc,EAAE,cAHa;AAI7BC,EAAAA,WAAW,EAAE,eAJgB;AAK7BC,EAAAA,wBAAwB,EAAGC,WAAD,IACvB,uBAAsBA,WAAY,EANR;AAO7BC,EAAAA,gBAAgB,EAAE,oBAPW;AAQ7BC,EAAAA,eAAe,EAAE,sBARY;AAS7BC,EAAAA,aAAa,EAAE,iBATc;AAU7BC,EAAAA,cAAc,EAAE,oBAVa;AAW7BC,EAAAA,QAAQ,EAAE,UAXmB;AAY7BC,EAAAA,IAAI,EAAE,MAZuB;AAa7BC,EAAAA,UAAU,EAAE,cAbiB;AAc7BC,EAAAA,oBAAoB,EAAE,yBAdO;AAe7BC,EAAAA,KAAK,EAAE;AAfsB,CAA/B;AAiBA,eAAef,IAAf","sourcesContent":["import type { TranslationsType } from './utils'\n\nconst enGB: TranslationsType = {\n save: 'Save',\n selectSingle: 'Select date',\n selectMultiple: 'Select dates',\n selectRange: 'Select period',\n notAccordingToDateFormat: (inputFormat: string) =>\n `Date format must be ${inputFormat}`,\n mustBeHigherThan: 'Must be later then',\n mustBeLowerThan: 'Must be earlier then',\n mustBeBetween: 'Must be between',\n dateIsDisabled: 'Day is not allowed',\n previous: 'Previous',\n next: 'Next',\n typeInDate: 'Type in date',\n pickDateFromCalendar: 'Pick date from calendar',\n close: 'Close',\n}\nexport default enGB\n"]}
@@ -0,0 +1,18 @@
1
+ const nl = {
2
+ save: 'Opslaan',
3
+ selectSingle: 'Selecteer datum',
4
+ selectMultiple: 'Selecteer datums',
5
+ selectRange: 'Selecteer periode',
6
+ notAccordingToDateFormat: inputFormat => `Datumformaat moet ${inputFormat} zijn`,
7
+ mustBeHigherThan: 'Moet later dan',
8
+ mustBeLowerThan: 'Moet eerder dan',
9
+ mustBeBetween: 'Moet tussen',
10
+ dateIsDisabled: 'Deze dag mag niet',
11
+ previous: 'Vorige',
12
+ next: 'Volgende',
13
+ typeInDate: 'Typ datum',
14
+ pickDateFromCalendar: 'Kies datum van kalender',
15
+ close: 'Sluit'
16
+ };
17
+ export default nl;
18
+ //# sourceMappingURL=nl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["nl.ts"],"names":["nl","save","selectSingle","selectMultiple","selectRange","notAccordingToDateFormat","inputFormat","mustBeHigherThan","mustBeLowerThan","mustBeBetween","dateIsDisabled","previous","next","typeInDate","pickDateFromCalendar","close"],"mappings":"AAEA,MAAMA,EAAoB,GAAG;AAC3BC,EAAAA,IAAI,EAAE,SADqB;AAE3BC,EAAAA,YAAY,EAAE,iBAFa;AAG3BC,EAAAA,cAAc,EAAE,kBAHW;AAI3BC,EAAAA,WAAW,EAAE,mBAJc;AAK3BC,EAAAA,wBAAwB,EAAGC,WAAD,IACvB,qBAAoBA,WAAY,OANR;AAO3BC,EAAAA,gBAAgB,EAAE,gBAPS;AAQ3BC,EAAAA,eAAe,EAAE,iBARU;AAS3BC,EAAAA,aAAa,EAAE,aATY;AAU3BC,EAAAA,cAAc,EAAE,mBAVW;AAW3BC,EAAAA,QAAQ,EAAE,QAXiB;AAY3BC,EAAAA,IAAI,EAAE,UAZqB;AAa3BC,EAAAA,UAAU,EAAE,WAbe;AAc3BC,EAAAA,oBAAoB,EAAE,yBAdK;AAe3BC,EAAAA,KAAK,EAAE;AAfoB,CAA7B;AAiBA,eAAef,EAAf","sourcesContent":["import type { TranslationsType } from './utils'\n\nconst nl: TranslationsType = {\n save: 'Opslaan',\n selectSingle: 'Selecteer datum',\n selectMultiple: 'Selecteer datums',\n selectRange: 'Selecteer periode',\n notAccordingToDateFormat: (inputFormat: string) =>\n `Datumformaat moet ${inputFormat} zijn`,\n mustBeHigherThan: 'Moet later dan',\n mustBeLowerThan: 'Moet eerder dan',\n mustBeBetween: 'Moet tussen',\n dateIsDisabled: 'Deze dag mag niet',\n previous: 'Vorige',\n next: 'Volgende',\n typeInDate: 'Typ datum',\n pickDateFromCalendar: 'Kies datum van kalender',\n close: 'Sluit',\n}\nexport default nl\n"]}
@@ -0,0 +1,18 @@
1
+ const pl = {
2
+ save: 'Zapisz',
3
+ selectSingle: 'Wybierz datę',
4
+ selectMultiple: 'Wybierz daty',
5
+ selectRange: 'Wybierz zakres',
6
+ notAccordingToDateFormat: inputFormat => `Data musi mieć format ${inputFormat}`,
7
+ mustBeHigherThan: 'Nie wcześniej niż',
8
+ mustBeLowerThan: 'Nie później niż',
9
+ mustBeBetween: 'Pomiędzy',
10
+ dateIsDisabled: 'Niedozwolona data',
11
+ previous: 'Poprzedni',
12
+ next: 'Dalej',
13
+ typeInDate: 'Wpisz datę',
14
+ pickDateFromCalendar: 'Wybierz datę z kalendarza',
15
+ close: 'Zamknij'
16
+ };
17
+ export default pl;
18
+ //# sourceMappingURL=pl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["pl.ts"],"names":["pl","save","selectSingle","selectMultiple","selectRange","notAccordingToDateFormat","inputFormat","mustBeHigherThan","mustBeLowerThan","mustBeBetween","dateIsDisabled","previous","next","typeInDate","pickDateFromCalendar","close"],"mappings":"AAEA,MAAMA,EAAoB,GAAG;AAC3BC,EAAAA,IAAI,EAAE,QADqB;AAE3BC,EAAAA,YAAY,EAAE,cAFa;AAG3BC,EAAAA,cAAc,EAAE,cAHW;AAI3BC,EAAAA,WAAW,EAAE,gBAJc;AAK3BC,EAAAA,wBAAwB,EAAGC,WAAD,IACvB,yBAAwBA,WAAY,EANZ;AAO3BC,EAAAA,gBAAgB,EAAE,mBAPS;AAQ3BC,EAAAA,eAAe,EAAE,iBARU;AAS3BC,EAAAA,aAAa,EAAE,UATY;AAU3BC,EAAAA,cAAc,EAAE,mBAVW;AAY3BC,EAAAA,QAAQ,EAAE,WAZiB;AAa3BC,EAAAA,IAAI,EAAE,OAbqB;AAc3BC,EAAAA,UAAU,EAAE,YAde;AAe3BC,EAAAA,oBAAoB,EAAE,2BAfK;AAgB3BC,EAAAA,KAAK,EAAE;AAhBoB,CAA7B;AAkBA,eAAef,EAAf","sourcesContent":["import type { TranslationsType } from './utils'\n\nconst pl: TranslationsType = {\n save: 'Zapisz',\n selectSingle: 'Wybierz datę',\n selectMultiple: 'Wybierz daty',\n selectRange: 'Wybierz zakres',\n notAccordingToDateFormat: (inputFormat: string) =>\n `Data musi mieć format ${inputFormat}`,\n mustBeHigherThan: 'Nie wcześniej niż',\n mustBeLowerThan: 'Nie później niż',\n mustBeBetween: 'Pomiędzy',\n dateIsDisabled: 'Niedozwolona data',\n\n previous: 'Poprzedni',\n next: 'Dalej',\n typeInDate: 'Wpisz datę',\n pickDateFromCalendar: 'Wybierz datę z kalendarza',\n close: 'Zamknij',\n}\nexport default pl\n"]}
@@ -0,0 +1,22 @@
1
+ let translationsPerLocale = {};
2
+ export function getTranslation(locale, key, fallback) {
3
+ const l = locale || 'en';
4
+ const translationForLocale = translationsPerLocale[l];
5
+
6
+ if (!translationForLocale) {
7
+ console.warn(`[react-native-paper-dates] ${locale} is not registered, key: ${key}`);
8
+ return fallback || key;
9
+ }
10
+
11
+ const translation = translationsPerLocale[l][key];
12
+
13
+ if (!translationForLocale) {
14
+ console.warn(`[react-native-paper-dates] ${locale} is registered, but ${key} is missing`);
15
+ }
16
+
17
+ return translation || fallback || key;
18
+ }
19
+ export function registerTranslation(locale, translations) {
20
+ translationsPerLocale[locale] = translations;
21
+ }
22
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils.ts"],"names":["translationsPerLocale","getTranslation","locale","key","fallback","l","translationForLocale","console","warn","translation","registerTranslation","translations"],"mappings":"AAiBA,IAAIA,qBAAuD,GAAG,EAA9D;AAEA,OAAO,SAASC,cAAT,CACLC,MADK,EAELC,GAFK,EAGLC,QAHK,EAIL;AACA,QAAMC,CAAC,GAAGH,MAAM,IAAI,IAApB;AACA,QAAMI,oBAAoB,GAAGN,qBAAqB,CAACK,CAAD,CAAlD;;AACA,MAAI,CAACC,oBAAL,EAA2B;AACzBC,IAAAA,OAAO,CAACC,IAAR,CACG,8BAA6BN,MAAO,4BAA2BC,GAAI,EADtE;AAGA,WAAOC,QAAQ,IAAID,GAAnB;AACD;;AACD,QAAMM,WAAW,GAAGT,qBAAqB,CAACK,CAAD,CAArB,CAAyBF,GAAzB,CAApB;;AACA,MAAI,CAACG,oBAAL,EAA2B;AACzBC,IAAAA,OAAO,CAACC,IAAR,CACG,8BAA6BN,MAAO,uBAAsBC,GAAI,aADjE;AAGD;;AACD,SAAOM,WAAW,IAAIL,QAAf,IAA2BD,GAAlC;AACD;AAED,OAAO,SAASO,mBAAT,CACLR,MADK,EAELS,YAFK,EAGL;AACAX,EAAAA,qBAAqB,CAACE,MAAD,CAArB,GAAgCS,YAAhC;AACD","sourcesContent":["export type TranslationsType = {\n selectSingle: string\n selectMultiple: string\n selectRange: string\n save: string\n notAccordingToDateFormat: (inputFormat: string) => string\n mustBeHigherThan: string\n mustBeLowerThan: string\n mustBeBetween: string\n dateIsDisabled: string\n previous: string\n next: string\n typeInDate: string\n pickDateFromCalendar: string\n close: string\n}\n\nlet translationsPerLocale: Record<string, TranslationsType> = {}\n\nexport function getTranslation(\n locale: string | undefined,\n key: keyof TranslationsType,\n fallback?: any\n) {\n const l = locale || 'en'\n const translationForLocale = translationsPerLocale[l]\n if (!translationForLocale) {\n console.warn(\n `[react-native-paper-dates] ${locale} is not registered, key: ${key}`\n )\n return fallback || key\n }\n const translation = translationsPerLocale[l][key]\n if (!translationForLocale) {\n console.warn(\n `[react-native-paper-dates] ${locale} is registered, but ${key} is missing`\n )\n }\n return translation || fallback || key\n}\n\nexport function registerTranslation(\n locale: string,\n translations: TranslationsType\n) {\n translationsPerLocale[locale] = translations\n}\n"]}
@@ -2,11 +2,9 @@ import * as React from 'react';
2
2
  import { overlay, useTheme } from 'react-native-paper';
3
3
  import Color from 'color';
4
4
  export function useLatest(value) {
5
- const valueRef = React.useRef(value);
6
- React.useEffect(() => {
7
- valueRef.current = value;
8
- }, [value]);
9
- return valueRef;
5
+ const ref = React.useRef(value);
6
+ ref.current = value;
7
+ return ref;
10
8
  }
11
9
  export function useHeaderBackgroundColor() {
12
10
  const theme = useTheme();
@@ -29,4 +27,12 @@ export function useTextColorOnPrimary() {
29
27
  export function range(start, end) {
30
28
  return Array(end - start + 1).fill(null).map((_, i) => start + i);
31
29
  }
30
+ export function lightenBy(color, ratio) {
31
+ const lightness = color.lightness();
32
+ return color.lightness(lightness + (100 - lightness) * ratio);
33
+ }
34
+ export function darkenBy(color, ratio) {
35
+ const lightness = color.lightness();
36
+ return color.lightness(lightness - lightness * ratio);
37
+ }
32
38
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["React","overlay","useTheme","Color","useLatest","value","valueRef","useRef","useEffect","current","useHeaderBackgroundColor","theme","dark","mode","colors","surface","primary","useHeaderColorIsLight","background","isLight","useHeaderTextColor","useTextColorOnPrimary","isDark","range","start","end","Array","fill","map","_","i"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,oBAAlC;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAO,SAASC,SAAT,CAAsBC,KAAtB,EAAgC;AACrC,QAAMC,QAAQ,GAAGN,KAAK,CAACO,MAAN,CAAgBF,KAAhB,CAAjB;AACAL,EAAAA,KAAK,CAACQ,SAAN,CAAgB,MAAM;AACpBF,IAAAA,QAAQ,CAACG,OAAT,GAAmBJ,KAAnB;AACD,GAFD,EAEG,CAACA,KAAD,CAFH;AAGA,SAAOC,QAAP;AACD;AAED,OAAO,SAASI,wBAAT,GAAoC;AACzC,QAAMC,KAAK,GAAGT,QAAQ,EAAtB;AACA,SAAOS,KAAK,CAACC,IAAN,IAAcD,KAAK,CAACE,IAAN,KAAe,UAA7B,GACHZ,OAAO,CAAC,CAAD,EAAIU,KAAK,CAACG,MAAN,CAAaC,OAAjB,CADJ,GAEHJ,KAAK,CAACG,MAAN,CAAaE,OAFjB;AAGD;AAED,OAAO,SAASC,qBAAT,GAAiC;AACtC,QAAMN,KAAK,GAAGT,QAAQ,EAAtB;AACA,QAAMgB,UAAU,GACdP,KAAK,CAACC,IAAN,IAAcD,KAAK,CAACE,IAAN,KAAe,UAA7B,GACIF,KAAK,CAACG,MAAN,CAAaC,OADjB,GAEIJ,KAAK,CAACG,MAAN,CAAaE,OAHnB;AAIA,SAAOb,KAAK,CAACe,UAAD,CAAL,CAAkBC,OAAlB,EAAP;AACD;AAED,OAAO,SAASC,kBAAT,GAA8B;AACnC,QAAMD,OAAO,GAAGF,qBAAqB,EAArC;AACA,SAAO,CAACE,OAAD,GAAW,MAAX,GAAoB,MAA3B;AACD;AAED,OAAO,SAASE,qBAAT,GAAiC;AACtC,QAAMV,KAAK,GAAGT,QAAQ,EAAtB;AACA,QAAMoB,MAAM,GAAG,CAACnB,KAAK,CAACQ,KAAK,CAACG,MAAN,CAAaE,OAAd,CAAL,CAA4BG,OAA5B,EAAhB;AACA,SAAOG,MAAM,GAAG,MAAH,GAAY,MAAzB;AACD;AAED,OAAO,SAASC,KAAT,CAAeC,KAAf,EAA8BC,GAA9B,EAA2C;AAChD,SAAOC,KAAK,CAACD,GAAG,GAAGD,KAAN,GAAc,CAAf,CAAL,CACJG,IADI,CACC,IADD,EAEJC,GAFI,CAEA,CAACC,CAAD,EAAIC,CAAJ,KAAUN,KAAK,GAAGM,CAFlB,CAAP;AAGD","sourcesContent":["import * as React from 'react'\nimport { overlay, useTheme } from 'react-native-paper'\nimport Color from 'color'\n\nexport function useLatest<T>(value: T) {\n const valueRef = React.useRef<T>(value)\n React.useEffect(() => {\n valueRef.current = value\n }, [value])\n return valueRef\n}\n\nexport function useHeaderBackgroundColor() {\n const theme = useTheme()\n return theme.dark && theme.mode === 'adaptive'\n ? overlay(4, theme.colors.surface)\n : theme.colors.primary\n}\n\nexport function useHeaderColorIsLight() {\n const theme = useTheme()\n const background =\n theme.dark && theme.mode === 'adaptive'\n ? theme.colors.surface\n : theme.colors.primary\n return Color(background).isLight()\n}\n\nexport function useHeaderTextColor() {\n const isLight = useHeaderColorIsLight()\n return !isLight ? '#fff' : '#000'\n}\n\nexport function useTextColorOnPrimary() {\n const theme = useTheme()\n const isDark = !Color(theme.colors.primary).isLight()\n return isDark ? '#fff' : '#000'\n}\n\nexport function range(start: number, end: number) {\n return Array(end - start + 1)\n .fill(null)\n .map((_, i) => start + i)\n}\n"]}
1
+ {"version":3,"sources":["utils.ts"],"names":["React","overlay","useTheme","Color","useLatest","value","ref","useRef","current","useHeaderBackgroundColor","theme","dark","mode","colors","surface","primary","useHeaderColorIsLight","background","isLight","useHeaderTextColor","useTextColorOnPrimary","isDark","range","start","end","Array","fill","map","_","i","lightenBy","color","ratio","lightness","darkenBy"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,oBAAlC;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,OAAO,SAASC,SAAT,CAAsBC,KAAtB,EAAgC;AACrC,QAAMC,GAAG,GAAGN,KAAK,CAACO,MAAN,CAAaF,KAAb,CAAZ;AACAC,EAAAA,GAAG,CAACE,OAAJ,GAAcH,KAAd;AACA,SAAOC,GAAP;AACD;AAED,OAAO,SAASG,wBAAT,GAAoC;AACzC,QAAMC,KAAK,GAAGR,QAAQ,EAAtB;AACA,SAAOQ,KAAK,CAACC,IAAN,IAAcD,KAAK,CAACE,IAAN,KAAe,UAA7B,GACHX,OAAO,CAAC,CAAD,EAAIS,KAAK,CAACG,MAAN,CAAaC,OAAjB,CADJ,GAEHJ,KAAK,CAACG,MAAN,CAAaE,OAFjB;AAGD;AAED,OAAO,SAASC,qBAAT,GAAiC;AACtC,QAAMN,KAAK,GAAGR,QAAQ,EAAtB;AACA,QAAMe,UAAU,GACdP,KAAK,CAACC,IAAN,IAAcD,KAAK,CAACE,IAAN,KAAe,UAA7B,GACIF,KAAK,CAACG,MAAN,CAAaC,OADjB,GAEIJ,KAAK,CAACG,MAAN,CAAaE,OAHnB;AAIA,SAAOZ,KAAK,CAACc,UAAD,CAAL,CAAkBC,OAAlB,EAAP;AACD;AAED,OAAO,SAASC,kBAAT,GAA8B;AACnC,QAAMD,OAAO,GAAGF,qBAAqB,EAArC;AACA,SAAO,CAACE,OAAD,GAAW,MAAX,GAAoB,MAA3B;AACD;AAED,OAAO,SAASE,qBAAT,GAAiC;AACtC,QAAMV,KAAK,GAAGR,QAAQ,EAAtB;AACA,QAAMmB,MAAM,GAAG,CAAClB,KAAK,CAACO,KAAK,CAACG,MAAN,CAAaE,OAAd,CAAL,CAA4BG,OAA5B,EAAhB;AACA,SAAOG,MAAM,GAAG,MAAH,GAAY,MAAzB;AACD;AAED,OAAO,SAASC,KAAT,CAAeC,KAAf,EAA8BC,GAA9B,EAA2C;AAChD,SAAOC,KAAK,CAACD,GAAG,GAAGD,KAAN,GAAc,CAAf,CAAL,CACJG,IADI,CACC,IADD,EAEJC,GAFI,CAEA,CAACC,CAAD,EAAIC,CAAJ,KAAUN,KAAK,GAAGM,CAFlB,CAAP;AAGD;AAED,OAAO,SAASC,SAAT,CAAmBC,KAAnB,EAAiCC,KAAjC,EAAgD;AACrD,QAAMC,SAAS,GAAGF,KAAK,CAACE,SAAN,EAAlB;AACA,SAAOF,KAAK,CAACE,SAAN,CAAgBA,SAAS,GAAG,CAAC,MAAMA,SAAP,IAAoBD,KAAhD,CAAP;AACD;AAED,OAAO,SAASE,QAAT,CAAkBH,KAAlB,EAAgCC,KAAhC,EAA+C;AACpD,QAAMC,SAAS,GAAGF,KAAK,CAACE,SAAN,EAAlB;AACA,SAAOF,KAAK,CAACE,SAAN,CAAgBA,SAAS,GAAGA,SAAS,GAAGD,KAAxC,CAAP;AACD","sourcesContent":["import * as React from 'react'\nimport { overlay, useTheme } from 'react-native-paper'\nimport Color from 'color'\n\nexport function useLatest<T>(value: T) {\n const ref = React.useRef(value)\n ref.current = value\n return ref\n}\n\nexport function useHeaderBackgroundColor() {\n const theme = useTheme()\n return theme.dark && theme.mode === 'adaptive'\n ? overlay(4, theme.colors.surface)\n : theme.colors.primary\n}\n\nexport function useHeaderColorIsLight() {\n const theme = useTheme()\n const background =\n theme.dark && theme.mode === 'adaptive'\n ? theme.colors.surface\n : theme.colors.primary\n return Color(background).isLight()\n}\n\nexport function useHeaderTextColor() {\n const isLight = useHeaderColorIsLight()\n return !isLight ? '#fff' : '#000'\n}\n\nexport function useTextColorOnPrimary() {\n const theme = useTheme()\n const isDark = !Color(theme.colors.primary).isLight()\n return isDark ? '#fff' : '#000'\n}\n\nexport function range(start: number, end: number) {\n return Array(end - start + 1)\n .fill(null)\n .map((_, i) => start + i)\n}\n\nexport function lightenBy(color: Color, ratio: number) {\n const lightness = color.lightness()\n return color.lightness(lightness + (100 - lightness) * ratio)\n}\n\nexport function darkenBy(color: Color, ratio: number) {\n const lightness = color.lightness()\n return color.lightness(lightness - lightness * ratio)\n}\n"]}
File without changes
@@ -5,15 +5,17 @@ export declare type ScrollModeType = 'horizontal' | 'vertical';
5
5
  export declare type ValidRangeType = {
6
6
  startDate?: Date;
7
7
  endDate?: Date;
8
+ disabledDates?: Date[];
8
9
  };
9
10
  export declare type BaseCalendarProps = {
10
- locale?: undefined | string;
11
+ locale: string;
11
12
  disableWeekDays?: DisableWeekDaysType;
12
13
  validRange?: ValidRangeType;
13
14
  date?: CalendarDate;
14
15
  dates?: CalendarDates;
15
16
  startDate?: CalendarDate;
16
17
  endDate?: CalendarDate;
18
+ dateMode?: 'start' | 'end';
17
19
  };
18
20
  export declare type CalendarDate = Date | undefined;
19
21
  export declare type CalendarDates = Date[] | undefined | null;
@@ -23,7 +25,7 @@ export declare type RangeChange = (params: {
23
25
  }) => any;
24
26
  export declare type SingleChange = (params: {
25
27
  date: CalendarDate;
26
- }) => any;
28
+ }) => void;
27
29
  export declare type MultiChange = (params: {
28
30
  dates: CalendarDates;
29
31
  datePressed: Date;
@@ -31,7 +33,7 @@ export declare type MultiChange = (params: {
31
33
  }) => any;
32
34
  export declare type MultiConfirm = (params: {
33
35
  dates: Date[];
34
- }) => any;
36
+ }) => void;
35
37
  export interface CalendarSingleProps extends BaseCalendarProps {
36
38
  mode: 'single';
37
39
  date: CalendarDate;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { ModeType, ValidRangeType } from './Calendar';
3
- import { LocalState } from './DatePickerModalContent';
2
+ import type { ModeType, ValidRangeType } from './Calendar';
3
+ import type { LocalState } from './DatePickerModalContent';
4
4
  declare function CalendarEdit({ mode, state, label, startLabel, endLabel, collapsed, onChange, validRange, locale, }: {
5
5
  mode: ModeType;
6
6
  label?: string;
@@ -10,7 +10,7 @@ declare function CalendarEdit({ mode, state, label, startLabel, endLabel, collap
10
10
  collapsed: boolean;
11
11
  onChange: (s: LocalState) => any;
12
12
  validRange: ValidRangeType | undefined;
13
- locale?: undefined | string;
13
+ locale: string;
14
14
  }): JSX.Element;
15
15
  declare const _default: React.MemoExoticComponent<typeof CalendarEdit>;
16
16
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { DisableWeekDaysType } from './dateUtils';
2
+ import type { DisableWeekDaysType } from './dateUtils';
3
3
  export declare function getCalendarHeaderHeight(scrollMode: 'horizontal' | 'vertical'): number;
4
4
  declare function CalendarHeader({ scrollMode, onPrev, onNext, disableWeekDays, locale, }: {
5
5
  locale: undefined | string;
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import type { ValidRangeType } from './Calendar';
3
+ declare const _default: React.ForwardRefExoticComponent<Pick<Omit<(Pick<import("react-native-paper/lib/typescript/components/TextInput/TextInput").TextInputProps, "allowFontScaling" | "autoCapitalize" | "autoCorrect" | "autoFocus" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "keyboardType" | "maxLength" | "multiline" | "onBlur" | "onChange" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onPressIn" | "onPressOut" | "onFocus" | "onSelectionChange" | "onSubmitEditing" | "onTextInput" | "onScroll" | "onKeyPress" | "placeholder" | "placeholderTextColor" | "returnKeyType" | "secureTextEntry" | "selectTextOnFocus" | "selection" | "selectionColor" | "style" | "textAlign" | "testID" | "inputAccessoryViewID" | "value" | "maxFontSizeMultiplier" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "selectionState" | "spellCheck" | "textContentType" | "scrollEnabled" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "numberOfLines" | "returnKeyLabel" | "textBreakStrategy" | "underlineColorAndroid" | "textAlignVertical" | "showSoftInputOnFocus" | "ref" | "label" | "key" | "render" | "left" | "right" | "disabled" | "mode" | "error" | "autoCompleteType" | "underlineColor" | "activeUnderlineColor" | "outlineColor" | "activeOutlineColor" | "dense"> & {
4
+ theme?: import("@callstack/react-theme-provider").$DeepPartial<ReactNativePaper.Theme> | undefined;
5
+ }) | (Pick<import("react-native-paper/lib/typescript/components/TextInput/TextInput").TextInputProps, "allowFontScaling" | "autoCapitalize" | "autoCorrect" | "autoFocus" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "keyboardType" | "maxLength" | "multiline" | "onBlur" | "onChange" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onPressIn" | "onPressOut" | "onFocus" | "onSelectionChange" | "onSubmitEditing" | "onTextInput" | "onScroll" | "onKeyPress" | "placeholder" | "placeholderTextColor" | "returnKeyType" | "secureTextEntry" | "selectTextOnFocus" | "selection" | "selectionColor" | "style" | "textAlign" | "testID" | "inputAccessoryViewID" | "value" | "maxFontSizeMultiplier" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "selectionState" | "spellCheck" | "textContentType" | "scrollEnabled" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "numberOfLines" | "returnKeyLabel" | "textBreakStrategy" | "underlineColorAndroid" | "textAlignVertical" | "showSoftInputOnFocus" | "ref" | "label" | "key" | "render" | "left" | "right" | "disabled" | "mode" | "error" | "autoCompleteType" | "underlineColor" | "activeUnderlineColor" | "outlineColor" | "activeOutlineColor" | "dense"> & {
6
+ theme?: import("@callstack/react-theme-provider").$DeepPartial<ReactNativePaper.Theme> | undefined;
7
+ } & {
8
+ children?: React.ReactNode;
9
+ }), "onChange" | "value"> & {
10
+ inputMode: "end" | "start";
11
+ locale: string;
12
+ onChange: (date: Date | undefined) => void;
13
+ value: Date | undefined;
14
+ validRange?: ValidRangeType | undefined;
15
+ withModal?: boolean | undefined;
16
+ withDateFormatInLabel?: boolean | undefined;
17
+ }, "allowFontScaling" | "autoCapitalize" | "autoCorrect" | "autoFocus" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "defaultValue" | "editable" | "keyboardType" | "maxLength" | "multiline" | "onBlur" | "onChange" | "onChangeText" | "onContentSizeChange" | "onEndEditing" | "onPressIn" | "onPressOut" | "onFocus" | "onSelectionChange" | "onSubmitEditing" | "onTextInput" | "onScroll" | "onKeyPress" | "placeholder" | "placeholderTextColor" | "returnKeyType" | "secureTextEntry" | "selectTextOnFocus" | "selection" | "selectionColor" | "style" | "textAlign" | "testID" | "inputAccessoryViewID" | "value" | "maxFontSizeMultiplier" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "clearButtonMode" | "clearTextOnFocus" | "dataDetectorTypes" | "enablesReturnKeyAutomatically" | "keyboardAppearance" | "passwordRules" | "rejectResponderTermination" | "selectionState" | "spellCheck" | "textContentType" | "scrollEnabled" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "numberOfLines" | "returnKeyLabel" | "textBreakStrategy" | "underlineColorAndroid" | "textAlignVertical" | "showSoftInputOnFocus" | "label" | "key" | "render" | "left" | "right" | "disabled" | "mode" | "error" | "autoCompleteType" | "underlineColor" | "activeUnderlineColor" | "outlineColor" | "activeOutlineColor" | "dense" | "theme" | "locale" | "validRange" | "inputMode" | "withModal" | "withDateFormatInLabel"> & React.RefAttributes<unknown>>;
18
+ export default _default;
@@ -9,7 +9,7 @@ export declare type LocalState = {
9
9
  };
10
10
  interface DatePickerModalContentBaseProps {
11
11
  inputFormat?: string;
12
- locale?: undefined | string;
12
+ locale: string;
13
13
  onDismiss: () => any;
14
14
  disableSafeTop?: boolean;
15
15
  }
@@ -25,6 +25,7 @@ export interface DatePickerModalContentSingleProps extends HeaderPickProps, Base
25
25
  date?: CalendarDate;
26
26
  onChange?: SingleChange;
27
27
  onConfirm: SingleChange;
28
+ dateMode?: 'start' | 'end';
28
29
  }
29
30
  export interface DatePickerModalContentMultiProps extends HeaderPickProps, BaseCalendarProps, DatePickerModalContentBaseProps {
30
31
  mode: 'multiple';
@@ -1,5 +1,5 @@
1
- import { ModeType } from './Calendar';
2
- import { LocalState } from './DatePickerModalContent';
1
+ import type { ModeType } from './Calendar';
2
+ import type { LocalState } from './DatePickerModalContent';
3
3
  export interface HeaderPickProps {
4
4
  moreLabel?: string;
5
5
  label?: string;
@@ -14,9 +14,9 @@ export interface HeaderContentProps extends HeaderPickProps {
14
14
  mode: ModeType;
15
15
  collapsed: boolean;
16
16
  onToggle: () => any;
17
- locale: undefined | string;
17
+ locale: string | undefined;
18
18
  }
19
- export default function DatePickerModalHeader(props: HeaderContentProps): JSX.Element;
19
+ export default function DatePickerModalContentHeader(props: HeaderContentProps): JSX.Element;
20
20
  export declare function HeaderContentSingle({ state, emptyLabel, color, locale, }: HeaderContentProps & {
21
21
  color: string;
22
22
  }): JSX.Element;
@@ -3,5 +3,6 @@ export interface DatePickerModalHeaderProps {
3
3
  saveLabel?: string;
4
4
  onDismiss: () => void;
5
5
  onSave: () => void;
6
+ locale: string | undefined;
6
7
  }
7
8
  export default function DatePickerModalHeader(props: DatePickerModalHeaderProps): JSX.Element;
@@ -0,0 +1,3 @@
1
+ export default function DateRangeInput({ locale }: {
2
+ locale: string;
3
+ }): JSX.Element;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- import { MutableRefObject } from 'react';
1
+ import type { MutableRefObject } from 'react';
2
2
  export declare type RenderProps = {
3
3
  index: number;
4
4
  onNext: () => any;
File without changes