react-native-paper-dates 0.4.5 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -16
- package/lib/commonjs/Date/AnimatedCrossView.js +9 -8
- package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
- package/lib/commonjs/Date/AutoSizer.js +6 -5
- package/lib/commonjs/Date/AutoSizer.js.map +1 -1
- package/lib/commonjs/Date/Calendar.js +46 -39
- package/lib/commonjs/Date/Calendar.js.map +1 -1
- package/lib/commonjs/Date/CalendarEdit.js +35 -110
- package/lib/commonjs/Date/CalendarEdit.js.map +1 -1
- package/lib/commonjs/Date/CalendarHeader.js +19 -12
- package/lib/commonjs/Date/CalendarHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.js +93 -20
- package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModal.js +4 -6
- package/lib/commonjs/Date/DatePickerModal.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContent.js +9 -5
- package/lib/commonjs/Date/DatePickerModalContent.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContentHeader.js +42 -34
- package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js +14 -6
- package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +6 -5
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/commonjs/Date/DateRangeInput.js +23 -24
- package/lib/commonjs/Date/DateRangeInput.js.map +1 -1
- package/lib/commonjs/Date/Day.js +7 -3
- package/lib/commonjs/Date/Day.js.map +1 -1
- package/lib/commonjs/Date/DayName.js +6 -5
- package/lib/commonjs/Date/DayName.js.map +1 -1
- package/lib/commonjs/Date/DayNames.js +7 -6
- package/lib/commonjs/Date/DayNames.js.map +1 -1
- package/lib/commonjs/Date/DayRange.js +9 -8
- package/lib/commonjs/Date/DayRange.js.map +1 -1
- package/lib/commonjs/Date/Month.js +57 -49
- package/lib/commonjs/Date/Month.js.map +1 -1
- package/lib/commonjs/Date/Swiper.js +35 -29
- package/lib/commonjs/Date/Swiper.js.map +1 -1
- package/lib/commonjs/Date/Swiper.native.js +29 -23
- package/lib/commonjs/Date/Swiper.native.js.map +1 -1
- package/lib/commonjs/Date/SwiperUtils.js +7 -6
- package/lib/commonjs/Date/SwiperUtils.js.map +1 -1
- package/lib/commonjs/Date/YearPicker.js +28 -20
- package/lib/commonjs/Date/YearPicker.js.map +1 -1
- package/lib/commonjs/Date/dateUtils.js +107 -38
- package/lib/commonjs/Date/dateUtils.js.map +1 -1
- package/lib/commonjs/Date/inputUtils.js +84 -0
- package/lib/commonjs/Date/inputUtils.js.map +1 -0
- package/lib/commonjs/TextInputMask.js +11 -10
- package/lib/commonjs/TextInputMask.js.map +1 -1
- package/lib/commonjs/Time/AmPmSwitcher.js +37 -19
- package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
- package/lib/commonjs/Time/AnalogClock.js +28 -26
- package/lib/commonjs/Time/AnalogClock.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockHours.js +18 -12
- package/lib/commonjs/Time/AnalogClockHours.js.map +1 -1
- package/lib/commonjs/Time/AnalogClockMinutes.js +9 -8
- package/lib/commonjs/Time/AnalogClockMinutes.js.map +1 -1
- package/lib/commonjs/Time/AnimatedClockSwitcher.js +8 -7
- package/lib/commonjs/Time/AnimatedClockSwitcher.js.map +1 -1
- package/lib/commonjs/Time/TimeInput.js +16 -12
- package/lib/commonjs/Time/TimeInput.js.map +1 -1
- package/lib/commonjs/Time/TimeInputs.js +12 -11
- package/lib/commonjs/Time/TimeInputs.js.map +1 -1
- package/lib/commonjs/Time/TimePicker.js +39 -17
- package/lib/commonjs/Time/TimePicker.js.map +1 -1
- package/lib/commonjs/Time/TimePickerModal.js +19 -15
- package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
- package/lib/commonjs/Time/timeUtils.js +17 -9
- package/lib/commonjs/Time/timeUtils.js.map +1 -1
- package/lib/commonjs/index.js +66 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/translations/en.js +20 -0
- package/lib/commonjs/translations/en.js.map +1 -0
- package/lib/commonjs/translations/enGB.js +20 -0
- package/lib/commonjs/translations/enGB.js.map +1 -0
- package/lib/commonjs/translations/nl.js +20 -0
- package/lib/commonjs/translations/nl.js.map +1 -0
- package/lib/commonjs/translations/pl.js +20 -0
- package/lib/commonjs/translations/pl.js.map +1 -0
- package/lib/commonjs/translations/utils.js +31 -0
- package/lib/commonjs/translations/utils.js.map +1 -0
- package/lib/commonjs/utils.js +19 -9
- package/lib/commonjs/utils.js.map +1 -1
- 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 +46 -39
- package/lib/module/Date/Calendar.js.map +1 -1
- package/lib/module/Date/CalendarEdit.js +31 -103
- 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 +88 -18
- package/lib/module/Date/DatePickerInput.js.map +1 -1
- package/lib/module/Date/DatePickerModal.js +3 -5
- package/lib/module/Date/DatePickerModal.js.map +1 -1
- package/lib/module/Date/DatePickerModalContent.js +7 -3
- package/lib/module/Date/DatePickerModalContent.js.map +1 -1
- package/lib/module/Date/DatePickerModalContentHeader.js +37 -30
- package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeader.js +11 -4
- 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 +22 -22
- package/lib/module/Date/DateRangeInput.js.map +1 -1
- package/lib/module/Date/Day.js +5 -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 +52 -45
- 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 +79 -30
- package/lib/module/Date/dateUtils.js.map +1 -1
- package/lib/module/Date/inputUtils.js +70 -0
- package/lib/module/Date/inputUtils.js.map +1 -0
- package/lib/module/TextInputMask.js +9 -8
- package/lib/module/TextInputMask.js.map +1 -1
- package/lib/module/Time/AmPmSwitcher.js +35 -18
- package/lib/module/Time/AmPmSwitcher.js.map +1 -1
- package/lib/module/Time/AnalogClock.js +20 -17
- package/lib/module/Time/AnalogClock.js.map +1 -1
- package/lib/module/Time/AnalogClockHours.js +15 -10
- package/lib/module/Time/AnalogClockHours.js.map +1 -1
- package/lib/module/Time/AnalogClockMinutes.js +6 -5
- 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 +34 -13
- 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/Time/timeUtils.js +8 -2
- package/lib/module/Time/timeUtils.js.map +1 -1
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/translations/en.js +13 -0
- package/lib/module/translations/en.js.map +1 -0
- package/lib/module/translations/enGB.js +13 -0
- package/lib/module/translations/enGB.js.map +1 -0
- package/lib/module/translations/nl.js +13 -0
- package/lib/module/translations/nl.js.map +1 -0
- package/lib/module/translations/pl.js +13 -0
- package/lib/module/translations/pl.js.map +1 -0
- package/lib/module/translations/utils.js +22 -0
- package/lib/module/translations/utils.js.map +1 -0
- package/lib/module/utils.js +11 -5
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/{src/Date → Date}/AnimatedCrossView.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/AutoSizer.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Calendar.d.ts +5 -3
- package/lib/typescript/{src/Date → Date}/CalendarEdit.d.ts +4 -3
- package/lib/typescript/{src/Date → Date}/CalendarHeader.d.ts +1 -1
- package/lib/typescript/Date/DatePickerInput.d.ts +18 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModal.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModalContent.d.ts +2 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModalContentHeader.d.ts +4 -4
- package/lib/typescript/{src/Date → Date}/DatePickerModalHeader.d.ts +1 -0
- package/lib/typescript/{src/Date → Date}/DatePickerModalHeaderBackground.d.ts +0 -0
- package/lib/typescript/Date/DateRangeInput.d.ts +3 -0
- package/lib/typescript/{src/Date → Date}/Day.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DayName.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DayNames.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/DayRange.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Month.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Swiper.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/Swiper.native.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/SwiperUtils.d.ts +1 -1
- package/lib/typescript/{src/Date → Date}/Week.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/YearPicker.d.ts +0 -0
- package/lib/typescript/{src/Date → Date}/dateUtils.d.ts +15 -0
- package/lib/typescript/{src/Date → Date}/dateUtils.test.d.ts +0 -0
- package/lib/typescript/Date/inputUtils.d.ts +14 -0
- package/lib/typescript/TextInputMask.d.ts +11 -0
- package/lib/typescript/Time/AmPmSwitcher.d.ts +4 -0
- package/lib/typescript/{src/Time → Time}/AnalogClock.d.ts +1 -2
- package/lib/typescript/{src/Time → Time}/AnalogClockHours.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/AnalogClockMinutes.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/AnimatedClockSwitcher.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/TimeInput.d.ts +0 -0
- package/lib/typescript/{src/Time → Time}/TimeInputs.d.ts +1 -1
- package/lib/typescript/{src/Time → Time}/TimePicker.d.ts +4 -0
- package/lib/typescript/{src/Time → Time}/TimePickerModal.d.ts +1 -1
- package/lib/typescript/{src/Time → Time}/timeUtils.d.ts +1 -0
- package/lib/typescript/index.d.ts +13 -0
- package/lib/typescript/translations/en.d.ts +3 -0
- package/lib/typescript/translations/enGB.d.ts +3 -0
- package/lib/typescript/translations/nl.d.ts +3 -0
- package/lib/typescript/translations/pl.d.ts +3 -0
- package/lib/typescript/translations/utils.d.ts +13 -0
- package/lib/typescript/utils.d.ts +58 -0
- package/package.json +39 -31
- package/src/.DS_Store +0 -0
- package/src/Date/Calendar.tsx +14 -13
- package/src/Date/CalendarEdit.tsx +21 -120
- package/src/Date/CalendarHeader.tsx +15 -3
- package/src/Date/DatePickerInput.tsx +103 -25
- package/src/Date/DatePickerModal.tsx +3 -8
- package/src/Date/DatePickerModalContent.tsx +6 -0
- package/src/Date/DatePickerModalContentHeader.tsx +21 -12
- package/src/Date/DatePickerModalHeader.tsx +13 -2
- package/src/Date/DateRangeInput.tsx +26 -17
- package/src/Date/Day.tsx +4 -0
- package/src/Date/Month.tsx +18 -44
- package/src/Date/Swiper.tsx +1 -0
- package/src/Date/SwiperUtils.ts +1 -1
- package/src/Date/YearPicker.tsx +4 -1
- package/src/Date/dateUtils.tsx +71 -10
- package/src/Date/inputUtils.ts +94 -0
- package/src/TextInputMask.tsx +10 -3
- package/src/Time/AmPmSwitcher.tsx +20 -11
- package/src/Time/AnalogClock.tsx +10 -18
- package/src/Time/AnalogClockHours.tsx +15 -6
- package/src/Time/AnalogClockMinutes.tsx +5 -2
- package/src/Time/TimeInput.tsx +3 -0
- package/src/Time/TimeInputs.tsx +1 -5
- package/src/Time/TimePicker.tsx +46 -23
- package/src/Time/TimePickerModal.tsx +4 -1
- package/src/Time/timeUtils.ts +7 -1
- package/src/index.tsx +7 -0
- package/src/translations/en.ts +15 -0
- package/src/translations/enGB.ts +15 -0
- package/src/translations/nl.ts +15 -0
- package/src/translations/pl.ts +15 -0
- package/src/translations/utils.ts +42 -0
- package/src/utils.ts +13 -5
- package/lib/typescript/src/Date/DatePickerInput.d.ts +0 -1
- package/lib/typescript/src/Date/DateRangeInput.d.ts +0 -1
- package/lib/typescript/src/TextInputMask.d.ts +0 -3
- package/lib/typescript/src/Time/AmPmSwitcher.d.ts +0 -4
- package/lib/typescript/src/index.d.ts +0 -6
- package/lib/typescript/src/utils.d.ts +0 -7
|
@@ -19,9 +19,9 @@ var _AutoSizer = _interopRequireDefault(require("./AutoSizer"));
|
|
|
19
19
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
22
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
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); }
|
|
23
23
|
|
|
24
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
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; }
|
|
25
25
|
|
|
26
26
|
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); }
|
|
27
27
|
|
|
@@ -34,10 +34,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
function getVisibleArray(i, {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
function getVisibleArray(i, _ref) {
|
|
38
|
+
let {
|
|
39
|
+
isHorizontal,
|
|
40
|
+
height
|
|
41
|
+
} = _ref;
|
|
42
|
+
|
|
41
43
|
if (isHorizontal || height < 700) {
|
|
42
44
|
return [i - 1, i, i + 1];
|
|
43
45
|
}
|
|
@@ -46,25 +48,29 @@ function getVisibleArray(i, {
|
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
function Swiper(props) {
|
|
49
|
-
return /*#__PURE__*/React.createElement(_AutoSizer.default, null,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
return /*#__PURE__*/React.createElement(_AutoSizer.default, null, _ref2 => {
|
|
52
|
+
let {
|
|
53
|
+
width,
|
|
54
|
+
height
|
|
55
|
+
} = _ref2;
|
|
56
|
+
return /*#__PURE__*/React.createElement(SwiperInner, _extends({}, props, {
|
|
57
|
+
width: width,
|
|
58
|
+
height: height
|
|
59
|
+
}));
|
|
60
|
+
});
|
|
56
61
|
}
|
|
57
62
|
|
|
58
|
-
function SwiperInner({
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
function SwiperInner(_ref3) {
|
|
64
|
+
let {
|
|
65
|
+
scrollMode,
|
|
66
|
+
renderItem,
|
|
67
|
+
renderHeader,
|
|
68
|
+
renderFooter,
|
|
69
|
+
selectedYear,
|
|
70
|
+
initialIndex,
|
|
71
|
+
width,
|
|
72
|
+
height
|
|
73
|
+
} = _ref3;
|
|
68
74
|
const idx = React.useRef(initialIndex);
|
|
69
75
|
const isHorizontal = scrollMode === 'horizontal';
|
|
70
76
|
const [visibleIndexes, setVisibleIndexes] = React.useState(getVisibleArray(initialIndex, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Swiper.native.tsx"],"names":["styles","StyleSheet","create","viewPager","flex","inner","position","getVisibleArray","i","isHorizontal","height","Swiper","props","width","SwiperInner","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","idx","React","useRef","visibleIndexes","setVisibleIndexes","useState","parentRef","scrollTo","useCallback","index","animated","current","offset","montHeaderHeight","y","x","onPrev","onNext","scrollToInitial","onMomentumScrollEnd","e","contentOffset","nativeEvent","viewSize","layoutMeasurement","newIndex","Math","floor","beginOffset","renderProps","currentIndexRef","estimatedMonthHeight","totalMonths","Array","length","fill","undefined","map","_","vi","top","left","right","bottom","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n StyleSheet,\n View,\n} from 'react-native'\nimport {\n getHorizontalMonthOffset,\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { SwiperProps, useYearChange } from './SwiperUtils'\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport AutoSizer from './AutoSizer'\n\nconst styles = StyleSheet.create({\n viewPager: {\n flex: 1,\n },\n inner: {\n position: 'relative',\n },\n})\n\nfunction getVisibleArray(\n i: number,\n { isHorizontal, height }: { isHorizontal: boolean; height: number }\n) {\n if (isHorizontal || height < 700) {\n return [i - 1, i, i + 1]\n }\n return [i - 2, i - 1, i, i + 1, i + 2]\n}\n\nfunction Swiper(props: SwiperProps) {\n return (\n <AutoSizer>\n {({ width, height }) => (\n <SwiperInner {...props} width={width} height={height} />\n )}\n </AutoSizer>\n )\n}\n\nfunction SwiperInner({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n width,\n height,\n}: SwiperProps & { width: number; height: number }) {\n const idx = React.useRef<number>(initialIndex)\n const isHorizontal = scrollMode === 'horizontal'\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n getVisibleArray(initialIndex, { isHorizontal, height })\n )\n\n const parentRef = React.useRef<ScrollView | null>(null)\n\n const scrollTo = React.useCallback(\n (index: number, animated: boolean) => {\n idx.current = index\n setVisibleIndexes(getVisibleArray(index, { isHorizontal, height }))\n\n if (!parentRef.current) {\n return\n }\n const offset = isHorizontal\n ? getHorizontalMonthOffset(index, width)\n : getVerticalMonthsOffset(index) - montHeaderHeight\n\n if (isHorizontal) {\n parentRef.current.scrollTo({\n y: 0,\n x: offset,\n animated,\n })\n } else {\n parentRef.current.scrollTo({\n y: offset,\n x: 0,\n animated,\n })\n }\n },\n [parentRef, isHorizontal, width, height]\n )\n\n const onPrev = React.useCallback(() => {\n scrollTo(idx.current - 1, true)\n }, [scrollTo, idx])\n\n const onNext = React.useCallback(() => {\n scrollTo(idx.current + 1, true)\n }, [scrollTo, idx])\n\n const scrollToInitial = React.useCallback(() => {\n scrollTo(idx.current, false)\n }, [scrollTo])\n\n const onMomentumScrollEnd = React.useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffset = e.nativeEvent.contentOffset\n const viewSize = e.nativeEvent.layoutMeasurement\n const newIndex = isHorizontal\n ? Math.floor(contentOffset.x / viewSize.width)\n : getIndexFromVerticalOffset(contentOffset.y - beginOffset)\n\n if (newIndex === 0) {\n return\n }\n\n if (idx.current !== newIndex) {\n idx.current = newIndex\n setVisibleIndexes(getVisibleArray(newIndex, { isHorizontal, height }))\n }\n },\n [idx, height, isHorizontal]\n )\n\n const renderProps = {\n index: 0,\n onPrev,\n onNext,\n }\n\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n scrollTo(newIndex, false)\n }\n },\n {\n selectedYear,\n currentIndexRef: idx,\n }\n )\n\n return (\n <>\n <ScrollView\n ref={parentRef}\n horizontal={isHorizontal}\n pagingEnabled={isHorizontal}\n style={styles.viewPager}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollEndDrag={onMomentumScrollEnd}\n onLayout={scrollToInitial}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n decelerationRate=\"fast\"\n scrollEventThrottle={10}\n >\n <View\n style={[\n styles.inner,\n {\n height: isHorizontal\n ? height\n : estimatedMonthHeight * totalMonths,\n width: isHorizontal ? width * totalMonths : width,\n },\n ]}\n >\n {visibleIndexes\n ? new Array(visibleIndexes.length).fill(undefined).map((_, vi) => (\n <View\n key={vi}\n style={{\n top: isHorizontal\n ? 0\n : getVerticalMonthsOffset(visibleIndexes[vi]),\n left: isHorizontal\n ? getHorizontalMonthOffset(visibleIndexes[vi], width)\n : 0,\n right: isHorizontal ? undefined : 0,\n bottom: isHorizontal ? 0 : undefined,\n position: 'absolute',\n width: isHorizontal ? width : undefined,\n height: isHorizontal\n ? undefined\n : getMonthHeight(scrollMode, visibleIndexes[vi]),\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: onPrev,\n onNext: onNext,\n })}\n </View>\n ))\n : null}\n </View>\n </ScrollView>\n {renderHeader && renderHeader(renderProps)}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nexport default React.memo(Swiper)\n"]}
|
|
1
|
+
{"version":3,"sources":["Swiper.native.tsx"],"names":["styles","StyleSheet","create","viewPager","flex","inner","position","getVisibleArray","i","isHorizontal","height","Swiper","props","width","SwiperInner","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","idx","React","useRef","visibleIndexes","setVisibleIndexes","useState","parentRef","scrollTo","useCallback","index","animated","current","offset","montHeaderHeight","y","x","onPrev","onNext","scrollToInitial","onMomentumScrollEnd","e","contentOffset","nativeEvent","viewSize","layoutMeasurement","newIndex","Math","floor","beginOffset","renderProps","currentIndexRef","estimatedMonthHeight","totalMonths","Array","length","fill","undefined","map","_","vi","top","left","right","bottom","memo"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport {\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n StyleSheet,\n View,\n} from 'react-native'\nimport {\n getHorizontalMonthOffset,\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { SwiperProps, useYearChange } from './SwiperUtils'\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport AutoSizer from './AutoSizer'\n\nconst styles = StyleSheet.create({\n viewPager: {\n flex: 1,\n },\n inner: {\n position: 'relative',\n },\n})\n\nfunction getVisibleArray(\n i: number,\n { isHorizontal, height }: { isHorizontal: boolean; height: number }\n) {\n if (isHorizontal || height < 700) {\n return [i - 1, i, i + 1]\n }\n return [i - 2, i - 1, i, i + 1, i + 2]\n}\n\nfunction Swiper(props: SwiperProps) {\n return (\n <AutoSizer>\n {({ width, height }) => (\n <SwiperInner {...props} width={width} height={height} />\n )}\n </AutoSizer>\n )\n}\n\nfunction SwiperInner({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n width,\n height,\n}: SwiperProps & { width: number; height: number }) {\n const idx = React.useRef<number>(initialIndex)\n const isHorizontal = scrollMode === 'horizontal'\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n getVisibleArray(initialIndex, { isHorizontal, height })\n )\n\n const parentRef = React.useRef<ScrollView | null>(null)\n\n const scrollTo = React.useCallback(\n (index: number, animated: boolean) => {\n idx.current = index\n setVisibleIndexes(getVisibleArray(index, { isHorizontal, height }))\n\n if (!parentRef.current) {\n return\n }\n const offset = isHorizontal\n ? getHorizontalMonthOffset(index, width)\n : getVerticalMonthsOffset(index) - montHeaderHeight\n\n if (isHorizontal) {\n parentRef.current.scrollTo({\n y: 0,\n x: offset,\n animated,\n })\n } else {\n parentRef.current.scrollTo({\n y: offset,\n x: 0,\n animated,\n })\n }\n },\n [parentRef, isHorizontal, width, height]\n )\n\n const onPrev = React.useCallback(() => {\n scrollTo(idx.current - 1, true)\n }, [scrollTo, idx])\n\n const onNext = React.useCallback(() => {\n scrollTo(idx.current + 1, true)\n }, [scrollTo, idx])\n\n const scrollToInitial = React.useCallback(() => {\n scrollTo(idx.current, false)\n }, [scrollTo])\n\n const onMomentumScrollEnd = React.useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffset = e.nativeEvent.contentOffset\n const viewSize = e.nativeEvent.layoutMeasurement\n const newIndex = isHorizontal\n ? Math.floor(contentOffset.x / viewSize.width)\n : getIndexFromVerticalOffset(contentOffset.y - beginOffset)\n\n if (newIndex === 0) {\n return\n }\n\n if (idx.current !== newIndex) {\n idx.current = newIndex\n setVisibleIndexes(getVisibleArray(newIndex, { isHorizontal, height }))\n }\n },\n [idx, height, isHorizontal]\n )\n\n const renderProps = {\n index: 0,\n onPrev,\n onNext,\n }\n\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n scrollTo(newIndex, false)\n }\n },\n {\n selectedYear,\n currentIndexRef: idx,\n }\n )\n\n return (\n <>\n <ScrollView\n ref={parentRef}\n horizontal={isHorizontal}\n pagingEnabled={isHorizontal}\n style={styles.viewPager}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollEndDrag={onMomentumScrollEnd}\n onLayout={scrollToInitial}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n decelerationRate=\"fast\"\n scrollEventThrottle={10}\n >\n <View\n style={[\n styles.inner,\n {\n height: isHorizontal\n ? height\n : estimatedMonthHeight * totalMonths,\n width: isHorizontal ? width * totalMonths : width,\n },\n ]}\n >\n {visibleIndexes\n ? new Array(visibleIndexes.length).fill(undefined).map((_, vi) => (\n <View\n key={vi}\n style={{\n top: isHorizontal\n ? 0\n : getVerticalMonthsOffset(visibleIndexes[vi]),\n left: isHorizontal\n ? getHorizontalMonthOffset(visibleIndexes[vi], width)\n : 0,\n right: isHorizontal ? undefined : 0,\n bottom: isHorizontal ? 0 : undefined,\n position: 'absolute',\n width: isHorizontal ? width : undefined,\n height: isHorizontal\n ? undefined\n : getMonthHeight(scrollMode, visibleIndexes[vi]),\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: onPrev,\n onNext: onNext,\n })}\n </View>\n ))\n : null}\n </View>\n </ScrollView>\n {renderHeader && renderHeader(renderProps)}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nexport default React.memo(Swiper)\n"]}
|
|
@@ -11,14 +11,15 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _dateUtils = require("./dateUtils");
|
|
13
13
|
|
|
14
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
14
|
+
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); }
|
|
15
15
|
|
|
16
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
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 useYearChange(onChange, {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
function useYearChange(onChange, _ref) {
|
|
19
|
+
let {
|
|
20
|
+
selectedYear,
|
|
21
|
+
currentIndexRef
|
|
22
|
+
} = _ref;
|
|
22
23
|
const onChangeRef = (0, _utils.useLatest)(onChange);
|
|
23
24
|
React.useEffect(() => {
|
|
24
25
|
if (selectedYear) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SwiperUtils.ts"],"names":["useYearChange","onChange","selectedYear","currentIndexRef","onChangeRef","React","useEffect","currentIndex","current","currentDate","Date","setFullYear","today","months","newIndex","startAtIndex"],"mappings":";;;;;;;AACA;;AACA;;AACA;;;;;;AAsBO,SAASA,aAAT,CACLC,QADK,
|
|
1
|
+
{"version":3,"sources":["SwiperUtils.ts"],"names":["useYearChange","onChange","selectedYear","currentIndexRef","onChangeRef","React","useEffect","currentIndex","current","currentDate","Date","setFullYear","today","months","newIndex","startAtIndex"],"mappings":";;;;;;;AACA;;AACA;;AACA;;;;;;AAsBO,SAASA,aAAT,CACLC,QADK,QASL;AAAA,MAPA;AACEC,IAAAA,YADF;AAEEC,IAAAA;AAFF,GAOA;AACA,QAAMC,WAAW,GAAG,sBAAUH,QAAV,CAApB;AACAI,EAAAA,KAAK,CAACC,SAAN,CAAgB,MAAM;AACpB,QAAIJ,YAAJ,EAAkB;AAChB,YAAMK,YAAY,GAAGJ,eAAe,CAACK,OAAhB,IAA2B,CAAhD;AACA,YAAMC,WAAW,GAAG,0BAAU,IAAIC,IAAJ,EAAV,EAAsB,6BAAaH,YAAb,CAAtB,CAApB;AACAE,MAAAA,WAAW,CAACE,WAAZ,CAAwBT,YAAxB;AAEA,YAAMU,KAAK,GAAG,IAAIF,IAAJ,EAAd;AACA,YAAMG,MAAM,GAAG,mCAAmBD,KAAnB,EAA0BH,WAA1B,CAAf;AAEA,YAAMK,QAAQ,GAAGC,0BAAeF,MAAhC;;AACA,UAAIN,YAAY,KAAKO,QAArB,EAA+B;AAC7BV,QAAAA,WAAW,CAACI,OAAZ,CAAoBM,QAApB;AACD;AACF;AACF,GAdD,EAcG,CAACX,eAAD,EAAkBC,WAAlB,EAA+BF,YAA/B,CAdH;AAeD","sourcesContent":["import type { MutableRefObject } from 'react'\nimport { useLatest } from '../utils'\nimport * as React from 'react'\nimport {\n addMonths,\n differenceInMonths,\n getRealIndex,\n startAtIndex,\n} from './dateUtils'\n\nexport type RenderProps = {\n index: number\n onNext: () => any\n onPrev: () => any\n}\n\nexport type SwiperProps = {\n initialIndex: number\n scrollMode: 'horizontal' | 'vertical'\n renderItem: (renderProps: RenderProps) => any\n renderHeader?: (renderProps: RenderProps) => any\n renderFooter?: (renderProps: RenderProps) => any\n selectedYear: number | undefined\n}\n\nexport function useYearChange(\n onChange: (index: number | undefined) => void,\n {\n selectedYear,\n currentIndexRef,\n }: {\n currentIndexRef: MutableRefObject<number>\n selectedYear: number | undefined\n }\n) {\n const onChangeRef = useLatest(onChange)\n React.useEffect(() => {\n if (selectedYear) {\n const currentIndex = currentIndexRef.current || 0\n const currentDate = addMonths(new Date(), getRealIndex(currentIndex))\n currentDate.setFullYear(selectedYear)\n\n const today = new Date()\n const months = differenceInMonths(today, currentDate)\n\n const newIndex = startAtIndex + months\n if (currentIndex !== newIndex) {\n onChangeRef.current(newIndex)\n }\n }\n }, [currentIndexRef, onChangeRef, selectedYear])\n}\n"]}
|
|
@@ -13,20 +13,21 @@ var _reactNativePaper = require("react-native-paper");
|
|
|
13
13
|
|
|
14
14
|
var _utils = require("../utils");
|
|
15
15
|
|
|
16
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
16
|
+
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); }
|
|
17
17
|
|
|
18
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
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
20
|
const ITEM_HEIGHT = 62;
|
|
21
21
|
const startYear = 1800;
|
|
22
22
|
const endYear = 2200;
|
|
23
23
|
const years = (0, _utils.range)(startYear, endYear);
|
|
24
24
|
|
|
25
|
-
function YearPicker({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
function YearPicker(_ref) {
|
|
26
|
+
let {
|
|
27
|
+
selectedYear,
|
|
28
|
+
selectingYear,
|
|
29
|
+
onPressYear
|
|
30
|
+
} = _ref;
|
|
30
31
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
31
32
|
const flatList = React.useRef(null); // scroll to selected year
|
|
32
33
|
|
|
@@ -48,29 +49,36 @@ function YearPicker({
|
|
|
48
49
|
ref: flatList,
|
|
49
50
|
style: styles.list,
|
|
50
51
|
data: years,
|
|
51
|
-
renderItem:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
renderItem: _ref2 => {
|
|
53
|
+
let {
|
|
54
|
+
item
|
|
55
|
+
} = _ref2;
|
|
56
|
+
return /*#__PURE__*/React.createElement(Year, {
|
|
57
|
+
year: item,
|
|
58
|
+
selected: selectedYear === item,
|
|
59
|
+
onPressYear: onPressYear
|
|
60
|
+
});
|
|
61
|
+
},
|
|
58
62
|
keyExtractor: item => `${item}`,
|
|
59
63
|
numColumns: 3
|
|
60
64
|
}));
|
|
61
65
|
}
|
|
62
66
|
|
|
63
|
-
function YearPure({
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
function YearPure(_ref3) {
|
|
68
|
+
let {
|
|
69
|
+
year,
|
|
70
|
+
selected,
|
|
71
|
+
onPressYear
|
|
72
|
+
} = _ref3;
|
|
68
73
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
69
74
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
70
75
|
style: styles.year
|
|
71
76
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.TouchableRipple, {
|
|
72
77
|
onPress: () => onPressYear(year),
|
|
73
|
-
style: styles.yearButton
|
|
78
|
+
style: styles.yearButton // RN types bug
|
|
79
|
+
,
|
|
80
|
+
hasTVPreferredFocus: undefined,
|
|
81
|
+
tvParallaxProperties: undefined
|
|
74
82
|
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
75
83
|
style: [styles.yearInner, selected ? {
|
|
76
84
|
backgroundColor: theme.colors.primary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["YearPicker.tsx"],"names":["ITEM_HEIGHT","startYear","endYear","years","YearPicker","selectedYear","selectingYear","onPressYear","theme","flatList","React","useRef","useEffect","current","indexToGo","scrollToOffset","offset","animated","StyleSheet","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","yearButton","yearInner","primary","yearLabel","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","color","borderRadius","overflow","alignItems","fontSize","opacity"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,WAAW,GAAG,EAApB;AAEA,MAAMC,SAAS,GAAG,IAAlB;AACA,MAAMC,OAAO,GAAG,IAAhB;AACA,MAAMC,KAAK,GAAG,kBAAMF,SAAN,EAAiBC,OAAjB,CAAd;;AAEe,SAASE,UAAT,
|
|
1
|
+
{"version":3,"sources":["YearPicker.tsx"],"names":["ITEM_HEIGHT","startYear","endYear","years","YearPicker","selectedYear","selectingYear","onPressYear","theme","flatList","React","useRef","useEffect","current","indexToGo","scrollToOffset","offset","animated","StyleSheet","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","yearButton","undefined","yearInner","primary","yearLabel","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","color","borderRadius","overflow","alignItems","fontSize","opacity"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { Text, TouchableRipple, useTheme } from 'react-native-paper'\nimport { range } from '../utils'\n\nconst ITEM_HEIGHT = 62\n\nconst startYear = 1800\nconst endYear = 2200\nconst years = range(startYear, endYear)\n\nexport default function YearPicker({\n selectedYear,\n selectingYear,\n onPressYear,\n}: {\n selectedYear: number | undefined\n selectingYear: boolean\n onPressYear: (year: number) => any\n}) {\n const theme = useTheme()\n const flatList = React.useRef<FlatList<number> | null>(null)\n\n // scroll to selected year\n React.useEffect(() => {\n if (flatList.current && selectedYear) {\n const indexToGo = selectedYear - startYear\n flatList.current.scrollToOffset({\n offset: (indexToGo / 3) * ITEM_HEIGHT - ITEM_HEIGHT,\n animated: false,\n })\n }\n }, [flatList, selectedYear])\n\n return (\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.root,\n { backgroundColor: theme.colors.surface },\n selectingYear ? styles.opacity1 : styles.opacity0,\n ]}\n pointerEvents={selectingYear ? 'auto' : 'none'}\n >\n <FlatList<number>\n ref={flatList}\n style={styles.list}\n data={years}\n renderItem={({ item }) => (\n <Year\n year={item}\n selected={selectedYear === item}\n onPressYear={onPressYear}\n />\n )}\n keyExtractor={(item) => `${item}`}\n numColumns={3}\n />\n </View>\n )\n}\n\nfunction YearPure({\n year,\n selected,\n onPressYear,\n}: {\n year: number\n selected: boolean\n onPressYear: (newYear: number) => any\n}) {\n const theme = useTheme()\n return (\n <View style={styles.year}>\n <TouchableRipple\n onPress={() => onPressYear(year)}\n style={styles.yearButton}\n // RN types bug\n hasTVPreferredFocus={undefined}\n tvParallaxProperties={undefined}\n >\n <View\n style={[\n styles.yearInner,\n selected ? { backgroundColor: theme.colors.primary } : null,\n ]}\n >\n <Text\n style={[styles.yearLabel, selected ? styles.selectedYear : null]}\n selectable={false}\n >\n {year}\n </Text>\n </View>\n </TouchableRipple>\n </View>\n )\n}\nconst Year = React.memo(YearPure)\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n top: 56,\n zIndex: 100,\n },\n\n list: {\n flex: 1,\n },\n year: {\n flex: 1,\n marginLeft: 16,\n marginRight: 16,\n height: ITEM_HEIGHT,\n justifyContent: 'center',\n },\n selectedYear: { color: '#fff' },\n yearButton: {\n borderRadius: 46 / 2,\n overflow: 'hidden',\n },\n yearInner: {\n borderRadius: 46 / 2,\n height: 46,\n alignItems: 'center',\n justifyContent: 'center',\n },\n yearLabel: {\n fontSize: 16,\n },\n opacity0: {\n opacity: 0,\n },\n opacity1: {\n opacity: 1,\n },\n})\n"]}
|
|
@@ -3,21 +3,38 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.showWeekDay = showWeekDay;
|
|
7
|
-
exports.dateToUnix = dateToUnix;
|
|
8
6
|
exports.addMonths = addMonths;
|
|
7
|
+
exports.areDatesOnSameDay = areDatesOnSameDay;
|
|
8
|
+
exports.beginOffset = void 0;
|
|
9
|
+
exports.dateToUnix = dateToUnix;
|
|
10
|
+
exports.daySize = void 0;
|
|
11
|
+
exports.differenceInMonths = differenceInMonths;
|
|
12
|
+
exports.estimatedMonthHeight = void 0;
|
|
9
13
|
exports.getDaysInMonth = getDaysInMonth;
|
|
14
|
+
exports.getEndOfDay = getEndOfDay;
|
|
10
15
|
exports.getFirstDayOfMonth = getFirstDayOfMonth;
|
|
11
|
-
exports.areDatesOnSameDay = areDatesOnSameDay;
|
|
12
|
-
exports.isDateBetween = isDateBetween;
|
|
13
|
-
exports.isDateWithinOptionalRange = isDateWithinOptionalRange;
|
|
14
|
-
exports.isLeapYear = isLeapYear;
|
|
15
16
|
exports.getGridCount = getGridCount;
|
|
16
17
|
exports.getGridCountForDate = getGridCountForDate;
|
|
17
|
-
exports.getRealIndex = getRealIndex;
|
|
18
18
|
exports.getInitialIndex = getInitialIndex;
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
19
|
+
exports.getRealIndex = getRealIndex;
|
|
20
|
+
exports.getStartOfDay = getStartOfDay;
|
|
21
|
+
exports.gridCounts = void 0;
|
|
22
|
+
exports.isDateBetween = isDateBetween;
|
|
23
|
+
exports.isDateWithinOptionalRange = isDateWithinOptionalRange;
|
|
24
|
+
exports.isLeapYear = isLeapYear;
|
|
25
|
+
exports.showWeekDay = showWeekDay;
|
|
26
|
+
exports.totalMonths = exports.startAtIndex = void 0;
|
|
27
|
+
exports.useInputFormat = useInputFormat;
|
|
28
|
+
exports.useInputFormatter = useInputFormatter;
|
|
29
|
+
exports.useRangeChecker = useRangeChecker;
|
|
30
|
+
|
|
31
|
+
var React = _interopRequireWildcard(require("react"));
|
|
32
|
+
|
|
33
|
+
var _utils = require("../utils");
|
|
34
|
+
|
|
35
|
+
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); }
|
|
36
|
+
|
|
37
|
+
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; }
|
|
21
38
|
|
|
22
39
|
function showWeekDay(dayIndex, disableWeekDays) {
|
|
23
40
|
return !(disableWeekDays && disableWeekDays.some(di => di === dayIndex));
|
|
@@ -41,30 +58,46 @@ function addMonths(date, count) {
|
|
|
41
58
|
// pass in any date as parameter anyDateInMonth based on dayjs
|
|
42
59
|
|
|
43
60
|
|
|
44
|
-
function getDaysInMonth({
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
function getDaysInMonth(_ref) {
|
|
62
|
+
let {
|
|
63
|
+
year,
|
|
64
|
+
month
|
|
65
|
+
} = _ref;
|
|
48
66
|
return [31, isLeapYear({
|
|
49
67
|
year
|
|
50
68
|
}) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
|
|
51
69
|
}
|
|
52
70
|
|
|
53
|
-
function getFirstDayOfMonth({
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
71
|
+
function getFirstDayOfMonth(_ref2) {
|
|
72
|
+
let {
|
|
73
|
+
year,
|
|
74
|
+
month
|
|
75
|
+
} = _ref2;
|
|
57
76
|
return new Date(year, month, 1).getDay();
|
|
58
|
-
}
|
|
59
|
-
// year,
|
|
60
|
-
// month,
|
|
61
|
-
// }: {
|
|
62
|
-
// year: number
|
|
63
|
-
// month: number
|
|
64
|
-
// }): number {
|
|
65
|
-
// return new Date(year, month, getDaysInMonth({ year, month })).getDay()
|
|
66
|
-
// }
|
|
77
|
+
}
|
|
67
78
|
|
|
79
|
+
function useRangeChecker(validRange) {
|
|
80
|
+
const validStart = validRange === null || validRange === void 0 ? void 0 : validRange.startDate;
|
|
81
|
+
const validEnd = validRange === null || validRange === void 0 ? void 0 : validRange.endDate;
|
|
82
|
+
const startUnix = validStart instanceof Date ? dateToUnix(getStartOfDay(validStart)) : undefined;
|
|
83
|
+
const endUnix = validEnd instanceof Date ? dateToUnix(getEndOfDay(validEnd)) : undefined;
|
|
84
|
+
const validDisabledDatesRef = (0, _utils.useLatest)(validRange === null || validRange === void 0 ? void 0 : validRange.disabledDates);
|
|
85
|
+
const isWithinValidRange = React.useCallback(day => {
|
|
86
|
+
return isDateWithinOptionalRange(day, {
|
|
87
|
+
startUnix: startUnix,
|
|
88
|
+
endUnix: endUnix
|
|
89
|
+
});
|
|
90
|
+
}, [startUnix, endUnix]);
|
|
91
|
+
const isDisabled = React.useCallback(day => {
|
|
92
|
+
return validDisabledDatesRef.current ? validDisabledDatesRef.current.some(disabledDate => areDatesOnSameDay(disabledDate, day)) : false;
|
|
93
|
+
}, [validDisabledDatesRef]);
|
|
94
|
+
return {
|
|
95
|
+
isDisabled,
|
|
96
|
+
isWithinValidRange,
|
|
97
|
+
validStart,
|
|
98
|
+
validEnd
|
|
99
|
+
};
|
|
100
|
+
}
|
|
68
101
|
|
|
69
102
|
function areDatesOnSameDay(a, b) {
|
|
70
103
|
if (!b) {
|
|
@@ -74,10 +107,12 @@ function areDatesOnSameDay(a, b) {
|
|
|
74
107
|
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
75
108
|
}
|
|
76
109
|
|
|
77
|
-
function isDateBetween(date, {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
110
|
+
function isDateBetween(date, _ref3) {
|
|
111
|
+
let {
|
|
112
|
+
startDate,
|
|
113
|
+
endDate
|
|
114
|
+
} = _ref3;
|
|
115
|
+
|
|
81
116
|
if (!startDate || !endDate) {
|
|
82
117
|
return false;
|
|
83
118
|
}
|
|
@@ -91,15 +126,16 @@ function isDateBetween(date, {
|
|
|
91
126
|
*/
|
|
92
127
|
|
|
93
128
|
|
|
94
|
-
function isDateWithinOptionalRange(date, {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
129
|
+
function isDateWithinOptionalRange(date, _ref4) {
|
|
130
|
+
let {
|
|
131
|
+
startUnix,
|
|
132
|
+
endUnix
|
|
133
|
+
} = _ref4;
|
|
98
134
|
const dateUnix = dateToUnix(date); // if startUnix is provided and date is before start
|
|
99
135
|
|
|
100
136
|
if (startUnix && dateUnix < startUnix) {
|
|
101
137
|
return false;
|
|
102
|
-
} // if
|
|
138
|
+
} // if endUnix is provided and date is after end
|
|
103
139
|
|
|
104
140
|
|
|
105
141
|
if (endUnix && dateUnix > endUnix) {
|
|
@@ -109,9 +145,10 @@ function isDateWithinOptionalRange(date, {
|
|
|
109
145
|
return true;
|
|
110
146
|
}
|
|
111
147
|
|
|
112
|
-
function isLeapYear({
|
|
113
|
-
|
|
114
|
-
|
|
148
|
+
function isLeapYear(_ref5) {
|
|
149
|
+
let {
|
|
150
|
+
year
|
|
151
|
+
} = _ref5;
|
|
115
152
|
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
|
116
153
|
}
|
|
117
154
|
|
|
@@ -169,6 +206,38 @@ function getInitialIndex(date) {
|
|
|
169
206
|
return startAtIndex + months;
|
|
170
207
|
}
|
|
171
208
|
|
|
209
|
+
function useInputFormatter(_ref6) {
|
|
210
|
+
let {
|
|
211
|
+
locale
|
|
212
|
+
} = _ref6;
|
|
213
|
+
return React.useMemo(() => {
|
|
214
|
+
return new Intl.DateTimeFormat(locale, {
|
|
215
|
+
month: '2-digit',
|
|
216
|
+
day: '2-digit',
|
|
217
|
+
year: 'numeric'
|
|
218
|
+
});
|
|
219
|
+
}, [locale]);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function getStartOfDay(d) {
|
|
223
|
+
return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function getEndOfDay(d) {
|
|
227
|
+
return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function useInputFormat(_ref7) {
|
|
231
|
+
let {
|
|
232
|
+
formatter
|
|
233
|
+
} = _ref7;
|
|
234
|
+
return React.useMemo(() => {
|
|
235
|
+
// TODO: something cleaner and more universal?
|
|
236
|
+
const inputDate = formatter.format(new Date(2020, 10 - 1, 1));
|
|
237
|
+
return inputDate.replace('2020', 'YYYY').replace('10', 'MM').replace('01', 'DD');
|
|
238
|
+
}, [formatter]);
|
|
239
|
+
}
|
|
240
|
+
|
|
172
241
|
function differenceInMonths(firstDate, secondDate) {
|
|
173
242
|
let diffMonths = (secondDate.getFullYear() - firstDate.getFullYear()) * 12;
|
|
174
243
|
diffMonths -= firstDate.getMonth();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dateUtils.tsx"],"names":["showWeekDay","dayIndex","disableWeekDays","some","di","dateToUnix","d","Math","round","getTime","addMonths","date","count","n","getDate","n2","Date","setDate","setMonth","getMonth","min","getDaysInMonth","year","getFullYear","month","isLeapYear","getFirstDayOfMonth","getDay","areDatesOnSameDay","a","b","isDateBetween","startDate","endDate","isDateWithinOptionalRange","startUnix","endUnix","dateUnix","daySize","estimatedMonthHeight","startAtIndex","totalMonths","beginOffset","gridCounts","Array","getGridCount","index","cHeight","monthDate","getRealIndex","h","getGridCountForDate","daysInMonth","dayOfWeek","ceil","getInitialIndex","today","months","differenceInMonths","firstDate","secondDate","diffMonths"],"mappings":"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","sourcesContent":["export type DisableWeekDaysType = number[]\n\nexport function showWeekDay(\n dayIndex: number,\n disableWeekDays?: DisableWeekDaysType\n): boolean {\n return !(disableWeekDays && disableWeekDays.some((di) => di === dayIndex))\n}\n\nexport function dateToUnix(d: Date): number {\n return Math.round(d.getTime() / 1000)\n}\n\nexport function addMonths(date: Date, count: number) {\n let n = date.getDate()\n let n2 = new Date(date.getTime())\n n2.setDate(1)\n n2.setMonth(n2.getMonth() + count)\n n2.setDate(\n Math.min(\n n,\n getDaysInMonth({ year: n2.getFullYear(), month: n2.getMonth() })\n )\n )\n\n return n2\n}\n\n// https://stackoverflow.com/a/1185068/2508481\n// pass in any date as parameter anyDateInMonth based on dayjs\nexport function getDaysInMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return [\n 31,\n isLeapYear({ year }) ? 29 : 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31,\n ][month]\n}\n\nexport function getFirstDayOfMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return new Date(year, month, 1).getDay()\n}\n\n// export function getLastDayOfMonth({\n// year,\n// month,\n// }: {\n// year: number\n// month: number\n// }): number {\n// return new Date(year, month, getDaysInMonth({ year, month })).getDay()\n// }\n\nexport function areDatesOnSameDay(a: Date, b?: Date | null | undefined) {\n if (!b) {\n return false\n }\n\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nexport function isDateBetween(\n date: Date,\n {\n startDate,\n endDate,\n }: {\n startDate?: Date | null | undefined\n endDate?: Date | null | undefined\n }\n): boolean {\n if (!startDate || !endDate) {\n return false\n }\n return date <= endDate && date >= startDate\n}\n\n/**\n * Check if a date is within an optional range.\n *\n * If the range doesn't exist, it defaults to `true`.\n */\nexport function isDateWithinOptionalRange(\n date: Date,\n {\n startUnix,\n endUnix,\n }: { startUnix: number | undefined; endUnix: number | undefined }\n) {\n const dateUnix = dateToUnix(date)\n // if startUnix is provided and date is before start\n if (startUnix && dateUnix < startUnix) {\n return false\n }\n\n // if startUnix is provided and date is after end\n if (endUnix && dateUnix > endUnix) {\n return false\n }\n\n return true\n}\n\nexport function isLeapYear({ year }: { year: number }) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n}\n\nexport const daySize = 46\nexport const estimatedMonthHeight = 360\nexport const startAtIndex = 1200\nexport const totalMonths = startAtIndex * 2\nexport const beginOffset = estimatedMonthHeight * startAtIndex\nexport const gridCounts = new Array<number | undefined>(totalMonths)\n\nexport function getGridCount(index: number) {\n const cHeight = gridCounts[index]\n if (cHeight) {\n return cHeight\n }\n const monthDate = addMonths(new Date(), getRealIndex(index))\n const h = getGridCountForDate(monthDate)\n gridCounts[index] = h\n return h\n}\n\nexport function getGridCountForDate(date: Date) {\n const year = date.getFullYear()\n const month = date.getMonth()\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n return Math.ceil((daysInMonth + dayOfWeek) / 7)\n}\n\nexport function getRealIndex(index: number) {\n return index - startAtIndex\n}\n\nexport function getInitialIndex(date: Date | undefined) {\n if (!date) {\n return startAtIndex\n }\n\n const today = new Date()\n const months = differenceInMonths(today, date)\n\n return startAtIndex + months\n}\n\nexport function differenceInMonths(firstDate: Date, secondDate: Date) {\n let diffMonths = (secondDate.getFullYear() - firstDate.getFullYear()) * 12\n diffMonths -= firstDate.getMonth()\n diffMonths += secondDate.getMonth()\n return diffMonths\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["dateUtils.tsx"],"names":["showWeekDay","dayIndex","disableWeekDays","some","di","dateToUnix","d","Math","round","getTime","addMonths","date","count","n","getDate","n2","Date","setDate","setMonth","getMonth","min","getDaysInMonth","year","getFullYear","month","isLeapYear","getFirstDayOfMonth","getDay","useRangeChecker","validRange","validStart","startDate","validEnd","endDate","startUnix","getStartOfDay","undefined","endUnix","getEndOfDay","validDisabledDatesRef","disabledDates","isWithinValidRange","React","useCallback","day","isDateWithinOptionalRange","isDisabled","current","disabledDate","areDatesOnSameDay","a","b","isDateBetween","dateUnix","daySize","estimatedMonthHeight","startAtIndex","totalMonths","beginOffset","gridCounts","Array","getGridCount","index","cHeight","monthDate","getRealIndex","h","getGridCountForDate","daysInMonth","dayOfWeek","ceil","getInitialIndex","today","months","differenceInMonths","useInputFormatter","locale","useMemo","Intl","DateTimeFormat","useInputFormat","formatter","inputDate","format","replace","firstDate","secondDate","diffMonths"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { useLatest } from '../utils'\nimport type { ValidRangeType } from './Calendar'\n\nexport type DisableWeekDaysType = number[]\n\nexport function showWeekDay(\n dayIndex: number,\n disableWeekDays?: DisableWeekDaysType\n): boolean {\n return !(disableWeekDays && disableWeekDays.some((di) => di === dayIndex))\n}\n\nexport function dateToUnix(d: Date): number {\n return Math.round(d.getTime() / 1000)\n}\n\nexport function addMonths(date: Date, count: number) {\n let n = date.getDate()\n let n2 = new Date(date.getTime())\n n2.setDate(1)\n n2.setMonth(n2.getMonth() + count)\n n2.setDate(\n Math.min(\n n,\n getDaysInMonth({ year: n2.getFullYear(), month: n2.getMonth() })\n )\n )\n\n return n2\n}\n\n// https://stackoverflow.com/a/1185068/2508481\n// pass in any date as parameter anyDateInMonth based on dayjs\nexport function getDaysInMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return [\n 31,\n isLeapYear({ year }) ? 29 : 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31,\n ][month]\n}\n\nexport function getFirstDayOfMonth({\n year,\n month,\n}: {\n year: number\n month: number\n}): number {\n return new Date(year, month, 1).getDay()\n}\n\nexport function useRangeChecker(validRange: ValidRangeType | undefined) {\n const validStart = validRange?.startDate\n const validEnd = validRange?.endDate\n const startUnix =\n validStart instanceof Date\n ? dateToUnix(getStartOfDay(validStart))\n : undefined\n\n const endUnix =\n validEnd instanceof Date ? dateToUnix(getEndOfDay(validEnd)) : undefined\n\n const validDisabledDatesRef = useLatest(validRange?.disabledDates)\n\n const isWithinValidRange = React.useCallback(\n (day: Date) => {\n return isDateWithinOptionalRange(day, {\n startUnix: startUnix,\n endUnix: endUnix,\n })\n },\n [startUnix, endUnix]\n )\n\n const isDisabled = React.useCallback(\n (day: Date) => {\n return validDisabledDatesRef.current\n ? validDisabledDatesRef.current.some((disabledDate) =>\n areDatesOnSameDay(disabledDate, day)\n )\n : false\n },\n [validDisabledDatesRef]\n )\n\n return { isDisabled, isWithinValidRange, validStart, validEnd }\n}\n\nexport function areDatesOnSameDay(a: Date, b?: Date | null | undefined) {\n if (!b) {\n return false\n }\n\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nexport function isDateBetween(\n date: Date,\n {\n startDate,\n endDate,\n }: {\n startDate?: Date | null | undefined\n endDate?: Date | null | undefined\n }\n): boolean {\n if (!startDate || !endDate) {\n return false\n }\n return date <= endDate && date >= startDate\n}\n\n/**\n * Check if a date is within an optional range.\n *\n * If the range doesn't exist, it defaults to `true`.\n */\nexport function isDateWithinOptionalRange(\n date: Date,\n {\n startUnix,\n endUnix,\n }: { startUnix: number | undefined; endUnix: number | undefined }\n) {\n const dateUnix = dateToUnix(date)\n // if startUnix is provided and date is before start\n if (startUnix && dateUnix < startUnix) {\n return false\n }\n\n // if endUnix is provided and date is after end\n if (endUnix && dateUnix > endUnix) {\n return false\n }\n\n return true\n}\n\nexport function isLeapYear({ year }: { year: number }) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n}\n\nexport const daySize = 46\nexport const estimatedMonthHeight = 360\nexport const startAtIndex = 1200\nexport const totalMonths = startAtIndex * 2\nexport const beginOffset = estimatedMonthHeight * startAtIndex\nexport const gridCounts = new Array<number | undefined>(totalMonths)\n\nexport function getGridCount(index: number) {\n const cHeight = gridCounts[index]\n if (cHeight) {\n return cHeight\n }\n const monthDate = addMonths(new Date(), getRealIndex(index))\n const h = getGridCountForDate(monthDate)\n gridCounts[index] = h\n return h\n}\n\nexport function getGridCountForDate(date: Date) {\n const year = date.getFullYear()\n const month = date.getMonth()\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n return Math.ceil((daysInMonth + dayOfWeek) / 7)\n}\n\nexport function getRealIndex(index: number) {\n return index - startAtIndex\n}\n\nexport function getInitialIndex(date: Date | undefined) {\n if (!date) {\n return startAtIndex\n }\n\n const today = new Date()\n const months = differenceInMonths(today, date)\n\n return startAtIndex + months\n}\n\nexport function useInputFormatter({ locale }: { locale: string | undefined }) {\n return React.useMemo(() => {\n return new Intl.DateTimeFormat(locale, {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })\n }, [locale])\n}\nexport function getStartOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0)\n}\nexport function getEndOfDay(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59)\n}\nexport function useInputFormat({\n formatter,\n}: {\n formatter: Intl.DateTimeFormat\n}) {\n return React.useMemo(() => {\n // TODO: something cleaner and more universal?\n const inputDate = formatter.format(new Date(2020, 10 - 1, 1))\n return inputDate\n .replace('2020', 'YYYY')\n .replace('10', 'MM')\n .replace('01', 'DD')\n }, [formatter])\n}\n\nexport function differenceInMonths(firstDate: Date, secondDate: Date) {\n let diffMonths = (secondDate.getFullYear() - firstDate.getFullYear()) * 12\n diffMonths -= firstDate.getMonth()\n diffMonths += secondDate.getMonth()\n return diffMonths\n}\n"]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useDateInput;
|
|
7
|
+
|
|
8
|
+
var _dateUtils = require("./dateUtils");
|
|
9
|
+
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _reactNativePaperDates = require("react-native-paper-dates");
|
|
13
|
+
|
|
14
|
+
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); }
|
|
15
|
+
|
|
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
|
+
|
|
18
|
+
function useDateInput(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
locale,
|
|
21
|
+
value,
|
|
22
|
+
validRange,
|
|
23
|
+
inputMode,
|
|
24
|
+
onChange
|
|
25
|
+
} = _ref;
|
|
26
|
+
const {
|
|
27
|
+
isDisabled,
|
|
28
|
+
isWithinValidRange,
|
|
29
|
+
validStart,
|
|
30
|
+
validEnd
|
|
31
|
+
} = (0, _dateUtils.useRangeChecker)(validRange);
|
|
32
|
+
const [error, setError] = React.useState(null);
|
|
33
|
+
const formatter = (0, _dateUtils.useInputFormatter)({
|
|
34
|
+
locale
|
|
35
|
+
});
|
|
36
|
+
const inputFormat = (0, _dateUtils.useInputFormat)({
|
|
37
|
+
formatter
|
|
38
|
+
});
|
|
39
|
+
const formattedValue = formatter.format(value);
|
|
40
|
+
|
|
41
|
+
const onChangeText = date => {
|
|
42
|
+
const dayIndex = inputFormat.indexOf('DD');
|
|
43
|
+
const monthIndex = inputFormat.indexOf('MM');
|
|
44
|
+
const yearIndex = inputFormat.indexOf('YYYY');
|
|
45
|
+
const day = Number(date.slice(dayIndex, dayIndex + 2));
|
|
46
|
+
const year = Number(date.slice(yearIndex, yearIndex + 4));
|
|
47
|
+
const month = Number(date.slice(monthIndex, monthIndex + 2));
|
|
48
|
+
|
|
49
|
+
if (Number.isNaN(day) || Number.isNaN(year) || Number.isNaN(month)) {
|
|
50
|
+
setError((0, _reactNativePaperDates.getTranslation)(locale, 'notAccordingToDateFormat', () => 'notAccordingToDateFormat')(inputFormat));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const finalDate = inputMode === 'end' ? new Date(year, month - 1, day, 23, 59, 59) : new Date(year, month - 1, day);
|
|
55
|
+
|
|
56
|
+
if (isDisabled(finalDate)) {
|
|
57
|
+
setError((0, _reactNativePaperDates.getTranslation)(locale, 'dateIsDisabled'));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (!isWithinValidRange(finalDate)) {
|
|
62
|
+
let errors = validStart && validEnd ? [`${(0, _reactNativePaperDates.getTranslation)(locale, 'mustBeBetween')} ${formatter.format(validStart)} - ${formatter.format(validEnd)}`] : [validStart ? `${(0, _reactNativePaperDates.getTranslation)(locale, 'mustBeHigherThan')} ${formatter.format(validStart)}` : '', validEnd ? `${(0, _reactNativePaperDates.getTranslation)(locale, 'mustBeLowerThan')} ${formatter.format(validEnd)}` : ''];
|
|
63
|
+
setError(errors.filter(n => n).join(' '));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
setError(null);
|
|
68
|
+
|
|
69
|
+
if (inputMode === 'end') {
|
|
70
|
+
onChange(finalDate);
|
|
71
|
+
} else {
|
|
72
|
+
onChange(finalDate);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
onChange,
|
|
78
|
+
error,
|
|
79
|
+
formattedValue,
|
|
80
|
+
onChangeText,
|
|
81
|
+
inputFormat
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=inputUtils.js.map
|