react-native-paper-dates 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/lib/commonjs/Date/AnimatedCrossView.js +7 -6
- package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
- package/lib/commonjs/Date/AutoSizer.js +4 -3
- package/lib/commonjs/Date/AutoSizer.js.map +1 -1
- package/lib/commonjs/Date/Calendar.js +37 -31
- package/lib/commonjs/Date/Calendar.js.map +1 -1
- package/lib/commonjs/Date/CalendarEdit.js +18 -14
- package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
- package/lib/commonjs/Date/CalendarHeader.js +17 -10
- package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.js +28 -21
- package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContentHeader.js +30 -24
- package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js +4 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +4 -3
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/commonjs/Date/DateRangeInput.js +13 -8
- package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
- package/lib/commonjs/Date/Day.js +4 -1
- package/lib/commonjs/Date/Day.js.map +1 -1
- package/lib/commonjs/Date/DayName.js +4 -3
- package/lib/commonjs/Date/DayName.js.map +1 -1
- package/lib/commonjs/Date/DayNames.js +5 -4
- package/lib/commonjs/Date/DayNames.js.map +1 -1
- package/lib/commonjs/Date/DayRange.js +7 -6
- package/lib/commonjs/Date/DayRange.js.map +1 -1
- package/lib/commonjs/Date/Month.js +45 -34
- package/lib/commonjs/Date/Month.js.map +1 -1
- package/lib/commonjs/Date/Swiper.js +33 -27
- package/lib/commonjs/Date/Swiper.js.map +1 -1
- package/lib/commonjs/Date/Swiper.native.js +27 -21
- package/lib/commonjs/Date/Swiper.native.js.map +1 -1
- package/lib/commonjs/Date/SwiperUtils.js +5 -4
- package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
- package/lib/commonjs/Date/YearPicker.js +26 -18
- package/lib/commonjs/Date/YearPicker.js.map +1 -1
- package/lib/commonjs/Date/dateUtils.js +49 -37
- package/lib/commonjs/Date/dateUtils.js.map +1 -1
- package/lib/commonjs/Date/inputUtils.js +8 -7
- package/lib/commonjs/Date/inputUtils.js.map +1 -1
- package/lib/commonjs/TextInputMask.js +7 -6
- package/lib/commonjs/TextInputMask.js.map +1 -1
- package/lib/commonjs/Time/AmPmSwitcher.js +12 -10
- package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
- package/lib/commonjs/Time/AnalogClock.js +8 -7
- package/lib/commonjs/Time/AnalogClock.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockHours.js +5 -4
- package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockMinutes.js +5 -4
- package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/commonjs/Time/AnimatedClockSwitcher.js +6 -5
- package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/commonjs/Time/TimeInput.js +14 -10
- package/lib/commonjs/Time/TimeInput.js.map +1 -1
- package/lib/commonjs/Time/TimeInputs.js +10 -9
- package/lib/commonjs/Time/TimeInputs.js.map +1 -1
- package/lib/commonjs/Time/TimePicker.js +10 -9
- package/lib/commonjs/Time/TimePicker.js.map +1 -1
- package/lib/commonjs/Time/TimePickerModal.js +17 -13
- package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
- package/lib/commonjs/Time/timeUtils.js +7 -6
- package/lib/commonjs/Time/timeUtils.js.map +1 -1
- package/lib/commonjs/index.js +29 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/translations/enGB.js +20 -0
- package/lib/commonjs/translations/enGB.js.map +1 -0
- package/lib/commonjs/translations/pl.js +20 -0
- package/lib/commonjs/translations/pl.js.map +1 -0
- package/lib/commonjs/utils.js +4 -4
- package/lib/module/Date/AnimatedCrossView.js +7 -6
- package/lib/module/Date/AnimatedCrossView.js.map +1 -1
- package/lib/module/Date/AutoSizer.js +4 -3
- package/lib/module/Date/AutoSizer.js.map +1 -1
- package/lib/module/Date/Calendar.js +37 -31
- package/lib/module/Date/Calendar.js.map +1 -1
- package/lib/module/Date/CalendarEdit.js +18 -14
- package/lib/module/Date/CalendarEdit.js.map +1 -1
- package/lib/module/Date/CalendarHeader.js +16 -9
- package/lib/module/Date/CalendarHeader.js.map +1 -1
- package/lib/module/Date/DatePickerInput.js +28 -21
- package/lib/module/Date/DatePickerInput.js.map +1 -1
- package/lib/module/Date/DatePickerModalContentHeader.js +28 -22
- package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeader.js +4 -1
- package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeaderBackground.js +4 -3
- package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/module/Date/DateRangeInput.js +13 -8
- package/lib/module/Date/DateRangeInput.js.map +1 -1
- package/lib/module/Date/Day.js +4 -1
- package/lib/module/Date/Day.js.map +1 -1
- package/lib/module/Date/DayName.js +4 -3
- package/lib/module/Date/DayName.js.map +1 -1
- package/lib/module/Date/DayNames.js +5 -4
- package/lib/module/Date/DayNames.js.map +1 -1
- package/lib/module/Date/DayRange.js +7 -6
- package/lib/module/Date/DayRange.js.map +1 -1
- package/lib/module/Date/Month.js +41 -31
- package/lib/module/Date/Month.js.map +1 -1
- package/lib/module/Date/Swiper.js +32 -26
- package/lib/module/Date/Swiper.js.map +1 -1
- package/lib/module/Date/Swiper.native.js +27 -21
- package/lib/module/Date/Swiper.native.js.map +1 -1
- package/lib/module/Date/SwiperUtils.js +5 -4
- package/lib/module/Date/SwiperUtils.js.map +1 -1
- package/lib/module/Date/YearPicker.js +26 -18
- package/lib/module/Date/YearPicker.js.map +1 -1
- package/lib/module/Date/dateUtils.js +33 -25
- package/lib/module/Date/dateUtils.js.map +1 -1
- package/lib/module/Date/inputUtils.js +8 -7
- package/lib/module/Date/inputUtils.js.map +1 -1
- package/lib/module/TextInputMask.js +7 -6
- package/lib/module/TextInputMask.js.map +1 -1
- package/lib/module/Time/AmPmSwitcher.js +12 -10
- package/lib/module/Time/AmPmSwitcher.js.map +1 -1
- package/lib/module/Time/AnalogClock.js +8 -7
- package/lib/module/Time/AnalogClock.js.map +1 -1
- package/lib/module/Time/AnalogClockHours.js +5 -4
- package/lib/module/Time/AnalogClockHours.js.map +1 -1
- package/lib/module/Time/AnalogClockMinutes.js +5 -4
- package/lib/module/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/module/Time/AnimatedClockSwitcher.js +6 -5
- package/lib/module/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/module/Time/TimeInput.js +14 -10
- package/lib/module/Time/TimeInput.js.map +1 -1
- package/lib/module/Time/TimeInputs.js +10 -9
- package/lib/module/Time/TimeInputs.js.map +1 -1
- package/lib/module/Time/TimePicker.js +10 -9
- package/lib/module/Time/TimePicker.js.map +1 -1
- package/lib/module/Time/TimePickerModal.js +17 -13
- package/lib/module/Time/TimePickerModal.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/translations/enGB.js +13 -0
- package/lib/module/translations/enGB.js.map +1 -0
- package/lib/module/translations/pl.js +13 -0
- package/lib/module/translations/pl.js.map +1 -0
- package/lib/typescript/Date/DatePickerInput.d.ts +4 -4
- package/lib/typescript/TextInputMask.d.ts +3 -3
- package/lib/typescript/Time/AmPmSwitcher.d.ts +1 -1
- package/lib/typescript/Time/AnalogClock.d.ts +1 -1
- package/lib/typescript/Time/TimeInputs.d.ts +1 -1
- package/lib/typescript/Time/TimePickerModal.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/translations/enGB.d.ts +3 -0
- package/lib/typescript/translations/pl.d.ts +3 -0
- package/package.json +19 -17
- package/src/Date/CalendarEdit.tsx +3 -0
- package/src/Date/CalendarHeader.tsx +14 -2
- package/src/Date/DatePickerInput.tsx +3 -0
- package/src/Date/DatePickerModalContentHeader.tsx +3 -0
- package/src/Date/DatePickerModalHeader.tsx +3 -0
- package/src/Date/DateRangeInput.tsx +7 -1
- package/src/Date/Day.tsx +3 -0
- package/src/Date/Month.tsx +6 -0
- package/src/Date/Swiper.tsx +1 -0
- package/src/Date/YearPicker.tsx +4 -1
- package/src/Time/AmPmSwitcher.tsx +1 -1
- package/src/Time/AnalogClock.tsx +1 -5
- package/src/Time/AnalogClockMinutes.tsx +4 -1
- package/src/Time/TimeInput.tsx +3 -0
- package/src/Time/TimeInputs.tsx +1 -5
- package/src/Time/TimePickerModal.tsx +4 -1
- package/src/index.tsx +2 -0
- package/src/translations/enGB.ts +15 -0
- package/src/translations/pl.ts +15 -0
package/README.md
CHANGED
|
@@ -57,16 +57,20 @@ 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 only have
|
|
60
|
+
Currently we only have en/nl/pl translations but it's really easy to add one extra since it are only some labels and error messages
|
|
61
61
|
```tsx
|
|
62
62
|
// e.g in your index.js
|
|
63
63
|
import {
|
|
64
|
-
en,
|
|
64
|
+
// en,
|
|
65
65
|
// nl,
|
|
66
|
+
// pl,
|
|
67
|
+
enGB,
|
|
66
68
|
registerTranslation,
|
|
67
69
|
} from 'react-native-paper-dates'
|
|
68
|
-
registerTranslation('en', en)
|
|
70
|
+
// registerTranslation('en', en)
|
|
69
71
|
// registerTranslation('nl', nl)
|
|
72
|
+
// registerTranslation('pl', pl)
|
|
73
|
+
registerTranslation('en-GB', enGB)
|
|
70
74
|
```
|
|
71
75
|
|
|
72
76
|
### or register your own
|
|
@@ -421,6 +425,7 @@ MIT
|
|
|
421
425
|
|
|
422
426
|
|
|
423
427
|
### Checkout our other libraries
|
|
428
|
+
- Simple form library for React Native with great UX for developer and end-user [react-native-use-form](https://github.com/web-ridge/react-native-use-form)
|
|
424
429
|
- Smooth and fast cross platform Material Design Tabs for React Native Paper: [react-native-paper-tabs](https://github.com/web-ridge/react-native-paper-tabs)
|
|
425
430
|
- Simple translations in React (Native): [react-ridge-translations](https://github.com/web-ridge/react-ridge-translations)
|
|
426
431
|
- Simple global state management in React (Native): [react-ridge-state](https://github.com/web-ridge/react-ridge-state)
|
|
@@ -15,12 +15,13 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
15
15
|
|
|
16
16
|
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; }
|
|
17
17
|
|
|
18
|
-
function AnimatedCrossView({
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
function AnimatedCrossView(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
// visible,
|
|
21
|
+
collapsed,
|
|
22
|
+
calendar,
|
|
23
|
+
calendarEdit
|
|
24
|
+
} = _ref;
|
|
24
25
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
25
26
|
const calendarOpacity = React.useRef(new _reactNative.Animated.Value(collapsed ? 1 : 0));
|
|
26
27
|
React.useEffect(() => {
|
|
@@ -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":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,SAASA,iBAAT,
|
|
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"]}
|
|
@@ -13,9 +13,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
13
13
|
|
|
14
14
|
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; }
|
|
15
15
|
|
|
16
|
-
function AutoSizer({
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
function AutoSizer(_ref) {
|
|
17
|
+
let {
|
|
18
|
+
children
|
|
19
|
+
} = _ref;
|
|
19
20
|
const [layout, setLayout] = React.useState(null);
|
|
20
21
|
const onLayout = React.useCallback(event => {
|
|
21
22
|
const nl = event.nativeEvent.layout; // https://github.com/necolas/react-native-web/issues/1704
|
|
@@ -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,
|
|
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"]}
|
|
@@ -104,37 +104,43 @@ function Calendar(props) {
|
|
|
104
104
|
initialIndex: (0, _dateUtils.getInitialIndex)(firstDate),
|
|
105
105
|
selectedYear: selectedYear,
|
|
106
106
|
scrollMode: scrollMode,
|
|
107
|
-
renderItem:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
107
|
+
renderItem: _ref => {
|
|
108
|
+
let {
|
|
109
|
+
index
|
|
110
|
+
} = _ref;
|
|
111
|
+
return /*#__PURE__*/React.createElement(_Month.default, {
|
|
112
|
+
locale: locale,
|
|
113
|
+
mode: mode,
|
|
114
|
+
key: index,
|
|
115
|
+
validRange: validRange,
|
|
116
|
+
index: index,
|
|
117
|
+
startDate: startDate,
|
|
118
|
+
endDate: endDate,
|
|
119
|
+
date: date,
|
|
120
|
+
dates: dates,
|
|
121
|
+
onPressYear: onPressYear,
|
|
122
|
+
selectingYear: selectingYear,
|
|
123
|
+
onPressDate: onPressDate,
|
|
124
|
+
scrollMode: scrollMode,
|
|
125
|
+
primaryColor: theme.colors.primary,
|
|
126
|
+
selectColor: selectColor,
|
|
127
|
+
roundness: theme.roundness,
|
|
128
|
+
disableWeekDays: disableWeekDays
|
|
129
|
+
});
|
|
130
|
+
},
|
|
131
|
+
renderHeader: _ref2 => {
|
|
132
|
+
let {
|
|
133
|
+
onPrev,
|
|
134
|
+
onNext
|
|
135
|
+
} = _ref2;
|
|
136
|
+
return /*#__PURE__*/React.createElement(_CalendarHeader.default, {
|
|
137
|
+
locale: locale,
|
|
138
|
+
onPrev: onPrev,
|
|
139
|
+
onNext: onNext,
|
|
140
|
+
scrollMode: scrollMode,
|
|
141
|
+
disableWeekDays: disableWeekDays
|
|
142
|
+
});
|
|
143
|
+
}
|
|
138
144
|
}), scrollMode === 'horizontal' ? /*#__PURE__*/React.createElement(_YearPicker.default, {
|
|
139
145
|
selectedYear: selectedYear,
|
|
140
146
|
selectingYear: selectingYear,
|
|
@@ -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,"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"]}
|
|
@@ -17,17 +17,18 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
17
17
|
|
|
18
18
|
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; }
|
|
19
19
|
|
|
20
|
-
function CalendarEdit({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
function CalendarEdit(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
mode,
|
|
23
|
+
state,
|
|
24
|
+
label = '',
|
|
25
|
+
startLabel = 'Start',
|
|
26
|
+
endLabel = 'End',
|
|
27
|
+
collapsed,
|
|
28
|
+
onChange,
|
|
29
|
+
validRange,
|
|
30
|
+
locale
|
|
31
|
+
} = _ref;
|
|
31
32
|
const dateInput = React.useRef(null);
|
|
32
33
|
const startInput = React.useRef(null);
|
|
33
34
|
const endInput = React.useRef(null); // when switching views focus, or un-focus text input
|
|
@@ -71,7 +72,8 @@ function CalendarEdit({
|
|
|
71
72
|
onSubmitEditing: onSubmitInput,
|
|
72
73
|
validRange: validRange,
|
|
73
74
|
locale: locale,
|
|
74
|
-
withModal: false
|
|
75
|
+
withModal: false,
|
|
76
|
+
autoCompleteType: 'off'
|
|
75
77
|
}) : null, mode === 'range' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DatePickerInput.default, {
|
|
76
78
|
inputMode: "start",
|
|
77
79
|
ref: startInput,
|
|
@@ -84,7 +86,8 @@ function CalendarEdit({
|
|
|
84
86
|
onSubmitEditing: onSubmitStartInput,
|
|
85
87
|
validRange: validRange,
|
|
86
88
|
locale: locale,
|
|
87
|
-
withModal: false
|
|
89
|
+
withModal: false,
|
|
90
|
+
autoCompleteType: 'off'
|
|
88
91
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
89
92
|
style: styles.separator
|
|
90
93
|
}), /*#__PURE__*/React.createElement(_DatePickerInput.default, {
|
|
@@ -98,7 +101,8 @@ function CalendarEdit({
|
|
|
98
101
|
onSubmitEditing: onSubmitEndInput,
|
|
99
102
|
validRange: validRange,
|
|
100
103
|
locale: locale,
|
|
101
|
-
withModal: false
|
|
104
|
+
withModal: false,
|
|
105
|
+
autoCompleteType: 'off'
|
|
102
106
|
})) : null));
|
|
103
107
|
}
|
|
104
108
|
|
|
@@ -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","inner","date","startDate","separator","endDate","StyleSheet","create","padding","flexDirection","inputContainer","flex","input","width","memo"],"mappings":";;;;;;;AAAA;;AACA;;AAUA;;;;;;;;AAEA,SAASA,YAAT,
|
|
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","inner","date","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 <View style={styles.inner}>\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 autoCompleteType={'off'}\n />\n ) : null}\n {mode === 'range' ? (\n <>\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 autoCompleteType={'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 autoCompleteType={'off'}\n />\n </>\n ) : null}\n </View>\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"]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getCalendarHeaderHeight = getCalendarHeaderHeight;
|
|
7
6
|
exports.default = void 0;
|
|
7
|
+
exports.getCalendarHeaderHeight = getCalendarHeaderHeight;
|
|
8
8
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
|
|
@@ -30,13 +30,14 @@ function getCalendarHeaderHeight(scrollMode) {
|
|
|
30
30
|
return _DayNames.dayNamesHeight;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
function CalendarHeader({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
function CalendarHeader(_ref) {
|
|
34
|
+
let {
|
|
35
|
+
scrollMode,
|
|
36
|
+
onPrev,
|
|
37
|
+
onNext,
|
|
38
|
+
disableWeekDays,
|
|
39
|
+
locale
|
|
40
|
+
} = _ref;
|
|
40
41
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
41
42
|
const isHorizontal = scrollMode === 'horizontal';
|
|
42
43
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
@@ -54,14 +55,20 @@ function CalendarHeader({
|
|
|
54
55
|
}]
|
|
55
56
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
|
|
56
57
|
icon: "chevron-left",
|
|
57
|
-
onPress: onPrev
|
|
58
|
+
onPress: onPrev // RN types bug
|
|
59
|
+
,
|
|
60
|
+
hasTVPreferredFocus: undefined,
|
|
61
|
+
tvParallaxProperties: undefined
|
|
58
62
|
})), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
59
63
|
style: [styles.buttonWrapper, {
|
|
60
64
|
backgroundColor: theme.colors.surface
|
|
61
65
|
}]
|
|
62
66
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.IconButton, {
|
|
63
67
|
icon: "chevron-right",
|
|
64
|
-
onPress: onNext
|
|
68
|
+
onPress: onNext // RN types bug
|
|
69
|
+
,
|
|
70
|
+
hasTVPreferredFocus: undefined,
|
|
71
|
+
tvParallaxProperties: undefined
|
|
65
72
|
}))) : null, /*#__PURE__*/React.createElement(_DayNames.default, {
|
|
66
73
|
disableWeekDays: disableWeekDays,
|
|
67
74
|
locale: locale
|
|
@@ -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;;;;;;AAGA,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,
|
|
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","undefined","StyleSheet","create","position","top","right","left","zIndex","height","marginTop","marginBottom","flexDirection","alignItems","flex","React","memo"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAGA,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,OAAO,EAAEb,MAFX,CAGE;AAHF;AAIE,IAAA,mBAAmB,EAAEc,SAJvB;AAKE,IAAA,oBAAoB,EAAEA;AALxB,IANF,CAFF,eAiBE,oBAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLR,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,OAAO,EAAEZ,MAFX,CAGE;AAHF;AAIE,IAAA,mBAAmB,EAAEa,SAJvB;AAKE,IAAA,oBAAoB,EAAEA;AALxB,IANF,CAjBF,CADW,GAiCT,IAlCN,eAmCE,oBAAC,iBAAD;AAAU,IAAA,eAAe,EAAEZ,eAA3B;AAA4C,IAAA,MAAM,EAAEC;AAApD,IAnCF,CADF;AAuCD;;AAED,MAAMG,MAAM,GAAGS,wBAAWC,MAAX,CAAkB;AAC/BT,EAAAA,gBAAgB,EAAE;AAChBU,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/Bb,EAAAA,eAAe,EAAE;AACfc,IAAAA,MAAM,EAAE7B,qBADO;AAEf8B,IAAAA,SAAS,EAAE7B,wBAFI;AAGf8B,IAAAA,YAAY,EAAE7B,2BAHC;AAIf8B,IAAAA,aAAa,EAAE,KAJA;AAKfC,IAAAA,UAAU,EAAE;AALG,GARc;AAe/BhB,EAAAA,aAAa,EAAE,EAfgB;AAgB/BD,EAAAA,MAAM,EAAE;AAAEkB,IAAAA,IAAI,EAAE;AAAR;AAhBuB,CAAlB,CAAf;;4BAmBeC,KAAK,CAACC,IAAN,CAAW9B,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'\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 onPress={onPrev}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\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 onPress={onNext}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\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"]}
|
|
@@ -27,18 +27,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
27
27
|
|
|
28
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); }
|
|
29
29
|
|
|
30
|
-
function DatePickerInput({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
function DatePickerInput(_ref, ref) {
|
|
31
|
+
let {
|
|
32
|
+
label,
|
|
33
|
+
value,
|
|
34
|
+
onChange,
|
|
35
|
+
style,
|
|
36
|
+
locale,
|
|
37
|
+
validRange,
|
|
38
|
+
inputMode,
|
|
39
|
+
withModal = true,
|
|
40
|
+
withDateFormatInLabel = true,
|
|
41
|
+
...rest
|
|
42
|
+
} = _ref;
|
|
42
43
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
43
44
|
const {
|
|
44
45
|
formattedValue,
|
|
@@ -57,9 +58,10 @@ function DatePickerInput({
|
|
|
57
58
|
setVisible(false);
|
|
58
59
|
}, [setVisible]);
|
|
59
60
|
const onChangeRef = (0, _utils.useLatest)(onChange);
|
|
60
|
-
const onInnerConfirm = React.useCallback(
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
const onInnerConfirm = React.useCallback(_ref2 => {
|
|
62
|
+
let {
|
|
63
|
+
date
|
|
64
|
+
} = _ref2;
|
|
63
65
|
setVisible(false);
|
|
64
66
|
onChangeRef.current(date);
|
|
65
67
|
}, [setVisible, onChangeRef]);
|
|
@@ -84,7 +86,10 @@ function DatePickerInput({
|
|
|
84
86
|
size: 24,
|
|
85
87
|
style: styles.calendarButton,
|
|
86
88
|
icon: "calendar",
|
|
87
|
-
onPress: () => setVisible(true)
|
|
89
|
+
onPress: () => setVisible(true) // RN types bug
|
|
90
|
+
,
|
|
91
|
+
hasTVPreferredFocus: undefined,
|
|
92
|
+
tvParallaxProperties: undefined
|
|
88
93
|
}) : null), /*#__PURE__*/React.createElement(_reactNativePaper.HelperText, {
|
|
89
94
|
type: "error",
|
|
90
95
|
visible: !!error
|
|
@@ -99,11 +104,13 @@ function DatePickerInput({
|
|
|
99
104
|
}) : null);
|
|
100
105
|
}
|
|
101
106
|
|
|
102
|
-
function getLabel({
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
+
function getLabel(_ref3) {
|
|
108
|
+
let {
|
|
109
|
+
withDateFormatInLabel,
|
|
110
|
+
inputFormat,
|
|
111
|
+
label
|
|
112
|
+
} = _ref3;
|
|
113
|
+
|
|
107
114
|
if (withDateFormatInLabel) {
|
|
108
115
|
return label ? `${label} (${inputFormat})` : inputFormat;
|
|
109
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DatePickerInput.tsx"],"names":["DatePickerInput","label","value","onChange","style","locale","validRange","inputMode","withModal","withDateFormatInLabel","rest","
|
|
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","undefined","StyleSheet","create","minWidth","flexDirection","position","alignItems","flexGrow","alignSelf","right","forwardRef"],"mappings":"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","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 }: Omit<React.ComponentProps<typeof TextInput>, 'value' | 'onChange'> & {\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 },\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({ label, inputFormat, withDateFormatInLabel })}\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 // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\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 />\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 alignSelf: 'flex-start',\n },\n input: {\n flexGrow: 1,\n },\n calendarButton: { position: 'absolute', right: 0 },\n})\nexport default React.forwardRef(DatePickerInput)\n"]}
|