react-native-paper-dates 0.9.2 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/commonjs/Date/AnimatedCrossView.js +1 -4
- package/lib/commonjs/Date/AnimatedCrossView.js.map +1 -1
- package/lib/commonjs/Date/Calendar.js +1 -1
- package/lib/commonjs/Date/Calendar.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.js +4 -2
- package/lib/commonjs/Date/DatePickerInput.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInput.shared.js.map +1 -1
- package/lib/commonjs/Date/DatePickerInputWithoutModal.js +17 -13
- package/lib/commonjs/Date/DatePickerInputWithoutModal.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalContentHeader.js +5 -2
- package/lib/commonjs/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeader.js +11 -12
- package/lib/commonjs/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js +7 -8
- package/lib/commonjs/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/commonjs/Date/Day.js +5 -4
- package/lib/commonjs/Date/Day.js.map +1 -1
- package/lib/commonjs/Date/DayName.js +3 -1
- package/lib/commonjs/Date/DayName.js.map +1 -1
- package/lib/commonjs/Date/Month.js +3 -1
- package/lib/commonjs/Date/Month.js.map +1 -1
- package/lib/commonjs/Date/Swiper.js +1 -2
- package/lib/commonjs/Date/Swiper.js.map +1 -1
- package/lib/commonjs/Date/YearPicker.js +4 -2
- package/lib/commonjs/Date/YearPicker.js.map +1 -1
- package/lib/commonjs/TextInputMask.js +9 -4
- package/lib/commonjs/TextInputMask.js.map +1 -1
- package/lib/commonjs/Time/AmPmSwitcher.js +3 -2
- package/lib/commonjs/Time/AmPmSwitcher.js.map +1 -1
- package/lib/commonjs/Time/AnalogClock.js +1 -1
- package/lib/commonjs/Time/AnalogClock.js.map +1 -1
- package/lib/commonjs/Time/TimeInputs.js +7 -4
- package/lib/commonjs/Time/TimeInputs.js.map +1 -1
- package/lib/commonjs/Time/TimePicker.js +4 -1
- package/lib/commonjs/Time/TimePicker.js.map +1 -1
- package/lib/commonjs/Time/TimePickerModal.js +15 -4
- package/lib/commonjs/Time/TimePickerModal.js.map +1 -1
- package/lib/commonjs/Time/timeUtils.js +35 -3
- package/lib/commonjs/Time/timeUtils.js.map +1 -1
- package/lib/commonjs/translations/utils.js +2 -2
- package/lib/commonjs/translations/utils.js.map +1 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/Date/AnimatedCrossView.js +1 -3
- package/lib/module/Date/AnimatedCrossView.js.map +1 -1
- package/lib/module/Date/Calendar.js +1 -1
- package/lib/module/Date/Calendar.js.map +1 -1
- package/lib/module/Date/DatePickerInput.js +4 -2
- package/lib/module/Date/DatePickerInput.js.map +1 -1
- package/lib/module/Date/DatePickerInput.shared.js.map +1 -1
- package/lib/module/Date/DatePickerInputWithoutModal.js +17 -13
- package/lib/module/Date/DatePickerInputWithoutModal.js.map +1 -1
- package/lib/module/Date/DatePickerModalContentHeader.js +6 -3
- package/lib/module/Date/DatePickerModalContentHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeader.js +11 -13
- package/lib/module/Date/DatePickerModalHeader.js.map +1 -1
- package/lib/module/Date/DatePickerModalHeaderBackground.js +7 -9
- package/lib/module/Date/DatePickerModalHeaderBackground.js.map +1 -1
- package/lib/module/Date/Day.js +5 -4
- package/lib/module/Date/Day.js.map +1 -1
- package/lib/module/Date/DayName.js +3 -1
- package/lib/module/Date/DayName.js.map +1 -1
- package/lib/module/Date/Month.js +3 -1
- package/lib/module/Date/Month.js.map +1 -1
- package/lib/module/Date/Swiper.js +1 -2
- package/lib/module/Date/Swiper.js.map +1 -1
- package/lib/module/Date/YearPicker.js +4 -2
- package/lib/module/Date/YearPicker.js.map +1 -1
- package/lib/module/TextInputMask.js +9 -4
- package/lib/module/TextInputMask.js.map +1 -1
- package/lib/module/Time/AmPmSwitcher.js +3 -2
- package/lib/module/Time/AmPmSwitcher.js.map +1 -1
- package/lib/module/Time/AnalogClock.js +1 -1
- package/lib/module/Time/AnalogClock.js.map +1 -1
- package/lib/module/Time/TimeInputs.js +6 -4
- package/lib/module/Time/TimeInputs.js.map +1 -1
- package/lib/module/Time/TimePicker.js +4 -1
- package/lib/module/Time/TimePicker.js.map +1 -1
- package/lib/module/Time/TimePickerModal.js +15 -4
- package/lib/module/Time/TimePickerModal.js.map +1 -1
- package/lib/module/Time/timeUtils.js +35 -3
- package/lib/module/Time/timeUtils.js.map +1 -1
- package/lib/module/translations/utils.js +2 -2
- package/lib/module/translations/utils.js.map +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/Date/AutoSizer.d.ts +1 -1
- package/lib/typescript/Date/Calendar.d.ts +10 -10
- package/lib/typescript/Date/DatePickerInput.d.ts +1 -1
- package/lib/typescript/Date/DatePickerInput.shared.d.ts +2 -1
- package/lib/typescript/Date/DatePickerInputWithoutModal.d.ts +10 -4
- package/lib/typescript/Date/DatePickerModalContent.d.ts +1 -1
- package/lib/typescript/Date/Day.d.ts +2 -2
- package/lib/typescript/Date/SwiperUtils.d.ts +2 -2
- package/lib/typescript/Date/dateUtils.d.ts +1 -1
- package/lib/typescript/TextInputMask.d.ts +9 -4
- package/lib/typescript/Time/TimePicker.d.ts +1 -1
- package/lib/typescript/Time/timeUtils.d.ts +7 -7
- package/lib/typescript/translations/utils.d.ts +1 -1
- package/lib/typescript/utils.d.ts +2 -0
- package/package.json +9 -8
- package/src/Date/AnimatedCrossView.tsx +0 -4
- package/src/Date/Calendar.tsx +2 -2
- package/src/Date/DatePickerInput.shared.tsx +1 -0
- package/src/Date/DatePickerInput.tsx +2 -1
- package/src/Date/DatePickerInputWithoutModal.tsx +36 -35
- package/src/Date/DatePickerModalContentHeader.tsx +9 -4
- package/src/Date/DatePickerModalHeader.tsx +35 -37
- package/src/Date/DatePickerModalHeaderBackground.tsx +6 -7
- package/src/Date/Day.tsx +12 -4
- package/src/Date/DayName.tsx +7 -5
- package/src/Date/Month.tsx +12 -2
- package/src/Date/Swiper.tsx +0 -1
- package/src/Date/YearPicker.tsx +16 -4
- package/src/TextInputMask.tsx +8 -4
- package/src/Time/AmPmSwitcher.tsx +11 -3
- package/src/Time/AnalogClock.tsx +3 -1
- package/src/Time/TimeInputs.tsx +32 -4
- package/src/Time/TimePicker.tsx +4 -1
- package/src/Time/TimePickerModal.tsx +29 -3
- package/src/Time/timeUtils.ts +31 -4
- package/src/translations/utils.ts +2 -2
- package/src/utils.ts +8 -1
- package/lib/commonjs/Date/DateRangeInput.js +0 -86
- package/lib/commonjs/Date/DateRangeInput.js.map +0 -1
- package/lib/module/Date/DateRangeInput.js +0 -69
- package/lib/module/Date/DateRangeInput.js.map +0 -1
- package/lib/typescript/Date/DateRangeInput.d.ts +0 -4
- package/src/Date/DateRangeInput.tsx +0 -75
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DayName","label","theme","useTheme","
|
|
1
|
+
{"version":3,"names":["DayName","label","theme","useTheme","textFont","isV3","fonts","bodyMedium","medium","styles","dayName","dayNameLabel","StyleSheet","create","flex","alignItems","fontSize","opacity","React","memo"],"sources":["DayName.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { MD2Theme, Text, useTheme } from 'react-native-paper'\n\nfunction DayName({ label }: { label: string }) {\n const theme = useTheme()\n\n let textFont = theme?.isV3\n ? theme.fonts.bodyMedium\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <View style={styles.dayName}>\n <Text style={[styles.dayNameLabel, { ...textFont }]} selectable={false}>\n {label}\n </Text>\n </View>\n )\n}\nconst styles = StyleSheet.create({\n dayName: { flex: 1, alignItems: 'center' },\n dayNameLabel: { fontSize: 14, opacity: 0.7 },\n})\nexport default React.memo(DayName)\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,SAASA,OAAT,OAA+C;EAAA,IAA9B;IAAEC;EAAF,CAA8B;EAC7C,MAAMC,KAAK,GAAG,IAAAC,0BAAA,GAAd;EAEA,IAAIC,QAAQ,GAAGF,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEG,IAAP,GACXH,KAAK,CAACI,KAAN,CAAYC,UADD,GAEVL,KAAD,CAA2BI,KAA3B,CAAiCE,MAFrC;EAIA,oBACE,oBAAC,iBAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,sBAAD;IAAM,KAAK,EAAE,CAACD,MAAM,CAACE,YAAR,EAAsB,EAAE,GAAGP;IAAL,CAAtB,CAAb;IAAqD,UAAU,EAAE;EAAjE,GACGH,KADH,CADF,CADF;AAOD;;AACD,MAAMQ,MAAM,GAAGG,uBAAA,CAAWC,MAAX,CAAkB;EAC/BH,OAAO,EAAE;IAAEI,IAAI,EAAE,CAAR;IAAWC,UAAU,EAAE;EAAvB,CADsB;EAE/BJ,YAAY,EAAE;IAAEK,QAAQ,EAAE,EAAZ;IAAgBC,OAAO,EAAE;EAAzB;AAFiB,CAAlB,CAAf;;4BAIeC,KAAK,CAACC,IAAN,CAAWnB,OAAX,C"}
|
|
@@ -205,6 +205,7 @@ function Month(props) {
|
|
|
205
205
|
};
|
|
206
206
|
});
|
|
207
207
|
}, [year, month, index, isDisabled, mode, isWithinValidRange, startDate, endDate, dates, date]);
|
|
208
|
+
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodyMedium : theme.fonts.medium;
|
|
208
209
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
209
210
|
style: [styles.month, {
|
|
210
211
|
height: getMonthHeight(scrollMode, index)
|
|
@@ -227,7 +228,8 @@ function Month(props) {
|
|
|
227
228
|
borderRadius: roundness
|
|
228
229
|
}]
|
|
229
230
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.Text, {
|
|
230
|
-
style: [styles.monthLabel,
|
|
231
|
+
style: [styles.monthLabel, { ...textFont
|
|
232
|
+
}],
|
|
231
233
|
selectable: false
|
|
232
234
|
}, monthName, " ", year), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
233
235
|
style: isHorizontal ? styles.opacity1 : styles.opacity0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Month","props","index","mode","date","dates","startDate","endDate","onPressYear","selectingYear","onPressDate","scrollMode","primaryColor","selectColor","roundness","disableWeekDays","locale","validRange","theme","useTheme","textColorOnPrimary","useTextColorOnPrimary","realIndex","getRealIndex","isHorizontal","isDisabled","isWithinValidRange","useRangeChecker","monthName","month","year","React","useMemo","md","addMonths","Date","y","getFullYear","m","getMonth","formatter","Intl","DateTimeFormat","format","grid","today","daysInMonth","getDaysInMonth","dayOfWeek","getFirstDayOfMonth","emptyDays","monthGrid","map","days","weekGrid","weekIndex","generatedDays","_","dayIndex","isFirstWeek","realDayIndex","beforeWeekDay","dayOfMonth","afterWeekDay","day","isToday","areDatesOnSameDay","inRange","disabled","selected","leftCrop","rightCrop","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","isDateBetween","safeDates","some","d","yesterday","tomorrow","yesterdaySelected","tomorrowSelected","isWithinOptionalValidRange","styles","height","getMonthHeight","monthHeader","marginTop","monthHeaderSingleMarginTop","marginBottom","monthHeaderSingleMarginBottom","undefined","yearButton","borderRadius","yearButtonInner","monthLabel","fonts","medium","opacity1","opacity0","week","filter","gd","showWeekDay","weekMargin","weekSize","daySize","montHeaderHeight","monthHeaderSingleHeight","StyleSheet","create","flexDirection","justifyContent","overflow","fontSize","opacity","alignSelf","marginLeft","paddingLeft","alignItems","Array","getGridCount","fill","getIndexCount","startAtIndex","weeksOffset","off","i","cIndex","gridCounts","getIndexFromHorizontalOffset","offset","width","Math","floor","getIndexFromVerticalOffset","estimatedIndex","ceil","estimatedMonthHeight","realOffset","getVerticalMonthsOffset","difference","beginOffset","getHorizontalMonthOffset","count","ob","monthsHeight","c","dayNamesHeight","calendarHeight","getCalendarHeaderHeight","gc","currentMonthHeight","extraHeight","memo"],"sources":["Month.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { IconButton, Text, useTheme, TouchableRipple } from 'react-native-paper'\nimport Day, { EmptyDay } from './Day'\n\nimport {\n addMonths,\n areDatesOnSameDay,\n daySize,\n DisableWeekDaysType,\n getDaysInMonth,\n getFirstDayOfMonth,\n getRealIndex,\n getGridCount,\n isDateBetween,\n gridCounts,\n showWeekDay,\n startAtIndex,\n beginOffset,\n estimatedMonthHeight,\n useRangeChecker,\n} from './dateUtils'\nimport { getCalendarHeaderHeight } from './CalendarHeader'\nimport type {\n CalendarDate,\n CalendarDates,\n ModeType,\n ValidRangeType,\n} from './Calendar'\nimport { dayNamesHeight } from './DayNames'\nimport { useTextColorOnPrimary } from '../utils'\n\ninterface BaseMonthProps {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n disableWeekDays?: DisableWeekDaysType\n mode: ModeType\n index: number\n onPressYear: (year: number) => any\n selectingYear: boolean\n onPressDate: (date: Date) => any\n primaryColor: string\n selectColor: string\n roundness: number\n validRange?: ValidRangeType\n\n // some of these should be required in final implementation\n startDate?: CalendarDate\n endDate?: CalendarDate\n date?: CalendarDate\n dates?: CalendarDates\n}\n\ninterface MonthRangeProps extends BaseMonthProps {\n mode: 'range'\n startDate: CalendarDate\n endDate: CalendarDate\n}\n\ninterface MonthSingleProps extends BaseMonthProps {\n mode: 'single'\n date: CalendarDate\n}\n\ninterface MonthMultiProps extends BaseMonthProps {\n mode: 'multiple'\n dates: CalendarDates\n}\n\nfunction Month(props: MonthSingleProps | MonthRangeProps | MonthMultiProps) {\n const {\n index,\n mode,\n date,\n dates,\n startDate,\n endDate,\n onPressYear,\n selectingYear,\n onPressDate,\n scrollMode,\n primaryColor,\n selectColor,\n roundness,\n disableWeekDays,\n locale,\n validRange,\n } = props\n const theme = useTheme()\n const textColorOnPrimary = useTextColorOnPrimary()\n const realIndex = getRealIndex(index)\n const isHorizontal = scrollMode === 'horizontal'\n const { isDisabled, isWithinValidRange } = useRangeChecker(validRange)\n const { monthName, month, year } = React.useMemo(() => {\n const md = addMonths(new Date(), realIndex)\n const y = md.getFullYear()\n const m = md.getMonth()\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n })\n return { monthName: formatter.format(md), month: m, year: y }\n }, [realIndex, locale])\n\n const grid = React.useMemo(() => {\n const today = new Date()\n\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n const emptyDays = dayOfWeek\n\n return monthGrid(index).map(({ days, weekGrid }) => {\n return {\n weekIndex: weekGrid,\n generatedDays: days.map((_, dayIndex) => {\n const isFirstWeek = weekGrid === 0\n const realDayIndex = emptyDays - dayIndex\n const beforeWeekDay = isFirstWeek && realDayIndex > 0\n const dayOfMonth = weekGrid * 7 + dayIndex - emptyDays + 1\n const afterWeekDay = dayOfMonth > daysInMonth\n\n const day = new Date(year, month, dayOfMonth)\n const isToday = areDatesOnSameDay(day, today)\n\n let inRange = false\n let disabled = isDisabled(day)\n let selected = false\n\n let leftCrop = dayOfMonth === 1\n let rightCrop = dayOfMonth === daysInMonth\n\n const isFirstDayOfMonth = dayOfMonth === 1\n const isLastDayOfMonth = dayOfMonth === daysInMonth\n\n if (mode === 'range') {\n const selectedStartDay = areDatesOnSameDay(day, startDate)\n const selectedEndDay = areDatesOnSameDay(day, endDate)\n selected = selectedStartDay || selectedEndDay\n inRange = isDateBetween(day, {\n startDate,\n endDate,\n })\n if (selectedStartDay) {\n leftCrop = true\n }\n if (selectedEndDay) {\n rightCrop = true\n }\n if (dayIndex === 0 && !selectedStartDay) {\n leftCrop = false\n }\n\n if (dayIndex === 6 && !selectedEndDay) {\n rightCrop = false\n }\n\n if (\n (isFirstDayOfMonth && selectedEndDay) ||\n (isLastDayOfMonth && selectedStartDay)\n ) {\n inRange = false\n }\n } else if (mode === 'multiple') {\n const safeDates = dates || []\n selected = safeDates.some((d) => areDatesOnSameDay(day, d))\n\n const yesterday = new Date(year, month, dayOfMonth - 1)\n const tomorrow = new Date(year, month, dayOfMonth + 1)\n\n const yesterdaySelected = safeDates.some((d) =>\n areDatesOnSameDay(d, yesterday)\n )\n const tomorrowSelected = safeDates.some((d) =>\n areDatesOnSameDay(d, tomorrow)\n )\n\n if (selected) {\n if (tomorrowSelected && yesterdaySelected) {\n inRange = true\n }\n if (tomorrowSelected && !yesterdaySelected) {\n inRange = true\n leftCrop = true\n }\n\n if (yesterdaySelected && !tomorrowSelected) {\n inRange = true\n rightCrop = true\n }\n\n if (isFirstDayOfMonth && !tomorrowSelected) {\n inRange = false\n }\n\n if (isLastDayOfMonth && !yesterdaySelected) {\n inRange = false\n }\n\n if (inRange && !leftCrop && !rightCrop) {\n selected = false\n }\n }\n } else if (mode === 'single') {\n selected = areDatesOnSameDay(day, date)\n }\n\n const isWithinOptionalValidRange = isWithinValidRange(day)\n\n if (inRange && !disabled) {\n disabled = false\n }\n\n if (!isWithinOptionalValidRange) {\n disabled = true\n }\n\n return {\n beforeWeekDay,\n afterWeekDay,\n year,\n month,\n dayOfMonth,\n dayIndex,\n mode,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n isToday,\n disabled,\n }\n }),\n }\n })\n }, [\n year,\n month,\n index,\n isDisabled,\n mode,\n isWithinValidRange,\n startDate,\n endDate,\n dates,\n date,\n ])\n\n return (\n <View style={[styles.month, { height: getMonthHeight(scrollMode, index) }]}>\n <View\n style={[\n styles.monthHeader,\n isHorizontal\n ? {\n marginTop: monthHeaderSingleMarginTop,\n marginBottom: monthHeaderSingleMarginBottom,\n }\n : null,\n ]}\n >\n <TouchableRipple\n disabled={!isHorizontal}\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n accessibilityRole=\"button\"\n accessibilityLabel={`${monthName} ${year}`}\n style={[\n styles.yearButton,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <View\n style={[\n styles.yearButtonInner,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <Text\n style={[styles.monthLabel, theme.fonts.medium]}\n selectable={false}\n >\n {monthName} {year}\n </Text>\n <View style={isHorizontal ? styles.opacity1 : styles.opacity0}>\n <IconButton\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n icon={selectingYear ? 'chevron-up' : 'chevron-down'}\n />\n </View>\n </View>\n </TouchableRipple>\n </View>\n\n {grid.map(({ weekIndex, generatedDays }) => (\n <View style={styles.week} key={weekIndex}>\n {generatedDays\n .filter((gd) => showWeekDay(gd.dayIndex, disableWeekDays))\n .map((gd) =>\n gd.beforeWeekDay || gd.afterWeekDay ? (\n <EmptyDay key={gd.dayIndex} />\n ) : (\n <Day\n key={gd.dayIndex}\n theme={theme}\n day={gd.dayOfMonth}\n month={gd.month}\n year={gd.year}\n selected={gd.selected}\n inRange={gd.inRange}\n leftCrop={gd.leftCrop}\n rightCrop={gd.rightCrop}\n onPressDate={onPressDate}\n isToday={gd.isToday}\n selectColor={selectColor}\n primaryColor={primaryColor}\n disabled={gd.disabled}\n textColorOnPrimary={textColorOnPrimary}\n />\n )\n )}\n </View>\n ))}\n </View>\n )\n}\n\nexport const weekMargin = 6\nexport const weekSize = daySize + weekMargin\nexport const montHeaderHeight = 56\nexport const monthHeaderSingleMarginTop = 4\nexport const monthHeaderSingleMarginBottom = 8 + 44 + 12\nexport const monthHeaderSingleHeight =\n monthHeaderSingleMarginTop + monthHeaderSingleMarginBottom\n\nconst styles = StyleSheet.create({\n week: {\n flexDirection: 'row',\n marginBottom: weekMargin,\n height: daySize,\n },\n\n month: {},\n\n monthHeader: {\n height: montHeaderHeight,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n monthLabel: { fontSize: 14, opacity: 0.7 },\n yearButton: { alignSelf: 'flex-start', marginLeft: 6 },\n yearButtonInner: {\n paddingLeft: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n opacity0: { opacity: 0 },\n opacity1: { opacity: 1 },\n})\n\nconst monthGrid = (index: number) => {\n return Array(getGridCount(index))\n .fill(null)\n .map((_, weekGrid) => {\n const days = Array(7).fill(null)\n return { weekGrid, days }\n })\n}\n\nfunction getIndexCount(index: number): number {\n if (index > startAtIndex) {\n return index - startAtIndex\n }\n\n return -(startAtIndex - index)\n}\n\nfunction weeksOffset(index: number): number {\n if (index === startAtIndex) {\n return 0\n }\n let off = 0\n if (index > startAtIndex) {\n for (let i = 0; i < index - startAtIndex; i++) {\n const cIndex = startAtIndex + i\n off += gridCounts[cIndex] || getGridCount(cIndex)\n }\n } else {\n for (let i = 0; i < startAtIndex - index; i++) {\n const cIndex = startAtIndex - i - 1\n off -= gridCounts[cIndex] || getGridCount(cIndex)\n }\n }\n return off\n}\n\nexport function getIndexFromHorizontalOffset(\n offset: number,\n width: number\n): number {\n return startAtIndex + Math.floor(offset / width)\n}\n\nexport function getIndexFromVerticalOffset(offset: number): number {\n let estimatedIndex = startAtIndex + Math.ceil(offset / estimatedMonthHeight)\n\n const realOffset = getVerticalMonthsOffset(estimatedIndex)\n const difference = (realOffset - beginOffset - offset) / estimatedMonthHeight\n if (difference >= 1 || difference <= -1) {\n estimatedIndex -= Math.floor(difference)\n }\n return estimatedIndex\n}\n\nexport function getHorizontalMonthOffset(index: number, width: number) {\n if (index < 0) {\n return 0\n }\n return width * index\n}\n\nexport function getVerticalMonthsOffset(index: number) {\n const count = getIndexCount(index)\n const ob = weeksOffset(index)\n const monthsHeight = weekSize * ob\n const c = monthsHeight + count * (dayNamesHeight + montHeaderHeight)\n\n return (c || 0) + beginOffset\n}\n\nexport function getMonthHeight(\n scrollMode: 'horizontal' | 'vertical',\n index: number\n): number {\n const calendarHeight = getCalendarHeaderHeight(scrollMode)\n const gc = getGridCount(index)\n\n const currentMonthHeight = weekSize * gc\n const extraHeight =\n scrollMode === 'horizontal' ? monthHeaderSingleHeight : montHeaderHeight\n const c = calendarHeight + currentMonthHeight + extraHeight\n return c || 0\n}\n\nexport default React.memo(Month)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Month","props","index","mode","date","dates","startDate","endDate","onPressYear","selectingYear","onPressDate","scrollMode","primaryColor","selectColor","roundness","disableWeekDays","locale","validRange","theme","useTheme","textColorOnPrimary","useTextColorOnPrimary","realIndex","getRealIndex","isHorizontal","isDisabled","isWithinValidRange","useRangeChecker","monthName","month","year","React","useMemo","md","addMonths","Date","y","getFullYear","m","getMonth","formatter","Intl","DateTimeFormat","format","grid","today","daysInMonth","getDaysInMonth","dayOfWeek","getFirstDayOfMonth","emptyDays","monthGrid","map","days","weekGrid","weekIndex","generatedDays","_","dayIndex","isFirstWeek","realDayIndex","beforeWeekDay","dayOfMonth","afterWeekDay","day","isToday","areDatesOnSameDay","inRange","disabled","selected","leftCrop","rightCrop","isFirstDayOfMonth","isLastDayOfMonth","selectedStartDay","selectedEndDay","isDateBetween","safeDates","some","d","yesterday","tomorrow","yesterdaySelected","tomorrowSelected","isWithinOptionalValidRange","textFont","isV3","fonts","bodyMedium","medium","styles","height","getMonthHeight","monthHeader","marginTop","monthHeaderSingleMarginTop","marginBottom","monthHeaderSingleMarginBottom","undefined","yearButton","borderRadius","yearButtonInner","monthLabel","opacity1","opacity0","week","filter","gd","showWeekDay","weekMargin","weekSize","daySize","montHeaderHeight","monthHeaderSingleHeight","StyleSheet","create","flexDirection","justifyContent","overflow","fontSize","opacity","alignSelf","marginLeft","paddingLeft","alignItems","Array","getGridCount","fill","getIndexCount","startAtIndex","weeksOffset","off","i","cIndex","gridCounts","getIndexFromHorizontalOffset","offset","width","Math","floor","getIndexFromVerticalOffset","estimatedIndex","ceil","estimatedMonthHeight","realOffset","getVerticalMonthsOffset","difference","beginOffset","getHorizontalMonthOffset","count","ob","monthsHeight","c","dayNamesHeight","calendarHeight","getCalendarHeaderHeight","gc","currentMonthHeight","extraHeight","memo"],"sources":["Month.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport {\n IconButton,\n Text,\n useTheme,\n TouchableRipple,\n MD2Theme,\n} from 'react-native-paper'\nimport Day, { EmptyDay } from './Day'\n\nimport {\n addMonths,\n areDatesOnSameDay,\n daySize,\n DisableWeekDaysType,\n getDaysInMonth,\n getFirstDayOfMonth,\n getRealIndex,\n getGridCount,\n isDateBetween,\n gridCounts,\n showWeekDay,\n startAtIndex,\n beginOffset,\n estimatedMonthHeight,\n useRangeChecker,\n} from './dateUtils'\nimport { getCalendarHeaderHeight } from './CalendarHeader'\nimport type {\n CalendarDate,\n CalendarDates,\n ModeType,\n ValidRangeType,\n} from './Calendar'\nimport { dayNamesHeight } from './DayNames'\nimport { useTextColorOnPrimary } from '../utils'\n\ninterface BaseMonthProps {\n locale: undefined | string\n scrollMode: 'horizontal' | 'vertical'\n disableWeekDays?: DisableWeekDaysType\n mode: ModeType\n index: number\n onPressYear: (year: number) => any\n selectingYear: boolean\n onPressDate: (date: Date) => any\n primaryColor: string\n selectColor: string\n roundness: number\n validRange?: ValidRangeType\n\n // some of these should be required in final implementation\n startDate?: CalendarDate\n endDate?: CalendarDate\n date?: CalendarDate\n dates?: CalendarDates\n}\n\ninterface MonthRangeProps extends BaseMonthProps {\n mode: 'range'\n startDate: CalendarDate\n endDate: CalendarDate\n}\n\ninterface MonthSingleProps extends BaseMonthProps {\n mode: 'single'\n date: CalendarDate\n}\n\ninterface MonthMultiProps extends BaseMonthProps {\n mode: 'multiple'\n dates: CalendarDates\n}\n\nfunction Month(props: MonthSingleProps | MonthRangeProps | MonthMultiProps) {\n const {\n index,\n mode,\n date,\n dates,\n startDate,\n endDate,\n onPressYear,\n selectingYear,\n onPressDate,\n scrollMode,\n primaryColor,\n selectColor,\n roundness,\n disableWeekDays,\n locale,\n validRange,\n } = props\n const theme = useTheme()\n const textColorOnPrimary = useTextColorOnPrimary()\n const realIndex = getRealIndex(index)\n const isHorizontal = scrollMode === 'horizontal'\n const { isDisabled, isWithinValidRange } = useRangeChecker(validRange)\n const { monthName, month, year } = React.useMemo(() => {\n const md = addMonths(new Date(), realIndex)\n const y = md.getFullYear()\n const m = md.getMonth()\n const formatter = new Intl.DateTimeFormat(locale, {\n month: 'long',\n })\n return { monthName: formatter.format(md), month: m, year: y }\n }, [realIndex, locale])\n\n const grid = React.useMemo(() => {\n const today = new Date()\n\n const daysInMonth = getDaysInMonth({ year, month })\n const dayOfWeek = getFirstDayOfMonth({ year, month })\n const emptyDays = dayOfWeek\n\n return monthGrid(index).map(({ days, weekGrid }) => {\n return {\n weekIndex: weekGrid,\n generatedDays: days.map((_, dayIndex) => {\n const isFirstWeek = weekGrid === 0\n const realDayIndex = emptyDays - dayIndex\n const beforeWeekDay = isFirstWeek && realDayIndex > 0\n const dayOfMonth = weekGrid * 7 + dayIndex - emptyDays + 1\n const afterWeekDay = dayOfMonth > daysInMonth\n\n const day = new Date(year, month, dayOfMonth)\n const isToday = areDatesOnSameDay(day, today)\n\n let inRange = false\n let disabled = isDisabled(day)\n let selected = false\n\n let leftCrop = dayOfMonth === 1\n let rightCrop = dayOfMonth === daysInMonth\n\n const isFirstDayOfMonth = dayOfMonth === 1\n const isLastDayOfMonth = dayOfMonth === daysInMonth\n\n if (mode === 'range') {\n const selectedStartDay = areDatesOnSameDay(day, startDate)\n const selectedEndDay = areDatesOnSameDay(day, endDate)\n selected = selectedStartDay || selectedEndDay\n inRange = isDateBetween(day, {\n startDate,\n endDate,\n })\n if (selectedStartDay) {\n leftCrop = true\n }\n if (selectedEndDay) {\n rightCrop = true\n }\n if (dayIndex === 0 && !selectedStartDay) {\n leftCrop = false\n }\n\n if (dayIndex === 6 && !selectedEndDay) {\n rightCrop = false\n }\n\n if (\n (isFirstDayOfMonth && selectedEndDay) ||\n (isLastDayOfMonth && selectedStartDay)\n ) {\n inRange = false\n }\n } else if (mode === 'multiple') {\n const safeDates = dates || []\n selected = safeDates.some((d) => areDatesOnSameDay(day, d))\n\n const yesterday = new Date(year, month, dayOfMonth - 1)\n const tomorrow = new Date(year, month, dayOfMonth + 1)\n\n const yesterdaySelected = safeDates.some((d) =>\n areDatesOnSameDay(d, yesterday)\n )\n const tomorrowSelected = safeDates.some((d) =>\n areDatesOnSameDay(d, tomorrow)\n )\n\n if (selected) {\n if (tomorrowSelected && yesterdaySelected) {\n inRange = true\n }\n if (tomorrowSelected && !yesterdaySelected) {\n inRange = true\n leftCrop = true\n }\n\n if (yesterdaySelected && !tomorrowSelected) {\n inRange = true\n rightCrop = true\n }\n\n if (isFirstDayOfMonth && !tomorrowSelected) {\n inRange = false\n }\n\n if (isLastDayOfMonth && !yesterdaySelected) {\n inRange = false\n }\n\n if (inRange && !leftCrop && !rightCrop) {\n selected = false\n }\n }\n } else if (mode === 'single') {\n selected = areDatesOnSameDay(day, date)\n }\n\n const isWithinOptionalValidRange = isWithinValidRange(day)\n\n if (inRange && !disabled) {\n disabled = false\n }\n\n if (!isWithinOptionalValidRange) {\n disabled = true\n }\n\n return {\n beforeWeekDay,\n afterWeekDay,\n year,\n month,\n dayOfMonth,\n dayIndex,\n mode,\n selected,\n inRange,\n leftCrop,\n rightCrop,\n isToday,\n disabled,\n }\n }),\n }\n })\n }, [\n year,\n month,\n index,\n isDisabled,\n mode,\n isWithinValidRange,\n startDate,\n endDate,\n dates,\n date,\n ])\n\n let textFont = theme?.isV3\n ? theme.fonts.bodyMedium\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <View style={[styles.month, { height: getMonthHeight(scrollMode, index) }]}>\n <View\n style={[\n styles.monthHeader,\n isHorizontal\n ? {\n marginTop: monthHeaderSingleMarginTop,\n marginBottom: monthHeaderSingleMarginBottom,\n }\n : null,\n ]}\n >\n <TouchableRipple\n disabled={!isHorizontal}\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n accessibilityRole=\"button\"\n accessibilityLabel={`${monthName} ${year}`}\n style={[\n styles.yearButton,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <View\n style={[\n styles.yearButtonInner,\n {\n borderRadius: roundness,\n },\n ]}\n >\n <Text\n style={[styles.monthLabel, { ...textFont }]}\n selectable={false}\n >\n {monthName} {year}\n </Text>\n <View style={isHorizontal ? styles.opacity1 : styles.opacity0}>\n <IconButton\n onPress={isHorizontal ? () => onPressYear(year) : undefined}\n icon={selectingYear ? 'chevron-up' : 'chevron-down'}\n />\n </View>\n </View>\n </TouchableRipple>\n </View>\n\n {grid.map(({ weekIndex, generatedDays }) => (\n <View style={styles.week} key={weekIndex}>\n {generatedDays\n .filter((gd) => showWeekDay(gd.dayIndex, disableWeekDays))\n .map((gd) =>\n gd.beforeWeekDay || gd.afterWeekDay ? (\n <EmptyDay key={gd.dayIndex} />\n ) : (\n <Day\n key={gd.dayIndex}\n theme={theme}\n day={gd.dayOfMonth}\n month={gd.month}\n year={gd.year}\n selected={gd.selected}\n inRange={gd.inRange}\n leftCrop={gd.leftCrop}\n rightCrop={gd.rightCrop}\n onPressDate={onPressDate}\n isToday={gd.isToday}\n selectColor={selectColor}\n primaryColor={primaryColor}\n disabled={gd.disabled}\n textColorOnPrimary={textColorOnPrimary}\n />\n )\n )}\n </View>\n ))}\n </View>\n )\n}\n\nexport const weekMargin = 6\nexport const weekSize = daySize + weekMargin\nexport const montHeaderHeight = 56\nexport const monthHeaderSingleMarginTop = 4\nexport const monthHeaderSingleMarginBottom = 8 + 44 + 12\nexport const monthHeaderSingleHeight =\n monthHeaderSingleMarginTop + monthHeaderSingleMarginBottom\n\nconst styles = StyleSheet.create({\n week: {\n flexDirection: 'row',\n marginBottom: weekMargin,\n height: daySize,\n },\n\n month: {},\n\n monthHeader: {\n height: montHeaderHeight,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n monthLabel: { fontSize: 14, opacity: 0.7 },\n yearButton: { alignSelf: 'flex-start', marginLeft: 6 },\n yearButtonInner: {\n paddingLeft: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n opacity0: { opacity: 0 },\n opacity1: { opacity: 1 },\n})\n\nconst monthGrid = (index: number) => {\n return Array(getGridCount(index))\n .fill(null)\n .map((_, weekGrid) => {\n const days = Array(7).fill(null)\n return { weekGrid, days }\n })\n}\n\nfunction getIndexCount(index: number): number {\n if (index > startAtIndex) {\n return index - startAtIndex\n }\n\n return -(startAtIndex - index)\n}\n\nfunction weeksOffset(index: number): number {\n if (index === startAtIndex) {\n return 0\n }\n let off = 0\n if (index > startAtIndex) {\n for (let i = 0; i < index - startAtIndex; i++) {\n const cIndex = startAtIndex + i\n off += gridCounts[cIndex] || getGridCount(cIndex)\n }\n } else {\n for (let i = 0; i < startAtIndex - index; i++) {\n const cIndex = startAtIndex - i - 1\n off -= gridCounts[cIndex] || getGridCount(cIndex)\n }\n }\n return off\n}\n\nexport function getIndexFromHorizontalOffset(\n offset: number,\n width: number\n): number {\n return startAtIndex + Math.floor(offset / width)\n}\n\nexport function getIndexFromVerticalOffset(offset: number): number {\n let estimatedIndex = startAtIndex + Math.ceil(offset / estimatedMonthHeight)\n\n const realOffset = getVerticalMonthsOffset(estimatedIndex)\n const difference = (realOffset - beginOffset - offset) / estimatedMonthHeight\n if (difference >= 1 || difference <= -1) {\n estimatedIndex -= Math.floor(difference)\n }\n return estimatedIndex\n}\n\nexport function getHorizontalMonthOffset(index: number, width: number) {\n if (index < 0) {\n return 0\n }\n return width * index\n}\n\nexport function getVerticalMonthsOffset(index: number) {\n const count = getIndexCount(index)\n const ob = weeksOffset(index)\n const monthsHeight = weekSize * ob\n const c = monthsHeight + count * (dayNamesHeight + montHeaderHeight)\n\n return (c || 0) + beginOffset\n}\n\nexport function getMonthHeight(\n scrollMode: 'horizontal' | 'vertical',\n index: number\n): number {\n const calendarHeight = getCalendarHeaderHeight(scrollMode)\n const gc = getGridCount(index)\n\n const currentMonthHeight = weekSize * gc\n const extraHeight =\n scrollMode === 'horizontal' ? monthHeaderSingleHeight : montHeaderHeight\n const c = calendarHeight + currentMonthHeight + extraHeight\n return c || 0\n}\n\nexport default React.memo(Month)\n"],"mappings":"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"}
|
|
@@ -142,8 +142,7 @@ function VerticalScroller(_ref3) {
|
|
|
142
142
|
left: 0,
|
|
143
143
|
right: 0,
|
|
144
144
|
position: 'absolute',
|
|
145
|
-
height: (0, _Month.getMonthHeight)('vertical', visibleIndexes[vi])
|
|
146
|
-
|
|
145
|
+
height: (0, _Month.getMonthHeight)('vertical', visibleIndexes[vi])
|
|
147
146
|
}
|
|
148
147
|
}, renderItem({
|
|
149
148
|
index: visibleIndexes[vi],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Swiper","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","isHorizontal","index","setIndex","React","useState","onPrev","useCallback","prev","onNext","renderProps","indexRef","useLatest","useYearChange","newIndex","currentIndexRef","styles","flex1","width","height","estimatedMonthHeight","visibleArray","i","VerticalScroller","estimatedHeight","idx","useRef","visibleIndexes","setVisibleIndexes","parentRef","useIsomorphicLayoutEffect","element","current","top","getVerticalMonthsOffset","montHeaderHeight","scrollTo","setVisibleIndexesThrottled","useDebouncedCallback","onScroll","e","currentTarget","scrollTop","offset","beginOffset","getIndexFromVerticalOffset","overflow","totalMonths","position","map","vi","willChange","transform","left","right","getMonthHeight","empty","StyleSheet","create","flex","callback","mounted","latest","timerId","useEffect","window","cancelAnimationFrame","args","requestAnimationFrame","useLayoutEffect","memo"],"sources":["Swiper.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\n\nimport {\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport { useLatest } from '../utils'\nimport { RenderProps, SwiperProps, useYearChange } from './SwiperUtils'\nimport AutoSizer from './AutoSizer'\n\nfunction Swiper({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n}: SwiperProps) {\n const isHorizontal = scrollMode === 'horizontal'\n const [index, setIndex] = React.useState(initialIndex)\n\n const onPrev = React.useCallback(() => {\n setIndex((prev) => prev - 1)\n }, [setIndex])\n\n const onNext = React.useCallback(() => {\n setIndex((prev) => prev + 1)\n }, [setIndex])\n\n const renderProps = {\n index,\n onPrev,\n onNext,\n }\n const indexRef = useLatest(index)\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n setIndex(newIndex)\n }\n },\n {\n selectedYear,\n currentIndexRef: indexRef,\n }\n )\n\n return (\n <>\n {renderHeader && renderHeader(renderProps)}\n {isHorizontal ? (\n <View style={styles.flex1}>\n {renderItem({ index, onPrev, onNext })}\n </View>\n ) : (\n <AutoSizer>\n {({ width, height }) => (\n <VerticalScroller\n width={width}\n height={height}\n initialIndex={initialIndex}\n estimatedHeight={estimatedMonthHeight}\n renderItem={renderItem}\n />\n )}\n </AutoSizer>\n )}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nconst visibleArray = (i: number) => [i - 2, i - 1, i, i + 1, i + 2]\n\nfunction VerticalScroller({\n width,\n height,\n initialIndex,\n estimatedHeight,\n renderItem,\n}: {\n renderItem: (renderProps: RenderProps) => any\n width: number\n height: number\n initialIndex: number\n estimatedHeight: number\n}) {\n const idx = React.useRef<number>(initialIndex)\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n visibleArray(initialIndex)\n )\n // eslint-disable-next-line no-undef\n const parentRef = React.useRef<HTMLDivElement | null>(null)\n\n useIsomorphicLayoutEffect(() => {\n const element = parentRef.current\n if (!element) {\n return\n }\n const top = getVerticalMonthsOffset(idx.current) - montHeaderHeight\n\n element.scrollTo({\n top,\n })\n }, [parentRef, idx])\n\n const setVisibleIndexesThrottled = useDebouncedCallback(setVisibleIndexes)\n\n const onScroll = React.useCallback(\n (e: React.UIEvent) => {\n const top = e.currentTarget.scrollTop\n if (top === 0) {\n return\n }\n\n const offset = top - beginOffset\n const index = getIndexFromVerticalOffset(offset)\n\n if (idx.current !== index) {\n idx.current = index\n setVisibleIndexesThrottled(visibleArray(index))\n }\n },\n [setVisibleIndexesThrottled]\n )\n\n return (\n <div\n ref={parentRef}\n style={{\n height,\n width,\n overflow: 'auto',\n }}\n onScroll={onScroll}\n >\n <div\n style={{\n height: estimatedHeight * totalMonths,\n position: 'relative',\n }}\n >\n {[0, 1, 2, 3, 4].map((vi) => (\n <div\n key={vi}\n style={{\n willChange: 'transform',\n transform: `translateY(${getVerticalMonthsOffset(\n visibleIndexes[vi]\n )}px)`,\n left: 0,\n right: 0,\n position: 'absolute',\n height: getMonthHeight('vertical', visibleIndexes[vi]),\n // transform: `translateY(${getMonthsOffset('vertical', vi)}px)`,\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: empty,\n onNext: empty,\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nconst empty = () => null\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1,\n },\n})\n\nexport function useDebouncedCallback(callback: any): any {\n const mounted = React.useRef<boolean>(true)\n const latest = useLatest(callback)\n const timerId = React.useRef<any>(null)\n\n React.useEffect(() => {\n return () => {\n mounted.current = false\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n }\n }, [mounted, timerId])\n\n return React.useCallback(\n (args: any) => {\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n timerId.current = window.requestAnimationFrame(function () {\n if (mounted.current) {\n latest.current(args)\n }\n })\n },\n [mounted, timerId, latest]\n )\n}\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport default React.memo(Swiper)\n"],"mappings":";;;;;;;;AAAA;;AACA;;AAEA;;AAOA;;AACA;;AACA;;AACA;;;;;;;;AAEA,SAASA,MAAT,OAOgB;EAAA,IAPA;IACdC,UADc;IAEdC,UAFc;IAGdC,YAHc;IAIdC,YAJc;IAKdC,YALc;IAMdC;EANc,CAOA;EACd,MAAMC,YAAY,GAAGN,UAAU,KAAK,YAApC;EACA,MAAM,CAACO,KAAD,EAAQC,QAAR,IAAoBC,KAAK,CAACC,QAAN,CAAeL,YAAf,CAA1B;EAEA,MAAMM,MAAM,GAAGF,KAAK,CAACG,WAAN,CAAkB,MAAM;IACrCJ,QAAQ,CAAEK,IAAD,IAAUA,IAAI,GAAG,CAAlB,CAAR;EACD,CAFc,EAEZ,CAACL,QAAD,CAFY,CAAf;EAIA,MAAMM,MAAM,GAAGL,KAAK,CAACG,WAAN,CAAkB,MAAM;IACrCJ,QAAQ,CAAEK,IAAD,IAAUA,IAAI,GAAG,CAAlB,CAAR;EACD,CAFc,EAEZ,CAACL,QAAD,CAFY,CAAf;EAIA,MAAMO,WAAW,GAAG;IAClBR,KADkB;IAElBI,MAFkB;IAGlBG;EAHkB,CAApB;EAKA,MAAME,QAAQ,GAAG,IAAAC,gBAAA,EAAUV,KAAV,CAAjB;EACA,IAAAW,0BAAA,EACGC,QAAD,IAAc;IACZ,IAAIA,QAAJ,EAAc;MACZX,QAAQ,CAACW,QAAD,CAAR;IACD;EACF,CALH,EAME;IACEf,YADF;IAEEgB,eAAe,EAAEJ;EAFnB,CANF;EAYA,oBACE,0CACGd,YAAY,IAAIA,YAAY,CAACa,WAAD,CAD/B,EAEGT,YAAY,gBACX,oBAAC,iBAAD;IAAM,KAAK,EAAEe,MAAM,CAACC;EAApB,GACGrB,UAAU,CAAC;IAAEM,KAAF;IAASI,MAAT;IAAiBG;EAAjB,CAAD,CADb,CADW,gBAKX,oBAAC,kBAAD,QACG;IAAA,IAAC;MAAES,KAAF;MAASC;IAAT,CAAD;IAAA,oBACC,oBAAC,gBAAD;MACE,KAAK,EAAED,KADT;MAEE,MAAM,EAAEC,MAFV;MAGE,YAAY,EAAEnB,YAHhB;MAIE,eAAe,EAAEoB,+BAJnB;MAKE,UAAU,EAAExB;IALd,EADD;EAAA,CADH,CAPJ,EAmBGE,YAAY,IAAIA,YAAY,CAACY,WAAD,CAnB/B,CADF;AAuBD;;AAED,MAAMW,YAAY,GAAIC,CAAD,IAAe,CAACA,CAAC,GAAG,CAAL,EAAQA,CAAC,GAAG,CAAZ,EAAeA,CAAf,EAAkBA,CAAC,GAAG,CAAtB,EAAyBA,CAAC,GAAG,CAA7B,CAApC;;AAEA,SAASC,gBAAT,QAYG;EAAA,IAZuB;IACxBL,KADwB;IAExBC,MAFwB;IAGxBnB,YAHwB;IAIxBwB,eAJwB;IAKxB5B;EALwB,CAYvB;EACD,MAAM6B,GAAG,GAAGrB,KAAK,CAACsB,MAAN,CAAqB1B,YAArB,CAAZ;EACA,MAAM,CAAC2B,cAAD,EAAiBC,iBAAjB,IAAsCxB,KAAK,CAACC,QAAN,CAC1CgB,YAAY,CAACrB,YAAD,CAD8B,CAA5C,CAFC,CAKD;;EACA,MAAM6B,SAAS,GAAGzB,KAAK,CAACsB,MAAN,CAAoC,IAApC,CAAlB;EAEAI,yBAAyB,CAAC,MAAM;IAC9B,MAAMC,OAAO,GAAGF,SAAS,CAACG,OAA1B;;IACA,IAAI,CAACD,OAAL,EAAc;MACZ;IACD;;IACD,MAAME,GAAG,GAAG,IAAAC,8BAAA,EAAwBT,GAAG,CAACO,OAA5B,IAAuCG,uBAAnD;;IAEAJ,OAAO,CAACK,QAAR,CAAiB;MACfH;IADe,CAAjB;EAGD,CAVwB,EAUtB,CAACJ,SAAD,EAAYJ,GAAZ,CAVsB,CAAzB;EAYA,MAAMY,0BAA0B,GAAGC,oBAAoB,CAACV,iBAAD,CAAvD;EAEA,MAAMW,QAAQ,GAAGnC,KAAK,CAACG,WAAN,CACdiC,CAAD,IAAsB;IACpB,MAAMP,GAAG,GAAGO,CAAC,CAACC,aAAF,CAAgBC,SAA5B;;IACA,IAAIT,GAAG,KAAK,CAAZ,EAAe;MACb;IACD;;IAED,MAAMU,MAAM,GAAGV,GAAG,GAAGW,sBAArB;IACA,MAAM1C,KAAK,GAAG,IAAA2C,iCAAA,EAA2BF,MAA3B,CAAd;;IAEA,IAAIlB,GAAG,CAACO,OAAJ,KAAgB9B,KAApB,EAA2B;MACzBuB,GAAG,CAACO,OAAJ,GAAc9B,KAAd;MACAmC,0BAA0B,CAAChB,YAAY,CAACnB,KAAD,CAAb,CAA1B;IACD;EACF,CAdc,EAef,CAACmC,0BAAD,CAfe,CAAjB;EAkBA,oBACE;IACE,GAAG,EAAER,SADP;IAEE,KAAK,EAAE;MACLV,MADK;MAELD,KAFK;MAGL4B,QAAQ,EAAE;IAHL,CAFT;IAOE,QAAQ,EAAEP;EAPZ,gBASE;IACE,KAAK,EAAE;MACLpB,MAAM,EAAEK,eAAe,GAAGuB,sBADrB;MAELC,QAAQ,EAAE;IAFL;EADT,GAMG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgBC,GAAhB,CAAqBC,EAAD,iBACnB;IACE,GAAG,EAAEA,EADP;IAEE,KAAK,EAAE;MACLC,UAAU,EAAE,WADP;MAELC,SAAS,EAAG,cAAa,IAAAlB,8BAAA,EACvBP,cAAc,CAACuB,EAAD,CADS,CAEvB,KAJG;MAKLG,IAAI,EAAE,CALD;MAMLC,KAAK,EAAE,CANF;MAOLN,QAAQ,EAAE,UAPL;MAQL7B,MAAM,EAAE,IAAAoC,qBAAA,EAAe,UAAf,EAA2B5B,cAAc,CAACuB,EAAD,CAAzC,CARH,CASL;;IATK;EAFT,GAcGtD,UAAU,CAAC;IACVM,KAAK,EAAEyB,cAAc,CAACuB,EAAD,CADX;IAEV5C,MAAM,EAAEkD,KAFE;IAGV/C,MAAM,EAAE+C;EAHE,CAAD,CAdb,CADD,CANH,CATF,CADF;AAyCD;;AAED,MAAMA,KAAK,GAAG,MAAM,IAApB;;AAEA,MAAMxC,MAAM,GAAGyC,uBAAA,CAAWC,MAAX,CAAkB;EAC/BzC,KAAK,EAAE;IACL0C,IAAI,EAAE;EADD;AADwB,CAAlB,CAAf;;AAMO,SAASrB,oBAAT,CAA8BsB,QAA9B,EAAkD;EACvD,MAAMC,OAAO,GAAGzD,KAAK,CAACsB,MAAN,CAAsB,IAAtB,CAAhB;EACA,MAAMoC,MAAM,GAAG,IAAAlD,gBAAA,EAAUgD,QAAV,CAAf;EACA,MAAMG,OAAO,GAAG3D,KAAK,CAACsB,MAAN,CAAkB,IAAlB,CAAhB;EAEAtB,KAAK,CAAC4D,SAAN,CAAgB,MAAM;IACpB,OAAO,MAAM;MACXH,OAAO,CAAC7B,OAAR,GAAkB,KAAlB;;MACA,IAAI+B,OAAO,CAAC/B,OAAZ,EAAqB;QACnBiC,MAAM,CAACC,oBAAP,CAA4BH,OAAO,CAAC/B,OAApC;MACD;IACF,CALD;EAMD,CAPD,EAOG,CAAC6B,OAAD,EAAUE,OAAV,CAPH;EASA,OAAO3D,KAAK,CAACG,WAAN,CACJ4D,IAAD,IAAe;IACb,IAAIJ,OAAO,CAAC/B,OAAZ,EAAqB;MACnBiC,MAAM,CAACC,oBAAP,CAA4BH,OAAO,CAAC/B,OAApC;IACD;;IACD+B,OAAO,CAAC/B,OAAR,GAAkBiC,MAAM,CAACG,qBAAP,CAA6B,YAAY;MACzD,IAAIP,OAAO,CAAC7B,OAAZ,EAAqB;QACnB8B,MAAM,CAAC9B,OAAP,CAAemC,IAAf;MACD;IACF,CAJiB,CAAlB;EAKD,CAVI,EAWL,CAACN,OAAD,EAAUE,OAAV,EAAmBD,MAAnB,CAXK,CAAP;AAaD;;AAED,MAAMhC,yBAAyB,GAC7B,OAAOmC,MAAP,KAAkB,WAAlB,GAAgC7D,KAAK,CAACiE,eAAtC,GAAwDjE,KAAK,CAAC4D,SADhE;;4BAGe5D,KAAK,CAACkE,IAAN,CAAW5E,MAAX,C"}
|
|
1
|
+
{"version":3,"names":["Swiper","scrollMode","renderItem","renderHeader","renderFooter","selectedYear","initialIndex","isHorizontal","index","setIndex","React","useState","onPrev","useCallback","prev","onNext","renderProps","indexRef","useLatest","useYearChange","newIndex","currentIndexRef","styles","flex1","width","height","estimatedMonthHeight","visibleArray","i","VerticalScroller","estimatedHeight","idx","useRef","visibleIndexes","setVisibleIndexes","parentRef","useIsomorphicLayoutEffect","element","current","top","getVerticalMonthsOffset","montHeaderHeight","scrollTo","setVisibleIndexesThrottled","useDebouncedCallback","onScroll","e","currentTarget","scrollTop","offset","beginOffset","getIndexFromVerticalOffset","overflow","totalMonths","position","map","vi","willChange","transform","left","right","getMonthHeight","empty","StyleSheet","create","flex","callback","mounted","latest","timerId","useEffect","window","cancelAnimationFrame","args","requestAnimationFrame","useLayoutEffect","memo"],"sources":["Swiper.tsx"],"sourcesContent":["import * as React from 'react'\nimport { StyleSheet, View } from 'react-native'\n\nimport {\n getIndexFromVerticalOffset,\n getMonthHeight,\n getVerticalMonthsOffset,\n montHeaderHeight,\n} from './Month'\n\nimport { beginOffset, estimatedMonthHeight, totalMonths } from './dateUtils'\nimport { useLatest } from '../utils'\nimport { RenderProps, SwiperProps, useYearChange } from './SwiperUtils'\nimport AutoSizer from './AutoSizer'\n\nfunction Swiper({\n scrollMode,\n renderItem,\n renderHeader,\n renderFooter,\n selectedYear,\n initialIndex,\n}: SwiperProps) {\n const isHorizontal = scrollMode === 'horizontal'\n const [index, setIndex] = React.useState(initialIndex)\n\n const onPrev = React.useCallback(() => {\n setIndex((prev) => prev - 1)\n }, [setIndex])\n\n const onNext = React.useCallback(() => {\n setIndex((prev) => prev + 1)\n }, [setIndex])\n\n const renderProps = {\n index,\n onPrev,\n onNext,\n }\n const indexRef = useLatest(index)\n useYearChange(\n (newIndex) => {\n if (newIndex) {\n setIndex(newIndex)\n }\n },\n {\n selectedYear,\n currentIndexRef: indexRef,\n }\n )\n\n return (\n <>\n {renderHeader && renderHeader(renderProps)}\n {isHorizontal ? (\n <View style={styles.flex1}>\n {renderItem({ index, onPrev, onNext })}\n </View>\n ) : (\n <AutoSizer>\n {({ width, height }) => (\n <VerticalScroller\n width={width}\n height={height}\n initialIndex={initialIndex}\n estimatedHeight={estimatedMonthHeight}\n renderItem={renderItem}\n />\n )}\n </AutoSizer>\n )}\n {renderFooter && renderFooter(renderProps)}\n </>\n )\n}\n\nconst visibleArray = (i: number) => [i - 2, i - 1, i, i + 1, i + 2]\n\nfunction VerticalScroller({\n width,\n height,\n initialIndex,\n estimatedHeight,\n renderItem,\n}: {\n renderItem: (renderProps: RenderProps) => any\n width: number\n height: number\n initialIndex: number\n estimatedHeight: number\n}) {\n const idx = React.useRef<number>(initialIndex)\n const [visibleIndexes, setVisibleIndexes] = React.useState<number[]>(\n visibleArray(initialIndex)\n )\n // eslint-disable-next-line no-undef\n const parentRef = React.useRef<HTMLDivElement | null>(null)\n\n useIsomorphicLayoutEffect(() => {\n const element = parentRef.current\n if (!element) {\n return\n }\n const top = getVerticalMonthsOffset(idx.current) - montHeaderHeight\n\n element.scrollTo({\n top,\n })\n }, [parentRef, idx])\n\n const setVisibleIndexesThrottled = useDebouncedCallback(setVisibleIndexes)\n\n const onScroll = React.useCallback(\n (e: React.UIEvent) => {\n const top = e.currentTarget.scrollTop\n if (top === 0) {\n return\n }\n\n const offset = top - beginOffset\n const index = getIndexFromVerticalOffset(offset)\n\n if (idx.current !== index) {\n idx.current = index\n setVisibleIndexesThrottled(visibleArray(index))\n }\n },\n [setVisibleIndexesThrottled]\n )\n\n return (\n <div\n ref={parentRef}\n style={{\n height,\n width,\n overflow: 'auto',\n }}\n onScroll={onScroll}\n >\n <div\n style={{\n height: estimatedHeight * totalMonths,\n position: 'relative',\n }}\n >\n {[0, 1, 2, 3, 4].map((vi) => (\n <div\n key={vi}\n style={{\n willChange: 'transform',\n transform: `translateY(${getVerticalMonthsOffset(\n visibleIndexes[vi]\n )}px)`,\n left: 0,\n right: 0,\n position: 'absolute',\n height: getMonthHeight('vertical', visibleIndexes[vi]),\n }}\n >\n {renderItem({\n index: visibleIndexes[vi],\n onPrev: empty,\n onNext: empty,\n })}\n </div>\n ))}\n </div>\n </div>\n )\n}\n\nconst empty = () => null\n\nconst styles = StyleSheet.create({\n flex1: {\n flex: 1,\n },\n})\n\nexport function useDebouncedCallback(callback: any): any {\n const mounted = React.useRef<boolean>(true)\n const latest = useLatest(callback)\n const timerId = React.useRef<any>(null)\n\n React.useEffect(() => {\n return () => {\n mounted.current = false\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n }\n }, [mounted, timerId])\n\n return React.useCallback(\n (args: any) => {\n if (timerId.current) {\n window.cancelAnimationFrame(timerId.current)\n }\n timerId.current = window.requestAnimationFrame(function () {\n if (mounted.current) {\n latest.current(args)\n }\n })\n },\n [mounted, timerId, latest]\n )\n}\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport default React.memo(Swiper)\n"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ function YearPicker(_ref) {
|
|
|
39
39
|
animated: false
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
}, [flatList, selectedYear]);
|
|
42
|
+
}, [flatList, selectedYear, startYear]);
|
|
43
43
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
44
44
|
style: [_reactNative.StyleSheet.absoluteFill, styles.root, {
|
|
45
45
|
backgroundColor: theme.colors.surface
|
|
@@ -71,6 +71,7 @@ function YearPure(_ref3) {
|
|
|
71
71
|
onPressYear
|
|
72
72
|
} = _ref3;
|
|
73
73
|
const theme = (0, _reactNativePaper.useTheme)();
|
|
74
|
+
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodyLarge : theme.fonts.medium;
|
|
74
75
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
75
76
|
style: styles.year
|
|
76
77
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.TouchableRipple, {
|
|
@@ -83,7 +84,8 @@ function YearPure(_ref3) {
|
|
|
83
84
|
backgroundColor: theme.colors.primary
|
|
84
85
|
} : null]
|
|
85
86
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.Text, {
|
|
86
|
-
style: [styles.yearLabel, selected ? styles.selectedYear : null
|
|
87
|
+
style: [styles.yearLabel, selected ? styles.selectedYear : null, { ...textFont
|
|
88
|
+
}],
|
|
87
89
|
selectable: false
|
|
88
90
|
}, year))));
|
|
89
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ITEM_HEIGHT","YearPicker","selectedYear","selectingYear","onPressYear","startYear","endYear","theme","useTheme","flatList","React","useRef","years","range","isNaN","useEffect","current","indexToGo","scrollToOffset","offset","animated","StyleSheet","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","String","yearButton","yearInner","primary","yearLabel","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","color","borderRadius","overflow","alignItems","fontSize","opacity"],"sources":["YearPicker.tsx"],"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\nexport default function YearPicker({\n selectedYear,\n selectingYear,\n onPressYear,\n startYear,\n endYear,\n}: {\n selectedYear: number | undefined\n selectingYear: boolean\n onPressYear: (year: number) => any\n startYear: number\n endYear: number\n}) {\n const theme = useTheme()\n const flatList = React.useRef<FlatList<number> | null>(null)\n const years = range(isNaN(startYear) ? 1800 : startYear
|
|
1
|
+
{"version":3,"names":["ITEM_HEIGHT","YearPicker","selectedYear","selectingYear","onPressYear","startYear","endYear","theme","useTheme","flatList","React","useRef","years","range","isNaN","useEffect","current","indexToGo","scrollToOffset","offset","animated","StyleSheet","absoluteFill","styles","root","backgroundColor","colors","surface","opacity1","opacity0","list","item","YearPure","year","selected","textFont","isV3","fonts","bodyLarge","medium","String","yearButton","yearInner","primary","yearLabel","Year","memo","create","flex","top","zIndex","marginLeft","marginRight","height","justifyContent","color","borderRadius","overflow","alignItems","fontSize","opacity"],"sources":["YearPicker.tsx"],"sourcesContent":["import * as React from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { MD2Theme, Text, TouchableRipple, useTheme } from 'react-native-paper'\nimport { range } from '../utils'\n\nconst ITEM_HEIGHT = 62\n\nexport default function YearPicker({\n selectedYear,\n selectingYear,\n onPressYear,\n startYear,\n endYear,\n}: {\n selectedYear: number | undefined\n selectingYear: boolean\n onPressYear: (year: number) => any\n startYear: number\n endYear: number\n}) {\n const theme = useTheme()\n const flatList = React.useRef<FlatList<number> | null>(null)\n const years = range(\n isNaN(startYear) ? 1800 : startYear,\n isNaN(endYear) ? 2200 : endYear\n )\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, startYear])\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\n let textFont = theme?.isV3\n ? theme.fonts.bodyLarge\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <View style={styles.year}>\n <TouchableRipple\n onPress={() => onPressYear(year)}\n accessibilityRole=\"button\"\n accessibilityLabel={String(year)}\n style={styles.yearButton}\n >\n <View\n style={[\n styles.yearInner,\n selected ? { backgroundColor: theme.colors.primary } : null,\n ]}\n >\n <Text\n style={[\n styles.yearLabel,\n selected ? styles.selectedYear : null,\n { ...textFont },\n ]}\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"],"mappings":"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"}
|
|
@@ -77,12 +77,16 @@ function TextInputWithMask(_ref, ref) {
|
|
|
77
77
|
const [controlledValue, setControlledValue] = React.useState(value || '');
|
|
78
78
|
|
|
79
79
|
const onInnerChange = text => {
|
|
80
|
-
const enhancedText = enhanceTextWithMask(text, mask, controlledValue);
|
|
81
|
-
setControlledValue(enhancedText);
|
|
82
|
-
|
|
83
80
|
if (text.length === mask.length) {
|
|
84
81
|
onChangeText && onChangeText(text);
|
|
85
82
|
}
|
|
83
|
+
|
|
84
|
+
setControlledValue(text);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const onInnerBlur = () => {
|
|
88
|
+
const enhancedText = enhanceTextWithMask(value, mask, controlledValue);
|
|
89
|
+
setControlledValue(enhancedText);
|
|
86
90
|
};
|
|
87
91
|
|
|
88
92
|
React.useEffect(() => {
|
|
@@ -92,7 +96,8 @@ function TextInputWithMask(_ref, ref) {
|
|
|
92
96
|
ref: ref
|
|
93
97
|
}, rest, {
|
|
94
98
|
value: controlledValue,
|
|
95
|
-
onChangeText: onInnerChange
|
|
99
|
+
onChangeText: onInnerChange,
|
|
100
|
+
onBlur: onInnerBlur
|
|
96
101
|
}));
|
|
97
102
|
}
|
|
98
103
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["splitCharacters","detectCharacter","mask","c","find","ch","includes","enhanceTextWithMask","text","previousValue","isBackSpace","length","splitCharacter","maskParts","split","textParts","finalString","maskPartIndex","partString","maskPart","textPart","maskDigitIndex","currentCharacter","undefined","character","push","join","lastPart","lastMaskPart","TextInputWithMask","ref","onChangeText","value","rest","controlledValue","setControlledValue","React","useState","onInnerChange","enhancedText","useEffect","forwardRef"],"sources":["TextInputMask.tsx"],"sourcesContent":["import * as React from 'react'\nimport { TextInput } from 'react-native-paper'\n\nconst splitCharacters = ['-', '/', '.', '年', ' ']\nfunction detectCharacter(mask: string): string {\n const c = splitCharacters.find((ch) => mask.includes(ch))\n return c || ''\n}\n\nfunction enhanceTextWithMask(\n text: string,\n mask: string,\n previousValue: string\n): string {\n const isBackSpace = previousValue.length > text.length\n const splitCharacter = detectCharacter(mask)\n\n const maskParts = mask.split(splitCharacter)\n const textParts = text.split(splitCharacter)\n\n let finalString: string[] = []\n for (let maskPartIndex = 0; maskPartIndex < mask.length; maskPartIndex++) {\n let partString: string[] = []\n\n const maskPart = maskParts[maskPartIndex]\n const textPart = textParts[maskPartIndex]\n if (!textPart) {\n continue\n }\n\n for (\n let maskDigitIndex = 0;\n maskDigitIndex < maskPart.length;\n maskDigitIndex++\n ) {\n const currentCharacter = textPart[maskDigitIndex]\n\n if (isBackSpace && currentCharacter === undefined) {\n continue\n }\n\n const character = textPart[maskDigitIndex]\n\n if (character !== undefined) {\n partString.push(character)\n }\n }\n\n finalString.push(partString.join(''))\n }\n\n const lastPart = finalString[finalString.length - 1]\n const lastMaskPart = maskParts[finalString.length - 1]\n if (\n // if mask is completed\n finalString.length !== maskParts.length &&\n // or ...\n lastPart &&\n lastMaskPart &&\n lastPart.length === lastMaskPart.length\n ) {\n return (\n finalString.join(splitCharacter) + (isBackSpace ? '' : splitCharacter)\n )\n }\n return finalString.join(splitCharacter)\n}\n\nfunction TextInputWithMask(\n {\n onChangeText,\n value,\n mask,\n ...rest\n }: React.ComponentProps<typeof TextInput> & { mask: string },\n ref: any\n) {\n const [controlledValue, setControlledValue] = React.useState<string>(\n value || ''\n )\n\n const onInnerChange = (text: string) => {\n
|
|
1
|
+
{"version":3,"names":["splitCharacters","detectCharacter","mask","c","find","ch","includes","enhanceTextWithMask","text","previousValue","isBackSpace","length","splitCharacter","maskParts","split","textParts","finalString","maskPartIndex","partString","maskPart","textPart","maskDigitIndex","currentCharacter","undefined","character","push","join","lastPart","lastMaskPart","TextInputWithMask","ref","onChangeText","value","rest","controlledValue","setControlledValue","React","useState","onInnerChange","onInnerBlur","enhancedText","useEffect","forwardRef"],"sources":["TextInputMask.tsx"],"sourcesContent":["import * as React from 'react'\nimport { TextInput } from 'react-native-paper'\n\nconst splitCharacters = ['-', '/', '.', '年', ' ']\nfunction detectCharacter(mask: string): string {\n const c = splitCharacters.find((ch) => mask.includes(ch))\n return c || ''\n}\n\nfunction enhanceTextWithMask(\n text: string,\n mask: string,\n previousValue: string\n): string {\n const isBackSpace = previousValue.length > text.length\n const splitCharacter = detectCharacter(mask)\n\n const maskParts = mask.split(splitCharacter)\n const textParts = text.split(splitCharacter)\n\n let finalString: string[] = []\n for (let maskPartIndex = 0; maskPartIndex < mask.length; maskPartIndex++) {\n let partString: string[] = []\n\n const maskPart = maskParts[maskPartIndex]\n const textPart = textParts[maskPartIndex]\n if (!textPart) {\n continue\n }\n\n for (\n let maskDigitIndex = 0;\n maskDigitIndex < maskPart.length;\n maskDigitIndex++\n ) {\n const currentCharacter = textPart[maskDigitIndex]\n\n if (isBackSpace && currentCharacter === undefined) {\n continue\n }\n\n const character = textPart[maskDigitIndex]\n\n if (character !== undefined) {\n partString.push(character)\n }\n }\n\n finalString.push(partString.join(''))\n }\n\n const lastPart = finalString[finalString.length - 1]\n const lastMaskPart = maskParts[finalString.length - 1]\n if (\n // if mask is completed\n finalString.length !== maskParts.length &&\n // or ...\n lastPart &&\n lastMaskPart &&\n lastPart.length === lastMaskPart.length\n ) {\n return (\n finalString.join(splitCharacter) + (isBackSpace ? '' : splitCharacter)\n )\n }\n return finalString.join(splitCharacter)\n}\n\nfunction TextInputWithMask(\n {\n onChangeText,\n value,\n mask,\n ...rest\n }: React.ComponentProps<typeof TextInput> & { mask: string; value: string },\n ref: any\n) {\n const [controlledValue, setControlledValue] = React.useState<string>(\n value || ''\n )\n\n const onInnerChange = (text: string) => {\n if (text.length === mask.length) {\n onChangeText && onChangeText(text)\n }\n setControlledValue(text)\n }\n\n const onInnerBlur = () => {\n const enhancedText = enhanceTextWithMask(value, mask, controlledValue)\n setControlledValue(enhancedText)\n }\n\n React.useEffect(() => {\n setControlledValue(value || '')\n }, [value])\n\n return (\n <TextInput\n ref={ref}\n {...rest}\n value={controlledValue}\n onChangeText={onInnerChange}\n onBlur={onInnerBlur}\n />\n )\n}\n\nexport default React.forwardRef(TextInputWithMask)\n"],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ function AmPmSwitcher(_ref) {
|
|
|
38
38
|
return (0, _color.default)(theme.colors.surface).lighten(1.2).hex();
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
return (0, _color.default)(theme.colors.surface).darken(0.1).hex();
|
|
41
|
+
return (0, _color.default)(theme.isV3 ? theme.colors.inverseOnSurface : theme.colors.surface).darken(0.1).hex();
|
|
42
42
|
}, [theme]);
|
|
43
43
|
const isAM = mode === 'AM';
|
|
44
44
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
@@ -87,6 +87,7 @@ function SwitchButton(_ref2) {
|
|
|
87
87
|
backgroundColor,
|
|
88
88
|
color
|
|
89
89
|
} = (0, _timeUtils.useSwitchColors)(selected);
|
|
90
|
+
let textFont = theme !== null && theme !== void 0 && theme.isV3 ? theme.fonts.bodyMedium : theme.fonts.medium;
|
|
90
91
|
return /*#__PURE__*/React.createElement(_reactNativePaper.TouchableRipple, {
|
|
91
92
|
onPress: onPress,
|
|
92
93
|
style: styles.switchButton,
|
|
@@ -106,7 +107,7 @@ function SwitchButton(_ref2) {
|
|
|
106
107
|
}]
|
|
107
108
|
}, /*#__PURE__*/React.createElement(_reactNativePaper.Text, {
|
|
108
109
|
selectable: false,
|
|
109
|
-
style: [{ ...
|
|
110
|
+
style: [{ ...textFont,
|
|
110
111
|
color: color
|
|
111
112
|
}]
|
|
112
113
|
}, label)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AmPmSwitcher","onChange","hours","setMode","mode","React","useContext","DisplayModeContext","theme","useTheme","backgroundColor","useMemo","dark","Color","colors","surface","lighten","hex","darken","isAM","styles","root","borderColor","borderRadius","roundness","switchSeparator","SwitchButton","label","onPress","selected","disabled","color","useSwitchColors","
|
|
1
|
+
{"version":3,"names":["AmPmSwitcher","onChange","hours","setMode","mode","React","useContext","DisplayModeContext","theme","useTheme","backgroundColor","useMemo","dark","Color","colors","surface","lighten","hex","isV3","inverseOnSurface","darken","isAM","styles","root","borderColor","borderRadius","roundness","switchSeparator","SwitchButton","label","onPress","selected","disabled","color","useSwitchColors","textFont","fonts","bodyMedium","medium","switchButton","switchButtonInner","StyleSheet","create","width","height","borderWidth","overflow","flex","alignItems","justifyContent"],"sources":["AmPmSwitcher.tsx"],"sourcesContent":["import * as React from 'react'\nimport { View, StyleSheet } from 'react-native'\nimport { MD2Theme, Text, TouchableRipple, useTheme } from 'react-native-paper'\nimport { useMemo } from 'react'\nimport Color from 'color'\nimport { useSwitchColors } from './timeUtils'\nimport { DisplayModeContext } from './TimePicker'\n\nexport default function AmPmSwitcher({\n onChange,\n hours,\n}: {\n hours: number\n onChange: (newHours: number) => any\n}) {\n const { setMode, mode } = React.useContext(DisplayModeContext)\n const theme = useTheme()\n const backgroundColor = useMemo<string>(() => {\n if (theme.dark) {\n return Color(theme.colors.surface).lighten(1.2).hex()\n }\n return Color(\n theme.isV3 ? theme.colors.inverseOnSurface : theme.colors.surface\n )\n .darken(0.1)\n .hex()\n }, [theme])\n\n const isAM = mode === 'AM'\n return (\n <View\n style={[\n styles.root,\n {\n borderColor: backgroundColor,\n borderRadius: theme.roundness,\n },\n ]}\n >\n <SwitchButton\n label=\"AM\"\n onPress={() => {\n setMode('AM')\n if (hours - 12 >= 0) {\n onChange(hours - 12)\n }\n }}\n selected={isAM}\n disabled={isAM}\n />\n <View style={[styles.switchSeparator, { backgroundColor }]} />\n <SwitchButton\n label=\"PM\"\n onPress={() => {\n setMode('PM')\n if (hours + 12 <= 24) {\n onChange(hours + 12)\n }\n }}\n selected={!isAM}\n disabled={!isAM}\n />\n </View>\n )\n}\n\nfunction SwitchButton({\n label,\n onPress,\n selected,\n disabled,\n}: {\n label: string\n onPress: (() => any) | undefined\n selected: boolean\n disabled: boolean\n}) {\n const theme = useTheme()\n const { backgroundColor, color } = useSwitchColors(selected)\n\n let textFont = theme?.isV3\n ? theme.fonts.bodyMedium\n : (theme as any as MD2Theme).fonts.medium\n\n return (\n <TouchableRipple\n onPress={onPress}\n style={styles.switchButton}\n accessibilityLabel={label}\n // @ts-ignore old React Native versions\n accessibilityTraits={disabled ? ['button', 'disabled'] : 'button'}\n // @ts-ignore old React Native versions\n accessibilityComponentType=\"button\"\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n disabled={disabled}\n >\n <View style={[styles.switchButtonInner, { backgroundColor }]}>\n <Text\n selectable={false}\n style={[\n {\n ...textFont,\n color: color,\n },\n ]}\n >\n {label}\n </Text>\n </View>\n </TouchableRipple>\n )\n}\n\nconst styles = StyleSheet.create({\n root: {\n width: 50,\n height: 80,\n borderWidth: 1,\n overflow: 'hidden',\n },\n switchSeparator: {\n height: 1,\n width: 48,\n },\n switchButton: {\n flex: 1,\n },\n switchButtonInner: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n})\n"],"mappings":"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"}
|
|
@@ -118,7 +118,7 @@ function AnalogClock(_ref) {
|
|
|
118
118
|
ref: clockRef
|
|
119
119
|
}, panResponder.panHandlers, {
|
|
120
120
|
style: [styles.clock, {
|
|
121
|
-
backgroundColor: theme.dark ? (0, _color.default)(theme.colors.surface).lighten(1.
|
|
121
|
+
backgroundColor: theme.dark ? (0, _color.default)(theme.colors.surface).lighten(1.4).hex() : theme.isV3 ? (0, _color.default)(theme.colors.outline).lighten(0.9).hex() : (0, _color.default)(theme.colors.surface).darken(0.1).hex()
|
|
122
122
|
}] // @ts-ignore -> https://github.com/necolas/react-native-web/issues/506
|
|
123
123
|
,
|
|
124
124
|
cursor: 'pointer'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AnalogClock","hours","minutes","focused","is24Hour","onChange","theme","useTheme","mode","React","useContext","DisplayModeContext","shortPointer","clockRef","useRef","hoursRef","useLatest","onChangeRef","minutesRef","focusedRef","is24HourRef","modeRef","onPointerMove","useCallback","e","final","x","nativeEvent","locationX","y","locationY","angle","getAngle","circleSize","current","clockTypes","hours24","previousHourType","getHourType","pickedHours","getHours","hours12AndPm","hourTypeFromOffset","getHourTypeFromOffset","hours24AndPM","hourTypes","pm","undefined","pickedMinutes","getMinutes","panResponder","PanResponder","create","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onStartShouldSetPanResponder","returnTrue","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onShouldBlockNativeResponder","dynamicSize","pointerNumber","degreesPerNumber","panHandlers","styles","clock","backgroundColor","dark","Color","colors","surface","lighten","hex","darken","line","primary","transform","rotate","translateX","width","endPoint","StyleSheet","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","marginBottom","memo"],"sources":["AnalogClock.tsx"],"sourcesContent":["import Color from 'color'\nimport {\n GestureResponderEvent,\n PanResponder,\n StyleSheet,\n View,\n} from 'react-native'\nimport { useTheme } from 'react-native-paper'\nimport {\n circleSize,\n clockTypes,\n getAngle,\n getHours,\n getHourType,\n getHourTypeFromOffset,\n getMinutes,\n hourTypes,\n PossibleClockTypes,\n} from './timeUtils'\nimport * as React from 'react'\nimport { useLatest } from '../utils'\nimport AnalogClockHours from './AnalogClockHours'\nimport AnimatedClockSwitcher from './AnimatedClockSwitcher'\nimport AnalogClockMinutes from './AnalogClockMinutes'\nimport { DisplayModeContext } from './TimePicker'\nfunction AnalogClock({\n hours,\n minutes,\n focused,\n is24Hour,\n onChange,\n}: {\n hours: number\n minutes: number\n focused: PossibleClockTypes\n is24Hour: boolean\n onChange: (hoursMinutesAndFocused: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n }) => any\n}) {\n const theme = useTheme()\n const { mode } = React.useContext(DisplayModeContext)\n // used to make pointer shorter if hours are selected and above 12\n const shortPointer = (hours === 0 || hours > 12) && is24Hour\n const clockRef = React.useRef<View | null>(null)\n // Hooks are nice, sometimes... :-)..\n // We need the latest values, since the onPointerMove uses a closure to the function\n const hoursRef = useLatest(hours)\n const onChangeRef = useLatest(onChange)\n const minutesRef = useLatest(minutes)\n const focusedRef = useLatest(focused)\n const is24HourRef = useLatest(is24Hour)\n const modeRef = useLatest(mode)\n const onPointerMove = React.useCallback(\n (e: GestureResponderEvent, final: boolean) => {\n let x = e.nativeEvent.locationX\n let y = e.nativeEvent.locationY\n let angle = getAngle(x, y, circleSize)\n if (focusedRef.current === clockTypes.hours) {\n let hours24 = is24HourRef.current\n let previousHourType = getHourType(hoursRef.current)\n let pickedHours = getHours(angle, previousHourType)\n\n let hours12AndPm = !hours24 && modeRef.current === 'AM'\n\n let hourTypeFromOffset = getHourTypeFromOffset(x, y, circleSize)\n let hours24AndPM = hours24 && hourTypeFromOffset === hourTypes.pm\n\n // Avoiding the \"24h\"\n // Should be 12h for 12 hours and PM mode\n\n if (hours12AndPm || hours24AndPM) {\n pickedHours += 12\n }\n if (modeRef.current === 'AM' && pickedHours === 12) {\n pickedHours = 0\n }\n\n if (\n (!hours24 && modeRef.current === 'AM' && pickedHours === 12) ||\n pickedHours === 24\n ) {\n pickedHours = 0\n }\n\n if (hoursRef.current !== pickedHours || final) {\n onChangeRef.current({\n hours: pickedHours,\n minutes: minutesRef.current,\n focused: final ? clockTypes.minutes : undefined,\n })\n }\n } else if (focusedRef.current === clockTypes.minutes) {\n let pickedMinutes = getMinutes(angle)\n if (minutesRef.current !== pickedMinutes) {\n onChangeRef.current({\n hours: hoursRef.current,\n minutes: pickedMinutes,\n })\n }\n }\n },\n [focusedRef, is24HourRef, hoursRef, onChangeRef, minutesRef, modeRef]\n )\n const panResponder = React.useRef(\n PanResponder.create({\n onPanResponderGrant: (e) => onPointerMove(e, false),\n onPanResponderMove: (e) => onPointerMove(e, false),\n onPanResponderRelease: (e) => onPointerMove(e, true),\n onStartShouldSetPanResponder: returnTrue,\n onStartShouldSetPanResponderCapture: () => false,\n onMoveShouldSetPanResponder: returnTrue,\n onMoveShouldSetPanResponderCapture: returnTrue,\n onPanResponderTerminationRequest: returnTrue,\n onShouldBlockNativeResponder: returnTrue,\n })\n ).current\n const dynamicSize = focused === clockTypes.hours && shortPointer ? 33 : 0\n const pointerNumber = focused === clockTypes.hours ? hours : minutes\n const degreesPerNumber = focused === clockTypes.hours ? 30 : 6\n return (\n <View\n ref={clockRef}\n {...panResponder.panHandlers}\n style={[\n styles.clock,\n {\n backgroundColor: theme.dark\n ? Color(theme.colors.surface).lighten(1.2).hex()\n : Color(theme.colors.surface).darken(0.1).hex(),\n },\n ]}\n // @ts-ignore -> https://github.com/necolas/react-native-web/issues/506\n cursor={'pointer'}\n >\n <View\n style={[\n styles.line,\n {\n backgroundColor: theme.colors.primary,\n transform: [\n { rotate: -90 + pointerNumber * degreesPerNumber + 'deg' },\n {\n translateX: circleSize / 4 - 4 - dynamicSize / 2,\n },\n ],\n width: circleSize / 2 - 4 - dynamicSize,\n },\n ]}\n pointerEvents=\"none\"\n >\n <View\n style={[styles.endPoint, { backgroundColor: theme.colors.primary }]}\n />\n </View>\n <View\n style={[StyleSheet.absoluteFill, styles.center]}\n pointerEvents=\"none\"\n >\n <View\n style={[\n styles.middlePoint,\n {\n backgroundColor: theme.colors.primary,\n },\n ]}\n />\n </View>\n <AnimatedClockSwitcher\n focused={focused}\n hours={<AnalogClockHours is24Hour={is24Hour} hours={hours} />}\n minutes={<AnalogClockMinutes minutes={minutes} />}\n />\n </View>\n )\n}\nconst styles = StyleSheet.create({\n clock: {\n height: circleSize,\n width: circleSize,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: circleSize / 2,\n },\n middlePoint: {\n borderRadius: 4,\n height: 8,\n width: 8,\n },\n center: { justifyContent: 'center', alignItems: 'center' },\n endPoint: {\n borderRadius: 15,\n height: 30,\n width: 30,\n position: 'absolute',\n right: 0,\n bottom: -14,\n },\n line: {\n position: 'absolute',\n marginBottom: -1,\n height: 2,\n borderRadius: 4,\n },\n})\nfunction returnTrue() {\n return true\n}\nexport default React.memo(AnalogClock)\n"],"mappings":";;;;;;;AAAA;;AACA;;AAMA;;AACA;;AAWA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AACA,SAASA,WAAT,OAgBG;EAAA,IAhBkB;IACnBC,KADmB;IAEnBC,OAFmB;IAGnBC,OAHmB;IAInBC,QAJmB;IAKnBC;EALmB,CAgBlB;EACD,MAAMC,KAAK,GAAG,IAAAC,0BAAA,GAAd;EACA,MAAM;IAAEC;EAAF,IAAWC,KAAK,CAACC,UAAN,CAAiBC,8BAAjB,CAAjB,CAFC,CAGD;;EACA,MAAMC,YAAY,GAAG,CAACX,KAAK,KAAK,CAAV,IAAeA,KAAK,GAAG,EAAxB,KAA+BG,QAApD;EACA,MAAMS,QAAQ,GAAGJ,KAAK,CAACK,MAAN,CAA0B,IAA1B,CAAjB,CALC,CAMD;EACA;;EACA,MAAMC,QAAQ,GAAG,IAAAC,gBAAA,EAAUf,KAAV,CAAjB;EACA,MAAMgB,WAAW,GAAG,IAAAD,gBAAA,EAAUX,QAAV,CAApB;EACA,MAAMa,UAAU,GAAG,IAAAF,gBAAA,EAAUd,OAAV,CAAnB;EACA,MAAMiB,UAAU,GAAG,IAAAH,gBAAA,EAAUb,OAAV,CAAnB;EACA,MAAMiB,WAAW,GAAG,IAAAJ,gBAAA,EAAUZ,QAAV,CAApB;EACA,MAAMiB,OAAO,GAAG,IAAAL,gBAAA,EAAUR,IAAV,CAAhB;EACA,MAAMc,aAAa,GAAGb,KAAK,CAACc,WAAN,CACpB,CAACC,CAAD,EAA2BC,KAA3B,KAA8C;IAC5C,IAAIC,CAAC,GAAGF,CAAC,CAACG,WAAF,CAAcC,SAAtB;IACA,IAAIC,CAAC,GAAGL,CAAC,CAACG,WAAF,CAAcG,SAAtB;IACA,IAAIC,KAAK,GAAG,IAAAC,mBAAA,EAASN,CAAT,EAAYG,CAAZ,EAAeI,qBAAf,CAAZ;;IACA,IAAId,UAAU,CAACe,OAAX,KAAuBC,qBAAA,CAAWlC,KAAtC,EAA6C;MAC3C,IAAImC,OAAO,GAAGhB,WAAW,CAACc,OAA1B;MACA,IAAIG,gBAAgB,GAAG,IAAAC,sBAAA,EAAYvB,QAAQ,CAACmB,OAArB,CAAvB;MACA,IAAIK,WAAW,GAAG,IAAAC,mBAAA,EAAST,KAAT,EAAgBM,gBAAhB,CAAlB;MAEA,IAAII,YAAY,GAAG,CAACL,OAAD,IAAYf,OAAO,CAACa,OAAR,KAAoB,IAAnD;MAEA,IAAIQ,kBAAkB,GAAG,IAAAC,gCAAA,EAAsBjB,CAAtB,EAAyBG,CAAzB,EAA4BI,qBAA5B,CAAzB;MACA,IAAIW,YAAY,GAAGR,OAAO,IAAIM,kBAAkB,KAAKG,oBAAA,CAAUC,EAA/D,CAR2C,CAU3C;MACA;;MAEA,IAAIL,YAAY,IAAIG,YAApB,EAAkC;QAChCL,WAAW,IAAI,EAAf;MACD;;MACD,IAAIlB,OAAO,CAACa,OAAR,KAAoB,IAApB,IAA4BK,WAAW,KAAK,EAAhD,EAAoD;QAClDA,WAAW,GAAG,CAAd;MACD;;MAED,IACG,CAACH,OAAD,IAAYf,OAAO,CAACa,OAAR,KAAoB,IAAhC,IAAwCK,WAAW,KAAK,EAAzD,IACAA,WAAW,KAAK,EAFlB,EAGE;QACAA,WAAW,GAAG,CAAd;MACD;;MAED,IAAIxB,QAAQ,CAACmB,OAAT,KAAqBK,WAArB,IAAoCd,KAAxC,EAA+C;QAC7CR,WAAW,CAACiB,OAAZ,CAAoB;UAClBjC,KAAK,EAAEsC,WADW;UAElBrC,OAAO,EAAEgB,UAAU,CAACgB,OAFF;UAGlB/B,OAAO,EAAEsB,KAAK,GAAGU,qBAAA,CAAWjC,OAAd,GAAwB6C;QAHpB,CAApB;MAKD;IACF,CAlCD,MAkCO,IAAI5B,UAAU,CAACe,OAAX,KAAuBC,qBAAA,CAAWjC,OAAtC,EAA+C;MACpD,IAAI8C,aAAa,GAAG,IAAAC,qBAAA,EAAWlB,KAAX,CAApB;;MACA,IAAIb,UAAU,CAACgB,OAAX,KAAuBc,aAA3B,EAA0C;QACxC/B,WAAW,CAACiB,OAAZ,CAAoB;UAClBjC,KAAK,EAAEc,QAAQ,CAACmB,OADE;UAElBhC,OAAO,EAAE8C;QAFS,CAApB;MAID;IACF;EACF,CAhDmB,EAiDpB,CAAC7B,UAAD,EAAaC,WAAb,EAA0BL,QAA1B,EAAoCE,WAApC,EAAiDC,UAAjD,EAA6DG,OAA7D,CAjDoB,CAAtB;EAmDA,MAAM6B,YAAY,GAAGzC,KAAK,CAACK,MAAN,CACnBqC,yBAAA,CAAaC,MAAb,CAAoB;IAClBC,mBAAmB,EAAG7B,CAAD,IAAOF,aAAa,CAACE,CAAD,EAAI,KAAJ,CADvB;IAElB8B,kBAAkB,EAAG9B,CAAD,IAAOF,aAAa,CAACE,CAAD,EAAI,KAAJ,CAFtB;IAGlB+B,qBAAqB,EAAG/B,CAAD,IAAOF,aAAa,CAACE,CAAD,EAAI,IAAJ,CAHzB;IAIlBgC,4BAA4B,EAAEC,UAJZ;IAKlBC,mCAAmC,EAAE,MAAM,KALzB;IAMlBC,2BAA2B,EAAEF,UANX;IAOlBG,kCAAkC,EAAEH,UAPlB;IAQlBI,gCAAgC,EAAEJ,UARhB;IASlBK,4BAA4B,EAAEL;EATZ,CAApB,CADmB,EAYnBvB,OAZF;EAaA,MAAM6B,WAAW,GAAG5D,OAAO,KAAKgC,qBAAA,CAAWlC,KAAvB,IAAgCW,YAAhC,GAA+C,EAA/C,GAAoD,CAAxE;EACA,MAAMoD,aAAa,GAAG7D,OAAO,KAAKgC,qBAAA,CAAWlC,KAAvB,GAA+BA,KAA/B,GAAuCC,OAA7D;EACA,MAAM+D,gBAAgB,GAAG9D,OAAO,KAAKgC,qBAAA,CAAWlC,KAAvB,GAA+B,EAA/B,GAAoC,CAA7D;EACA,oBACE,oBAAC,iBAAD;IACE,GAAG,EAAEY;EADP,GAEMqC,YAAY,CAACgB,WAFnB;IAGE,KAAK,EAAE,CACLC,MAAM,CAACC,KADF,EAEL;MACEC,eAAe,EAAE/D,KAAK,CAACgE,IAAN,GACb,IAAAC,cAAA,EAAMjE,KAAK,CAACkE,MAAN,CAAaC,OAAnB,EAA4BC,OAA5B,CAAoC,GAApC,EAAyCC,GAAzC,EADa,GAEb,IAAAJ,cAAA,EAAMjE,KAAK,CAACkE,MAAN,CAAaC,OAAnB,EAA4BG,MAA5B,CAAmC,GAAnC,EAAwCD,GAAxC;IAHN,CAFK,CAHT,CAWE;IAXF;IAYE,MAAM,EAAE;EAZV,iBAcE,oBAAC,iBAAD;IACE,KAAK,EAAE,CACLR,MAAM,CAACU,IADF,EAEL;MACER,eAAe,EAAE/D,KAAK,CAACkE,MAAN,CAAaM,OADhC;MAEEC,SAAS,EAAE,CACT;QAAEC,MAAM,EAAE,CAAC,EAAD,GAAMhB,aAAa,GAAGC,gBAAtB,GAAyC;MAAnD,CADS,EAET;QACEgB,UAAU,EAAEhD,qBAAA,GAAa,CAAb,GAAiB,CAAjB,GAAqB8B,WAAW,GAAG;MADjD,CAFS,CAFb;MAQEmB,KAAK,EAAEjD,qBAAA,GAAa,CAAb,GAAiB,CAAjB,GAAqB8B;IAR9B,CAFK,CADT;IAcE,aAAa,EAAC;EAdhB,gBAgBE,oBAAC,iBAAD;IACE,KAAK,EAAE,CAACI,MAAM,CAACgB,QAAR,EAAkB;MAAEd,eAAe,EAAE/D,KAAK,CAACkE,MAAN,CAAaM;IAAhC,CAAlB;EADT,EAhBF,CAdF,eAkCE,oBAAC,iBAAD;IACE,KAAK,EAAE,CAACM,uBAAA,CAAWC,YAAZ,EAA0BlB,MAAM,CAACmB,MAAjC,CADT;IAEE,aAAa,EAAC;EAFhB,gBAIE,oBAAC,iBAAD;IACE,KAAK,EAAE,CACLnB,MAAM,CAACoB,WADF,EAEL;MACElB,eAAe,EAAE/D,KAAK,CAACkE,MAAN,CAAaM;IADhC,CAFK;EADT,EAJF,CAlCF,eA+CE,oBAAC,8BAAD;IACE,OAAO,EAAE3E,OADX;IAEE,KAAK,eAAE,oBAAC,yBAAD;MAAkB,QAAQ,EAAEC,QAA5B;MAAsC,KAAK,EAAEH;IAA7C,EAFT;IAGE,OAAO,eAAE,oBAAC,2BAAD;MAAoB,OAAO,EAAEC;IAA7B;EAHX,EA/CF,CADF;AAuDD;;AACD,MAAMiE,MAAM,GAAGiB,uBAAA,CAAWhC,MAAX,CAAkB;EAC/BgB,KAAK,EAAE;IACLoB,MAAM,EAAEvD,qBADH;IAELiD,KAAK,EAAEjD,qBAFF;IAGLwD,QAAQ,EAAE,UAHL;IAILC,cAAc,EAAE,QAJX;IAKLC,UAAU,EAAE,QALP;IAMLC,YAAY,EAAE3D,qBAAA,GAAa;EANtB,CADwB;EAS/BsD,WAAW,EAAE;IACXK,YAAY,EAAE,CADH;IAEXJ,MAAM,EAAE,CAFG;IAGXN,KAAK,EAAE;EAHI,CATkB;EAc/BI,MAAM,EAAE;IAAEI,cAAc,EAAE,QAAlB;IAA4BC,UAAU,EAAE;EAAxC,CAduB;EAe/BR,QAAQ,EAAE;IACRS,YAAY,EAAE,EADN;IAERJ,MAAM,EAAE,EAFA;IAGRN,KAAK,EAAE,EAHC;IAIRO,QAAQ,EAAE,UAJF;IAKRI,KAAK,EAAE,CALC;IAMRC,MAAM,EAAE,CAAC;EAND,CAfqB;EAuB/BjB,IAAI,EAAE;IACJY,QAAQ,EAAE,UADN;IAEJM,YAAY,EAAE,CAAC,CAFX;IAGJP,MAAM,EAAE,CAHJ;IAIJI,YAAY,EAAE;EAJV;AAvByB,CAAlB,CAAf;;AA8BA,SAASnC,UAAT,GAAsB;EACpB,OAAO,IAAP;AACD;;4BACchD,KAAK,CAACuF,IAAN,CAAWhG,WAAX,C"}
|
|
1
|
+
{"version":3,"names":["AnalogClock","hours","minutes","focused","is24Hour","onChange","theme","useTheme","mode","React","useContext","DisplayModeContext","shortPointer","clockRef","useRef","hoursRef","useLatest","onChangeRef","minutesRef","focusedRef","is24HourRef","modeRef","onPointerMove","useCallback","e","final","x","nativeEvent","locationX","y","locationY","angle","getAngle","circleSize","current","clockTypes","hours24","previousHourType","getHourType","pickedHours","getHours","hours12AndPm","hourTypeFromOffset","getHourTypeFromOffset","hours24AndPM","hourTypes","pm","undefined","pickedMinutes","getMinutes","panResponder","PanResponder","create","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onStartShouldSetPanResponder","returnTrue","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onShouldBlockNativeResponder","dynamicSize","pointerNumber","degreesPerNumber","panHandlers","styles","clock","backgroundColor","dark","Color","colors","surface","lighten","hex","isV3","outline","darken","line","primary","transform","rotate","translateX","width","endPoint","StyleSheet","absoluteFill","center","middlePoint","height","position","justifyContent","alignItems","borderRadius","right","bottom","marginBottom","memo"],"sources":["AnalogClock.tsx"],"sourcesContent":["import Color from 'color'\nimport {\n GestureResponderEvent,\n PanResponder,\n StyleSheet,\n View,\n} from 'react-native'\nimport { useTheme } from 'react-native-paper'\nimport {\n circleSize,\n clockTypes,\n getAngle,\n getHours,\n getHourType,\n getHourTypeFromOffset,\n getMinutes,\n hourTypes,\n PossibleClockTypes,\n} from './timeUtils'\nimport * as React from 'react'\nimport { useLatest } from '../utils'\nimport AnalogClockHours from './AnalogClockHours'\nimport AnimatedClockSwitcher from './AnimatedClockSwitcher'\nimport AnalogClockMinutes from './AnalogClockMinutes'\nimport { DisplayModeContext } from './TimePicker'\nfunction AnalogClock({\n hours,\n minutes,\n focused,\n is24Hour,\n onChange,\n}: {\n hours: number\n minutes: number\n focused: PossibleClockTypes\n is24Hour: boolean\n onChange: (hoursMinutesAndFocused: {\n hours: number\n minutes: number\n focused?: undefined | PossibleClockTypes\n }) => any\n}) {\n const theme = useTheme()\n const { mode } = React.useContext(DisplayModeContext)\n // used to make pointer shorter if hours are selected and above 12\n const shortPointer = (hours === 0 || hours > 12) && is24Hour\n const clockRef = React.useRef<View | null>(null)\n // Hooks are nice, sometimes... :-)..\n // We need the latest values, since the onPointerMove uses a closure to the function\n const hoursRef = useLatest(hours)\n const onChangeRef = useLatest(onChange)\n const minutesRef = useLatest(minutes)\n const focusedRef = useLatest(focused)\n const is24HourRef = useLatest(is24Hour)\n const modeRef = useLatest(mode)\n const onPointerMove = React.useCallback(\n (e: GestureResponderEvent, final: boolean) => {\n let x = e.nativeEvent.locationX\n let y = e.nativeEvent.locationY\n let angle = getAngle(x, y, circleSize)\n if (focusedRef.current === clockTypes.hours) {\n let hours24 = is24HourRef.current\n let previousHourType = getHourType(hoursRef.current)\n let pickedHours = getHours(angle, previousHourType)\n\n let hours12AndPm = !hours24 && modeRef.current === 'AM'\n\n let hourTypeFromOffset = getHourTypeFromOffset(x, y, circleSize)\n let hours24AndPM = hours24 && hourTypeFromOffset === hourTypes.pm\n\n // Avoiding the \"24h\"\n // Should be 12h for 12 hours and PM mode\n\n if (hours12AndPm || hours24AndPM) {\n pickedHours += 12\n }\n if (modeRef.current === 'AM' && pickedHours === 12) {\n pickedHours = 0\n }\n\n if (\n (!hours24 && modeRef.current === 'AM' && pickedHours === 12) ||\n pickedHours === 24\n ) {\n pickedHours = 0\n }\n\n if (hoursRef.current !== pickedHours || final) {\n onChangeRef.current({\n hours: pickedHours,\n minutes: minutesRef.current,\n focused: final ? clockTypes.minutes : undefined,\n })\n }\n } else if (focusedRef.current === clockTypes.minutes) {\n let pickedMinutes = getMinutes(angle)\n if (minutesRef.current !== pickedMinutes) {\n onChangeRef.current({\n hours: hoursRef.current,\n minutes: pickedMinutes,\n })\n }\n }\n },\n [focusedRef, is24HourRef, hoursRef, onChangeRef, minutesRef, modeRef]\n )\n const panResponder = React.useRef(\n PanResponder.create({\n onPanResponderGrant: (e) => onPointerMove(e, false),\n onPanResponderMove: (e) => onPointerMove(e, false),\n onPanResponderRelease: (e) => onPointerMove(e, true),\n onStartShouldSetPanResponder: returnTrue,\n onStartShouldSetPanResponderCapture: () => false,\n onMoveShouldSetPanResponder: returnTrue,\n onMoveShouldSetPanResponderCapture: returnTrue,\n onPanResponderTerminationRequest: returnTrue,\n onShouldBlockNativeResponder: returnTrue,\n })\n ).current\n const dynamicSize = focused === clockTypes.hours && shortPointer ? 33 : 0\n const pointerNumber = focused === clockTypes.hours ? hours : minutes\n const degreesPerNumber = focused === clockTypes.hours ? 30 : 6\n return (\n <View\n ref={clockRef}\n {...panResponder.panHandlers}\n style={[\n styles.clock,\n {\n backgroundColor: theme.dark\n ? Color(theme.colors.surface).lighten(1.4).hex()\n : theme.isV3\n ? Color(theme.colors.outline).lighten(0.9).hex()\n : Color(theme.colors.surface).darken(0.1).hex(),\n },\n ]}\n // @ts-ignore -> https://github.com/necolas/react-native-web/issues/506\n cursor={'pointer'}\n >\n <View\n style={[\n styles.line,\n {\n backgroundColor: theme.colors.primary,\n transform: [\n { rotate: -90 + pointerNumber * degreesPerNumber + 'deg' },\n {\n translateX: circleSize / 4 - 4 - dynamicSize / 2,\n },\n ],\n width: circleSize / 2 - 4 - dynamicSize,\n },\n ]}\n pointerEvents=\"none\"\n >\n <View\n style={[styles.endPoint, { backgroundColor: theme.colors.primary }]}\n />\n </View>\n <View\n style={[StyleSheet.absoluteFill, styles.center]}\n pointerEvents=\"none\"\n >\n <View\n style={[\n styles.middlePoint,\n {\n backgroundColor: theme.colors.primary,\n },\n ]}\n />\n </View>\n <AnimatedClockSwitcher\n focused={focused}\n hours={<AnalogClockHours is24Hour={is24Hour} hours={hours} />}\n minutes={<AnalogClockMinutes minutes={minutes} />}\n />\n </View>\n )\n}\nconst styles = StyleSheet.create({\n clock: {\n height: circleSize,\n width: circleSize,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: circleSize / 2,\n },\n middlePoint: {\n borderRadius: 4,\n height: 8,\n width: 8,\n },\n center: { justifyContent: 'center', alignItems: 'center' },\n endPoint: {\n borderRadius: 15,\n height: 30,\n width: 30,\n position: 'absolute',\n right: 0,\n bottom: -14,\n },\n line: {\n position: 'absolute',\n marginBottom: -1,\n height: 2,\n borderRadius: 4,\n },\n})\nfunction returnTrue() {\n return true\n}\nexport default React.memo(AnalogClock)\n"],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ var _AmPmSwitcher = _interopRequireDefault(require("./AmPmSwitcher"));
|
|
|
19
19
|
|
|
20
20
|
var _utils = require("../utils");
|
|
21
21
|
|
|
22
|
+
var _color = _interopRequireDefault(require("color"));
|
|
23
|
+
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
25
|
|
|
24
26
|
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); }
|
|
@@ -67,6 +69,7 @@ function TimeInputs(_ref) {
|
|
|
67
69
|
pressed: focused === _timeUtils.clockTypes.hours,
|
|
68
70
|
onPress: onFocusInput,
|
|
69
71
|
inputType: inputType,
|
|
72
|
+
selectionColor: theme.dark ? (0, _color.default)(theme.colors.primary).darken(0.2).hex() : theme.colors.primary,
|
|
70
73
|
returnKeyType: 'next',
|
|
71
74
|
onSubmitEditing: onSubmitStartInput,
|
|
72
75
|
blurOnSubmit: false,
|
|
@@ -81,21 +84,20 @@ function TimeInputs(_ref) {
|
|
|
81
84
|
hours: newHours,
|
|
82
85
|
minutes
|
|
83
86
|
});
|
|
84
|
-
}
|
|
85
|
-
|
|
87
|
+
}
|
|
86
88
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
87
89
|
style: styles.hoursAndMinutesSeparator
|
|
88
90
|
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
89
91
|
style: styles.spaceDot
|
|
90
92
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
91
93
|
style: [styles.dot, {
|
|
92
|
-
backgroundColor: theme.colors.text
|
|
94
|
+
backgroundColor: theme !== null && theme !== void 0 && theme.isV3 ? theme.colors.onBackground : theme.colors.text
|
|
93
95
|
}]
|
|
94
96
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
95
97
|
style: styles.betweenDot
|
|
96
98
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
97
99
|
style: [styles.dot, {
|
|
98
|
-
backgroundColor: theme.colors.text
|
|
100
|
+
backgroundColor: theme !== null && theme !== void 0 && theme.isV3 ? theme.colors.onBackground : theme.colors.text
|
|
99
101
|
}]
|
|
100
102
|
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
101
103
|
style: styles.spaceDot
|
|
@@ -107,6 +109,7 @@ function TimeInputs(_ref) {
|
|
|
107
109
|
pressed: focused === _timeUtils.clockTypes.minutes,
|
|
108
110
|
onPress: onFocusInput,
|
|
109
111
|
inputType: inputType,
|
|
112
|
+
selectionColor: theme.dark ? (0, _color.default)(theme.colors.primary).darken(0.2).hex() : theme.colors.primary,
|
|
110
113
|
onSubmitEditing: onSubmitEndInput,
|
|
111
114
|
onChanged: newMinutesFromInput => {
|
|
112
115
|
let newMinutes = newMinutesFromInput;
|