react-native-paper-dates 0.8.7 → 0.9.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.
- package/README.md +30 -1
- package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
- package/lib/commonjs/Date/AutoSizer.js.map +1 -1
- package/lib/commonjs/Date/Calendar.js +6 -2
- package/lib/commonjs/Date/Calendar.js.map +1 -1
- package/lib/commonjs/Date/CalendarEdit.js +4 -4
- package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
- package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.js +33 -87
- package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.shared.js +6 -0
- package/lib/commonjs/Date/DatePickerInput.shared.js.map +1 -0
- package/lib/commonjs/Date/DatePickerInputWithoutModal.js +117 -0
- package/lib/commonjs/Date/DatePickerInputWithoutModal.js.map +1 -0
- package/lib/commonjs/Date/DatePickerModal.js +1 -1
- package/lib/commonjs/Date/DatePickerModal.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContent.js +14 -8
- package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContentHeader.js +5 -3
- package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js +5 -5
- package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/commonjs/Date/DateRangeInput.js +3 -2
- package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
- package/lib/commonjs/Date/Day.js.map +1 -1
- package/lib/commonjs/Date/DayName.js.map +1 -1
- package/lib/commonjs/Date/DayNames.js.map +1 -1
- package/lib/commonjs/Date/DayRange.js.map +1 -1
- package/lib/commonjs/Date/Month.js.map +1 -1
- package/lib/commonjs/Date/Swiper.js.map +1 -1
- package/lib/commonjs/Date/Swiper.native.js +2 -1
- package/lib/commonjs/Date/Swiper.native.js.map +1 -1
- package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
- package/lib/commonjs/Date/Week.js.map +1 -1
- package/lib/commonjs/Date/YearPicker.js +5 -5
- package/lib/commonjs/Date/YearPicker.js.map +1 -1
- package/lib/commonjs/Date/dateUtils.js.map +1 -1
- package/lib/commonjs/Date/dateUtils.test.js.map +1 -1
- package/lib/commonjs/Date/inputUtils.js +1 -1
- package/lib/commonjs/Date/inputUtils.js.map +1 -1
- package/lib/commonjs/TextInputMask.js +1 -1
- package/lib/commonjs/TextInputMask.js.map +1 -1
- package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
- package/lib/commonjs/Time/AnalogClock.js +1 -1
- package/lib/commonjs/Time/AnalogClock.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockHours.js +1 -1
- package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/commonjs/Time/TimeInput.js +1 -1
- package/lib/commonjs/Time/TimeInput.js.map +1 -1
- package/lib/commonjs/Time/TimeInputs.js +2 -2
- package/lib/commonjs/Time/TimeInputs.js.map +1 -1
- package/lib/commonjs/Time/TimePicker.js.map +1 -1
- package/lib/commonjs/Time/TimePickerModal.js +7 -2
- package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
- package/lib/commonjs/Time/timeUtils.js +7 -1
- package/lib/commonjs/Time/timeUtils.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/translations/ar.js +25 -0
- package/lib/commonjs/translations/ar.js.map +1 -0
- package/lib/commonjs/translations/de.js.map +1 -1
- package/lib/commonjs/translations/en.js.map +1 -1
- package/lib/commonjs/translations/enGB.js.map +1 -1
- package/lib/commonjs/translations/fr.js +25 -0
- package/lib/commonjs/translations/fr.js.map +1 -0
- package/lib/commonjs/translations/ko.js +25 -0
- package/lib/commonjs/translations/ko.js.map +1 -0
- package/lib/commonjs/translations/nl.js.map +1 -1
- package/lib/commonjs/translations/pl.js.map +1 -1
- package/lib/commonjs/translations/pt.js.map +1 -1
- package/lib/commonjs/translations/utils.js +1 -1
- package/lib/commonjs/translations/utils.js.map +1 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/Date/AnimatedCrossView.js.map +1 -1
- package/lib/module/Date/AutoSizer.js.map +1 -1
- package/lib/module/Date/Calendar.js +6 -2
- package/lib/module/Date/Calendar.js.map +1 -1
- package/lib/module/Date/CalendarEdit.js +4 -4
- package/lib/module/Date/CalendarEdit.js.map +1 -1
- package/lib/module/Date/CalendarHeader.js.map +1 -1
- package/lib/module/Date/DatePickerInput.js +34 -87
- package/lib/module/Date/DatePickerInput.js.map +1 -1
- package/lib/module/Date/DatePickerInput.shared.js +2 -0
- package/lib/module/Date/DatePickerInput.shared.js.map +1 -0
- package/lib/module/Date/DatePickerInputWithoutModal.js +97 -0
- package/lib/module/Date/DatePickerInputWithoutModal.js.map +1 -0
- package/lib/module/Date/DatePickerModal.js +1 -1
- package/lib/module/Date/DatePickerModal.js.map +1 -1
- package/lib/module/Date/DatePickerModalContent.js +14 -8
- package/lib/module/Date/DatePickerModalContent.js.map +1 -1
- package/lib/module/Date/DatePickerModalContentHeader.js +5 -3
- package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeader.js +5 -5
- package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/module/Date/DateRangeInput.js +3 -2
- package/lib/module/Date/DateRangeInput.js.map +1 -1
- package/lib/module/Date/Day.js.map +1 -1
- package/lib/module/Date/DayName.js.map +1 -1
- package/lib/module/Date/DayNames.js.map +1 -1
- package/lib/module/Date/DayRange.js.map +1 -1
- package/lib/module/Date/Month.js.map +1 -1
- package/lib/module/Date/Swiper.js.map +1 -1
- package/lib/module/Date/Swiper.native.js +2 -1
- package/lib/module/Date/Swiper.native.js.map +1 -1
- package/lib/module/Date/SwiperUtils.js.map +1 -1
- package/lib/module/Date/Week.js.map +1 -1
- package/lib/module/Date/YearPicker.js +5 -5
- package/lib/module/Date/YearPicker.js.map +1 -1
- package/lib/module/Date/dateUtils.js.map +1 -1
- package/lib/module/Date/dateUtils.test.js.map +1 -1
- package/lib/module/Date/inputUtils.js +1 -1
- package/lib/module/Date/inputUtils.js.map +1 -1
- package/lib/module/TextInputMask.js +1 -1
- package/lib/module/TextInputMask.js.map +1 -1
- package/lib/module/Time/AmPmSwitcher.js.map +1 -1
- package/lib/module/Time/AnalogClock.js +1 -1
- package/lib/module/Time/AnalogClock.js.map +1 -1
- package/lib/module/Time/AnalogClockHours.js +1 -1
- package/lib/module/Time/AnalogClockHours.js.map +1 -1
- package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/module/Time/TimeInput.js +1 -1
- package/lib/module/Time/TimeInput.js.map +1 -1
- package/lib/module/Time/TimeInputs.js +2 -2
- package/lib/module/Time/TimeInputs.js.map +1 -1
- package/lib/module/Time/TimePicker.js.map +1 -1
- package/lib/module/Time/TimePickerModal.js +8 -3
- package/lib/module/Time/TimePickerModal.js.map +1 -1
- package/lib/module/Time/timeUtils.js +3 -0
- package/lib/module/Time/timeUtils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/translations/ar.js +18 -0
- package/lib/module/translations/ar.js.map +1 -0
- package/lib/module/translations/de.js.map +1 -1
- package/lib/module/translations/en.js.map +1 -1
- package/lib/module/translations/enGB.js.map +1 -1
- package/lib/module/translations/fr.js +18 -0
- package/lib/module/translations/fr.js.map +1 -0
- package/lib/module/translations/ko.js +18 -0
- package/lib/module/translations/ko.js.map +1 -0
- package/lib/module/translations/nl.js.map +1 -1
- package/lib/module/translations/pl.js.map +1 -1
- package/lib/module/translations/pt.js.map +1 -1
- package/lib/module/translations/utils.js +1 -1
- package/lib/module/translations/utils.js.map +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/Date/Calendar.d.ts +2 -0
- package/lib/typescript/Date/DatePickerInput.d.ts +2 -16
- package/lib/typescript/Date/DatePickerInput.shared.d.ts +13 -0
- package/lib/typescript/Date/DatePickerInputWithoutModal.d.ts +51 -0
- package/lib/typescript/Date/DatePickerModalContent.d.ts +1 -0
- package/lib/typescript/Date/DatePickerModalContentHeader.d.ts +3 -0
- package/lib/typescript/Date/DatePickerModalHeader.d.ts +2 -0
- package/lib/typescript/Date/DateRangeInput.d.ts +2 -1
- package/lib/typescript/Date/YearPicker.d.ts +3 -1
- package/lib/typescript/TextInputMask.d.ts +31 -6
- package/lib/typescript/Time/TimePickerModal.d.ts +3 -1
- package/lib/typescript/Time/timeUtils.d.ts +1 -0
- package/lib/typescript/translations/ar.d.ts +3 -0
- package/lib/typescript/translations/fr.d.ts +3 -0
- package/lib/typescript/translations/ko.d.ts +3 -0
- package/package.json +26 -25
- package/src/Date/Calendar.tsx +7 -1
- package/src/Date/CalendarEdit.tsx +4 -4
- package/src/Date/DatePickerInput.shared.tsx +17 -0
- package/src/Date/DatePickerInput.tsx +32 -102
- package/src/Date/DatePickerInputWithoutModal.tsx +110 -0
- package/src/Date/DatePickerModalContent.tsx +10 -1
- package/src/Date/DatePickerModalContentHeader.tsx +13 -2
- package/src/Date/DatePickerModalHeader.tsx +5 -2
- package/src/Date/DateRangeInput.tsx +8 -2
- package/src/Date/Swiper.native.tsx +1 -0
- package/src/Date/YearPicker.tsx +5 -4
- package/src/Date/inputUtils.ts +1 -1
- package/src/Time/AnalogClockHours.tsx +1 -1
- package/src/Time/TimeInputs.tsx +2 -2
- package/src/Time/TimePickerModal.tsx +9 -2
- package/src/Time/timeUtils.ts +10 -0
- package/src/translations/ar.ts +21 -0
- package/src/translations/fr.ts +23 -0
- package/src/translations/ko.ts +21 -0
- 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,"
|
|
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,"
|
|
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)
|
|
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":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;AA8DA,SAASA,QAAT,CACEC,KADF,EAEE;AACA,QAAM;AACJC,IAAAA,MADI;AAEJC,IAAAA,IAFI;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,SAJI;AAKJC,IAAAA,OALI;AAMJC,IAAAA,IANI;AAOJC,IAAAA,eAPI;AAQJC,IAAAA,KARI;AASJC,IAAAA,UATI;AAUJC,IAAAA;AAVI,MAWFV,KAXJ;AAaA,QAAMW,KAAK,GAAG,iCAAd;AAEA,QAAMC,WAAW,GAAG,mBAAgB,MAAM;AACxC,QAAID,KAAK,CAACE,IAAV,EAAgB;AACd,aAAO,qBAAS,oBAAMF,KAAK,CAACG,MAAN,CAAaC,OAAnB,CAAT,EAAsC,GAAtC,EAA2CC,GAA3C,EAAP;AACD;;AACD,WAAO,sBAAU,oBAAML,KAAK,CAACG,MAAN,CAAaC,OAAnB,CAAV,EAAuC,GAAvC,EAA4CC,GAA5C,EAAP;AACD,GALmB,EAKjB,CAACL,KAAD,CALiB,CAApB;AAOA,QAAMM,UAAU,GACdf,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,UAA7B,GAA0C,UAA1C,GAAuD,YADzD;AAGA,QAAM,CAACgB,YAAD,EAAeC,eAAf,IAAkCC,KAAK,CAACC,QAAN,CACtCC,SADsC,CAAxC;AAGA,QAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCJ,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAA1C;AACA,QAAMI,WAAW,GAAG,uBACjBC,IAAD,IAAkB;AAChBP,IAAAA,eAAe,CAACO,IAAD,CAAf;AACAF,IAAAA,gBAAgB,CAAEG,IAAD,IAAU,CAACA,IAAZ,CAAhB;AACD,GAJiB,EAKlB,CAACH,gBAAD,CALkB,CAApB,CA9BA,CAsCA;AACA;;AACA,QAAMI,YAAY,GAAG,sBAAwBxB,SAAxB,CAArB;AACA,QAAMyB,UAAU,GAAG,sBAAwBxB,OAAxB,CAAnB;AACA,QAAMyB,WAAW,GAAG,sBAClB3B,QADkB,CAApB;AAGA,QAAM4B,QAAQ,GAAG,sBAAyBvB,KAAzB,CAAjB;AAEA,QAAMwB,WAAW,GAAG,uBACjBC,CAAD,IAAa;AACX,QAAI/B,IAAI,KAAK,QAAb,EAAuB;AACrB;AAAE4B,MAAAA,WAAW,CAACI,OAAb,CAAsC;AACrC5B,QAAAA,IAAI,EAAEI,QAAQ,KAAK,OAAb,GAAuBuB,CAAvB,GAA2B,4BAAYA,CAAZ;AADI,OAAtC;AAGF,KAJD,MAIO,IAAI/B,IAAI,KAAK,OAAb,EAAsB;AAC3B,YAAMiC,EAAE,GAAGP,YAAY,CAACM,OAAxB;AACA,YAAME,EAAE,GAAGP,UAAU,CAACK,OAAtB;AACA,UAAIG,OAAgB,GAAG,IAAvB;;AACA,UAAIF,EAAE,IAAI,CAACC,EAAP,IAAa,2BAAWH,CAAX,IAAgB,2BAAWE,EAAX,CAAjC,EAAkD;AAChDE,QAAAA,OAAO,GAAG,KAAV;AACD;;AACD;AAAEP,MAAAA,WAAW,CAACI,OAAb,CAAqC;AACpC9B,QAAAA,SAAS,EAAEiC,OAAO,GAAGJ,CAAH,GAAOE,EADW;AAEpC9B,QAAAA,OAAO,EAAE,CAACgC,OAAD,GAAW,4BAAYJ,CAAZ,CAAX,GAA4BX;AAFD,OAArC;AAIF,KAXM,MAWA,IAAIpB,IAAI,KAAK,UAAb,EAAyB;AAC9B6B,MAAAA,QAAQ,CAACG,OAAT,GAAmBH,QAAQ,CAACG,OAAT,IAAoB,EAAvC;AACA,YAAMI,MAAM,GAAGP,QAAQ,CAACG,OAAT,CAAiBK,IAAjB,CAAuBH,EAAD,IAAQ,kCAAkBA,EAAlB,EAAsBH,CAAtB,CAA9B,CAAf;AAEA,YAAMO,QAAQ,GAAGF,MAAM,GACnBP,QAAQ,CAACG,OAAT,CAAiBO,MAAjB,CAAyBL,EAAD,IAAQ,CAAC,kCAAkBA,EAAlB,EAAsBH,CAAtB,CAAjC,CADmB,GAEnB,CAAC,GAAGF,QAAQ,CAACG,OAAb,EAAsBD,CAAtB,CAFJ;AAIAO,MAAAA,QAAQ,CAACE,IAAT,CAAc,CAACC,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAACE,OAAF,KAAcD,CAAC,CAACC,OAAF,EAAtC;AACEf,MAAAA,WAAW,CAACI,OAAb,CAAqC;AACpC1B,QAAAA,KAAK,EAAEgC,QAD6B;AAEpCM,QAAAA,WAAW,EAAEb,CAFuB;AAGpCc,QAAAA,MAAM,EAAET,MAAM,GAAG,SAAH,GAAe;AAHO,OAArC;AAKF;AACF,GAhCiB,EAiClB,CAACpC,IAAD,EAAOQ,QAAP,EAAiBoB,WAAjB,EAA8BF,YAA9B,EAA4CC,UAA5C,EAAwDE,QAAxD,CAjCkB,CAApB;AAoCA,QAAMiB,SAAS,GAAG5C,SAAS,IAAIE,IAAb,KAAqBE,KAArB,aAAqBA,KAArB,uBAAqBA,KAAK,CAAG,CAAH,CAA1B,CAAlB;AAEA,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEyC,MAAM,CAACC;AAApB,kBACE,oBAAC,eAAD;AACE,IAAA,YAAY,EAAE,gCAAgBF,SAAhB,CADhB;AAEE,IAAA,YAAY,EAAE9B,YAFhB;AAGE,IAAA,UAAU,EAAED,UAHd;AAIE,IAAA,UAAU,EAAE;AAAA,UAAC;AAAEkC,QAAAA;AAAF,OAAD;AAAA,0BACV,oBAAC,cAAD;AACE,QAAA,MAAM,EAAElD,MADV;AAEE,QAAA,IAAI,EAAEC,IAFR;AAGE,QAAA,GAAG,EAAEiD,KAHP;AAIE,QAAA,UAAU,EAAE1C,UAJd;AAKE,QAAA,KAAK,EAAE0C,KALT;AAME,QAAA,SAAS,EAAE/C,SANb;AAOE,QAAA,OAAO,EAAEC,OAPX;AAQE,QAAA,IAAI,EAAEC,IARR;AASE,QAAA,KAAK,EAAEE,KATT;AAUE,QAAA,WAAW,EAAEiB,WAVf;AAWE,QAAA,aAAa,EAAEF,aAXjB;AAYE,QAAA,WAAW,EAAES,WAZf;AAaE,QAAA,UAAU,EAAEf,UAbd;AAcE,QAAA,YAAY,EAAEN,KAAK,CAACG,MAAN,CAAaC,OAd7B;AAeE,QAAA,WAAW,EAAEH,WAff;AAgBE,QAAA,SAAS,EAAED,KAAK,CAACyC,SAhBnB;AAiBE,QAAA,eAAe,EAAE7C;AAjBnB,QADU;AAAA,KAJd;AAyBE,IAAA,YAAY,EAAE;AAAA,UAAC;AAAE8C,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAD;AAAA,0BACZ,oBAAC,uBAAD;AACE,QAAA,MAAM,EAAErD,MADV;AAEE,QAAA,MAAM,EAAEoD,MAFV;AAGE,QAAA,MAAM,EAAEC,MAHV;AAIE,QAAA,UAAU,EAAErC,UAJd;AAKE,QAAA,eAAe,EAAEV;AALnB,QADY;AAAA;AAzBhB,IADF,EAoCGU,UAAU,KAAK,YAAf,gBACC,oBAAC,mBAAD;AACE,IAAA,YAAY,EAAEC,YADhB;AAEE,IAAA,aAAa,EAAEK,aAFjB;AAGE,IAAA,WAAW,EAAEE;AAHf,IADD,GAMG,IA1CN,CADF;AA8CD;;AAED,MAAMwB,MAAM,GAAGM,wBAAWC,MAAX,CAAkB;AAC/BN,EAAAA,IAAI,EAAE;AAAEO,IAAAA,IAAI,EAAE;AAAR,GADyB;AAE/BC,EAAAA,SAAS,EAAE;AAAED,IAAAA,IAAI,EAAE;AAAR;AAFoB,CAAlB,CAAf;;4BAKerC,KAAK,CAACuC,IAAN,CAAW5D,QAAX,C","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":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;AAgEA,SAASA,QAAT,CACEC,KADF,EAEE;EACA,MAAM;IACJC,MADI;IAEJC,IAFI;IAGJC,QAHI;IAIJC,SAJI;IAKJC,OALI;IAMJC,IANI;IAOJC,eAPI;IAQJC,SARI;IASJC,OATI;IAUJC,KAVI;IAWJC,UAXI;IAYJC;EAZI,IAaFZ,KAbJ;EAeA,MAAMa,KAAK,GAAG,IAAAC,0BAAA,GAAd;EAEA,MAAMC,WAAW,GAAG,IAAAC,aAAA,EAAgB,MAAM;IACxC,IAAIH,KAAK,CAACI,IAAV,EAAgB;MACd,OAAO,IAAAC,eAAA,EAAS,IAAAC,cAAA,EAAMN,KAAK,CAACO,MAAN,CAAaC,OAAnB,CAAT,EAAsC,GAAtC,EAA2CC,GAA3C,EAAP;IACD;;IACD,OAAO,IAAAC,gBAAA,EAAU,IAAAJ,cAAA,EAAMN,KAAK,CAACO,MAAN,CAAaC,OAAnB,CAAV,EAAuC,GAAvC,EAA4CC,GAA5C,EAAP;EACD,CALmB,EAKjB,CAACT,KAAD,CALiB,CAApB;EAOA,MAAMW,UAAU,GACdtB,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,UAA7B,GAA0C,UAA1C,GAAuD,YADzD;EAGA,MAAM,CAACuB,YAAD,EAAeC,eAAf,IAAkCC,KAAK,CAACC,QAAN,CACtCC,SADsC,CAAxC;EAGA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCJ,KAAK,CAACC,QAAN,CAAwB,KAAxB,CAA1C;EACA,MAAMI,WAAW,GAAG,IAAAC,iBAAA,EACjBC,IAAD,IAAkB;IAChBR,eAAe,CAACQ,IAAD,CAAf;IACAH,gBAAgB,CAAEI,IAAD,IAAU,CAACA,IAAZ,CAAhB;EACD,CAJiB,EAKlB,CAACJ,gBAAD,CALkB,CAApB,CAhCA,CAwCA;EACA;;EACA,MAAMK,YAAY,GAAG,IAAAC,gBAAA,EAAwBjC,SAAxB,CAArB;EACA,MAAMkC,UAAU,GAAG,IAAAD,gBAAA,EAAwBhC,OAAxB,CAAnB;EACA,MAAMkC,WAAW,GAAG,IAAAF,gBAAA,EAClBlC,QADkB,CAApB;EAGA,MAAMqC,QAAQ,GAAG,IAAAH,gBAAA,EAAyB3B,KAAzB,CAAjB;EAEA,MAAM+B,WAAW,GAAG,IAAAR,iBAAA,EACjBS,CAAD,IAAa;IACX,IAAIxC,IAAI,KAAK,QAAb,EAAuB;MACrB;MAAEqC,WAAW,CAACI,OAAb,CAAsC;QACrCrC,IAAI,EAAEM,QAAQ,KAAK,OAAb,GAAuB8B,CAAvB,GAA2B,IAAAE,sBAAA,EAAYF,CAAZ;MADI,CAAtC;IAGF,CAJD,MAIO,IAAIxC,IAAI,KAAK,OAAb,EAAsB;MAC3B,MAAM2C,EAAE,GAAGT,YAAY,CAACO,OAAxB;MACA,MAAMG,EAAE,GAAGR,UAAU,CAACK,OAAtB;MACA,IAAII,OAAgB,GAAG,IAAvB;;MACA,IAAIF,EAAE,IAAI,CAACC,EAAP,IAAa,IAAAE,qBAAA,EAAWN,CAAX,KAAiB,IAAAM,qBAAA,EAAWH,EAAX,CAAlC,EAAmD;QACjDE,OAAO,GAAG,KAAV;MACD;;MACD;MAAER,WAAW,CAACI,OAAb,CAAqC;QACpCvC,SAAS,EAAE2C,OAAO,GAAGL,CAAH,GAAOG,EADW;QAEpCxC,OAAO,EAAE,CAAC0C,OAAD,GAAW,IAAAH,sBAAA,EAAYF,CAAZ,CAAX,GAA4Bb;MAFD,CAArC;IAIF,CAXM,MAWA,IAAI3B,IAAI,KAAK,UAAb,EAAyB;MAC9BsC,QAAQ,CAACG,OAAT,GAAmBH,QAAQ,CAACG,OAAT,IAAoB,EAAvC;MACA,MAAMM,MAAM,GAAGT,QAAQ,CAACG,OAAT,CAAiBO,IAAjB,CAAuBJ,EAAD,IAAQ,IAAAK,4BAAA,EAAkBL,EAAlB,EAAsBJ,CAAtB,CAA9B,CAAf;MAEA,MAAMU,QAAQ,GAAGH,MAAM,GACnBT,QAAQ,CAACG,OAAT,CAAiBU,MAAjB,CAAyBP,EAAD,IAAQ,CAAC,IAAAK,4BAAA,EAAkBL,EAAlB,EAAsBJ,CAAtB,CAAjC,CADmB,GAEnB,CAAC,GAAGF,QAAQ,CAACG,OAAb,EAAsBD,CAAtB,CAFJ;MAIAU,QAAQ,CAACE,IAAT,CAAc,CAACC,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAACE,OAAF,KAAcD,CAAC,CAACC,OAAF,EAAtC;MACElB,WAAW,CAACI,OAAb,CAAqC;QACpCjC,KAAK,EAAE0C,QAD6B;QAEpCM,WAAW,EAAEhB,CAFuB;QAGpCiB,MAAM,EAAEV,MAAM,GAAG,SAAH,GAAe;MAHO,CAArC;IAKF;EACF,CAhCiB,EAiClB,CAAC/C,IAAD,EAAOU,QAAP,EAAiB2B,WAAjB,EAA8BH,YAA9B,EAA4CE,UAA5C,EAAwDE,QAAxD,CAjCkB,CAApB;EAoCA,MAAMoB,SAAS,GAAGxD,SAAS,IAAIE,IAAb,KAAqBI,KAArB,aAAqBA,KAArB,uBAAqBA,KAAK,CAAG,CAAH,CAA1B,CAAlB;EAEA,oBACE,oBAAC,iBAAD;IAAM,KAAK,EAAEmD,MAAM,CAACC;EAApB,gBACE,oBAAC,eAAD;IACE,YAAY,EAAE,IAAAC,0BAAA,EAAgBH,SAAhB,CADhB;IAEE,YAAY,EAAEnC,YAFhB;IAGE,UAAU,EAAED,UAHd;IAIE,UAAU,EAAE;MAAA,IAAC;QAAEwC;MAAF,CAAD;MAAA,oBACV,oBAAC,cAAD;QACE,MAAM,EAAE/D,MADV;QAEE,IAAI,EAAEC,IAFR;QAGE,GAAG,EAAE8D,KAHP;QAIE,UAAU,EAAErD,UAJd;QAKE,KAAK,EAAEqD,KALT;QAME,SAAS,EAAE5D,SANb;QAOE,OAAO,EAAEC,OAPX;QAQE,IAAI,EAAEC,IARR;QASE,KAAK,EAAEI,KATT;QAUE,WAAW,EAAEsB,WAVf;QAWE,aAAa,EAAEF,aAXjB;QAYE,WAAW,EAAEW,WAZf;QAaE,UAAU,EAAEjB,UAbd;QAcE,YAAY,EAAEX,KAAK,CAACO,MAAN,CAAaC,OAd7B;QAeE,WAAW,EAAEN,WAff;QAgBE,SAAS,EAAEF,KAAK,CAACoD,SAhBnB;QAiBE,eAAe,EAAE1D;MAjBnB,EADU;IAAA,CAJd;IAyBE,YAAY,EAAE;MAAA,IAAC;QAAE2D,MAAF;QAAUC;MAAV,CAAD;MAAA,oBACZ,oBAAC,uBAAD;QACE,MAAM,EAAElE,MADV;QAEE,MAAM,EAAEiE,MAFV;QAGE,MAAM,EAAEC,MAHV;QAIE,UAAU,EAAE3C,UAJd;QAKE,eAAe,EAAEjB;MALnB,EADY;IAAA;EAzBhB,EADF,EAoCGiB,UAAU,KAAK,YAAf,gBACC,oBAAC,mBAAD;IACE,YAAY,EAAEC,YADhB;IAEE,aAAa,EAAEK,aAFjB;IAGE,WAAW,EAAEE,WAHf;IAIE,SAAS,EAAExB,SAAS,IAAI,IAJ1B;IAKE,OAAO,EAAEC,OAAO,IAAI;EALtB,EADD,GAQG,IA5CN,CADF;AAgDD;;AAED,MAAMoD,MAAM,GAAGO,uBAAA,CAAWC,MAAX,CAAkB;EAC/BP,IAAI,EAAE;IAAEQ,IAAI,EAAE;EAAR,CADyB;EAE/BC,SAAS,EAAE;IAAED,IAAI,EAAE;EAAR;AAFoB,CAAlB,CAAf;;4BAKe3C,KAAK,CAAC6C,IAAN,CAAWzE,QAAX,C"}
|
|
@@ -9,7 +9,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
|
|
12
|
-
var
|
|
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(
|
|
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(
|
|
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(
|
|
93
|
+
}), /*#__PURE__*/React.createElement(_DatePickerInputWithoutModal.default, {
|
|
94
94
|
inputMode: "end",
|
|
95
95
|
ref: endInput,
|
|
96
96
|
label: endLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,"
|
|
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
|
|
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
|
-
|
|
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(
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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,"
|
|
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 @@
|
|
|
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":""}
|