react-native-paper-dates 0.8.6 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +30 -1
  2. package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
  3. package/lib/commonjs/Date/AutoSizer.js.map +1 -1
  4. package/lib/commonjs/Date/Calendar.js +6 -2
  5. package/lib/commonjs/Date/Calendar.js.map +1 -1
  6. package/lib/commonjs/Date/CalendarEdit.js +4 -4
  7. package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
  8. package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
  9. package/lib/commonjs/Date/DatePickerInput.js +33 -87
  10. package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
  11. package/lib/commonjs/Date/DatePickerInput.shared.js +6 -0
  12. package/lib/commonjs/Date/DatePickerInput.shared.js.map +1 -0
  13. package/lib/commonjs/Date/DatePickerInputWithoutModal.js +117 -0
  14. package/lib/commonjs/Date/DatePickerInputWithoutModal.js.map +1 -0
  15. package/lib/commonjs/Date/DatePickerModal.js +1 -1
  16. package/lib/commonjs/Date/DatePickerModal.js.map +1 -1
  17. package/lib/commonjs/Date/DatePickerModalContent.js +14 -8
  18. package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
  19. package/lib/commonjs/Date/DatePickerModalContentHeader.js +5 -3
  20. package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
  21. package/lib/commonjs/Date/DatePickerModalHeader.js +5 -5
  22. package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
  23. package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
  24. package/lib/commonjs/Date/DateRangeInput.js +3 -2
  25. package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
  26. package/lib/commonjs/Date/Day.js.map +1 -1
  27. package/lib/commonjs/Date/DayName.js.map +1 -1
  28. package/lib/commonjs/Date/DayNames.js.map +1 -1
  29. package/lib/commonjs/Date/DayRange.js.map +1 -1
  30. package/lib/commonjs/Date/Month.js.map +1 -1
  31. package/lib/commonjs/Date/Swiper.js.map +1 -1
  32. package/lib/commonjs/Date/Swiper.native.js +2 -1
  33. package/lib/commonjs/Date/Swiper.native.js.map +1 -1
  34. package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
  35. package/lib/commonjs/Date/Week.js.map +1 -1
  36. package/lib/commonjs/Date/YearPicker.js +5 -5
  37. package/lib/commonjs/Date/YearPicker.js.map +1 -1
  38. package/lib/commonjs/Date/dateUtils.js.map +1 -1
  39. package/lib/commonjs/Date/dateUtils.test.js.map +1 -1
  40. package/lib/commonjs/Date/inputUtils.js +1 -1
  41. package/lib/commonjs/Date/inputUtils.js.map +1 -1
  42. package/lib/commonjs/TextInputMask.js +1 -1
  43. package/lib/commonjs/TextInputMask.js.map +1 -1
  44. package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
  45. package/lib/commonjs/Time/AnalogClock.js +6 -4
  46. package/lib/commonjs/Time/AnalogClock.js.map +1 -1
  47. package/lib/commonjs/Time/AnalogClockHours.js +1 -1
  48. package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
  49. package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
  50. package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
  51. package/lib/commonjs/Time/TimeInput.js +1 -1
  52. package/lib/commonjs/Time/TimeInput.js.map +1 -1
  53. package/lib/commonjs/Time/TimeInputs.js +2 -2
  54. package/lib/commonjs/Time/TimeInputs.js.map +1 -1
  55. package/lib/commonjs/Time/TimePicker.js.map +1 -1
  56. package/lib/commonjs/Time/TimePickerModal.js +7 -2
  57. package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
  58. package/lib/commonjs/Time/timeUtils.js +7 -1
  59. package/lib/commonjs/Time/timeUtils.js.map +1 -1
  60. package/lib/commonjs/index.js.map +1 -1
  61. package/lib/commonjs/translations/ar.js +25 -0
  62. package/lib/commonjs/translations/ar.js.map +1 -0
  63. package/lib/commonjs/translations/de.js.map +1 -1
  64. package/lib/commonjs/translations/en.js.map +1 -1
  65. package/lib/commonjs/translations/enGB.js.map +1 -1
  66. package/lib/commonjs/translations/fr.js +25 -0
  67. package/lib/commonjs/translations/fr.js.map +1 -0
  68. package/lib/commonjs/translations/ko.js +25 -0
  69. package/lib/commonjs/translations/ko.js.map +1 -0
  70. package/lib/commonjs/translations/nl.js.map +1 -1
  71. package/lib/commonjs/translations/pl.js.map +1 -1
  72. package/lib/commonjs/translations/pt.js.map +1 -1
  73. package/lib/commonjs/translations/utils.js +1 -1
  74. package/lib/commonjs/translations/utils.js.map +1 -1
  75. package/lib/commonjs/utils.js.map +1 -1
  76. package/lib/module/Date/AnimatedCrossView.js.map +1 -1
  77. package/lib/module/Date/AutoSizer.js.map +1 -1
  78. package/lib/module/Date/Calendar.js +6 -2
  79. package/lib/module/Date/Calendar.js.map +1 -1
  80. package/lib/module/Date/CalendarEdit.js +4 -4
  81. package/lib/module/Date/CalendarEdit.js.map +1 -1
  82. package/lib/module/Date/CalendarHeader.js.map +1 -1
  83. package/lib/module/Date/DatePickerInput.js +34 -87
  84. package/lib/module/Date/DatePickerInput.js.map +1 -1
  85. package/lib/module/Date/DatePickerInput.shared.js +2 -0
  86. package/lib/module/Date/DatePickerInput.shared.js.map +1 -0
  87. package/lib/module/Date/DatePickerInputWithoutModal.js +97 -0
  88. package/lib/module/Date/DatePickerInputWithoutModal.js.map +1 -0
  89. package/lib/module/Date/DatePickerModal.js +1 -1
  90. package/lib/module/Date/DatePickerModal.js.map +1 -1
  91. package/lib/module/Date/DatePickerModalContent.js +14 -8
  92. package/lib/module/Date/DatePickerModalContent.js.map +1 -1
  93. package/lib/module/Date/DatePickerModalContentHeader.js +5 -3
  94. package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
  95. package/lib/module/Date/DatePickerModalHeader.js +5 -5
  96. package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
  97. package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
  98. package/lib/module/Date/DateRangeInput.js +3 -2
  99. package/lib/module/Date/DateRangeInput.js.map +1 -1
  100. package/lib/module/Date/Day.js.map +1 -1
  101. package/lib/module/Date/DayName.js.map +1 -1
  102. package/lib/module/Date/DayNames.js.map +1 -1
  103. package/lib/module/Date/DayRange.js.map +1 -1
  104. package/lib/module/Date/Month.js.map +1 -1
  105. package/lib/module/Date/Swiper.js.map +1 -1
  106. package/lib/module/Date/Swiper.native.js +2 -1
  107. package/lib/module/Date/Swiper.native.js.map +1 -1
  108. package/lib/module/Date/SwiperUtils.js.map +1 -1
  109. package/lib/module/Date/Week.js.map +1 -1
  110. package/lib/module/Date/YearPicker.js +5 -5
  111. package/lib/module/Date/YearPicker.js.map +1 -1
  112. package/lib/module/Date/dateUtils.js.map +1 -1
  113. package/lib/module/Date/dateUtils.test.js.map +1 -1
  114. package/lib/module/Date/inputUtils.js +1 -1
  115. package/lib/module/Date/inputUtils.js.map +1 -1
  116. package/lib/module/TextInputMask.js +1 -1
  117. package/lib/module/TextInputMask.js.map +1 -1
  118. package/lib/module/Time/AmPmSwitcher.js.map +1 -1
  119. package/lib/module/Time/AnalogClock.js +7 -5
  120. package/lib/module/Time/AnalogClock.js.map +1 -1
  121. package/lib/module/Time/AnalogClockHours.js +1 -1
  122. package/lib/module/Time/AnalogClockHours.js.map +1 -1
  123. package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
  124. package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
  125. package/lib/module/Time/TimeInput.js +1 -1
  126. package/lib/module/Time/TimeInput.js.map +1 -1
  127. package/lib/module/Time/TimeInputs.js +2 -2
  128. package/lib/module/Time/TimeInputs.js.map +1 -1
  129. package/lib/module/Time/TimePicker.js.map +1 -1
  130. package/lib/module/Time/TimePickerModal.js +8 -3
  131. package/lib/module/Time/TimePickerModal.js.map +1 -1
  132. package/lib/module/Time/timeUtils.js +3 -0
  133. package/lib/module/Time/timeUtils.js.map +1 -1
  134. package/lib/module/index.js.map +1 -1
  135. package/lib/module/translations/ar.js +18 -0
  136. package/lib/module/translations/ar.js.map +1 -0
  137. package/lib/module/translations/de.js.map +1 -1
  138. package/lib/module/translations/en.js.map +1 -1
  139. package/lib/module/translations/enGB.js.map +1 -1
  140. package/lib/module/translations/fr.js +18 -0
  141. package/lib/module/translations/fr.js.map +1 -0
  142. package/lib/module/translations/ko.js +18 -0
  143. package/lib/module/translations/ko.js.map +1 -0
  144. package/lib/module/translations/nl.js.map +1 -1
  145. package/lib/module/translations/pl.js.map +1 -1
  146. package/lib/module/translations/pt.js.map +1 -1
  147. package/lib/module/translations/utils.js +1 -1
  148. package/lib/module/translations/utils.js.map +1 -1
  149. package/lib/module/utils.js.map +1 -1
  150. package/lib/typescript/Date/Calendar.d.ts +2 -0
  151. package/lib/typescript/Date/DatePickerInput.d.ts +2 -16
  152. package/lib/typescript/Date/DatePickerInput.shared.d.ts +13 -0
  153. package/lib/typescript/Date/DatePickerInputWithoutModal.d.ts +51 -0
  154. package/lib/typescript/Date/DatePickerModalContent.d.ts +1 -0
  155. package/lib/typescript/Date/DatePickerModalContentHeader.d.ts +3 -0
  156. package/lib/typescript/Date/DatePickerModalHeader.d.ts +2 -0
  157. package/lib/typescript/Date/DateRangeInput.d.ts +2 -1
  158. package/lib/typescript/Date/YearPicker.d.ts +3 -1
  159. package/lib/typescript/TextInputMask.d.ts +31 -6
  160. package/lib/typescript/Time/TimePickerModal.d.ts +3 -1
  161. package/lib/typescript/Time/timeUtils.d.ts +1 -0
  162. package/lib/typescript/translations/ar.d.ts +3 -0
  163. package/lib/typescript/translations/fr.d.ts +3 -0
  164. package/lib/typescript/translations/ko.d.ts +3 -0
  165. package/package.json +26 -25
  166. package/src/Date/Calendar.tsx +7 -1
  167. package/src/Date/CalendarEdit.tsx +4 -4
  168. package/src/Date/DatePickerInput.shared.tsx +17 -0
  169. package/src/Date/DatePickerInput.tsx +32 -102
  170. package/src/Date/DatePickerInputWithoutModal.tsx +110 -0
  171. package/src/Date/DatePickerModalContent.tsx +10 -1
  172. package/src/Date/DatePickerModalContentHeader.tsx +13 -2
  173. package/src/Date/DatePickerModalHeader.tsx +5 -2
  174. package/src/Date/DateRangeInput.tsx +8 -2
  175. package/src/Date/Swiper.native.tsx +1 -0
  176. package/src/Date/YearPicker.tsx +5 -4
  177. package/src/Date/inputUtils.ts +1 -1
  178. package/src/Time/AnalogClock.tsx +12 -18
  179. package/src/Time/AnalogClockHours.tsx +1 -1
  180. package/src/Time/TimeInputs.tsx +2 -2
  181. package/src/Time/TimePickerModal.tsx +9 -2
  182. package/src/Time/timeUtils.ts +10 -0
  183. package/src/translations/ar.ts +21 -0
  184. package/src/translations/fr.ts +23 -0
  185. package/src/translations/ko.ts +21 -0
  186. package/src/translations/utils.ts +1 -1
package/README.md CHANGED
@@ -57,24 +57,32 @@ npm install react-native-paper-dates --save
57
57
 
58
58
  ## Import some localized strings
59
59
  Ideally you do this somewhere in your `index.js` before `react-native-paper-dates` is used.
60
- Currently we have en/nl/de/pl/pt translations but it's really easy to add one extra since it are only some labels and error messages.
60
+ Currently we have en/nl/de/pl/pt/ar/ko/fr translations but it's really easy to add one extra since it are only some labels and error messages.
61
61
 
62
62
  ```tsx
63
63
  // e.g in your index.js
64
64
  import {
65
65
  // en,
66
+ // fr,
66
67
  // nl,
67
68
  // de,
68
69
  // pl,
69
70
  // pt,
71
+ // ar,
72
+ // ko
73
+ // fr
70
74
  enGB,
71
75
  registerTranslation,
72
76
  } from 'react-native-paper-dates'
73
77
  // registerTranslation('en', en)
78
+ // registerTranslation('fr', fr)
74
79
  // registerTranslation('nl', nl)
75
80
  // registerTranslation('pl', pl)
76
81
  // registerTranslation('pt', pt)
77
82
  // registerTranslation('de', de)
83
+ // registerTranslation('ar', ar)
84
+ // registerTranslation('ko', ko)
85
+ // registerTranslation('fr', fr)
78
86
  registerTranslation('en-GB', enGB)
79
87
  ```
80
88
 
@@ -148,9 +156,15 @@ export default function ReadMeExampleSingle() {
148
156
  // }}
149
157
  // onChange={} // same props as onConfirm but triggered without confirmed by user
150
158
  // saveLabel="Save" // optional
159
+ // saveLabelDisabled={true} // optional, default is false
151
160
  // uppercase={false} // optional, default is true
152
161
  // label="Select date" // optional
153
162
  // animationType="slide" // optional, default is 'slide' on ios/android and 'none' on web
163
+ // startYear={2000} // optional, default is 1800
164
+ // endYear={2100} // optional, default is 2200
165
+ // closeIcon="close" // optional, default is "close"
166
+ // editIcon="pencil" // optional, default is "pencil"
167
+ // calendarIcon="calendar" // optional, default is "calendar"
154
168
  />
155
169
  </>
156
170
  );
@@ -204,11 +218,17 @@ export default function ReadMeExampleRange() {
204
218
  // }}
205
219
  // onChange={} // same props as onConfirm but triggered without confirmed by user
206
220
  // saveLabel="Save" // optional
221
+ // saveLabelDisabled={true} // optional, default is false
207
222
  // uppercase={false} // optional, default is true
208
223
  // label="Select period" // optional
209
224
  // startLabel="From" // optional
210
225
  // endLabel="To" // optional
211
226
  // animationType="slide" // optional, default is slide on ios/android and none on web
227
+ // startYear={2000} // optional, default is 1800
228
+ // endYear={2100} // optional, default is 2200
229
+ // closeIcon="close" // optional, default is "close"
230
+ // editIcon="pencil" // optional, default is "pencil"
231
+ // calendarIcon="calendar" // optional, default is "calendar"
212
232
  />
213
233
  </>
214
234
  );
@@ -261,8 +281,12 @@ export default function ReadMeExampleMultiple() {
261
281
  // uppercase={false} // optional, default is true
262
282
  // label="Select period" // optional
263
283
  // startLabel="From" // optional
284
+ // saveLabelDisabled={true} // optional, default is false
264
285
  // endLabel="To" // optional
265
286
  // animationType="slide" // optional, default is slide on ios/android and none on web
287
+ // startYear={2000} // optional, default is 1800
288
+ // endYear={2100} // optional, default is 2200
289
+ // closeIcon="close" // optional, default is "close"
266
290
  />
267
291
  </>
268
292
  );
@@ -283,6 +307,7 @@ export default function ReadMeExampleDatePickerInput() {
283
307
  onChange={(d) => setInputDate(d)}
284
308
  inputMode="start"
285
309
  // mode="outlined" (see react-native-paper docs)
310
+ // calendarIcon="calendar" // optional, default is "calendar"
286
311
  // other react native TextInput props
287
312
  />
288
313
  </>
@@ -326,6 +351,8 @@ export default function TimePickerPage() {
326
351
  confirmLabel="Ok" // optional, default: 'Ok'
327
352
  animationType="fade" // optional, default is 'none'
328
353
  locale="en" // optional, default is automically detected by your system
354
+ // keyboardIcon="keyboard-outline" // optional, default is "keyboard-outline"
355
+ // clockIcon="clock-outline" // optional, default is "clock-outline"
329
356
  />
330
357
  <Button onPress={()=> setVisible(true)}>
331
358
  Pick time
@@ -381,6 +408,8 @@ or npm
381
408
  npm install react-native-localize @formatjs/intl-pluralrules @formatjs/intl-getcanonicallocales @formatjs/intl-listformat @formatjs/intl-displaynames @formatjs/intl-locale @formatjs/intl-datetimeformat @formatjs/intl-numberformat @formatjs/intl-relativetimeformat --save
382
409
  ```
383
410
 
411
+ If using Expo, omit `react-native-localize` and use `expo install expo-localization` instead. Read more [here](https://docs.expo.dev/versions/latest/sdk/localization/#installation).
412
+
384
413
  In your app starting entrypoint e.g. `./index.js` or even better use a `index.android.js` to prevent importing on iOS/web put the following code. (don't forget to import the languages you want to support, in the example only english language is supported)
385
414
 
386
415
  ```javascript
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedCrossView.tsx"],"names":["AnimatedCrossView","collapsed","calendar","calendarEdit","theme","calendarOpacity","React","useRef","Animated","Value","useEffect","timing","current","toValue","duration","useNativeDriver","start","styles","root","opacity","transform","scaleY","interpolate","inputRange","outputRange","scaleX","backgroundColor","colors","surface","scale","StyleSheet","create","flex","position","left","right"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { useTheme } from 'react-native-paper'\n\nexport default function AnimatedCrossView({\n // visible,\n collapsed,\n calendar,\n calendarEdit,\n}: {\n calendar: any\n calendarEdit: any\n // visible: boolean\n collapsed: boolean\n}) {\n const theme = useTheme()\n const calendarOpacity = React.useRef<Animated.Value>(\n new Animated.Value(collapsed ? 1 : 0)\n )\n React.useEffect(() => {\n // if (visible) {\n Animated.timing(calendarOpacity.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true,\n }).start()\n // }\n }, [collapsed])\n\n return (\n <View style={styles.root}>\n <Animated.View\n pointerEvents={collapsed ? 'auto' : 'none'}\n style={[\n styles.calendar,\n {\n opacity: calendarOpacity.current,\n transform: [\n {\n scaleY: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.85, 1],\n }),\n },\n {\n scaleX: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1],\n }),\n },\n ],\n },\n ]}\n >\n {calendar}\n </Animated.View>\n <Animated.View\n pointerEvents={collapsed ? 'none' : 'auto'}\n style={[\n styles.calendarEdit,\n {\n backgroundColor: theme.colors.surface,\n opacity: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n transform: [\n {\n scale: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95],\n }),\n },\n ],\n },\n ]}\n >\n {calendarEdit}\n </Animated.View>\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { flex: 1 },\n calendarEdit: {\n position: 'absolute',\n\n left: 0,\n right: 0,\n },\n calendar: {\n flex: 1,\n },\n})\n"]}
1
+ {"version":3,"names":["AnimatedCrossView","collapsed","calendar","calendarEdit","theme","useTheme","calendarOpacity","React","useRef","Animated","Value","useEffect","timing","current","toValue","duration","useNativeDriver","start","styles","root","opacity","transform","scaleY","interpolate","inputRange","outputRange","scaleX","backgroundColor","colors","surface","scale","StyleSheet","create","flex","position","left","right"],"sources":["AnimatedCrossView.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { useTheme } from 'react-native-paper'\n\nexport default function AnimatedCrossView({\n // visible,\n collapsed,\n calendar,\n calendarEdit,\n}: {\n calendar: any\n calendarEdit: any\n // visible: boolean\n collapsed: boolean\n}) {\n const theme = useTheme()\n const calendarOpacity = React.useRef<Animated.Value>(\n new Animated.Value(collapsed ? 1 : 0)\n )\n React.useEffect(() => {\n // if (visible) {\n Animated.timing(calendarOpacity.current, {\n toValue: collapsed ? 1 : 0,\n duration: 250,\n useNativeDriver: true,\n }).start()\n // }\n }, [collapsed])\n\n return (\n <View style={styles.root}>\n <Animated.View\n pointerEvents={collapsed ? 'auto' : 'none'}\n style={[\n styles.calendar,\n {\n opacity: calendarOpacity.current,\n transform: [\n {\n scaleY: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.85, 1],\n }),\n },\n {\n scaleX: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0.95, 1],\n }),\n },\n ],\n },\n ]}\n >\n {calendar}\n </Animated.View>\n <Animated.View\n pointerEvents={collapsed ? 'none' : 'auto'}\n style={[\n styles.calendarEdit,\n {\n backgroundColor: theme.colors.surface,\n opacity: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n transform: [\n {\n scale: calendarOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0.95],\n }),\n },\n ],\n },\n ]}\n >\n {calendarEdit}\n </Animated.View>\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { flex: 1 },\n calendarEdit: {\n position: 'absolute',\n\n left: 0,\n right: 0,\n },\n calendar: {\n flex: 1,\n },\n})\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,iBAAT,OAUZ;EAAA,IAVuC;IACxC;IACAC,SAFwC;IAGxCC,QAHwC;IAIxCC;EAJwC,CAUvC;EACD,MAAMC,KAAK,GAAG,IAAAC,0BAAA,GAAd;EACA,MAAMC,eAAe,GAAGC,KAAK,CAACC,MAAN,CACtB,IAAIC,qBAAA,CAASC,KAAb,CAAmBT,SAAS,GAAG,CAAH,GAAO,CAAnC,CADsB,CAAxB;EAGAM,KAAK,CAACI,SAAN,CAAgB,MAAM;IACpB;IACAF,qBAAA,CAASG,MAAT,CAAgBN,eAAe,CAACO,OAAhC,EAAyC;MACvCC,OAAO,EAAEb,SAAS,GAAG,CAAH,GAAO,CADc;MAEvCc,QAAQ,EAAE,GAF6B;MAGvCC,eAAe,EAAE;IAHsB,CAAzC,EAIGC,KAJH,GAFoB,CAOpB;;EACD,CARD,EAQG,CAAChB,SAAD,CARH;EAUA,oBACE,oBAAC,iBAAD;IAAM,KAAK,EAAEiB,MAAM,CAACC;EAApB,gBACE,oBAAC,qBAAD,CAAU,IAAV;IACE,aAAa,EAAElB,SAAS,GAAG,MAAH,GAAY,MADtC;IAEE,KAAK,EAAE,CACLiB,MAAM,CAAChB,QADF,EAEL;MACEkB,OAAO,EAAEd,eAAe,CAACO,OAD3B;MAEEQ,SAAS,EAAE,CACT;QACEC,MAAM,EAAEhB,eAAe,CAACO,OAAhB,CAAwBU,WAAxB,CAAoC;UAC1CC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD8B;UAE1CC,WAAW,EAAE,CAAC,IAAD,EAAO,CAAP;QAF6B,CAApC;MADV,CADS,EAOT;QACEC,MAAM,EAAEpB,eAAe,CAACO,OAAhB,CAAwBU,WAAxB,CAAoC;UAC1CC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD8B;UAE1CC,WAAW,EAAE,CAAC,IAAD,EAAO,CAAP;QAF6B,CAApC;MADV,CAPS;IAFb,CAFK;EAFT,GAuBGvB,QAvBH,CADF,eA0BE,oBAAC,qBAAD,CAAU,IAAV;IACE,aAAa,EAAED,SAAS,GAAG,MAAH,GAAY,MADtC;IAEE,KAAK,EAAE,CACLiB,MAAM,CAACf,YADF,EAEL;MACEwB,eAAe,EAAEvB,KAAK,CAACwB,MAAN,CAAaC,OADhC;MAEET,OAAO,EAAEd,eAAe,CAACO,OAAhB,CAAwBU,WAAxB,CAAoC;QAC3CC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD+B;QAE3CC,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ;MAF8B,CAApC,CAFX;MAMEJ,SAAS,EAAE,CACT;QACES,KAAK,EAAExB,eAAe,CAACO,OAAhB,CAAwBU,WAAxB,CAAoC;UACzCC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAD6B;UAEzCC,WAAW,EAAE,CAAC,CAAD,EAAI,IAAJ;QAF4B,CAApC;MADT,CADS;IANb,CAFK;EAFT,GAqBGtB,YArBH,CA1BF,CADF;AAoDD;;AAED,MAAMe,MAAM,GAAGa,uBAAA,CAAWC,MAAX,CAAkB;EAC/Bb,IAAI,EAAE;IAAEc,IAAI,EAAE;EAAR,CADyB;EAE/B9B,YAAY,EAAE;IACZ+B,QAAQ,EAAE,UADE;IAGZC,IAAI,EAAE,CAHM;IAIZC,KAAK,EAAE;EAJK,CAFiB;EAQ/BlC,QAAQ,EAAE;IACR+B,IAAI,EAAE;EADE;AARqB,CAAlB,CAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoSizer.tsx"],"names":["AutoSizer","children","layout","setLayout","React","useState","onLayout","useCallback","event","nl","nativeEvent","width","height","styles","autoSizer","StyleSheet","create","flex","overflow"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAOe,SAASA,SAAT,OAIZ;AAAA,MAJ+B;AAChCC,IAAAA;AADgC,GAI/B;AACD,QAAM,CAACC,MAAD,EAASC,SAAT,IAAsBC,KAAK,CAACC,QAAN,CAAsC,IAAtC,CAA5B;AACA,QAAMC,QAAQ,GAAGF,KAAK,CAACG,WAAN,CACdC,KAAD,IAA8B;AAC5B,UAAMC,EAAE,GAAGD,KAAK,CAACE,WAAN,CAAkBR,MAA7B,CAD4B,CAG5B;;AACA,QAAI,CAACA,MAAD,IAAWA,MAAM,CAACS,KAAP,KAAiBF,EAAE,CAACE,KAA/B,IAAwCT,MAAM,CAACU,MAAP,KAAkBH,EAAE,CAACG,MAAjE,EAAyE;AACvET,MAAAA,SAAS,CAAC;AAAEQ,QAAAA,KAAK,EAAEF,EAAE,CAACE,KAAZ;AAAmBC,QAAAA,MAAM,EAAEH,EAAE,CAACG;AAA9B,OAAD,CAAT;AACD;AACF,GARc,EASf,CAACV,MAAD,EAASC,SAAT,CATe,CAAjB;AAWA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACU,MAAM,CAACC,SAAR,EAAmBZ,MAAM,IAAIA,MAA7B,CAAb;AAAmD,IAAA,QAAQ,EAAEI;AAA7D,KACGJ,MAAM,GAAGD,QAAQ,CAACC,MAAD,CAAX,GAAsB,IAD/B,CADF;AAKD;;AAED,MAAMW,MAAM,GAAGE,wBAAWC,MAAX,CAAkB;AAC/BF,EAAAA,SAAS,EAAE;AACTG,IAAAA,IAAI,EAAE,CADG;AAETC,IAAAA,QAAQ,EAAE;AAFD;AADoB,CAAlB,CAAf","sourcesContent":["import * as React from 'react'\nimport { LayoutChangeEvent, StyleSheet, View } from 'react-native'\n\ntype WidthAndHeight = {\n width: number\n height: number\n}\n\nexport default function AutoSizer({\n children,\n}: {\n children: ({ width, height }: WidthAndHeight) => any\n}) {\n const [layout, setLayout] = React.useState<WidthAndHeight | null>(null)\n const onLayout = React.useCallback(\n (event: LayoutChangeEvent) => {\n const nl = event.nativeEvent.layout\n\n // https://github.com/necolas/react-native-web/issues/1704\n if (!layout || layout.width !== nl.width || layout.height !== nl.height) {\n setLayout({ width: nl.width, height: nl.height })\n }\n },\n [layout, setLayout]\n )\n return (\n <View style={[styles.autoSizer, layout && layout]} onLayout={onLayout}>\n {layout ? children(layout) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n autoSizer: {\n flex: 1,\n overflow: 'hidden',\n },\n})\n"]}
1
+ {"version":3,"names":["AutoSizer","children","layout","setLayout","React","useState","onLayout","useCallback","event","nl","nativeEvent","width","height","styles","autoSizer","StyleSheet","create","flex","overflow"],"sources":["AutoSizer.tsx"],"sourcesContent":["import * as React from 'react'\nimport { LayoutChangeEvent, StyleSheet, View } from 'react-native'\n\ntype WidthAndHeight = {\n width: number\n height: number\n}\n\nexport default function AutoSizer({\n children,\n}: {\n children: ({ width, height }: WidthAndHeight) => any\n}) {\n const [layout, setLayout] = React.useState<WidthAndHeight | null>(null)\n const onLayout = React.useCallback(\n (event: LayoutChangeEvent) => {\n const nl = event.nativeEvent.layout\n\n // https://github.com/necolas/react-native-web/issues/1704\n if (!layout || layout.width !== nl.width || layout.height !== nl.height) {\n setLayout({ width: nl.width, height: nl.height })\n }\n },\n [layout, setLayout]\n )\n return (\n <View style={[styles.autoSizer, layout && layout]} onLayout={onLayout}>\n {layout ? children(layout) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n autoSizer: {\n flex: 1,\n overflow: 'hidden',\n },\n})\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAOe,SAASA,SAAT,OAIZ;EAAA,IAJ+B;IAChCC;EADgC,CAI/B;EACD,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBC,KAAK,CAACC,QAAN,CAAsC,IAAtC,CAA5B;EACA,MAAMC,QAAQ,GAAGF,KAAK,CAACG,WAAN,CACdC,KAAD,IAA8B;IAC5B,MAAMC,EAAE,GAAGD,KAAK,CAACE,WAAN,CAAkBR,MAA7B,CAD4B,CAG5B;;IACA,IAAI,CAACA,MAAD,IAAWA,MAAM,CAACS,KAAP,KAAiBF,EAAE,CAACE,KAA/B,IAAwCT,MAAM,CAACU,MAAP,KAAkBH,EAAE,CAACG,MAAjE,EAAyE;MACvET,SAAS,CAAC;QAAEQ,KAAK,EAAEF,EAAE,CAACE,KAAZ;QAAmBC,MAAM,EAAEH,EAAE,CAACG;MAA9B,CAAD,CAAT;IACD;EACF,CARc,EASf,CAACV,MAAD,EAASC,SAAT,CATe,CAAjB;EAWA,oBACE,oBAAC,iBAAD;IAAM,KAAK,EAAE,CAACU,MAAM,CAACC,SAAR,EAAmBZ,MAAM,IAAIA,MAA7B,CAAb;IAAmD,QAAQ,EAAEI;EAA7D,GACGJ,MAAM,GAAGD,QAAQ,CAACC,MAAD,CAAX,GAAsB,IAD/B,CADF;AAKD;;AAED,MAAMW,MAAM,GAAGE,uBAAA,CAAWC,MAAX,CAAkB;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE,CADG;IAETC,QAAQ,EAAE;EAFD;AADoB,CAAlB,CAAf"}
@@ -40,6 +40,8 @@ function Calendar(props) {
40
40
  endDate,
41
41
  date,
42
42
  disableWeekDays,
43
+ startYear,
44
+ endYear,
43
45
  dates,
44
46
  validRange,
45
47
  dateMode
@@ -76,7 +78,7 @@ function Calendar(props) {
76
78
  const ed = endDateRef.current;
77
79
  let isStart = true;
78
80
 
79
- if (sd && !ed && (0, _dateUtils.dateToUnix)(d) > (0, _dateUtils.dateToUnix)(sd)) {
81
+ if (sd && !ed && (0, _dateUtils.dateToUnix)(d) >= (0, _dateUtils.dateToUnix)(sd)) {
80
82
  isStart = false;
81
83
  }
82
84
 
@@ -144,7 +146,9 @@ function Calendar(props) {
144
146
  }), scrollMode === 'horizontal' ? /*#__PURE__*/React.createElement(_YearPicker.default, {
145
147
  selectedYear: selectedYear,
146
148
  selectingYear: selectingYear,
147
- onPressYear: onPressYear
149
+ onPressYear: onPressYear,
150
+ startYear: startYear || 1800,
151
+ endYear: endYear || 2200
148
152
  }) : null);
149
153
  }
150
154
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Calendar.tsx"],"names":["Calendar","props","locale","mode","onChange","startDate","endDate","date","disableWeekDays","dates","validRange","dateMode","theme","selectColor","dark","colors","primary","hex","scrollMode","selectedYear","setSelectedYear","React","useState","undefined","selectingYear","setSelectingYear","onPressYear","year","prev","startDateRef","endDateRef","onChangeRef","datesRef","onPressDate","d","current","sd","ed","isStart","exists","some","newDates","filter","sort","a","b","getTime","datePressed","change","firstDate","styles","root","index","roundness","onPrev","onNext","StyleSheet","create","flex","viewPager","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport Swiper from './Swiper'\nimport Month from './Month'\nimport {\n areDatesOnSameDay,\n dateToUnix,\n DisableWeekDaysType,\n getEndOfDay,\n getInitialIndex,\n} from './dateUtils'\n\nimport CalendarHeader from './CalendarHeader'\nimport { useCallback, useMemo } from 'react'\nimport YearPicker from './YearPicker'\nimport Color from 'color'\nimport { useTheme } from 'react-native-paper'\nimport { useLatest, lightenBy, darkenBy } from '../utils'\n\nexport type ModeType = 'single' | 'range' | 'multiple'\n\nexport type ScrollModeType = 'horizontal' | 'vertical'\n\nexport type ValidRangeType = {\n startDate?: Date\n endDate?: Date\n disabledDates?: Date[]\n}\n\nexport type BaseCalendarProps = {\n locale: string\n disableWeekDays?: DisableWeekDaysType\n validRange?: ValidRangeType\n\n // here they are optional but in final implemenation they are required\n date?: CalendarDate\n dates?: CalendarDates\n startDate?: CalendarDate\n endDate?: CalendarDate\n dateMode?: 'start' | 'end'\n}\n\nexport type CalendarDate = Date | undefined\nexport type CalendarDates = Date[] | undefined | null\n\nexport type RangeChange = (params: {\n startDate: CalendarDate\n endDate: CalendarDate\n}) => any\n\nexport type SingleChange = (params: { date: CalendarDate }) => void\n\nexport type MultiChange = (params: {\n dates: CalendarDates\n datePressed: Date\n change: 'added' | 'removed'\n}) => any\n\nexport type MultiConfirm = (params: { dates: Date[] }) => void\n\nexport interface CalendarSingleProps extends BaseCalendarProps {\n mode: 'single'\n date: CalendarDate\n onChange: SingleChange\n}\n\nexport interface CalendarRangeProps extends BaseCalendarProps {\n mode: 'range'\n startDate: CalendarDate\n endDate: CalendarDate\n onChange: RangeChange\n}\n\nexport interface CalendarMultiProps extends BaseCalendarProps {\n mode: 'multiple'\n dates: CalendarDates\n onChange: MultiChange\n}\n\nfunction Calendar(\n props: CalendarSingleProps | CalendarRangeProps | CalendarMultiProps\n) {\n const {\n locale,\n mode,\n onChange,\n startDate,\n endDate,\n date,\n disableWeekDays,\n dates,\n validRange,\n dateMode,\n } = props\n\n const theme = useTheme()\n\n const selectColor = useMemo<string>(() => {\n if (theme.dark) {\n return darkenBy(Color(theme.colors.primary), 0.9).hex()\n }\n return lightenBy(Color(theme.colors.primary), 0.9).hex()\n }, [theme])\n\n const scrollMode =\n mode === 'range' || mode === 'multiple' ? 'vertical' : 'horizontal'\n\n const [selectedYear, setSelectedYear] = React.useState<number | undefined>(\n undefined\n )\n const [selectingYear, setSelectingYear] = React.useState<boolean>(false)\n const onPressYear = useCallback(\n (year: number) => {\n setSelectedYear(year)\n setSelectingYear((prev) => !prev)\n },\n [setSelectingYear]\n )\n\n // prevent re-rendering all months when something changed we only need the\n // latest version of the props and we don't want the useCallback to change\n const startDateRef = useLatest<CalendarDate>(startDate)\n const endDateRef = useLatest<CalendarDate>(endDate)\n const onChangeRef = useLatest<RangeChange | SingleChange | MultiChange>(\n onChange\n )\n const datesRef = useLatest<CalendarDates>(dates)\n\n const onPressDate = useCallback(\n (d: Date) => {\n if (mode === 'single') {\n ;(onChangeRef.current as SingleChange)({\n date: dateMode === 'start' ? d : getEndOfDay(d),\n })\n } else if (mode === 'range') {\n const sd = startDateRef.current\n const ed = endDateRef.current\n let isStart: boolean = true\n if (sd && !ed && dateToUnix(d) > dateToUnix(sd!)) {\n isStart = false\n }\n ;(onChangeRef.current as RangeChange)({\n startDate: isStart ? d : sd,\n endDate: !isStart ? getEndOfDay(d) : undefined,\n })\n } else if (mode === 'multiple') {\n datesRef.current = datesRef.current || []\n const exists = datesRef.current.some((ed) => areDatesOnSameDay(ed, d))\n\n const newDates = exists\n ? datesRef.current.filter((ed) => !areDatesOnSameDay(ed, d))\n : [...datesRef.current, d]\n\n newDates.sort((a, b) => a.getTime() - b.getTime())\n ;(onChangeRef.current as MultiChange)({\n dates: newDates,\n datePressed: d,\n change: exists ? 'removed' : 'added',\n })\n }\n },\n [mode, dateMode, onChangeRef, startDateRef, endDateRef, datesRef]\n )\n\n const firstDate = startDate || date || dates?.[0]\n\n return (\n <View style={styles.root}>\n <Swiper\n initialIndex={getInitialIndex(firstDate)}\n selectedYear={selectedYear}\n scrollMode={scrollMode}\n renderItem={({ index }) => (\n <Month\n locale={locale}\n mode={mode}\n key={index}\n validRange={validRange}\n index={index}\n startDate={startDate}\n endDate={endDate}\n date={date}\n dates={dates}\n onPressYear={onPressYear}\n selectingYear={selectingYear}\n onPressDate={onPressDate}\n scrollMode={scrollMode}\n primaryColor={theme.colors.primary}\n selectColor={selectColor}\n roundness={theme.roundness}\n disableWeekDays={disableWeekDays}\n />\n )}\n renderHeader={({ onPrev, onNext }) => (\n <CalendarHeader\n locale={locale}\n onPrev={onPrev}\n onNext={onNext}\n scrollMode={scrollMode}\n disableWeekDays={disableWeekDays}\n />\n )}\n />\n {scrollMode === 'horizontal' ? (\n <YearPicker\n selectedYear={selectedYear}\n selectingYear={selectingYear}\n onPressYear={onPressYear}\n />\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { flex: 1 },\n viewPager: { flex: 1 },\n})\n\nexport default React.memo(Calendar)\n"]}
1
+ {"version":3,"names":["Calendar","props","locale","mode","onChange","startDate","endDate","date","disableWeekDays","startYear","endYear","dates","validRange","dateMode","theme","useTheme","selectColor","useMemo","dark","darkenBy","Color","colors","primary","hex","lightenBy","scrollMode","selectedYear","setSelectedYear","React","useState","undefined","selectingYear","setSelectingYear","onPressYear","useCallback","year","prev","startDateRef","useLatest","endDateRef","onChangeRef","datesRef","onPressDate","d","current","getEndOfDay","sd","ed","isStart","dateToUnix","exists","some","areDatesOnSameDay","newDates","filter","sort","a","b","getTime","datePressed","change","firstDate","styles","root","getInitialIndex","index","roundness","onPrev","onNext","StyleSheet","create","flex","viewPager","memo"],"sources":["Calendar.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport Swiper from './Swiper'\nimport Month from './Month'\nimport {\n areDatesOnSameDay,\n dateToUnix,\n DisableWeekDaysType,\n getEndOfDay,\n getInitialIndex,\n} from './dateUtils'\n\nimport CalendarHeader from './CalendarHeader'\nimport { useCallback, useMemo } from 'react'\nimport YearPicker from './YearPicker'\nimport Color from 'color'\nimport { useTheme } from 'react-native-paper'\nimport { useLatest, lightenBy, darkenBy } from '../utils'\n\nexport type ModeType = 'single' | 'range' | 'multiple'\n\nexport type ScrollModeType = 'horizontal' | 'vertical'\n\nexport type ValidRangeType = {\n startDate?: Date\n endDate?: Date\n disabledDates?: Date[]\n}\n\nexport type BaseCalendarProps = {\n locale: string\n disableWeekDays?: DisableWeekDaysType\n validRange?: ValidRangeType\n startYear?: number\n endYear?: number\n\n // here they are optional but in final implemenation they are required\n date?: CalendarDate\n dates?: CalendarDates\n startDate?: CalendarDate\n endDate?: CalendarDate\n dateMode?: 'start' | 'end'\n}\n\nexport type CalendarDate = Date | undefined\nexport type CalendarDates = Date[] | undefined | null\n\nexport type RangeChange = (params: {\n startDate: CalendarDate\n endDate: CalendarDate\n}) => any\n\nexport type SingleChange = (params: { date: CalendarDate }) => void\n\nexport type MultiChange = (params: {\n dates: CalendarDates\n datePressed: Date\n change: 'added' | 'removed'\n}) => any\n\nexport type MultiConfirm = (params: { dates: Date[] }) => void\n\nexport interface CalendarSingleProps extends BaseCalendarProps {\n mode: 'single'\n date: CalendarDate\n onChange: SingleChange\n}\n\nexport interface CalendarRangeProps extends BaseCalendarProps {\n mode: 'range'\n startDate: CalendarDate\n endDate: CalendarDate\n onChange: RangeChange\n}\n\nexport interface CalendarMultiProps extends BaseCalendarProps {\n mode: 'multiple'\n dates: CalendarDates\n onChange: MultiChange\n}\n\nfunction Calendar(\n props: CalendarSingleProps | CalendarRangeProps | CalendarMultiProps\n) {\n const {\n locale,\n mode,\n onChange,\n startDate,\n endDate,\n date,\n disableWeekDays,\n startYear,\n endYear,\n dates,\n validRange,\n dateMode,\n } = props\n\n const theme = useTheme()\n\n const selectColor = useMemo<string>(() => {\n if (theme.dark) {\n return darkenBy(Color(theme.colors.primary), 0.9).hex()\n }\n return lightenBy(Color(theme.colors.primary), 0.9).hex()\n }, [theme])\n\n const scrollMode =\n mode === 'range' || mode === 'multiple' ? 'vertical' : 'horizontal'\n\n const [selectedYear, setSelectedYear] = React.useState<number | undefined>(\n undefined\n )\n const [selectingYear, setSelectingYear] = React.useState<boolean>(false)\n const onPressYear = useCallback(\n (year: number) => {\n setSelectedYear(year)\n setSelectingYear((prev) => !prev)\n },\n [setSelectingYear]\n )\n\n // prevent re-rendering all months when something changed we only need the\n // latest version of the props and we don't want the useCallback to change\n const startDateRef = useLatest<CalendarDate>(startDate)\n const endDateRef = useLatest<CalendarDate>(endDate)\n const onChangeRef = useLatest<RangeChange | SingleChange | MultiChange>(\n onChange\n )\n const datesRef = useLatest<CalendarDates>(dates)\n\n const onPressDate = useCallback(\n (d: Date) => {\n if (mode === 'single') {\n ;(onChangeRef.current as SingleChange)({\n date: dateMode === 'start' ? d : getEndOfDay(d),\n })\n } else if (mode === 'range') {\n const sd = startDateRef.current\n const ed = endDateRef.current\n let isStart: boolean = true\n if (sd && !ed && dateToUnix(d) >= dateToUnix(sd!)) {\n isStart = false\n }\n ;(onChangeRef.current as RangeChange)({\n startDate: isStart ? d : sd,\n endDate: !isStart ? getEndOfDay(d) : undefined,\n })\n } else if (mode === 'multiple') {\n datesRef.current = datesRef.current || []\n const exists = datesRef.current.some((ed) => areDatesOnSameDay(ed, d))\n\n const newDates = exists\n ? datesRef.current.filter((ed) => !areDatesOnSameDay(ed, d))\n : [...datesRef.current, d]\n\n newDates.sort((a, b) => a.getTime() - b.getTime())\n ;(onChangeRef.current as MultiChange)({\n dates: newDates,\n datePressed: d,\n change: exists ? 'removed' : 'added',\n })\n }\n },\n [mode, dateMode, onChangeRef, startDateRef, endDateRef, datesRef]\n )\n\n const firstDate = startDate || date || dates?.[0]\n\n return (\n <View style={styles.root}>\n <Swiper\n initialIndex={getInitialIndex(firstDate)}\n selectedYear={selectedYear}\n scrollMode={scrollMode}\n renderItem={({ index }) => (\n <Month\n locale={locale}\n mode={mode}\n key={index}\n validRange={validRange}\n index={index}\n startDate={startDate}\n endDate={endDate}\n date={date}\n dates={dates}\n onPressYear={onPressYear}\n selectingYear={selectingYear}\n onPressDate={onPressDate}\n scrollMode={scrollMode}\n primaryColor={theme.colors.primary}\n selectColor={selectColor}\n roundness={theme.roundness}\n disableWeekDays={disableWeekDays}\n />\n )}\n renderHeader={({ onPrev, onNext }) => (\n <CalendarHeader\n locale={locale}\n onPrev={onPrev}\n onNext={onNext}\n scrollMode={scrollMode}\n disableWeekDays={disableWeekDays}\n />\n )}\n />\n {scrollMode === 'horizontal' ? (\n <YearPicker\n selectedYear={selectedYear}\n selectingYear={selectingYear}\n onPressYear={onPressYear}\n startYear={startYear || 1800}\n endYear={endYear || 2200}\n />\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { flex: 1 },\n viewPager: { flex: 1 },\n})\n\nexport default React.memo(Calendar)\n"],"mappings":"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"}
@@ -9,7 +9,7 @@ var React = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
- var _DatePickerInput = _interopRequireDefault(require("./DatePickerInput"));
12
+ var _DatePickerInputWithoutModal = _interopRequireDefault(require("./DatePickerInputWithoutModal"));
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
 
@@ -59,7 +59,7 @@ function CalendarEdit(_ref) {
59
59
  }, []);
60
60
  return /*#__PURE__*/React.createElement(_reactNative.View, {
61
61
  style: styles.root
62
- }, mode === 'single' ? /*#__PURE__*/React.createElement(_DatePickerInput.default, {
62
+ }, mode === 'single' ? /*#__PURE__*/React.createElement(_DatePickerInputWithoutModal.default, {
63
63
  inputMode: "start",
64
64
  ref: dateInput,
65
65
  label: label,
@@ -74,7 +74,7 @@ function CalendarEdit(_ref) {
74
74
  autoComplete: 'off'
75
75
  }) : null, mode === 'range' ? /*#__PURE__*/React.createElement(_reactNative.View, {
76
76
  style: styles.inner
77
- }, /*#__PURE__*/React.createElement(_DatePickerInput.default, {
77
+ }, /*#__PURE__*/React.createElement(_DatePickerInputWithoutModal.default, {
78
78
  inputMode: "start",
79
79
  ref: startInput,
80
80
  label: startLabel,
@@ -90,7 +90,7 @@ function CalendarEdit(_ref) {
90
90
  autoComplete: 'off'
91
91
  }), /*#__PURE__*/React.createElement(_reactNative.View, {
92
92
  style: styles.separator
93
- }), /*#__PURE__*/React.createElement(_DatePickerInput.default, {
93
+ }), /*#__PURE__*/React.createElement(_DatePickerInputWithoutModal.default, {
94
94
  inputMode: "end",
95
95
  ref: endInput,
96
96
  label: endLabel,
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarEdit.tsx"],"names":["CalendarEdit","mode","state","label","startLabel","endLabel","collapsed","onChange","validRange","locale","dateInput","React","useRef","startInput","endInput","useEffect","Keyboard","dismiss","inputsToFocus","current","filter","n","inputsToBlur","forEach","ip","blur","focus","onSubmitStartInput","useCallback","onSubmitEndInput","onSubmitInput","styles","root","date","inner","startDate","separator","endDate","StyleSheet","create","padding","flexDirection","inputContainer","flex","input","width","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n View,\n StyleSheet,\n TextInput as TextInputNative,\n Keyboard,\n} from 'react-native'\n\nimport type { ModeType, ValidRangeType } from './Calendar'\nimport type { LocalState } from './DatePickerModalContent'\n\nimport DatePickerInput from './DatePickerInput'\n\nfunction CalendarEdit({\n mode,\n state,\n label = '',\n startLabel = 'Start',\n endLabel = 'End',\n collapsed,\n onChange,\n validRange,\n locale,\n}: {\n mode: ModeType\n label?: string\n startLabel?: string\n endLabel?: string\n state: LocalState\n collapsed: boolean\n onChange: (s: LocalState) => any\n validRange: ValidRangeType | undefined\n locale: string\n}) {\n const dateInput = React.useRef<TextInputNative | null>(null)\n const startInput = React.useRef<TextInputNative | null>(null)\n const endInput = React.useRef<TextInputNative | null>(null)\n\n // when switching views focus, or un-focus text input\n React.useEffect(() => {\n // hide open keyboard\n if (collapsed) {\n Keyboard.dismiss()\n }\n\n const inputsToFocus = [dateInput.current, startInput.current].filter(\n (n) => n\n ) as TextInputNative[]\n\n const inputsToBlur = [\n dateInput.current,\n startInput.current,\n endInput.current,\n ].filter((n) => n) as TextInputNative[]\n\n if (collapsed) {\n inputsToBlur.forEach((ip) => ip.blur())\n } else {\n inputsToFocus.forEach((ip) => ip.focus())\n }\n }, [mode, startInput, endInput, dateInput, collapsed])\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 range\n }, [])\n\n const onSubmitInput = React.useCallback(() => {\n // TODO: close modal and persist range\n }, [])\n\n return (\n <View style={styles.root}>\n {mode === 'single' ? (\n <DatePickerInput\n inputMode=\"start\"\n ref={dateInput}\n label={label}\n value={state.date}\n onChange={(date) => onChange({ ...state, date })}\n onSubmitEditing={onSubmitInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoComplete={'off'}\n />\n ) : null}\n {mode === 'range' ? (\n <View style={styles.inner}>\n <DatePickerInput\n inputMode=\"start\"\n ref={startInput}\n label={startLabel}\n value={state.startDate}\n onChange={(startDate) => onChange({ ...state, startDate })}\n returnKeyType={'next'}\n onSubmitEditing={onSubmitStartInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoComplete={'off'}\n />\n <View style={styles.separator} />\n <DatePickerInput\n inputMode=\"end\"\n ref={endInput}\n label={endLabel}\n value={state.endDate}\n onChange={(endDate) => onChange({ ...state, endDate })}\n onSubmitEditing={onSubmitEndInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoComplete=\"off\"\n />\n </View>\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { padding: 12 },\n inner: { flexDirection: 'row' },\n inputContainer: { flex: 1 },\n input: { flex: 1 },\n separator: { width: 12 },\n})\n\nexport default React.memo(CalendarEdit)\n"]}
1
+ {"version":3,"names":["CalendarEdit","mode","state","label","startLabel","endLabel","collapsed","onChange","validRange","locale","dateInput","React","useRef","startInput","endInput","useEffect","Keyboard","dismiss","inputsToFocus","current","filter","n","inputsToBlur","forEach","ip","blur","focus","onSubmitStartInput","useCallback","onSubmitEndInput","onSubmitInput","styles","root","date","inner","startDate","separator","endDate","StyleSheet","create","padding","flexDirection","inputContainer","flex","input","width","memo"],"sources":["CalendarEdit.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n View,\n StyleSheet,\n TextInput as TextInputNative,\n Keyboard,\n} from 'react-native'\n\nimport type { ModeType, ValidRangeType } from './Calendar'\nimport type { LocalState } from './DatePickerModalContent'\n\nimport DatePickerInputWithoutModal from './DatePickerInputWithoutModal'\n\nfunction CalendarEdit({\n mode,\n state,\n label = '',\n startLabel = 'Start',\n endLabel = 'End',\n collapsed,\n onChange,\n validRange,\n locale,\n}: {\n mode: ModeType\n label?: string\n startLabel?: string\n endLabel?: string\n state: LocalState\n collapsed: boolean\n onChange: (s: LocalState) => any\n validRange: ValidRangeType | undefined\n locale: string\n}) {\n const dateInput = React.useRef<TextInputNative | null>(null)\n const startInput = React.useRef<TextInputNative | null>(null)\n const endInput = React.useRef<TextInputNative | null>(null)\n\n // when switching views focus, or un-focus text input\n React.useEffect(() => {\n // hide open keyboard\n if (collapsed) {\n Keyboard.dismiss()\n }\n\n const inputsToFocus = [dateInput.current, startInput.current].filter(\n (n) => n\n ) as TextInputNative[]\n\n const inputsToBlur = [\n dateInput.current,\n startInput.current,\n endInput.current,\n ].filter((n) => n) as TextInputNative[]\n\n if (collapsed) {\n inputsToBlur.forEach((ip) => ip.blur())\n } else {\n inputsToFocus.forEach((ip) => ip.focus())\n }\n }, [mode, startInput, endInput, dateInput, collapsed])\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 range\n }, [])\n\n const onSubmitInput = React.useCallback(() => {\n // TODO: close modal and persist range\n }, [])\n\n return (\n <View style={styles.root}>\n {mode === 'single' ? (\n <DatePickerInputWithoutModal\n inputMode=\"start\"\n ref={dateInput}\n label={label}\n value={state.date}\n onChange={(date) => onChange({ ...state, date })}\n onSubmitEditing={onSubmitInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoComplete={'off'}\n />\n ) : null}\n {mode === 'range' ? (\n <View style={styles.inner}>\n <DatePickerInputWithoutModal\n inputMode=\"start\"\n ref={startInput}\n label={startLabel}\n value={state.startDate}\n onChange={(startDate) => onChange({ ...state, startDate })}\n returnKeyType={'next'}\n onSubmitEditing={onSubmitStartInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoComplete={'off'}\n />\n <View style={styles.separator} />\n <DatePickerInputWithoutModal\n inputMode=\"end\"\n ref={endInput}\n label={endLabel}\n value={state.endDate}\n onChange={(endDate) => onChange({ ...state, endDate })}\n onSubmitEditing={onSubmitEndInput}\n validRange={validRange}\n locale={locale}\n withModal={false}\n autoComplete=\"off\"\n />\n </View>\n ) : null}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n root: { padding: 12 },\n inner: { flexDirection: 'row' },\n inputContainer: { flex: 1 },\n input: { flex: 1 },\n separator: { width: 12 },\n})\n\nexport default React.memo(CalendarEdit)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarHeader.tsx"],"names":["buttonContainerHeight","buttonContainerMarginTop","buttonContainerMarginBottom","getCalendarHeaderHeight","scrollMode","dayNamesHeight","CalendarHeader","onPrev","onNext","disableWeekDays","locale","theme","isHorizontal","styles","datePickerHeader","buttonContainer","spacer","buttonWrapper","backgroundColor","colors","surface","StyleSheet","create","position","top","right","left","zIndex","height","marginTop","marginBottom","flexDirection","alignItems","flex","React","memo"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,MAAMA,qBAAqB,GAAG,EAA9B;AACA,MAAMC,wBAAwB,GAAG,CAAjC;AACA,MAAMC,2BAA2B,GAAG,CAApC;;AAEO,SAASC,uBAAT,CAAiCC,UAAjC,EAAwE;AAC7E,MAAIA,UAAU,KAAK,YAAnB,EAAiC;AAC/B,WACEJ,qBAAqB,GACrBC,wBADA,GAEAC,2BAFA,GAGAG,wBAJF;AAMD;;AACD,SAAOA,wBAAP;AACD;;AAED,SAASC,cAAT,OAYG;AAAA,MAZqB;AACtBF,IAAAA,UADsB;AAEtBG,IAAAA,MAFsB;AAGtBC,IAAAA,MAHsB;AAItBC,IAAAA,eAJsB;AAKtBC,IAAAA;AALsB,GAYrB;AACD,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAMC,YAAY,GAAGR,UAAU,KAAK,YAApC;AACA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAES,MAAM,CAACC,gBAApB;AAAsC,IAAA,aAAa,EAAE;AAArD,KACGF,YAAY,gBACX,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEC,MAAM,CAACE,eAApB;AAAqC,IAAA,aAAa,EAAE;AAApD,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEF,MAAM,CAACG,MAApB;AAA4B,IAAA,aAAa,EAAE;AAA3C,IADF,eAEE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLH,MAAM,CAACI,aADF,EAEL;AAAEC,MAAAA,eAAe,EAAEP,KAAK,CAACQ,MAAN,CAAaC;AAAhC,KAFK;AADT,kBAME,oBAAC,4BAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,kBAAkB,EAAE,2BAAeV,MAAf,EAAuB,UAAvB,CAFtB;AAGE,IAAA,OAAO,EAAEH;AAHX,IANF,CAFF,eAeE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLM,MAAM,CAACI,aADF,EAEL;AAAEC,MAAAA,eAAe,EAAEP,KAAK,CAACQ,MAAN,CAAaC;AAAhC,KAFK;AADT,kBAME,oBAAC,4BAAD;AACE,IAAA,IAAI,EAAC,eADP;AAEE,IAAA,kBAAkB,EAAE,2BAAeV,MAAf,EAAuB,MAAvB,CAFtB;AAGE,IAAA,OAAO,EAAEF;AAHX,IANF,CAfF,CADW,GA6BT,IA9BN,eA+BE,oBAAC,iBAAD;AAAU,IAAA,eAAe,EAAEC,eAA3B;AAA4C,IAAA,MAAM,EAAEC;AAApD,IA/BF,CADF;AAmCD;;AAED,MAAMG,MAAM,GAAGQ,wBAAWC,MAAX,CAAkB;AAC/BR,EAAAA,gBAAgB,EAAE;AAChBS,IAAAA,QAAQ,EAAE,UADM;AAEhBC,IAAAA,GAAG,EAAE,CAFW;AAGhBC,IAAAA,KAAK,EAAE,CAHS;AAIhBC,IAAAA,IAAI,EAAE,CAJU;AAKhBC,IAAAA,MAAM,EAAE;AALQ,GADa;AAQ/BZ,EAAAA,eAAe,EAAE;AACfa,IAAAA,MAAM,EAAE5B,qBADO;AAEf6B,IAAAA,SAAS,EAAE5B,wBAFI;AAGf6B,IAAAA,YAAY,EAAE5B,2BAHC;AAIf6B,IAAAA,aAAa,EAAE,KAJA;AAKfC,IAAAA,UAAU,EAAE;AALG,GARc;AAe/Bf,EAAAA,aAAa,EAAE,EAfgB;AAgB/BD,EAAAA,MAAM,EAAE;AAAEiB,IAAAA,IAAI,EAAE;AAAR;AAhBuB,CAAlB,CAAf;;4BAmBeC,KAAK,CAACC,IAAN,CAAW7B,cAAX,C","sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, useTheme } from 'react-native-paper'\nimport DayNames, { dayNamesHeight } from './DayNames'\nimport type { DisableWeekDaysType } from './dateUtils'\nimport { getTranslation } from '../translations/utils'\n\nconst buttonContainerHeight = 56\nconst buttonContainerMarginTop = 4\nconst buttonContainerMarginBottom = 8\n\nexport function getCalendarHeaderHeight(scrollMode: 'horizontal' | 'vertical') {\n if (scrollMode === 'horizontal') {\n return (\n buttonContainerHeight +\n buttonContainerMarginTop +\n buttonContainerMarginBottom +\n dayNamesHeight\n )\n }\n return dayNamesHeight\n}\n\nfunction CalendarHeader({\n scrollMode,\n onPrev,\n onNext,\n disableWeekDays,\n locale,\n}: {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n onPrev: () => any\n onNext: () => any\n disableWeekDays?: DisableWeekDaysType\n}) {\n const theme = useTheme()\n const isHorizontal = scrollMode === 'horizontal'\n return (\n <View style={styles.datePickerHeader} pointerEvents={'box-none'}>\n {isHorizontal ? (\n <View style={styles.buttonContainer} pointerEvents={'box-none'}>\n <View style={styles.spacer} pointerEvents={'box-none'} />\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton\n icon=\"chevron-left\"\n accessibilityLabel={getTranslation(locale, 'previous')}\n onPress={onPrev}\n />\n </View>\n\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton\n icon=\"chevron-right\"\n accessibilityLabel={getTranslation(locale, 'next')}\n onPress={onNext}\n />\n </View>\n </View>\n ) : null}\n <DayNames disableWeekDays={disableWeekDays} locale={locale} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n datePickerHeader: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 10,\n },\n buttonContainer: {\n height: buttonContainerHeight,\n marginTop: buttonContainerMarginTop,\n marginBottom: buttonContainerMarginBottom,\n flexDirection: 'row',\n alignItems: 'center',\n },\n buttonWrapper: {},\n spacer: { flex: 1 },\n})\n\nexport default React.memo(CalendarHeader)\n"]}
1
+ {"version":3,"names":["buttonContainerHeight","buttonContainerMarginTop","buttonContainerMarginBottom","getCalendarHeaderHeight","scrollMode","dayNamesHeight","CalendarHeader","onPrev","onNext","disableWeekDays","locale","theme","useTheme","isHorizontal","styles","datePickerHeader","buttonContainer","spacer","buttonWrapper","backgroundColor","colors","surface","getTranslation","StyleSheet","create","position","top","right","left","zIndex","height","marginTop","marginBottom","flexDirection","alignItems","flex","React","memo"],"sources":["CalendarHeader.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, useTheme } from 'react-native-paper'\nimport DayNames, { dayNamesHeight } from './DayNames'\nimport type { DisableWeekDaysType } from './dateUtils'\nimport { getTranslation } from '../translations/utils'\n\nconst buttonContainerHeight = 56\nconst buttonContainerMarginTop = 4\nconst buttonContainerMarginBottom = 8\n\nexport function getCalendarHeaderHeight(scrollMode: 'horizontal' | 'vertical') {\n if (scrollMode === 'horizontal') {\n return (\n buttonContainerHeight +\n buttonContainerMarginTop +\n buttonContainerMarginBottom +\n dayNamesHeight\n )\n }\n return dayNamesHeight\n}\n\nfunction CalendarHeader({\n scrollMode,\n onPrev,\n onNext,\n disableWeekDays,\n locale,\n}: {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n onPrev: () => any\n onNext: () => any\n disableWeekDays?: DisableWeekDaysType\n}) {\n const theme = useTheme()\n const isHorizontal = scrollMode === 'horizontal'\n return (\n <View style={styles.datePickerHeader} pointerEvents={'box-none'}>\n {isHorizontal ? (\n <View style={styles.buttonContainer} pointerEvents={'box-none'}>\n <View style={styles.spacer} pointerEvents={'box-none'} />\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton\n icon=\"chevron-left\"\n accessibilityLabel={getTranslation(locale, 'previous')}\n onPress={onPrev}\n />\n </View>\n\n <View\n style={[\n styles.buttonWrapper,\n { backgroundColor: theme.colors.surface },\n ]}\n >\n <IconButton\n icon=\"chevron-right\"\n accessibilityLabel={getTranslation(locale, 'next')}\n onPress={onNext}\n />\n </View>\n </View>\n ) : null}\n <DayNames disableWeekDays={disableWeekDays} locale={locale} />\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n datePickerHeader: {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0,\n zIndex: 10,\n },\n buttonContainer: {\n height: buttonContainerHeight,\n marginTop: buttonContainerMarginTop,\n marginBottom: buttonContainerMarginBottom,\n flexDirection: 'row',\n alignItems: 'center',\n },\n buttonWrapper: {},\n spacer: { flex: 1 },\n})\n\nexport default React.memo(CalendarHeader)\n"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,MAAMA,qBAAqB,GAAG,EAA9B;AACA,MAAMC,wBAAwB,GAAG,CAAjC;AACA,MAAMC,2BAA2B,GAAG,CAApC;;AAEO,SAASC,uBAAT,CAAiCC,UAAjC,EAAwE;EAC7E,IAAIA,UAAU,KAAK,YAAnB,EAAiC;IAC/B,OACEJ,qBAAqB,GACrBC,wBADA,GAEAC,2BAFA,GAGAG,wBAJF;EAMD;;EACD,OAAOA,wBAAP;AACD;;AAED,SAASC,cAAT,OAYG;EAAA,IAZqB;IACtBF,UADsB;IAEtBG,MAFsB;IAGtBC,MAHsB;IAItBC,eAJsB;IAKtBC;EALsB,CAYrB;EACD,MAAMC,KAAK,GAAG,IAAAC,0BAAA,GAAd;EACA,MAAMC,YAAY,GAAGT,UAAU,KAAK,YAApC;EACA,oBACE,oBAAC,iBAAD;IAAM,KAAK,EAAEU,MAAM,CAACC,gBAApB;IAAsC,aAAa,EAAE;EAArD,GACGF,YAAY,gBACX,oBAAC,iBAAD;IAAM,KAAK,EAAEC,MAAM,CAACE,eAApB;IAAqC,aAAa,EAAE;EAApD,gBACE,oBAAC,iBAAD;IAAM,KAAK,EAAEF,MAAM,CAACG,MAApB;IAA4B,aAAa,EAAE;EAA3C,EADF,eAEE,oBAAC,iBAAD;IACE,KAAK,EAAE,CACLH,MAAM,CAACI,aADF,EAEL;MAAEC,eAAe,EAAER,KAAK,CAACS,MAAN,CAAaC;IAAhC,CAFK;EADT,gBAME,oBAAC,4BAAD;IACE,IAAI,EAAC,cADP;IAEE,kBAAkB,EAAE,IAAAC,qBAAA,EAAeZ,MAAf,EAAuB,UAAvB,CAFtB;IAGE,OAAO,EAAEH;EAHX,EANF,CAFF,eAeE,oBAAC,iBAAD;IACE,KAAK,EAAE,CACLO,MAAM,CAACI,aADF,EAEL;MAAEC,eAAe,EAAER,KAAK,CAACS,MAAN,CAAaC;IAAhC,CAFK;EADT,gBAME,oBAAC,4BAAD;IACE,IAAI,EAAC,eADP;IAEE,kBAAkB,EAAE,IAAAC,qBAAA,EAAeZ,MAAf,EAAuB,MAAvB,CAFtB;IAGE,OAAO,EAAEF;EAHX,EANF,CAfF,CADW,GA6BT,IA9BN,eA+BE,oBAAC,iBAAD;IAAU,eAAe,EAAEC,eAA3B;IAA4C,MAAM,EAAEC;EAApD,EA/BF,CADF;AAmCD;;AAED,MAAMI,MAAM,GAAGS,uBAAA,CAAWC,MAAX,CAAkB;EAC/BT,gBAAgB,EAAE;IAChBU,QAAQ,EAAE,UADM;IAEhBC,GAAG,EAAE,CAFW;IAGhBC,KAAK,EAAE,CAHS;IAIhBC,IAAI,EAAE,CAJU;IAKhBC,MAAM,EAAE;EALQ,CADa;EAQ/Bb,eAAe,EAAE;IACfc,MAAM,EAAE9B,qBADO;IAEf+B,SAAS,EAAE9B,wBAFI;IAGf+B,YAAY,EAAE9B,2BAHC;IAIf+B,aAAa,EAAE,KAJA;IAKfC,UAAU,EAAE;EALG,CARc;EAe/BhB,aAAa,EAAE,EAfgB;EAgB/BD,MAAM,EAAE;IAAEkB,IAAI,EAAE;EAAR;AAhBuB,CAAlB,CAAf;;4BAmBeC,KAAK,CAACC,IAAN,CAAW/B,cAAX,C"}
@@ -7,57 +7,35 @@ exports.default = void 0;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
10
- var _TextInputMask = _interopRequireDefault(require("../TextInputMask"));
11
-
12
10
  var _reactNativePaper = require("react-native-paper");
13
11
 
14
12
  var _reactNative = require("react-native");
15
13
 
16
14
  var _DatePickerModal = _interopRequireDefault(require("./DatePickerModal"));
17
15
 
18
- var _inputUtils = _interopRequireDefault(require("./inputUtils"));
19
-
20
16
  var _utils = require("../utils");
21
17
 
18
+ var _DatePickerInputWithoutModal = _interopRequireDefault(require("./DatePickerInputWithoutModal"));
19
+
22
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
21
 
24
22
  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
23
 
26
24
  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
25
 
28
- 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); }
26
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
27
 
30
28
  function DatePickerInput(_ref, ref) {
31
29
  let {
32
- label,
33
- value,
34
- onChange,
35
- style,
36
- locale,
37
- validRange,
38
- inputMode,
39
30
  withModal = true,
40
- withDateFormatInLabel = true,
31
+ calendarIcon = 'calendar',
41
32
  ...rest
42
33
  } = _ref;
43
- const theme = (0, _reactNativePaper.useTheme)();
44
- const {
45
- formattedValue,
46
- inputFormat,
47
- onChangeText,
48
- error
49
- } = (0, _inputUtils.default)({
50
- locale,
51
- value,
52
- validRange,
53
- inputMode,
54
- onChange
55
- });
56
34
  const [visible, setVisible] = React.useState(false);
57
35
  const onDismiss = React.useCallback(() => {
58
36
  setVisible(false);
59
37
  }, [setVisible]);
60
- const onChangeRef = (0, _utils.useLatest)(onChange);
38
+ const onChangeRef = (0, _utils.useLatest)(rest.onChange);
61
39
  const onInnerConfirm = React.useCallback(_ref2 => {
62
40
  let {
63
41
  date
@@ -65,69 +43,37 @@ function DatePickerInput(_ref, ref) {
65
43
  setVisible(false);
66
44
  onChangeRef.current(date);
67
45
  }, [setVisible, onChangeRef]);
68
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_reactNative.View, {
69
- style: styles.root
70
- }, /*#__PURE__*/React.createElement(_TextInputMask.default, _extends({}, rest, {
71
- ref: ref,
72
- label: getLabel({
73
- // TODO: support label components?
74
- label: label,
75
- inputFormat,
76
- withDateFormatInLabel
77
- }),
78
- value: formattedValue,
79
- keyboardType: 'number-pad',
80
- placeholder: inputFormat,
81
- mask: inputFormat,
82
- onChangeText: onChangeText,
83
- keyboardAppearance: theme.dark ? 'dark' : 'default',
84
- error: !!error,
85
- style: [styles.input, style]
86
- })), withModal ? /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
87
- size: 24,
88
- style: styles.calendarButton,
89
- icon: "calendar",
90
- onPress: () => setVisible(true)
91
- }) : null), /*#__PURE__*/React.createElement(_reactNativePaper.HelperText, {
92
- type: "error",
93
- visible: !!error
94
- }, error), withModal ? /*#__PURE__*/React.createElement(_DatePickerModal.default, {
95
- date: value,
96
- mode: "single",
97
- visible: visible,
98
- onDismiss: onDismiss,
99
- onConfirm: onInnerConfirm,
100
- locale: locale,
101
- dateMode: inputMode,
102
- validRange: validRange
103
- }) : null);
104
- }
105
-
106
- function getLabel(_ref3) {
107
- let {
108
- withDateFormatInLabel,
109
- inputFormat,
110
- label
111
- } = _ref3;
112
-
113
- if (withDateFormatInLabel) {
114
- return label ? `${label} (${inputFormat})` : inputFormat;
115
- }
116
-
117
- return label || '';
46
+ return /*#__PURE__*/React.createElement(_DatePickerInputWithoutModal.default, _extends({
47
+ ref: ref
48
+ }, rest, {
49
+ inputButtons: withModal ? /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
50
+ size: 24,
51
+ style: styles.calendarButton,
52
+ icon: calendarIcon,
53
+ onPress: () => setVisible(true)
54
+ }) : null,
55
+ modal: _ref3 => {
56
+ let {
57
+ value,
58
+ locale,
59
+ inputMode,
60
+ validRange
61
+ } = _ref3;
62
+ return withModal ? /*#__PURE__*/React.createElement(_DatePickerModal.default, {
63
+ date: value,
64
+ mode: "single",
65
+ visible: visible,
66
+ onDismiss: onDismiss,
67
+ onConfirm: onInnerConfirm,
68
+ locale: locale,
69
+ dateMode: inputMode,
70
+ validRange: validRange
71
+ }) : null;
72
+ }
73
+ }));
118
74
  }
119
75
 
120
76
  const styles = _reactNative.StyleSheet.create({
121
- root: {
122
- minWidth: 150,
123
- flexDirection: 'row',
124
- position: 'relative',
125
- alignItems: 'center',
126
- flexGrow: 1
127
- },
128
- input: {
129
- flexGrow: 1
130
- },
131
77
  calendarButton: {
132
78
  position: 'absolute',
133
79
  right: 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePickerInput.tsx"],"names":["DatePickerInput","ref","label","value","onChange","style","locale","validRange","inputMode","withModal","withDateFormatInLabel","rest","theme","formattedValue","inputFormat","onChangeText","error","visible","setVisible","React","useState","onDismiss","useCallback","onChangeRef","onInnerConfirm","date","current","styles","root","getLabel","dark","input","calendarButton","StyleSheet","create","minWidth","flexDirection","position","alignItems","flexGrow","right","zIndex","forwardRef"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,SAASA,eAAT,OAwBEC,GAxBF,EAyBE;AAAA,MAxBA;AACEC,IAAAA,KADF;AAEEC,IAAAA,KAFF;AAGEC,IAAAA,QAHF;AAIEC,IAAAA,KAJF;AAKEC,IAAAA,MALF;AAMEC,IAAAA,UANF;AAOEC,IAAAA,SAPF;AAQEC,IAAAA,SAAS,GAAG,IARd;AASEC,IAAAA,qBAAqB,GAAG,IAT1B;AAUE,OAAGC;AAVL,GAwBA;AACA,QAAMC,KAAK,GAAG,iCAAd;AACA,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,WAAlB;AAA+BC,IAAAA,YAA/B;AAA6CC,IAAAA;AAA7C,MAAuD,yBAAa;AACxEV,IAAAA,MADwE;AAExEH,IAAAA,KAFwE;AAGxEI,IAAAA,UAHwE;AAIxEC,IAAAA,SAJwE;AAKxEJ,IAAAA;AALwE,GAAb,CAA7D;AAQA,QAAM,CAACa,OAAD,EAAUC,UAAV,IAAwBC,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAA9B;AACA,QAAMC,SAAS,GAAGF,KAAK,CAACG,WAAN,CAAkB,MAAM;AACxCJ,IAAAA,UAAU,CAAC,KAAD,CAAV;AACD,GAFiB,EAEf,CAACA,UAAD,CAFe,CAAlB;AAGA,QAAMK,WAAW,GAAG,sBAAUnB,QAAV,CAApB;AACA,QAAMoB,cAAc,GAAGL,KAAK,CAACG,WAAN,CACrB,SAAc;AAAA,QAAb;AAAEG,MAAAA;AAAF,KAAa;AACZP,IAAAA,UAAU,CAAC,KAAD,CAAV;AACAK,IAAAA,WAAW,CAACG,OAAZ,CAAoBD,IAApB;AACD,GAJoB,EAKrB,CAACP,UAAD,EAAaK,WAAb,CALqB,CAAvB;AAQA,sBACE,uDACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEI,MAAM,CAACC;AAApB,kBACE,oBAAC,sBAAD,eACMjB,IADN;AAEE,IAAA,GAAG,EAAEV,GAFP;AAGE,IAAA,KAAK,EAAE4B,QAAQ,CAAC;AACd;AACA3B,MAAAA,KAAK,EAAEA,KAFO;AAGdY,MAAAA,WAHc;AAIdJ,MAAAA;AAJc,KAAD,CAHjB;AASE,IAAA,KAAK,EAAEG,cATT;AAUE,IAAA,YAAY,EAAE,YAVhB;AAWE,IAAA,WAAW,EAAEC,WAXf;AAYE,IAAA,IAAI,EAAEA,WAZR;AAaE,IAAA,YAAY,EAAEC,YAbhB;AAcE,IAAA,kBAAkB,EAAEH,KAAK,CAACkB,IAAN,GAAa,MAAb,GAAsB,SAd5C;AAeE,IAAA,KAAK,EAAE,CAAC,CAACd,KAfX;AAgBE,IAAA,KAAK,EAAE,CAACW,MAAM,CAACI,KAAR,EAAe1B,KAAf;AAhBT,KADF,EAmBGI,SAAS,gBACR,oBAAC,4BAAD;AACE,IAAA,IAAI,EAAE,EADR;AAEE,IAAA,KAAK,EAAEkB,MAAM,CAACK,cAFhB;AAGE,IAAA,IAAI,EAAC,UAHP;AAIE,IAAA,OAAO,EAAE,MAAMd,UAAU,CAAC,IAAD;AAJ3B,IADQ,GAON,IA1BN,CADF,eA6BE,oBAAC,4BAAD;AAAY,IAAA,IAAI,EAAC,OAAjB;AAAyB,IAAA,OAAO,EAAE,CAAC,CAACF;AAApC,KACGA,KADH,CA7BF,EAiCGP,SAAS,gBACR,oBAAC,wBAAD;AACE,IAAA,IAAI,EAAEN,KADR;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAEc,OAHX;AAIE,IAAA,SAAS,EAAEI,SAJb;AAKE,IAAA,SAAS,EAAEG,cALb;AAME,IAAA,MAAM,EAAElB,MANV;AAOE,IAAA,QAAQ,EAAEE,SAPZ;AAQE,IAAA,UAAU,EAAED;AARd,IADQ,GAWN,IA5CN,CADF;AAgDD;;AAED,SAASsB,QAAT,QAQG;AAAA,MARe;AAChBnB,IAAAA,qBADgB;AAEhBI,IAAAA,WAFgB;AAGhBZ,IAAAA;AAHgB,GAQf;;AACD,MAAIQ,qBAAJ,EAA2B;AACzB,WAAOR,KAAK,GAAI,GAAEA,KAAM,KAAIY,WAAY,GAA5B,GAAiCA,WAA7C;AACD;;AACD,SAAOZ,KAAK,IAAI,EAAhB;AACD;;AAED,MAAMyB,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,IAAI,EAAE;AACJO,IAAAA,QAAQ,EAAE,GADN;AAEJC,IAAAA,aAAa,EAAE,KAFX;AAGJC,IAAAA,QAAQ,EAAE,UAHN;AAIJC,IAAAA,UAAU,EAAE,QAJR;AAKJC,IAAAA,QAAQ,EAAE;AALN,GADyB;AAQ/BR,EAAAA,KAAK,EAAE;AACLQ,IAAAA,QAAQ,EAAE;AADL,GARwB;AAW/BP,EAAAA,cAAc,EAAE;AAAEK,IAAAA,QAAQ,EAAE,UAAZ;AAAwBG,IAAAA,KAAK,EAAE,CAA/B;AAAkCC,IAAAA,MAAM,EAAE;AAA1C;AAXe,CAAlB,CAAf;;4BAaetB,KAAK,CAACuB,UAAN,CAAiB1C,eAAjB,C","sourcesContent":["import * as React from 'react'\n\nimport TextInputWithMask from '../TextInputMask'\nimport { HelperText, IconButton, TextInput, useTheme } from 'react-native-paper'\nimport { View, StyleSheet } from 'react-native'\nimport DatePickerModal from './DatePickerModal'\nimport useDateInput from './inputUtils'\nimport type { ValidRangeType } from './Calendar'\nimport { useLatest } from '../utils'\n\nfunction DatePickerInput(\n {\n label,\n value,\n onChange,\n style,\n locale,\n validRange,\n inputMode,\n withModal = true,\n withDateFormatInLabel = true,\n ...rest\n }: {\n inputMode: 'start' | 'end'\n locale: string\n onChange: (date: Date | undefined) => void\n value: Date | undefined\n validRange?: ValidRangeType | undefined\n withModal?: boolean\n withDateFormatInLabel?: boolean\n } & Omit<\n React.ComponentProps<typeof TextInput>,\n 'value' | 'onChange' | 'onChangeText'\n >,\n ref: any\n) {\n const theme = useTheme()\n const { formattedValue, inputFormat, onChangeText, error } = useDateInput({\n locale,\n value,\n validRange,\n inputMode,\n onChange,\n })\n\n const [visible, setVisible] = React.useState<boolean>(false)\n const onDismiss = React.useCallback(() => {\n setVisible(false)\n }, [setVisible])\n const onChangeRef = useLatest(onChange)\n const onInnerConfirm = React.useCallback(\n ({ date }) => {\n setVisible(false)\n onChangeRef.current(date)\n },\n [setVisible, onChangeRef]\n )\n\n return (\n <>\n <View style={styles.root}>\n <TextInputWithMask\n {...rest}\n ref={ref}\n label={getLabel({\n // TODO: support label components?\n label: label as any,\n inputFormat,\n withDateFormatInLabel,\n })}\n value={formattedValue}\n keyboardType={'number-pad'}\n placeholder={inputFormat}\n mask={inputFormat}\n onChangeText={onChangeText}\n keyboardAppearance={theme.dark ? 'dark' : 'default'}\n error={!!error}\n style={[styles.input, style]}\n />\n {withModal ? (\n <IconButton\n size={24}\n style={styles.calendarButton}\n icon=\"calendar\"\n onPress={() => setVisible(true)}\n />\n ) : null}\n </View>\n <HelperText type=\"error\" visible={!!error}>\n {error}\n </HelperText>\n\n {withModal ? (\n <DatePickerModal\n date={value}\n mode=\"single\"\n visible={visible}\n onDismiss={onDismiss}\n onConfirm={onInnerConfirm}\n locale={locale}\n dateMode={inputMode}\n validRange={validRange}\n />\n ) : null}\n </>\n )\n}\n\nfunction getLabel({\n withDateFormatInLabel,\n inputFormat,\n label,\n}: {\n withDateFormatInLabel: boolean\n inputFormat: string\n label: string | undefined\n}) {\n if (withDateFormatInLabel) {\n return label ? `${label} (${inputFormat})` : inputFormat\n }\n return label || ''\n}\n\nconst styles = StyleSheet.create({\n root: {\n minWidth: 150,\n flexDirection: 'row',\n position: 'relative',\n alignItems: 'center',\n flexGrow: 1,\n },\n input: {\n flexGrow: 1,\n },\n calendarButton: { position: 'absolute', right: 0, zIndex: 10 },\n})\nexport default React.forwardRef(DatePickerInput)\n"]}
1
+ {"version":3,"names":["DatePickerInput","ref","withModal","calendarIcon","rest","visible","setVisible","React","useState","onDismiss","useCallback","onChangeRef","useLatest","onChange","onInnerConfirm","date","current","styles","calendarButton","value","locale","inputMode","validRange","StyleSheet","create","position","right","zIndex","forwardRef"],"sources":["DatePickerInput.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconButton } from 'react-native-paper'\nimport { StyleSheet } from 'react-native'\nimport DatePickerModal from './DatePickerModal'\nimport { useLatest } from '../utils'\nimport type { DatePickerInputProps } from './DatePickerInput.shared'\nimport DatePickerInputWithoutModal from './DatePickerInputWithoutModal'\n\nfunction DatePickerInput(\n {\n withModal = true,\n calendarIcon = 'calendar',\n ...rest\n }: DatePickerInputProps,\n ref: any\n) {\n const [visible, setVisible] = React.useState<boolean>(false)\n const onDismiss = React.useCallback(() => {\n setVisible(false)\n }, [setVisible])\n const onChangeRef = useLatest(rest.onChange)\n const onInnerConfirm = React.useCallback(\n ({ date }: any) => {\n setVisible(false)\n onChangeRef.current(date)\n },\n [setVisible, onChangeRef]\n )\n\n return (\n <DatePickerInputWithoutModal\n ref={ref}\n {...rest}\n inputButtons={\n withModal ? (\n <IconButton\n size={24}\n style={styles.calendarButton}\n icon={calendarIcon}\n onPress={() => setVisible(true)}\n />\n ) : null\n }\n modal={({ value, locale, inputMode, validRange }) =>\n withModal ? (\n <DatePickerModal\n date={value}\n mode=\"single\"\n visible={visible}\n onDismiss={onDismiss}\n onConfirm={onInnerConfirm}\n locale={locale}\n dateMode={inputMode}\n validRange={validRange}\n />\n ) : null\n }\n />\n )\n}\n\nconst styles = StyleSheet.create({\n calendarButton: { position: 'absolute', right: 0, zIndex: 10 },\n})\n\nexport default React.forwardRef(DatePickerInput)\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,SAASA,eAAT,OAMEC,GANF,EAOE;EAAA,IANA;IACEC,SAAS,GAAG,IADd;IAEEC,YAAY,GAAG,UAFjB;IAGE,GAAGC;EAHL,CAMA;EACA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBC,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAA9B;EACA,MAAMC,SAAS,GAAGF,KAAK,CAACG,WAAN,CAAkB,MAAM;IACxCJ,UAAU,CAAC,KAAD,CAAV;EACD,CAFiB,EAEf,CAACA,UAAD,CAFe,CAAlB;EAGA,MAAMK,WAAW,GAAG,IAAAC,gBAAA,EAAUR,IAAI,CAACS,QAAf,CAApB;EACA,MAAMC,cAAc,GAAGP,KAAK,CAACG,WAAN,CACrB,SAAmB;IAAA,IAAlB;MAAEK;IAAF,CAAkB;IACjBT,UAAU,CAAC,KAAD,CAAV;IACAK,WAAW,CAACK,OAAZ,CAAoBD,IAApB;EACD,CAJoB,EAKrB,CAACT,UAAD,EAAaK,WAAb,CALqB,CAAvB;EAQA,oBACE,oBAAC,oCAAD;IACE,GAAG,EAAEV;EADP,GAEMG,IAFN;IAGE,YAAY,EACVF,SAAS,gBACP,oBAAC,4BAAD;MACE,IAAI,EAAE,EADR;MAEE,KAAK,EAAEe,MAAM,CAACC,cAFhB;MAGE,IAAI,EAAEf,YAHR;MAIE,OAAO,EAAE,MAAMG,UAAU,CAAC,IAAD;IAJ3B,EADO,GAOL,IAXR;IAaE,KAAK,EAAE;MAAA,IAAC;QAAEa,KAAF;QAASC,MAAT;QAAiBC,SAAjB;QAA4BC;MAA5B,CAAD;MAAA,OACLpB,SAAS,gBACP,oBAAC,wBAAD;QACE,IAAI,EAAEiB,KADR;QAEE,IAAI,EAAC,QAFP;QAGE,OAAO,EAAEd,OAHX;QAIE,SAAS,EAAEI,SAJb;QAKE,SAAS,EAAEK,cALb;QAME,MAAM,EAAEM,MANV;QAOE,QAAQ,EAAEC,SAPZ;QAQE,UAAU,EAAEC;MARd,EADO,GAWL,IAZC;IAAA;EAbT,GADF;AA8BD;;AAED,MAAML,MAAM,GAAGM,uBAAA,CAAWC,MAAX,CAAkB;EAC/BN,cAAc,EAAE;IAAEO,QAAQ,EAAE,UAAZ;IAAwBC,KAAK,EAAE,CAA/B;IAAkCC,MAAM,EAAE;EAA1C;AADe,CAAlB,CAAf;;4BAIepB,KAAK,CAACqB,UAAN,CAAiB5B,eAAjB,C"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=DatePickerInput.shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["DatePickerInput.shared.tsx"],"sourcesContent":["import type { ValidRangeType } from './Calendar'\nimport type * as React from 'react'\nimport type { TextInput } from 'react-native-paper'\n\nexport type DatePickerInputProps = {\n inputMode: 'start' | 'end'\n locale: string\n onChange: (date: Date | undefined) => void\n value: Date | undefined\n validRange?: ValidRangeType | undefined\n withModal?: boolean\n withDateFormatInLabel?: boolean\n calendarIcon?: string\n} & Omit<\n React.ComponentProps<typeof TextInput>,\n 'value' | 'onChange' | 'onChangeText'\n>\n"],"mappings":""}